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

1.1     ! root        1: -- $Header: Authentication3.cr,v 1.1 86/12/10 13:34:24 ed Exp $ --
        !             2: 
        !             3: -- $Log:       Authentication3.cr,v $
        !             4: -- Revision 1.1  86/12/10  13:34:24  ed
        !             5: -- Initial revision
        !             6: --
        !             7: --
        !             8: 
        !             9: Authentication: PROGRAM 14 VERSION 3 =
        !            10: 
        !            11: BEGIN
        !            12:     DEPENDS UPON Time(15) VERSION 2;
        !            13: 
        !            14: -- faked dependency: should be DEPENDS UPON Clearinghouse(2) VERSION 3; --
        !            15: 
        !            16: Organization: TYPE = STRING;
        !            17: Domain: TYPE = STRING;
        !            18: Object: TYPE = STRING;
        !            19: 
        !            20: ThreePartName: TYPE = RECORD [
        !            21:     organization: Organization,
        !            22:     domain: Domain,
        !            23:     object: Object
        !            24:     ];
        !            25: 
        !            26: Clearinghouse_Name:  TYPE = ThreePartName;
        !            27: 
        !            28: 
        !            29: -- TYPES --
        !            30: 
        !            31: -- Types supporting encoding --
        !            32: 
        !            33: Key: TYPE = ARRAY 4 OF UNSPECIFIED;  -- lsb of each octet is odd parity bit --
        !            34: 
        !            35: Block: TYPE = ARRAY 4 OF UNSPECIFIED;  -- cipher text or plain text block --
        !            36: 
        !            37: HashedPassword: TYPE = CARDINAL;
        !            38: 
        !            39: -- Types describing credentials and verifiers --
        !            40: 
        !            41: CredentialsType: TYPE = {simple(0), strong(1)};
        !            42: 
        !            43: simpleCredentials: CredentialsType = simple;
        !            44: 
        !            45: Credentials: TYPE = RECORD [type: CredentialsType,
        !            46:                            value: SEQUENCE OF UNSPECIFIED];
        !            47: 
        !            48: -- nullCredentials doesn't work yet --
        !            49: -- nullCredentials: Credentials = [type: simple, value: []]; --
        !            50: 
        !            51: CredentialsPackage: TYPE = RECORD [
        !            52:        credentials: Credentials,
        !            53:        nonce: LONG CARDINAL,
        !            54:        recipient: Clearinghouse_Name,
        !            55:        conversationKey: Key ];
        !            56: 
        !            57: -- instances of the following type must be a multiple of 64 bits, padded --
        !            58: -- with zeros, before encryption --
        !            59: 
        !            60: StrongCredentials: TYPE = RECORD [
        !            61:        conversationKey: Key,
        !            62:        expirationTime: Time.Time,
        !            63:        initiator: Clearinghouse_Name ];
        !            64: 
        !            65: SimpleCredentials: TYPE = Clearinghouse_Name;
        !            66: 
        !            67: Verifier: TYPE = SEQUENCE 12 OF UNSPECIFIED;
        !            68: 
        !            69: StrongVerifier: TYPE = RECORD [
        !            70:        timeStamp: Time.Time,
        !            71:        ticks: LONG CARDINAL ];
        !            72: 
        !            73: SimpleVerifier: TYPE = HashedPassword;
        !            74: 
        !            75: Proxy: TYPE = SEQUENCE OF UNSPECIFIED;
        !            76: 
        !            77: -- instances of the following type must be a multiple of 64 bits, padded --
        !            78: -- with zeros, before encryption --
        !            79: 
        !            80: StrongProxy: TYPE = RECORD [
        !            81:        randomBits: Block,
        !            82:        expirationTime: Time.Time,
        !            83:        agent: Clearinghouse_Name];
        !            84: 
        !            85: SimpleProxy: TYPE = BOOLEAN;
        !            86: 
        !            87: -- ERRORS --
        !            88: 
        !            89: Problem: TYPE = {
        !            90:     credentialsInvalid(0),             -- credentials unacceptable --
        !            91:     verifierInvalid(1),                        -- verifier unacceptable --
        !            92:     verifierExpired(2),                        -- the verifier was too old --
        !            93:     verifierReused(3),                 -- the verifier has been used before --
        !            94:     credentialsExpired(4),             -- the credentials have expired --
        !            95:     inappropriateCredentials(5),       -- passed strong, wanted simple, or vica versa --
        !            96:     proxyInvalid(6),                   -- proxy has invalid format --
        !            97:     proxyExpired(7),                   -- the proxy was too old --
        !            98:     otherProblem(8) };
        !            99: AuthenticationError: ERROR[problem: Problem] = 2;
        !           100: 
        !           101: CallProblem: TYPE = {
        !           102:     tooBusy(0),                                -- server is too busy to service this request --
        !           103:     accessRightsInsufficient(1),       -- operation prevented by access controls --
        !           104:     keysUnavailable(2),                        -- the server which holds the required key was inaccessible --
        !           105:     strongKeyDoesNotExist(3),          -- a strong key critical to this operation has not been registered --
        !           106:     simpleKeyDoesNotExist(4),          -- a simple key critical to this operation has not been registered --
        !           107:     strongKeyAlreadyRegistered(5),     -- cannot create a strong key for an entity which already has one --
        !           108:     simpleKeyAlreadyRegistered(6),     -- cannot create a simple key for an entity which already has one --
        !           109:     domainForNewKeyUnavailable(7),     -- cannot create a new key because the domain to hold it is unaccessible --
        !           110:     domainForNewKeyUnknown(8),         -- cannot create a new key because the domain to hold it is unknown --
        !           111:     badKey(9),                         -- bad key passed to CreateStrongKey or ChangeStrongKey --
        !           112:     badName(10),                       -- bad name passed to CreateStrongKey or ChangeStrongKey --
        !           113:     databaseFull(11),                  -- no more data can be added to the Authentication database --
        !           114:     otherCallProblem(12) };
        !           115: Which: TYPE = {notApplicable(0), initiator(1), recipient(2), agent(3) };
        !           116: CallError: ERROR [problem: CallProblem, whichArg: Which] = 1;
        !           117: 
        !           118: 
        !           119: -- PROCEDURES --
        !           120: 
        !           121: -- Strong Authentication --
        !           122: 
        !           123: GetStrongCredentials: PROCEDURE [
        !           124:                initiator, recipient: Clearinghouse_Name,
        !           125:                nonce: LONG CARDINAL ]
        !           126:        RETURNS [ credentialsPackage: SEQUENCE OF UNSPECIFIED ]
        !           127:                -- encrypted with the initiator's strong key --
        !           128:        REPORTS [ CallError ] = 1;
        !           129: 
        !           130: TradeProxyForCredentials: PROCEDURE [
        !           131:                credentials: Credentials, verifier: Verifier,
        !           132:                initiator: Clearinghouse_Name, proxy: Proxy,
        !           133:                recipient: Clearinghouse_Name, nonce: LONG CARDINAL ]
        !           134:        RETURNS [ credentialsPackage: SEQUENCE OF UNSPECIFIED,
        !           135:                -- enxrypted with the agent's strong key --
        !           136:                  proxyForRecipient: Proxy ]
        !           137:        REPORTS [ AuthenticationError, CallError ] = 9;
        !           138: 
        !           139: CreateStrongKey: PROCEDURE [
        !           140:                credentials: Credentials, verifier: Verifier,
        !           141:                name: Clearinghouse_Name, encryptedKey: Block ]
        !           142:        REPORTS [ AuthenticationError, CallError ] = 3;
        !           143: 
        !           144: ChangeStrongKey: PROCEDURE [
        !           145:                credentials: Credentials, verifier: Verifier,
        !           146:                encryptedNewKey: Block ]
        !           147:        REPORTS [ AuthenticationError, CallError ] = 4;
        !           148: 
        !           149: DeleteStrongKey: PROCEDURE [
        !           150:                credentials: Credentials, verifier: Verifier,
        !           151:                name: Clearinghouse_Name ]
        !           152:        REPORTS [ AuthenticationError, CallError ] = 5;
        !           153: 
        !           154: 
        !           155: -- Simple Authentication -- 
        !           156: 
        !           157: CheckSimpleCredentials: PROCEDURE [
        !           158:                credentials: Credentials, verifier: Verifier ]
        !           159:        RETURNS [ ok: BOOLEAN, initiator: Clearinghouse_Name ]
        !           160:        REPORTS [ AuthenticationError, CallError ] = 2;
        !           161: 
        !           162: CreateSimpleKey: PROCEDURE [
        !           163:                credentials: Credentials, verifier: Verifier,
        !           164:                name: Clearinghouse_Name, key: HashedPassword ]
        !           165:        REPORTS [ AuthenticationError, CallError ] = 6;
        !           166: 
        !           167: ChangeSimpleKey: PROCEDURE [
        !           168:                credentials: Credentials, verifier: Verifier,
        !           169:                newKey: HashedPassword ]
        !           170:        REPORTS [ AuthenticationError, CallError ] = 7;
        !           171: 
        !           172: DeleteSimpleKey: PROCEDURE [
        !           173:                credentials: Credentials, verifier: Verifier,
        !           174:                name: Clearinghouse_Name ]
        !           175:        REPORTS [ AuthenticationError, CallError ] = 8;
        !           176: 
        !           177: 
        !           178: END.

unix.superglobalmegacorp.com

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