AuthenticationP14V2AuxImpl.Mesa
Copyright Ó 1986, 1991 by Xerox Corporation. All rights reserved.
Generated by Demers.pa at January 15, 1987 10:39:26 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
};
}...