- if (!DH_generate_key(dh) || (BN_num_bytes(dh->pub_key) > KEYSIZE)) {
- /* Log Entry */
- LOG(log_info, logtype_uams, "uams_dhx_pam.c :PAM: Err Generating Key -- Not enough Space? -- %s",
- strerror(errno));
- /* Log Entry */
- goto pam_fail;
+ if (DH_generate_key(dh) == 0) {
+ unsigned long dherror;
+ char errbuf[256];
+
+ ERR_load_crypto_strings();
+ dherror = ERR_get_error();
+ ERR_error_string_n(dherror, errbuf, 256);
+
+ LOG(log_info, logtype_uams, "uams_dhx_pam.c :PAM: Err Generating Key (OpenSSL error code: %u, %s)", dherror, errbuf);
+
+ ERR_free_strings();
+ goto pam_fail;
+ }
+ if (BN_num_bytes(dh->pub_key) > KEYSIZE) {
+ LOG(log_info, logtype_uams, "uams_dhx_pam.c :PAM: Err Generating Key -- Not enough Space? -- %s", strerror(errno));
+ goto pam_fail;