WPCL 2BJ|x H   X  6p&6p& I  Hh   c4 P  Fascicle VIII.8 Rec. X.511 PAGE27 ~  HH   c4 P PAGE27 Fascicle VIII.8 Rec. X.511 ~ Hh Hp P X`h!(# X  Ё c4 P  The drawings contained in this Recommendation have been done in AUTOCAD  (S c4 P ANNEX A (J c4 P (to Recommendation X.511) (J Abstract service in ASN.1  This Annex is part of the standard.  H  This Annex includes all of the ASN.1 type, value and macro definitions contained in this Recommendation in the form of the ASN.1 module DirectoryAbstractService .   DirectoryAbstractService {jointISOCCITT ds(5) modules(1) directoryAbstractService(2)}   DEFINITIONS ::=   BEGIN   EXPORTS  hp directory, readPort, searchPort, modifyPort,  hpDirectoryBind, DirectoryBindArgument,  hpDirectoryUnbind,  hpRead, ReadArgument, ReadResult,  hpAbandon, AbandonArgument, AbandonResult,  hpCompare, CompareArgument, CompareResult,  hpList, ListArgument, ListResult,  hpSearch, SearchArgument, SearchResult,  hpAddEntry, AddEntryArgument, AddEntryResult,  hpRemoveEntry, RemoveEntryArgument, RemoveEntryResult,  hpModifyEntry, ModifyEntryArgument, ModifyEntryResult,  hpModifyRDN, ModifyRDNArgument, ModifyRDNResult,  hpAbandoned, AbandonFailed, AttributeError, NameError,  hpReferral, SecurityError, ServiceError, UpdateError,  hpSecurityParameters;   IMPORTS  hpinformationFramework, authenticationFramework,  hph distributedOperations, directoryObjectIdentifiers  hpFROM UsefulDefinitions {jointisoccitt ds(5) modules(1)  hph   X%%*usefulDefinitions(0)}   OBJECT, PORT, ABSTRACTBIND, ABSTRACTUNBIND,   ABSTRACTOPERATION, ABSTRACTERROR  Hh  hpFROM AbstractServiceNotation {jointisoccitt mhsmotis(6)  hph    X%%*asdc(2) modules(0) notation(1) }  H   Attribute, AttributeType, AttributeValue, AttributeValueAssertion,   DistinguishedName, Name, RelativeDistinguishedName  hpFROM InformationFramework InformationFramework  H   idotdirectory, idotdua, idptread, idptsearch, idptmodify  Hh  hpFROM DirectoryObjectIdentifiers directoryObjectIdentifiers   ContinuationReference, OperationProgress  hpFROM DistributedOperations distributedOperations   Certificate, CertificationPath, SIGNED,   PROTECTED, AlgorithmIdentifier  hpFROM AuthenticationFramework authenticationFramework   InvokeID,  hpFROM RemoteOperationsNotation {jointisoccitt  hph   X%%* remoteOperations(4) notation(0)}; © macro for representing optional signing   OPTIONALLYSIGNED MACRO ::=   BEGIN  hpTYPE NOTATION ::= type (Type)  HX  hpVALUE NOTATION ::= value (VALUE CHOICE { Type, SIGNED Type})   END   objects and ports   directory  hpOBJECT  hph pPORTS {readPort [S].  hph  searchPort [S],  hph  modifyPort [S]}   ::= idotdirectory   dua  hpOBJECT  hph PORTS { readPort [C],  hph   searchPort [C]  hp h   modifyPort [C]}   ::= idotdua   readPort  hpPORT  hph  CONSUMER INVOKES {  hph   Read, Compare, Abandon}   ::= idptread   searchPort  hpPORT  hph  CONSUMER INVOKES {  hph   List, Search }   ::= idptsearch   modifyPort  hpPORT  hph  CONSUMER INVOKES {  hph   AddEntry, RemoveEntry,  hph    ModifyEntry, ModifyRDN}   ::= idptmodify   bind and unbind   DirectoryBind ::= ABSTRACTBIND  hpTO { readPort, searchPort, modifyPort }  hpBIND  hpARGUMENT DirectoryBindArgument  hpRESULT  DirectoryBindResult  hpBINDERROR DirectoryBindError   DirectoryBindArgument ::= SET {  hpcredentials X%[0] Credentials OPTIONAL,  hpversions X%%*[1] Versions DEFAULT v1988}   Credentials ::= CHOICE {  HH  psimple  [0] SimpleCredentials,  pstrong  [1] StrongCredentials,  pexternalProcedure [2] EXTERNAL } SimpleCredentials ::= SEQUENCE {  hpname   [0] DistinguishedName,  hpvalidity [1] SET {  hph time1  X%[0] UTCTime OPTIONAL,  hp h time2  X%[1] UTCTime OPTIONAL,  hp h random1  [2] BIT STRING OPTIONAL,  hp h random2  [3] BIT STRING OPTIONAL }  hp h   X%%*OPTIONAL,  hp h password [2] OCTET STRING OPTIONAL }   StrongCredentials ::= SET {  H  hpcertificationpath$**/[0] CertificationPath OPTIONAL,  hpbindtoken X%%*[1] Token }   Token ::= SIGNED SEQUENCE {  hpalgorithm [0]#X%AlgorithmIdentifier  hpname  [1] $*DistinguishedName,  hptime  [2] $*UTCTime,  hprandom  [3] $*BIT STRING }   Versions ::= BIT STRING (v1988(0)}   DirectoryBindResult X% ::= DirectoryBindArgument   DirectoryBindError ::= SET {  hpversions [0] Versions DEFAULT v1988,  hpCHOICE {  hph serviceError!X%[1])/ServiceProblem,  hph securityError"X%[2])/SecurityProblem }}   DirectoryUnbind ::= ABSTRACTUNBIND  hpFROM {readPort, searchPort, modifyPort }   operations, arguments, and results   Read ::= ABSTRACTOPERATION  hpARGUMENT X%ReadArgument   hpRESULT  X%ReadResult   hpERRORS {  hp h AttributeError, NameError,  hph ServiceError, Referral, Abandoned,  hph SecurityError }   ReadArgument ::= OPTIONALLYSIGNED SET {  hpobject  X%[0] Name,  hpselection X%%*[1] EntryInformationSelection  hph   X%%**/DEFAULT {},  hpCOMPONENTS OF CommonArguments }   ReadResult   ::= OPTIONALLYSIGNED SET {  hpentry [0] EntryInformation,  hpCOMPONENTS OF CommonResults }   Compare ::= ABSTRACTOPERATION  hpARGUMENT X%CompareArgument  hpRESULT  X%CompareResult  hpERRORS {  hph AttributeError, NameError,  hph ServiceError, Referral, Abandoned,  hph SecurityError }   CompareArgument ::= OPTIONALLYSIGNED SET {  hpobject  X%[0] Name,  hppurported X%[1] AttributeValueAssertion,  hpCOMPONENTS OF CommonArguments } CompareResult ::= OPTIONALLYSIGNED SET {  hpDistinguishedName OPTIONAL,  hpmatched  [0] BOOLEAN,  hpfromEntry [1] BOOLEAN DEFAULT TRUE,  hpCOMPONENTS OF CommonResults }   Abandon ::= ABSTRACTOPERATION  hpARGUMENT AbandonArgument  hpRESULT AbandonResult  hpERRORS {AbandonFailed}   AbandonArgument ::= SEQUENCE {  hpInvokeID [0] InvokeID}   AbandonResult ::=X%NULL   List ::= ABSTRACTOPERATION  hpARGUMENT ListArgument  hpRESULT  ListResult  hpERRORS {  hph AttributeError, NameError,  hph ServiceError, Referral, Abandoned,  hph SecurityError }   ListArgument ::= OPTIONALLYSIGNED SET {  hpobject [0] Name,  hpCOMPONENTS OF CommonArguments }   ListResult  ::= OPTIONALLYSIGNED CHOICE{  hplistInfo SET {  hpDistinguishedName OPTIONAL  hpsubordinates [1] SET OF SEQUENCE {  hph RelativeDistinguishedName,  hph aliasEntryX%[0] BOOLEAN DEFAULT FALSE,  hph fromEntry [1] BOOLEAN DEFAULT TRUE },  hph partialOutcomeQualifier [2] PartialOutcomeQualifier  hph   X%%**/OPTIONAL,  hph COMPONENTS OF CommonResults},  hpuncorrelatedListInfo [0] SET OF  hph ListResult }   PartialOutcomeQualifier ::= SET {  hplimitProblem [0] LimitProblem OPTIONAL,  hpunexplored [1] SET OF  hph ContinuationReference OPTIONAL,  hpunavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE }   LimitProblem ::= INTEGER {  hptimeLimitExceeded#X%(0),  hpsizeLimitExceeded#X%%*(1),  hpadministrativeLimitExceeded (2) }   Search ::= ABSTRACTOPERATION  hpARGUMENT X%SearchArgument  hpRESULT  X%SearchResult  hpERRORS {  hph  AttributeError, NameError,  hph  ServiceError, Referral, Abandoned,  hp h  SecurityError } SearchArgument ::=!X%OPTIONALLYSIGNED SET {  hpbaseObject [0] Name,  hpsubset  X%[1] INTEGER {  hph  baseObject(0),  hph  oneLevel(1),  hph  wholeSubtree(2)} DEFAULT baseObject,  hpfilter  X%[2] Filter DEFAULT and {},  hpsearchAliasesX%[3] BOOLEAN DEFAULT TRUE,  H  hpselection X%%*[4] EntryInformationSelection DEFAULT {},  hpCOMPONENTS OF CommonArguments }   SearchResult ::= OPTIONALLYSIGNED  hpCHOICE {  hpsearchInfo SET {  hpDistinguishedName OPTIONAL,  hpentries [0] SET OF EntryInformation,  hppartialOutcomeQualifier  hph [2] partialOutcomeQualifier OPTIONAL,  hpCOMPONENTS OF CommonResults },  hpuncorrelatedSearchInfo [0] SET OF  hph  SearchResult }   AddEntry ::= ABSTRACTOPERATION  hpARGUMENT AddEntryArgument  hpRESULT  AddEntryResult  hpERRORS {  hph AttributeError, NameError,  hph ServiceError, Referral, SecurityError  hph UpdateError }   AddEntryArgument ::= OPTIONALLYSIGNED SET {  hpobject [0] DistinguishedName,  hpentry [1] SET OF Attribute,  hpCOMPONENTS OF CommonArguments}   AddEntryResult::=X%NULL   RemoveEntry ::= ABSTRACTOPERATION  hpARGUMENT RemoveEntryArgument  hpRESULT  RemoveEntryResult  hpERRORS {  hph NameError,  hph ServiceError, Referral, SecurityError,  hph UpdateError}   RemoveEntryArgument ::= OPTIONALLYSIGNED SET {  hpobject [0] DistinguishedName,  hpCOMPONENTS OF CommonArguments }   RemoveEntryResult ::= NULL   ModifyEntry ::= ABSTRACTOPERATION  hpARGUMENT ModifyEntryArgument  hpRESULT  ModifyEntryResult  hpERRORS {  hph AttributeError, NameError,  hph ServiceError, Referral, SecurityError,  hph UpdateError}   ModifyEntryArgument ::= OPTIONALLYSIGNED SET {  hpobject  [0]#X%DistinguishedName,  hpchanges [1] SEQUENCE OF EntryModification,  hpCOMPONENTS OF CommonArguments }   ModifyEntryResult ::= NULL   EntryModification ::= CHOICE {  hpaddAttribute X%[0])/Attribute,  hpremoveAttribute!X%[1])/AttributeType,  hpaddValues X%[2])/Attribute,  hpremoveValues [3]$*Attribute}   ModifyRDN  ::= ABSTRACTOPERATION  hpARGUMENT X%ModifyRDNArgument  hpRESULT  ModifyRDNResult  hpERRORS  {  hph NameError,  hph ServiceError, Referral, SecurityError,  hph UpdateError }   ModifyRDNArgument ::= OPTIONALLYSIGNED SET {  hpobject  X%[0] DistinguishedName,  hpnewRDN  X%[1] RelativeDistinguishedName,  hpdeleteoldRDN [2] BOOLEAN DEFAULT FALSE,  hpCOMPONENTS OF CommonArguments }   ModifyRDNResult ::= NULL   errors and parameters   Abandoned ::= ABSTRACTERROR not literally an "error"   AbandonFailed ::= ABSTRACTERROR  hpPARAMETER SET {  hph problem [0] AbandonProblem,  hph operation [1] InvokeID}   AbandonProblem ::= X%INTEGER {  hph  noSuchOperation (1),  hph tooLate (2),  hph cannotAbandon (3)}   Attribute Error ::= X%ABSTRACTERROR  hpPARAMETER SET {  hph object X%[0] Name,  hph problems X%[1] SET OF SEQUENCE {  hph  problem"X%%*[0]-/AttributeProblem,  hph  typeX%%**/[1]2`4AttributeType,  Hh  hph  value X%%**/[2]2`4AttributeValue OPTIONAL }}   AttributeProblem ::=  hpINTEGER {  hph noSuchAttributeOrValue (1),  hph invalidAttributeSyntax (2),  hph undefinedAttributeType (3),  hph inappropriateMatching (4),  hph constraintViolation (5),  hpattributeOrValueAlreadyExists (6) }   NameError ::= ABSTRACTERROR  hpPARAMETER SET {  hph problem [0] NameProblem,  hph matched [1] Name}   NameProblem ::= INTEGER {  hph noSuchObject (1),  hph aliasProblem (2),  hph invalidAttributeSyntax (3),  hph aliasDereferencingProblem (4)}   Referral ::= ABSTRACTERROR not literally an "error"  hpPARAMETER SET {  hph candidate [0] ContinuationReference}   SecurityError ::=X%ABSTRACTERROR  hpPARAMETER SET {  hph problem [0] SecurityProblem }   SecurityProblem ::= INTEGER {  hpinappropriateAuthentication (1),  hpinvalidCredentials (2),  hpinsufficientAccessRights (3),  hpinvalidSignature (4),  hpprotectionRequired (5),  hpnoInformation (6) }   ServiceError ::= ABSTRACTERROR  hpPARAMETER SET {  hph  problem [0] ServiceProblem } -ƌ  ServiceProblem ::= X%INTEGER {  hpbusy (1),  hpunavailable (2),  hpunwillingToPerform (3),  hpchainingRequired (4),  hpunableToProceed (5),  hpinvalidReference (6),  hptimeLimitExceeded (7),  hpadministrativeLimitExceeded (8),  hploopDetected (9),  hpunavailableCriticalExtension (10),  hpoutOfScope (11),  hpditError (12) }   UpdateError ::= ABSTRACTERROR  hpPARAMETER SET {  hph problem [0] UpdateProblem }   UpdateProblem ::= INTEGER {  hpnamingViolation (1),  hpobjectClassViolation (2),  hpnotAllowedOnNonLeaf (3),  hpnotAllowedOnRDN (4),  hpentryAlreadyExists (5),  hpaffectsMultipleDSAs (6),  hpobjectClassModificationProhibited (7)}   common arguments/results   CommonArguments ::= SET {  hp[30] ServiceControls DEFAULT {}  hp[29] SecurityParameters DEFAULT {},  hprequestor [28] DistinguishedName OPTIONAL,  hp[27] OperationProgress DEFAULT notStarted,  hpaliasedRDNs [26] INTEGER OPTIONAL,  hpextensions [25] SET OF Extension OPTIONAL }   Extension ::= SET {  hpidentifier X%[0] INTEGER,  hpcritical X%[1] BOOLEAN DEFAULT FALSE,  hpitem  X%%*[2] ANY DEFINED BY identifier }   CommonResults ::= SET {  hp[30] SecurityParameters OPTIONAL,  hpperformer [29] DistinguishedName OPTIONAL,  hpaliasDereferenced [28] BOOLEAN DEFAULT FALSE} © common data types   ServiceControls ::= SET {  hpoptions [0] BIT STRING {  hppreferChaining (0),  hpchainingProhibited (1),  hplocalScope (2),  hpdontUseCopy (3),  hpdontDereferenceAliases(4)}  hph  DEFAULT{},  hppriority [1] INTEGER {  hph plow (0),  hph pmedium (1),  hph phigh (2) } DEFAULT medium,   timeLimit [2] INTEGER OPTIONAL,   sizeLimit [3] INTEGER OPTIONAL,   scopeOfReferral [4] X%INTEGER {  hph dmd(0),  hph country(1)}  hph OPTIONAL }   EntryInformationSelection ::= SET {  hpattributeTypes  hph CHOICE {  hph   allAttributes [0] NULL,  hph  select [1] SET OF AttributeType  hph   empty set implies no attributes  hph   are requested }  hph DEFAULT allAttributes NULL,  hpinfoTypes [2] INTEGER {  hph  attributeTypesOnly (0),  hph  attributeTypesAndValues (1) } DEFAULT  hph   attributeTypesandValues }   EntryInformation ::= SEQUENCE {  hpDistinguishedName,  hpfromEntry BOOLEAN DEFAULT TRUE,  hpSET OF CHOICE {  hph AttributeType,  hph Attribute} OPTIONAL }   Filter ::= CHOICE {  hpitem  [0]#X%FilterItem,  hpand  [1]#X%SET OF Filter,  hporP  [2] SET OF Filter,  hpnot  [3]#X%Filter }   FilterItem ::= CHOICE {  hpequality [0] AttributeValueAssertion,  hpsubstrings [1] SEQUENCE {  hph type AttributeType,  hph strings SEQUENCE OF CHOICE {  hph   initial"X%[0](*AttributeValue,  hph  any [1]#X%AttributeValue,  hph  final X%[2](*AttributeValue}},  hpgreaterOrEqual [2]!X%AttributeValueAssertion,  hph lessOrEqual X%%*[3]-/AttributeValueAssertion,  hph present !X%%*[4]-/AttributeType,  hph approximateMatch '*[5]-/AttributeValueAssertion } SecurityParameters ::= SET {  hpcertificationPath [0] CertificationPath OPTIONAL,  hpname  [1]#X%DistinguishedName OPTIONAL,  hptime  X%[2](*UTCTime OPTIONAL,  hprandom [3] BIT STRING OPTIONAL,  hptarget  [4]#X%ProtectionRequest OPTIONAL }   ProtectionRequest ::= INTEGER {  hph   X% none(0),  hph   X% signed (1)}  HH Ђ8O c4 P ANNEX B 8F c4 P (to Recommendation X.511) 8D Directory object identifiers  This Annex is part of the standard.  H  This Annex includes all of the ASN.1 object identifiers contained in this Recommendation in the form of the ASN.1 module " DirectoryObjectIdentifiers ".   DirectoryObjectIdentifiers {jointISOCCITT ds(5) modules(1)  hph   X%directoryObjectIdentifiers(9)}   DEFINITIONS ::=   BEGIN   EXPORTS  H  hpidotdirectory, idotdua, idptread, idptsearch, idptmodify;   IMPORTS  hpidot, idpt  hpFROM UsefulDefinitions {jointisoccitt ds(5) modules(1),  hph    X%usefulDefinitions(0)};   Objects   idotdirectory  X%OBJECT IDENTIFIER::= {idot 1}   idotdua  X%OBJECT IDENTIFIER69::= {idot 2}   Port Types   idptread  X%OBJECT IDENTIFIER69::= {idpt 1}   idptsearch  X%OBJECT IDENTIFIER69::= {idpt 2}   idptmodify  X%OBJECT IDENTIFIER69::= {idpt 3}   END  HH