-- ASN module extracted from ITU-T X.511 (10/2016)

DirectoryAbstractService {joint-iso-itu-t ds(5) module(1) directoryAbstractService(2) 8} DEFINITIONS ::= BEGIN -- EXPORTS All -- The types and values defined in this module are exported for use in the other ASN.1 -- modules contained within these 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 Rec. ITU-T X.501 | ISO/IEC 9594-2 attributeCertificateDefinitions, authenticationFramework, basicAccessControl, commonProtocolSpecification, directoryShadowAbstractService, distributedOperations, enhancedSecurity, id-at, informationFramework, selectedAttributeTypes, serviceAdministration, passwordPolicy FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 8} Attribute{}, ATTRIBUTE, AttributeType, AttributeTypeAndValue, AttributeTypeAssertion, AttributeValue, AttributeValueAssertion, CONTEXT, ContextAssertion, DistinguishedName, MATCHING-RULE, Name, OBJECT-CLASS, RelativeDistinguishedName, SupportedAttributes, SupportedContexts FROM InformationFramework informationFramework RelaxationPolicy FROM ServiceAdministration serviceAdministration OPTIONALLY-PROTECTED{}, OPTIONALLY-PROTECTED-SEQ{} FROM EnhancedSecurity enhancedSecurity -- from Rec. ITU-T X.518 | ISO/IEC 9594-4 AccessPoint, ContinuationReference, Exclusions, OperationProgress, ReferenceType FROM DistributedOperations distributedOperations -- from Rec. ITU-T X.519 | ISO/IEC 9594-5 Code, ERROR, id-errcode-abandoned, id-errcode-abandonFailed, id-errcode-attributeError, id-errcode-nameError, id-errcode-referral, id-errcode-securityError, id-errcode-serviceError, id-errcode-updateError, id-opcode-abandon, id-opcode-addEntry, id-opcode-administerPassword, id-opcode-compare, id-opcode-changePassword, id-opcode-ldapTransport, id-opcode-linkedLDAP, id-opcode-list, id-opcode-modifyDN, id-opcode-modifyEntry, id-opcode-read, id-opcode-removeEntry, id-opcode-search, InvokeId, OPERATION FROM CommonProtocolSpecification commonProtocolSpecification -- from Rec. ITU-T X.520 | ISO/IEC 9594-6 DirectoryString{}, UnboundedDirectoryString FROM SelectedAttributeTypes selectedAttributeTypes -- from Rec. ITU-T X.509 | ISO/IEC 9594-8 AlgorithmIdentifier{}, CertificationPath, ENCRYPTED{}, HASH{}, SIGNED{}, SupportedAlgorithms FROM AuthenticationFramework authenticationFramework UserPwd FROM PasswordPolicy passwordPolicy AttributeCertificationPath FROM AttributeCertificateDefinitions attributeCertificateDefinitions -- from Rec. ITU-T X.525 | ISO/IEC 9594-9 AgreementID FROM DirectoryShadowAbstractService directoryShadowAbstractService -- from IETF RFC 2025 SPKM-ERROR, SPKM-REP-TI, SPKM-REQ FROM SpkmGssTokens {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) spkm(1) spkmGssTokens(10)} -- from IETF RFC 4511 LDAPMessage FROM Lightweight-Directory-Access-Protocol-V3 {iso(1) identified-organization(3) dod(6) internet(1) directory(1) ldap(18)} ; -- Common data types CommonArguments ::= SET { serviceControls [30] ServiceControls DEFAULT {}, securityParameters [29] SecurityParameters OPTIONAL, requestor [28] DistinguishedName OPTIONAL, operationProgress [27] OperationProgress DEFAULT {nameResolutionPhase notStarted}, aliasedRDNs [26] INTEGER OPTIONAL, criticalExtensions [25] BIT STRING OPTIONAL, referenceType [24] ReferenceType OPTIONAL, entryOnly [23] BOOLEAN DEFAULT TRUE, exclusions [22] Exclusions OPTIONAL, nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE, operationContexts [20] ContextSelection OPTIONAL, familyGrouping [19] FamilyGrouping DEFAULT entryOnly, ... } CommonArgumentsSeq ::= SEQUENCE { serviceControls [30] ServiceControls DEFAULT {}, securityParameters [29] SecurityParameters OPTIONAL, requestor [28] DistinguishedName OPTIONAL, operationProgress [27] OperationProgress DEFAULT {nameResolutionPhase notStarted}, aliasedRDNs [26] INTEGER OPTIONAL, criticalExtensions [25] BIT STRING OPTIONAL, referenceType [24] ReferenceType OPTIONAL, entryOnly [23] BOOLEAN DEFAULT TRUE, exclusions [22] Exclusions OPTIONAL, nameResolveOnMaster [21] BOOLEAN DEFAULT FALSE, operationContexts [20] ContextSelection OPTIONAL, familyGrouping [19] FamilyGrouping DEFAULT entryOnly, ... } FamilyGrouping ::= ENUMERATED { entryOnly (1), compoundEntry (2), strands (3), multiStrand (4), ... } CommonResults ::= SET { securityParameters [30] SecurityParameters OPTIONAL, performer [29] DistinguishedName OPTIONAL, aliasDereferenced [28] BOOLEAN DEFAULT FALSE, notification [27] SEQUENCE SIZE (1..MAX) OF Attribute {{SupportedAttributes}} OPTIONAL, ... } CommonResultsSeq ::= SEQUENCE { securityParameters [30] SecurityParameters OPTIONAL, performer [29] DistinguishedName OPTIONAL, aliasDereferenced [28] BOOLEAN DEFAULT FALSE, notification [27] SEQUENCE SIZE (1..MAX) OF Attribute {{SupportedAttributes}} OPTIONAL, ... } ServiceControls ::= SET { options [0] ServiceControlOptions DEFAULT {}, priority [1] INTEGER {low(0), medium(1), high(2)} DEFAULT medium, timeLimit [2] INTEGER OPTIONAL, sizeLimit [3] INTEGER OPTIONAL, scopeOfReferral [4] INTEGER {dmd(0), country(1)} OPTIONAL, attributeSizeLimit [5] INTEGER OPTIONAL, manageDSAITPlaneRef [6] SEQUENCE { dsaName Name, agreementID AgreementID, ...} OPTIONAL, serviceType [7] OBJECT IDENTIFIER OPTIONAL, userClass [8] INTEGER OPTIONAL, ... } ServiceControlOptions ::= BIT STRING { preferChaining (0), chainingProhibited (1), localScope (2), dontUseCopy (3), dontDereferenceAliases (4), subentries (5), copyShallDo (6), partialNameResolution (7), manageDSAIT (8), noSubtypeMatch (9), noSubtypeSelection (10), countFamily (11), dontSelectFriends (12), dontMatchFriends (13), allowWriteableCopy (14)} EntryInformationSelection ::= SET { attributes CHOICE { allUserAttributes [0] NULL, select [1] SET OF AttributeType -- empty set implies no attributes are requested -- } DEFAULT allUserAttributes:NULL, infoTypes [2] INTEGER { attributeTypesOnly (0), attributeTypesAndValues (1)} DEFAULT attributeTypesAndValues, extraAttributes CHOICE { allOperationalAttributes [3] NULL, select [4] SET SIZE (1..MAX) OF AttributeType } OPTIONAL, contextSelection ContextSelection OPTIONAL, returnContexts BOOLEAN DEFAULT FALSE, familyReturn FamilyReturn DEFAULT {memberSelect contributingEntriesOnly} } ContextSelection ::= CHOICE { allContexts NULL, selectedContexts SET SIZE (1..MAX) OF TypeAndContextAssertion, ... } TypeAndContextAssertion ::= SEQUENCE { type AttributeType, contextAssertions CHOICE { preference SEQUENCE OF ContextAssertion, all SET OF ContextAssertion, ...}, ... } FamilyReturn ::= SEQUENCE { memberSelect ENUMERATED { contributingEntriesOnly (1), participatingEntriesOnly (2), compoundEntry (3), ...}, familySelect SEQUENCE SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL, ... } EntryInformation ::= SEQUENCE { name Name, fromEntry BOOLEAN DEFAULT TRUE, information SET SIZE (1..MAX) OF CHOICE { attributeType AttributeType, attribute Attribute{{SupportedAttributes}}, ...} OPTIONAL, incompleteEntry [3] BOOLEAN DEFAULT FALSE, -- not in first edition systems partialName [4] BOOLEAN DEFAULT FALSE, -- not in first or second edition systems derivedEntry [5] BOOLEAN DEFAULT FALSE, -- not in pre-fourth edition systems -- ... } family-information ATTRIBUTE ::= { WITH SYNTAX FamilyEntries USAGE directoryOperation ID id-at-family-information } FamilyEntries ::= SEQUENCE { family-class OBJECT-CLASS.&id, -- structural object class value familyEntries SEQUENCE OF FamilyEntry, ... } FamilyEntry ::= SEQUENCE { rdn RelativeDistinguishedName, information SEQUENCE OF CHOICE { attributeType AttributeType, attribute Attribute{{SupportedAttributes}}, ...}, family-info SEQUENCE SIZE (1..MAX) OF FamilyEntries OPTIONAL, ... } Filter ::= CHOICE { item [0] FilterItem, and [1] SET OF Filter, or [2] SET OF Filter, not [3] Filter, ... } FilterItem ::= CHOICE { equality [0] AttributeValueAssertion, substrings [1] SEQUENCE { type ATTRIBUTE.&id({SupportedAttributes}), strings SEQUENCE OF CHOICE { initial [0] ATTRIBUTE.&Type ({SupportedAttributes}{@substrings.type}), any [1] ATTRIBUTE.&Type ({SupportedAttributes}{@substrings.type}), final [2] ATTRIBUTE.&Type ({SupportedAttributes}{@substrings.type}), control Attribute{{SupportedAttributes}}, -- Used to specify interpretation of following items ... }, ... }, greaterOrEqual [2] AttributeValueAssertion, lessOrEqual [3] AttributeValueAssertion, present [4] AttributeType, approximateMatch [5] AttributeValueAssertion, extensibleMatch [6] MatchingRuleAssertion, contextPresent [7] AttributeTypeAssertion, ... } MatchingRuleAssertion ::= SEQUENCE { matchingRule [1] SET SIZE (1..MAX) OF MATCHING-RULE.&id, type [2] AttributeType OPTIONAL, matchValue [3] MATCHING-RULE.&AssertionType (CONSTRAINED BY { -- matchValue shall be a value of type specified by the &AssertionType field of -- one of the MATCHING-RULE information objects identified by matchingRule -- }), dnAttributes [4] BOOLEAN DEFAULT FALSE, ... } PagedResultsRequest ::= CHOICE { newRequest SEQUENCE { pageSize INTEGER, sortKeys SEQUENCE SIZE (1..MAX) OF SortKey OPTIONAL, reverse [1] BOOLEAN DEFAULT FALSE, unmerged [2] BOOLEAN DEFAULT FALSE, pageNumber [3] INTEGER OPTIONAL, ...}, queryReference OCTET STRING, abandonQuery [0] OCTET STRING, ... } SortKey ::= SEQUENCE { type AttributeType, orderingRule MATCHING-RULE.&id OPTIONAL, ... } SecurityParameters ::= SET { certification-path [0] CertificationPath OPTIONAL, name [1] DistinguishedName OPTIONAL, time [2] Time OPTIONAL, random [3] BIT STRING OPTIONAL, target [4] ProtectionRequest OPTIONAL, -- [5] Not to be used operationCode [6] Code OPTIONAL, -- [7] Not to be used errorProtection [8] ErrorProtectionRequest OPTIONAL, errorCode [9] Code OPTIONAL, ... } ProtectionRequest ::= INTEGER {none(0), signed(1)} Time ::= CHOICE { utcTime UTCTime, generalizedTime GeneralizedTime, ... } ErrorProtectionRequest ::= INTEGER {none(0), signed(1)} -- Bind and unbind operations directoryBind OPERATION ::= { ARGUMENT DirectoryBindArgument RESULT DirectoryBindResult ERRORS {directoryBindError} } DirectoryBindArgument ::= SET { credentials [0] Credentials OPTIONAL, versions [1] Versions DEFAULT {v1}, ... } Credentials ::= CHOICE { simple [0] SimpleCredentials, strong [1] StrongCredentials, externalProcedure [2] EXTERNAL, spkm [3] SpkmCredentials, sasl [4] SaslCredentials, ... } SimpleCredentials ::= SEQUENCE { name [0] DistinguishedName, validity [1] SET { time1 [0] CHOICE { utc UTCTime, gt GeneralizedTime} OPTIONAL, time2 [1] CHOICE { utc UTCTime, gt GeneralizedTime} OPTIONAL, random1 [2] BIT STRING OPTIONAL, random2 [3] BIT STRING OPTIONAL} OPTIONAL, password [2] CHOICE { unprotected OCTET STRING, protected HASH{OCTET STRING}, ..., userPwd [0] UserPwd } OPTIONAL } StrongCredentials ::= SET { certification-path [0] CertificationPath OPTIONAL, bind-token [1] Token, name [2] DistinguishedName OPTIONAL, attributeCertificationPath [3] AttributeCertificationPath OPTIONAL, ... } SpkmCredentials ::= CHOICE { req [0] SPKM-REQ, rep [1] SPKM-REP-TI, ... } SaslCredentials ::= SEQUENCE { mechanism [0] DirectoryString{ub-saslMechanism}, credentials [1] OCTET STRING OPTIONAL, saslAbort [2] BOOLEAN DEFAULT FALSE, ... } ub-saslMechanism INTEGER ::= 20 -- According to RFC 2222 Token ::= SIGNED{TokenContent} TokenContent ::= SEQUENCE { algorithm [0] AlgorithmIdentifier{{SupportedAlgorithms}}, name [1] DistinguishedName, time [2] Time, random [3] BIT STRING, response [4] BIT STRING OPTIONAL, ... } Versions ::= BIT STRING {v1(0), v2(1)} DirectoryBindResult ::= SET { credentials [0] Credentials OPTIONAL, versions [1] Versions DEFAULT {v1}, ..., pwdResponseValue [2] PwdResponseValue OPTIONAL } PwdResponseValue ::= SEQUENCE { warning CHOICE { timeLeft [0] INTEGER (0..MAX), graceRemaining [1] INTEGER (0..MAX), ... } OPTIONAL, error ENUMERATED { passwordExpired (0), changeAfterReset (1), ... } OPTIONAL} directoryBindError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED {SET { versions [0] Versions DEFAULT {v1}, error CHOICE { serviceError [1] ServiceProblem, securityError [2] SecurityProblem, ...}, securityParameters [30] SecurityParameters OPTIONAL }}} BindKeyInfo ::= ENCRYPTED{BIT STRING} -- Operations, arguments, and results read OPERATION ::= { ARGUMENT ReadArgument RESULT ReadResult ERRORS {attributeError | nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-read } ReadArgument ::= OPTIONALLY-PROTECTED { ReadArgumentData } ReadArgumentData ::= SET { object [0] Name, selection [1] EntryInformationSelection DEFAULT {}, modifyRightsRequest [2] BOOLEAN DEFAULT FALSE, ..., ..., COMPONENTS OF CommonArguments } ReadResult ::= OPTIONALLY-PROTECTED { ReadResultData } ReadResultData ::= SET { entry [0] EntryInformation, modifyRights [1] ModifyRights OPTIONAL, ..., ..., COMPONENTS OF CommonResults } ModifyRights ::= SET OF SEQUENCE { item CHOICE { entry [0] NULL, attribute [1] AttributeType, value [2] AttributeValueAssertion, ...}, permission [3] BIT STRING { add (0), remove (1), rename (2), move (3)}, ... } compare OPERATION ::= { ARGUMENT CompareArgument RESULT CompareResult ERRORS {attributeError | nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-compare } CompareArgument ::= OPTIONALLY-PROTECTED { CompareArgumentData } CompareArgumentData ::= SET { object [0] Name, purported [1] AttributeValueAssertion, ..., ..., COMPONENTS OF CommonArguments } CompareResult ::= OPTIONALLY-PROTECTED { CompareResultData } CompareResultData ::= SET { name Name OPTIONAL, matched [0] BOOLEAN, fromEntry [1] BOOLEAN DEFAULT TRUE, matchedSubtype [2] AttributeType OPTIONAL, ..., ..., COMPONENTS OF CommonResults } abandon OPERATION ::= { ARGUMENT AbandonArgument RESULT AbandonResult ERRORS {abandonFailed} CODE id-opcode-abandon } AbandonArgument ::= OPTIONALLY-PROTECTED-SEQ { AbandonArgumentData } AbandonArgumentData ::= SEQUENCE { invokeID [0] InvokeId, ... } AbandonResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ { AbandonResultData }, ... } AbandonResultData ::= SEQUENCE { invokeID InvokeId, ..., ..., COMPONENTS OF CommonResultsSeq } list OPERATION ::= { ARGUMENT ListArgument RESULT ListResult ERRORS {nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-list } ListArgument ::= OPTIONALLY-PROTECTED { ListArgumentData } ListArgumentData ::= SET { object [0] Name, pagedResults [1] PagedResultsRequest OPTIONAL, listFamily [2] BOOLEAN DEFAULT FALSE, ..., ..., COMPONENTS OF CommonArguments } ListResult ::= OPTIONALLY-PROTECTED { ListResultData } ListResultData ::= CHOICE { listInfo SET { name Name OPTIONAL, subordinates [1] SET OF SEQUENCE { rdn RelativeDistinguishedName, aliasEntry [0] BOOLEAN DEFAULT FALSE, fromEntry [1] BOOLEAN DEFAULT TRUE, ... }, partialOutcomeQualifier [2] PartialOutcomeQualifier OPTIONAL, ..., ..., COMPONENTS OF CommonResults }, uncorrelatedListInfo [0] SET OF ListResult, ... } PartialOutcomeQualifier ::= SET { limitProblem [0] LimitProblem OPTIONAL, unexplored [1] SET SIZE (1..MAX) OF ContinuationReference OPTIONAL, unavailableCriticalExtensions [2] BOOLEAN DEFAULT FALSE, unknownErrors [3] SET SIZE (1..MAX) OF ABSTRACT-SYNTAX.&Type OPTIONAL, queryReference [4] OCTET STRING OPTIONAL, overspecFilter [5] Filter OPTIONAL, notification [6] SEQUENCE SIZE (1..MAX) OF Attribute{{SupportedAttributes}} OPTIONAL, entryCount CHOICE { bestEstimate [7] INTEGER, lowEstimate [8] INTEGER, exact [9] INTEGER, ...} OPTIONAL -- [10] Not to be used -- } LimitProblem ::= INTEGER { timeLimitExceeded (0), sizeLimitExceeded (1), administrativeLimitExceeded (2) } search OPERATION ::= { ARGUMENT SearchArgument RESULT SearchResult ERRORS {attributeError | nameError | serviceError | referral | abandoned | securityError} CODE id-opcode-search } SearchArgument ::= OPTIONALLY-PROTECTED { SearchArgumentData } SearchArgumentData ::= SET { baseObject [0] Name, subset [1] INTEGER { baseObject (0), oneLevel (1), wholeSubtree (2)} DEFAULT baseObject, filter [2] Filter DEFAULT and:{}, searchAliases [3] BOOLEAN DEFAULT TRUE, selection [4] EntryInformationSelection DEFAULT {}, pagedResults [5] PagedResultsRequest OPTIONAL, matchedValuesOnly [6] BOOLEAN DEFAULT FALSE, extendedFilter [7] Filter OPTIONAL, checkOverspecified [8] BOOLEAN DEFAULT FALSE, relaxation [9] RelaxationPolicy OPTIONAL, extendedArea [10] INTEGER OPTIONAL, hierarchySelections [11] HierarchySelections DEFAULT {self}, searchControlOptions [12] SearchControlOptions DEFAULT {searchAliases}, joinArguments [13] SEQUENCE SIZE (1..MAX) OF JoinArgument OPTIONAL, joinType [14] ENUMERATED { innerJoin (0), leftOuterJoin (1), fullOuterJoin (2)} DEFAULT leftOuterJoin, ..., ..., COMPONENTS OF CommonArguments } HierarchySelections ::= BIT STRING { self (0), children (1), parent (2), hierarchy (3), top (4), subtree (5), siblings (6), siblingChildren (7), siblingSubtree (8), all (9) } SearchControlOptions ::= BIT STRING { searchAliases (0), matchedValuesOnly (1), checkOverspecified (2), performExactly (3), includeAllAreas (4), noSystemRelaxation (5), dnAttribute (6), matchOnResidualName (7), entryCount (8), useSubset (9), separateFamilyMembers (10), searchFamily (11) } JoinArgument ::= SEQUENCE { joinBaseObject [0] Name, domainLocalID [1] DomainLocalID OPTIONAL, joinSubset [2] ENUMERATED { baseObject (0), oneLevel (1), wholeSubtree (2), ... } DEFAULT baseObject, joinFilter [3] Filter OPTIONAL, joinAttributes [4] SEQUENCE SIZE (1..MAX) OF JoinAttPair OPTIONAL, joinSelection [5] EntryInformationSelection, ... } DomainLocalID ::= UnboundedDirectoryString JoinAttPair ::= SEQUENCE { baseAtt AttributeType, joinAtt AttributeType, joinContext SEQUENCE SIZE (1..MAX) OF JoinContextType OPTIONAL, ... } JoinContextType ::= CONTEXT.&id({SupportedContexts}) SearchResult ::= OPTIONALLY-PROTECTED { SearchResultData } SearchResultData ::= CHOICE { searchInfo SET { name Name OPTIONAL, entries [0] SET OF EntryInformation, partialOutcomeQualifier [2] PartialOutcomeQualifier OPTIONAL, altMatching [3] BOOLEAN DEFAULT FALSE, ..., ..., COMPONENTS OF CommonResults }, uncorrelatedSearchInfo [0] SET OF SearchResult, ... } addEntry OPERATION ::= { ARGUMENT AddEntryArgument RESULT AddEntryResult ERRORS {attributeError | nameError | serviceError | referral | securityError | updateError} CODE id-opcode-addEntry } AddEntryArgument ::= OPTIONALLY-PROTECTED { AddEntryArgumentData } AddEntryArgumentData ::= SET { object [0] Name, entry [1] SET OF Attribute{{SupportedAttributes}}, targetSystem [2] AccessPoint OPTIONAL, ..., ..., COMPONENTS OF CommonArguments } AddEntryResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ { AddEntryResultData }, ... } AddEntryResultData ::= SEQUENCE { ..., ..., COMPONENTS OF CommonResultsSeq } removeEntry OPERATION ::= { ARGUMENT RemoveEntryArgument RESULT RemoveEntryResult ERRORS {nameError | serviceError | referral | securityError | updateError} CODE id-opcode-removeEntry } RemoveEntryArgument ::= OPTIONALLY-PROTECTED { RemoveEntryArgumentData } RemoveEntryArgumentData ::= SET { object [0] Name, ..., ..., COMPONENTS OF CommonArguments } RemoveEntryResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ { RemoveEntryResultData }, ... } RemoveEntryResultData ::= SEQUENCE { ..., ..., COMPONENTS OF CommonResultsSeq } modifyEntry OPERATION ::= { ARGUMENT ModifyEntryArgument RESULT ModifyEntryResult ERRORS {attributeError | nameError | serviceError | referral | securityError | updateError} CODE id-opcode-modifyEntry } ModifyEntryArgument ::= OPTIONALLY-PROTECTED { ModifyEntryArgumentData } ModifyEntryArgumentData ::= SET { object [0] Name, changes [1] SEQUENCE OF EntryModification, selection [2] EntryInformationSelection OPTIONAL, ..., ..., COMPONENTS OF CommonArguments } ModifyEntryResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ { ModifyEntryResultData }, ... } ModifyEntryResultData ::= SEQUENCE { entry [0] EntryInformation OPTIONAL, ..., ..., COMPONENTS OF CommonResultsSeq } EntryModification ::= CHOICE { addAttribute [0] Attribute{{SupportedAttributes}}, removeAttribute [1] AttributeType, addValues [2] Attribute{{SupportedAttributes}}, removeValues [3] Attribute{{SupportedAttributes}}, alterValues [4] AttributeTypeAndValue, resetValue [5] AttributeType, replaceValues [6] Attribute{{SupportedAttributes}}, ... } modifyDN OPERATION ::= { ARGUMENT ModifyDNArgument RESULT ModifyDNResult ERRORS {nameError | serviceError | referral | securityError | updateError} CODE id-opcode-modifyDN } ModifyDNArgument ::= OPTIONALLY-PROTECTED { ModifyDNArgumentData } ModifyDNArgumentData ::= SET { object [0] DistinguishedName, newRDN [1] RelativeDistinguishedName, deleteOldRDN [2] BOOLEAN DEFAULT FALSE, newSuperior [3] DistinguishedName OPTIONAL, ..., ..., COMPONENTS OF CommonArguments } ModifyDNResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ { ModifyDNResultData }, ... } ModifyDNResultData ::= SEQUENCE { newRDN RelativeDistinguishedName, ..., ..., COMPONENTS OF CommonResultsSeq } changePassword OPERATION ::= { ARGUMENT ChangePasswordArgument RESULT ChangePasswordResult ERRORS {securityError | updateError } CODE id-opcode-changePassword } ChangePasswordArgument ::= OPTIONALLY-PROTECTED-SEQ { ChangePasswordArgumentData } ChangePasswordArgumentData ::= SEQUENCE { object [0] DistinguishedName, oldPwd [1] UserPwd, newPwd [2] UserPwd, ... } ChangePasswordResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ { ChangePasswordResultData }, ...} ChangePasswordResultData ::= SEQUENCE { ..., ..., COMPONENTS OF CommonResultsSeq } administerPassword OPERATION ::= { ARGUMENT AdministerPasswordArgument RESULT AdministerPasswordResult ERRORS {securityError | updateError} CODE id-opcode-administerPassword } AdministerPasswordArgument ::= OPTIONALLY-PROTECTED-SEQ { AdministerPasswordArgumentData } AdministerPasswordArgumentData ::= SEQUENCE { object [0] DistinguishedName, newPwd [1] UserPwd, ... } AdministerPasswordResult ::= CHOICE { null NULL, information OPTIONALLY-PROTECTED-SEQ { AdministerPasswordResultData }, ...} AdministerPasswordResultData ::= SEQUENCE { ..., ..., COMPONENTS OF CommonResultsSeq } ldapTransport OPERATION ::= { ARGUMENT LdapArgument RESULT SEQUENCE OF LDAPMessage ERRORS { abandonFailed | abandoned } CODE id-opcode-ldapTransport } LdapArgument ::= OPTIONALLY-PROTECTED-SEQ { LdapArgumentData } LdapArgumentData ::= SEQUENCE { object DistinguishedName, ldapMessage LDAPMessage, linkId LinkId OPTIONAL, ..., ..., COMPONENTS OF CommonArgumentsSeq } LinkId ::= INTEGER LdapResult ::= OPTIONALLY-PROTECTED-SEQ { LdapResultData } LdapResultData ::= SEQUENCE { ldapMessages SEQUENCE SIZE (1..MAX) OF LDAPMessage OPTIONAL, returnToClient BOOLEAN DEFAULT FALSE, ..., ..., COMPONENTS OF CommonResultsSeq } linkedLDAP OPERATION ::= { ARGUMENT LinkedArgument RESULT LinkedResult CODE id-opcode-linkedLDAP } LinkedArgument ::= OPTIONALLY-PROTECTED-SEQ { LinkedArgumentData } LinkedArgumentData ::= SEQUENCE { object DistinguishedName, ldapMessage LDAPMessage, linkId LinkId, returnToClient BOOLEAN DEFAULT FALSE, ..., ..., COMPONENTS OF CommonArgumentsSeq } LinkedResult ::= NULL -- Errors and parameters abandoned ERROR ::= {-- not literally an "error" PARAMETER OPTIONALLY-PROTECTED { AbandonedData } CODE id-errcode-abandoned } AbandonedData ::= SET { problem AbandonedProblem OPTIONAL, ..., ..., COMPONENTS OF CommonResults } AbandonedProblem ::= ENUMERATED { pagingAbandoned (0) } abandonFailed ERROR ::= { PARAMETER OPTIONALLY-PROTECTED { AbandonFailedData } CODE id-errcode-abandonFailed } AbandonFailedData ::= SET { problem [0] AbandonProblem, operation [1] InvokeId, ..., ..., COMPONENTS OF CommonResults } AbandonProblem ::= INTEGER { noSuchOperation (1), tooLate (2), cannotAbandon (3) } attributeError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED { AttributeErrorData } CODE id-errcode-attributeError } AttributeErrorData ::= SET { object [0] Name, problems [1] SET OF SEQUENCE { problem [0] AttributeProblem, type [1] AttributeType, value [2] AttributeValue OPTIONAL, ...}, ..., ..., COMPONENTS OF CommonResults } AttributeProblem ::= INTEGER { noSuchAttributeOrValue (1), invalidAttributeSyntax (2), undefinedAttributeType (3), inappropriateMatching (4), constraintViolation (5), attributeOrValueAlreadyExists (6), contextViolation (7) } nameError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED { NameErrorData } CODE id-errcode-nameError } NameErrorData ::= SET { problem [0] NameProblem, matched [1] Name, ..., ..., COMPONENTS OF CommonResults } NameProblem ::= INTEGER { noSuchObject (1), aliasProblem (2), invalidAttributeSyntax (3), aliasDereferencingProblem (4) -- not to be used (5)-- } referral ERROR ::= { -- not literally an "error" PARAMETER OPTIONALLY-PROTECTED { ReferralData } CODE id-errcode-referral } ReferralData ::= SET { candidate [0] ContinuationReference, ..., ..., COMPONENTS OF CommonResults } securityError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED { SecurityErrorData } CODE id-errcode-securityError } SecurityErrorData ::= SET { problem [0] SecurityProblem, spkmInfo [1] SPKM-ERROR OPTIONAL, encPwdInfo [2] EncPwdInfo OPTIONAL, ..., ..., COMPONENTS OF CommonResults } SecurityProblem ::= INTEGER { inappropriateAuthentication (1), invalidCredentials (2), insufficientAccessRights (3), invalidSignature (4), protectionRequired (5), noInformation (6), blockedCredentials (7), -- invalidQOPMatch (8), obsolete spkmError (9), unsupportedAuthenticationMethod (10), passwordExpired (11), inappropriateAlgorithms (12) } EncPwdInfo ::= SEQUENCE { algorithms [0] SEQUENCE OF AlgorithmIdentifier {{SupportedAlgorithms}} OPTIONAL, pwdQualityRule [1] SEQUENCE OF AttributeTypeAndValue OPTIONAL, ... } serviceError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED { ServiceErrorData } CODE id-errcode-serviceError } ServiceErrorData ::= SET { problem [0] ServiceProblem, ..., ..., COMPONENTS OF CommonResults } ServiceProblem ::= INTEGER { busy (1), unavailable (2), unwillingToPerform (3), chainingRequired (4), unableToProceed (5), invalidReference (6), timeLimitExceeded (7), administrativeLimitExceeded (8), loopDetected (9), unavailableCriticalExtension (10), outOfScope (11), ditError (12), invalidQueryReference (13), requestedServiceNotAvailable (14), unsupportedMatchingUse (15), ambiguousKeyAttributes (16), saslBindInProgress (17), notSupportedByLDAP (18) } updateError ERROR ::= { PARAMETER OPTIONALLY-PROTECTED { UpdateErrorData } CODE id-errcode-updateError } UpdateErrorData ::= SET { problem [0] UpdateProblem, attributeInfo [1] SET SIZE (1..MAX) OF CHOICE { attributeType AttributeType, attribute Attribute{{SupportedAttributes}}, ... } OPTIONAL, ..., ..., COMPONENTS OF CommonResults } UpdateProblem ::= INTEGER { namingViolation (1), objectClassViolation (2), notAllowedOnNonLeaf (3), notAllowedOnRDN (4), entryAlreadyExists (5), affectsMultipleDSAs (6), objectClassModificationProhibited (7), noSuchSuperior (8), notAncestor (9), parentNotAncestor (10), hierarchyRuleViolation (11), familyRuleViolation (12), insufficientPasswordQuality (13), passwordInHistory (14), noPasswordSlot (15) } -- attribute types id-at-family-information OBJECT IDENTIFIER ::= {id-at 64} END -- DirectoryAbstractService