aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-19 08:59:50 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-07-19 08:59:50 +0000
commit71b70c924baf8331b9b59fdef7ef9384748ae9b5 (patch)
tree81a818ca6db1d194eb52a434005be651ceef66c2 /asn1
parent4f82d639f957f7badff9371be501e063f43d0628 (diff)
Work in progress
New protocol X.509 Selected Attribute Types This new protocol is not linked with ethereal yet svn path=/trunk/; revision=11431
Diffstat (limited to 'asn1')
-rw-r--r--asn1/x509sat/SelectedAttributeTypes.asn1472
-rw-r--r--asn1/x509sat/packet-x509sat-template.c80
-rw-r--r--asn1/x509sat/packet-x509sat-template.h31
-rw-r--r--asn1/x509sat/x509sat.cnf21
4 files changed, 1604 insertions, 0 deletions
diff --git a/asn1/x509sat/SelectedAttributeTypes.asn b/asn1/x509sat/SelectedAttributeTypes.asn
new file mode 100644
index 0000000000..01fd8a8161
--- /dev/null
+++ b/asn1/x509sat/SelectedAttributeTypes.asn
@@ -0,0 +1,1472 @@
+-- Module SelectedAttributeTypes (X.520:08/1997)
+
+SelectedAttributeTypes {joint-iso-itu-t ds(5) module(1)
+ selectedAttributeTypes(5) 3} 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
+ informationFramework, upperBounds, id-at, id-mr, id-avc,
+ directoryAbstractService, id-pr, id-not, id-cat
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 3}
+ Attribute, ATTRIBUTE, MATCHING-RULE, AttributeType, OBJECT-CLASS,
+ DistinguishedName, objectIdentifierMatch, distinguishedNameMatch,
+ CONTEXT, ContextAssertion, AttributeCombination, ContextCombination,
+ MAPPING-BASED-MATCHING, MRMapping, AttributeValueAssertion
+ FROM InformationFramework informationFramework
+ G3FacsimileNonBasicParameters
+ FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0)
+ mts-abstract-service(1) version-1999(1)}
+ ub-answerback, ub-name, ub-common-name, ub-surname, ub-serial-number,
+ ub-locality-name, ub-state-name, ub-street-address, ub-organization-name,
+ ub-organizational-unit-name, ub-title, ub-description,
+ ub-business-category, ub-postal-line, ub-postal-string, ub-postal-code,
+ ub-post-office-box, ub-physical-office-name, ub-telex-number,
+ ub-country-code, ub-teletex-terminal-id, ub-telephone-number,
+ ub-x121-address, ub-international-isdn-number, ub-destination-indicator,
+ ub-user-password, ub-match, ub-knowledge-information,
+ ub-directory-string-first-component-match, ub-localeContextSyntax,
+ ub-pseudonym
+ FROM UpperBounds upperBounds
+ FilterItem, HierarchySelections, SearchControlOptions, ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- Directory string type
+-- DirectoryString{INTEGER:maxSize} ::= CHOICE {
+-- teletexString TeletexString(SIZE (1..maxSize)),
+-- printableString PrintableString(SIZE (1..maxSize)),
+-- universalString UniversalString(SIZE (1..maxSize)),
+-- bmpString BMPString(SIZE (1..maxSize)),
+-- uTF8String UTF8String(SIZE (1..maxSize))
+-- }
+--
+-- Attribute types
+-- knowledgeInformation ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-knowledge-information}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- ID id-at-knowledgeInformation
+-- }
+--
+-- name ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-name}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-name
+-- }
+--
+-- commonName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-common-name}
+-- ID id-at-commonName
+-- }
+--
+-- surname ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-surname}
+-- ID id-at-surname
+-- }
+--
+-- givenName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-at-givenName
+-- }
+--
+-- initials ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-at-initials
+-- }
+--
+-- generationQualifier ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-at-generationQualifier
+-- }
+--
+-- uniqueIdentifier ATTRIBUTE ::= {
+-- WITH SYNTAX UniqueIdentifier
+-- EQUALITY MATCHING RULE bitStringMatch
+-- ID id-at-uniqueIdentifier
+-- }
+
+UniqueIdentifier ::= BIT STRING
+
+-- dnQualifier ATTRIBUTE ::= {
+-- WITH SYNTAX PrintableString
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- ORDERING MATCHING RULE caseIgnoreOrderingMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-dnQualifier
+-- }
+--
+-- serialNumber ATTRIBUTE ::= {
+-- WITH SYNTAX PrintableString(SIZE (1..ub-serial-number))
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-serialNumber
+-- }
+--
+-- pseudonym ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-pseudonym}
+-- ID id-at-pseudonym
+-- }
+--
+-- countryName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX CountryName
+-- SINGLE VALUE TRUE
+-- ID id-at-countryName
+-- }
+
+CountryName ::= PrintableString(SIZE (2))
+-- ISO 3166 codes only
+--
+--
+-- localityName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-locality-name}
+-- ID id-at-localityName
+-- }
+--
+-- collectiveLocalityName ATTRIBUTE ::= {
+-- SUBTYPE OF localityName
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveLocalityName
+-- }
+--
+-- stateOrProvinceName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-state-name}
+-- ID id-at-stateOrProvinceName
+-- }
+--
+-- collectiveStateOrProvinceName ATTRIBUTE ::= {
+-- SUBTYPE OF stateOrProvinceName
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveStateOrProvinceName
+-- }
+--
+-- streetAddress ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-street-address}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-streetAddress
+-- }
+--
+-- collectiveStreetAddress ATTRIBUTE ::= {
+-- SUBTYPE OF streetAddress
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveStreetAddress
+-- }
+--
+-- houseIdentifier ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-name}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-houseIdentifier
+-- }
+--
+-- organizationName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-organization-name}
+-- ID id-at-organizationName
+-- }
+--
+-- collectiveOrganizationName ATTRIBUTE ::= {
+-- SUBTYPE OF organizationName
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveOrganizationName
+-- }
+--
+-- organizationalUnitName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+-- ID id-at-organizationalUnitName
+-- }
+--
+-- collectiveOrganizationalUnitName ATTRIBUTE ::= {
+-- SUBTYPE OF organizationalUnitName
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveOrganizationalUnitName
+-- }
+--
+-- title ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-title}
+-- ID id-at-title
+-- }
+--
+-- description ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-description}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-description
+-- }
+--
+-- searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide
+-- ID id-at-searchGuide
+-- }
+--
+-- Guide ::= SET {
+-- objectClass [0] OBJECT-CLASS.&id OPTIONAL,
+-- criteria [1] Criteria
+-- }
+--
+-- Criteria ::= CHOICE {
+-- type [0] CriteriaItem,
+-- and [1] SET OF Criteria,
+-- or [2] SET OF Criteria,
+-- not [3] Criteria
+-- }
+--
+CriteriaItem ::= CHOICE {
+ equality [0] AttributeType,
+ substrings [1] AttributeType,
+ greaterOrEqual [2] AttributeType,
+ lessOrEqual [3] AttributeType,
+ approximateMatch [4] AttributeType
+}
+
+-- enhancedSearchGuide ATTRIBUTE ::= {
+-- WITH SYNTAX EnhancedGuide
+-- ID id-at-enhancedSearchGuide
+-- }
+--
+-- EnhancedGuide ::= SEQUENCE {
+-- objectClass [0] OBJECT-CLASS.&id,
+-- criteria [1] Criteria,
+-- subset
+-- [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel
+-- }
+--
+-- businessCategory ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-business-category}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-businessCategory
+-- }
+--
+-- postalAddress ATTRIBUTE ::= {
+-- WITH SYNTAX PostalAddress
+-- EQUALITY MATCHING RULE caseIgnoreListMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch
+-- ID id-at-postalAddress
+-- }
+--
+-- PostalAddress ::=
+-- SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string}
+--
+-- collectivePostalAddress ATTRIBUTE ::= {
+-- SUBTYPE OF postalAddress
+-- COLLECTIVE TRUE
+-- ID id-at-collectivePostalAddress
+-- }
+--
+-- postalCode ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-postal-code}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-postalCode
+-- }
+--
+-- collectivePostalCode ATTRIBUTE ::= {
+-- SUBTYPE OF postalCode
+-- COLLECTIVE TRUE
+-- ID id-at-collectivePostalCode
+-- }
+--
+-- postOfficeBox ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-post-office-box}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-postOfficeBox
+-- }
+--
+-- collectivePostOfficeBox ATTRIBUTE ::= {
+-- SUBTYPE OF postOfficeBox
+-- COLLECTIVE TRUE
+-- ID id-at-collectivePostOfficeBox
+-- }
+--
+-- physicalDeliveryOfficeName ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-physical-office-name}
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-physicalDeliveryOfficeName
+-- }
+--
+-- collectivePhysicalDeliveryOfficeName ATTRIBUTE ::= {
+-- SUBTYPE OF physicalDeliveryOfficeName
+-- COLLECTIVE TRUE
+-- ID id-at-collectivePhysicalDeliveryOfficeName
+-- }
+--
+-- telephoneNumber ATTRIBUTE ::= {
+-- WITH SYNTAX TelephoneNumber
+-- EQUALITY MATCHING RULE telephoneNumberMatch
+-- SUBSTRINGS MATCHING RULE telephoneNumberSubstringsMatch
+-- ID id-at-telephoneNumber
+-- }
+--
+-- TelephoneNumber ::= PrintableString(SIZE (1..ub-telephone-number))
+--
+-- String complying with CCITT Rec. E.123 only
+-- collectiveTelephoneNumber ATTRIBUTE ::= {
+-- SUBTYPE OF telephoneNumber
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveTelephoneNumber
+-- }
+--
+-- telexNumber ATTRIBUTE ::= {
+-- WITH SYNTAX TelexNumber
+-- ID id-at-telexNumber
+-- }
+--
+-- TelexNumber ::= SEQUENCE {
+-- telexNumber PrintableString(SIZE (1..ub-telex-number)),
+-- countryCode PrintableString(SIZE (1..ub-country-code)),
+-- answerback PrintableString(SIZE (1..ub-answerback))
+-- }
+--
+-- collectiveTelexNumber ATTRIBUTE ::= {
+-- SUBTYPE OF telexNumber
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveTelexNumber
+-- }
+--
+-- facsimileTelephoneNumber ATTRIBUTE ::= {
+-- WITH SYNTAX FacsimileTelephoneNumber
+-- EQUALITY MATCHING RULE facsimileNumberMatch
+-- SUBSTRINGS MATCHING RULE facsimileNumberSubstringsMatch
+-- ID id-at-facsimileTelephoneNumber
+-- }
+--
+-- facsimileNumberMatch MATCHING-RULE ::= {
+-- SYNTAX TelephoneNumber
+-- ID id-mr-facsimileNumberMatch
+-- }
+--
+-- facsimileNumberSubstringsMatch MATCHING-RULE ::= {
+-- SYNTAX SubstringAssertion
+-- ID id-mr-facsimileNumberSubstringsMatch
+-- }
+--
+-- FacsimileTelephoneNumber ::= SEQUENCE {
+-- telephoneNumber TelephoneNumber,
+-- parameters G3FacsimileNonBasicParameters OPTIONAL
+-- }
+--
+-- collectiveFacsimileTelephoneNumber ATTRIBUTE ::= {
+-- SUBTYPE OF facsimileTelephoneNumber
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveFacsimileTelephoneNumber
+-- }
+--
+-- x121Address ATTRIBUTE ::= {
+-- WITH SYNTAX X121Address
+-- EQUALITY MATCHING RULE numericStringMatch
+-- SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+-- ID id-at-x121Address
+-- }
+--
+-- X121Address ::= NumericString(SIZE (1..ub-x121-address))
+--
+-- String as defined by ITU-T Rec. X.121
+-- internationalISDNNumber ATTRIBUTE ::= {
+-- WITH SYNTAX InternationalISDNNumber
+-- EQUALITY MATCHING RULE numericStringMatch
+-- SUBSTRINGS MATCHING RULE numericStringSubstringsMatch
+-- ID id-at-internationalISDNNumber
+-- }
+--
+-- InternationalISDNNumber ::=
+-- NumericString(SIZE (1..ub-international-isdn-number))
+--
+-- String complying with ITU-T Rec. E.164 only
+-- collectiveInternationalISDNNumber ATTRIBUTE ::= {
+-- SUBTYPE OF internationalISDNNumber
+-- COLLECTIVE TRUE
+-- ID id-at-collectiveInternationalISDNNumber
+-- }
+--
+-- registeredAddress ATTRIBUTE ::= {
+-- SUBTYPE OF postalAddress
+-- WITH SYNTAX PostalAddress
+-- ID id-at-registeredAddress
+-- }
+--
+-- destinationIndicator ATTRIBUTE ::= {
+-- WITH SYNTAX DestinationIndicator
+-- EQUALITY MATCHING RULE caseIgnoreMatch
+-- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch
+-- ID id-at-destinationIndicator
+-- }
+--
+-- DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator))
+--
+-- communicationsService ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- ID id-at-communicationsService
+-- }
+--
+-- communicationsNetwork ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- SINGLE VALUE TRUE
+-- ID id-at-communicationsNetwork
+-- }
+--
+-- alphabetical characters only
+-- preferredDeliveryMethod ATTRIBUTE ::= {
+-- WITH SYNTAX PreferredDeliveryMethod
+-- SINGLE VALUE TRUE
+-- ID id-at-preferredDeliveryMethod
+-- }
+--
+-- PreferredDeliveryMethod ::=
+-- SEQUENCE OF
+-- INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2),
+-- telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5),
+-- g4-facsimile-delivery(6), ia5-terminal-delivery(7),
+-- videotex-delivery(8), telephone-delivery(9)}
+--
+-- presentationAddress ATTRIBUTE ::= {
+-- WITH SYNTAX PresentationAddress
+-- EQUALITY MATCHING RULE presentationAddressMatch
+-- SINGLE VALUE TRUE
+-- ID id-at-presentationAddress
+-- }
+--
+-- PresentationAddress ::= SEQUENCE {
+-- pSelector [0] OCTET STRING OPTIONAL,
+-- sSelector [1] OCTET STRING OPTIONAL,
+-- tSelector [2] OCTET STRING OPTIONAL,
+-- nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING
+-- }
+--
+-- supportedApplicationContext ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- ID id-at-supportedApplicationContext
+-- }
+--
+-- protocolInformation ATTRIBUTE ::= {
+-- WITH SYNTAX ProtocolInformation
+-- EQUALITY MATCHING RULE protocolInformationMatch
+-- ID id-at-protocolInformation
+-- }
+--
+-- ProtocolInformation ::= SEQUENCE {
+-- nAddress OCTET STRING,
+-- profiles SET OF OBJECT IDENTIFIER
+-- }
+--
+-- distinguishedName ATTRIBUTE ::= {
+-- WITH SYNTAX DistinguishedName
+-- EQUALITY MATCHING RULE distinguishedNameMatch
+-- ID id-at-distinguishedName
+-- }
+--
+-- member ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+-- ID id-at-member
+-- }
+--
+-- uniqueMember ATTRIBUTE ::= {
+-- WITH SYNTAX NameAndOptionalUID
+-- EQUALITY MATCHING RULE uniqueMemberMatch
+-- ID id-at-uniqueMember
+-- }
+--
+-- NameAndOptionalUID ::= SEQUENCE {
+-- dn DistinguishedName,
+-- uid UniqueIdentifier OPTIONAL
+-- }
+--
+-- owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+-- ID id-at-owner
+-- }
+--
+-- roleOccupant ATTRIBUTE ::= {
+-- SUBTYPE OF distinguishedName
+-- ID id-at-roleOccupant
+-- }
+--
+-- seeAlso ATTRIBUTE ::= {SUBTYPE OF distinguishedName
+-- ID id-at-seeAlso
+-- }
+--
+-- dmdName ATTRIBUTE ::= {
+-- SUBTYPE OF name
+-- WITH SYNTAX DirectoryString {ub-common-name}
+-- ID id-at-dmdName
+-- }
+--
+-- dSAProblem ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- ID id-not-dSAProblem
+-- }
+--
+-- searchServiceProblem ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- SINGLE VALUE TRUE
+-- ID id-not-searchServiceProblem
+-- }
+--
+-- serviceType ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- SINGLE VALUE TRUE
+-- ID id-not-serviceType
+-- }
+--
+-- attributeTypeList ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- ID id-not-attributeTypeList
+-- }
+--
+-- filterItem ATTRIBUTE ::= {
+-- WITH SYNTAX FilterItem
+-- ID id-not-filterItem
+-- }
+--
+-- attributeCombinations ATTRIBUTE ::= {
+-- WITH SYNTAX AttributeCombination
+-- ID id-not-attributeCombinations
+-- }
+--
+-- contextTypeList ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- ID id-not-contextTypeList
+-- }
+--
+-- contextList ATTRIBUTE ::= {
+-- WITH SYNTAX ContextAssertion
+-- ID id-not-contextList
+-- }
+--
+-- hierarchySelectList ATTRIBUTE ::= {
+-- WITH SYNTAX HierarchySelections
+-- SINGLE VALUE TRUE
+-- ID id-not-hierarchySelectList
+-- }
+--
+-- searchOptionsList ATTRIBUTE ::= {
+-- WITH SYNTAX SearchControlOptions
+-- SINGLE VALUE TRUE
+-- ID id-not-searchOptionsList
+-- }
+--
+-- serviceControlOptionsList ATTRIBUTE ::= {
+-- WITH SYNTAX ServiceControlOptions
+-- SINGLE VALUE TRUE
+-- ID id-not-serviceControlOptionsList
+-- }
+--
+-- multipleMatchingLocalities ATTRIBUTE ::= {
+-- WITH SYNTAX MultipleMatchingLocalities
+-- ID id-not-multipleMatchingLocalities
+-- }
+--
+-- MultipleMatchingLocalities ::= SEQUENCE {
+-- matchingRuleUsed MATCHING-RULE.&id OPTIONAL,
+-- attributeList SEQUENCE OF AttributeValueAssertion
+-- }
+--
+-- proposedRelaxation ATTRIBUTE ::= {
+-- WITH SYNTAX SEQUENCE OF MRMapping
+-- ID id-not-proposedRelaxation
+-- }
+--
+-- appliedRelaxation ATTRIBUTE ::= {
+-- WITH SYNTAX OBJECT IDENTIFIER
+-- EQUALITY MATCHING RULE objectIdentifierMatch
+-- ID id-not-appliedRelaxation
+-- }
+--
+-- Matching rules
+-- caseIgnoreMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-match}
+-- ID id-mr-caseIgnoreMatch
+-- }
+--
+-- caseIgnoreOrderingMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-match}
+-- ID id-mr-caseIgnoreOrderingMatch
+-- }
+--
+-- caseIgnoreSubstringsMatch MATCHING-RULE ::= {
+-- SYNTAX SubstringAssertion
+-- ID id-mr-caseIgnoreSubstringsMatch
+-- }
+--
+-- SubstringAssertion ::=
+-- SEQUENCE OF
+-- CHOICE {initial [0] DirectoryString{ub-match},
+-- any [1] DirectoryString{ub-match},
+-- final [2] DirectoryString{ub-match},
+-- control Attribute
+-- }
+-- Used to specify interpretation of the following items
+--
+-- at most one initial and one final component
+-- caseExactMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-match}
+-- ID id-mr-caseExactMatch
+-- }
+--
+-- caseExactOrderingMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-match}
+-- ID id-mr-caseExactOrderingMatch
+-- }
+--
+-- caseExactSubstringsMatch MATCHING-RULE ::= {
+-- SYNTAX SubstringAssertion
+-- only the PrintableString choice
+-- ID id-mr-caseExactSubstringsMatch
+-- }
+--
+-- numericStringMatch MATCHING-RULE ::= {
+-- SYNTAX NumericString
+-- ID id-mr-numericStringMatch
+-- }
+--
+-- numericStringOrderingMatch MATCHING-RULE ::= {
+-- SYNTAX NumericString
+-- ID id-mr-numericStringOrderingMatch
+-- }
+--
+-- numericStringSubstringsMatch MATCHING-RULE ::= {
+-- SYNTAX SubstringAssertion
+-- ID id-mr-numericStringSubstringsMatch
+-- }
+--
+-- caseIgnoreListMatch MATCHING-RULE ::= {
+-- SYNTAX CaseIgnoreListMatch
+-- ID id-mr-caseIgnoreListMatch
+-- }
+--
+-- CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match}
+--
+-- caseIgnoreListSubstringsMatch MATCHING-RULE ::= {
+-- SYNTAX SubstringAssertion
+-- ID id-mr-caseIgnoreListSubstringsMatch
+-- }
+--
+-- storedPrefixMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-match}
+-- ID id-mr-storedPrefixMatch
+-- }
+--
+-- booleanMatch MATCHING-RULE ::= {SYNTAX BOOLEAN
+-- ID id-mr-booleanMatch
+-- }
+--
+-- integerMatch MATCHING-RULE ::= {SYNTAX INTEGER
+-- ID id-mr-integerMatch
+-- }
+--
+-- integerOrderingMatch MATCHING-RULE ::= {
+-- SYNTAX INTEGER
+-- ID id-mr-integerOrderingMatch
+-- }
+--
+-- bitStringMatch MATCHING-RULE ::= {
+-- SYNTAX BIT STRING
+-- ID id-mr-bitStringMatch
+-- }
+--
+-- octetStringMatch MATCHING-RULE ::= {
+-- SYNTAX OCTET STRING
+-- ID id-mr-octetStringMatch
+-- }
+--
+-- octetStringOrderingMatch MATCHING-RULE ::= {
+-- SYNTAX OCTET STRING
+-- ID id-mr-octetStringOrderingMatch
+-- }
+--
+-- octetStringSubstringsMatch MATCHING-RULE ::= {
+-- SYNTAX OctetSubstringAssertion
+-- ID id-mr-octetStringSubstringsMatch
+-- }
+--
+-- OctetSubstringAssertion ::=
+-- SEQUENCE OF
+-- CHOICE {initial [0] OCTET STRING,
+-- any [1] OCTET STRING,
+-- final [2] OCTET STRING}
+--
+-- at most one initial and one final component
+-- telephoneNumberMatch MATCHING-RULE ::= {
+-- SYNTAX TelephoneNumber
+-- ID id-mr-telephoneNumberMatch
+-- }
+--
+-- telephoneNumberSubstringsMatch MATCHING-RULE ::= {
+-- SYNTAX SubstringAssertion
+-- ID id-mr-telephoneNumberSubstringsMatch
+-- }
+--
+-- presentationAddressMatch MATCHING-RULE ::= {
+-- SYNTAX PresentationAddress
+-- ID id-mr-presentationAddressMatch
+-- }
+--
+-- uniqueMemberMatch MATCHING-RULE ::= {
+-- SYNTAX NameAndOptionalUID
+-- ID id-mr-uniqueMemberMatch
+-- }
+--
+-- protocolInformationMatch MATCHING-RULE ::= {
+-- SYNTAX OCTET STRING
+-- ID id-mr-protocolInformationMatch
+-- }
+--
+-- uTCTimeMatch MATCHING-RULE ::= {SYNTAX UTCTime
+-- ID id-mr-uTCTimeMatch
+-- }
+--
+-- uTCTimeOrderingMatch MATCHING-RULE ::= {
+-- SYNTAX UTCTime
+-- ID id-mr-uTCTimeOrderingMatch
+-- }
+--
+-- generalizedTimeMatch MATCHING-RULE ::= {
+-- SYNTAX GeneralizedTime
+-- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+-- ID id-mr-generalizedTimeMatch
+-- }
+--
+-- generalizedTimeOrderingMatch MATCHING-RULE ::= {
+-- SYNTAX GeneralizedTime
+-- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+-- ID id-mr-generalizedTimeOrderingMatch
+-- }
+--
+-- integerFirstComponentMatch MATCHING-RULE ::= {
+-- SYNTAX INTEGER
+-- ID id-mr-integerFirstComponentMatch
+-- }
+--
+-- objectIdentifierFirstComponentMatch MATCHING-RULE ::= {
+-- SYNTAX OBJECT IDENTIFIER
+-- ID id-mr-objectIdentifierFirstComponentMatch
+-- }
+--
+-- directoryStringFirstComponentMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-directory-string-first-component-match}
+-- ID id-mr-directoryStringFirstComponentMatch
+-- }
+--
+-- wordMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-match}
+-- ID id-mr-wordMatch
+-- }
+--
+-- keywordMatch MATCHING-RULE ::= {
+-- SYNTAX DirectoryString {ub-match}
+-- ID id-mr-keywordMatch
+-- }
+--
+-- systemProposedMatch MATCHING-RULE ::= {ID id-mr-systemProposedMatch
+-- }
+--
+-- generalWordMatch MATCHING-RULE ::= {
+-- SYNTAX SubstringAssertion
+-- ID id-mr-generalWordMatch
+-- }
+--
+-- sequenceMatchType ATTRIBUTE ::= {
+-- WITH SYNTAX
+-- ENUMERATED {sequenceExact(0), sequenceDeletion(1),
+-- sequenceRestrictedDeletion(2), sequencePermutation(3),
+-- sequencePermutationAndDeletion(4), sequenceProviderDefined(5)}
+-- SINGLE VALUE TRUE
+-- ID id-cat-sequenceMatchType
+-- }
+-- defaulting to sequenceExact,
+--
+-- wordMatchTypes ATTRIBUTE ::= {
+-- WITH SYNTAX
+-- ENUMERATED {wordExact(0), wordTruncated(1), wordPhonetic(2),
+-- wordProviderDefined(3)}
+-- SINGLE VALUE TRUE
+-- ID id-cat-wordMatchType
+-- }
+-- defaulting to wordExact
+--
+-- characterMatchTypes ATTRIBUTE ::= {
+-- WITH SYNTAX
+-- ENUMERATED {characterExact(0), characterCaseIgnore(1), characterMapped(2)}
+-- SINGLE VALUE TRUE
+-- ID id-cat-characterMatchTypes
+-- }
+--
+-- selectedContexts ATTRIBUTE ::= {
+-- WITH SYNTAX ContextAssertion
+-- ID id-cat-selectedContexts
+-- }
+--
+-- approximateStringMatch MATCHING-RULE ::= {ID id-mr-approximateStringMatch
+-- }
+--
+-- ignoreIfAbsentMatch MATCHING-RULE ::= {ID id-mr-ignoreIfAbsentMatch
+-- }
+--
+-- nullMatch MATCHING-RULE ::= {ID id-mr-nullMatch
+-- }
+--
+-- ZONAL-MATCHING ::=
+-- MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id}
+--
+-- ZonalSelect ::= SEQUENCE OF AttributeType
+--
+-- ZonalResult ::= ENUMERATED {
+-- cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)}
+--
+-- zonalMatch MATCHING-RULE ::= {
+-- UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id
+-- ID id-mr-zonalMatch
+-- }
+--
+-- Contexts
+-- languageContext CONTEXT ::= {
+-- WITH SYNTAX LanguageContextSyntax
+-- ID id-avc-language
+-- }
+--
+-- LanguageContextSyntax ::= PrintableString(SIZE (2..3))
+-- ISO 639-2 codes only
+--
+--
+-- temporalContext CONTEXT ::= {
+-- WITH SYNTAX TimeSpecification
+-- ASSERTED AS TimeAssertion
+-- ID id-avc-temporal
+-- }
+--
+-- TimeSpecification ::= SEQUENCE {
+-- time
+-- CHOICE {absolute
+-- SEQUENCE {startTime [0] GeneralizedTime OPTIONAL,
+-- endTime [1] GeneralizedTime OPTIONAL},
+-- periodic SET OF Period},
+-- notThisTime BOOLEAN DEFAULT FALSE,
+-- timeZone TimeZone OPTIONAL
+-- }
+--
+-- Period ::= SEQUENCE {
+-- timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL,
+-- days
+-- [1] CHOICE {intDay SET OF INTEGER,
+-- bitDay
+-- BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3),
+-- thursday(4), friday(5), saturday(6)},
+-- dayOf XDayOf} OPTIONAL,
+-- weeks
+-- [2] CHOICE {allWeeks NULL,
+-- intWeek SET OF INTEGER,
+-- bitWeek
+-- BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)}
+-- } OPTIONAL,
+-- months
+-- [3] CHOICE {allMonths NULL,
+-- intMonth SET OF INTEGER,
+-- bitMonth
+-- BIT STRING {january(0), february(1), march(2), april(3),
+-- may(4), june(5), july(6), august(7),
+-- september(8), october(9), november(10),
+-- december(11)}} OPTIONAL,
+-- years [4] SET OF INTEGER(1000..MAX) OPTIONAL
+-- }
+--
+-- XDayOf ::= CHOICE {
+-- first [1] NamedDay,
+-- second [2] NamedDay,
+-- third [3] NamedDay,
+-- fourth [4] NamedDay,
+-- fifth [5] NamedDay
+-- }
+--
+-- NamedDay ::= CHOICE {
+-- intNamedDays
+-- ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5),
+-- friday(6), saturday(7)},
+-- bitNamedDays
+-- BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4),
+-- friday(5), saturday(6)}
+-- }
+--
+-- DayTimeBand ::= SEQUENCE {
+-- startDayTime [0] DayTime DEFAULT {hour 0},
+-- endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59}
+-- }
+--
+-- DayTime ::= SEQUENCE {
+-- hour [0] INTEGER(0..23),
+-- minute [1] INTEGER(0..59) DEFAULT 0,
+-- second [2] INTEGER(0..59) DEFAULT 0
+-- }
+--
+-- TimeZone ::= INTEGER(-12..12)
+--
+-- TimeAssertion ::= CHOICE {
+-- now NULL,
+-- at GeneralizedTime,
+-- between
+-- SEQUENCE {startTime [0] GeneralizedTime,
+-- endTime [1] GeneralizedTime OPTIONAL,
+-- entirely BOOLEAN DEFAULT FALSE}
+-- }
+--
+-- localeContext CONTEXT ::= {
+-- WITH SYNTAX LocaleContextSyntax
+-- ID id-avc-locale
+-- }
+--
+-- LocaleContextSyntax ::= CHOICE {
+-- localeID1 OBJECT IDENTIFIER,
+-- localeID2 DirectoryString{ub-localeContextSyntax}
+-- }
+--
+-- Object identifier assignments -
+-- object identifiers assigned in other modules are shown in comments
+-- Attributes
+-- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+-- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+-- id-at-encryptedAliasedEntryName OBJECT IDENTIFIER ::=
+-- {id-at 1 2}
+--
+-- id-at-knowledgeInformation OBJECT IDENTIFIER ::= {id-at 2}
+--
+-- id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+--
+-- id-at-encryptedCommonName OBJECT IDENTIFIER ::= {id-at 3 2}
+--
+-- id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+--
+-- id-at-encryptedSurname OBJECT IDENTIFIER ::= {id-at 4 2}
+--
+-- id-at-serialNumber OBJECT IDENTIFIER ::= {id-at 5}
+--
+-- id-at-encryptedSerialNumber OBJECT IDENTIFIER ::= {id-at 5 2}
+--
+-- id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+--
+-- id-at-encryptedCountryName OBJECT IDENTIFIER ::= {id-at 6 2}
+--
+-- id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+--
+-- id-at-encryptedLocalityName OBJECT IDENTIFIER ::= {id-at 7 2}
+--
+-- id-at-collectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1}
+--
+-- id-at-encryptedCollectiveLocalityName OBJECT IDENTIFIER ::= {id-at 7 1 2}
+--
+-- id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+--
+-- id-at-encryptedStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 2}
+--
+-- id-at-collectiveStateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8 1}
+--
+-- id-at-encryptedCollectiveStateOrProvinceName OBJECT IDENTIFIER ::=
+-- {id-at 8 1 2}
+--
+-- id-at-streetAddress OBJECT IDENTIFIER ::= {id-at 9}
+--
+-- id-at-encryptedStreetAddress OBJECT IDENTIFIER ::= {id-at 9 2}
+--
+-- id-at-collectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1}
+--
+-- id-at-encryptedCollectiveStreetAddress OBJECT IDENTIFIER ::= {id-at 9 1 2}
+--
+-- id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+--
+-- id-at-encryptedOrganizationName OBJECT IDENTIFIER ::= {id-at 10 2}
+--
+-- id-at-collectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1}
+--
+-- id-at-encryptedCollectiveOrganizationName OBJECT IDENTIFIER ::= {id-at 10 1 2}
+--
+-- id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+--
+-- id-at-encryptedOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 2}
+--
+-- id-at-collectiveOrganizationalUnitName OBJECT IDENTIFIER ::= {id-at 11 1}
+--
+-- id-at-encryptedCollectiveOrganizationalUnitName OBJECT IDENTIFIER ::=
+-- {id-at 11 1 2}
+--
+-- id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+--
+-- id-at-encryptedTitle OBJECT IDENTIFIER ::= {id-at 12 2}
+--
+-- id-at-description OBJECT IDENTIFIER ::= {id-at 13}
+--
+-- id-at-encryptedDescription OBJECT IDENTIFIER ::= {id-at 13 2}
+--
+-- id-at-searchGuide OBJECT IDENTIFIER ::= {id-at 14}
+--
+-- id-at-encryptedSearchGuide OBJECT IDENTIFIER ::= {id-at 14 2}
+--
+-- id-at-businessCategory OBJECT IDENTIFIER ::= {id-at 15}
+--
+-- id-at-encryptedBusinessCategory OBJECT IDENTIFIER ::= {id-at 15 2}
+--
+-- id-at-postalAddress OBJECT IDENTIFIER ::= {id-at 16}
+--
+-- id-at-encryptedPostalAddress OBJECT IDENTIFIER ::= {id-at 16 2}
+--
+-- id-at-collectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1}
+--
+-- id-at-encryptedCollectivePostalAddress OBJECT IDENTIFIER ::= {id-at 16 1 2}
+--
+-- id-at-postalCode OBJECT IDENTIFIER ::= {id-at 17}
+--
+-- id-at-encryptedPostalCode OBJECT IDENTIFIER ::= {id-at 17 2}
+--
+-- id-at-collectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1}
+--
+-- id-at-encryptedCollectivePostalCode OBJECT IDENTIFIER ::= {id-at 17 1 2}
+--
+-- id-at-postOfficeBox OBJECT IDENTIFIER ::= {id-at 18}
+--
+-- id-at-encryptedPostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 2}
+--
+-- id-at-collectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1}
+--
+-- id-at-encryptedCollectivePostOfficeBox OBJECT IDENTIFIER ::= {id-at 18 1 2}
+--
+-- id-at-physicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19}
+--
+-- id-at-encryptedPhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 2}
+--
+-- id-at-collectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::= {id-at 19 1}
+--
+-- id-at-encryptedCollectivePhysicalDeliveryOfficeName OBJECT IDENTIFIER ::=
+-- {id-at 19 1 2}
+--
+-- id-at-telephoneNumber OBJECT IDENTIFIER ::= {id-at 20}
+--
+-- id-at-encryptedTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 2}
+--
+-- id-at-collectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1}
+--
+-- id-at-encryptedCollectiveTelephoneNumber OBJECT IDENTIFIER ::= {id-at 20 1 2}
+--
+-- id-at-telexNumber OBJECT IDENTIFIER ::= {id-at 21}
+--
+-- id-at-encryptedTelexNumber OBJECT IDENTIFIER ::= {id-at 21 2}
+--
+-- id-at-collectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1}
+--
+-- id-at-encryptedCollectiveTelexNumber OBJECT IDENTIFIER ::= {id-at 21 1 2}
+--
+-- id-at-teletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22}
+-- id-at-encryptedTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 2}
+-- id-at-collectiveTeletexTerminalIdentifier OBJECT IDENTIFIER ::= {id-at 22 1}
+-- id-at-encryptedCollectiveTeletexTerminalIdentifier
+-- OBJECT IDENTIFIER ::= {id-at 22 1 2}
+-- id-at-facsimileTelephoneNumber OBJECT IDENTIFIER ::=
+-- {id-at 23}
+--
+-- id-at-encryptedFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 2}
+--
+-- id-at-collectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::= {id-at 23 1}
+--
+-- id-at-encryptedCollectiveFacsimileTelephoneNumber OBJECT IDENTIFIER ::=
+-- {id-at 23 1 2}
+--
+-- id-at-x121Address OBJECT IDENTIFIER ::= {id-at 24}
+--
+-- id-at-encryptedX121Address OBJECT IDENTIFIER ::= {id-at 24 2}
+--
+-- id-at-internationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25}
+--
+-- id-at-encryptedInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 2}
+--
+-- id-at-collectiveInternationalISDNNumber OBJECT IDENTIFIER ::= {id-at 25 1}
+--
+-- id-at-encryptedCollectiveInternationalISDNNumber OBJECT IDENTIFIER ::=
+-- {id-at 25 1 2}
+--
+-- id-at-registeredAddress OBJECT IDENTIFIER ::= {id-at 26}
+--
+-- id-at-encryptedRegisteredAddress OBJECT IDENTIFIER ::= {id-at 26 2}
+--
+-- id-at-destinationIndicator OBJECT IDENTIFIER ::= {id-at 27}
+--
+-- id-at-encryptedDestinationIndicator OBJECT IDENTIFIER ::= {id-at 27 2}
+--
+-- id-at-preferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28}
+--
+-- id-at-encryptedPreferredDeliveryMethod OBJECT IDENTIFIER ::= {id-at 28 2}
+--
+-- id-at-presentationAddress OBJECT IDENTIFIER ::= {id-at 29}
+--
+-- id-at-encryptedPresentationAddress OBJECT IDENTIFIER ::= {id-at 29 2}
+--
+-- id-at-supportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30}
+--
+-- id-at-encryptedSupportedApplicationContext OBJECT IDENTIFIER ::= {id-at 30 2}
+--
+-- id-at-member OBJECT IDENTIFIER ::= {id-at 31}
+--
+-- id-at-encryptedMember OBJECT IDENTIFIER ::= {id-at 31 2}
+--
+-- id-at-owner OBJECT IDENTIFIER ::= {id-at 32}
+--
+-- id-at-encryptedOwner OBJECT IDENTIFIER ::= {id-at 32 2}
+--
+-- id-at-roleOccupant OBJECT IDENTIFIER ::= {id-at 33}
+--
+-- id-at-encryptedRoleOccupant OBJECT IDENTIFIER ::= {id-at 33 2}
+--
+-- id-at-seeAlso OBJECT IDENTIFIER ::= {id-at 34}
+--
+-- id-at-encryptedSeeAlso OBJECT IDENTIFIER ::= {id-at 34 2}
+--
+-- id-at-userPassword OBJECT IDENTIFIER ::= {id-at 35}
+-- id-at-encryptedUserPassword OBJECT IDENTIFIER ::=
+-- {id-at 35 2}
+--
+-- id-at-userCertificate OBJECT IDENTIFIER ::= {id-at 36}
+-- id-at-encryptedUserCertificate OBJECT IDENTIFIER ::=
+-- {id-at 36 2}
+--
+-- id-at-cACertificate OBJECT IDENTIFIER ::= {id-at 37}
+-- id-at-encryptedCACertificate OBJECT IDENTIFIER ::=
+-- {id-at 37 2}
+--
+-- id-at-authorityRevocationList OBJECT IDENTIFIER ::= {id-at 38}
+-- id-at-encryptedAuthorityRevocationList OBJECT IDENTIFIER ::=
+-- {id-at 38 2}
+--
+-- id-at-certificateRevocationList OBJECT IDENTIFIER ::= {id-at 39}
+-- id-at-encryptedCertificateRevocationList OBJECT IDENTIFIER ::=
+-- {id-at 39 2}
+--
+-- id-at-crossCertificatePair OBJECT IDENTIFIER ::= {id-at 40}
+-- id-at-encryptedCrossCertificatePair OBJECT IDENTIFIER ::=
+-- {id-at 40 2}
+--
+-- id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+--
+-- id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+--
+-- id-at-encryptedGivenName OBJECT IDENTIFIER ::= {id-at 42 2}
+--
+-- id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+--
+-- id-at-encryptedInitials OBJECT IDENTIFIER ::= {id-at 43 2}
+--
+-- id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+--
+-- id-at-encryptedGenerationQualifier OBJECT IDENTIFIER ::= {id-at 44 2}
+--
+-- id-at-uniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45}
+--
+-- id-at-encryptedUniqueIdentifier OBJECT IDENTIFIER ::= {id-at 45 2}
+--
+-- id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+--
+-- id-at-encryptedDnQualifier OBJECT IDENTIFIER ::= {id-at 46 2}
+--
+-- id-at-enhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47}
+--
+-- id-at-encryptedEnhancedSearchGuide OBJECT IDENTIFIER ::= {id-at 47 2}
+--
+-- id-at-protocolInformation OBJECT IDENTIFIER ::= {id-at 48}
+--
+-- id-at-encryptedProtocolInformation OBJECT IDENTIFIER ::= {id-at 48 2}
+--
+-- id-at-distinguishedName OBJECT IDENTIFIER ::= {id-at 49}
+--
+-- id-at-encryptedDistinguishedName OBJECT IDENTIFIER ::= {id-at 49 2}
+--
+-- id-at-uniqueMember OBJECT IDENTIFIER ::= {id-at 50}
+--
+-- id-at-encryptedUniqueMember OBJECT IDENTIFIER ::= {id-at 50 2}
+--
+-- id-at-houseIdentifier OBJECT IDENTIFIER ::= {id-at 51}
+--
+-- id-at-encryptedHouseIdentifier OBJECT IDENTIFIER ::= {id-at 51 2}
+--
+-- id-at-supportedAlgorithms OBJECT IDENTIFIER ::= {id-at 52}
+-- id-at-encryptedSupportedAlgorithms OBJECT IDENTIFIER ::=
+-- {id-at 52 2}
+--
+-- id-at-deltaRevocationList OBJECT IDENTIFIER ::= {id-at 53}
+-- id-at-encryptedDeltaRevocationList OBJECT IDENTIFIER ::=
+-- {id-at 53 2}
+--
+-- id-at-dmdName OBJECT IDENTIFIER ::= {id-at 54}
+--
+-- id-at-encryptedDmdName OBJECT IDENTIFIER ::= {id-at 54 2}
+--
+-- id-at-clearance OBJECT IDENTIFIER ::= {id-at 55}
+-- id-at-encryptedClearance OBJECT IDENTIFIER ::=
+-- {id-at 55 2}
+--
+-- id-at-defaultDirQop OBJECT IDENTIFIER ::= {id-at 56}
+-- id-at-encryptedDefaultDirQop OBJECT IDENTIFIER ::=
+-- {id-at 56 2}
+--
+-- id-at-attributeIntegrityInfo OBJECT IDENTIFIER ::= {id-at 57}
+-- id-at-encryptedAttributeIntegrityInfo OBJECT IDENTIFIER ::=
+-- {id-at 57 2}
+--
+-- id-at-attributeCertificate OBJECT IDENTIFIER ::= {id-at 58}
+-- id-at-encryptedAttributeCertificate OBJECT IDENTIFIER ::=
+-- {id-at 58 2}
+--
+-- id-at-attributeCertificateRevocationList OBJECT IDENTIFIER ::= {id-at 59}
+-- id-at-encryptedAttributeCertificateRevocationList OBJECT IDENTIFIER ::=
+-- {id-at 59 2}
+--
+-- id-at-confKeyInfo OBJECT IDENTIFIER ::= {id-at 60}
+-- id-at-encryptedConfKeyInfo OBJECT IDENTIFIER ::=
+-- {id-at 60 2}
+--
+-- id-at-family-information OBJECT IDENTIFIER {id-at 64}
+-- id-at-pseudonym OBJECT IDENTIFIER ::=
+-- {id-at 65}
+--
+-- id-at-communicationsService OBJECT IDENTIFIER ::= {id-at 66}
+--
+-- id-at-communicationsNetwork OBJECT IDENTIFIER ::= {id-at 67}
+--
+-- Matching rules
+-- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+-- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+-- id-mr-caseIgnoreMatch OBJECT IDENTIFIER ::=
+-- {id-mr 2}
+--
+-- id-mr-caseIgnoreOrderingMatch OBJECT IDENTIFIER ::= {id-mr 3}
+--
+-- id-mr-caseIgnoreSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 4}
+--
+-- id-mr-caseExactMatch OBJECT IDENTIFIER ::= {id-mr 5}
+--
+-- id-mr-caseExactOrderingMatch OBJECT IDENTIFIER ::= {id-mr 6}
+--
+-- id-mr-caseExactSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 7}
+--
+-- id-mr-numericStringMatch OBJECT IDENTIFIER ::= {id-mr 8}
+--
+-- id-mr-numericStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 9}
+--
+-- id-mr-numericStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 10}
+--
+-- id-mr-caseIgnoreListMatch OBJECT IDENTIFIER ::= {id-mr 11}
+--
+-- id-mr-caseIgnoreListSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 12}
+--
+-- id-mr-booleanMatch OBJECT IDENTIFIER ::= {id-mr 13}
+--
+-- id-mr-integerMatch OBJECT IDENTIFIER ::= {id-mr 14}
+--
+-- id-mr-integerOrderingMatch OBJECT IDENTIFIER ::= {id-mr 15}
+--
+-- id-mr-bitStringMatch OBJECT IDENTIFIER ::= {id-mr 16}
+--
+-- id-mr-octetStringMatch OBJECT IDENTIFIER ::= {id-mr 17}
+--
+-- id-mr-octetStringOrderingMatch OBJECT IDENTIFIER ::= {id-mr 18}
+--
+-- id-mr-octetStringSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 19}
+--
+-- id-mr-telephoneNumberMatch OBJECT IDENTIFIER ::= {id-mr 20}
+--
+-- id-mr-telephoneNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 21}
+--
+-- id-mr-presentationAddressMatch OBJECT IDENTIFIER ::= {id-mr 22}
+--
+-- id-mr-uniqueMemberMatch OBJECT IDENTIFIER ::= {id-mr 23}
+--
+-- id-mr-protocolInformationMatch OBJECT IDENTIFIER ::= {id-mr 24}
+--
+-- id-mr-uTCTimeMatch OBJECT IDENTIFIER ::= {id-mr 25}
+--
+-- id-mr-uTCTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 26}
+--
+-- id-mr-generalizedTimeMatch OBJECT IDENTIFIER ::= {id-mr 27}
+--
+-- id-mr-generalizedTimeOrderingMatch OBJECT IDENTIFIER ::= {id-mr 28}
+--
+-- id-mr-integerFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 29}
+--
+-- id-mr-objectIdentifierFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 30}
+--
+-- id-mr-directoryStringFirstComponentMatch OBJECT IDENTIFIER ::= {id-mr 31}
+--
+-- id-mr-wordMatch OBJECT IDENTIFIER ::= {id-mr 32}
+--
+-- id-mr-keywordMatch OBJECT IDENTIFIER ::= {id-mr 33}
+--
+-- id-mr-certificateExactMatch OBJECT IDENTIFIER ::= {id-mr 34}
+-- id-mr-certificateMatch OBJECT IDENTIFIER ::= {id-mr 35}
+-- id-mr-certificatePairExactMatch OBJECT IDENTIFIER ::= {id-mr 36}
+-- id-mr-certificatePairMatch OBJECT IDENTIFIER ::= {id-mr 37}
+-- id-mr-certificateListExactMatch OBJECT IDENTIFIER ::= {id-mr 38}
+-- id-mr-certificateListMatch OBJECT IDENTIFIER ::= {id-mr 39}
+-- id-mr-algorithmIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 40}
+-- id-mr-storedPrefixMatch OBJECT IDENTIFIER ::=
+-- {id-mr 41}
+--
+-- id-mr-attributeCertificateMatch OBJECT IDENTIFIER ::= {id-mr 42}
+-- id-mr-readerAndKeyIDMatch OBJECT IDENTIFIER ::= {id-mr 43}
+-- id-mr-attributeIntegrityMatch OBJECT IDENTIFIER ::= {id-mr 44}
+-- id-mr-systemProposedMatch OBJECT IDENTIFIER ::=
+-- {id-mr 47}
+--
+-- id-mr-generalWordMatch OBJECT IDENTIFIER ::= {id-mr 48}
+--
+-- id-mr-approximateStringMatch OBJECT IDENTIFIER ::= {id-mr 49}
+--
+-- id-mr-ignoreIfAbsentMatch OBJECT IDENTIFIER ::= {id-mr 50}
+--
+-- id-mr-nullMatch OBJECT IDENTIFIER ::= {id-mr 51}
+--
+-- id-mr-zonalMatch OBJECT IDENTIFIER ::= {id-mr 52}
+--
+-- id-mr-facsimileNumberMatch OBJECT IDENTIFIER ::= {id-mr 63}
+--
+-- id-mr-facsimileNumberSubstringsMatch OBJECT IDENTIFIER ::= {id-mr 64}
+--
+-- contexts
+-- id-avc-language OBJECT IDENTIFIER ::= {id-avc 0}
+--
+-- id-avc-temporal OBJECT IDENTIFIER ::= {id-avc 1}
+--
+-- id-avc-locale OBJECT IDENTIFIER ::= {id-avc 2}
+--
+-- id-avc-attributeValueSecurityLabelContext OBJECT IDENTIFIER ::= {id-avc 3}
+-- id-avc-attributeValueIntegrityInfoContext OBJECT IDENTIFIER ::= {id-avc 4}
+-- Problem definitions
+-- id-pr-targetDsaUnavailable OBJECT IDENTIFIER ::=
+-- {id-pr 1}
+--
+-- id-pr-dataSourceUnavailable OBJECT IDENTIFIER ::= {id-pr 2}
+--
+-- id-pr-unidentifiedOperation OBJECT IDENTIFIER ::= {id-pr 3}
+--
+-- id-pr-unavailableOperation OBJECT IDENTIFIER ::= {id-pr 4}
+--
+-- id-pr-searchAttributeViolation OBJECT IDENTIFIER ::= {id-pr 5}
+--
+-- id-pr-searchAttributeCombinationViolation OBJECT IDENTIFIER ::= {id-pr 6}
+--
+-- id-pr-searchValueNotAllowed OBJECT IDENTIFIER ::= {id-pr 7}
+--
+-- id-pr-missingSearchAttribute OBJECT IDENTIFIER ::= {id-pr 8}
+--
+-- id-pr-searchValueViolation OBJECT IDENTIFIER ::= {id-pr 9}
+--
+-- id-pr-attributeNegationViolation OBJECT IDENTIFIER ::= {id-pr 10}
+--
+-- id-pr-searchValueRequired OBJECT IDENTIFIER ::= {id-pr 11}
+--
+-- id-pr-invalidSearchValue OBJECT IDENTIFIER ::= {id-pr 12}
+--
+-- id-pr-searchContextViolation OBJECT IDENTIFIER ::= {id-pr 13}
+--
+-- id-pr-searchContextCombinationViolation OBJECT IDENTIFIER ::= {id-pr 14}
+--
+-- id-pr-missingSearchContext OBJECT IDENTIFIER ::= {id-pr 15}
+--
+-- id-pr-searchContextValueViolation OBJECT IDENTIFIER ::= {id-pr 16}
+--
+-- id-pr-searchContextValueRequired OBJECT IDENTIFIER ::= {id-pr 17}
+--
+-- id-pr-invalidContextSearchValue OBJECT IDENTIFIER ::= {id-pr 18}
+--
+-- id-pr-unsupportedMatchingRule OBJECT IDENTIFIER ::= {id-pr 19}
+--
+-- id-pr-attributeMatchingViolation OBJECT IDENTIFIER ::= {id-pr 20}
+--
+-- id-pr-unsupportedMatchingUse OBJECT IDENTIFIER ::= {id-pr 21}
+--
+-- id-pr-matchingUseViolation OBJECT IDENTIFIER ::= {id-pr 22}
+--
+-- id-pr-hierarchySelectForbidden OBJECT IDENTIFIER ::= {id-pr 23}
+--
+-- id-pr-invalidHierarchySelect OBJECT IDENTIFIER ::= {id-pr 24}
+--
+-- id-pr-unavailableHierarchySelect OBJECT IDENTIFIER ::= {id-pr 25}
+--
+-- id-pr-invalidSearchOptions OBJECT IDENTIFIER ::= {id-pr 26}
+--
+-- id-pr-missingSearchOptions OBJECT IDENTIFIER ::= {id-pr 27}
+--
+-- id-pr-invalidServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 28}
+--
+-- id-pr-missingServiceControlOptions OBJECT IDENTIFIER ::= {id-pr 29}
+--
+-- id-pr-searchSubsetViolation OBJECT IDENTIFIER ::= {id-pr 30}
+--
+-- id-pr-unmatchedKeyAttributes OBJECT IDENTIFIER ::= {id-pr 31}
+--
+-- id-pr-ambiguousKeyAttributes OBJECT IDENTIFIER ::= {id-pr 32}
+--
+-- Notification attributes
+-- id-not-dSAProblem OBJECT IDENTIFIER ::= {id-not 0}
+--
+-- id-not-searchServiceProblem OBJECT IDENTIFIER ::= {id-not 1}
+--
+-- id-not-serviceType OBJECT IDENTIFIER ::= {id-not 2}
+--
+-- id-not-attributeTypeList OBJECT IDENTIFIER ::= {id-not 3}
+--
+-- id-not-matchingRuleList OBJECT IDENTIFIER ::= {id-not 4}
+--
+-- id-not-filterItem OBJECT IDENTIFIER ::= {id-not 5}
+--
+-- id-not-attributeCombinations OBJECT IDENTIFIER ::= {id-not 6}
+--
+-- id-not-contextTypeList OBJECT IDENTIFIER ::= {id-not 7}
+--
+-- id-not-contextList OBJECT IDENTIFIER ::= {id-not 8}
+--
+-- id-not-contextCombinations OBJECT IDENTIFIER ::= {id-not 9}
+--
+-- id-not-hierarchySelectList OBJECT IDENTIFIER ::= {id-not 10}
+--
+-- id-not-searchOptionsList OBJECT IDENTIFIER ::= {id-not 11}
+--
+-- id-not-serviceControlOptionsList OBJECT IDENTIFIER ::= {id-not 12}
+--
+-- id-not-multipleMatchingLocalities OBJECT IDENTIFIER ::= {id-not 13}
+--
+-- id-not-proposedRelaxation OBJECT IDENTIFIER ::= {id-not 14}
+--
+-- id-not-appliedRelaxation OBJECT IDENTIFIER ::= {id-not 15}
+--
+-- id-not-substringRequirements OBJECT IDENTIFIER ::= {id-not 16}
+--
+-- Control attributes
+-- id-cat-sequenceMatchType OBJECT IDENTIFIER ::=
+-- {id-cat 1}
+--
+-- id-cat-wordMatchType OBJECT IDENTIFIER ::= {id-cat 2}
+--
+-- id-cat-characterMatchTypes OBJECT IDENTIFIER ::= {id-cat 3}
+--
+-- id-cat-selectedContexts OBJECT IDENTIFIER ::= {id-cat 4}
+
+END -- SelectedAttributeTypes
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/x509sat/packet-x509sat-template.c b/asn1/x509sat/packet-x509sat-template.c
new file mode 100644
index 0000000000..e0abc07264
--- /dev/null
+++ b/asn1/x509sat/packet-x509sat-template.c
@@ -0,0 +1,80 @@
+/* packet-x509sat.c
+ * Routines for X.509 Selected Attribute Types packet dissection
+ *
+ * $Id: packet-x509sat-template.c,v 1.2 2004/05/25 21:07:43 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-ber.h"
+#include "packet-x509sat.h"
+#include "packet-x509if.h"
+
+#define PNAME "X.509 Selected Attribute Types"
+#define PSNAME "X509SAT"
+#define PFNAME "x509sat"
+
+/* Initialize the protocol and registered fields */
+int proto_x509sat = -1;
+#include "packet-x509sat-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-x509sat-ett.c"
+
+#include "packet-x509sat-fn.c"
+
+
+/*--- proto_register_x509sat ----------------------------------------------*/
+void proto_register_x509sat(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-x509sat-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-x509sat-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_x509sat = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_x509sat, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_x509sat -------------------------------------------*/
+void proto_reg_handoff_x509sat(void) {
+}
+
diff --git a/asn1/x509sat/packet-x509sat-template.h b/asn1/x509sat/packet-x509sat-template.h
new file mode 100644
index 0000000000..4c62b7deec
--- /dev/null
+++ b/asn1/x509sat/packet-x509sat-template.h
@@ -0,0 +1,31 @@
+/* packet-x509sat.h
+ * Routines for X.509 Selected Attribute Types packet dissection
+ *
+ * $Id: packet-x509sat-template.h,v 1.1 2004/05/24 08:42:29 sahlberg Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PACKET_X509SAT_H
+#define PACKET_X509SAT_H
+
+#include "packet-x509sat-exp.h"
+
+#endif /* PACKET_X509SAT_H */
+
diff --git a/asn1/x509sat/x509sat.cnf b/asn1/x509sat/x509sat.cnf
new file mode 100644
index 0000000000..bd72ba8c3f
--- /dev/null
+++ b/asn1/x509sat/x509sat.cnf
@@ -0,0 +1,21 @@
+# x509sat.cnf
+# X509SAT conformation file
+
+# $Id: x509sat.cnf,v 1.2 2004/06/03 08:35:44 guy Exp $
+
+#.MODULE_IMPORT
+InformationFramework x509if
+
+#.EXPORTS
+
+UniqueIdentifier
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
+