AuthenticationP14V2ClientImpl.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Demers.pa at January 6, 1987 4:10:38 pm PST
using Sirocco [2.0] of January 6, 1987 4:07:33 pm PST
DIRECTORY
CrRPC,
TimeP15V2,
CHNameP2V0,
AuthenticationP14V2;
AuthenticationP14V2ClientImpl: CEDAR PROGRAM
IMPORTS CrRPC
EXPORTS AuthenticationP14V2 ~ {
OPEN AuthenticationP14V2;
Errors
CallError: PUBLIC CallErrorType ~ CODE;
AuthenticationError: PUBLIC AuthenticationErrorType ~ CODE;
GetErrorProc
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"];
};
};
Remote Procedures --
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];
};
Unmarshal / Marshal Procs --
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;
};
}...