DIRECTORY CrRPC, TimeP15V2, CHNameP2V0, AuthenticationP14V2; AuthenticationP14V2ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS AuthenticationP14V2 ~ { OPEN AuthenticationP14V2; CallError: PUBLIC CallErrorType ~ CODE; AuthenticationError: PUBLIC AuthenticationErrorType ~ CODE; GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 1 => { problem: CallProblem; whichArg: Which; problem ¬ VAL[CrRPC.GetCard16[s]]; whichArg ¬ VAL[CrRPC.GetCard16[s]]; ERROR CallError[problem, whichArg] }; 2 => { problem: Problem; problem ¬ VAL[CrRPC.GetCard16[s]]; ERROR AuthenticationError[problem] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; CheckSimpleCredentials: PUBLIC CheckSimpleCredentialsType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard16[s, ORD[credentials.type]]; MProc1[h, s, credentials.value]; MProc1[h, s, verifier]; }; GetResults: CrRPC.GetResultsProc ~ { ok ¬ CrRPC.GetBool[s]; }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ChangeStrongKey: PUBLIC ChangeStrongKeyType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard16[s, ORD[credentials.type]]; MProc1[h, s, credentials.value]; MProc1[h, s, verifier]; FOR i2: CARDINAL IN [0..4) DO CrRPC.PutCard16[s, newKey[i2]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~4 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteStrongKey: PUBLIC DeleteStrongKeyType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard16[s, ORD[credentials.type]]; MProc1[h, s, credentials.value]; MProc1[h, s, verifier]; CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~5 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CreateStrongKey: PUBLIC CreateStrongKeyType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard16[s, ORD[credentials.type]]; MProc1[h, s, credentials.value]; MProc1[h, s, verifier]; CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; FOR i3: CARDINAL IN [0..4) DO CrRPC.PutCard16[s, key[i3]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ChangeSimpleKey: PUBLIC ChangeSimpleKeyType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard16[s, ORD[credentials.type]]; MProc1[h, s, credentials.value]; MProc1[h, s, verifier]; CrRPC.PutCard16[s, newKey]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~7 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteSimpleKey: PUBLIC DeleteSimpleKeyType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard16[s, ORD[credentials.type]]; MProc1[h, s, credentials.value]; MProc1[h, s, verifier]; CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~8 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CreateSimpleKey: PUBLIC CreateSimpleKeyType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard16[s, ORD[credentials.type]]; MProc1[h, s, credentials.value]; MProc1[h, s, verifier]; CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; CrRPC.PutCard16[s, key]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~6 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetStrongCredentials: PUBLIC GetStrongCredentialsType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, initiator.organization]; CrRPC.PutRope[s, initiator.domain]; CrRPC.PutRope[s, initiator.object]; CrRPC.PutRope[s, recipient.organization]; CrRPC.PutRope[s, recipient.domain]; CrRPC.PutRope[s, recipient.object]; CrRPC.PutCard32[s, nonce]; }; GetResults: CrRPC.GetResultsProc ~ { encryptedCredentialsPackage ¬ UProc4[h, s]; }; CrRPC.Call[h~h, remotePgm~14, remotePgmVersion~2, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; UProc4: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: SeqWords] ~ { { length6: CARDINAL ~ CrRPC.GetCard16[s]; res ¬ NEW[SeqWordsObject[length6]]; FOR i5: CARDINAL IN [0..length6) DO res.body[i5] ¬ CrRPC.GetCard16[s]; ENDLOOP; }; }; MProc1: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: SeqWords] ~ { CrRPC.PutCard16[s, val.length]; FOR i7: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, val.body[i7]]; ENDLOOP; }; }... $ AuthenticationP14V2ClientImpl.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 Errors GetErrorProc Remote Procedures -- Unmarshal / Marshal Procs -- Κθ•NewlineDelimiter –(cedarcode) style™šœ"™"Jšœ Οeœ6™BJšœ:™:Jšœ5™5Icode˜—šΟk ˜ K˜K˜ K˜ K˜—K˜šΟnœžœž˜,Kšžœ˜ Kšžœ˜Kšžœ˜—K˜šœ™K˜K˜KšŸ œžœžœ˜'K˜KšŸœžœžœ˜;K˜—šœ ™ K˜šŸœ˜ šžœž˜˜K˜K˜Kšœ žœ˜"Kšœ žœ˜#Kšžœ˜"K˜—˜K˜Kšœ žœ˜"Kšžœ˜"K˜—šžœ˜ Kšžœ8˜=K˜——K˜—K˜—šœ™K˜šŸœžœ˜=šŸœ˜Kšœžœ˜*K˜ K˜K˜—šŸ œ˜$K˜K˜K˜—K˜|K˜—K˜šŸœžœ˜/šŸœ˜Kšœžœ˜*K˜ K˜šžœžœžœž˜K˜Kšžœ˜—K˜—šŸ œ˜$Kšž˜K˜K˜—K˜|K˜—K˜šŸœžœ˜/šŸœ˜Kšœžœ˜*K˜ K˜K˜$K˜K˜K˜—šŸ œ˜$Kšž˜K˜K˜—K˜|K˜—K˜šŸœžœ˜/šŸœ˜Kšœžœ˜*K˜ K˜K˜$K˜K˜šžœžœžœž˜K˜Kšžœ˜—K˜—šŸ œ˜$Kšž˜K˜K˜—K˜|K˜—K˜šŸœžœ˜/šŸœ˜Kšœžœ˜*K˜ K˜K˜K˜—šŸ œ˜$Kšž˜K˜K˜—K˜|K˜—K˜šŸœžœ˜/šŸœ˜Kšœžœ˜*K˜ K˜K˜$K˜K˜K˜—šŸ œ˜$Kšž˜K˜K˜—K˜|K˜—K˜šŸœžœ˜/šŸœ˜Kšœžœ˜*K˜ K˜K˜$K˜K˜K˜K˜—šŸ œ˜$Kšž˜K˜K˜—K˜|K˜—K˜šŸœžœ˜9šŸœ˜K˜)K˜#K˜#K˜)K˜#K˜#K˜K˜—šŸ œ˜$K˜+K˜K˜—K˜|K˜—K˜—šœ™K˜K˜šŸœžœžœžœ˜K˜Kšœ žœ˜'Kšœžœ˜$šžœžœžœž˜#K˜"Kšžœ˜—K˜—K˜—K˜šŸœžœžœ˜BK˜šžœžœžœž˜&K˜!Kšžœ˜—K˜—K˜—K˜K˜—…—ΈΔ