|
|
1.1 ! root 1: #include <stdio.h> ! 2: /* $Header: Authcredcheck.c,v 1.3 87/03/23 10:25:03 ed Exp $ */ ! 3: ! 4: /* ! 5: * Copyright (c) 1986, 1987 Xerox Corporation. ! 6: */ ! 7: ! 8: /* contains: ! 9: * Auth_Credcheck ! 10: */ ! 11: ! 12: /* $Log: Authcredcheck.c,v $ ! 13: * Revision 1.3 87/03/23 10:25:03 ed ! 14: * Minor change. ! 15: * ! 16: * Revision 1.2 87/01/13 16:37:16 ed ! 17: * Added checks for null credentials formats ! 18: * ! 19: * Revision 1.1 87/01/05 11:50:10 ed ! 20: * Initial revision ! 21: * ! 22: */ ! 23: #include <sys/types.h> ! 24: #include <netns/ns.h> ! 25: #include "Authentication2_defs.h" ! 26: #include <xnscourier/courier.h> ! 27: #include <xnscourier/except.h> ! 28: ! 29: /* ! 30: * This module contains the routine: ! 31: * Boolean Auth_CredCheck(creds, verifier) ! 32: * Credentials creds; ! 33: * Verifier verifier; ! 34: */ ! 35: ! 36: Boolean Auth_CredCheck(creds, verifier) ! 37: Credentials creds; ! 38: Verifier verifier; ! 39: { ! 40: CourierConnection *conn; ! 41: extern CourierConnection *Auth_GetFirstAuth(); ! 42: CheckSimpleCredentialsResults result; ! 43: Boolean retval; ! 44: Unspecified *bp, buffer[SPPMAXDATA]; ! 45: ThreePartName chs_name; ! 46: Cardinal len; ! 47: ! 48: if ( creds.type != simpleCredentials ) ! 49: return(FALSE); ! 50: ! 51: if ( creds.value.length == 0 ) /* nullCredentials */ ! 52: return(TRUE); ! 53: ! 54: externalize_Sequence_of_Unspecified(&creds.value, buffer); ! 55: bp= buffer; ! 56: bp += internalize_Cardinal(&len, bp); ! 57: internalize_SimpleCredentials(&chs_name, bp); ! 58: if ( chs_name.organization[0] == '\0' && chs_name.domain[0] == '\0' && ! 59: chs_name.object[0] == '\0' ) ! 60: return(TRUE); /* is this valid ?? */ ! 61: ! 62: if ((conn = Auth_GetFirstAuth()) == NULL) { ! 63: fprintf(stderr,"Can't open connection to local Authentication service\n"); ! 64: return(FALSE); ! 65: } ! 66: ! 67: DURING { ! 68: result= CheckSimpleCredentials(conn, NULL, creds, verifier); ! 69: } HANDLER { ! 70: return(FALSE); ! 71: } END_HANDLER; ! 72: ! 73: if ( result.ok == TRUE ) ! 74: retval= TRUE; ! 75: else ! 76: retval= FALSE; ! 77: ! 78: CourierClose(conn); ! 79: return(retval); ! 80: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.