-- Module DistributedOperations (X.518:08/2005) DistributedOperations {joint-iso-itu-t ds(5) module(1) distributedOperations(3) 4} DEFINITIONS ::= BEGIN -- EXPORTS All -- The types and values defined in this module are exported for use in the other ASN.1 modules contained -- within the Directory Specifications, and for the use of other applications which will use them to access -- Directory services. Other applications may use them for their own purposes, but this will not constrain -- extensions and modifications needed to maintain or improve the Directory service. IMPORTS -- from ITU-T Rec. X.501 | ISO/IEC 9594-2 basicAccessControl, dap, directoryAbstractService, enhancedSecurity, informationFramework, selectedAttributeTypes, serviceAdministration FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 4} DistinguishedName, Name, RDNSequence, Attribute FROM InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) 4} MRMapping, SearchRuleId FROM ServiceAdministration {joint-iso-itu-t ds(5) module(1) serviceAdministration(33) 4} -- AuthenticationLevel -- FROM BasicAccessControl {joint-iso-itu-t ds(5) module(1) -- basicAccessControl(24) 4} OPTIONALLY-PROTECTED{} FROM EnhancedSecurity {joint-iso-itu-t ds(5) module(1) enhancedSecurity(28) 4} -- from ITU-T Rec. X.511 | ISO/IEC 9594-3 abandon, addEntry, CommonResults, compare, directoryBind, directoryUnbind, list, modifyDN, modifyEntry, read, referral, removeEntry, search, SecurityParameters, AbandonArgument, AbandonResult, AddEntryArgument, AddEntryResult, CompareArgument, CompareResult, ListArgument, ListResult, ModifyDNArgument, ModifyDNResult, ModifyEntryArgument, ModifyEntryResult, ReadArgument, ReadResult, RemoveEntryArgument, RemoveEntryResult, SearchArgument, SearchResult, DirectoryBindArgument, DirectoryBindResult, DirectoryBindError FROM DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) directoryAbstractService(2) 4} -- from ITU-T Rec. X.519 | ISO/IEC 9594-5 id-errcode-dsaReferral FROM DirectoryAccessProtocol {joint-iso-itu-t ds(5) module(1) dap(11) 4} -- from ITU-T Rec. X.520 | ISO/IEC 9594-6 DirectoryString{}, PresentationAddress, ProtocolInformation, UniqueIdentifier FROM SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1) selectedAttributeTypes(5) 4} -- from ITU-T Rec. X.880 | ISO/IEC 13712-1 ERROR, OPERATION FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}--; AlgorithmIdentifier FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) authenticationFramework(7) 4}; -- parameterized type for deriving chained operations --chained{OPERATION:operation} OPERATION ::= { -- ARGUMENT OPTIONALLY-PROTECTED -- {SET {chainedArgument ChainingArguments, -- argument [0] operation.&ArgumentType}} -- RESULT OPTIONALLY-PROTECTED -- {SET {chainedResult ChainingResults, -- result [0] operation.&ResultType}} -- ERRORS -- {operation.&Errors EXCEPT referral | dsaReferral} -- CODE operation.&operationCode --} -- bind and unbind operations --dSABind OPERATION ::= directoryBind DSASystemBindArgument ::= DirectoryBindArgument DSASystemBindResult ::= DirectoryBindArgument DSASystemBindError ::= DirectoryBindError --dSAUnbind OPERATION ::= directoryUnbind -- chained operations --chainedRead OPERATION ::= chained{read} -- expand chained{} macro ChainedReadArgumentData ::= SET { chainedArgument ChainingArguments, readArgument [0] ReadArgument } ChainedReadArgument ::= CHOICE { unsignedChainedReadArgument ChainedReadArgumentData, signedChainedReadArgument SEQUENCE { chainedReadArgument ChainedReadArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedReadResultData ::= SET { chainedResults ChainingResults, readResult [0] ReadResult } ChainedReadResult ::= CHOICE { unsignedChainedReadResult ChainedReadResultData, signedChainedReadResult SEQUENCE { chainedReadResult ChainedReadResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } --chainedCompare OPERATION ::= chained{compare} -- expand chained{} macro ChainedCompareArgumentData ::= SET { chainedArgument ChainingArguments, compareArgument [0] CompareArgument } ChainedCompareArgument ::= CHOICE { unsignedChainedCompareArgument ChainedCompareArgumentData, signedChainedCompareArgument SEQUENCE { chainedCompareArgument ChainedCompareArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedCompareResultData ::= SET { chainedResults ChainingResults, compareResult [0] CompareResult } ChainedCompareResult ::= CHOICE { unsignedChainedCompareResult ChainedCompareResultData, signedChainedCompareResult SEQUENCE { chainedCompareResult ChainedCompareResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } --chainedAbandon OPERATION ::= abandon ChainedAbandonArgument ::= AbandonArgument ChainedAbandonResult ::= AbandonResult --chainedList OPERATION ::= chained{list} -- expand chained{} macro ChainedListArgumentData ::= SET { chainedArgument ChainingArguments, listArgument [0] ListArgument } ChainedListArgument ::= CHOICE { unsignedChainedListArgument ChainedListArgumentData, signedChainedListArgument SEQUENCE { chainedListArgument ChainedListArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedListResultData ::= SET { chainedResults ChainingResults, listResult [0] ListResult } ChainedListResult ::= CHOICE { unsignedChainedListResult ChainedListResultData, signedChainedListResult SEQUENCE { chainedListResult ChainedListResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } --chainedSearch OPERATION ::= chained{search} -- expand chained{} macro ChainedSearchArgumentData ::= SET { chainedArgument ChainingArguments, searchArgument [0] SearchArgument } ChainedSearchArgument ::= CHOICE { unsignedChainedSearchArgument ChainedSearchArgumentData, signedChainedSearchArgument SEQUENCE { chainedSearchArgument ChainedSearchArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedSearchResultData ::= SET { chainedResults ChainingResults, searchResult [0] SearchResult } ChainedSearchResult ::= CHOICE { unsignedChainedSearchResult ChainedSearchResultData, signedChainedSearchResult SEQUENCE { chainedSearchResult ChainedSearchResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } --chainedAddEntry OPERATION ::= chained{addEntry} -- expand chained{} macro ChainedAddEntryArgumentData ::= SET { chainedArgument ChainingArguments, addEntryArgument [0] AddEntryArgument } ChainedAddEntryArgument ::= CHOICE { unsignedChainedAddEntryArgument ChainedAddEntryArgumentData, signedChainedAddEntryArgument SEQUENCE { chainedAddEntryArgument ChainedAddEntryArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedAddEntryResultData ::= SET { chainedResults ChainingResults, addEntryResult [0] AddEntryResult } ChainedAddEntryResult ::= CHOICE { unsignedChainedAddEntryResult ChainedAddEntryResultData, signedChainedAddEntryResult SEQUENCE { chainedAddEntryResult ChainedAddEntryResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } --chainedRemoveEntry OPERATION ::= chained{removeEntry} -- expand chained{} macro ChainedRemoveEntryArgumentData ::= SET { chainedArgument ChainingArguments, removeEntryArgument [0] RemoveEntryArgument } ChainedRemoveEntryArgument ::= CHOICE { unsignedChainedRemoveEntryArgument ChainedRemoveEntryArgumentData, signedChainedRemoveEntryArgument SEQUENCE { chainedRemoveEntryArgument ChainedRemoveEntryArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedRemoveEntryResultData ::= SET { chainedResults ChainingResults, removeEntryResult [0] RemoveEntryResult } ChainedRemoveEntryResult ::= CHOICE { unsignedChainedRemoveEntryResult ChainedRemoveEntryResultData, signedChainedRemoveEntryResult SEQUENCE { chainedRemoveEntryResult ChainedRemoveEntryResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } --chainedModifyEntry OPERATION ::= chained{modifyEntry} -- expand chained{} macro ChainedModifyEntryArgumentData ::= SET { chainedArgument ChainingArguments, modifyEntryArgument [0] ModifyEntryArgument } ChainedModifyEntryArgument ::= CHOICE { unsignedChainedModifyEntryArgument ChainedModifyEntryArgumentData, signedChainedModifyEntryArgument SEQUENCE { chainedModifyEntryArgument ChainedModifyEntryArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedModifyEntryResultData ::= SET { chainedResults ChainingResults, modifyEntryResult [0] ModifyEntryResult } ChainedModifyEntryResult ::= CHOICE { unsignedChainedModifyEntryResult ChainedModifyEntryResultData, signedChainedModifyEntryResult SEQUENCE { chainedModifyEntryResult ChainedModifyEntryResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } --chainedModifyDN OPERATION ::= chained{modifyDN} -- expand chained{} macro ChainedModifyDNArgumentData ::= SET { chainedArgument ChainingArguments, modifyDNArgument [0] ModifyDNArgument } ChainedModifyDNArgument ::= CHOICE { unsignedChainedModifyDNArgument ChainedModifyDNArgumentData, signedChainedModifyDNArgument SEQUENCE { chainedModifyDNArgument ChainedModifyDNArgumentData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } ChainedModifyDNResultData ::= SET { chainedResults ChainingResults, modifyDNResult [0] ModifyDNResult } ChainedModifyDNResult ::= CHOICE { unsignedChainedModifyDNResult ChainedModifyDNResultData, signedChainedModifyDNResult SEQUENCE { chainedModifyDNResult ChainedModifyDNResultData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } -- errors and parameters DSAReferralData -- ERROR-- ::= -- { -- PARAMETER OPTIONALLY-PROTECTED -- {--SET {reference [0] ContinuationReference, contextPrefix [1] DistinguishedName OPTIONAL, -- COMPONENTS OF CommonResults}} securityParameters [30] SecurityParameters OPTIONAL, performer [29] DistinguishedName OPTIONAL, aliasDereferenced [28] BOOLEAN DEFAULT FALSE, notification [27] SEQUENCE --SIZE (1..MAX)-- OF Attribute OPTIONAL -- CODE id-errcode-dsaReferral } -- expand OPTIONALLY-PROTECTED macro DSAReferral ::= CHOICE { unsignedDSAReferral DSAReferralData, signedDSAReferral SEQUENCE { dsaReferral DSAReferralData, algorithmIdentifier AlgorithmIdentifier, encrypted BIT STRING } } -- common arguments and results ChainingArguments ::= SET { originator [0] DistinguishedName OPTIONAL, targetObject [1] DistinguishedName OPTIONAL, operationProgress [2] OperationProgress DEFAULT {nameResolutionPhase notStarted}, traceInformation [3] TraceInformation, aliasDereferenced [4] BOOLEAN DEFAULT FALSE, aliasedRDNs [5] INTEGER OPTIONAL, -- only present in 1988 systems returnCrossRefs [6] BOOLEAN DEFAULT FALSE, referenceType [7] ReferenceType DEFAULT superior, info [8] DomainInfo OPTIONAL, timeLimit [9] Time OPTIONAL, securityParameters [10] SecurityParameters DEFAULT {}, entryOnly [11] BOOLEAN DEFAULT FALSE, uniqueIdentifier [12] UniqueIdentifier OPTIONAL, authenticationLevel [13] AuthenticationLevel OPTIONAL, exclusions [14] Exclusions OPTIONAL, excludeShadows [15] BOOLEAN DEFAULT FALSE, nameResolveOnMaster [16] BOOLEAN DEFAULT FALSE, operationIdentifier [17] INTEGER OPTIONAL, searchRuleId [18] SearchRuleId OPTIONAL, chainedRelaxation [19] MRMapping OPTIONAL, relatedEntry [20] INTEGER OPTIONAL, dspPaging [21] BOOLEAN DEFAULT FALSE, nonDapPdu [22] ENUMERATED { ldap (0) } OPTIONAL, streamedResults [23] INTEGER OPTIONAL, excludeWriteableCopies [24] BOOLEAN DEFAULT FALSE } Time ::= CHOICE {utcTime UTCTime, generalizedTime GeneralizedTime } DomainInfo ::= --ABSTRACT-SYNTAX.&Type-- OBJECT IDENTIFIER ChainingResults ::= SET { info [0] DomainInfo OPTIONAL, crossReferences [1] SEQUENCE --SIZE (1..MAX)-- OF CrossReference OPTIONAL, securityParameters [2] SecurityParameters DEFAULT {}, alreadySearched [3] Exclusions OPTIONAL } CrossReference ::= SET { contextPrefix [0] DistinguishedName, accessPoint [1] AccessPointInformation } OperationProgress ::= SET { nameResolutionPhase [0] ENUMERATED {notStarted(1), proceeding(2), completed(3)}, nextRDNToBeResolved [1] INTEGER OPTIONAL } TraceInformation ::= SEQUENCE OF TraceItem TraceItem ::= SET { dsa [0] Name, targetObject [1] Name OPTIONAL, operationProgress [2] OperationProgress } ReferenceType ::= ENUMERATED { superior(1), subordinate(2), cross(3), nonSpecificSubordinate(4), supplier(5), master(6), immediateSuperior(7), self(8), ditBridge(9)} AccessPoint ::= SET { ae-title [0] Name, address [1] PresentationAddress, protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL, labeledURI [6] LabeledURI OPTIONAL } LabeledURI ::= DirectoryString{--ub-labeledURI--} MasterOrShadowAccessPoint ::= SET { -- COMPONENTS OF AccessPoint, ae-title [0] Name, address [1] PresentationAddress, protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL, category [3] ENUMERATED {master(0), shadow(1)} DEFAULT master, chainingRequired [5] BOOLEAN DEFAULT FALSE } MasterAndShadowAccessPoints ::= SET --SIZE (1..MAX)-- OF MasterOrShadowAccessPoint AccessPointInformation ::= SET { -- COMPONENTS OF MasterOrShadowAccessPoint, ae-title [0] Name, address [1] PresentationAddress, protocolInformation [2] SET --SIZE (1..MAX)-- OF ProtocolInformation OPTIONAL, category [3] ENUMERATED {master(0), shadow(1)} DEFAULT master, chainingRequired [5] BOOLEAN DEFAULT FALSE, additionalPoints [4] MasterAndShadowAccessPoints OPTIONAL } DitBridgeKnowledge ::= SEQUENCE { domainLocalID DirectoryString{--ub-domainLocalID--} OPTIONAL, accessPoints MasterAndShadowAccessPoints } Exclusions ::= SET --SIZE (1..MAX)-- OF RDNSequence ContinuationReference ::= SET { targetObject [0] Name, aliasedRDNs [1] INTEGER OPTIONAL, -- only present in 1988 systems operationProgress [2] OperationProgress, rdnsResolved [3] INTEGER OPTIONAL, referenceType [4] ReferenceType, accessPoints [5] SET OF AccessPointInformation, entryOnly [6] BOOLEAN DEFAULT FALSE, exclusions [7] Exclusions OPTIONAL, returnToDUA [8] BOOLEAN DEFAULT FALSE, nameResolveOnMaster [9] BOOLEAN DEFAULT FALSE } AuthenticationLevel ::= CHOICE { basicLevels SEQUENCE { level ENUMERATED { none(0), simple(1), strong (2) }, localQualifier INTEGER OPTIONAL, signed BOOLEAN DEFAULT FALSE }, other EXTERNAL } END -- DistributedOperations -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D