Annotation of 43BSDTahoe/new/xns/courierlib/Authentication2.cr, revision 1.1

1.1     ! root        1: -- $Header: Authentication2.cr,v 2.2 86/06/05 08:37:06 jqj Exp $ --
        !             2: 
        !             3: -- $Log:       Authentication2.cr,v $
        !             4: -- Revision 2.2  86/06/05  08:37:06  jqj
        !             5: -- updated it to actual Authentication V 2 instead of subset
        !             6: -- (compiler has been fixed to support everything)
        !             7: -- 
        !             8: -- Revision 2.0  85/11/21  07:24:00  jqj
        !             9: -- 4.3BSD standard release, still a small subset
        !            10: -- 
        !            11: -- initial version was:
        !            12: -- a subset of Authentication, hopefully big enough for some testing
        !            13: --
        !            14: 
        !            15: Authentication: PROGRAM 14 VERSION 2 =
        !            16: 
        !            17: BEGIN
        !            18:     DEPENDS UPON Time(15) VERSION 2;
        !            19: 
        !            20: -- faked dependency: should be DEPENDS UPON Clearinghouse(2) VERSION 2; --
        !            21: 
        !            22: Organization: TYPE = STRING;
        !            23: Domain: TYPE = STRING;
        !            24: Object: TYPE = STRING;
        !            25: 
        !            26: ThreePartName: TYPE = RECORD [
        !            27:     organization: Organization,
        !            28:     domain: Domain,
        !            29:     object: Object
        !            30:     ];
        !            31: 
        !            32: Clearinghouse_Name:  TYPE = ThreePartName;
        !            33: 
        !            34: 
        !            35: -- TYPES --
        !            36: 
        !            37: -- Types supporting encoding --
        !            38: 
        !            39: Key: TYPE = ARRAY 4 OF UNSPECIFIED;  -- lsb of each octet is odd parity bit --
        !            40: 
        !            41: Block: TYPE = ARRAY 4 OF UNSPECIFIED;  -- cipher text or plain text block --
        !            42: 
        !            43: HashedPassword: TYPE = CARDINAL;
        !            44: 
        !            45: -- Types describing credentials and verifiers --
        !            46: 
        !            47: CredentialsType: TYPE = {simple(0), strong(1)};
        !            48: 
        !            49: simpleCredentials: CredentialsType = simple;
        !            50: 
        !            51: Credentials: TYPE = RECORD [type: CredentialsType,
        !            52:                            value: SEQUENCE OF UNSPECIFIED];
        !            53: 
        !            54: CredentialsPackage: TYPE = RECORD [
        !            55:        credentials: Credentials,
        !            56:        nonce: LONG CARDINAL,
        !            57:        recipient: Clearinghouse_Name,
        !            58:        conversationKey: Key ];
        !            59: 
        !            60: -- instances of the following type must be a multiple of 64 bits, padded --
        !            61: -- with zeros, before encryption --
        !            62: 
        !            63: StrongCredentials: TYPE = RECORD [
        !            64:        conversationKey: Key,
        !            65:        expirationTime: Time.Time,
        !            66:        initiator: Clearinghouse_Name ];
        !            67: 
        !            68: SimpleCredentials: TYPE = Clearinghouse_Name;
        !            69: 
        !            70: Verifier: TYPE = SEQUENCE 12 OF UNSPECIFIED;
        !            71: 
        !            72: StrongVerifier: TYPE = RECORD [
        !            73:        timeStamp: Time.Time,
        !            74:        ticks: LONG CARDINAL ];
        !            75: 
        !            76: SimpleVerifier: TYPE = HashedPassword;
        !            77: 
        !            78: 
        !            79: -- ERRORS --
        !            80: 
        !            81: Problem: TYPE = {
        !            82:     credentialsInvalid(0),
        !            83:     verifierInvalid(1),
        !            84:     verifierExpired(2),
        !            85:     verifierReused(3),
        !            86:     credentialsExpired(4),
        !            87:     inappropriateCredentials(5) };
        !            88: AuthenticationError: ERROR[problem: Problem] = 2;
        !            89: 
        !            90: CallProblem: TYPE = {
        !            91:     tooBusy(0),
        !            92:     accessRightsInsufficient(1),
        !            93:     keysUnavailable(2),
        !            94:     strongKeyDoesNotExist(3),
        !            95:     simpleKeyDoesNotExist(4),
        !            96:     strongKeyAlreadyRegistered(5),
        !            97:     simpleKeyAlreadyRegistered(6),
        !            98:     domainForNewKeyUnavailable(7),
        !            99:     domainForNewKeyUnknown(8),
        !           100:     badKey(9),
        !           101:     badName(10),
        !           102:     databaseFull(11),
        !           103:     other(12) };
        !           104: Which: TYPE = {notApplicable(0), initiator(1), recipient(2), client(3) };
        !           105: CallError: ERROR [problem: CallProblem, whichArg: Which] = 1;
        !           106: 
        !           107: 
        !           108: -- PROCEDURES --
        !           109: 
        !           110: -- Strong Authentication --
        !           111: 
        !           112: GetStrongCredentials: PROCEDURE [
        !           113:                initiator, recipient: Clearinghouse_Name,
        !           114:                nonce: LONG CARDINAL ]
        !           115:        RETURNS [ credentialsPackage: SEQUENCE OF UNSPECIFIED ]
        !           116:        REPORTS [ CallError ] = 1;
        !           117: 
        !           118: CreateStrongKey: PROCEDURE [
        !           119:                credentials: Credentials, verifier: Verifier,
        !           120:                name: Clearinghouse_Name, key: Key ]
        !           121:        REPORTS [ AuthenticationError, CallError ] = 3;
        !           122: 
        !           123: ChangeStrongKey: PROCEDURE [
        !           124:                credentials: Credentials, verifier: Verifier,
        !           125:                newKey: Block ]
        !           126:        REPORTS [ AuthenticationError, CallError ] = 4;
        !           127: 
        !           128: DeleteStrongKey: PROCEDURE [
        !           129:                credentials: Credentials, verifier: Verifier,
        !           130:                name: Clearinghouse_Name ]
        !           131:        REPORTS [ AuthenticationError, CallError ] = 5;
        !           132: 
        !           133: 
        !           134: -- Simple Authentication -- 
        !           135: 
        !           136: CheckSimpleCredentials: PROCEDURE [
        !           137:                credentials: Credentials, verifier: Verifier ]
        !           138:        RETURNS[ok: BOOLEAN]
        !           139:        REPORTS[AuthenticationError, CallError] = 2;
        !           140: 
        !           141: CreateSimpleKey: PROCEDURE [
        !           142:                credentials: Credentials, verifier: Verifier,
        !           143:                name: Clearinghouse_Name, key: HashedPassword ]
        !           144:        REPORTS[AuthenticationError, CallError] = 6;
        !           145: 
        !           146: ChangeSimpleKey: PROCEDURE [
        !           147:                credentials: Credentials, verifier: Verifier,
        !           148:                newKey: HashedPassword ]
        !           149:        REPORTS[AuthenticationError, CallError] = 7;
        !           150: 
        !           151: DeleteSimpleKey: PROCEDURE [
        !           152:                credentials: Credentials, verifier: Verifier,
        !           153:                name: Clearinghouse_Name ]
        !           154:        REPORTS[AuthenticationError, CallError] = 8;
        !           155: 
        !           156: 
        !           157: END.

unix.superglobalmegacorp.com

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