Fix build with opaque DH in LibreSSL 3.5.

Index: etc/uams/uams_dhx_passwd.c
--- etc/uams/uams_dhx_passwd.c.orig
+++ etc/uams/uams_dhx_passwd.c
@@ -145,9 +145,8 @@ static int pwd_login(void *obj, char *username, int ul
     }
 
     /* generate key and make sure we have enough space */
-    dh->p = pbn;
-    dh->g = gbn;
-    if (!DH_generate_key(dh) || (BN_num_bytes(dh->pub_key) > KEYSIZE)) {
+    DH_set0_pqg(dh, pbn, NULL, gbn);
+    if (!DH_generate_key(dh) || (BN_num_bytes(DH_get0_pub_key(dh)) > KEYSIZE)) {
       goto passwd_fail;
     }
 
@@ -164,7 +163,7 @@ static int pwd_login(void *obj, char *username, int ul
     *rbuflen += sizeof(sessid);
     
     /* send our public key */
-    BN_bn2bin(dh->pub_key, (unsigned char *)rbuf); 
+    BN_bn2bin(DH_get0_pub_key(dh), (unsigned char *)rbuf); 
     rbuf += KEYSIZE;
     *rbuflen += KEYSIZE;
 
