AuthenticationP14V2AuxImpl.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Demers.pa at January 6, 1987 4:10:37 pm PST
using Sirocco [2.0] of January 6, 1987 4:07:33 pm PST
DIRECTORY
Convert,
Rope,
AuthenticationP14V2,
AuthenticationP14V2Aux,
CHNameP2V0Aux;
AuthenticationP14V2AuxImpl: CEDAR PROGRAM
IMPORTS Convert, Rope, CHNameP2V0Aux
EXPORTS AuthenticationP14V2Aux ~ {
OPEN AuthenticationP14V2, AuthenticationP14V2Aux;
ROPE: TYPE ~ Rope.ROPE;
ExposeSeqWords: PUBLIC PROC [arg: SeqWords, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..arg.length) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromCard[arg.body[i]]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeBlock: PUBLIC PROC [arg: Block, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
FOR i: CARDINAL IN [0..4) DO
res ← Rope.Cat[res, IF i>0 THEN ", " ELSE NIL, Convert.RopeFromCard[arg[i]]];
ENDLOOP;
res ← Rope.Concat[res, "]"];
};
ExposeCredentialsPackage: PUBLIC PROC [arg: CredentialsPackage, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "credentials~", ExposeCredentials[arg.credentials, (level+1)], ", "];
res ← Rope.Cat[res, "nonce~", Convert.RopeFromCard[arg.nonce], ", "];
res ← Rope.Cat[res, "recipient~", CHNameP2V0Aux.ExposeThreePartName[arg.recipient, (level+1)], ", "];
res ← Rope.Cat[res, "conversationKey~", ExposeBlock[arg.conversationKey, (level+1)], "]"];
};
ExposeStrongVerifier: PUBLIC PROC [arg: StrongVerifier, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "timeStamp~", Convert.RopeFromCard[arg.timeStamp], ", "];
res ← Rope.Cat[res, "ticks~", Convert.RopeFromCard[arg.ticks], "]"];
};
ExposeCredentialsType: PUBLIC PROC [arg: CredentialsType, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
simple => res ← "simple";
strong => res ← "strong";
ENDCASE => ERROR
};
ExposeCallProblem: PUBLIC PROC [arg: CallProblem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
tooBusy => res ← "tooBusy";
accessRightsInsufficient => res ← "accessRightsInsufficient";
keysUnavailable => res ← "keysUnavailable";
strongKeyDoesNotExist => res ← "strongKeyDoesNotExist";
simpleKeyDoesNotExist => res ← "simpleKeyDoesNotExist";
strongKeyAlreadyRegistered => res ← "strongKeyAlreadyRegistered";
simpleKeyAlreadyRegistered => res ← "simpleKeyAlreadyRegistered";
domainForNewKeyUnavailable => res ← "domainForNewKeyUnavailable";
domainForNewKeyUnknown => res ← "domainForNewKeyUnknown";
badKey => res ← "badKey";
badName => res ← "badName";
databaseFull => res ← "databaseFull";
other => res ← "other";
ENDCASE => ERROR
};
ExposeStrongCredentials: PUBLIC PROC [arg: StrongCredentials, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "conversationKey~", ExposeBlock[arg.conversationKey, (level+1)], ", "];
res ← Rope.Cat[res, "expirationTime~", Convert.RopeFromCard[arg.expirationTime], ", "];
res ← Rope.Cat[res, "initiator~", CHNameP2V0Aux.ExposeThreePartName[arg.initiator, (level+1)], "]"];
};
ExposeWhich: PUBLIC PROC [arg: Which, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
notApplicable => res ← "notApplicable";
initiator => res ← "initiator";
recipient => res ← "recipient";
client => res ← "client";
ENDCASE => ERROR
};
ExposeCredentials: PUBLIC PROC [arg: Credentials, level: NAT] RETURNS [res: ROPE] ~ {
res ← "[";
res ← Rope.Cat[res, "type~", ExposeCredentialsType[arg.type, (level+1)], ", "];
res ← Rope.Cat[res, "value~", ExposeSeqWords[arg.value, (level+1)], "]"];
};
ExposeProblem: PUBLIC PROC [arg: Problem, level: NAT] RETURNS [res: ROPE] ~ {
SELECT arg FROM
credentialsInvalid => res ← "credentialsInvalid";
verifierInvalid => res ← "verifierInvalid";
verifierExpired => res ← "verifierExpired";
verifierReused => res ← "verifierReused";
credentialsExpired => res ← "credentialsExpired";
inappropriateCredentials => res ← "inappropriateCredentials";
ENDCASE => ERROR
};
}...