openafs/src/sgistuff/sgi_auth.c
Marcus Watts 753a316821 death to trailing whitespace
if we're gonna clean up...

Change-Id: I5ab03f29468577b62dacab41a67eadfd8c43f812
Reviewed-on: http://gerrit.openafs.org/2463
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
2010-08-16 21:32:53 -07:00

76 lines
1.9 KiB
C

/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
*
* This software has been released under the terms of the IBM Public
* License. For details, see the LICENSE file in the top-level source
* directory or online at http://www.openafs.org/dl/license10.html
*/
#include <afsconfig.h>
#include <afs/param.h>
#if defined(AFS_SGI_ENV)
#include <limits.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/param.h>
#include <afs/kauth.h>
#include <afs/kautils.h>
extern char *ktc_tkt_string();
/*
* authenticate with AFS
* returns:
* 1 if read password but couldn't authenticate correctly via AFS
* 0 if authenticated via AFS correctly
*/
int
afs_verify(char *uname, /* user name trying to log in */
char *pword, /* password */
afs_int32 * exp, /* expiration time */
int quite)
{ /* no printing */
auto char *reason;
ka_Init(0);
/*
* The basic model for logging in now, is that *if* there
* is a kerberos record for this individual user we will
* trust kerberos (provided the user really has an account
* locally.) If there is no kerberos record (or the password
* were typed incorrectly.) we would attempt to authenticate
* against the local password file entry. Naturally, if
* both fail we use existing failure code.
*/
if (ka_UserAuthenticateGeneral(KA_USERAUTH_VERSION + KA_USERAUTH_DOSETPAG, uname, /* kerberos name */
NULL, /* instance */
NULL, /* realm */
pword, /* password */
0, /* default lifetime */
exp, /* spare 1/expiration */
0, /* spare 2 */
&reason /* error string */
)) {
if (!quite) {
printf("Unable to authenticate to AFS because %s\n", reason);
printf("proceeding with local authentication...\n");
}
return 1;
}
/* authenticated successfully */
return 0;
}
char *
afs_gettktstring(void)
{
return ktc_tkt_string();
}
#endif