|
|
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.