Annotation of 43BSD/contrib/xns/examples/authchtest/creds.c, revision 1.1.1.1

1.1       root        1: #include "BasicAuthentication_support.c"
                      2: #include <ctype.h>
                      3: 
                      4: static Cardinal
                      5: hashpass(hpw)
                      6:        char *hpw;
                      7: {
                      8:        unsigned long hash;
                      9:        register char c;
                     10: 
                     11:        hash = 0;
                     12:        while ((c = *hpw++) != '\0') {
                     13:                hash = (hash<<16) + (isupper(c) ? tolower(c) : c);
                     14:                hash %= 65357;
                     15:        }
                     16:        return((Cardinal) hash);
                     17: }
                     18: 
                     19: 
                     20: /*
                     21:  * Given an XNS name and password, return the appropriate
                     22:  * credentials and verifier associated with that name.
                     23:  * Per Authentication Protocol, XSIS ....
                     24:  */
                     25: MakeSimpleCredentialsAndVerifier(name, pwd, credentials, verifier)
                     26:        Clearinghouse_Name *name;       /* the XNS user, in 3 fields */
                     27:        char *pwd;                      /* password, a UNIX string */
                     28:        Credentials *credentials;
                     29:        Verifier *verifier;
                     30: {
                     31:        Cardinal length;
                     32:        Unspecified *data, *buf, *seq;
                     33: 
                     34:        credentials->type = simple;
                     35:        length = sizeof_Clearinghouse_Name(name);
                     36:        data = Allocate(length);
                     37:        (void) externalize_Clearinghouse_Name(name,data);
                     38:        seq = credentials->value.sequence = Allocate(length);
                     39:        credentials->value.length = length;
                     40:        buf = data;
                     41:        for ( ; length > 0; length--, seq++)
                     42:            buf += internalize_Unspecified(seq, buf);
                     43:        free(data);
                     44: 
                     45:        verifier->length = 1;
                     46:        verifier->sequence = Allocate(sizeof_Unspecified(0));
                     47:        verifier->sequence[0] = (Unspecified) hashpass(pwd);
                     48: }
                     49: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.