/*
- * $Id: uams_dhx_pam.c,v 1.17 2001-11-13 15:01:38 rufustfirefly Exp $
+ * $Id: uams_dhx_pam.c,v 1.18 2001-11-16 15:45:15 srittau Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* Copyright (c) 1999 Adrian Sun (asun@u.washington.edu)
if (num_msg < 1) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM DHX Conversation Err -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM DHX Conversation Err -- %s",
+ strerror(errno));
/* Log Entry */
return PAM_CONV_ERR;
}
if (!reply) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM DHX Conversation Err -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM DHX Conversation Err -- %s",
+ strerror(errno));
/* Log Entry */
return PAM_CONV_ERR;
}
case PAM_PROMPT_ECHO_ON:
if (!(string = COPY_STRING(PAM_username))) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: username failure -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: username failure -- %s",
+ strerror(errno));
/* Log Entry */
goto pam_fail_conv;
}
case PAM_PROMPT_ECHO_OFF:
if (!(string = COPY_STRING(PAM_password))) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: passwd failure: --: %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: passwd failure: --: %s",
+ strerror(errno));
/* Log Entry */
goto pam_fail_conv;
}
case PAM_ERROR_MSG:
default:
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Binary_Prompt -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Binary_Prompt -- %s",
+ strerror(errno));
/* Log Entry */
goto pam_fail_conv;
}
*resp = reply;
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM Success -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM Success -- %s",
+ strerror(errno));
/* Log Entry */
return PAM_SUCCESS;
}
free(reply);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM DHX Conversation Err -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM DHX Conversation Err -- %s",
+ strerror(errno));
/* Log Entry */
return PAM_CONV_ERR;
}
/* get the client's public key */
if (!(bn = BN_bin2bn(ibuf, KEYSIZE, NULL))) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM No Public Key -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM No Public Key -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
if (!(gbn = BN_bin2bn(&g, sizeof(g), NULL))) {
BN_clear_free(bn);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM No Primes: GBN -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM No Primes: GBN -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
BN_free(gbn);
BN_clear_free(bn);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM No Primes: PBN -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM No Primes: PBN -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
BN_free(gbn);
BN_clear_free(bn);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM DH was equal to DH_New... Go figure... -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM DH was equal to DH_New... Go figure... -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
dh->g = gbn;
if (!DH_generate_key(dh) || (BN_num_bytes(dh->pub_key) > KEYSIZE)) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Err Generating Key -- Not enough Space? -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Err Generating Key -- Not enough Space? -- %s",
+ strerror(errno));
/* Log Entry */
goto pam_fail;
}
&i) < 0) {
*rbuflen = 0;
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Buffer Encryption Err. -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Buffer Encryption Err. -- %s",
+ strerror(errno));
/* Log Entry */
goto pam_fail;
}
(void *) &buf, NULL) < 0) {
*rbuflen = 0;
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Signature Retieval Failure -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Signature Retieval Failure -- %s",
+ strerror(errno));
/* Log Entry */
goto pam_fail;
}
BN_free(bn);
DH_free(dh);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Fail - Cast Encryption -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Fail - Cast Encryption -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
if (uam_afpserver_option(obj, UAM_OPTION_USERNAME, (void *) &buf,
&i) < 0) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: uam_afpserver_option didn't meet uam_option_username -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: uam_afpserver_option didn't meet uam_option_username -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
len = (unsigned char) *ibuf++;
if ( len > i ) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Signature Retieval Failure -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Signature Retieval Failure -- %s",
+ strerror(errno));
/* Log Entry */
return( AFPERR_PARAM );
}
if (( dhxpwd = uam_getname(buf, i)) == NULL ) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: User entered a null value -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: User entered a null value -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
memcpy(&sessid, ibuf, sizeof(sessid));
if (sessid != dhxhash(obj)) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM Session ID - DHXHash Mismatch -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM Session ID - DHXHash Mismatch -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
&pamh);
if (PAM_error != PAM_SUCCESS) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %m", pam_strerror(pamh,PAM_error));
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %s",
+ pam_strerror(pamh,PAM_error), strerror(errno));
/* Log Entry */
goto logincont_err;
}
if (PAM_error == PAM_MAXTRIES)
err = AFPERR_PWDEXPR;
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %m", pam_strerror(pamh, PAM_error));
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %s",
+ pam_strerror(pamh, PAM_error), strerror(errno));
/* Log Entry */
goto logincont_err;
}
err = AFPERR_PWDCHNG;
#endif
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %m", pam_strerror(pamh, PAM_error));
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %s",
+ pam_strerror(pamh, PAM_error), strerror(errno));
/* Log Entry */
goto logincont_err;
}
PAM_error = pam_setcred(pamh, PAM_CRED_ESTABLISH);
if (PAM_error != PAM_SUCCESS) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %m", pam_strerror(pamh, PAM_error));
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %s",
+ pam_strerror(pamh, PAM_error), strerror(errno));
/* Log Entry */
goto logincont_err;
}
PAM_error = pam_open_session(pamh, 0);
if (PAM_error != PAM_SUCCESS) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %m", pam_strerror(pamh, PAM_error));
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: PAM_Error: %s -- %s",
+ pam_strerror(pamh, PAM_error), strerror(errno));
/* Log Entry */
goto logincont_err;
}
/* check out the session id */
if (sessid != dhxhash(obj)) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Session ID not Equal to DHX Hash -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Session ID not Equal to DHX Hash -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
if (uam_afpserver_option(obj, UAM_OPTION_HOSTNAME,
(void *) &hostname, NULL) < 0) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Hostname Null?? -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Hostname Null?? -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_MISC;
}
* get sent back an incremented random number. */
if (!(bn1 = BN_bin2bn(ibuf, KEYSIZE, NULL))) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Random Number Not the same or not incremented-- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Random Number Not the same or not incremented-- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
if (!(bn2 = BN_bin2bn(randbuf, sizeof(randbuf), NULL))) {
BN_free(bn1);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Random Number Not the same or not incremented -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Random Number Not the same or not incremented -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
BN_free(bn2);
BN_free(bn1);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Random Number did not Zero -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Random Number did not Zero -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
if (!BN_is_one(bn3)) {
BN_free(bn3);
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: After Random Number not Zero, is it one more? -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: After Random Number not Zero, is it one more? -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}
&lpamh);
if (PAM_error != PAM_SUCCESS) {
/* Log Entry */
- syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Needless to say, PAM_error is != to PAM_SUCCESS -- %m");
+ syslog(LOG_INFO, "uams_dhx_pam.c :PAM: Needless to say, PAM_error is != to PAM_SUCCESS -- %s",
+ strerror(errno));
/* Log Entry */
return AFPERR_PARAM;
}