SELECT proc
FROM
10 => {
-- CreateAlias
alias: CHNameP2V0.ThreePartName;
sameAs: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
alias.organization ← CrRPC.GetROPE[h];
alias.domain ← CrRPC.GetROPE[h];
alias.object ← CrRPC.GetROPE[h];
sameAs.organization ← CrRPC.GetROPE[h];
sameAs.domain ← CrRPC.GetROPE[h];
sameAs.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← CreateAlias[h, alias, sameAs, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
14 => {
-- DeleteProperty
name: CHNameP2V0.ThreePartName;
property: CARD;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← DeleteProperty[h, name, property, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
2 => {
-- CreateObject
name: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[] ← CreateObject[h, name, agent];
beginReturn[h];
};
8 => {
-- ListAliases
pattern: CHNameP2V0.ThreePartName;
list: CrRPC.BulkDataSink;
agent: ClearinghouseP2V2.Authenticator;
pattern.organization ← CrRPC.GetROPE[h];
pattern.domain ← CrRPC.GetROPE[h];
pattern.object ← CrRPC.GetROPE[h];
TRUSTED {
list ← CrRPC.GetBulkDataSink[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[] ← ListAliases[h, pattern, list, agent];
beginReturn[h];
};
22 => {
-- DeleteSelf
name: CHNameP2V0.ThreePartName;
property: CARD;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← DeleteSelf[h, name, property, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
16 => {
-- RetrieveItem
pattern: CHNameP2V0.ThreePartName;
property: CARD;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
value: ClearinghouseP2V2.Item;
pattern.organization ← CrRPC.GetROPE[h];
pattern.domain ← CrRPC.GetROPE[h];
pattern.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject, value] ← RetrieveItem[h, pattern, property, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
CrRPC.PutCARDINAL[h, value.length];
FOR i0:
CARDINAL
IN [0..value.length)
DO
CrRPC.PutCARDINAL[h, value.body[i0]];
ENDLOOP;
};
5 => {
-- ListOrganizations
pattern: ROPE;
list: CrRPC.BulkDataSink;
agent: ClearinghouseP2V2.Authenticator;
pattern ← CrRPC.GetROPE[h];
TRUSTED {
list ← CrRPC.GetBulkDataSink[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[] ← ListOrganizations[h, pattern, list, agent];
beginReturn[h];
};
15 => {
-- ListProperties
pattern: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
properties: ClearinghouseP2V2.Properties;
pattern.organization ← CrRPC.GetROPE[h];
pattern.domain ← CrRPC.GetROPE[h];
pattern.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject, properties] ← ListProperties[h, pattern, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
CrRPC.PutCARDINAL[h, properties.length];
FOR i0:
CARDINAL
IN [0..properties.length)
DO
CrRPC.PutCARD[h, properties.body[i0]];
ENDLOOP;
};
18 => {
-- RetrieveMembers
pattern: CHNameP2V0.ThreePartName;
property: CARD;
membership: CrRPC.BulkDataSink;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
pattern.organization ← CrRPC.GetROPE[h];
pattern.domain ← CrRPC.GetROPE[h];
pattern.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
TRUSTED {
membership ← CrRPC.GetBulkDataSink[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← RetrieveMembers[h, pattern, property, membership, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
1 => {
-- ListDomainServed
domains: CrRPC.BulkDataSink;
agent: ClearinghouseP2V2.Authenticator;
TRUSTED {
domains ← CrRPC.GetBulkDataSink[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[] ← ListDomainServed[h, domains, agent];
beginReturn[h];
};
23 => {
-- IsMember
memberOf: CHNameP2V0.ThreePartName;
property: CARD;
secondaryProperty: CARD;
name: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
isMember: BOOLEAN;
distinguishedObject: CHNameP2V0.ThreePartName;
memberOf.organization ← CrRPC.GetROPE[h];
memberOf.domain ← CrRPC.GetROPE[h];
memberOf.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
secondaryProperty ← CrRPC.GetCARD[h];
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[isMember, distinguishedObject] ← IsMember[h, memberOf, property, secondaryProperty, name, agent];
beginReturn[h];
CrRPC.PutBOOL[h, isMember];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
9 => {
-- ListAliasesOf
pattern: CHNameP2V0.ThreePartName;
list: CrRPC.BulkDataSink;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
pattern.organization ← CrRPC.GetROPE[h];
pattern.domain ← CrRPC.GetROPE[h];
pattern.object ← CrRPC.GetROPE[h];
TRUSTED {
list ← CrRPC.GetBulkDataSink[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← ListAliasesOf[h, pattern, list, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
17 => {
-- ChangeItem
name: CHNameP2V0.ThreePartName;
property: CARD;
newValue: ClearinghouseP2V2.Item;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
newValue ← NEW[ClearinghouseP2V2.ItemObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
newValue.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← ChangeItem[h, name, property, newValue, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
6 => {
-- ListDomain
pattern: CHNameP2V0.TwoPartName;
list: CrRPC.BulkDataSink;
agent: ClearinghouseP2V2.Authenticator;
pattern.organization ← CrRPC.GetROPE[h];
pattern.domain ← CrRPC.GetROPE[h];
TRUSTED {
list ← CrRPC.GetBulkDataSink[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[] ← ListDomain[h, pattern, list, agent];
beginReturn[h];
};
21 => {
-- DeleteMember
name: CHNameP2V0.ThreePartName;
property: CARD;
member: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
member.organization ← CrRPC.GetROPE[h];
member.domain ← CrRPC.GetROPE[h];
member.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← DeleteMember[h, name, property, member, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
20 => {
-- AddSelf
name: CHNameP2V0.ThreePartName;
property: CARD;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← AddSelf[h, name, property, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
0 => {
-- RetrieveAddresses
address: ClearinghouseP2V2.NetworkAddressList;
[address] ← RetrieveAddresses[h];
beginReturn[h];
CrRPC.PutCARDINAL[h, address.length];
FOR i0:
CARDINAL
IN [0..address.length)
DO
FOR i1:
CARDINAL
IN [0..2)
DO
CrRPC.PutCARDINAL[h, address.body[i0].network[i1]];
ENDLOOP;
FOR i1:
CARDINAL
IN [0..3)
DO
CrRPC.PutCARDINAL[h, address.body[i0].host[i1]];
ENDLOOP;
CrRPC.PutCARDINAL[h, address.body[i0].socket];
ENDLOOP;
};
11 => {
-- DeleteAlias
alias: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
alias.organization ← CrRPC.GetROPE[h];
alias.domain ← CrRPC.GetROPE[h];
alias.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← DeleteAlias[h, alias, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
4 => {
-- LookupObject
name: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← LookupObject[h, name, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
12 => {
-- AddGroupProperty
name: CHNameP2V0.ThreePartName;
newProperty: CARD;
membership: CrRPC.BulkDataSource;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
newProperty ← CrRPC.GetCARD[h];
TRUSTED {
membership ← CrRPC.GetBulkDataSource[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← AddGroupProperty[h, name, newProperty, membership, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
3 => {
-- DeleteObject
name: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[] ← DeleteObject[h, name, agent];
beginReturn[h];
};
13 => {
-- AddItemProperty
name: CHNameP2V0.ThreePartName;
newProperty: CARD;
value: ClearinghouseP2V2.Item;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
newProperty ← CrRPC.GetCARD[h];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
value ← NEW[ClearinghouseP2V2.ItemObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← AddItemProperty[h, name, newProperty, value, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
19 => {
-- AddMember
name: CHNameP2V0.ThreePartName;
property: CARD;
newMember: CHNameP2V0.ThreePartName;
agent: ClearinghouseP2V2.Authenticator;
distinguishedObject: CHNameP2V0.ThreePartName;
name.organization ← CrRPC.GetROPE[h];
name.domain ← CrRPC.GetROPE[h];
name.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
newMember.organization ← CrRPC.GetROPE[h];
newMember.domain ← CrRPC.GetROPE[h];
newMember.object ← CrRPC.GetROPE[h];
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[distinguishedObject] ← AddMember[h, name, property, newMember, agent];
beginReturn[h];
CrRPC.PutROPE[h, distinguishedObject.organization];
CrRPC.PutROPE[h, distinguishedObject.domain];
CrRPC.PutROPE[h, distinguishedObject.object];
};
7 => {
-- ListObjects
pattern: CHNameP2V0.ThreePartName;
property: CARD;
list: CrRPC.BulkDataSink;
agent: ClearinghouseP2V2.Authenticator;
pattern.organization ← CrRPC.GetROPE[h];
pattern.domain ← CrRPC.GetROPE[h];
pattern.object ← CrRPC.GetROPE[h];
property ← CrRPC.GetCARD[h];
TRUSTED {
list ← CrRPC.GetBulkDataSink[h];
};
agent.credentials.type ← VAL[CrRPC.GetCARDINAL[h]];
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.credentials.value ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.credentials.value.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
{
length1: CARDINAL ~ CrRPC.GetCARDINAL[h];
agent.verifier ← NEW[AuthenticationP14V2.SeqWordsObject[length1]];
FOR i0:
CARDINAL
IN [0..length1)
DO
agent.verifier.body[i0] ← CrRPC.GetCARDINAL[h];
ENDLOOP;
};
[] ← ListObjects[h, pattern, property, list, agent];
beginReturn[h];
};
ENDCASE => {
beginReject[h, CrRPC.noSuchProcedure];
};