|
|
1.1 ! root 1: BasicAuthentication: PROGRAM 14 VERSION 2 = ! 2: -- a subset of Authentication, hopefully big enough for some testing -- ! 3: BEGIN ! 4: DEPENDS UPON Time(15) VERSION 2; ! 5: ! 6: -- faked dependency -- ! 7: ! 8: Organization: TYPE = STRING; ! 9: Domain: TYPE = STRING; ! 10: Object: TYPE = STRING; ! 11: ! 12: ThreePartName: TYPE = RECORD [ ! 13: organization: Organization, ! 14: domain: Domain, ! 15: object: Object ! 16: ]; ! 17: ! 18: Clearinghouse_Name: TYPE = ThreePartName; ! 19: ! 20: -- Types -- ! 21: ! 22: CredentialsType: TYPE = {simple(0), strong(1)}; ! 23: ! 24: Credentials: TYPE = RECORD [type: CredentialsType, ! 25: value:SEQUENCE OF UNSPECIFIED]; ! 26: ! 27: SimpleCredentials: TYPE = Clearinghouse_Name; ! 28: ! 29: HashedPassword: TYPE = CARDINAL; ! 30: ! 31: SimpleVerifier: TYPE = HashedPassword; ! 32: ! 33: Verifier: TYPE = SEQUENCE 12 OF UNSPECIFIED; ! 34: ! 35: -- errors -- ! 36: ! 37: Problem: TYPE = { ! 38: credentialsInvalid(0), ! 39: verifierInvalid(1), ! 40: verifierExpiered(2), ! 41: verifierReused(3), ! 42: credentialsExpired(4), ! 43: inappropriateCredeitnals(5) }; ! 44: AuthenticationError: ERROR[problem: Problem] = 2; ! 45: ! 46: CallProblem: TYPE = { ! 47: tooBusy(0), ! 48: accessRightsInsufficient(1), ! 49: keysUnavailable(2), ! 50: strongKeyDoesNotExist(3), ! 51: simpleKeyDoesNotExist(4), ! 52: strongKeyAlreadyRegistered(5), ! 53: simpleKeyAlreadyRegistered(6), ! 54: domainForNewKeyUnavailable(7), ! 55: domainForNewKeyUnknown(8), ! 56: badKey(9), ! 57: badName(10), ! 58: databaseFull(11), ! 59: other(12) }; ! 60: Which: TYPE = {notApplicable(0), initiator(1), recipient(2), client(3) }; ! 61: CallError: ERROR [problem: CallProblem, whichArg: Which] = 1; ! 62: ! 63: -- PROCEDURES -- ! 64: ! 65: CheckSimpleCredentials: PROCEDURE [credentials: Credentials, verifier: Verifier] ! 66: RETURNS[ok: BOOLEAN] ! 67: REPORTS[AuthenticationError, CallError] = 2; ! 68: ! 69: END.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.