aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/dap/dap.cnf33
-rw-r--r--asn1/x509if/InformationFramework.asn1351
-rw-r--r--asn1/x509if/Makefile.common2
-rw-r--r--asn1/x509if/ServiceAdministration.asn240
-rw-r--r--asn1/x509if/packet-x509if-template.c1
-rw-r--r--asn1/x509if/x509if.cnf118
-rw-r--r--epan/dissectors/packet-dap.c14
-rw-r--r--epan/dissectors/packet-dap.h8
-rw-r--r--epan/dissectors/packet-x509if.c1139
-rw-r--r--epan/dissectors/packet-x509if.h6
10 files changed, 1661 insertions, 1251 deletions
diff --git a/asn1/dap/dap.cnf b/asn1/dap/dap.cnf
index 9ce0414e15..5c297e2e65 100644
--- a/asn1/dap/dap.cnf
+++ b/asn1/dap/dap.cnf
@@ -16,33 +16,6 @@ ServiceAdministration x509if
AttributeCertificateDefinitions x509af
BasicAccessControl crmf
-#.CLASS OBJECT-CLASS
-&Superclasses ClassReference OBJECT-CLASS
-&kind
-&MandatoryAttributes ClassReference ATTRIBUTE
-&OptionalAttributes ClassReference ATTRIBUTE
-&id ObjectIdentifierType
-#.END
-
-#.CLASS ATTRIBUTE
-&derivation ClassReference ATTRIBUTE
-&Type
-&equality-match ClassReference MATCHING-RULE
-&ordering-match ClassReference MATCHING-RULE
-&substrings-match ClassReference MATCHING-RULE
-&single-valued BooleanType
-&collective BooleanType
-&no-user-modification BooleanType
-&usage
-&id ObjectIdentifierType
-#.END
-
-#.CLASS MATCHING-RULE
-&ParentMatchingRules ClassReference MATCHING-RULE
-&AssertionType
-&uniqueMatchIndicator ClassReference ATTRIBUTE
-&id ObjectIdentifierType
-#.END
#.CLASS CONTEXT
&Type
@@ -100,10 +73,14 @@ AttributeError
NameError
ServiceError
Abandoned
+SearchControlOptions
SecurityError
+ServiceControlOptions
AbandonFailedError
UpdateError
-
+HierarchySelections
+FamilyGrouping
+FamilyReturn
#.TYPE_RENAME
FamilyEntry/information FamilyInformation
diff --git a/asn1/x509if/InformationFramework.asn b/asn1/x509if/InformationFramework.asn
index 30f81b0fca..2484842faf 100644
--- a/asn1/x509if/InformationFramework.asn
+++ b/asn1/x509if/InformationFramework.asn
@@ -1,92 +1,91 @@
--- Module InformationFramework (X.501:08/1997)
-
-InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) 3} DEFINITIONS ::=
+-- $Id:$
+-- Module InformationFramework (X.501:08/2005)
+InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1)
+ 5} 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.
+-- 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
- id-oc, id-at, id-mr, id-oa, id-sc, id-ar, id-nf, selectedAttributeTypes,
- directoryAbstractService, upperBounds
+ -- from ITU-T Rec. X.501 | ISO/IEC 9594-2
+ directoryAbstractService, id-ar, id-at, id-mr, id-nf, id-oa, id-oc,
+ id-sc, selectedAttributeTypes, serviceAdministration, upperBounds
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
- usefulDefinitions(0) 3}
- commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch,
- integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch,
- integerFirstComponentMatch, DirectoryString
- FROM SelectedAttributeTypes selectedAttributeTypes
- TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions,
- HierarchySelections, FamilyGrouping, FamilyReturn
+ usefulDefinitions(0) 5}
+ SearchRule
+ FROM ServiceAdministration serviceAdministration
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ TypeAndContextAssertion
FROM DirectoryAbstractService directoryAbstractService
+ -- from ITU-T Rec. X.520 | ISO/IEC 9594-6
+ booleanMatch, commonName, DirectoryString{}, generalizedTimeMatch,
+ generalizedTimeOrderingMatch, integerFirstComponentMatch, integerMatch,
+ integerOrderingMatch, objectIdentifierFirstComponentMatch
+ FROM SelectedAttributeTypes selectedAttributeTypes
ub-search
FROM UpperBounds upperBounds;
-AttributeId ::= OBJECT IDENTIFIER
-
-AttributeValue ::= ANY
-
-ValuesWithContextValue ::= ANY
-
-- attribute data types
Attribute ::= SEQUENCE {
- type AttributeId,
- values SET OF AttributeValue,
- valuesWithContext SET OF SEQUENCE {
- value ValuesWithContextValue,
- contextList SET OF Context
- } OPTIONAL
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ values
+ SET SIZE (0..MAX) OF ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
}
-AttributeType ::= AttributeId
+AttributeType ::= ATTRIBUTE.&id
+
+AttributeValue ::= ATTRIBUTE.&Type
Context ::= SEQUENCE {
- contextType AttributeId,
- contextValues SET OF AttributeValue,
- fallback BOOLEAN OPTIONAL
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Type({SupportedContexts}{@contextType}),
+ fallback BOOLEAN DEFAULT FALSE
}
AttributeValueAssertion ::= SEQUENCE {
- type AttributeId,
- assertion AttributeValue,
- assertedContexts CHOICE {
- allContexts [0] NULL,
- selectedContexts [1] SET OF ContextAssertion
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertion
+ ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}),
+ assertedContexts
+ CHOICE {allContexts [0] NULL,
+ selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion
} OPTIONAL
}
-ContextId ::= OBJECT IDENTIFIER
-
-ContextValue ::= ANY
-
ContextAssertion ::= SEQUENCE {
- contextType ContextId,
- contextValues SET OF ContextValue
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValues
+ SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType})
}
-
+
AttributeTypeAssertion ::= SEQUENCE {
- type AttributeId,
- assertedContexts SEQUENCE OF ContextAssertion OPTIONAL
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL
}
-- Definition of the following information object set is deferred, perhaps to standardized
-- profiles or to protocol implementation conformance statements. The set is required to
-- specify a table constraint on the values component of Attribute, the value component
-- of AttributeTypeAndValue, and the assertion component of AttributeValueAssertion.
--- SupportedAttributes ATTRIBUTE ::=
--- {objectClass | aliasedEntryName, ...}
---
+SupportedAttributes ATTRIBUTE ::=
+ {objectClass | aliasedEntryName, ...}
+
-- Definition of the following information object set is deferred, perhaps to standardized
-- profiles or to protocol implementation conformance statements. The set is required to
-- specify a table constraint on the context specifications
--- SupportedContexts CONTEXT ::=
--- {...}
---
--- naming data types
+SupportedContexts CONTEXT ::=
+ {...}
-Name ::= CHOICE {
- rdnSequence RDNSequence
+-- naming data types
+Name ::= CHOICE { -- only one possibility for now --rdnSequence RDNSequence
}
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
@@ -97,25 +96,21 @@ RelativeDistinguishedName ::=
SET SIZE (1..MAX) OF AttributeTypeAndDistinguishedValue
AttributeTypeAndDistinguishedValue ::= SEQUENCE {
- type AttributeId,
- value AttributeValue,
- primaryDistinguished BOOLEAN OPTIONAL,
- valuesWithContext SET OF SEQUENCE {
- distingAttrValue [0] ValuesWithContextValue OPTIONAL,
- contextList SET OF Context
- } OPTIONAL
+ type ATTRIBUTE.&id({SupportedAttributes}),
+ value ATTRIBUTE.&Type({SupportedAttributes}{@type}),
+ primaryDistinguished BOOLEAN DEFAULT TRUE,
+ valuesWithContext
+ SET SIZE (1..MAX) OF
+ SEQUENCE {distingAttrValue
+ [0] ATTRIBUTE.&Type({SupportedAttributes}{@type}) OPTIONAL,
+ contextList SET SIZE (1..MAX) OF Context} OPTIONAL
}
-
+
-- subtree data types
SubtreeSpecification ::= SEQUENCE {
- base [0] LocalName OPTIONAL,
- specificExclusions
- [1] SET SIZE (1..MAX) OF
- CHOICE {chopBefore [0] LocalName,
- chopAfter [1] LocalName} OPTIONAL,
- minimum [2] BaseDistance OPTIONAL,
- maximum [3] BaseDistance OPTIONAL,
- specificationFilter [4] Refinement OPTIONAL
+ base [0] LocalName DEFAULT {},
+ COMPONENTS OF ChopSpecification,
+ specificationFilter [4] Refinement OPTIONAL
}
-- empty sequence specifies whole administrative area
@@ -126,762 +121,566 @@ ChopSpecification ::= SEQUENCE {
[1] SET SIZE (1..MAX) OF
CHOICE {chopBefore [0] LocalName,
chopAfter [1] LocalName} OPTIONAL,
- minimum [2] BaseDistance OPTIONAL,
+ minimum [2] BaseDistance DEFAULT 0,
maximum [3] BaseDistance OPTIONAL
}
-BaseDistance ::= INTEGER
+BaseDistance ::= INTEGER(0..MAX)
Refinement ::= CHOICE {
- item [0] OBJECT IDENTIFIER,
+ item [0] OBJECT-CLASS.&id,
and [1] SET OF Refinement,
or [2] SET OF Refinement,
not [3] Refinement
}
-
+
-- OBJECT-CLASS information object class specification
--- OBJECT-CLASS ::= CLASS {
--- &Superclasses OBJECT-CLASS OPTIONAL,
--- &kind ObjectClassKind DEFAULT structural,
--- &MandatoryAttributes ATTRIBUTE OPTIONAL,
--- &OptionalAttributes ATTRIBUTE OPTIONAL,
--- &id OBJECT IDENTIFIER UNIQUE
--- }
--- WITH SYNTAX {
--- [SUBCLASS OF &Superclasses]
--- [KIND &kind]
--- [MUST CONTAIN &MandatoryAttributes]
--- [MAY CONTAIN &OptionalAttributes]
--- ID &id
--- }
+OBJECT-CLASS ::= CLASS {
+ &Superclasses OBJECT-CLASS OPTIONAL,
+ &kind ObjectClassKind DEFAULT structural,
+ &MandatoryAttributes ATTRIBUTE OPTIONAL,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBCLASS OF &Superclasses]
+ [KIND &kind]
+ [MUST CONTAIN &MandatoryAttributes]
+ [MAY CONTAIN &OptionalAttributes]
+ ID &id
+}
ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)}
-- object classes
--- top OBJECT-CLASS ::= {
--- KIND abstract
--- MUST CONTAIN {objectClass}
--- ID id-oc-top
--- }
---
--- alias OBJECT-CLASS ::= {
--- SUBCLASS OF {top}
--- MUST CONTAIN {aliasedEntryName}
--- ID id-oc-alias
--- }
---
--- parent OBJECT-CLASS ::= {KIND abstract
--- ID id-oc-parent
--- }
---
--- child OBJECT-CLASS ::= {KIND auxiliary
--- ID id-oc-child
--- }
---
+top OBJECT-CLASS ::= {
+ KIND abstract
+ MUST CONTAIN {objectClass}
+ ID id-oc-top
+}
+
+alias OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ MUST CONTAIN {aliasedEntryName}
+ ID id-oc-alias
+}
+
+parent OBJECT-CLASS ::= {KIND abstract
+ ID id-oc-parent
+}
+
+child OBJECT-CLASS ::= {KIND auxiliary
+ ID id-oc-child
+}
+
-- ATTRIBUTE information object class specification
--- ATTRIBUTE ::= CLASS {
--- either &Type or &derivation required
--- &derivation ATTRIBUTE OPTIONAL,
--- &Type OPTIONAL,
--- &equality-match MATCHING-RULE OPTIONAL,
--- &ordering-match MATCHING-RULE OPTIONAL,
--- &substrings-match MATCHING-RULE OPTIONAL,
--- &single-valued BOOLEAN DEFAULT FALSE,
--- &collective BOOLEAN DEFAULT FALSE,
--- operational extensions
--- &no-user-modification BOOLEAN DEFAULT FALSE,
--- &usage AttributeUsage DEFAULT userApplications,
--- &id OBJECT IDENTIFIER UNIQUE
--- }
--- WITH SYNTAX {
--- [SUBTYPE OF &derivation]
--- [WITH SYNTAX &Type]
--- [EQUALITY MATCHING RULE &equality-match]
--- [ORDERING MATCHING RULE &ordering-match]
--- [SUBSTRINGS MATCHING RULE &substrings-match]
--- [SINGLE VALUE &single-valued]
--- [COLLECTIVE &collective]
--- [NO USER MODIFICATION &no-user-modification]
--- [USAGE &usage]
--- ID &id
--- }
+ATTRIBUTE ::= CLASS {
+ &derivation ATTRIBUTE OPTIONAL,
+ &Type OPTIONAL, -- either &Type or &derivation required
+ &equality-match MATCHING-RULE OPTIONAL,
+ &ordering-match MATCHING-RULE OPTIONAL,
+ &substrings-match MATCHING-RULE OPTIONAL,
+ &single-valued BOOLEAN DEFAULT FALSE,
+ &collective BOOLEAN DEFAULT FALSE,
+ &dummy BOOLEAN DEFAULT FALSE,
+ -- operational extensions
+ &no-user-modification BOOLEAN DEFAULT FALSE,
+ &usage AttributeUsage DEFAULT userApplications,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SUBTYPE OF &derivation]
+ [WITH SYNTAX &Type]
+ [EQUALITY MATCHING RULE &equality-match]
+ [ORDERING MATCHING RULE &ordering-match]
+ [SUBSTRINGS MATCHING RULE &substrings-match]
+ [SINGLE VALUE &single-valued]
+ [COLLECTIVE &collective]
+ [DUMMY &dummy]
+ [NO USER MODIFICATION &no-user-modification]
+ [USAGE &usage]
+ ID &id
+}
AttributeUsage ::= ENUMERATED {
userApplications(0), directoryOperation(1), distributedOperation(2),
dSAOperation(3)}
-- attributes
--- objectClass ATTRIBUTE ::= {
--- WITH SYNTAX OBJECT IDENTIFIER
--- EQUALITY MATCHING RULE objectIdentifierMatch
--- ID id-at-objectClass
--- }
---
--- aliasedEntryName ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- SINGLE VALUE TRUE
--- ID id-at-aliasedEntryName
--- }
---
+objectClass ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ ID id-at-objectClass
+}
+
+aliasedEntryName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ ID id-at-aliasedEntryName
+}
+
-- MATCHING-RULE information object class specification
--- MATCHING-RULE ::= CLASS {
--- &ParentMatchingRules MATCHING-RULE.&id OPTIONAL,
--- &AssertionType OPTIONAL,
--- &uniqueMatchIndicator AttributeId OPTIONAL,
--- &id OBJECT IDENTIFIER UNIQUE
--- }
--- WITH SYNTAX {
--- [PARENT &ParentMatchingRules]
--- [SYNTAX &AssertionType]
--- [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
--- ID &id
--- }
---
+MATCHING-RULE ::= CLASS {
+ &ParentMatchingRules MATCHING-RULE OPTIONAL,
+ &AssertionType OPTIONAL,
+ &uniqueMatchIndicator ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [PARENT &ParentMatchingRules]
+ [SYNTAX &AssertionType]
+ [UNIQUE-MATCH-INDICATOR &uniqueMatchIndicator]
+ ID &id
+}
+
-- matching rules
--- objectIdentifierMatch MATCHING-RULE ::= {
--- SYNTAX OBJECT IDENTIFIER
--- ID id-mr-objectIdentifierMatch
--- }
---
--- distinguishedNameMatch MATCHING-RULE ::= {
--- SYNTAX DistinguishedName
--- ID id-mr-distinguishedNameMatch
--- }
---
--- MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
--- OBJECT IDENTIFIER:matchingRule} ::= CLASS {
--- &selectBy SelectedBy OPTIONAL,
--- &ApplicableTo ATTRIBUTE,
--- &subtypesIncluded BOOLEAN DEFAULT TRUE,
--- &combinable BOOLEAN(combinable),
--- &mappingResults MappingResult OPTIONAL,
--- &userControl BOOLEAN DEFAULT FALSE,
--- &exclusive BOOLEAN DEFAULT TRUE,
--- &matching-rule MATCHING-RULE.&id(matchingRule),
--- &id OBJECT IDENTIFIER UNIQUE
--- }
--- WITH SYNTAX {
--- [SELECT BY &selectBy]
--- APPLICABLE TO &ApplicableTo
--- [SUBTYPES INCLUDED &subtypesIncluded]
--- COMBINABLE &combinable
--- [MAPPING RESULTS &mappingResults]
--- [USER CONTROL &userControl]
--- [EXCLUSIVE &exclusive]
--- MATCHING RULE &matching-rule
--- ID &id
--- }
---
+objectIdentifierMatch MATCHING-RULE ::= {
+ SYNTAX OBJECT IDENTIFIER
+ ID id-mr-objectIdentifierMatch
+}
+
+distinguishedNameMatch MATCHING-RULE ::= {
+ SYNTAX DistinguishedName
+ ID id-mr-distinguishedNameMatch
+}
+
+MAPPING-BASED-MATCHING{SelectedBy, BOOLEAN:combinable, MappingResult,
+ OBJECT IDENTIFIER:matchingRule} ::= CLASS {
+ &selectBy SelectedBy OPTIONAL,
+ &ApplicableTo ATTRIBUTE,
+ &subtypesIncluded BOOLEAN DEFAULT TRUE,
+ &combinable BOOLEAN(combinable),
+ &mappingResults MappingResult OPTIONAL,
+ &userControl BOOLEAN DEFAULT FALSE,
+ &exclusive BOOLEAN DEFAULT TRUE,
+ &matching-rule MATCHING-RULE.&id(matchingRule),
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ [SELECT BY &selectBy]
+ APPLICABLE TO &ApplicableTo
+ [SUBTYPES INCLUDED &subtypesIncluded]
+ COMBINABLE &combinable
+ [MAPPING RESULTS &mappingResults]
+ [USER CONTROL &userControl]
+ [EXCLUSIVE &exclusive]
+ MATCHING RULE &matching-rule
+ ID &id
+}
+
-- NAME-FORM information object class specification
--- NAME-FORM ::= CLASS {
--- &namedObjectClass OBJECT-CLASS,
--- &MandatoryAttributes ATTRIBUTE,
--- &OptionalAttributes ATTRIBUTE OPTIONAL,
--- &id OBJECT IDENTIFIER UNIQUE
--- }
--- WITH SYNTAX {
--- NAMES &namedObjectClass
--- WITH ATTRIBUTES &MandatoryAttributes
--- [AND OPTIONALLY &OptionalAttributes]
--- ID &id
--- }
---
+NAME-FORM ::= CLASS {
+ &namedObjectClass OBJECT-CLASS,
+ &MandatoryAttributes ATTRIBUTE,
+ &OptionalAttributes ATTRIBUTE OPTIONAL,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ NAMES &namedObjectClass
+ WITH ATTRIBUTES &MandatoryAttributes
+ [AND OPTIONALLY &OptionalAttributes]
+ ID &id
+}
+
-- STRUCTURE-RULE class and DIT structure rule data types
--- STRUCTURE-RULE ::= CLASS {
--- &nameForm NAME-FORM,
--- &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
--- &id RuleIdentifier
--- }
--- WITH SYNTAX {
--- NAME FORM &nameForm
--- [SUPERIOR RULES &SuperiorStructureRules]
--- ID &id
--- }
+STRUCTURE-RULE ::= CLASS {
+ &nameForm NAME-FORM,
+ &SuperiorStructureRules STRUCTURE-RULE OPTIONAL,
+ &id RuleIdentifier
+}
+WITH SYNTAX {
+ NAME FORM &nameForm
+ [SUPERIOR RULES &SuperiorStructureRules]
+ ID &id
+}
DITStructureRule ::= SEQUENCE {
ruleIdentifier RuleIdentifier,
--- must be unique within the scope of the subschema
- nameForm OBJECT IDENTIFIER,
- superiorStructureRules SET OF RuleIdentifier OPTIONAL
+ -- shall be unique within the scope of the subschema
+ nameForm NAME-FORM.&id,
+ superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL
}
RuleIdentifier ::= INTEGER
-- CONTENT-RULE class and DIT content rule data types
--- CONTENT-RULE ::= CLASS {
--- &structuralClass OBJECT-CLASS.&id UNIQUE,
--- &Auxiliaries OBJECT-CLASS OPTIONAL,
--- &Mandatory ATTRIBUTE OPTIONAL,
--- &Optional ATTRIBUTE OPTIONAL,
--- &Precluded ATTRIBUTE OPTIONAL
--- }
--- WITH SYNTAX {
--- STRUCTURAL OBJECT-CLASS &structuralClass
--- [AUXILIARY OBJECT-CLASSES &Auxiliaries]
--- [MUST CONTAIN &Mandatory]
--- [MAY CONTAIN &Optional]
--- [MUST-NOT CONTAIN &Precluded]
--- }
+CONTENT-RULE ::= CLASS {
+ &structuralClass OBJECT-CLASS.&id UNIQUE,
+ &Auxiliaries OBJECT-CLASS OPTIONAL,
+ &Mandatory ATTRIBUTE OPTIONAL,
+ &Optional ATTRIBUTE OPTIONAL,
+ &Precluded ATTRIBUTE OPTIONAL
+}
+WITH SYNTAX {
+ STRUCTURAL OBJECT-CLASS &structuralClass
+ [AUXILIARY OBJECT-CLASSES &Auxiliaries]
+ [MUST CONTAIN &Mandatory]
+ [MAY CONTAIN &Optional]
+ [MUST-NOT CONTAIN &Precluded]
+}
DITContentRule ::= SEQUENCE {
- structuralObjectClass OBJECT IDENTIFIER,
- auxiliaries SET OF OBJECT IDENTIFIER OPTIONAL,
- mandatory [1] SET SIZE (1..MAX) OF AttributeId OPTIONAL,
- optional [2] SET SIZE (1..MAX) OF AttributeId OPTIONAL,
- precluded [3] SET SIZE (1..MAX) OF AttributeId OPTIONAL
-}
-
--- CONTEXT ::= CLASS {
--- &Type ,
--- &Assertion OPTIONAL,
--- &id OBJECT IDENTIFIER UNIQUE
--- }WITH SYNTAX {WITH SYNTAX &Type
--- [ASSERTED AS &Assertion]
--- ID &id
--- }
+ structuralObjectClass OBJECT-CLASS.&id,
+ auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id OPTIONAL,
+ mandatory [1] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ optional [2] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL,
+ precluded [3] SET SIZE (1..MAX) OF ATTRIBUTE.&id OPTIONAL
+}
+
+CONTEXT ::= CLASS {
+ &Type ,
+ &DefaultValue OPTIONAL,
+ &Assertion OPTIONAL,
+ &absentMatch BOOLEAN DEFAULT TRUE,
+ &id OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+ WITH SYNTAX &Type
+ [DEFAULT-VALUE &DefaultValue]
+ [ASSERTED AS &Assertion]
+ [ABSENT-MATCH &absentMatch]
+ ID &id
+}
DITContextUse ::= SEQUENCE {
- attributeType AttributeId,
- mandatoryContexts [1] SET OF OBJECT IDENTIFIER OPTIONAL,
- optionalContexts [2] SET OF OBJECT IDENTIFIER OPTIONAL
-}
-
--- DIT-CONTEXT-USE-RULE ::= CLASS {
--- &attributeType AttributeId UNIQUE,
--- &Mandatory CONTEXT OPTIONAL,
--- &Optional CONTEXT OPTIONAL
--- }
--- WITH SYNTAX {
--- ATTRIBUTE TYPE &attributeType
--- [MANDATORY CONTEXTS &Mandatory]
--- [OPTIONAL CONTEXTS &Optional]
--- }
---
+ attributeType ATTRIBUTE.&id,
+ mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL,
+ optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL
+}
+
+DIT-CONTEXT-USE-RULE ::= CLASS {
+ &attributeType ATTRIBUTE.&id UNIQUE,
+ &Mandatory CONTEXT OPTIONAL,
+ &Optional CONTEXT OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [MANDATORY CONTEXTS &Mandatory]
+ [OPTIONAL CONTEXTS &Optional]
+}
+
+FRIENDS ::= CLASS {&anchor ATTRIBUTE.&id UNIQUE,
+ &Friends ATTRIBUTE
+}WITH SYNTAX {ANCHOR &anchor
+ FRIENDS &Friends
+}
+
-- system schema information objects
-- object classes
--- subentry OBJECT-CLASS ::= {
--- SUBCLASS OF {top}
--- KIND structural
--- MUST CONTAIN {commonName | subtreeSpecification}
--- ID id-sc-subentry
--- }
---
--- subentryNameForm NAME-FORM ::= {
--- NAMES subentry
--- WITH ATTRIBUTES {commonName}
--- ID id-nf-subentryNameForm
--- }
---
--- accessControlSubentry OBJECT-CLASS ::= {
--- KIND auxiliary
--- ID id-sc-accessControlSubentry
--- }
---
--- collectiveAttributeSubentry OBJECT-CLASS ::= {
--- KIND auxiliary
--- ID id-sc-collectiveAttributeSubentry
--- }
---
--- contextAssertionSubentry OBJECT-CLASS ::= {
--- KIND auxiliary
--- MUST CONTAIN {contextAssertionDefaults}
--- ID id-sc-contextAssertionSubentry
--- }
---
--- serviceAdminSubentry OBJECT-CLASS ::= {
--- KIND auxiliary
--- MUST CONTAIN {searchRules}
--- ID id-sc-serviceAdminSubentry
--- }
---
+subentry OBJECT-CLASS ::= {
+ SUBCLASS OF {top}
+ KIND structural
+ MUST CONTAIN {commonName | subtreeSpecification}
+ ID id-sc-subentry
+}
+
+subentryNameForm NAME-FORM ::= {
+ NAMES subentry
+ WITH ATTRIBUTES {commonName}
+ ID id-nf-subentryNameForm
+}
+
+accessControlSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-accessControlSubentry
+}
+
+collectiveAttributeSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ ID id-sc-collectiveAttributeSubentry
+}
+
+contextAssertionSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {contextAssertionDefaults}
+ ID id-sc-contextAssertionSubentry
+}
+
+serviceAdminSubentry OBJECT-CLASS ::= {
+ KIND auxiliary
+ MUST CONTAIN {searchRules}
+ ID id-sc-serviceAdminSubentry
+}
+
-- attributes
--- createTimestamp ATTRIBUTE ::= {
--- WITH SYNTAX GeneralizedTime
--- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
--- EQUALITY MATCHING RULE generalizedTimeMatch
--- ORDERING MATCHING RULE generalizedTimeOrderingMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-createTimestamp
--- }
---
--- modifyTimestamp ATTRIBUTE ::= {
--- WITH SYNTAX GeneralizedTime
--- as per 41.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
--- EQUALITY MATCHING RULE generalizedTimeMatch
--- ORDERING MATCHING RULE generalizedTimeOrderingMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-modifyTimestamp
--- }
---
--- subschemaTimestamp ATTRIBUTE ::= {
--- WITH SYNTAX GeneralizedTime
--- as per 41.3 b) or c) of ITU-T Rec.X. 680 | ISO/IEC 8824-1
--- EQUALITY MATCHING RULE generalizedTimeMatch
--- ORDERING MATCHING RULE generalizedTimeOrderingMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-subschemaTimestamp
--- }
---
--- creatorsName ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-creatorsName
--- }
---
--- modifiersName ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-modifiersName
--- }
---
--- subschemaSubentryList ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-subschemaSubentryList
--- }
---
--- accessControlSubentryList ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-accessControlSubentryList
--- }
---
--- collectiveAttributeSubentryList ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-collectiveAttributeSubentryList
--- }
---
--- contextDefaultSubentryList ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-contextDefaultSubentryList
--- }
---
--- serviceAdminSubentryList ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-serviceAdminSubentryList
--- }
---
--- hasSubordinates ATTRIBUTE ::= {
--- WITH SYNTAX BOOLEAN
--- EQUALITY MATCHING RULE booleanMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-hasSubordinates
--- }
---
--- administrativeRole ATTRIBUTE ::= {
--- WITH SYNTAX OBJECT-CLASS.&id
--- EQUALITY MATCHING RULE objectIdentifierMatch
--- USAGE directoryOperation
--- ID id-oa-administrativeRole
--- }
---
--- subtreeSpecification ATTRIBUTE ::= {
--- WITH SYNTAX SubtreeSpecification
--- USAGE directoryOperation
--- ID id-oa-subtreeSpecification
--- }
---
--- collectiveExclusions ATTRIBUTE ::= {
--- WITH SYNTAX OBJECT IDENTIFIER
--- EQUALITY MATCHING RULE objectIdentifierMatch
--- USAGE directoryOperation
--- ID id-oa-collectiveExclusions
--- }
---
--- contextAssertionDefaults ATTRIBUTE ::= {
--- WITH SYNTAX TypeAndContextAssertion
--- EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
--- USAGE directoryOperation
--- ID id-oa-contextAssertionDefault
--- }
---
--- searchRules ATTRIBUTE ::= {
--- WITH SYNTAX SearchRuleDescription
--- EQUALITY MATCHING RULE integerFirstComponentMatch
--- USAGE directoryOperation
--- ID id-oa-searchRules
--- }
+subtreeSpecification ATTRIBUTE ::= {
+ WITH SYNTAX SubtreeSpecification
+ USAGE directoryOperation
+ ID id-oa-subtreeSpecification
+}
+
+administrativeRole ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT-CLASS.&id
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-administrativeRole
+}
+
+createTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 42.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-createTimestamp
+}
+
+modifyTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 42.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifyTimestamp
+}
+
+subschemaTimestamp ATTRIBUTE ::= {
+ WITH SYNTAX GeneralizedTime
+ -- as per 42.3 b) or c) of ITU-T Rec. X.680 | ISO/IEC 8824-1
+ EQUALITY MATCHING RULE generalizedTimeMatch
+ ORDERING MATCHING RULE generalizedTimeOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaTimestamp
+}
+
+creatorsName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-creatorsName
+}
+
+modifiersName ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-modifiersName
+}
+
+subschemaSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-subschemaSubentryList
+}
+
+accessControlSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-accessControlSubentryList
+}
+
+collectiveAttributeSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-collectiveAttributeSubentryList
+}
+
+contextDefaultSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-contextDefaultSubentryList
+}
+
+serviceAdminSubentryList ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-serviceAdminSubentryList
+}
+
+hasSubordinates ATTRIBUTE ::= {
+ WITH SYNTAX BOOLEAN
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hasSubordinates
+}
+
+collectiveExclusions ATTRIBUTE ::= {
+ WITH SYNTAX OBJECT IDENTIFIER
+ EQUALITY MATCHING RULE objectIdentifierMatch
+ USAGE directoryOperation
+ ID id-oa-collectiveExclusions
+}
+
+contextAssertionDefaults ATTRIBUTE ::= {
+ WITH SYNTAX TypeAndContextAssertion
+ EQUALITY MATCHING RULE objectIdentifierFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-contextAssertionDefault
+}
+
+searchRules ATTRIBUTE ::= {
+ WITH SYNTAX SearchRuleDescription
+ EQUALITY MATCHING RULE integerFirstComponentMatch
+ USAGE directoryOperation
+ ID id-oa-searchRules
+}
SearchRuleDescription ::= SEQUENCE {
- id INTEGER,
- dmdId [0] OBJECT IDENTIFIER,
- serviceType [1] OBJECT IDENTIFIER OPTIONAL,
- userClass [2] INTEGER OPTIONAL,
- inputAttributeTypes [3] SEQUENCE OF RequestAttribute OPTIONAL,
- attributeCombination [4] AttributeCombination OPTIONAL,
- outputAttributeTypes [5] SEQUENCE OF ResultAttribute OPTIONAL,
- defaultControls [6] ControlOptions OPTIONAL,
- mandatoryControls [7] ControlOptions OPTIONAL,
- searchRuleControls [8] ControlOptions OPTIONAL,
--- familyGrouping [9] FamilyGrouping OPTIONAL,
--- familyReturn [10] FamilyReturn OPTIONAL,
- relaxation [11] RelaxationPolicy OPTIONAL,
- additionalControl [12] SEQUENCE OF AttributeType OPTIONAL,
- allowedSubset [13] AllowedSubset OPTIONAL,
- imposedSubset [14] ImposedSubset OPTIONAL,
- entryLimit [15] EntryLimit OPTIONAL,
- name [28] SET OF DirectoryString OPTIONAL,
- description [29] DirectoryString OPTIONAL,
- obsolete [30] BOOLEAN OPTIONAL
-}
-
--- hierarchyLevel ATTRIBUTE ::= {
--- WITH SYNTAX INTEGER
--- EQUALITY MATCHING RULE integerMatch
--- ORDERING MATCHING RULE integerOrderingMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-hierarchyLevel
--- }
---
--- hierarchyBelow ATTRIBUTE ::= {
--- WITH SYNTAX BOOLEAN
--- EQUALITY MATCHING RULE booleanMatch
--- SINGLE VALUE TRUE
--- NO USER MODIFICATION TRUE
--- USAGE directoryOperation
--- ID id-oa-hierarchyBelow
--- }
---
--- hierarchyParent ATTRIBUTE ::= {
--- WITH SYNTAX DistinguishedName
--- EQUALITY MATCHING RULE distinguishedNameMatch
--- SINGLE VALUE TRUE
--- USAGE directoryOperation
--- ID id-oa-hierarchyParent
--- }
---
-SearchRule ::= SEQUENCE {
- id INTEGER,
- dmdId [0] OBJECT IDENTIFIER,
- serviceType [1] OBJECT IDENTIFIER OPTIONAL,
- userClass [2] INTEGER OPTIONAL,
- inputAttributeTypes [3] SEQUENCE OF RequestAttribute OPTIONAL,
- attributeCombination [4] AttributeCombination OPTIONAL,
- outputAttributeTypes [5] SEQUENCE OF ResultAttribute OPTIONAL,
- defaultControls [6] ControlOptions OPTIONAL,
- mandatoryControls [7] ControlOptions OPTIONAL,
- searchRuleControls [8] ControlOptions OPTIONAL,
--- familyGrouping [9] FamilyGrouping OPTIONAL,
--- familyReturn [10] FamilyReturn OPTIONAL,
- relaxation [11] RelaxationPolicy OPTIONAL,
- additionalControl [12] SEQUENCE OF AttributeType OPTIONAL,
- allowedSubset [13] AllowedSubset OPTIONAL,
- imposedSubset [14] ImposedSubset OPTIONAL,
- entryLimit [15] EntryLimit OPTIONAL
-}
-
-SearchRuleId ::= SEQUENCE {
- id INTEGER,
- dmdId [0] OBJECT IDENTIFIER
-}
-
-AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
-
-ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
-
-SelectedValues ::= ANY
-
-DefaultValueType ::= OBJECT IDENTIFIER
-
-DefaultValueValues ::= ANY
-
-RequestAttribute ::= SEQUENCE {
- attributeType AttributeId,
- includeSubtypes [0] BOOLEAN OPTIONAL,
- selectedValues [1] SEQUENCE OF SelectedValues OPTIONAL,
- defaultValues [2] SEQUENCE OF SEQUENCE {
- entryType DefaultValueType OPTIONAL,
- values SEQUENCE OF DefaultValueValues
- } OPTIONAL,
- contexts [3] SEQUENCE OF ContextProfile OPTIONAL,
- contextCombination [4] ContextCombination OPTIONAL,
- matchingUse [5] SEQUENCE OF MatchingUse OPTIONAL
-}
-
-ContextProfile ::= SEQUENCE {
- contextType AttributeId,
- contextValue SEQUENCE OF AttributeValue OPTIONAL
-}
-
-ContextCombination ::= CHOICE {
- context [0] OBJECT IDENTIFIER,
- and [1] SEQUENCE OF ContextCombination,
- or [2] SEQUENCE OF ContextCombination,
- not [3] ContextCombination
-}
-
-MatchingUse ::= SEQUENCE {
- restrictionType AttributeId,
- restrictionValue AttributeValue
+ COMPONENTS OF SearchRule,
+ name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL,
+ description [29] DirectoryString{ub-search} OPTIONAL
+}
+
+hierarchyLevel ATTRIBUTE ::= {
+ WITH SYNTAX HierarchyLevel
+ EQUALITY MATCHING RULE integerMatch
+ ORDERING MATCHING RULE integerOrderingMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyLevel
+}
+
+HierarchyLevel ::= INTEGER
+
+hierarchyBelow ATTRIBUTE ::= {
+ WITH SYNTAX HierarchyBelow
+ EQUALITY MATCHING RULE booleanMatch
+ SINGLE VALUE TRUE
+ NO USER MODIFICATION TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyBelow
+}
+
+HierarchyBelow ::= BOOLEAN
+
+hierarchyParent ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyParent
+}
+
+hierarchyTop ATTRIBUTE ::= {
+ WITH SYNTAX DistinguishedName
+ EQUALITY MATCHING RULE distinguishedNameMatch
+ SINGLE VALUE TRUE
+ USAGE directoryOperation
+ ID id-oa-hierarchyTop
}
--- Definition of the following information object set is deferred, perhaps to standardized
--- profiles or to protocol implementation conformance statements. The set is required to
--- specify a table constraint on the components of SupportedMatchingRestrictions
--- SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
--- {...}
-
-AttributeCombination ::= CHOICE {
- attribute [0] AttributeType,
- and [1] SEQUENCE OF AttributeCombination,
- or [2] SEQUENCE OF AttributeCombination,
- not [3] AttributeCombination
-}
-
-ResultAttribute ::= SEQUENCE {
- attributeType AttributeId,
- outputValues CHOICE {
- selectedValues SEQUENCE OF AttributeValue,
- matchedValuesOnly NULL
- } OPTIONAL,
- contexts [0] SEQUENCE OF ContextProfile OPTIONAL
-}
-
-OutputValues ::= CHOICE {
- selectedValues SEQUENCE OF AttributeValue,
- matchedValuesOnly NULL
-}
-
-ControlOptions ::= SEQUENCE {
--- serviceControls [0] ServiceControlOptions OPTIONAL,
--- searchOptions [1] SearchControlOptions OPTIONAL,
--- hierarchyOptions [2] HierarchySelections OPTIONAL
-}
-
-EntryLimit ::= SEQUENCE {default INTEGER,
- max INTEGER
-}
-
-RelaxationPolicy ::= SEQUENCE {
- basic [0] MRMapping OPTIONAL,
- tightenings [1] SEQUENCE OF MRMapping OPTIONAL,
- relaxations [2] SEQUENCE OF MRMapping OPTIONAL,
- maximum [3] INTEGER OPTIONAL,
--- mandatory if tightenings is present
- minimum [4] INTEGER OPTIONAL
-}
-
-MRMapping ::= SEQUENCE {
- mapping [0] SEQUENCE OF Mapping OPTIONAL,
- substitution [1] SEQUENCE OF MRSubstitution OPTIONAL
-}
-
-Mapping ::= SEQUENCE {
- mappingFunction OBJECT IDENTIFIER,
- level INTEGER OPTIONAL
-}
-
-MRSubstitution ::= SEQUENCE {
- attribute AttributeType,
- oldMatchingRule [0] OBJECT IDENTIFIER OPTIONAL,
- newMatchingRule [1] OBJECT IDENTIFIER OPTIONAL
-}
-
--- SEARCH-RULE ::= CLASS {
--- &dmdId OBJECT IDENTIFIER,
--- &serviceType OBJECT IDENTIFIER OPTIONAL,
--- &userClass INTEGER OPTIONAL,
--- &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
--- &combination AttributeCombination OPTIONAL,
--- &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
--- &defaultControls ControlOptions OPTIONAL,
--- &mandatoryControls ControlOptions OPTIONAL,
--- &searchRuleControls ControlOptions OPTIONAL,
--- &familyGrouping FamilyGrouping OPTIONAL,
--- &familyReturn FamilyReturn OPTIONAL,
--- &additionalControl AttributeType OPTIONAL,
--- &relaxation RelaxationPolicy OPTIONAL,
--- &entryLimit EntryLimit OPTIONAL,
--- &allowedSubset AllowedSubset DEFAULT '111'B,
--- &imposedSubset ImposedSubset OPTIONAL,
--- &id INTEGER UNIQUE
--- }
--- WITH SYNTAX {
--- DMD ID &dmdId
--- [SERVICE-TYPE &serviceType]
--- [USER-CLASS &userClass]
--- [INPUT ATTRIBUTES &InputAttributeTypes]
--- [COMBINATION &combination]
--- [OUTPUT ATTRIBUTES &OutputAttributeTypes]
--- [DEFAULT CONTROL &defaultControls]
--- [MANDATORY CONTROL &mandatoryControls]
--- [SEARCH-RULE CONTROL &searchRuleControls]
--- [FAMILY-GROUPING &familyGrouping]
--- [FAMILY-RETURN &familyReturn]
--- [ADDITIONAL CONTROL &additionalControl]
--- [RELAXATION &relaxation]
--- [ALLOWED SUBSET &allowedSubset]
--- [IMPOSED SUBSET &imposedSubset]
--- [ENTRY LIMIT &entryLimit]
--- ID &id
--- }
---
--- REQUEST-ATTRIBUTE ::= CLASS {
--- &attributeType AttributeId,
--- &SelectedValues ANY OPTIONAL,
--- &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
--- values SEQUENCE OF ANY
--- } OPTIONAL,
--- &contexts SEQUENCE OF ContextProfile OPTIONAL,
--- &contextCombination ContextCombination OPTIONAL,
--- &MatchingUse MatchingUse OPTIONAL,
--- &includeSubtypes BOOLEAN DEFAULT FALSE
--- }
--- WITH SYNTAX {
--- ATTRIBUTE TYPE &attributeType
--- [SELECTED VALUES &SelectedValues]
--- [DEFAULT VALUES &DefaultValues]
--- [CONTEXTS &contexts]
--- [CONTEXT COMBINATION &contextCombination]
--- [MATCHING USE &MatchingUse]
--- [INCLUDE SUBTYPES &includeSubtypes]
--- }
---
--- RESULT-ATTRIBUTE ::= CLASS {
--- &attributeType AttributeId,
--- &outputValues OutputValues OPTIONAL,
--- &contexts ContextProfile OPTIONAL
--- }
--- WITH SYNTAX {
--- ATTRIBUTE TYPE &attributeType
--- [OUTPUT VALUES &outputValues]
--- [CONTEXTS &contexts]
--- }
---
--- MATCHING-RESTRICTION ::= CLASS {
--- &Restriction ,
--- &Rules MATCHING-RULE.&id,
--- &id OBJECT IDENTIFIER UNIQUE
--- }WITH SYNTAX {RESTRICTION &Restriction
--- RULES &Rules
--- ID &id
--- }
---
-- object identifier assignments
-- object classes
--- id-oc-top OBJECT IDENTIFIER ::=
--- {id-oc 0}
---
--- id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
---
--- id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
---
--- id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
---
+id-oc-top OBJECT IDENTIFIER ::=
+ {id-oc 0}
+
+id-oc-alias OBJECT IDENTIFIER ::= {id-oc 1}
+
+id-oc-parent OBJECT IDENTIFIER ::= {id-oc 28}
+
+id-oc-child OBJECT IDENTIFIER ::= {id-oc 29}
+
-- attributes
--- id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
---
--- id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
---
+id-at-objectClass OBJECT IDENTIFIER ::= {id-at 0}
+
+id-at-aliasedEntryName OBJECT IDENTIFIER ::= {id-at 1}
+
-- matching rules
--- id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
---
--- id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
---
+id-mr-objectIdentifierMatch OBJECT IDENTIFIER ::= {id-mr 0}
+
+id-mr-distinguishedNameMatch OBJECT IDENTIFIER ::= {id-mr 1}
+
-- operational attributes
--- id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
--- {id-oa 0}
---
--- id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
---
--- id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
---
--- id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
---
--- id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
---
--- id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
---
--- id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
---
--- id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
---
--- id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
---
--- id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
---
--- id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
---
--- id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
---
--- id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
---
--- id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
---
--- id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
---
--- id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
---
--- id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
---
--- id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
---
--- id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
---
--- id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
---
+id-oa-excludeAllCollectiveAttributes OBJECT IDENTIFIER ::=
+ {id-oa 0}
+
+id-oa-createTimestamp OBJECT IDENTIFIER ::= {id-oa 1}
+
+id-oa-modifyTimestamp OBJECT IDENTIFIER ::= {id-oa 2}
+
+id-oa-creatorsName OBJECT IDENTIFIER ::= {id-oa 3}
+
+id-oa-modifiersName OBJECT IDENTIFIER ::= {id-oa 4}
+
+id-oa-administrativeRole OBJECT IDENTIFIER ::= {id-oa 5}
+
+id-oa-subtreeSpecification OBJECT IDENTIFIER ::= {id-oa 6}
+
+id-oa-collectiveExclusions OBJECT IDENTIFIER ::= {id-oa 7}
+
+id-oa-subschemaTimestamp OBJECT IDENTIFIER ::= {id-oa 8}
+
+id-oa-hasSubordinates OBJECT IDENTIFIER ::= {id-oa 9}
+
+id-oa-subschemaSubentryList OBJECT IDENTIFIER ::= {id-oa 10}
+
+id-oa-accessControlSubentryList OBJECT IDENTIFIER ::= {id-oa 11}
+
+id-oa-collectiveAttributeSubentryList OBJECT IDENTIFIER ::= {id-oa 12}
+
+id-oa-contextDefaultSubentryList OBJECT IDENTIFIER ::= {id-oa 13}
+
+id-oa-contextAssertionDefault OBJECT IDENTIFIER ::= {id-oa 14}
+
+id-oa-serviceAdminSubentryList OBJECT IDENTIFIER ::= {id-oa 15}
+
+id-oa-searchRules OBJECT IDENTIFIER ::= {id-oa 16}
+
+id-oa-hierarchyLevel OBJECT IDENTIFIER ::= {id-oa 17}
+
+id-oa-hierarchyBelow OBJECT IDENTIFIER ::= {id-oa 18}
+
+id-oa-hierarchyParent OBJECT IDENTIFIER ::= {id-oa 19}
+
+id-oa-hierarchyTop OBJECT IDENTIFIER ::= {id-oa 20}
+
-- subentry classes
--- id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
---
--- id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
---
--- id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
---
--- id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
---
--- id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
---
--- Name forms
--- id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
---
+id-sc-subentry OBJECT IDENTIFIER ::= {id-sc 0}
+
+id-sc-accessControlSubentry OBJECT IDENTIFIER ::= {id-sc 1}
+
+id-sc-collectiveAttributeSubentry OBJECT IDENTIFIER ::= {id-sc 2}
+
+id-sc-contextAssertionSubentry OBJECT IDENTIFIER ::= {id-sc 3}
+
+id-sc-serviceAdminSubentry OBJECT IDENTIFIER ::= {id-sc 4}
+
+-- Name forms
+id-nf-subentryNameForm OBJECT IDENTIFIER ::= {id-nf 16}
+
-- administrative roles
--- id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
---
--- id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
---
--- id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
---
--- id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
---
--- id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
---
--- id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
---
--- id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
---
--- id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
+id-ar-autonomousArea OBJECT IDENTIFIER ::= {id-ar 1}
+
+id-ar-accessControlSpecificArea OBJECT IDENTIFIER ::= {id-ar 2}
+
+id-ar-accessControlInnerArea OBJECT IDENTIFIER ::= {id-ar 3}
+
+id-ar-subschemaAdminSpecificArea OBJECT IDENTIFIER ::= {id-ar 4}
+
+id-ar-collectiveAttributeSpecificArea OBJECT IDENTIFIER ::= {id-ar 5}
+
+id-ar-collectiveAttributeInnerArea OBJECT IDENTIFIER ::= {id-ar 6}
+
+id-ar-contextDefaultSpecificArea OBJECT IDENTIFIER ::= {id-ar 7}
+
+id-ar-serviceSpecificArea OBJECT IDENTIFIER ::= {id-ar 8}
END -- InformationFramework
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/x509if/Makefile.common b/asn1/x509if/Makefile.common
index 34a7bcf9bc..44a80b8386 100644
--- a/asn1/x509if/Makefile.common
+++ b/asn1/x509if/Makefile.common
@@ -32,7 +32,7 @@ EXPORT_FILES = \
EXT_ASN_FILE_LIST =
-ASN_FILE_LIST = InformationFramework.asn
+ASN_FILE_LIST = InformationFramework.asn ServiceAdministration.asn
# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
# files do not exist for all protocols: Please add/remove as required.
diff --git a/asn1/x509if/ServiceAdministration.asn b/asn1/x509if/ServiceAdministration.asn
new file mode 100644
index 0000000000..67f3a1aa52
--- /dev/null
+++ b/asn1/x509if/ServiceAdministration.asn
@@ -0,0 +1,240 @@
+-- $Id:$
+-- Module ServiceAdministration (X.501:08/2005)
+ServiceAdministration {joint-iso-itu-t ds(5) module(1)
+ serviceAdministration(33) 5} 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
+ directoryAbstractService, informationFramework
+ FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1)
+ usefulDefinitions(0) 5}
+ ATTRIBUTE, AttributeType, CONTEXT, MATCHING-RULE, OBJECT-CLASS,
+ SupportedAttributes, SupportedContexts
+ FROM InformationFramework informationFramework
+ -- from ITU-T Rec. X.511 | ISO/IEC 9594-3
+ FamilyGrouping, FamilyReturn, HierarchySelections, SearchControlOptions,
+ ServiceControlOptions
+ FROM DirectoryAbstractService directoryAbstractService;
+
+-- types
+SearchRule ::= SEQUENCE {
+ COMPONENTS OF SearchRuleId,
+ serviceType [1] OBJECT IDENTIFIER OPTIONAL,
+ userClass [2] INTEGER OPTIONAL,
+ inputAttributeTypes
+ [3] SEQUENCE SIZE (0..MAX) OF RequestAttribute OPTIONAL,
+ attributeCombination [4] AttributeCombination DEFAULT and:{},
+ outputAttributeTypes [5] SEQUENCE SIZE (1..MAX) OF ResultAttribute OPTIONAL,
+ defaultControls [6] ControlOptions OPTIONAL,
+ mandatoryControls [7] ControlOptions OPTIONAL,
+ searchRuleControls [8] ControlOptions OPTIONAL,
+ familyGrouping [9] FamilyGrouping OPTIONAL,
+ familyReturn [10] FamilyReturn OPTIONAL,
+ relaxation [11] RelaxationPolicy OPTIONAL,
+ additionalControl [12] SEQUENCE SIZE (1..MAX) OF AttributeType OPTIONAL,
+ allowedSubset [13] AllowedSubset DEFAULT '111'B,
+ imposedSubset [14] ImposedSubset OPTIONAL,
+ entryLimit [15] EntryLimit OPTIONAL
+}
+
+SearchRuleId ::= SEQUENCE {id INTEGER,
+ dmdId [0] OBJECT IDENTIFIER
+}
+
+AllowedSubset ::= BIT STRING {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+ImposedSubset ::= ENUMERATED {baseObject(0), oneLevel(1), wholeSubtree(2)}
+
+RequestAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ includeSubtypes [0] BOOLEAN DEFAULT FALSE,
+ selectedValues
+ [1] SEQUENCE SIZE (0..MAX) OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}) OPTIONAL,
+ defaultValues
+ [2] SEQUENCE SIZE (0..MAX) OF
+ SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType})
+ } OPTIONAL,
+ contexts [3] SEQUENCE SIZE (0..MAX) OF ContextProfile OPTIONAL,
+ contextCombination [4] ContextCombination DEFAULT and:{},
+ matchingUse [5] SEQUENCE SIZE (1..MAX) OF MatchingUse OPTIONAL
+}
+
+ContextProfile ::= SEQUENCE {
+ contextType CONTEXT.&id({SupportedContexts}),
+ contextValue
+ SEQUENCE SIZE (1..MAX) OF
+ CONTEXT.&Assertion({SupportedContexts}{@contextType}) OPTIONAL
+}
+
+ContextCombination ::= CHOICE {
+ context [0] CONTEXT.&id({SupportedContexts}),
+ and [1] SEQUENCE OF ContextCombination,
+ or [2] SEQUENCE OF ContextCombination,
+ not [3] ContextCombination
+}
+
+MatchingUse ::= SEQUENCE {
+ restrictionType MATCHING-RESTRICTION.&id({SupportedMatchingRestrictions}),
+ restrictionValue
+ MATCHING-RESTRICTION.&Restriction
+ ({SupportedMatchingRestrictions}{@restrictionType})
+}
+
+-- Definition of the following information object set is deferred, perhaps to standardized
+-- profiles or to protocol implementation conformance statements. The set is required to
+-- specify a table constraint on the components of SupportedMatchingRestrictions
+SupportedMatchingRestrictions MATCHING-RESTRICTION ::=
+ {...}
+
+AttributeCombination ::= CHOICE {
+ attribute [0] AttributeType,
+ and [1] SEQUENCE OF AttributeCombination,
+ or [2] SEQUENCE OF AttributeCombination,
+ not [3] AttributeCombination
+}
+
+ResultAttribute ::= SEQUENCE {
+ attributeType ATTRIBUTE.&id({SupportedAttributes}),
+ outputValues
+ CHOICE {selectedValues
+ SEQUENCE OF
+ ATTRIBUTE.&Type({SupportedAttributes}{@attributeType}),
+ matchedValuesOnly NULL} OPTIONAL,
+ contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL
+}
+
+ControlOptions ::= SEQUENCE {
+ serviceControls [0] ServiceControlOptions DEFAULT {},
+ searchOptions [1] SearchControlOptions DEFAULT {searchAliases},
+ hierarchyOptions [2] HierarchySelections OPTIONAL
+}
+
+EntryLimit ::= SEQUENCE {default INTEGER,
+ max INTEGER
+}
+
+RelaxationPolicy ::= SEQUENCE {
+ basic [0] MRMapping DEFAULT {},
+ tightenings [1] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ relaxations [2] SEQUENCE SIZE (1..MAX) OF MRMapping OPTIONAL,
+ maximum [3] INTEGER OPTIONAL, -- mandatory if tightenings is present
+ minimum [4] INTEGER DEFAULT 1
+}
+
+MRMapping ::= SEQUENCE {
+ mapping [0] SEQUENCE SIZE (1..MAX) OF Mapping OPTIONAL,
+ substitution [1] SEQUENCE SIZE (1..MAX) OF MRSubstitution OPTIONAL
+}
+
+Mapping ::= SEQUENCE {
+ mappingFunction
+ OBJECT IDENTIFIER
+ (CONSTRAINED BY {-- shall be an--
+
+ -- object identifier of a mapping-based matching algorithm -- }),
+ level INTEGER DEFAULT 0
+}
+
+MRSubstitution ::= SEQUENCE {
+ attribute AttributeType,
+ oldMatchingRule [0] MATCHING-RULE.&id OPTIONAL,
+ newMatchingRule [1] MATCHING-RULE.&id OPTIONAL
+}
+
+-- ASN.1 information object classes
+SEARCH-RULE ::= CLASS {
+ &dmdId OBJECT IDENTIFIER,
+ &serviceType OBJECT IDENTIFIER OPTIONAL,
+ &userClass INTEGER OPTIONAL,
+ &InputAttributeTypes REQUEST-ATTRIBUTE OPTIONAL,
+ &combination AttributeCombination OPTIONAL,
+ &OutputAttributeTypes RESULT-ATTRIBUTE OPTIONAL,
+ &defaultControls ControlOptions OPTIONAL,
+ &mandatoryControls ControlOptions OPTIONAL,
+ &searchRuleControls ControlOptions OPTIONAL,
+ &familyGrouping FamilyGrouping OPTIONAL,
+ &familyReturn FamilyReturn OPTIONAL,
+ &additionalControl AttributeType OPTIONAL,
+ &relaxation RelaxationPolicy OPTIONAL,
+ &allowedSubset AllowedSubset DEFAULT '111'B,
+ &imposedSubset ImposedSubset OPTIONAL,
+ &entryLimit EntryLimit OPTIONAL,
+ &id INTEGER UNIQUE
+}
+WITH SYNTAX {
+ DMD ID &dmdId
+ [SERVICE-TYPE &serviceType]
+ [USER-CLASS &userClass]
+ [INPUT ATTRIBUTES &InputAttributeTypes]
+ [COMBINATION &combination]
+ [OUTPUT ATTRIBUTES &OutputAttributeTypes]
+ [DEFAULT CONTROL &defaultControls]
+ [MANDATORY CONTROL &mandatoryControls]
+ [SEARCH-RULE CONTROL &searchRuleControls]
+ [FAMILY-GROUPING &familyGrouping]
+ [FAMILY-RETURN &familyReturn]
+ [ADDITIONAL CONTROL &additionalControl]
+ [RELAXATION &relaxation]
+ [ALLOWED SUBSET &allowedSubset]
+ [IMPOSED SUBSET &imposedSubset]
+ [ENTRY LIMIT &entryLimit]
+ ID &id
+}
+
+REQUEST-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &SelectedValues ATTRIBUTE.&Type OPTIONAL,
+ &DefaultValues SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL,
+ values SEQUENCE OF ATTRIBUTE.&Type
+ } OPTIONAL,
+ &contexts SEQUENCE OF ContextProfile OPTIONAL,
+ &contextCombination ContextCombination OPTIONAL,
+ &MatchingUse MatchingUse OPTIONAL,
+ &includeSubtypes BOOLEAN DEFAULT FALSE
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [SELECTED VALUES &SelectedValues]
+ [DEFAULT VALUES &DefaultValues]
+ [CONTEXTS &contexts]
+ [CONTEXT COMBINATION &contextCombination]
+ [MATCHING USE &MatchingUse]
+ [INCLUDE SUBTYPES &includeSubtypes]
+}
+
+RESULT-ATTRIBUTE ::= CLASS {
+ &attributeType ATTRIBUTE.&id,
+ &outputValues CHOICE {selectedValues SEQUENCE OF ATTRIBUTE.&Type,
+ matchedValuesOnly NULL
+ } OPTIONAL,
+ &contexts ContextProfile OPTIONAL
+}
+WITH SYNTAX {
+ ATTRIBUTE TYPE &attributeType
+ [OUTPUT VALUES &outputValues]
+ [CONTEXTS &contexts]
+}
+
+MATCHING-RESTRICTION ::= CLASS {
+ &Restriction ,
+ &Rules MATCHING-RULE.&id,
+ &id OBJECT IDENTIFIER UNIQUE
+}WITH SYNTAX {RESTRICTION &Restriction
+ RULES &Rules
+ ID &id
+}
+
+END -- ServiceAdministration
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/x509if/packet-x509if-template.c b/asn1/x509if/packet-x509if-template.c
index cb83d4a1e9..37ad9a67cb 100644
--- a/asn1/x509if/packet-x509if-template.c
+++ b/asn1/x509if/packet-x509if-template.c
@@ -37,6 +37,7 @@
#include <string.h>
#include "packet-ber.h"
+#include "packet-dap.h"
#include "packet-x509if.h"
#include "packet-x509sat.h"
#include <epan/emem.h>
diff --git a/asn1/x509if/x509if.cnf b/asn1/x509if/x509if.cnf
index 40811d0691..959e66fa50 100644
--- a/asn1/x509if/x509if.cnf
+++ b/asn1/x509if/x509if.cnf
@@ -5,7 +5,58 @@
#.IMPORT ../x509sat/x509sat-exp.cnf
+#.MODULE_IMPORT
+DirectoryAbstractService dap
+
+#.CLASS ATTRIBUTE
+&derivation ClassReference ATTRIBUTE
+&Type
+&equality-match ClassReference MATCHING-RULE
+&ordering-match ClassReference MATCHING-RULE
+&substrings-match ClassReference MATCHING-RULE
+&single-valued BooleanType
+&collective BooleanType
+&no-user-modification BooleanType
+&usage TypeReference AttributeUsage
+&id ObjectIdentifierType
+#.END
+#.CLASS CONTEXT
+&Type
+&Assertion
+&id ObjectIdentifierType
+#.END
+#.CLASS OBJECT-CLASS
+&Superclasses ClassReference OBJECT-CLASS
+&kind TypeReference ObjectClassKind
+&MandatoryAttributes ClassReference ATTRIBUTE
+&OptionalAttributes ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MATCHING-RESTRICTION
+&Restriction
+&Rules _FixedTypeValueSetFieldSpec
+&id ObjectIdentifierType
+#.END
+
+#.CLASS MATCHING-RULE
+&ParentMatchingRules ClassReference MATCHING-RULE
+&AssertionType
+&uniqueMatchIndicator ClassReference ATTRIBUTE
+&id ObjectIdentifierType
+#.END
+
#.EXPORTS
+OBJECT-CLASS
+ATTRIBUTE
+MATCHING-RULE
+MAPPING-BASED-MATCHING
+NAME-FORM
+STRUCTURE-RULE
+CONTENT-RULE
+CONTEXT
+SEARCH-RULE
+MATCHING-RESTRICTION
AllowedSubset
Attribute
AttributeCombination
@@ -34,7 +85,6 @@ MatchingUse
MRMapping
MRSubstitution
Name
-OutputValues
Refinement
RelativeDistinguishedName
RelaxationPolicy
@@ -124,16 +174,16 @@ DistinguishedName B "2.16.840.1.101.2.2.1.140" "id-at-garrison"
-#.FN_PARS ContextId
+#.FN_PARS ContextAssertion/contextType
FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
-#.FN_BODY ContextValue
+#.FN_BODY ContextAssertion/contextValues/_item
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
-#.FN_PARS AttributeId
+#.FN_PARS Attribute/type
FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
-#.FN_BODY AttributeId
+#.FN_BODY Attribute/type
const char *fmt;
const char *name;
@@ -168,7 +218,7 @@ DistinguishedName B "2.16.840.1.101.2.2.1.140" "id-at-garrison"
}
}
-#.FN_BODY AttributeValue
+#.FN_BODY Attribute/values/_item
int old_offset = offset;
tvbuff_t *out_tvb;
char *value = NULL;
@@ -211,18 +261,66 @@ DistinguishedName B "2.16.840.1.101.2.2.1.140" "id-at-garrison"
}
}
-#.FN_BODY SelectedValues
+#.FN_PARS RequestAttribute/attributeType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY RequestAttribute/selectedValues/_item
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
-#.FN_PARS DefaultValueType
+#.FN_PARS RequestAttribute/defaultValues/_item/entryType
FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
-#.FN_BODY DefaultValueValues
+#.FN_BODY RequestAttribute/defaultValues/_item/values/_item
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
-#.FN_BODY ValuesWithContextValue
+#.FN_BODY Attribute/valuesWithContext/_item/value
offset=call_ber_oid_callback("unknown", tvb, offset, actx->pinfo, tree);
+#.FN_PARS ResultAttribute/attributeType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY ResultAttribute/outputValues/selectedValues/_item
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS Context/contextType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY Context/contextValues/_item
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS AttributeType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY AttributeValue
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS AttributeValueAssertion/type
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY AttributeValueAssertion/assertion
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS AttributeTypeAndDistinguishedValue/type
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY AttributeTypeAndDistinguishedValue/value
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS ContextProfile/contextType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY ContextProfile/contextValue/_item
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_PARS MatchingUse/restrictionType
+ FN_VARIANT = _str HF_INDEX = hf_x509if_object_identifier_id VAL_PTR = &object_identifier_id
+
+#.FN_BODY MatchingUse/restrictionValue
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+#.FN_BODY AttributeTypeAndDistinguishedValue/valuesWithContext/_item/distingAttrValue
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
#.FN_BODY RelativeDistinguishedName
char *temp_dn;
diff --git a/epan/dissectors/packet-dap.c b/epan/dissectors/packet-dap.c
index 52d794190f..1f2b1670db 100644
--- a/epan/dissectors/packet-dap.c
+++ b/epan/dissectors/packet-dap.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dap.c */
-/* ../../tools/asn2wrs.py -b -e -L -p dap -c ./dap.cnf -s ./packet-dap-template -D . dap.asn DirectoryAccessProtocol.asn */
+/* ../../tools/asn2wrs.py -b -e -L -p dap -c dap.cnf -s packet-dap-template dap.asn DirectoryAccessProtocol.asn */
/* Input file: packet-dap-template.c */
@@ -741,7 +741,7 @@ static int dissect_dap_SearchResultData(gboolean implicit_tag _U_, tvbuff_t *tvb
-static const value_string dap_FamilyGrouping_vals[] = {
+const value_string dap_FamilyGrouping_vals[] = {
{ 1, "entryOnly" },
{ 2, "compoundEntry" },
{ 3, "strands" },
@@ -750,7 +750,7 @@ static const value_string dap_FamilyGrouping_vals[] = {
};
-static int
+int
dissect_dap_FamilyGrouping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -775,7 +775,7 @@ static const asn_namedbit ServiceControlOptions_bits[] = {
{ 0, NULL, 0, 0, NULL, NULL }
};
-static int
+int
dissect_dap_ServiceControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
ServiceControlOptions_bits, hf_index, ett_dap_ServiceControlOptions,
@@ -1141,7 +1141,7 @@ static const ber_sequence_t FamilyReturn_sequence[] = {
{ NULL, 0, 0, 0, NULL }
};
-static int
+int
dissect_dap_FamilyReturn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
FamilyReturn_sequence, hf_index, ett_dap_FamilyReturn);
@@ -2996,7 +2996,7 @@ static const asn_namedbit HierarchySelections_bits[] = {
{ 0, NULL, 0, 0, NULL, NULL }
};
-static int
+int
dissect_dap_HierarchySelections(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
HierarchySelections_bits, hf_index, ett_dap_HierarchySelections,
@@ -3022,7 +3022,7 @@ static const asn_namedbit SearchControlOptions_bits[] = {
{ 0, NULL, 0, 0, NULL, NULL }
};
-static int
+int
dissect_dap_SearchControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
SearchControlOptions_bits, hf_index, ett_dap_SearchControlOptions,
diff --git a/epan/dissectors/packet-dap.h b/epan/dissectors/packet-dap.h
index 949780e754..0366ff1733 100644
--- a/epan/dissectors/packet-dap.h
+++ b/epan/dissectors/packet-dap.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-dap.h */
-/* ../../tools/asn2wrs.py -b -e -L -p dap -c ./dap.cnf -s ./packet-dap-template -D . dap.asn DirectoryAccessProtocol.asn */
+/* ../../tools/asn2wrs.py -b -e -L -p dap -c dap.cnf -s packet-dap-template dap.asn DirectoryAccessProtocol.asn */
/* Input file: packet-dap-template.h */
@@ -37,6 +37,7 @@
/*--- Included file: packet-dap-exp.h ---*/
#line 1 "packet-dap-exp.h"
+extern const value_string dap_FamilyGrouping_vals[];
extern const value_string dap_ContextSelection_vals[];
extern const value_string dap_Filter_vals[];
extern const value_string dap_DirectoryBindError_vals[];
@@ -66,7 +67,10 @@ extern const value_string dap_Referral_vals[];
extern const value_string dap_SecurityError_vals[];
extern const value_string dap_ServiceError_vals[];
extern const value_string dap_UpdateError_vals[];
+int dissect_dap_FamilyGrouping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+int dissect_dap_ServiceControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_ContextSelection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+int dissect_dap_FamilyReturn(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_Filter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_SecurityParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_DirectoryBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -80,6 +84,8 @@ int dissect_dap_AbandonResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
int dissect_dap_ListArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_ListResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_SearchArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+int dissect_dap_HierarchySelections(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+int dissect_dap_SearchControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_SearchResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_AddEntryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_dap_AddEntryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
diff --git a/epan/dissectors/packet-x509if.c b/epan/dissectors/packet-x509if.c
index 5915f2e8c0..e9bfeb8e71 100644
--- a/epan/dissectors/packet-x509if.c
+++ b/epan/dissectors/packet-x509if.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509if.c */
-/* ../../tools/asn2wrs.py -b -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.asn */
+/* ../../tools/asn2wrs.py -b -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.asn ServiceAdministration.asn */
/* Input file: packet-x509if-template.c */
@@ -45,6 +45,7 @@
#include <string.h>
#include "packet-ber.h"
+#include "packet-dap.h"
#include "packet-x509if.h"
#include "packet-x509sat.h"
#include <epan/emem.h>
@@ -64,46 +65,45 @@ static int hf_x509if_any_string = -1;
static int hf_x509if_Name_PDU = -1; /* Name */
static int hf_x509if_DistinguishedName_PDU = -1; /* DistinguishedName */
static int hf_x509if_SubtreeSpecification_PDU = -1; /* SubtreeSpecification */
-static int hf_x509if_type = -1; /* AttributeId */
-static int hf_x509if_values = -1; /* SET_OF_AttributeValue */
-static int hf_x509if_values_item = -1; /* AttributeValue */
+static int hf_x509if_type = -1; /* T_type */
+static int hf_x509if_values = -1; /* T_values */
+static int hf_x509if_values_item = -1; /* T_values_item */
static int hf_x509if_valuesWithContext = -1; /* T_valuesWithContext */
static int hf_x509if_valuesWithContext_item = -1; /* T_valuesWithContext_item */
-static int hf_x509if_value = -1; /* ValuesWithContextValue */
-static int hf_x509if_contextList = -1; /* SET_OF_Context */
+static int hf_x509if_value = -1; /* T_value */
+static int hf_x509if_contextList = -1; /* SET_SIZE_1_MAX_OF_Context */
static int hf_x509if_contextList_item = -1; /* Context */
-static int hf_x509if_contextType = -1; /* AttributeId */
-static int hf_x509if_contextValues = -1; /* SET_OF_AttributeValue */
-static int hf_x509if_contextValues_item = -1; /* AttributeValue */
+static int hf_x509if_contextType = -1; /* T_contextType */
+static int hf_x509if_contextValues = -1; /* T_contextValues */
+static int hf_x509if_contextValues_item = -1; /* T_contextValues_item */
static int hf_x509if_fallback = -1; /* BOOLEAN */
-static int hf_x509if_assertion = -1; /* AttributeValue */
+static int hf_x509if_type_01 = -1; /* T_type_01 */
+static int hf_x509if_assertion = -1; /* T_assertion */
static int hf_x509if_assertedContexts = -1; /* T_assertedContexts */
static int hf_x509if_allContexts = -1; /* NULL */
-static int hf_x509if_selectedContexts = -1; /* SET_OF_ContextAssertion */
+static int hf_x509if_selectedContexts = -1; /* SET_SIZE_1_MAX_OF_ContextAssertion */
static int hf_x509if_selectedContexts_item = -1; /* ContextAssertion */
-static int hf_x509if_ca_contextType = -1; /* ContextId */
-static int hf_x509if_ca_contextValues = -1; /* SET_OF_ContextValue */
-static int hf_x509if_ca_contextValues_item = -1; /* ContextValue */
-static int hf_x509if_ata_assertedContexts = -1; /* SEQUENCE_OF_ContextAssertion */
+static int hf_x509if_ca_contextType = -1; /* T_ca_contextType */
+static int hf_x509if_ca_contextValues = -1; /* T_ca_contextValues */
+static int hf_x509if_ca_contextValues_item = -1; /* T_ca_contextValues_item */
+static int hf_x509if_type_02 = -1; /* OBJECT_IDENTIFIER */
+static int hf_x509if_ata_assertedContexts = -1; /* SEQUENCE_SIZE_1_MAX_OF_ContextAssertion */
static int hf_x509if_ata_assertedContexts_item = -1; /* ContextAssertion */
static int hf_x509if_rdnSequence = -1; /* RDNSequence */
static int hf_x509if_RDNSequence_item = -1; /* RDNSequence_item */
static int hf_x509if_RelativeDistinguishedName_item = -1; /* RelativeDistinguishedName_item */
-static int hf_x509if_atadv_value = -1; /* AttributeValue */
+static int hf_x509if_type_03 = -1; /* T_type_02 */
+static int hf_x509if_atadv_value = -1; /* T_atadv_value */
static int hf_x509if_primaryDistinguished = -1; /* BOOLEAN */
static int hf_x509if_valueswithContext = -1; /* T_valWithContext */
static int hf_x509if_valueswithContext_item = -1; /* T_valWithContext_item */
-static int hf_x509if_distingAttrValue = -1; /* ValuesWithContextValue */
-static int hf_x509if_base = -1; /* LocalName */
-static int hf_x509if_specificExclusions = -1; /* T_specificExclusions */
-static int hf_x509if_specificExclusions_item = -1; /* T_specificExclusions_item */
+static int hf_x509if_distingAttrValue = -1; /* T_distingAttrValue */
+static int hf_x509if_chopSpecificExclusions = -1; /* T_chopSpecificExclusions */
+static int hf_x509if_chopSpecificExclusions_item = -1; /* T_chopSpecificExclusions_item */
static int hf_x509if_chopBefore = -1; /* LocalName */
static int hf_x509if_chopAfter = -1; /* LocalName */
static int hf_x509if_minimum = -1; /* BaseDistance */
static int hf_x509if_maximum = -1; /* BaseDistance */
-static int hf_x509if_specificationFilter = -1; /* Refinement */
-static int hf_x509if_chopSpecificExclusions = -1; /* T_chopSpecificExclusions */
-static int hf_x509if_chopSpecificExclusions_item = -1; /* T_chopSpecificExclusions_item */
static int hf_x509if_item = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_refinement_and = -1; /* SET_OF_Refinement */
static int hf_x509if_refinement_and_item = -1; /* Refinement */
@@ -112,119 +112,132 @@ static int hf_x509if_refinement_or_item = -1; /* Refinement */
static int hf_x509if_refinement_not = -1; /* Refinement */
static int hf_x509if_ruleIdentifier = -1; /* RuleIdentifier */
static int hf_x509if_nameForm = -1; /* OBJECT_IDENTIFIER */
-static int hf_x509if_superiorStructureRules = -1; /* SET_OF_RuleIdentifier */
+static int hf_x509if_superiorStructureRules = -1; /* SET_SIZE_1_MAX_OF_RuleIdentifier */
static int hf_x509if_superiorStructureRules_item = -1; /* RuleIdentifier */
static int hf_x509if_structuralObjectClass = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_auxiliaries = -1; /* T_auxiliaries */
static int hf_x509if_auxiliaries_item = -1; /* OBJECT_IDENTIFIER */
-static int hf_x509if_mandatory = -1; /* SET_SIZE_1_MAX_OF_AttributeId */
-static int hf_x509if_mandatory_item = -1; /* AttributeId */
-static int hf_x509if_optional = -1; /* SET_SIZE_1_MAX_OF_AttributeId */
-static int hf_x509if_optional_item = -1; /* AttributeId */
-static int hf_x509if_precluded = -1; /* SET_SIZE_1_MAX_OF_AttributeId */
-static int hf_x509if_precluded_item = -1; /* AttributeId */
-static int hf_x509if_attributeType = -1; /* AttributeId */
+static int hf_x509if_mandatory = -1; /* T_mandatory */
+static int hf_x509if_mandatory_item = -1; /* OBJECT_IDENTIFIER */
+static int hf_x509if_optional = -1; /* T_optional */
+static int hf_x509if_optional_item = -1; /* OBJECT_IDENTIFIER */
+static int hf_x509if_precluded = -1; /* T_precluded */
+static int hf_x509if_precluded_item = -1; /* OBJECT_IDENTIFIER */
+static int hf_x509if_attributeType = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_mandatoryContexts = -1; /* T_mandatoryContexts */
static int hf_x509if_mandatoryContexts_item = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_optionalContexts = -1; /* T_optionalContexts */
static int hf_x509if_optionalContexts_item = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_id = -1; /* INTEGER */
static int hf_x509if_dmdId = -1; /* OBJECT_IDENTIFIER */
-static int hf_x509if_serviceType = -1; /* OBJECT_IDENTIFIER */
-static int hf_x509if_userClass = -1; /* INTEGER */
-static int hf_x509if_inputAttributeTypes = -1; /* SEQUENCE_OF_RequestAttribute */
-static int hf_x509if_inputAttributeTypes_item = -1; /* RequestAttribute */
-static int hf_x509if_attributeCombination = -1; /* AttributeCombination */
-static int hf_x509if_outputAttributeTypes = -1; /* SEQUENCE_OF_ResultAttribute */
-static int hf_x509if_outputAttributeTypes_item = -1; /* ResultAttribute */
-static int hf_x509if_defaultControls = -1; /* ControlOptions */
-static int hf_x509if_mandatoryControls = -1; /* ControlOptions */
-static int hf_x509if_searchRuleControls = -1; /* ControlOptions */
-static int hf_x509if_relaxation = -1; /* RelaxationPolicy */
-static int hf_x509if_additionalControl = -1; /* SEQUENCE_OF_AttributeType */
-static int hf_x509if_additionalControl_item = -1; /* AttributeType */
-static int hf_x509if_allowedSubset = -1; /* AllowedSubset */
-static int hf_x509if_imposedSubset = -1; /* ImposedSubset */
-static int hf_x509if_entryLimit = -1; /* EntryLimit */
-static int hf_x509if_name = -1; /* SET_OF_DirectoryString */
-static int hf_x509if_name_item = -1; /* DirectoryString */
-static int hf_x509if_description = -1; /* DirectoryString */
-static int hf_x509if_obsolete = -1; /* BOOLEAN */
+static int hf_x509if_attributeType_01 = -1; /* T_attributeType */
static int hf_x509if_includeSubtypes = -1; /* BOOLEAN */
-static int hf_x509if_ra_selectedValues = -1; /* SEQUENCE_OF_SelectedValues */
-static int hf_x509if_ra_selectedValues_item = -1; /* SelectedValues */
+static int hf_x509if_ra_selectedValues = -1; /* T_ra_selectedValues */
+static int hf_x509if_ra_selectedValues_item = -1; /* T_ra_selectedValues_item */
static int hf_x509if_defaultValues = -1; /* T_defaultValues */
static int hf_x509if_defaultValues_item = -1; /* T_defaultValues_item */
-static int hf_x509if_entryType = -1; /* DefaultValueType */
-static int hf_x509if_ra_values = -1; /* SEQUENCE_OF_DefaultValueValues */
-static int hf_x509if_ra_values_item = -1; /* DefaultValueValues */
-static int hf_x509if_contexts = -1; /* SEQUENCE_OF_ContextProfile */
+static int hf_x509if_entryType = -1; /* T_entryType */
+static int hf_x509if_ra_values = -1; /* T_ra_values */
+static int hf_x509if_ra_values_item = -1; /* T_ra_values_item */
+static int hf_x509if_contexts = -1; /* SEQUENCE_SIZE_0_MAX_OF_ContextProfile */
static int hf_x509if_contexts_item = -1; /* ContextProfile */
static int hf_x509if_contextCombination = -1; /* ContextCombination */
-static int hf_x509if_matchingUse = -1; /* SEQUENCE_OF_MatchingUse */
+static int hf_x509if_matchingUse = -1; /* SEQUENCE_SIZE_1_MAX_OF_MatchingUse */
static int hf_x509if_matchingUse_item = -1; /* MatchingUse */
-static int hf_x509if_contextValue = -1; /* SEQUENCE_OF_AttributeValue */
-static int hf_x509if_contextValue_item = -1; /* AttributeValue */
+static int hf_x509if_contextType_01 = -1; /* T_contextType_01 */
+static int hf_x509if_contextValue = -1; /* T_contextValue */
+static int hf_x509if_contextValue_item = -1; /* T_contextValue_item */
static int hf_x509if_context = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_contextcombination_and = -1; /* SEQUENCE_OF_ContextCombination */
static int hf_x509if_contextcombination_and_item = -1; /* ContextCombination */
static int hf_x509if_contextcombination_or = -1; /* SEQUENCE_OF_ContextCombination */
static int hf_x509if_contextcombination_or_item = -1; /* ContextCombination */
static int hf_x509if_contextcombination_not = -1; /* ContextCombination */
-static int hf_x509if_restrictionType = -1; /* AttributeId */
-static int hf_x509if_restrictionValue = -1; /* AttributeValue */
+static int hf_x509if_restrictionType = -1; /* T_restrictionType */
+static int hf_x509if_restrictionValue = -1; /* T_restrictionValue */
static int hf_x509if_attribute = -1; /* AttributeType */
static int hf_x509if_and = -1; /* SEQUENCE_OF_AttributeCombination */
static int hf_x509if_and_item = -1; /* AttributeCombination */
static int hf_x509if_or = -1; /* SEQUENCE_OF_AttributeCombination */
static int hf_x509if_or_item = -1; /* AttributeCombination */
static int hf_x509if_not = -1; /* AttributeCombination */
+static int hf_x509if_attributeType_02 = -1; /* T_attributeType_01 */
static int hf_x509if_outputValues = -1; /* T_outputValues */
-static int hf_x509if_selectedValues = -1; /* SEQUENCE_OF_AttributeValue */
-static int hf_x509if_selectedValues_item = -1; /* AttributeValue */
+static int hf_x509if_selectedValues = -1; /* T_selectedValues */
+static int hf_x509if_selectedValues_item = -1; /* T_selectedValues_item */
static int hf_x509if_matchedValuesOnly = -1; /* NULL */
+static int hf_x509if_contexts_01 = -1; /* SEQUENCE_SIZE_1_MAX_OF_ContextProfile */
+static int hf_x509if_serviceControls = -1; /* ServiceControlOptions */
+static int hf_x509if_searchOptions = -1; /* SearchControlOptions */
+static int hf_x509if_hierarchyOptions = -1; /* HierarchySelections */
static int hf_x509if_default = -1; /* INTEGER */
static int hf_x509if_max = -1; /* INTEGER */
static int hf_x509if_basic = -1; /* MRMapping */
-static int hf_x509if_tightenings = -1; /* SEQUENCE_OF_MRMapping */
+static int hf_x509if_tightenings = -1; /* SEQUENCE_SIZE_1_MAX_OF_MRMapping */
static int hf_x509if_tightenings_item = -1; /* MRMapping */
-static int hf_x509if_relaxations = -1; /* SEQUENCE_OF_MRMapping */
+static int hf_x509if_relaxations = -1; /* SEQUENCE_SIZE_1_MAX_OF_MRMapping */
static int hf_x509if_relaxations_item = -1; /* MRMapping */
static int hf_x509if_maximum_relaxation = -1; /* INTEGER */
static int hf_x509if_minimum_relaxation = -1; /* INTEGER */
-static int hf_x509if_mapping = -1; /* SEQUENCE_OF_Mapping */
+static int hf_x509if_mapping = -1; /* SEQUENCE_SIZE_1_MAX_OF_Mapping */
static int hf_x509if_mapping_item = -1; /* Mapping */
-static int hf_x509if_substitution = -1; /* SEQUENCE_OF_MRSubstitution */
+static int hf_x509if_substitution = -1; /* SEQUENCE_SIZE_1_MAX_OF_MRSubstitution */
static int hf_x509if_substitution_item = -1; /* MRSubstitution */
static int hf_x509if_mappingFunction = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_level = -1; /* INTEGER */
static int hf_x509if_oldMatchingRule = -1; /* OBJECT_IDENTIFIER */
static int hf_x509if_newMatchingRule = -1; /* OBJECT_IDENTIFIER */
+static int hf_x509if_base = -1; /* LocalName */
+static int hf_x509if_specificExclusions = -1; /* T_specificExclusions */
+static int hf_x509if_specificExclusions_item = -1; /* T_specificExclusions_item */
+static int hf_x509if_specificationFilter = -1; /* Refinement */
+static int hf_x509if_serviceType = -1; /* OBJECT_IDENTIFIER */
+static int hf_x509if_userClass = -1; /* INTEGER */
+static int hf_x509if_inputAttributeTypes = -1; /* SEQUENCE_SIZE_0_MAX_OF_RequestAttribute */
+static int hf_x509if_inputAttributeTypes_item = -1; /* RequestAttribute */
+static int hf_x509if_attributeCombination = -1; /* AttributeCombination */
+static int hf_x509if_outputAttributeTypes = -1; /* SEQUENCE_SIZE_1_MAX_OF_ResultAttribute */
+static int hf_x509if_outputAttributeTypes_item = -1; /* ResultAttribute */
+static int hf_x509if_defaultControls = -1; /* ControlOptions */
+static int hf_x509if_mandatoryControls = -1; /* ControlOptions */
+static int hf_x509if_searchRuleControls = -1; /* ControlOptions */
+static int hf_x509if_familyGrouping = -1; /* FamilyGrouping */
+static int hf_x509if_familyReturn = -1; /* FamilyReturn */
+static int hf_x509if_relaxation = -1; /* RelaxationPolicy */
+static int hf_x509if_additionalControl = -1; /* SEQUENCE_SIZE_1_MAX_OF_AttributeType */
+static int hf_x509if_additionalControl_item = -1; /* AttributeType */
+static int hf_x509if_allowedSubset = -1; /* AllowedSubset */
+static int hf_x509if_imposedSubset = -1; /* ImposedSubset */
+static int hf_x509if_entryLimit = -1; /* EntryLimit */
+static int hf_x509if_name = -1; /* SET_SIZE_1_MAX_OF_DirectoryString */
+static int hf_x509if_name_item = -1; /* DirectoryString */
+static int hf_x509if_description = -1; /* DirectoryString */
/* named bits */
static int hf_x509if_AllowedSubset_baseObject = -1;
static int hf_x509if_AllowedSubset_oneLevel = -1;
static int hf_x509if_AllowedSubset_wholeSubtree = -1;
/*--- End of included file: packet-x509if-hf.c ---*/
-#line 54 "packet-x509if-template.c"
+#line 55 "packet-x509if-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-x509if-ett.c ---*/
#line 1 "packet-x509if-ett.c"
static gint ett_x509if_Attribute = -1;
-static gint ett_x509if_SET_OF_AttributeValue = -1;
+static gint ett_x509if_T_values = -1;
static gint ett_x509if_T_valuesWithContext = -1;
static gint ett_x509if_T_valuesWithContext_item = -1;
-static gint ett_x509if_SET_OF_Context = -1;
+static gint ett_x509if_SET_SIZE_1_MAX_OF_Context = -1;
static gint ett_x509if_Context = -1;
+static gint ett_x509if_T_contextValues = -1;
static gint ett_x509if_AttributeValueAssertion = -1;
static gint ett_x509if_T_assertedContexts = -1;
-static gint ett_x509if_SET_OF_ContextAssertion = -1;
+static gint ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion = -1;
static gint ett_x509if_ContextAssertion = -1;
-static gint ett_x509if_SET_OF_ContextValue = -1;
+static gint ett_x509if_T_ca_contextValues = -1;
static gint ett_x509if_AttributeTypeAssertion = -1;
-static gint ett_x509if_SEQUENCE_OF_ContextAssertion = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion = -1;
static gint ett_x509if_Name = -1;
static gint ett_x509if_RDNSequence = -1;
static gint ett_x509if_RelativeDistinguishedName = -1;
@@ -232,38 +245,34 @@ static gint ett_x509if_AttributeTypeAndDistinguishedValue = -1;
static gint ett_x509if_T_valWithContext = -1;
static gint ett_x509if_T_valWithContext_item = -1;
static gint ett_x509if_SubtreeSpecification = -1;
-static gint ett_x509if_T_specificExclusions = -1;
-static gint ett_x509if_T_specificExclusions_item = -1;
static gint ett_x509if_ChopSpecification = -1;
static gint ett_x509if_T_chopSpecificExclusions = -1;
static gint ett_x509if_T_chopSpecificExclusions_item = -1;
static gint ett_x509if_Refinement = -1;
static gint ett_x509if_SET_OF_Refinement = -1;
static gint ett_x509if_DITStructureRule = -1;
-static gint ett_x509if_SET_OF_RuleIdentifier = -1;
+static gint ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier = -1;
static gint ett_x509if_DITContentRule = -1;
static gint ett_x509if_T_auxiliaries = -1;
-static gint ett_x509if_SET_SIZE_1_MAX_OF_AttributeId = -1;
+static gint ett_x509if_T_mandatory = -1;
+static gint ett_x509if_T_optional = -1;
+static gint ett_x509if_T_precluded = -1;
static gint ett_x509if_DITContextUse = -1;
static gint ett_x509if_T_mandatoryContexts = -1;
static gint ett_x509if_T_optionalContexts = -1;
static gint ett_x509if_SearchRuleDescription = -1;
-static gint ett_x509if_SEQUENCE_OF_RequestAttribute = -1;
-static gint ett_x509if_SEQUENCE_OF_ResultAttribute = -1;
-static gint ett_x509if_SEQUENCE_OF_AttributeType = -1;
-static gint ett_x509if_SET_OF_DirectoryString = -1;
static gint ett_x509if_SearchRule = -1;
static gint ett_x509if_SearchRuleId = -1;
static gint ett_x509if_AllowedSubset = -1;
static gint ett_x509if_RequestAttribute = -1;
-static gint ett_x509if_SEQUENCE_OF_SelectedValues = -1;
+static gint ett_x509if_T_ra_selectedValues = -1;
static gint ett_x509if_T_defaultValues = -1;
static gint ett_x509if_T_defaultValues_item = -1;
-static gint ett_x509if_SEQUENCE_OF_DefaultValueValues = -1;
-static gint ett_x509if_SEQUENCE_OF_ContextProfile = -1;
-static gint ett_x509if_SEQUENCE_OF_MatchingUse = -1;
+static gint ett_x509if_T_ra_values = -1;
+static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse = -1;
static gint ett_x509if_ContextProfile = -1;
-static gint ett_x509if_SEQUENCE_OF_AttributeValue = -1;
+static gint ett_x509if_T_contextValue = -1;
static gint ett_x509if_ContextCombination = -1;
static gint ett_x509if_SEQUENCE_OF_ContextCombination = -1;
static gint ett_x509if_MatchingUse = -1;
@@ -271,19 +280,26 @@ static gint ett_x509if_AttributeCombination = -1;
static gint ett_x509if_SEQUENCE_OF_AttributeCombination = -1;
static gint ett_x509if_ResultAttribute = -1;
static gint ett_x509if_T_outputValues = -1;
-static gint ett_x509if_OutputValues = -1;
+static gint ett_x509if_T_selectedValues = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile = -1;
static gint ett_x509if_ControlOptions = -1;
static gint ett_x509if_EntryLimit = -1;
static gint ett_x509if_RelaxationPolicy = -1;
-static gint ett_x509if_SEQUENCE_OF_MRMapping = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping = -1;
static gint ett_x509if_MRMapping = -1;
-static gint ett_x509if_SEQUENCE_OF_Mapping = -1;
-static gint ett_x509if_SEQUENCE_OF_MRSubstitution = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution = -1;
static gint ett_x509if_Mapping = -1;
static gint ett_x509if_MRSubstitution = -1;
+static gint ett_x509if_T_specificExclusions = -1;
+static gint ett_x509if_T_specificExclusions_item = -1;
+static gint ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute = -1;
+static gint ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType = -1;
+static gint ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString = -1;
/*--- End of included file: packet-x509if-ett.c ---*/
-#line 57 "packet-x509if-template.c"
+#line 58 "packet-x509if-template.c"
static const char *object_identifier_id;
static proto_tree *top_of_dn = NULL;
@@ -327,8 +343,8 @@ int dissect_x509if_AttributeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
-dissect_x509if_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 137 "x509if.cnf"
+dissect_x509if_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 187 "x509if.cnf"
const char *fmt;
const char *name;
@@ -371,9 +387,9 @@ dissect_x509if_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
-int
-dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 172 "x509if.cnf"
+static int
+dissect_x509if_T_values_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 222 "x509if.cnf"
int old_offset = offset;
tvbuff_t *out_tvb;
char *value = NULL;
@@ -422,10 +438,23 @@ dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
+static const ber_sequence_t T_values_set_of[1] = {
+ { &hf_x509if_values_item , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_values_item },
+};
+
+static int
+dissect_x509if_T_values(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ T_values_set_of, hf_index, ett_x509if_T_values);
+
+ return offset;
+}
+
+
static int
-dissect_x509if_ValuesWithContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 224 "x509if.cnf"
+dissect_x509if_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 277 "x509if.cnf"
offset=call_ber_oid_callback("unknown", tvb, offset, actx->pinfo, tree);
@@ -434,14 +463,35 @@ dissect_x509if_ValuesWithContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb _
}
-static const ber_sequence_t SET_OF_AttributeValue_set_of[1] = {
- { &hf_x509if_values_item , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeValue },
+
+static int
+dissect_x509if_T_contextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_contextValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 289 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_contextValues_set_of[1] = {
+ { &hf_x509if_contextValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValues_item },
};
static int
-dissect_x509if_SET_OF_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_contextValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_AttributeValue_set_of, hf_index, ett_x509if_SET_OF_AttributeValue);
+ T_contextValues_set_of, hf_index, ett_x509if_T_contextValues);
return offset;
}
@@ -457,8 +507,8 @@ dissect_x509if_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static const ber_sequence_t Context_sequence[] = {
- { &hf_x509if_contextType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
- { &hf_x509if_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_OF_AttributeValue },
+ { &hf_x509if_contextType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextType },
+ { &hf_x509if_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValues },
{ &hf_x509if_fallback , BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_BOOLEAN },
{ NULL, 0, 0, 0, NULL }
};
@@ -472,22 +522,22 @@ dissect_x509if_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
-static const ber_sequence_t SET_OF_Context_set_of[1] = {
+static const ber_sequence_t SET_SIZE_1_MAX_OF_Context_set_of[1] = {
{ &hf_x509if_contextList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Context },
};
static int
-dissect_x509if_SET_OF_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SET_SIZE_1_MAX_OF_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_Context_set_of, hf_index, ett_x509if_SET_OF_Context);
+ SET_SIZE_1_MAX_OF_Context_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_Context);
return offset;
}
static const ber_sequence_t T_valuesWithContext_item_sequence[] = {
- { &hf_x509if_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_ValuesWithContextValue },
- { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_OF_Context },
+ { &hf_x509if_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_value },
+ { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_Context },
{ NULL, 0, 0, 0, NULL }
};
@@ -514,15 +564,15 @@ dissect_x509if_T_valuesWithContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static const ber_sequence_t Attribute_sequence[] = {
- { &hf_x509if_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
- { &hf_x509if_values , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_OF_AttributeValue },
+ { &hf_x509if_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type },
+ { &hf_x509if_values , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_values },
{ &hf_x509if_valuesWithContext, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_valuesWithContext },
{ NULL, 0, 0, 0, NULL }
};
int
dissect_x509if_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 310 "x509if.cnf"
+#line 408 "x509if.cnf"
doing_attr = TRUE;
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
@@ -539,7 +589,40 @@ dissect_x509if_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
int
dissect_x509if_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_x509if_AttributeId(implicit_tag, tvb, offset, actx, tree, hf_index);
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+int
+dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 295 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_type_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_assertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 301 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
return offset;
}
@@ -556,7 +639,7 @@ dissect_x509if_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_
static int
-dissect_x509if_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_ca_contextType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
return offset;
@@ -565,8 +648,8 @@ dissect_x509if_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
-dissect_x509if_ContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 131 "x509if.cnf"
+dissect_x509if_T_ca_contextValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 181 "x509if.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
@@ -575,22 +658,22 @@ dissect_x509if_ContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
}
-static const ber_sequence_t SET_OF_ContextValue_set_of[1] = {
- { &hf_x509if_ca_contextValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextValue },
+static const ber_sequence_t T_ca_contextValues_set_of[1] = {
+ { &hf_x509if_ca_contextValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextValues_item },
};
static int
-dissect_x509if_SET_OF_ContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_ca_contextValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_ContextValue_set_of, hf_index, ett_x509if_SET_OF_ContextValue);
+ T_ca_contextValues_set_of, hf_index, ett_x509if_T_ca_contextValues);
return offset;
}
static const ber_sequence_t ContextAssertion_sequence[] = {
- { &hf_x509if_ca_contextType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextId },
- { &hf_x509if_ca_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_OF_ContextValue },
+ { &hf_x509if_ca_contextType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextType },
+ { &hf_x509if_ca_contextValues, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ca_contextValues },
{ NULL, 0, 0, 0, NULL }
};
@@ -603,14 +686,14 @@ dissect_x509if_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
-static const ber_sequence_t SET_OF_ContextAssertion_set_of[1] = {
+static const ber_sequence_t SET_SIZE_1_MAX_OF_ContextAssertion_set_of[1] = {
{ &hf_x509if_selectedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
};
static int
-dissect_x509if_SET_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SET_SIZE_1_MAX_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_ContextAssertion_set_of, hf_index, ett_x509if_SET_OF_ContextAssertion);
+ SET_SIZE_1_MAX_OF_ContextAssertion_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion);
return offset;
}
@@ -624,7 +707,7 @@ static const value_string x509if_T_assertedContexts_vals[] = {
static const ber_choice_t T_assertedContexts_choice[] = {
{ 0, &hf_x509if_allContexts , BER_CLASS_CON, 0, 0, dissect_x509if_NULL },
- { 1, &hf_x509if_selectedContexts, BER_CLASS_CON, 1, 0, dissect_x509if_SET_OF_ContextAssertion },
+ { 1, &hf_x509if_selectedContexts, BER_CLASS_CON, 1, 0, dissect_x509if_SET_SIZE_1_MAX_OF_ContextAssertion },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -639,15 +722,15 @@ dissect_x509if_T_assertedContexts(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static const ber_sequence_t AttributeValueAssertion_sequence[] = {
- { &hf_x509if_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
- { &hf_x509if_assertion , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeValue },
+ { &hf_x509if_type_01 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type_01 },
+ { &hf_x509if_assertion , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_assertion },
{ &hf_x509if_assertedContexts, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_assertedContexts },
{ NULL, 0, 0, 0, NULL }
};
int
dissect_x509if_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 301 "x509if.cnf"
+#line 399 "x509if.cnf"
ava_hf_index = hf_index;
last_ava = ep_alloc(MAX_AVA_STR_LEN); *last_ava = '\0';
@@ -664,22 +747,31 @@ dissect_x509if_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb
}
-static const ber_sequence_t SEQUENCE_OF_ContextAssertion_sequence_of[1] = {
+
+static int
+dissect_x509if_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of[1] = {
{ &hf_x509if_ata_assertedContexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextAssertion },
};
static int
-dissect_x509if_SEQUENCE_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_ContextAssertion_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ContextAssertion);
+ SEQUENCE_SIZE_1_MAX_OF_ContextAssertion_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion);
return offset;
}
static const ber_sequence_t AttributeTypeAssertion_sequence[] = {
- { &hf_x509if_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
- { &hf_x509if_ata_assertedContexts, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_SEQUENCE_OF_ContextAssertion },
+ { &hf_x509if_type_02 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
+ { &hf_x509if_ata_assertedContexts, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion },
{ NULL, 0, 0, 0, NULL }
};
@@ -692,9 +784,42 @@ dissect_x509if_AttributeTypeAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _
}
+
+static int
+dissect_x509if_T_type_02(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_atadv_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 307 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_distingAttrValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 322 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+ return offset;
+}
+
+
static const ber_sequence_t T_valWithContext_item_sequence[] = {
- { &hf_x509if_distingAttrValue, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_ValuesWithContextValue },
- { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_OF_Context },
+ { &hf_x509if_distingAttrValue, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_T_distingAttrValue },
+ { &hf_x509if_contextList , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_Context },
{ NULL, 0, 0, 0, NULL }
};
@@ -721,8 +846,8 @@ dissect_x509if_T_valWithContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static const ber_sequence_t AttributeTypeAndDistinguishedValue_sequence[] = {
- { &hf_x509if_type , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
- { &hf_x509if_atadv_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeValue },
+ { &hf_x509if_type_03 , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_type_02 },
+ { &hf_x509if_atadv_value , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_atadv_value },
{ &hf_x509if_primaryDistinguished, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_BOOLEAN },
{ &hf_x509if_valueswithContext, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_valWithContext },
{ NULL, 0, 0, 0, NULL }
@@ -740,7 +865,7 @@ dissect_x509if_AttributeTypeAndDistinguishedValue(gboolean implicit_tag _U_, tvb
static int
dissect_x509if_RelativeDistinguishedName_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 255 "x509if.cnf"
+#line 353 "x509if.cnf"
if(!rdn_one_value) {
top_of_rdn = tree;
@@ -768,7 +893,7 @@ static const ber_sequence_t RelativeDistinguishedName_set_of[1] = {
int
dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 227 "x509if.cnf"
+#line 325 "x509if.cnf"
char *temp_dn;
rdn_one_value = FALSE;
@@ -807,7 +932,7 @@ dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tv
static int
dissect_x509if_RDNSequence_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 290 "x509if.cnf"
+#line 388 "x509if.cnf"
if(!dn_one_rdn) {
/* this is the first element - record the top */
@@ -831,7 +956,7 @@ static const ber_sequence_t RDNSequence_sequence_of[1] = {
int
dissect_x509if_RDNSequence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 270 "x509if.cnf"
+#line 368 "x509if.cnf"
const char *fmt;
dn_one_rdn = FALSE; /* reset */
@@ -942,15 +1067,6 @@ dissect_x509if_BaseDistance(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
}
-
-static int
-dissect_x509if_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
-
- return offset;
-}
-
-
static const ber_sequence_t SET_OF_Refinement_set_of[1] = {
{ &hf_x509if_refinement_and_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_Refinement },
};
@@ -1104,14 +1220,14 @@ dissect_x509if_RuleIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const ber_sequence_t SET_OF_RuleIdentifier_set_of[1] = {
+static const ber_sequence_t SET_SIZE_1_MAX_OF_RuleIdentifier_set_of[1] = {
{ &hf_x509if_superiorStructureRules_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_RuleIdentifier },
};
static int
-dissect_x509if_SET_OF_RuleIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_RuleIdentifier_set_of, hf_index, ett_x509if_SET_OF_RuleIdentifier);
+ SET_SIZE_1_MAX_OF_RuleIdentifier_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier);
return offset;
}
@@ -1120,7 +1236,7 @@ dissect_x509if_SET_OF_RuleIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static const ber_sequence_t DITStructureRule_sequence[] = {
{ &hf_x509if_ruleIdentifier, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_RuleIdentifier },
{ &hf_x509if_nameForm , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
- { &hf_x509if_superiorStructureRules, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_SET_OF_RuleIdentifier },
+ { &hf_x509if_superiorStructureRules, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier },
{ NULL, 0, 0, 0, NULL }
};
@@ -1146,14 +1262,40 @@ dissect_x509if_T_auxiliaries(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
}
-static const ber_sequence_t SET_SIZE_1_MAX_OF_AttributeId_set_of[1] = {
- { &hf_x509if_mandatory_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
+static const ber_sequence_t T_mandatory_set_of[1] = {
+ { &hf_x509if_mandatory_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
};
static int
-dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_mandatory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_SIZE_1_MAX_OF_AttributeId_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_AttributeId);
+ T_mandatory_set_of, hf_index, ett_x509if_T_mandatory);
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_optional_set_of[1] = {
+ { &hf_x509if_optional_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
+};
+
+static int
+dissect_x509if_T_optional(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ T_optional_set_of, hf_index, ett_x509if_T_optional);
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_precluded_set_of[1] = {
+ { &hf_x509if_precluded_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
+};
+
+static int
+dissect_x509if_T_precluded(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+ T_precluded_set_of, hf_index, ett_x509if_T_precluded);
return offset;
}
@@ -1162,9 +1304,9 @@ dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId(gboolean implicit_tag _U_, tvbuff_t
static const ber_sequence_t DITContentRule_sequence[] = {
{ &hf_x509if_structuralObjectClass, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
{ &hf_x509if_auxiliaries , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_auxiliaries },
- { &hf_x509if_mandatory , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId },
- { &hf_x509if_optional , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId },
- { &hf_x509if_precluded , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SET_SIZE_1_MAX_OF_AttributeId },
+ { &hf_x509if_mandatory , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_mandatory },
+ { &hf_x509if_optional , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_optional },
+ { &hf_x509if_precluded , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_T_precluded },
{ NULL, 0, 0, 0, NULL }
};
@@ -1204,7 +1346,7 @@ dissect_x509if_T_optionalContexts(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static const ber_sequence_t DITContextUse_sequence[] = {
- { &hf_x509if_attributeType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
+ { &hf_x509if_attributeType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_OBJECT_IDENTIFIER },
{ &hf_x509if_mandatoryContexts, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_mandatoryContexts },
{ &hf_x509if_optionalContexts, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_optionalContexts },
{ NULL, 0, 0, 0, NULL }
@@ -1231,8 +1373,17 @@ dissect_x509if_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
-dissect_x509if_SelectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 215 "x509if.cnf"
+dissect_x509if_T_attributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_ra_selectedValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 268 "x509if.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
@@ -1241,14 +1392,14 @@ dissect_x509if_SelectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const ber_sequence_t SEQUENCE_OF_SelectedValues_sequence_of[1] = {
- { &hf_x509if_ra_selectedValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_SelectedValues },
+static const ber_sequence_t T_ra_selectedValues_sequence_of[1] = {
+ { &hf_x509if_ra_selectedValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_selectedValues_item },
};
static int
-dissect_x509if_SEQUENCE_OF_SelectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_ra_selectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_SelectedValues_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_SelectedValues);
+ T_ra_selectedValues_sequence_of, hf_index, ett_x509if_T_ra_selectedValues);
return offset;
}
@@ -1256,7 +1407,7 @@ dissect_x509if_SEQUENCE_OF_SelectedValues(gboolean implicit_tag _U_, tvbuff_t *t
static int
-dissect_x509if_DefaultValueType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_entryType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
return offset;
@@ -1265,8 +1416,8 @@ dissect_x509if_DefaultValueType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
-dissect_x509if_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 221 "x509if.cnf"
+dissect_x509if_T_ra_values_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 274 "x509if.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
@@ -1275,22 +1426,22 @@ dissect_x509if_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
}
-static const ber_sequence_t SEQUENCE_OF_DefaultValueValues_sequence_of[1] = {
- { &hf_x509if_ra_values_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_DefaultValueValues },
+static const ber_sequence_t T_ra_values_sequence_of[1] = {
+ { &hf_x509if_ra_values_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_values_item },
};
static int
-dissect_x509if_SEQUENCE_OF_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_ra_values(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_DefaultValueValues_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_DefaultValueValues);
+ T_ra_values_sequence_of, hf_index, ett_x509if_T_ra_values);
return offset;
}
static const ber_sequence_t T_defaultValues_item_sequence[] = {
- { &hf_x509if_entryType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_DefaultValueType },
- { &hf_x509if_ra_values , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_SEQUENCE_OF_DefaultValueValues },
+ { &hf_x509if_entryType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_entryType },
+ { &hf_x509if_ra_values , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_ra_values },
{ NULL, 0, 0, 0, NULL }
};
@@ -1316,22 +1467,43 @@ dissect_x509if_T_defaultValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const ber_sequence_t SEQUENCE_OF_AttributeValue_sequence_of[1] = {
- { &hf_x509if_contextValue_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeValue },
+
+static int
+dissect_x509if_T_contextType_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_contextValue_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 313 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_contextValue_sequence_of[1] = {
+ { &hf_x509if_contextValue_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValue_item },
};
static int
-dissect_x509if_SEQUENCE_OF_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_T_contextValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_AttributeValue_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_AttributeValue);
+ T_contextValue_sequence_of, hf_index, ett_x509if_T_contextValue);
return offset;
}
static const ber_sequence_t ContextProfile_sequence[] = {
- { &hf_x509if_contextType , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
- { &hf_x509if_contextValue , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_SEQUENCE_OF_AttributeValue },
+ { &hf_x509if_contextType_01, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextType_01 },
+ { &hf_x509if_contextValue , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_x509if_T_contextValue },
{ NULL, 0, 0, 0, NULL }
};
@@ -1344,14 +1516,14 @@ dissect_x509if_ContextProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const ber_sequence_t SEQUENCE_OF_ContextProfile_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of[1] = {
{ &hf_x509if_contexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextProfile },
};
static int
-dissect_x509if_SEQUENCE_OF_ContextProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ContextProfile);
+ SEQUENCE_SIZE_0_MAX_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile);
return offset;
}
@@ -1396,9 +1568,30 @@ dissect_x509if_ContextCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
}
+
+static int
+dissect_x509if_T_restrictionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_restrictionValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 319 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+ return offset;
+}
+
+
static const ber_sequence_t MatchingUse_sequence[] = {
- { &hf_x509if_restrictionType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
- { &hf_x509if_restrictionValue, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeValue },
+ { &hf_x509if_restrictionType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_restrictionType },
+ { &hf_x509if_restrictionValue, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_restrictionValue },
{ NULL, 0, 0, 0, NULL }
};
@@ -1411,27 +1604,27 @@ dissect_x509if_MatchingUse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
}
-static const ber_sequence_t SEQUENCE_OF_MatchingUse_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of[1] = {
{ &hf_x509if_matchingUse_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MatchingUse },
};
static int
-dissect_x509if_SEQUENCE_OF_MatchingUse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_MatchingUse_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_MatchingUse);
+ SEQUENCE_SIZE_1_MAX_OF_MatchingUse_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse);
return offset;
}
static const ber_sequence_t RequestAttribute_sequence[] = {
- { &hf_x509if_attributeType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
+ { &hf_x509if_attributeType_01, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_attributeType },
{ &hf_x509if_includeSubtypes, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_BOOLEAN },
- { &hf_x509if_ra_selectedValues, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_SelectedValues },
+ { &hf_x509if_ra_selectedValues, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_T_ra_selectedValues },
{ &hf_x509if_defaultValues, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_T_defaultValues },
- { &hf_x509if_contexts , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_ContextProfile },
+ { &hf_x509if_contexts , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile },
{ &hf_x509if_contextCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_ContextCombination },
- { &hf_x509if_matchingUse , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_MatchingUse },
+ { &hf_x509if_matchingUse , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse },
{ NULL, 0, 0, 0, NULL }
};
@@ -1444,14 +1637,14 @@ dissect_x509if_RequestAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
-static const ber_sequence_t SEQUENCE_OF_RequestAttribute_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of[1] = {
{ &hf_x509if_inputAttributeTypes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_RequestAttribute },
};
static int
-dissect_x509if_SEQUENCE_OF_RequestAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_RequestAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_RequestAttribute);
+ SEQUENCE_SIZE_0_MAX_OF_RequestAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute);
return offset;
}
@@ -1496,6 +1689,40 @@ dissect_x509if_AttributeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
}
+
+static int
+dissect_x509if_T_attributeType_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_x509if_object_identifier_id, &object_identifier_id);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_T_selectedValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 283 "x509if.cnf"
+ offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_selectedValues_sequence_of[1] = {
+ { &hf_x509if_selectedValues_item, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_x509if_T_selectedValues_item },
+};
+
+static int
+dissect_x509if_T_selectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_selectedValues_sequence_of, hf_index, ett_x509if_T_selectedValues);
+
+ return offset;
+}
+
+
static const value_string x509if_T_outputValues_vals[] = {
{ 0, "selectedValues" },
{ 1, "matchedValuesOnly" },
@@ -1503,7 +1730,7 @@ static const value_string x509if_T_outputValues_vals[] = {
};
static const ber_choice_t T_outputValues_choice[] = {
- { 0, &hf_x509if_selectedValues, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_SEQUENCE_OF_AttributeValue },
+ { 0, &hf_x509if_selectedValues, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_T_selectedValues },
{ 1, &hf_x509if_matchedValuesOnly, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x509if_NULL },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1518,10 +1745,23 @@ dissect_x509if_T_outputValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of[1] = {
+ { &hf_x509if_contexts_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ContextProfile },
+};
+
+static int
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ SEQUENCE_SIZE_1_MAX_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile);
+
+ return offset;
+}
+
+
static const ber_sequence_t ResultAttribute_sequence[] = {
- { &hf_x509if_attributeType, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeId },
+ { &hf_x509if_attributeType_02, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_T_attributeType_01 },
{ &hf_x509if_outputValues , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_x509if_T_outputValues },
- { &hf_x509if_contexts , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_ContextProfile },
+ { &hf_x509if_contexts_01 , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile },
{ NULL, 0, 0, 0, NULL }
};
@@ -1534,20 +1774,23 @@ dissect_x509if_ResultAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const ber_sequence_t SEQUENCE_OF_ResultAttribute_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of[1] = {
{ &hf_x509if_outputAttributeTypes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_ResultAttribute },
};
static int
-dissect_x509if_SEQUENCE_OF_ResultAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_ResultAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_ResultAttribute);
+ SEQUENCE_SIZE_1_MAX_OF_ResultAttribute_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute);
return offset;
}
static const ber_sequence_t ControlOptions_sequence[] = {
+ { &hf_x509if_serviceControls, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_dap_ServiceControlOptions },
+ { &hf_x509if_searchOptions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_dap_SearchControlOptions },
+ { &hf_x509if_hierarchyOptions, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_dap_HierarchySelections },
{ NULL, 0, 0, 0, NULL }
};
@@ -1575,14 +1818,14 @@ dissect_x509if_Mapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
-static const ber_sequence_t SEQUENCE_OF_Mapping_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of[1] = {
{ &hf_x509if_mapping_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_Mapping },
};
static int
-dissect_x509if_SEQUENCE_OF_Mapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_Mapping_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_Mapping);
+ SEQUENCE_SIZE_1_MAX_OF_Mapping_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping);
return offset;
}
@@ -1604,22 +1847,22 @@ dissect_x509if_MRSubstitution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-static const ber_sequence_t SEQUENCE_OF_MRSubstitution_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of[1] = {
{ &hf_x509if_substitution_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MRSubstitution },
};
static int
-dissect_x509if_SEQUENCE_OF_MRSubstitution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_MRSubstitution_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_MRSubstitution);
+ SEQUENCE_SIZE_1_MAX_OF_MRSubstitution_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution);
return offset;
}
static const ber_sequence_t MRMapping_sequence[] = {
- { &hf_x509if_mapping , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_Mapping },
- { &hf_x509if_substitution , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_MRSubstitution },
+ { &hf_x509if_mapping , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping },
+ { &hf_x509if_substitution , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution },
{ NULL, 0, 0, 0, NULL }
};
@@ -1632,14 +1875,14 @@ dissect_x509if_MRMapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
-static const ber_sequence_t SEQUENCE_OF_MRMapping_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of[1] = {
{ &hf_x509if_tightenings_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_MRMapping },
};
static int
-dissect_x509if_SEQUENCE_OF_MRMapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_MRMapping_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_MRMapping);
+ SEQUENCE_SIZE_1_MAX_OF_MRMapping_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping);
return offset;
}
@@ -1647,8 +1890,8 @@ dissect_x509if_SEQUENCE_OF_MRMapping(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static const ber_sequence_t RelaxationPolicy_sequence[] = {
{ &hf_x509if_basic , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_x509if_MRMapping },
- { &hf_x509if_tightenings , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_MRMapping },
- { &hf_x509if_relaxations , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_MRMapping },
+ { &hf_x509if_tightenings , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping },
+ { &hf_x509if_relaxations , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping },
{ &hf_x509if_maximum_relaxation, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
{ &hf_x509if_minimum_relaxation, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
{ NULL, 0, 0, 0, NULL }
@@ -1663,14 +1906,14 @@ dissect_x509if_RelaxationPolicy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
-static const ber_sequence_t SEQUENCE_OF_AttributeType_sequence_of[1] = {
+static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of[1] = {
{ &hf_x509if_additionalControl_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x509if_AttributeType },
};
static int
-dissect_x509if_SEQUENCE_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_AttributeType_sequence_of, hf_index, ett_x509if_SEQUENCE_OF_AttributeType);
+ SEQUENCE_SIZE_1_MAX_OF_AttributeType_sequence_of, hf_index, ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType);
return offset;
}
@@ -1725,14 +1968,14 @@ dissect_x509if_EntryLimit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
}
-static const ber_sequence_t SET_OF_DirectoryString_set_of[1] = {
+static const ber_sequence_t SET_SIZE_1_MAX_OF_DirectoryString_set_of[1] = {
{ &hf_x509if_name_item , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_x509sat_DirectoryString },
};
static int
-dissect_x509if_SET_OF_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_x509if_SET_SIZE_1_MAX_OF_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
- SET_OF_DirectoryString_set_of, hf_index, ett_x509if_SET_OF_DirectoryString);
+ SET_SIZE_1_MAX_OF_DirectoryString_set_of, hf_index, ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString);
return offset;
}
@@ -1743,20 +1986,21 @@ static const ber_sequence_t SearchRuleDescription_sequence[] = {
{ &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
{ &hf_x509if_serviceType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
{ &hf_x509if_userClass , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
- { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_RequestAttribute },
+ { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute },
{ &hf_x509if_attributeCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
- { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_ResultAttribute },
+ { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute },
{ &hf_x509if_defaultControls, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
{ &hf_x509if_mandatoryControls, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
{ &hf_x509if_searchRuleControls, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
+ { &hf_x509if_familyGrouping, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
+ { &hf_x509if_familyReturn , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_FamilyReturn },
{ &hf_x509if_relaxation , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
- { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_AttributeType },
+ { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType },
{ &hf_x509if_allowedSubset, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_x509if_AllowedSubset },
{ &hf_x509if_imposedSubset, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_x509if_ImposedSubset },
{ &hf_x509if_entryLimit , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_x509if_EntryLimit },
- { &hf_x509if_name , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_SET_OF_DirectoryString },
+ { &hf_x509if_name , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_x509if_SET_SIZE_1_MAX_OF_DirectoryString },
{ &hf_x509if_description , BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_x509sat_DirectoryString },
- { &hf_x509if_obsolete , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_x509if_BOOLEAN },
{ NULL, 0, 0, 0, NULL }
};
@@ -1769,19 +2013,40 @@ dissect_x509if_SearchRuleDescription(gboolean implicit_tag _U_, tvbuff_t *tvb _U
}
+
+static int
+dissect_x509if_HierarchyLevel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x509if_HierarchyBelow(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+
static const ber_sequence_t SearchRule_sequence[] = {
{ &hf_x509if_id , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_x509if_INTEGER },
{ &hf_x509if_dmdId , BER_CLASS_CON, 0, 0, dissect_x509if_OBJECT_IDENTIFIER },
{ &hf_x509if_serviceType , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_x509if_OBJECT_IDENTIFIER },
{ &hf_x509if_userClass , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_x509if_INTEGER },
- { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_RequestAttribute },
+ { &hf_x509if_inputAttributeTypes, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute },
{ &hf_x509if_attributeCombination, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_x509if_AttributeCombination },
- { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_ResultAttribute },
+ { &hf_x509if_outputAttributeTypes, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute },
{ &hf_x509if_defaultControls, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
{ &hf_x509if_mandatoryControls, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
{ &hf_x509if_searchRuleControls, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_x509if_ControlOptions },
+ { &hf_x509if_familyGrouping, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL, dissect_dap_FamilyGrouping },
+ { &hf_x509if_familyReturn , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL, dissect_dap_FamilyReturn },
{ &hf_x509if_relaxation , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_x509if_RelaxationPolicy },
- { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_OF_AttributeType },
+ { &hf_x509if_additionalControl, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType },
{ &hf_x509if_allowedSubset, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_x509if_AllowedSubset },
{ &hf_x509if_imposedSubset, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_x509if_ImposedSubset },
{ &hf_x509if_entryLimit , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_x509if_EntryLimit },
@@ -1811,28 +2076,6 @@ dissect_x509if_SearchRuleId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
return offset;
}
-
-const value_string x509if_OutputValues_vals[] = {
- { 0, "selectedValues" },
- { 1, "matchedValuesOnly" },
- { 0, NULL }
-};
-
-static const ber_choice_t OutputValues_choice[] = {
- { 0, &hf_x509if_selectedValues, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509if_SEQUENCE_OF_AttributeValue },
- { 1, &hf_x509if_matchedValuesOnly, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_x509if_NULL },
- { 0, NULL, 0, 0, 0, NULL }
-};
-
-int
-dissect_x509if_OutputValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_choice(actx, tree, tvb, offset,
- OutputValues_choice, hf_index, ett_x509if_OutputValues,
- NULL);
-
- return offset;
-}
-
/*--- PDUs ---*/
static void dissect_Name_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
@@ -1853,7 +2096,7 @@ static void dissect_SubtreeSpecification_PDU(tvbuff_t *tvb _U_, packet_info *pin
/*--- End of included file: packet-x509if-fn.c ---*/
-#line 80 "packet-x509if-template.c"
+#line 81 "packet-x509if-template.c"
const char * x509if_get_last_dn(void)
{
@@ -1916,15 +2159,15 @@ void proto_register_x509if(void) {
{ &hf_x509if_type,
{ "type", "x509if.type",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeId", HFILL }},
+ "x509if.T_type", HFILL }},
{ &hf_x509if_values,
{ "values", "x509if.values",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_OF_AttributeValue", HFILL }},
+ "x509if.T_values", HFILL }},
{ &hf_x509if_values_item,
{ "Item", "x509if.values_item",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.AttributeValue", HFILL }},
+ "x509if.T_values_item", HFILL }},
{ &hf_x509if_valuesWithContext,
{ "valuesWithContext", "x509if.valuesWithContext",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -1936,11 +2179,11 @@ void proto_register_x509if(void) {
{ &hf_x509if_value,
{ "value", "x509if.value",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.ValuesWithContextValue", HFILL }},
+ "x509if.T_value", HFILL }},
{ &hf_x509if_contextList,
{ "contextList", "x509if.contextList",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_OF_Context", HFILL }},
+ "x509if.SET_SIZE_1_MAX_OF_Context", HFILL }},
{ &hf_x509if_contextList_item,
{ "Item", "x509if.contextList_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1948,23 +2191,27 @@ void proto_register_x509if(void) {
{ &hf_x509if_contextType,
{ "contextType", "x509if.contextType",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeId", HFILL }},
+ "x509if.T_contextType", HFILL }},
{ &hf_x509if_contextValues,
{ "contextValues", "x509if.contextValues",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_OF_AttributeValue", HFILL }},
+ "x509if.T_contextValues", HFILL }},
{ &hf_x509if_contextValues_item,
{ "Item", "x509if.contextValues_item",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.AttributeValue", HFILL }},
+ "x509if.T_contextValues_item", HFILL }},
{ &hf_x509if_fallback,
{ "fallback", "x509if.fallback",
FT_BOOLEAN, 8, NULL, 0,
"x509if.BOOLEAN", HFILL }},
+ { &hf_x509if_type_01,
+ { "type", "x509if.type",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.T_type_01", HFILL }},
{ &hf_x509if_assertion,
{ "assertion", "x509if.assertion",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.AttributeValue", HFILL }},
+ "x509if.T_assertion", HFILL }},
{ &hf_x509if_assertedContexts,
{ "assertedContexts", "x509if.assertedContexts",
FT_UINT32, BASE_DEC, VALS(x509if_T_assertedContexts_vals), 0,
@@ -1976,7 +2223,7 @@ void proto_register_x509if(void) {
{ &hf_x509if_selectedContexts,
{ "selectedContexts", "x509if.selectedContexts",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_OF_ContextAssertion", HFILL }},
+ "x509if.SET_SIZE_1_MAX_OF_ContextAssertion", HFILL }},
{ &hf_x509if_selectedContexts_item,
{ "Item", "x509if.selectedContexts_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -1984,19 +2231,23 @@ void proto_register_x509if(void) {
{ &hf_x509if_ca_contextType,
{ "contextType", "x509if.contextType",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.ContextId", HFILL }},
+ "x509if.T_ca_contextType", HFILL }},
{ &hf_x509if_ca_contextValues,
{ "contextValues", "x509if.contextValues",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_OF_ContextValue", HFILL }},
+ "x509if.T_ca_contextValues", HFILL }},
{ &hf_x509if_ca_contextValues_item,
{ "Item", "x509if.contextValues_item",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.ContextValue", HFILL }},
+ "x509if.T_ca_contextValues_item", HFILL }},
+ { &hf_x509if_type_02,
+ { "type", "x509if.type",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.OBJECT_IDENTIFIER", HFILL }},
{ &hf_x509if_ata_assertedContexts,
{ "assertedContexts", "x509if.assertedContexts",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_ContextAssertion", HFILL }},
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_ContextAssertion", HFILL }},
{ &hf_x509if_ata_assertedContexts_item,
{ "Item", "x509if.assertedContexts_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2013,10 +2264,14 @@ void proto_register_x509if(void) {
{ "Item", "x509if.RelativeDistinguishedName_item",
FT_NONE, BASE_NONE, NULL, 0,
"x509if.RelativeDistinguishedName_item", HFILL }},
+ { &hf_x509if_type_03,
+ { "type", "x509if.type",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.T_type_02", HFILL }},
{ &hf_x509if_atadv_value,
{ "value", "x509if.value",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.AttributeValue", HFILL }},
+ "x509if.T_atadv_value", HFILL }},
{ &hf_x509if_primaryDistinguished,
{ "primaryDistinguished", "x509if.primaryDistinguished",
FT_BOOLEAN, 8, NULL, 0,
@@ -2032,19 +2287,15 @@ void proto_register_x509if(void) {
{ &hf_x509if_distingAttrValue,
{ "distingAttrValue", "x509if.distingAttrValue",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.ValuesWithContextValue", HFILL }},
- { &hf_x509if_base,
- { "base", "x509if.base",
- FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.LocalName", HFILL }},
- { &hf_x509if_specificExclusions,
+ "x509if.T_distingAttrValue", HFILL }},
+ { &hf_x509if_chopSpecificExclusions,
{ "specificExclusions", "x509if.specificExclusions",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.T_specificExclusions", HFILL }},
- { &hf_x509if_specificExclusions_item,
+ "x509if.T_chopSpecificExclusions", HFILL }},
+ { &hf_x509if_chopSpecificExclusions_item,
{ "Item", "x509if.specificExclusions_item",
- FT_UINT32, BASE_DEC, VALS(x509if_T_specificExclusions_item_vals), 0,
- "x509if.T_specificExclusions_item", HFILL }},
+ FT_UINT32, BASE_DEC, VALS(x509if_T_chopSpecificExclusions_item_vals), 0,
+ "x509if.T_chopSpecificExclusions_item", HFILL }},
{ &hf_x509if_chopBefore,
{ "chopBefore", "x509if.chopBefore",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2055,24 +2306,12 @@ void proto_register_x509if(void) {
"x509if.LocalName", HFILL }},
{ &hf_x509if_minimum,
{ "minimum", "x509if.minimum",
- FT_INT32, BASE_DEC, NULL, 0,
+ FT_UINT32, BASE_DEC, NULL, 0,
"x509if.BaseDistance", HFILL }},
{ &hf_x509if_maximum,
{ "maximum", "x509if.maximum",
- FT_INT32, BASE_DEC, NULL, 0,
- "x509if.BaseDistance", HFILL }},
- { &hf_x509if_specificationFilter,
- { "specificationFilter", "x509if.specificationFilter",
- FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
- "x509if.Refinement", HFILL }},
- { &hf_x509if_chopSpecificExclusions,
- { "specificExclusions", "x509if.specificExclusions",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.T_chopSpecificExclusions", HFILL }},
- { &hf_x509if_chopSpecificExclusions_item,
- { "Item", "x509if.specificExclusions_item",
- FT_UINT32, BASE_DEC, VALS(x509if_T_chopSpecificExclusions_item_vals), 0,
- "x509if.T_chopSpecificExclusions_item", HFILL }},
+ "x509if.BaseDistance", HFILL }},
{ &hf_x509if_item,
{ "item", "x509if.item",
FT_OID, BASE_NONE, NULL, 0,
@@ -2108,7 +2347,7 @@ void proto_register_x509if(void) {
{ &hf_x509if_superiorStructureRules,
{ "superiorStructureRules", "x509if.superiorStructureRules",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_OF_RuleIdentifier", HFILL }},
+ "x509if.SET_SIZE_1_MAX_OF_RuleIdentifier", HFILL }},
{ &hf_x509if_superiorStructureRules_item,
{ "Item", "x509if.superiorStructureRules_item",
FT_INT32, BASE_DEC, NULL, 0,
@@ -2128,31 +2367,31 @@ void proto_register_x509if(void) {
{ &hf_x509if_mandatory,
{ "mandatory", "x509if.mandatory",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_SIZE_1_MAX_OF_AttributeId", HFILL }},
+ "x509if.T_mandatory", HFILL }},
{ &hf_x509if_mandatory_item,
{ "Item", "x509if.mandatory_item",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeId", HFILL }},
+ "x509if.OBJECT_IDENTIFIER", HFILL }},
{ &hf_x509if_optional,
{ "optional", "x509if.optional",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_SIZE_1_MAX_OF_AttributeId", HFILL }},
+ "x509if.T_optional", HFILL }},
{ &hf_x509if_optional_item,
{ "Item", "x509if.optional_item",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeId", HFILL }},
+ "x509if.OBJECT_IDENTIFIER", HFILL }},
{ &hf_x509if_precluded,
{ "precluded", "x509if.precluded",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_SIZE_1_MAX_OF_AttributeId", HFILL }},
+ "x509if.T_precluded", HFILL }},
{ &hf_x509if_precluded_item,
{ "Item", "x509if.precluded_item",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeId", HFILL }},
+ "x509if.OBJECT_IDENTIFIER", HFILL }},
{ &hf_x509if_attributeType,
{ "attributeType", "x509if.attributeType",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeId", HFILL }},
+ "x509if.OBJECT_IDENTIFIER", HFILL }},
{ &hf_x509if_mandatoryContexts,
{ "mandatoryContexts", "x509if.mandatoryContexts",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2177,86 +2416,10 @@ void proto_register_x509if(void) {
{ "dmdId", "x509if.dmdId",
FT_OID, BASE_NONE, NULL, 0,
"x509if.OBJECT_IDENTIFIER", HFILL }},
- { &hf_x509if_serviceType,
- { "serviceType", "x509if.serviceType",
- FT_OID, BASE_NONE, NULL, 0,
- "x509if.OBJECT_IDENTIFIER", HFILL }},
- { &hf_x509if_userClass,
- { "userClass", "x509if.userClass",
- FT_INT32, BASE_DEC, NULL, 0,
- "x509if.INTEGER", HFILL }},
- { &hf_x509if_inputAttributeTypes,
- { "inputAttributeTypes", "x509if.inputAttributeTypes",
- FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_RequestAttribute", HFILL }},
- { &hf_x509if_inputAttributeTypes_item,
- { "Item", "x509if.inputAttributeTypes_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.RequestAttribute", HFILL }},
- { &hf_x509if_attributeCombination,
- { "attributeCombination", "x509if.attributeCombination",
- FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
- "x509if.AttributeCombination", HFILL }},
- { &hf_x509if_outputAttributeTypes,
- { "outputAttributeTypes", "x509if.outputAttributeTypes",
- FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_ResultAttribute", HFILL }},
- { &hf_x509if_outputAttributeTypes_item,
- { "Item", "x509if.outputAttributeTypes_item",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.ResultAttribute", HFILL }},
- { &hf_x509if_defaultControls,
- { "defaultControls", "x509if.defaultControls",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.ControlOptions", HFILL }},
- { &hf_x509if_mandatoryControls,
- { "mandatoryControls", "x509if.mandatoryControls",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.ControlOptions", HFILL }},
- { &hf_x509if_searchRuleControls,
- { "searchRuleControls", "x509if.searchRuleControls",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.ControlOptions", HFILL }},
- { &hf_x509if_relaxation,
- { "relaxation", "x509if.relaxation",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.RelaxationPolicy", HFILL }},
- { &hf_x509if_additionalControl,
- { "additionalControl", "x509if.additionalControl",
- FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_AttributeType", HFILL }},
- { &hf_x509if_additionalControl_item,
- { "Item", "x509if.additionalControl_item",
+ { &hf_x509if_attributeType_01,
+ { "attributeType", "x509if.attributeType",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeType", HFILL }},
- { &hf_x509if_allowedSubset,
- { "allowedSubset", "x509if.allowedSubset",
- FT_BYTES, BASE_HEX, NULL, 0,
- "x509if.AllowedSubset", HFILL }},
- { &hf_x509if_imposedSubset,
- { "imposedSubset", "x509if.imposedSubset",
- FT_UINT32, BASE_DEC, VALS(x509if_ImposedSubset_vals), 0,
- "x509if.ImposedSubset", HFILL }},
- { &hf_x509if_entryLimit,
- { "entryLimit", "x509if.entryLimit",
- FT_NONE, BASE_NONE, NULL, 0,
- "x509if.EntryLimit", HFILL }},
- { &hf_x509if_name,
- { "name", "x509if.name",
- FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SET_OF_DirectoryString", HFILL }},
- { &hf_x509if_name_item,
- { "Item", "x509if.name_item",
- FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
- "x509sat.DirectoryString", HFILL }},
- { &hf_x509if_description,
- { "description", "x509if.description",
- FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
- "x509sat.DirectoryString", HFILL }},
- { &hf_x509if_obsolete,
- { "obsolete", "x509if.obsolete",
- FT_BOOLEAN, 8, NULL, 0,
- "x509if.BOOLEAN", HFILL }},
+ "x509if.T_attributeType", HFILL }},
{ &hf_x509if_includeSubtypes,
{ "includeSubtypes", "x509if.includeSubtypes",
FT_BOOLEAN, 8, NULL, 0,
@@ -2264,11 +2427,11 @@ void proto_register_x509if(void) {
{ &hf_x509if_ra_selectedValues,
{ "selectedValues", "x509if.selectedValues",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_SelectedValues", HFILL }},
+ "x509if.T_ra_selectedValues", HFILL }},
{ &hf_x509if_ra_selectedValues_item,
{ "Item", "x509if.selectedValues_item",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.SelectedValues", HFILL }},
+ "x509if.T_ra_selectedValues_item", HFILL }},
{ &hf_x509if_defaultValues,
{ "defaultValues", "x509if.defaultValues",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2280,19 +2443,19 @@ void proto_register_x509if(void) {
{ &hf_x509if_entryType,
{ "entryType", "x509if.entryType",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.DefaultValueType", HFILL }},
+ "x509if.T_entryType", HFILL }},
{ &hf_x509if_ra_values,
{ "values", "x509if.values",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_DefaultValueValues", HFILL }},
+ "x509if.T_ra_values", HFILL }},
{ &hf_x509if_ra_values_item,
{ "Item", "x509if.values_item",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.DefaultValueValues", HFILL }},
+ "x509if.T_ra_values_item", HFILL }},
{ &hf_x509if_contexts,
{ "contexts", "x509if.contexts",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_ContextProfile", HFILL }},
+ "x509if.SEQUENCE_SIZE_0_MAX_OF_ContextProfile", HFILL }},
{ &hf_x509if_contexts_item,
{ "Item", "x509if.contexts_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2304,19 +2467,23 @@ void proto_register_x509if(void) {
{ &hf_x509if_matchingUse,
{ "matchingUse", "x509if.matchingUse",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_MatchingUse", HFILL }},
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_MatchingUse", HFILL }},
{ &hf_x509if_matchingUse_item,
{ "Item", "x509if.matchingUse_item",
FT_NONE, BASE_NONE, NULL, 0,
"x509if.MatchingUse", HFILL }},
+ { &hf_x509if_contextType_01,
+ { "contextType", "x509if.contextType",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.T_contextType_01", HFILL }},
{ &hf_x509if_contextValue,
{ "contextValue", "x509if.contextValue",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_AttributeValue", HFILL }},
+ "x509if.T_contextValue", HFILL }},
{ &hf_x509if_contextValue_item,
{ "Item", "x509if.contextValue_item",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.AttributeValue", HFILL }},
+ "x509if.T_contextValue_item", HFILL }},
{ &hf_x509if_context,
{ "context", "x509if.context",
FT_OID, BASE_NONE, NULL, 0,
@@ -2344,11 +2511,11 @@ void proto_register_x509if(void) {
{ &hf_x509if_restrictionType,
{ "restrictionType", "x509if.restrictionType",
FT_OID, BASE_NONE, NULL, 0,
- "x509if.AttributeId", HFILL }},
+ "x509if.T_restrictionType", HFILL }},
{ &hf_x509if_restrictionValue,
{ "restrictionValue", "x509if.restrictionValue",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.AttributeValue", HFILL }},
+ "x509if.T_restrictionValue", HFILL }},
{ &hf_x509if_attribute,
{ "attribute", "x509if.attribute",
FT_OID, BASE_NONE, NULL, 0,
@@ -2373,6 +2540,10 @@ void proto_register_x509if(void) {
{ "not", "x509if.not",
FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
"x509if.AttributeCombination", HFILL }},
+ { &hf_x509if_attributeType_02,
+ { "attributeType", "x509if.attributeType",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.T_attributeType_01", HFILL }},
{ &hf_x509if_outputValues,
{ "outputValues", "x509if.outputValues",
FT_UINT32, BASE_DEC, VALS(x509if_T_outputValues_vals), 0,
@@ -2380,15 +2551,31 @@ void proto_register_x509if(void) {
{ &hf_x509if_selectedValues,
{ "selectedValues", "x509if.selectedValues",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_AttributeValue", HFILL }},
+ "x509if.T_selectedValues", HFILL }},
{ &hf_x509if_selectedValues_item,
{ "Item", "x509if.selectedValues_item",
FT_NONE, BASE_NONE, NULL, 0,
- "x509if.AttributeValue", HFILL }},
+ "x509if.T_selectedValues_item", HFILL }},
{ &hf_x509if_matchedValuesOnly,
{ "matchedValuesOnly", "x509if.matchedValuesOnly",
FT_NONE, BASE_NONE, NULL, 0,
"x509if.NULL", HFILL }},
+ { &hf_x509if_contexts_01,
+ { "contexts", "x509if.contexts",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_ContextProfile", HFILL }},
+ { &hf_x509if_serviceControls,
+ { "serviceControls", "x509if.serviceControls",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.ServiceControlOptions", HFILL }},
+ { &hf_x509if_searchOptions,
+ { "searchOptions", "x509if.searchOptions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.SearchControlOptions", HFILL }},
+ { &hf_x509if_hierarchyOptions,
+ { "hierarchyOptions", "x509if.hierarchyOptions",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.HierarchySelections", HFILL }},
{ &hf_x509if_default,
{ "default", "x509if.default",
FT_INT32, BASE_DEC, NULL, 0,
@@ -2404,7 +2591,7 @@ void proto_register_x509if(void) {
{ &hf_x509if_tightenings,
{ "tightenings", "x509if.tightenings",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_MRMapping", HFILL }},
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL }},
{ &hf_x509if_tightenings_item,
{ "Item", "x509if.tightenings_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2412,7 +2599,7 @@ void proto_register_x509if(void) {
{ &hf_x509if_relaxations,
{ "relaxations", "x509if.relaxations",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_MRMapping", HFILL }},
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_MRMapping", HFILL }},
{ &hf_x509if_relaxations_item,
{ "Item", "x509if.relaxations_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2428,7 +2615,7 @@ void proto_register_x509if(void) {
{ &hf_x509if_mapping,
{ "mapping", "x509if.mapping",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_Mapping", HFILL }},
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_Mapping", HFILL }},
{ &hf_x509if_mapping_item,
{ "Item", "x509if.mapping_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2436,7 +2623,7 @@ void proto_register_x509if(void) {
{ &hf_x509if_substitution,
{ "substitution", "x509if.substitution",
FT_UINT32, BASE_DEC, NULL, 0,
- "x509if.SEQUENCE_OF_MRSubstitution", HFILL }},
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_MRSubstitution", HFILL }},
{ &hf_x509if_substitution_item,
{ "Item", "x509if.substitution_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2457,6 +2644,106 @@ void proto_register_x509if(void) {
{ "newMatchingRule", "x509if.newMatchingRule",
FT_OID, BASE_NONE, NULL, 0,
"x509if.OBJECT_IDENTIFIER", HFILL }},
+ { &hf_x509if_base,
+ { "base", "x509if.base",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.LocalName", HFILL }},
+ { &hf_x509if_specificExclusions,
+ { "specificExclusions", "x509if.specificExclusions",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.T_specificExclusions", HFILL }},
+ { &hf_x509if_specificExclusions_item,
+ { "Item", "x509if.specificExclusions_item",
+ FT_UINT32, BASE_DEC, VALS(x509if_T_specificExclusions_item_vals), 0,
+ "x509if.T_specificExclusions_item", HFILL }},
+ { &hf_x509if_specificationFilter,
+ { "specificationFilter", "x509if.specificationFilter",
+ FT_UINT32, BASE_DEC, VALS(x509if_Refinement_vals), 0,
+ "x509if.Refinement", HFILL }},
+ { &hf_x509if_serviceType,
+ { "serviceType", "x509if.serviceType",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.OBJECT_IDENTIFIER", HFILL }},
+ { &hf_x509if_userClass,
+ { "userClass", "x509if.userClass",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "x509if.INTEGER", HFILL }},
+ { &hf_x509if_inputAttributeTypes,
+ { "inputAttributeTypes", "x509if.inputAttributeTypes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.SEQUENCE_SIZE_0_MAX_OF_RequestAttribute", HFILL }},
+ { &hf_x509if_inputAttributeTypes_item,
+ { "Item", "x509if.inputAttributeTypes_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.RequestAttribute", HFILL }},
+ { &hf_x509if_attributeCombination,
+ { "attributeCombination", "x509if.attributeCombination",
+ FT_UINT32, BASE_DEC, VALS(x509if_AttributeCombination_vals), 0,
+ "x509if.AttributeCombination", HFILL }},
+ { &hf_x509if_outputAttributeTypes,
+ { "outputAttributeTypes", "x509if.outputAttributeTypes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_ResultAttribute", HFILL }},
+ { &hf_x509if_outputAttributeTypes_item,
+ { "Item", "x509if.outputAttributeTypes_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.ResultAttribute", HFILL }},
+ { &hf_x509if_defaultControls,
+ { "defaultControls", "x509if.defaultControls",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.ControlOptions", HFILL }},
+ { &hf_x509if_mandatoryControls,
+ { "mandatoryControls", "x509if.mandatoryControls",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.ControlOptions", HFILL }},
+ { &hf_x509if_searchRuleControls,
+ { "searchRuleControls", "x509if.searchRuleControls",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.ControlOptions", HFILL }},
+ { &hf_x509if_familyGrouping,
+ { "familyGrouping", "x509if.familyGrouping",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.FamilyGrouping", HFILL }},
+ { &hf_x509if_familyReturn,
+ { "familyReturn", "x509if.familyReturn",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "dap.FamilyReturn", HFILL }},
+ { &hf_x509if_relaxation,
+ { "relaxation", "x509if.relaxation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.RelaxationPolicy", HFILL }},
+ { &hf_x509if_additionalControl,
+ { "additionalControl", "x509if.additionalControl",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.SEQUENCE_SIZE_1_MAX_OF_AttributeType", HFILL }},
+ { &hf_x509if_additionalControl_item,
+ { "Item", "x509if.additionalControl_item",
+ FT_OID, BASE_NONE, NULL, 0,
+ "x509if.AttributeType", HFILL }},
+ { &hf_x509if_allowedSubset,
+ { "allowedSubset", "x509if.allowedSubset",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "x509if.AllowedSubset", HFILL }},
+ { &hf_x509if_imposedSubset,
+ { "imposedSubset", "x509if.imposedSubset",
+ FT_UINT32, BASE_DEC, VALS(x509if_ImposedSubset_vals), 0,
+ "x509if.ImposedSubset", HFILL }},
+ { &hf_x509if_entryLimit,
+ { "entryLimit", "x509if.entryLimit",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "x509if.EntryLimit", HFILL }},
+ { &hf_x509if_name,
+ { "name", "x509if.name",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "x509if.SET_SIZE_1_MAX_OF_DirectoryString", HFILL }},
+ { &hf_x509if_name_item,
+ { "Item", "x509if.name_item",
+ FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
+ "x509sat.DirectoryString", HFILL }},
+ { &hf_x509if_description,
+ { "description", "x509if.description",
+ FT_UINT32, BASE_DEC, VALS(x509sat_DirectoryString_vals), 0,
+ "x509sat.DirectoryString", HFILL }},
{ &hf_x509if_AllowedSubset_baseObject,
{ "baseObject", "x509if.baseObject",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -2471,7 +2758,7 @@ void proto_register_x509if(void) {
"", HFILL }},
/*--- End of included file: packet-x509if-hfarr.c ---*/
-#line 125 "packet-x509if-template.c"
+#line 126 "packet-x509if-template.c"
};
/* List of subtrees */
@@ -2480,18 +2767,19 @@ void proto_register_x509if(void) {
/*--- Included file: packet-x509if-ettarr.c ---*/
#line 1 "packet-x509if-ettarr.c"
&ett_x509if_Attribute,
- &ett_x509if_SET_OF_AttributeValue,
+ &ett_x509if_T_values,
&ett_x509if_T_valuesWithContext,
&ett_x509if_T_valuesWithContext_item,
- &ett_x509if_SET_OF_Context,
+ &ett_x509if_SET_SIZE_1_MAX_OF_Context,
&ett_x509if_Context,
+ &ett_x509if_T_contextValues,
&ett_x509if_AttributeValueAssertion,
&ett_x509if_T_assertedContexts,
- &ett_x509if_SET_OF_ContextAssertion,
+ &ett_x509if_SET_SIZE_1_MAX_OF_ContextAssertion,
&ett_x509if_ContextAssertion,
- &ett_x509if_SET_OF_ContextValue,
+ &ett_x509if_T_ca_contextValues,
&ett_x509if_AttributeTypeAssertion,
- &ett_x509if_SEQUENCE_OF_ContextAssertion,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextAssertion,
&ett_x509if_Name,
&ett_x509if_RDNSequence,
&ett_x509if_RelativeDistinguishedName,
@@ -2499,38 +2787,34 @@ void proto_register_x509if(void) {
&ett_x509if_T_valWithContext,
&ett_x509if_T_valWithContext_item,
&ett_x509if_SubtreeSpecification,
- &ett_x509if_T_specificExclusions,
- &ett_x509if_T_specificExclusions_item,
&ett_x509if_ChopSpecification,
&ett_x509if_T_chopSpecificExclusions,
&ett_x509if_T_chopSpecificExclusions_item,
&ett_x509if_Refinement,
&ett_x509if_SET_OF_Refinement,
&ett_x509if_DITStructureRule,
- &ett_x509if_SET_OF_RuleIdentifier,
+ &ett_x509if_SET_SIZE_1_MAX_OF_RuleIdentifier,
&ett_x509if_DITContentRule,
&ett_x509if_T_auxiliaries,
- &ett_x509if_SET_SIZE_1_MAX_OF_AttributeId,
+ &ett_x509if_T_mandatory,
+ &ett_x509if_T_optional,
+ &ett_x509if_T_precluded,
&ett_x509if_DITContextUse,
&ett_x509if_T_mandatoryContexts,
&ett_x509if_T_optionalContexts,
&ett_x509if_SearchRuleDescription,
- &ett_x509if_SEQUENCE_OF_RequestAttribute,
- &ett_x509if_SEQUENCE_OF_ResultAttribute,
- &ett_x509if_SEQUENCE_OF_AttributeType,
- &ett_x509if_SET_OF_DirectoryString,
&ett_x509if_SearchRule,
&ett_x509if_SearchRuleId,
&ett_x509if_AllowedSubset,
&ett_x509if_RequestAttribute,
- &ett_x509if_SEQUENCE_OF_SelectedValues,
+ &ett_x509if_T_ra_selectedValues,
&ett_x509if_T_defaultValues,
&ett_x509if_T_defaultValues_item,
- &ett_x509if_SEQUENCE_OF_DefaultValueValues,
- &ett_x509if_SEQUENCE_OF_ContextProfile,
- &ett_x509if_SEQUENCE_OF_MatchingUse,
+ &ett_x509if_T_ra_values,
+ &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_ContextProfile,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MatchingUse,
&ett_x509if_ContextProfile,
- &ett_x509if_SEQUENCE_OF_AttributeValue,
+ &ett_x509if_T_contextValue,
&ett_x509if_ContextCombination,
&ett_x509if_SEQUENCE_OF_ContextCombination,
&ett_x509if_MatchingUse,
@@ -2538,19 +2822,26 @@ void proto_register_x509if(void) {
&ett_x509if_SEQUENCE_OF_AttributeCombination,
&ett_x509if_ResultAttribute,
&ett_x509if_T_outputValues,
- &ett_x509if_OutputValues,
+ &ett_x509if_T_selectedValues,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ContextProfile,
&ett_x509if_ControlOptions,
&ett_x509if_EntryLimit,
&ett_x509if_RelaxationPolicy,
- &ett_x509if_SEQUENCE_OF_MRMapping,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRMapping,
&ett_x509if_MRMapping,
- &ett_x509if_SEQUENCE_OF_Mapping,
- &ett_x509if_SEQUENCE_OF_MRSubstitution,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_Mapping,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_MRSubstitution,
&ett_x509if_Mapping,
&ett_x509if_MRSubstitution,
+ &ett_x509if_T_specificExclusions,
+ &ett_x509if_T_specificExclusions_item,
+ &ett_x509if_SEQUENCE_SIZE_0_MAX_OF_RequestAttribute,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_ResultAttribute,
+ &ett_x509if_SEQUENCE_SIZE_1_MAX_OF_AttributeType,
+ &ett_x509if_SET_SIZE_1_MAX_OF_DirectoryString,
/*--- End of included file: packet-x509if-ettarr.c ---*/
-#line 130 "packet-x509if-template.c"
+#line 131 "packet-x509if-template.c"
};
/* Register protocol */
@@ -2604,6 +2895,6 @@ void proto_reg_handoff_x509if(void) {
/*--- End of included file: packet-x509if-dis-tab.c ---*/
-#line 149 "packet-x509if-template.c"
+#line 150 "packet-x509if-template.c"
}
diff --git a/epan/dissectors/packet-x509if.h b/epan/dissectors/packet-x509if.h
index 2b4e3a92f2..f10bc243bd 100644
--- a/epan/dissectors/packet-x509if.h
+++ b/epan/dissectors/packet-x509if.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-x509if.h */
-/* ../../tools/asn2wrs.py -b -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.asn */
+/* ../../tools/asn2wrs.py -b -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.asn ServiceAdministration.asn */
/* Input file: packet-x509if-template.h */
@@ -43,10 +43,9 @@ extern const value_string x509if_AttributeUsage_vals[];
extern const value_string x509if_ImposedSubset_vals[];
extern const value_string x509if_ContextCombination_vals[];
extern const value_string x509if_AttributeCombination_vals[];
-extern const value_string x509if_OutputValues_vals[];
-int dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_Attribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+int dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_Context(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
@@ -76,7 +75,6 @@ int dissect_x509if_ContextCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _
int dissect_x509if_MatchingUse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_AttributeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_ResultAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-int dissect_x509if_OutputValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_ControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_EntryLimit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
int dissect_x509if_RelaxationPolicy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);