diff options
-rw-r--r-- | asn1/x509if/InformationFramework.asn | 478 | ||||
-rw-r--r-- | asn1/x509if/x509if.cnf | 57 | ||||
-rw-r--r-- | asn1/x509if/x509if_exp.cnf | 75 | ||||
-rw-r--r-- | epan/dissectors/packet-x509if.c | 2223 | ||||
-rw-r--r-- | epan/dissectors/packet-x509if.h | 39 |
5 files changed, 2623 insertions, 249 deletions
diff --git a/asn1/x509if/InformationFramework.asn b/asn1/x509if/InformationFramework.asn index 01b8c213b2..30f81b0fca 100644 --- a/asn1/x509if/InformationFramework.asn +++ b/asn1/x509if/InformationFramework.asn @@ -15,7 +15,7 @@ IMPORTS usefulDefinitions(0) 3} commonName, generalizedTimeMatch, generalizedTimeOrderingMatch, booleanMatch, integerMatch, integerOrderingMatch, objectIdentifierFirstComponentMatch, - integerFirstComponentMatch, DirectoryString{} + integerFirstComponentMatch, DirectoryString FROM SelectedAttributeTypes selectedAttributeTypes TypeAndContextAssertion, ServiceControlOptions, SearchControlOptions, HierarchySelections, FamilyGrouping, FamilyReturn @@ -27,48 +27,49 @@ AttributeId ::= OBJECT IDENTIFIER AttributeValue ::= ANY +ValuesWithContextValue ::= ANY + -- attribute data types Attribute ::= SEQUENCE { - type AttributeId, - values - SET SIZE (0..MAX) OF AttributeValue --- valuesWithContext --- SET SIZE (1..MAX) OF --- SEQUENCE {value ANY, --- contextList SET SIZE (1..MAX) OF Context} OPTIONAL + type AttributeId, + values SET OF AttributeValue, + valuesWithContext SET OF SEQUENCE { + value ValuesWithContextValue, + contextList SET OF Context + } OPTIONAL } AttributeType ::= AttributeId --- --- Context ::= SEQUENCE { --- contextType AttributeId, --- contextValues --- SET SIZE (1..MAX) OF ANY, --- fallback BOOLEAN DEFAULT FALSE --- } --- --- AttributeValueAssertion ::= SEQUENCE { --- type AttributeId, --- assertion --- ATTRIBUTE.&equality-match.&AssertionType({SupportedAttributes}{@type}), --- assertedContexts --- CHOICE {allContexts [0] NULL, --- selectedContexts [1] SET SIZE (1..MAX) OF ContextAssertion --- } OPTIONAL --- } --- --- ContextAssertion ::= SEQUENCE { --- contextType CONTEXT.&id({SupportedContexts}), --- contextValues --- SET SIZE (1..MAX) OF CONTEXT.&Assertion({SupportedContexts}{@contextType}) --- } --- --- AttributeTypeAssertion ::= SEQUENCE { --- type AttributeId, --- assertedContexts SEQUENCE SIZE (1..MAX) OF ContextAssertion OPTIONAL --- } --- +Context ::= SEQUENCE { + contextType AttributeId, + contextValues SET OF AttributeValue, + fallback BOOLEAN OPTIONAL +} + +AttributeValueAssertion ::= SEQUENCE { + type AttributeId, + assertion AttributeValue, + assertedContexts CHOICE { + allContexts [0] NULL, + selectedContexts [1] SET OF ContextAssertion + } OPTIONAL +} + +ContextId ::= OBJECT IDENTIFIER + +ContextValue ::= ANY + +ContextAssertion ::= SEQUENCE { + contextType ContextId, + contextValues SET OF ContextValue +} + +AttributeTypeAssertion ::= SEQUENCE { + type AttributeId, + assertedContexts SEQUENCE 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 @@ -83,6 +84,7 @@ AttributeType ::= AttributeId -- {...} -- -- naming data types + Name ::= CHOICE { rdnSequence RDNSequence } @@ -97,42 +99,46 @@ RelativeDistinguishedName ::= AttributeTypeAndDistinguishedValue ::= SEQUENCE { type AttributeId, value AttributeValue, - primaryDistinguished BOOLEAN OPTIONAL --- valuesWithContext --- SET SIZE (1..MAX) OF --- SEQUENCE {distingAttrValue --- [0] ANY OPTIONAL, --- contextList SET SIZE (1..MAX) OF Context} OPTIONAL + primaryDistinguished BOOLEAN OPTIONAL, + valuesWithContext SET OF SEQUENCE { + distingAttrValue [0] ValuesWithContextValue OPTIONAL, + contextList SET OF Context + } OPTIONAL } -- subtree data types --- SubtreeSpecification ::= SEQUENCE { --- base [0] LocalName DEFAULT {}, --- COMPONENTS OF ChopSpecification, --- specificationFilter [4] Refinement OPTIONAL --- } --- +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 +} + -- empty sequence specifies whole administrative area --- LocalName ::= RDNSequence --- --- ChopSpecification ::= SEQUENCE { --- specificExclusions --- [1] SET SIZE (1..MAX) OF --- CHOICE {chopBefore [0] LocalName, --- chopAfter [1] LocalName} OPTIONAL, --- minimum [2] BaseDistance DEFAULT 0, --- maximum [3] BaseDistance OPTIONAL --- } --- --- BaseDistance ::= INTEGER(0..MAX) --- --- Refinement ::= CHOICE { --- item [0] OBJECT-CLASS.&id, --- and [1] SET OF Refinement, --- or [2] SET OF Refinement, --- not [3] Refinement --- } --- +LocalName ::= RDNSequence + +ChopSpecification ::= SEQUENCE { + specificExclusions + [1] SET SIZE (1..MAX) OF + CHOICE {chopBefore [0] LocalName, + chopAfter [1] LocalName} OPTIONAL, + minimum [2] BaseDistance OPTIONAL, + maximum [3] BaseDistance OPTIONAL +} + +BaseDistance ::= INTEGER + +Refinement ::= CHOICE { + item [0] OBJECT IDENTIFIER, + 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, @@ -199,11 +205,11 @@ ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} -- [USAGE &usage] -- ID &id -- } --- --- AttributeUsage ::= ENUMERATED { --- userApplications(0), directoryOperation(1), distributedOperation(2), --- dSAOperation(3)} --- + +AttributeUsage ::= ENUMERATED { + userApplications(0), directoryOperation(1), distributedOperation(2), + dSAOperation(3)} + -- attributes -- objectClass ATTRIBUTE ::= { -- WITH SYNTAX OBJECT IDENTIFIER @@ -292,16 +298,16 @@ ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} -- [SUPERIOR RULES &SuperiorStructureRules] -- ID &id -- } --- --- DITStructureRule ::= SEQUENCE { --- ruleIdentifier RuleIdentifier, --- must be unique within the scope of the subschema --- nameForm NAME-FORM.&id, --- superiorStructureRules SET SIZE (1..MAX) OF RuleIdentifier OPTIONAL --- } --- --- RuleIdentifier ::= INTEGER --- + +DITStructureRule ::= SEQUENCE { + ruleIdentifier RuleIdentifier, +-- must be unique within the scope of the subschema + nameForm OBJECT IDENTIFIER, + superiorStructureRules SET OF RuleIdentifier OPTIONAL +} + +RuleIdentifier ::= INTEGER + -- CONTENT-RULE class and DIT content rule data types -- CONTENT-RULE ::= CLASS { -- &structuralClass OBJECT-CLASS.&id UNIQUE, @@ -317,15 +323,15 @@ ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} -- [MAY CONTAIN &Optional] -- [MUST-NOT CONTAIN &Precluded] -- } --- --- DITContentRule ::= SEQUENCE { --- structuralObjectClass OBJECT-CLASS.&id, --- auxiliaries SET SIZE (1..MAX) OF OBJECT-CLASS.&id 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 --- } --- + +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, @@ -334,13 +340,13 @@ ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} -- [ASSERTED AS &Assertion] -- ID &id -- } --- --- DITContextUse ::= SEQUENCE { --- attributeType AttributeId, --- mandatoryContexts [1] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL, --- optionalContexts [2] SET SIZE (1..MAX) OF CONTEXT.&id OPTIONAL --- } --- + +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, @@ -524,14 +530,30 @@ ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} -- USAGE directoryOperation -- ID id-oa-searchRules -- } --- --- SearchRuleDescription ::= SEQUENCE { --- COMPONENTS OF SearchRule, --- name [28] SET SIZE (1..MAX) OF DirectoryString{ub-search} OPTIONAL, --- description [29] DirectoryString{ub-search} OPTIONAL, --- obsolete [30] BOOLEAN DEFAULT FALSE --- } --- + +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 @@ -559,141 +581,133 @@ ObjectClassKind ::= ENUMERATED {abstract(0), structural(1), auxiliary(2)} -- ID id-oa-hierarchyParent -- } -- --- SearchRule ::= SEQUENCE { --- COMPONENTS OF SearchRuleId, --- serviceType [1] OBJECT IDENTIFIER OPTIONAL, --- userClass [2] INTEGER OPTIONAL, --- inputAttributeTypes --- [3] SEQUENCE SIZE (1..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 --- } +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)} --- RequestAttribute ::= SEQUENCE { --- attributeType AttributeId, --- includeSubtypes [0] BOOLEAN DEFAULT FALSE, --- selectedValues --- [1] SEQUENCE SIZE (0..MAX) OF --- ANY OPTIONAL, --- defaultValues --- [2] SEQUENCE SIZE (0..MAX) OF --- SEQUENCE {entryType OBJECT-CLASS.&id OPTIONAL, --- values --- SEQUENCE OF --- ANY --- } 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, --- 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}) --- } --- +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 +} + -- 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 SIZE (1..MAX) OF --- ANY, --- matchedValuesOnly NULL} OPTIONAL, --- contexts [0] SEQUENCE SIZE (1..MAX) OF ContextProfile OPTIONAL --- } --- --- OutputValues ::= CHOICE { --- selectedValues --- SEQUENCE SIZE (1..MAX) OF ANY, --- matchedValuesOnly NULL --- } --- --- 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, + +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 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 --- } --- + 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, diff --git a/asn1/x509if/x509if.cnf b/asn1/x509if/x509if.cnf index e51db1fc3a..83725ac54b 100644 --- a/asn1/x509if/x509if.cnf +++ b/asn1/x509if/x509if.cnf @@ -4,14 +4,50 @@ # $Id$ #.MODULE_IMPORT +SelectedAttributeTypes x509sat + +#.INCLUDE ../x509sat/x509sat_exp.cnf #.EXPORTS +AllowedSubset Attribute +AttributeCombination AttributeType +AttributeTypeAndDistinguishedValue +AttributeTypeAssertion +AttributeUsage +AttributeValueAssertion +BaseDistance +ChopSpecification +Context +ContextAssertion +ContextCombination +ContextProfile +ControlOptions +DistinguishedName +DITContentRule +DITContextUse +DITStructureRule +EntryLimit +ImposedSubset +LocalName +Mapping +MatchingUse +MRMapping +MRSubstitution Name +OutputValues +Refinement RelativeDistinguishedName -DistinguishedName +RelaxationPolicy RDNSequence +RequestAttribute +ResultAttribute +RuleIdentifier +SearchRule +SearchRuleDescription +SearchRuleId +SubtreeSpecification #.NO_EMIT @@ -19,6 +55,13 @@ RDNSequence #.FIELD_RENAME +#.FN_BODY ContextId + offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset, + hf_x509if_object_identifier_id, object_identifier_id); + +#.FN_BODY ContextValue + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); + #.FN_BODY AttributeId offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset, hf_x509if_object_identifier_id, object_identifier_id); @@ -26,6 +69,18 @@ RDNSequence #.FN_BODY AttributeValue offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); +#.FN_BODY SelectedValues + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); + +#.FN_BODY DefaultValueType + offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset, + hf_x509if_object_identifier_id, object_identifier_id); + +#.FN_BODY DefaultValueValues + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); + +#.FN_BODY ValuesWithContextValue + offset=call_ber_oid_callback("unknown", tvb, offset, pinfo, tree); #.END diff --git a/asn1/x509if/x509if_exp.cnf b/asn1/x509if/x509if_exp.cnf index 7b262b22a8..32b5ffd1c6 100644 --- a/asn1/x509if/x509if_exp.cnf +++ b/asn1/x509if/x509if_exp.cnf @@ -1,15 +1,84 @@ #.IMPORT_TAG -Attribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Attribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE AttributeType BER_CLASS_UNI BER_UNI_TAG_OID -DistinguishedName BER_CLASS_UNI BER_UNI_TAG_SEQUENCE -Name BER_CLASS_ANY -1 +Context BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +AttributeValueAssertion BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ContextAssertion BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +AttributeTypeAssertion BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Name BER_CLASS_UNI -1/*choice*/ RDNSequence BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +DistinguishedName BER_CLASS_UNI BER_UNI_TAG_SEQUENCE RelativeDistinguishedName BER_CLASS_UNI BER_UNI_TAG_SET +AttributeTypeAndDistinguishedValue BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +SubtreeSpecification BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +LocalName BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ChopSpecification BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +BaseDistance BER_CLASS_UNI BER_UNI_TAG_INTEGER +Refinement BER_CLASS_CON -1/*choice*/ +AttributeUsage BER_CLASS_UNI BER_UNI_TAG_ENUMERATED +DITStructureRule BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +RuleIdentifier BER_CLASS_UNI BER_UNI_TAG_INTEGER +DITContentRule BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +DITContextUse BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +SearchRuleDescription BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +SearchRule BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +SearchRuleId BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +AllowedSubset BER_CLASS_UNI BER_UNI_TAG_BITSTRING +ImposedSubset BER_CLASS_UNI BER_UNI_TAG_ENUMERATED +RequestAttribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ContextProfile BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ContextCombination BER_CLASS_CON -1/*choice*/ +MatchingUse BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +AttributeCombination BER_CLASS_CON -1/*choice*/ +ResultAttribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +OutputValues BER_CLASS_UNI -1/*choice*/ +ControlOptions BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +EntryLimit BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +RelaxationPolicy BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +MRMapping BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Mapping BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +MRSubstitution BER_CLASS_UNI BER_UNI_TAG_SEQUENCE #.END #.TYPE_ATTR +Attribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 AttributeType TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +Context TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +AttributeValueAssertion TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +ContextAssertion TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +AttributeTypeAssertion TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 Name TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(Name_vals) BITMASK = 0 +RDNSequence TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +DistinguishedName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 RelativeDistinguishedName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +AttributeTypeAndDistinguishedValue TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +SubtreeSpecification TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +LocalName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +ChopSpecification TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +BaseDistance TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +Refinement TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(Refinement_vals) BITMASK = 0 +AttributeUsage TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(AttributeUsage_vals) BITMASK = 0 +DITStructureRule TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +RuleIdentifier TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +DITContentRule TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +DITContextUse TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +SearchRuleDescription TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +SearchRule TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +SearchRuleId TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +AllowedSubset TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +ImposedSubset TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(ImposedSubset_vals) BITMASK = 0 +RequestAttribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +ContextProfile TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +ContextCombination TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(ContextCombination_vals) BITMASK = 0 +MatchingUse TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +AttributeCombination TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(AttributeCombination_vals) BITMASK = 0 +ResultAttribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +OutputValues TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(OutputValues_vals) BITMASK = 0 +ControlOptions TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +EntryLimit TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +RelaxationPolicy TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +MRMapping TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +Mapping TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +MRSubstitution TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 #.END diff --git a/epan/dissectors/packet-x509if.c b/epan/dissectors/packet-x509if.c index 8ccce304ea..c77425b19c 100644 --- a/epan/dissectors/packet-x509if.c +++ b/epan/dissectors/packet-x509if.c @@ -56,11 +56,139 @@ int hf_x509if_object_identifier_id = -1; 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_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_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_fallback = -1; /* BOOLEAN */ +static int hf_x509if_assertion = -1; /* AttributeValue */ +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_item = -1; /* ContextAssertion */ +static int hf_x509if_contextType1 = -1; /* ContextId */ +static int hf_x509if_contextValues1 = -1; /* SET_OF_ContextValue */ +static int hf_x509if_contextValues_item1 = -1; /* ContextValue */ +static int hf_x509if_assertedContexts1 = -1; /* SEQUNCE_OF_ContextAssertion */ +static int hf_x509if_assertedContexts_item = -1; /* ContextAssertion */ static int hf_x509if_rdnSequence = -1; /* RDNSequence */ static int hf_x509if_RDNSequence_item = -1; /* RelativeDistinguishedName */ static int hf_x509if_RelativeDistinguishedName_item = -1; /* AttributeTypeAndDistinguishedValue */ -static int hf_x509if_value = -1; /* AttributeValue */ +static int hf_x509if_value1 = -1; /* AttributeValue */ static int hf_x509if_primaryDistinguished = -1; /* BOOLEAN */ +static int hf_x509if_valuesWithContext1 = -1; /* T_valuesWithContext1 */ +static int hf_x509if_valuesWithContext_item1 = -1; /* T_valuesWithContext_item1 */ +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_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_specificExclusions1 = -1; /* T_specificExclusions1 */ +static int hf_x509if_specificExclusions_item1 = -1; /* T_specificExclusions_item1 */ +static int hf_x509if_item = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509if_and = -1; /* SET_OF_Refinement */ +static int hf_x509if_and_item = -1; /* Refinement */ +static int hf_x509if_or = -1; /* SET_OF_Refinement */ +static int hf_x509if_or_item = -1; /* Refinement */ +static int hf_x509if_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_item = -1; /* RuleIdentifier */ +static int hf_x509if_structuralObjectClass = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509if_auxiliaries = -1; /* SET_OF_OBJECT_IDENTIFIER */ +static int hf_x509if_auxiliaries_item = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509if_mandatory = -1; /* SET_OF_AttributeId */ +static int hf_x509if_mandatory_item = -1; /* AttributeId */ +static int hf_x509if_optional = -1; /* SET_OF_AttributeId */ +static int hf_x509if_optional_item = -1; /* AttributeId */ +static int hf_x509if_precluded = -1; /* SET_OF_AttributeId */ +static int hf_x509if_precluded_item = -1; /* AttributeId */ +static int hf_x509if_attributeType = -1; /* AttributeId */ +static int hf_x509if_mandatoryContexts = -1; /* SET_OF_OBJECT_IDENTIFIER */ +static int hf_x509if_mandatoryContexts_item = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509if_optionalContexts = -1; /* SET_OF_OBJECT_IDENTIFIER */ +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; /* SEQUNCE_OF_RequestAttribute */ +static int hf_x509if_inputAttributeTypes_item = -1; /* RequestAttribute */ +static int hf_x509if_attributeCombination = -1; /* AttributeCombination */ +static int hf_x509if_outputAttributeTypes = -1; /* SEQUNCE_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; /* SEQUNCE_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_includeSubtypes = -1; /* BOOLEAN */ +static int hf_x509if_selectedValues = -1; /* SEQUNCE_OF_SelectedValues */ +static int hf_x509if_selectedValues_item = -1; /* SelectedValues */ +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_values1 = -1; /* SEQUNCE_OF_DefaultValueValues */ +static int hf_x509if_values_item1 = -1; /* DefaultValueValues */ +static int hf_x509if_contexts = -1; /* SEQUNCE_OF_ContextProfile */ +static int hf_x509if_contexts_item = -1; /* ContextProfile */ +static int hf_x509if_contextCombination = -1; /* ContextCombination */ +static int hf_x509if_matchingUse = -1; /* SEQUNCE_OF_MatchingUse */ +static int hf_x509if_matchingUse_item = -1; /* MatchingUse */ +static int hf_x509if_contextValue = -1; /* SEQUNCE_OF_AttributeValue */ +static int hf_x509if_contextValue_item = -1; /* AttributeValue */ +static int hf_x509if_context = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509if_and1 = -1; /* SEQUNCE_OF_ContextCombination */ +static int hf_x509if_and_item1 = -1; /* ContextCombination */ +static int hf_x509if_or1 = -1; /* SEQUNCE_OF_ContextCombination */ +static int hf_x509if_or_item1 = -1; /* ContextCombination */ +static int hf_x509if_not1 = -1; /* ContextCombination */ +static int hf_x509if_restrictionType = -1; /* AttributeId */ +static int hf_x509if_restrictionValue = -1; /* AttributeValue */ +static int hf_x509if_attribute = -1; /* AttributeType */ +static int hf_x509if_and2 = -1; /* SEQUNCE_OF_AttributeCombination */ +static int hf_x509if_and_item2 = -1; /* AttributeCombination */ +static int hf_x509if_or2 = -1; /* SEQUNCE_OF_AttributeCombination */ +static int hf_x509if_or_item2 = -1; /* AttributeCombination */ +static int hf_x509if_not2 = -1; /* AttributeCombination */ +static int hf_x509if_outputValues = -1; /* T_outputValues */ +static int hf_x509if_selectedValues1 = -1; /* SEQUNCE_OF_AttributeValue */ +static int hf_x509if_selectedValues_item1 = -1; /* AttributeValue */ +static int hf_x509if_matchedValuesOnly = -1; /* NULL */ +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; /* SEQUNCE_OF_MRMapping */ +static int hf_x509if_tightenings_item = -1; /* MRMapping */ +static int hf_x509if_relaxations = -1; /* SEQUNCE_OF_MRMapping */ +static int hf_x509if_relaxations_item = -1; /* MRMapping */ +static int hf_x509if_maximum1 = -1; /* INTEGER */ +static int hf_x509if_minimum1 = -1; /* INTEGER */ +static int hf_x509if_mapping = -1; /* SEQUNCE_OF_Mapping */ +static int hf_x509if_mapping_item = -1; /* Mapping */ +static int hf_x509if_substitution = -1; /* SEQUNCE_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 */ /* named bits */ static int hf_x509if_AllowedSubset_baseObject = -1; static int hf_x509if_AllowedSubset_oneLevel = -1; @@ -75,11 +203,71 @@ static int hf_x509if_AllowedSubset_wholeSubtree = -1; static gint ett_x509if_Attribute = -1; static gint ett_x509if_SET_OF_AttributeValue = -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_Context = -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_ContextAssertion = -1; +static gint ett_x509if_SET_OF_ContextValue = -1; +static gint ett_x509if_AttributeTypeAssertion = -1; +static gint ett_x509if_SEQUNCE_OF_ContextAssertion = -1; static gint ett_x509if_Name = -1; static gint ett_x509if_RDNSequence = -1; static gint ett_x509if_RelativeDistinguishedName = -1; static gint ett_x509if_AttributeTypeAndDistinguishedValue = -1; +static gint ett_x509if_T_valuesWithContext1 = -1; +static gint ett_x509if_T_valuesWithContext_item1 = -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_specificExclusions1 = -1; +static gint ett_x509if_T_specificExclusions_item1 = -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_DITContentRule = -1; +static gint ett_x509if_SET_OF_OBJECT_IDENTIFIER = -1; +static gint ett_x509if_SET_OF_AttributeId = -1; +static gint ett_x509if_DITContextUse = -1; +static gint ett_x509if_SearchRuleDescription = -1; +static gint ett_x509if_SEQUNCE_OF_RequestAttribute = -1; +static gint ett_x509if_SEQUNCE_OF_ResultAttribute = -1; +static gint ett_x509if_SEQUNCE_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_SEQUNCE_OF_SelectedValues = -1; +static gint ett_x509if_T_defaultValues = -1; +static gint ett_x509if_T_defaultValues_item = -1; +static gint ett_x509if_SEQUNCE_OF_DefaultValueValues = -1; +static gint ett_x509if_SEQUNCE_OF_ContextProfile = -1; +static gint ett_x509if_SEQUNCE_OF_MatchingUse = -1; +static gint ett_x509if_ContextProfile = -1; +static gint ett_x509if_SEQUNCE_OF_AttributeValue = -1; +static gint ett_x509if_ContextCombination = -1; +static gint ett_x509if_SEQUNCE_OF_ContextCombination = -1; +static gint ett_x509if_MatchingUse = -1; +static gint ett_x509if_AttributeCombination = -1; +static gint ett_x509if_SEQUNCE_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_ControlOptions = -1; +static gint ett_x509if_EntryLimit = -1; +static gint ett_x509if_RelaxationPolicy = -1; +static gint ett_x509if_SEQUNCE_OF_MRMapping = -1; +static gint ett_x509if_MRMapping = -1; +static gint ett_x509if_SEQUNCE_OF_Mapping = -1; +static gint ett_x509if_SEQUNCE_OF_MRSubstitution = -1; +static gint ett_x509if_Mapping = -1; +static gint ett_x509if_MRSubstitution = -1; /*--- End of included file: packet-x509if-ett.c ---*/ @@ -89,8 +277,68 @@ static char object_identifier_id[64]; /*64 chars should be long enough? */ /*--- Included file: packet-x509if-fn.c ---*/ +/*--- Cyclic dependencies ---*/ + +/* Refinement -> Refinement/and -> Refinement */ +/* Refinement -> Refinement */ +int dissect_x509if_Refinement(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); + +static int dissect_specificationFilter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_Refinement(FALSE, tvb, offset, pinfo, tree, hf_x509if_specificationFilter); +} +static int dissect_and_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_Refinement(FALSE, tvb, offset, pinfo, tree, hf_x509if_and_item); +} +static int dissect_or_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_Refinement(FALSE, tvb, offset, pinfo, tree, hf_x509if_or_item); +} +static int dissect_not(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_Refinement(FALSE, tvb, offset, pinfo, tree, hf_x509if_not); +} + +/* ContextCombination -> ContextCombination/and -> ContextCombination */ +/* ContextCombination -> ContextCombination */ +int dissect_x509if_ContextCombination(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); + +static int dissect_contextCombination(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextCombination); +} +static int dissect_and_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_and_item1); +} +static int dissect_or_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_or_item1); +} +static int dissect_not1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_not1); +} + +/* AttributeCombination -> AttributeCombination/and -> AttributeCombination */ +/* AttributeCombination -> AttributeCombination */ +int dissect_x509if_AttributeCombination(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); + +static int dissect_attributeCombination(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_attributeCombination); +} +static int dissect_and_item2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_and_item2); +} +static int dissect_or_item2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_or_item2); +} +static int dissect_not2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_not2); +} + + /*--- Fields for imported types ---*/ +static int dissect_name_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509if_name_item); +} +static int dissect_description(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509if_description); +} static int @@ -104,6 +352,24 @@ dissect_x509if_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_x509if_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_type); } +static int dissect_contextType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextType); +} +static int dissect_mandatory_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_mandatory_item); +} +static int dissect_optional_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_optional_item); +} +static int dissect_precluded_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_precluded_item); +} +static int dissect_attributeType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_attributeType); +} +static int dissect_restrictionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_restrictionType); +} @@ -112,14 +378,44 @@ dissect_x509if_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); - return offset; } static int dissect_values_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_values_item); } +static int dissect_contextValues_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextValues_item); +} +static int dissect_assertion(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_assertion); +} +static int dissect_value1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_value1); +} +static int dissect_contextValue_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextValue_item); +} +static int dissect_restrictionValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_restrictionValue); +} +static int dissect_selectedValues_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_selectedValues_item1); +} + + + +static int +dissect_x509if_ValuesWithContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset=call_ber_oid_callback("unknown", tvb, offset, pinfo, tree); + + + return offset; +} static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_x509if_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_value); + return dissect_x509if_ValuesWithContextValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_value); +} +static int dissect_distingAttrValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ValuesWithContextValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_distingAttrValue); } static const ber_sequence SET_OF_AttributeValue_set_of[1] = { @@ -136,10 +432,99 @@ dissect_x509if_SET_OF_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, i static int dissect_values(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_x509if_SET_OF_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_values); } +static int dissect_contextValues(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextValues); +} + + +static int +dissect_x509if_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_boolean(pinfo, tree, tvb, offset, hf_index); + + return offset; +} +static int dissect_fallback(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509if_fallback); +} +static int dissect_primaryDistinguished(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509if_primaryDistinguished); +} +static int dissect_obsolete(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509if_obsolete); +} +static int dissect_includeSubtypes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509if_includeSubtypes); +} + +static const ber_sequence Context_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_contextType }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_contextValues }, + { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_fallback }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_Context(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + Context_sequence, hf_index, ett_x509if_Context); + + return offset; +} +static int dissect_contextList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_Context(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextList_item); +} + +static const ber_sequence SET_OF_Context_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contextList_item }, +}; + +static int +dissect_x509if_SET_OF_Context(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_Context_set_of, hf_index, ett_x509if_SET_OF_Context); + + return offset; +} +static int dissect_contextList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_Context(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextList); +} + +static const ber_sequence T_valuesWithContext_item_sequence[] = { + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_contextList }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x509if_T_valuesWithContext_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_valuesWithContext_item_sequence, hf_index, ett_x509if_T_valuesWithContext_item); + + return offset; +} +static int dissect_valuesWithContext_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_valuesWithContext_item(FALSE, tvb, offset, pinfo, tree, hf_x509if_valuesWithContext_item); +} + +static const ber_sequence T_valuesWithContext_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_valuesWithContext_item }, +}; + +static int +dissect_x509if_T_valuesWithContext(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + T_valuesWithContext_set_of, hf_index, ett_x509if_T_valuesWithContext); + + return offset; +} +static int dissect_valuesWithContext(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_valuesWithContext(FALSE, tvb, offset, pinfo, tree, hf_x509if_valuesWithContext); +} static const ber_sequence Attribute_sequence[] = { { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type }, { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_values }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_valuesWithContext }, { 0, 0, 0, NULL } }; @@ -158,26 +543,215 @@ dissect_x509if_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse return offset; } +static int dissect_additionalControl_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509if_additionalControl_item); +} +static int dissect_attribute(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509if_attribute); +} static int -dissect_x509if_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_boolean(pinfo, tree, tvb, offset, hf_index); +dissect_x509if_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + { proto_item *ti_tmp; + ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE); + proto_item_append_text(ti_tmp, ": NULL"); + } return offset; } -static int dissect_primaryDistinguished(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_x509if_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509if_primaryDistinguished); +static int dissect_allContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_NULL(FALSE, tvb, offset, pinfo, tree, hf_x509if_allContexts); +} +static int dissect_matchedValuesOnly(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_NULL(FALSE, tvb, offset, pinfo, tree, hf_x509if_matchedValuesOnly); +} + + +static int +dissect_x509if_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset, + hf_x509if_object_identifier_id, object_identifier_id); + + + return offset; +} +static int dissect_contextType1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextId(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextType1); +} + + + +static int +dissect_x509if_ContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); + + + return offset; +} +static int dissect_contextValues_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextValues_item1); +} + +static const ber_sequence SET_OF_ContextValue_set_of[1] = { + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_contextValues_item1 }, +}; + +static int +dissect_x509if_SET_OF_ContextValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_ContextValue_set_of, hf_index, ett_x509if_SET_OF_ContextValue); + + return offset; +} +static int dissect_contextValues1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_ContextValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextValues1); +} + +static const ber_sequence ContextAssertion_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_contextType1 }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_contextValues1 }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ContextAssertion_sequence, hf_index, ett_x509if_ContextAssertion); + + return offset; +} +static int dissect_selectedContexts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_x509if_selectedContexts_item); +} +static int dissect_assertedContexts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_x509if_assertedContexts_item); +} + +static const ber_sequence SET_OF_ContextAssertion_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_selectedContexts_item }, +}; + +static int +dissect_x509if_SET_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_ContextAssertion_set_of, hf_index, ett_x509if_SET_OF_ContextAssertion); + + return offset; +} +static int dissect_selectedContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_x509if_selectedContexts); +} + + +static const value_string T_assertedContexts_vals[] = { + { 0, "allContexts" }, + { 1, "selectedContexts" }, + { 0, NULL } +}; + +static const ber_choice T_assertedContexts_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_allContexts }, + { 1, BER_CLASS_CON, 1, 0, dissect_selectedContexts }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509if_T_assertedContexts(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + T_assertedContexts_choice, hf_index, ett_x509if_T_assertedContexts); + + return offset; +} +static int dissect_assertedContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_assertedContexts(FALSE, tvb, offset, pinfo, tree, hf_x509if_assertedContexts); +} + +static const ber_sequence AttributeValueAssertion_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type }, + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_assertion }, + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_assertedContexts }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_AttributeValueAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + AttributeValueAssertion_sequence, hf_index, ett_x509if_AttributeValueAssertion); + + return offset; +} + +static const ber_sequence SEQUNCE_OF_ContextAssertion_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_assertedContexts_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_ContextAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_ContextAssertion_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_ContextAssertion); + + return offset; +} +static int dissect_assertedContexts1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_ContextAssertion(FALSE, tvb, offset, pinfo, tree, hf_x509if_assertedContexts1); +} + +static const ber_sequence AttributeTypeAssertion_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type }, + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_assertedContexts1 }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_AttributeTypeAssertion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + AttributeTypeAssertion_sequence, hf_index, ett_x509if_AttributeTypeAssertion); + + return offset; +} + +static const ber_sequence T_valuesWithContext_item1_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_distingAttrValue }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_contextList }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x509if_T_valuesWithContext_item1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_valuesWithContext_item1_sequence, hf_index, ett_x509if_T_valuesWithContext_item1); + + return offset; +} +static int dissect_valuesWithContext_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_valuesWithContext_item1(FALSE, tvb, offset, pinfo, tree, hf_x509if_valuesWithContext_item1); +} + +static const ber_sequence T_valuesWithContext1_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_valuesWithContext_item1 }, +}; + +static int +dissect_x509if_T_valuesWithContext1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + T_valuesWithContext1_set_of, hf_index, ett_x509if_T_valuesWithContext1); + + return offset; +} +static int dissect_valuesWithContext1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_valuesWithContext1(FALSE, tvb, offset, pinfo, tree, hf_x509if_valuesWithContext1); } static const ber_sequence AttributeTypeAndDistinguishedValue_sequence[] = { { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_type }, - { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value }, + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_value1 }, { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_primaryDistinguished }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_valuesWithContext1 }, { 0, 0, 0, NULL } }; -static int +int dissect_x509if_AttributeTypeAndDistinguishedValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, AttributeTypeAndDistinguishedValue_sequence, hf_index, ett_x509if_AttributeTypeAndDistinguishedValue); @@ -246,6 +820,236 @@ dissect_x509if_DistinguishedName(gboolean implicit_tag _U_, tvbuff_t *tvb, int o } +int +dissect_x509if_LocalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_x509if_RDNSequence(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_base(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_LocalName(FALSE, tvb, offset, pinfo, tree, hf_x509if_base); +} +static int dissect_chopBefore(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_LocalName(FALSE, tvb, offset, pinfo, tree, hf_x509if_chopBefore); +} +static int dissect_chopAfter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_LocalName(FALSE, tvb, offset, pinfo, tree, hf_x509if_chopAfter); +} + + +static const value_string T_specificExclusions_item_vals[] = { + { 0, "chopBefore" }, + { 1, "chopAfter" }, + { 0, NULL } +}; + +static const ber_choice T_specificExclusions_item_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_chopBefore }, + { 1, BER_CLASS_CON, 1, 0, dissect_chopAfter }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509if_T_specificExclusions_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + T_specificExclusions_item_choice, hf_index, ett_x509if_T_specificExclusions_item); + + return offset; +} +static int dissect_specificExclusions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_specificExclusions_item(FALSE, tvb, offset, pinfo, tree, hf_x509if_specificExclusions_item); +} + +static const ber_sequence T_specificExclusions_set_of[1] = { + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_specificExclusions_item }, +}; + +static int +dissect_x509if_T_specificExclusions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + T_specificExclusions_set_of, hf_index, ett_x509if_T_specificExclusions); + + return offset; +} +static int dissect_specificExclusions(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_specificExclusions(FALSE, tvb, offset, pinfo, tree, hf_x509if_specificExclusions); +} + + + +int +dissect_x509if_BaseDistance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); + + return offset; +} +static int dissect_minimum(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_BaseDistance(FALSE, tvb, offset, pinfo, tree, hf_x509if_minimum); +} +static int dissect_maximum(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_BaseDistance(FALSE, tvb, offset, pinfo, tree, hf_x509if_maximum); +} + + +static int +dissect_x509if_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, + hf_index, NULL); + + return offset; +} +static int dissect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_item); +} +static int dissect_nameForm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_nameForm); +} +static int dissect_structuralObjectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_structuralObjectClass); +} +static int dissect_auxiliaries_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_auxiliaries_item); +} +static int dissect_mandatoryContexts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_mandatoryContexts_item); +} +static int dissect_optionalContexts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_optionalContexts_item); +} +static int dissect_dmdId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_dmdId); +} +static int dissect_serviceType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_serviceType); +} +static int dissect_context(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_context); +} +static int dissect_mappingFunction(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_mappingFunction); +} +static int dissect_oldMatchingRule(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_oldMatchingRule); +} +static int dissect_newMatchingRule(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_newMatchingRule); +} + +static const ber_sequence SET_OF_Refinement_set_of[1] = { + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item }, +}; + +static int +dissect_x509if_SET_OF_Refinement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_Refinement_set_of, hf_index, ett_x509if_SET_OF_Refinement); + + return offset; +} +static int dissect_and(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_Refinement(FALSE, tvb, offset, pinfo, tree, hf_x509if_and); +} +static int dissect_or(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_Refinement(FALSE, tvb, offset, pinfo, tree, hf_x509if_or); +} + + +const value_string Refinement_vals[] = { + { 0, "item" }, + { 1, "and" }, + { 2, "or" }, + { 3, "not" }, + { 0, NULL } +}; + +static const ber_choice Refinement_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_item }, + { 1, BER_CLASS_CON, 1, 0, dissect_and }, + { 2, BER_CLASS_CON, 2, 0, dissect_or }, + { 3, BER_CLASS_CON, 3, 0, dissect_not }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509if_Refinement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + Refinement_choice, hf_index, ett_x509if_Refinement); + + return offset; +} + +static const ber_sequence SubtreeSpecification_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_base }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_specificExclusions }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_minimum }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_maximum }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_specificationFilter }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_SubtreeSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + SubtreeSpecification_sequence, hf_index, ett_x509if_SubtreeSpecification); + + return offset; +} + + +static const value_string T_specificExclusions_item1_vals[] = { + { 0, "chopBefore" }, + { 1, "chopAfter" }, + { 0, NULL } +}; + +static const ber_choice T_specificExclusions_item1_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_chopBefore }, + { 1, BER_CLASS_CON, 1, 0, dissect_chopAfter }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509if_T_specificExclusions_item1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + T_specificExclusions_item1_choice, hf_index, ett_x509if_T_specificExclusions_item1); + + return offset; +} +static int dissect_specificExclusions_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_specificExclusions_item1(FALSE, tvb, offset, pinfo, tree, hf_x509if_specificExclusions_item1); +} + +static const ber_sequence T_specificExclusions1_set_of[1] = { + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_specificExclusions_item1 }, +}; + +static int +dissect_x509if_T_specificExclusions1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + T_specificExclusions1_set_of, hf_index, ett_x509if_T_specificExclusions1); + + return offset; +} +static int dissect_specificExclusions1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_specificExclusions1(FALSE, tvb, offset, pinfo, tree, hf_x509if_specificExclusions1); +} + +static const ber_sequence ChopSpecification_sequence[] = { + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_specificExclusions1 }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_minimum }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_maximum }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_ChopSpecification(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ChopSpecification_sequence, hf_index, ett_x509if_ChopSpecification); + + return offset; +} + + static const value_string ObjectClassKind_vals[] = { { 0, "abstract" }, { 1, "structural" }, @@ -261,6 +1065,697 @@ dissect_x509if_ObjectClassKind(gboolean implicit_tag _U_, tvbuff_t *tvb, int off return offset; } + +const value_string AttributeUsage_vals[] = { + { 0, "userApplications" }, + { 1, "directoryOperation" }, + { 2, "distributedOperation" }, + { 3, "dSAOperation" }, + { 0, NULL } +}; + + +int +dissect_x509if_AttributeUsage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); + + return offset; +} + + + +int +dissect_x509if_RuleIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); + + return offset; +} +static int dissect_ruleIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_RuleIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x509if_ruleIdentifier); +} +static int dissect_superiorStructureRules_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_RuleIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x509if_superiorStructureRules_item); +} + +static const ber_sequence SET_OF_RuleIdentifier_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_superiorStructureRules_item }, +}; + +static int +dissect_x509if_SET_OF_RuleIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_RuleIdentifier_set_of, hf_index, ett_x509if_SET_OF_RuleIdentifier); + + return offset; +} +static int dissect_superiorStructureRules(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_RuleIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x509if_superiorStructureRules); +} + +static const ber_sequence DITStructureRule_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ruleIdentifier }, + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_nameForm }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_superiorStructureRules }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_DITStructureRule(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + DITStructureRule_sequence, hf_index, ett_x509if_DITStructureRule); + + return offset; +} + +static const ber_sequence SET_OF_OBJECT_IDENTIFIER_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_auxiliaries_item }, +}; + +static int +dissect_x509if_SET_OF_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_OBJECT_IDENTIFIER_set_of, hf_index, ett_x509if_SET_OF_OBJECT_IDENTIFIER); + + return offset; +} +static int dissect_auxiliaries(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_auxiliaries); +} +static int dissect_mandatoryContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_mandatoryContexts); +} +static int dissect_optionalContexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509if_optionalContexts); +} + +static const ber_sequence SET_OF_AttributeId_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_mandatory_item }, +}; + +static int +dissect_x509if_SET_OF_AttributeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_AttributeId_set_of, hf_index, ett_x509if_SET_OF_AttributeId); + + return offset; +} +static int dissect_mandatory(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_mandatory); +} +static int dissect_optional(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_optional); +} +static int dissect_precluded(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_AttributeId(FALSE, tvb, offset, pinfo, tree, hf_x509if_precluded); +} + +static const ber_sequence DITContentRule_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_structuralObjectClass }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_auxiliaries }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mandatory }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_optional }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_precluded }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_DITContentRule(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + DITContentRule_sequence, hf_index, ett_x509if_DITContentRule); + + return offset; +} + +static const ber_sequence DITContextUse_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_mandatoryContexts }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_optionalContexts }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_DITContextUse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + DITContextUse_sequence, hf_index, ett_x509if_DITContextUse); + + return offset; +} + + + +static int +dissect_x509if_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); + + return offset; +} +static int dissect_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509if_id); +} +static int dissect_userClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509if_userClass); +} +static int dissect_default(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509if_default); +} +static int dissect_max(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509if_max); +} +static int dissect_maximum1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509if_maximum1); +} +static int dissect_minimum1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509if_minimum1); +} +static int dissect_level(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509if_level); +} + + + +static int +dissect_x509if_SelectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); + + + return offset; +} +static int dissect_selectedValues_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SelectedValues(FALSE, tvb, offset, pinfo, tree, hf_x509if_selectedValues_item); +} + +static const ber_sequence SEQUNCE_OF_SelectedValues_sequence_of[1] = { + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_selectedValues_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_SelectedValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_SelectedValues_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_SelectedValues); + + return offset; +} +static int dissect_selectedValues(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_SelectedValues(FALSE, tvb, offset, pinfo, tree, hf_x509if_selectedValues); +} + + +static int +dissect_x509if_DefaultValueType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset, + hf_x509if_object_identifier_id, object_identifier_id); + + + return offset; +} +static int dissect_entryType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_DefaultValueType(FALSE, tvb, offset, pinfo, tree, hf_x509if_entryType); +} + + + +static int +dissect_x509if_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); + + + return offset; +} +static int dissect_values_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_DefaultValueValues(FALSE, tvb, offset, pinfo, tree, hf_x509if_values_item1); +} + +static const ber_sequence SEQUNCE_OF_DefaultValueValues_sequence_of[1] = { + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_values_item1 }, +}; + +static int +dissect_x509if_SEQUNCE_OF_DefaultValueValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_DefaultValueValues_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_DefaultValueValues); + + return offset; +} +static int dissect_values1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_DefaultValueValues(FALSE, tvb, offset, pinfo, tree, hf_x509if_values1); +} + +static const ber_sequence T_defaultValues_item_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_entryType }, + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_values1 }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x509if_T_defaultValues_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_defaultValues_item_sequence, hf_index, ett_x509if_T_defaultValues_item); + + return offset; +} +static int dissect_defaultValues_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_defaultValues_item(FALSE, tvb, offset, pinfo, tree, hf_x509if_defaultValues_item); +} + +static const ber_sequence T_defaultValues_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_defaultValues_item }, +}; + +static int +dissect_x509if_T_defaultValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + T_defaultValues_sequence_of, hf_index, ett_x509if_T_defaultValues); + + return offset; +} +static int dissect_defaultValues(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_defaultValues(FALSE, tvb, offset, pinfo, tree, hf_x509if_defaultValues); +} + +static const ber_sequence SEQUNCE_OF_AttributeValue_sequence_of[1] = { + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_contextValue_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_AttributeValue_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_AttributeValue); + + return offset; +} +static int dissect_contextValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_contextValue); +} +static int dissect_selectedValues1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_AttributeValue(FALSE, tvb, offset, pinfo, tree, hf_x509if_selectedValues1); +} + +static const ber_sequence ContextProfile_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_contextType }, + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_contextValue }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_ContextProfile(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ContextProfile_sequence, hf_index, ett_x509if_ContextProfile); + + return offset; +} +static int dissect_contexts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ContextProfile(FALSE, tvb, offset, pinfo, tree, hf_x509if_contexts_item); +} + +static const ber_sequence SEQUNCE_OF_ContextProfile_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_contexts_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_ContextProfile(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_ContextProfile_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_ContextProfile); + + return offset; +} +static int dissect_contexts(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_ContextProfile(FALSE, tvb, offset, pinfo, tree, hf_x509if_contexts); +} + +static const ber_sequence SEQUNCE_OF_ContextCombination_sequence_of[1] = { + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item1 }, +}; + +static int +dissect_x509if_SEQUNCE_OF_ContextCombination(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_ContextCombination_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_ContextCombination); + + return offset; +} +static int dissect_and1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_ContextCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_and1); +} +static int dissect_or1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_ContextCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_or1); +} + + +const value_string ContextCombination_vals[] = { + { 0, "context" }, + { 1, "and" }, + { 2, "or" }, + { 3, "not" }, + { 0, NULL } +}; + +static const ber_choice ContextCombination_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_context }, + { 1, BER_CLASS_CON, 1, 0, dissect_and1 }, + { 2, BER_CLASS_CON, 2, 0, dissect_or1 }, + { 3, BER_CLASS_CON, 3, 0, dissect_not1 }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509if_ContextCombination(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + ContextCombination_choice, hf_index, ett_x509if_ContextCombination); + + return offset; +} + +static const ber_sequence MatchingUse_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_restrictionType }, + { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_restrictionValue }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_MatchingUse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + MatchingUse_sequence, hf_index, ett_x509if_MatchingUse); + + return offset; +} +static int dissect_matchingUse_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_MatchingUse(FALSE, tvb, offset, pinfo, tree, hf_x509if_matchingUse_item); +} + +static const ber_sequence SEQUNCE_OF_MatchingUse_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_matchingUse_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_MatchingUse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_MatchingUse_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_MatchingUse); + + return offset; +} +static int dissect_matchingUse(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_MatchingUse(FALSE, tvb, offset, pinfo, tree, hf_x509if_matchingUse); +} + +static const ber_sequence RequestAttribute_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType }, + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_includeSubtypes }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_selectedValues }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_defaultValues }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_contexts }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_contextCombination }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_matchingUse }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_RequestAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + RequestAttribute_sequence, hf_index, ett_x509if_RequestAttribute); + + return offset; +} +static int dissect_inputAttributeTypes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_RequestAttribute(FALSE, tvb, offset, pinfo, tree, hf_x509if_inputAttributeTypes_item); +} + +static const ber_sequence SEQUNCE_OF_RequestAttribute_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_inputAttributeTypes_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_RequestAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_RequestAttribute_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_RequestAttribute); + + return offset; +} +static int dissect_inputAttributeTypes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_RequestAttribute(FALSE, tvb, offset, pinfo, tree, hf_x509if_inputAttributeTypes); +} + +static const ber_sequence SEQUNCE_OF_AttributeCombination_sequence_of[1] = { + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item2 }, +}; + +static int +dissect_x509if_SEQUNCE_OF_AttributeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_AttributeCombination_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_AttributeCombination); + + return offset; +} +static int dissect_and2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_AttributeCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_and2); +} +static int dissect_or2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_AttributeCombination(FALSE, tvb, offset, pinfo, tree, hf_x509if_or2); +} + + +const value_string AttributeCombination_vals[] = { + { 0, "attribute" }, + { 1, "and" }, + { 2, "or" }, + { 3, "not" }, + { 0, NULL } +}; + +static const ber_choice AttributeCombination_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_attribute }, + { 1, BER_CLASS_CON, 1, 0, dissect_and2 }, + { 2, BER_CLASS_CON, 2, 0, dissect_or2 }, + { 3, BER_CLASS_CON, 3, 0, dissect_not2 }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509if_AttributeCombination(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + AttributeCombination_choice, hf_index, ett_x509if_AttributeCombination); + + return offset; +} + + +static const value_string T_outputValues_vals[] = { + { 0, "selectedValues" }, + { 1, "matchedValuesOnly" }, + { 0, NULL } +}; + +static const ber_choice T_outputValues_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_selectedValues1 }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_matchedValuesOnly }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509if_T_outputValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + T_outputValues_choice, hf_index, ett_x509if_T_outputValues); + + return offset; +} +static int dissect_outputValues(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_T_outputValues(FALSE, tvb, offset, pinfo, tree, hf_x509if_outputValues); +} + +static const ber_sequence ResultAttribute_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attributeType }, + { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_outputValues }, + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_contexts }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_ResultAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ResultAttribute_sequence, hf_index, ett_x509if_ResultAttribute); + + return offset; +} +static int dissect_outputAttributeTypes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ResultAttribute(FALSE, tvb, offset, pinfo, tree, hf_x509if_outputAttributeTypes_item); +} + +static const ber_sequence SEQUNCE_OF_ResultAttribute_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_outputAttributeTypes_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_ResultAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_ResultAttribute_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_ResultAttribute); + + return offset; +} +static int dissect_outputAttributeTypes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_ResultAttribute(FALSE, tvb, offset, pinfo, tree, hf_x509if_outputAttributeTypes); +} + +static const ber_sequence ControlOptions_sequence[] = { + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_ControlOptions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ControlOptions_sequence, hf_index, ett_x509if_ControlOptions); + + return offset; +} +static int dissect_defaultControls(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ControlOptions(FALSE, tvb, offset, pinfo, tree, hf_x509if_defaultControls); +} +static int dissect_mandatoryControls(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ControlOptions(FALSE, tvb, offset, pinfo, tree, hf_x509if_mandatoryControls); +} +static int dissect_searchRuleControls(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ControlOptions(FALSE, tvb, offset, pinfo, tree, hf_x509if_searchRuleControls); +} + +static const ber_sequence Mapping_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_mappingFunction }, + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_level }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_Mapping(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + Mapping_sequence, hf_index, ett_x509if_Mapping); + + return offset; +} +static int dissect_mapping_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_Mapping(FALSE, tvb, offset, pinfo, tree, hf_x509if_mapping_item); +} + +static const ber_sequence SEQUNCE_OF_Mapping_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_mapping_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_Mapping(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_Mapping_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_Mapping); + + return offset; +} +static int dissect_mapping(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_Mapping(FALSE, tvb, offset, pinfo, tree, hf_x509if_mapping); +} + +static const ber_sequence MRSubstitution_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_attribute }, + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_oldMatchingRule }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_newMatchingRule }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_MRSubstitution(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + MRSubstitution_sequence, hf_index, ett_x509if_MRSubstitution); + + return offset; +} +static int dissect_substitution_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_MRSubstitution(FALSE, tvb, offset, pinfo, tree, hf_x509if_substitution_item); +} + +static const ber_sequence SEQUNCE_OF_MRSubstitution_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_substitution_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_MRSubstitution(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_MRSubstitution_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_MRSubstitution); + + return offset; +} +static int dissect_substitution(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_MRSubstitution(FALSE, tvb, offset, pinfo, tree, hf_x509if_substitution); +} + +static const ber_sequence MRMapping_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_mapping }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_substitution }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_MRMapping(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + MRMapping_sequence, hf_index, ett_x509if_MRMapping); + + return offset; +} +static int dissect_basic(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_MRMapping(FALSE, tvb, offset, pinfo, tree, hf_x509if_basic); +} +static int dissect_tightenings_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_MRMapping(FALSE, tvb, offset, pinfo, tree, hf_x509if_tightenings_item); +} +static int dissect_relaxations_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_MRMapping(FALSE, tvb, offset, pinfo, tree, hf_x509if_relaxations_item); +} + +static const ber_sequence SEQUNCE_OF_MRMapping_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_tightenings_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_MRMapping(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_MRMapping_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_MRMapping); + + return offset; +} +static int dissect_tightenings(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_MRMapping(FALSE, tvb, offset, pinfo, tree, hf_x509if_tightenings); +} +static int dissect_relaxations(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_MRMapping(FALSE, tvb, offset, pinfo, tree, hf_x509if_relaxations); +} + +static const ber_sequence RelaxationPolicy_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_basic }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_tightenings }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_relaxations }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_maximum1 }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_minimum1 }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_RelaxationPolicy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + RelaxationPolicy_sequence, hf_index, ett_x509if_RelaxationPolicy); + + return offset; +} +static int dissect_relaxation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_RelaxationPolicy(FALSE, tvb, offset, pinfo, tree, hf_x509if_relaxation); +} + +static const ber_sequence SEQUNCE_OF_AttributeType_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_additionalControl_item }, +}; + +static int +dissect_x509if_SEQUNCE_OF_AttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_AttributeType_sequence_of, hf_index, ett_x509if_SEQUNCE_OF_AttributeType); + + return offset; +} +static int dissect_additionalControl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SEQUNCE_OF_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509if_additionalControl); +} + static const asn_namedbit AllowedSubset_bits[] = { { 0, &hf_x509if_AllowedSubset_baseObject, -1, -1, NULL, NULL }, { 1, &hf_x509if_AllowedSubset_oneLevel, -1, -1, NULL, NULL }, @@ -268,7 +1763,7 @@ static const asn_namedbit AllowedSubset_bits[] = { { 0, NULL, 0, 0, NULL, NULL } }; -static int +int dissect_x509if_AllowedSubset(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset, AllowedSubset_bits, hf_index, ett_x509if_AllowedSubset, @@ -276,9 +1771,12 @@ dissect_x509if_AllowedSubset(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse return offset; } +static int dissect_allowedSubset(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AllowedSubset(FALSE, tvb, offset, pinfo, tree, hf_x509if_allowedSubset); +} -static const value_string ImposedSubset_vals[] = { +const value_string ImposedSubset_vals[] = { { 0, "baseObject" }, { 1, "oneLevel" }, { 2, "wholeSubtree" }, @@ -286,12 +1784,139 @@ static const value_string ImposedSubset_vals[] = { }; -static int +int dissect_x509if_ImposedSubset(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer_new(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } +static int dissect_imposedSubset(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_ImposedSubset(FALSE, tvb, offset, pinfo, tree, hf_x509if_imposedSubset); +} + +static const ber_sequence EntryLimit_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_default }, + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_max }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_EntryLimit(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + EntryLimit_sequence, hf_index, ett_x509if_EntryLimit); + + return offset; +} +static int dissect_entryLimit(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_EntryLimit(FALSE, tvb, offset, pinfo, tree, hf_x509if_entryLimit); +} + +static const ber_sequence SET_OF_DirectoryString_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_name_item }, +}; + +static int +dissect_x509if_SET_OF_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset, + SET_OF_DirectoryString_set_of, hf_index, ett_x509if_SET_OF_DirectoryString); + + return offset; +} +static int dissect_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_SET_OF_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509if_name); +} + +static const ber_sequence SearchRuleDescription_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_id }, + { BER_CLASS_CON, 0, 0, dissect_dmdId }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_serviceType }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_userClass }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_inputAttributeTypes }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_attributeCombination }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_outputAttributeTypes }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_defaultControls }, + { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_mandatoryControls }, + { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_searchRuleControls }, + { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_relaxation }, + { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_additionalControl }, + { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_allowedSubset }, + { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_imposedSubset }, + { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_entryLimit }, + { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL, dissect_name }, + { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL, dissect_description }, + { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL, dissect_obsolete }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_SearchRuleDescription(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + SearchRuleDescription_sequence, hf_index, ett_x509if_SearchRuleDescription); + + return offset; +} + +static const ber_sequence SearchRule_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_id }, + { BER_CLASS_CON, 0, 0, dissect_dmdId }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_serviceType }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_userClass }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_inputAttributeTypes }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_attributeCombination }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL, dissect_outputAttributeTypes }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL, dissect_defaultControls }, + { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL, dissect_mandatoryControls }, + { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL, dissect_searchRuleControls }, + { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL, dissect_relaxation }, + { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL, dissect_additionalControl }, + { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL, dissect_allowedSubset }, + { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL, dissect_imposedSubset }, + { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL, dissect_entryLimit }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_SearchRule(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + SearchRule_sequence, hf_index, ett_x509if_SearchRule); + + return offset; +} + +static const ber_sequence SearchRuleId_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_id }, + { BER_CLASS_CON, 0, 0, dissect_dmdId }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509if_SearchRuleId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + SearchRuleId_sequence, hf_index, ett_x509if_SearchRuleId); + + return offset; +} + + +const value_string OutputValues_vals[] = { + { 0, "selectedValues" }, + { 1, "matchedValuesOnly" }, + { 0, NULL } +}; + +static const ber_choice OutputValues_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_selectedValues1 }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_matchedValuesOnly }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509if_OutputValues(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + OutputValues_choice, hf_index, ett_x509if_OutputValues); + + return offset; +} /*--- End of included file: packet-x509if-fn.c ---*/ @@ -322,6 +1947,82 @@ void proto_register_x509if(void) { { "Item", "x509if.values_item", FT_NONE, BASE_NONE, NULL, 0, "Attribute/values/_item", HFILL }}, + { &hf_x509if_valuesWithContext, + { "valuesWithContext", "x509if.valuesWithContext", + FT_UINT32, BASE_DEC, NULL, 0, + "Attribute/valuesWithContext", HFILL }}, + { &hf_x509if_valuesWithContext_item, + { "Item", "x509if.valuesWithContext_item", + FT_NONE, BASE_NONE, NULL, 0, + "Attribute/valuesWithContext/_item", HFILL }}, + { &hf_x509if_value, + { "value", "x509if.value", + FT_NONE, BASE_NONE, NULL, 0, + "Attribute/valuesWithContext/_item/value", HFILL }}, + { &hf_x509if_contextList, + { "contextList", "x509if.contextList", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_contextList_item, + { "Item", "x509if.contextList_item", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_contextType, + { "contextType", "x509if.contextType", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_contextValues, + { "contextValues", "x509if.contextValues", + FT_UINT32, BASE_DEC, NULL, 0, + "Context/contextValues", HFILL }}, + { &hf_x509if_contextValues_item, + { "Item", "x509if.contextValues_item", + FT_NONE, BASE_NONE, NULL, 0, + "Context/contextValues/_item", HFILL }}, + { &hf_x509if_fallback, + { "fallback", "x509if.fallback", + FT_BOOLEAN, 8, NULL, 0, + "Context/fallback", HFILL }}, + { &hf_x509if_assertion, + { "assertion", "x509if.assertion", + FT_NONE, BASE_NONE, NULL, 0, + "AttributeValueAssertion/assertion", HFILL }}, + { &hf_x509if_assertedContexts, + { "assertedContexts", "x509if.assertedContexts", + FT_UINT32, BASE_DEC, VALS(T_assertedContexts_vals), 0, + "AttributeValueAssertion/assertedContexts", HFILL }}, + { &hf_x509if_allContexts, + { "allContexts", "x509if.allContexts", + FT_NONE, BASE_NONE, NULL, 0, + "AttributeValueAssertion/assertedContexts/allContexts", HFILL }}, + { &hf_x509if_selectedContexts, + { "selectedContexts", "x509if.selectedContexts", + FT_UINT32, BASE_DEC, NULL, 0, + "AttributeValueAssertion/assertedContexts/selectedContexts", HFILL }}, + { &hf_x509if_selectedContexts_item, + { "Item", "x509if.selectedContexts_item", + FT_NONE, BASE_NONE, NULL, 0, + "AttributeValueAssertion/assertedContexts/selectedContexts/_item", HFILL }}, + { &hf_x509if_contextType1, + { "contextType", "x509if.contextType", + FT_STRING, BASE_NONE, NULL, 0, + "ContextAssertion/contextType", HFILL }}, + { &hf_x509if_contextValues1, + { "contextValues", "x509if.contextValues", + FT_UINT32, BASE_DEC, NULL, 0, + "ContextAssertion/contextValues", HFILL }}, + { &hf_x509if_contextValues_item1, + { "Item", "x509if.contextValues_item", + FT_NONE, BASE_NONE, NULL, 0, + "ContextAssertion/contextValues/_item", HFILL }}, + { &hf_x509if_assertedContexts1, + { "assertedContexts", "x509if.assertedContexts", + FT_UINT32, BASE_DEC, NULL, 0, + "AttributeTypeAssertion/assertedContexts", HFILL }}, + { &hf_x509if_assertedContexts_item, + { "Item", "x509if.assertedContexts_item", + FT_NONE, BASE_NONE, NULL, 0, + "AttributeTypeAssertion/assertedContexts/_item", HFILL }}, { &hf_x509if_rdnSequence, { "rdnSequence", "x509if.rdnSequence", FT_UINT32, BASE_DEC, NULL, 0, @@ -334,7 +2035,7 @@ void proto_register_x509if(void) { { "Item", "x509if.RelativeDistinguishedName_item", FT_NONE, BASE_NONE, NULL, 0, "RelativeDistinguishedName/_item", HFILL }}, - { &hf_x509if_value, + { &hf_x509if_value1, { "value", "x509if.value", FT_NONE, BASE_NONE, NULL, 0, "AttributeTypeAndDistinguishedValue/value", HFILL }}, @@ -342,6 +2043,442 @@ void proto_register_x509if(void) { { "primaryDistinguished", "x509if.primaryDistinguished", FT_BOOLEAN, 8, NULL, 0, "AttributeTypeAndDistinguishedValue/primaryDistinguished", HFILL }}, + { &hf_x509if_valuesWithContext1, + { "valuesWithContext", "x509if.valuesWithContext", + FT_UINT32, BASE_DEC, NULL, 0, + "AttributeTypeAndDistinguishedValue/valuesWithContext", HFILL }}, + { &hf_x509if_valuesWithContext_item1, + { "Item", "x509if.valuesWithContext_item", + FT_NONE, BASE_NONE, NULL, 0, + "AttributeTypeAndDistinguishedValue/valuesWithContext/_item", HFILL }}, + { &hf_x509if_distingAttrValue, + { "distingAttrValue", "x509if.distingAttrValue", + FT_NONE, BASE_NONE, NULL, 0, + "AttributeTypeAndDistinguishedValue/valuesWithContext/_item/distingAttrValue", HFILL }}, + { &hf_x509if_base, + { "base", "x509if.base", + FT_UINT32, BASE_DEC, NULL, 0, + "SubtreeSpecification/base", HFILL }}, + { &hf_x509if_specificExclusions, + { "specificExclusions", "x509if.specificExclusions", + FT_UINT32, BASE_DEC, NULL, 0, + "SubtreeSpecification/specificExclusions", HFILL }}, + { &hf_x509if_specificExclusions_item, + { "Item", "x509if.specificExclusions_item", + FT_UINT32, BASE_DEC, VALS(T_specificExclusions_item_vals), 0, + "SubtreeSpecification/specificExclusions/_item", HFILL }}, + { &hf_x509if_chopBefore, + { "chopBefore", "x509if.chopBefore", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_chopAfter, + { "chopAfter", "x509if.chopAfter", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_minimum, + { "minimum", "x509if.minimum", + FT_INT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_maximum, + { "maximum", "x509if.maximum", + FT_INT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_specificationFilter, + { "specificationFilter", "x509if.specificationFilter", + FT_UINT32, BASE_DEC, VALS(Refinement_vals), 0, + "SubtreeSpecification/specificationFilter", HFILL }}, + { &hf_x509if_specificExclusions1, + { "specificExclusions", "x509if.specificExclusions", + FT_UINT32, BASE_DEC, NULL, 0, + "ChopSpecification/specificExclusions", HFILL }}, + { &hf_x509if_specificExclusions_item1, + { "Item", "x509if.specificExclusions_item", + FT_UINT32, BASE_DEC, VALS(T_specificExclusions_item1_vals), 0, + "ChopSpecification/specificExclusions/_item", HFILL }}, + { &hf_x509if_item, + { "item", "x509if.item", + FT_STRING, BASE_NONE, NULL, 0, + "Refinement/item", HFILL }}, + { &hf_x509if_and, + { "and", "x509if.and", + FT_UINT32, BASE_DEC, NULL, 0, + "Refinement/and", HFILL }}, + { &hf_x509if_and_item, + { "Item", "x509if.and_item", + FT_UINT32, BASE_DEC, VALS(Refinement_vals), 0, + "Refinement/and/_item", HFILL }}, + { &hf_x509if_or, + { "or", "x509if.or", + FT_UINT32, BASE_DEC, NULL, 0, + "Refinement/or", HFILL }}, + { &hf_x509if_or_item, + { "Item", "x509if.or_item", + FT_UINT32, BASE_DEC, VALS(Refinement_vals), 0, + "Refinement/or/_item", HFILL }}, + { &hf_x509if_not, + { "not", "x509if.not", + FT_UINT32, BASE_DEC, VALS(Refinement_vals), 0, + "Refinement/not", HFILL }}, + { &hf_x509if_ruleIdentifier, + { "ruleIdentifier", "x509if.ruleIdentifier", + FT_INT32, BASE_DEC, NULL, 0, + "DITStructureRule/ruleIdentifier", HFILL }}, + { &hf_x509if_nameForm, + { "nameForm", "x509if.nameForm", + FT_STRING, BASE_NONE, NULL, 0, + "DITStructureRule/nameForm", HFILL }}, + { &hf_x509if_superiorStructureRules, + { "superiorStructureRules", "x509if.superiorStructureRules", + FT_UINT32, BASE_DEC, NULL, 0, + "DITStructureRule/superiorStructureRules", HFILL }}, + { &hf_x509if_superiorStructureRules_item, + { "Item", "x509if.superiorStructureRules_item", + FT_INT32, BASE_DEC, NULL, 0, + "DITStructureRule/superiorStructureRules/_item", HFILL }}, + { &hf_x509if_structuralObjectClass, + { "structuralObjectClass", "x509if.structuralObjectClass", + FT_STRING, BASE_NONE, NULL, 0, + "DITContentRule/structuralObjectClass", HFILL }}, + { &hf_x509if_auxiliaries, + { "auxiliaries", "x509if.auxiliaries", + FT_UINT32, BASE_DEC, NULL, 0, + "DITContentRule/auxiliaries", HFILL }}, + { &hf_x509if_auxiliaries_item, + { "Item", "x509if.auxiliaries_item", + FT_STRING, BASE_NONE, NULL, 0, + "DITContentRule/auxiliaries/_item", HFILL }}, + { &hf_x509if_mandatory, + { "mandatory", "x509if.mandatory", + FT_UINT32, BASE_DEC, NULL, 0, + "DITContentRule/mandatory", HFILL }}, + { &hf_x509if_mandatory_item, + { "Item", "x509if.mandatory_item", + FT_STRING, BASE_NONE, NULL, 0, + "DITContentRule/mandatory/_item", HFILL }}, + { &hf_x509if_optional, + { "optional", "x509if.optional", + FT_UINT32, BASE_DEC, NULL, 0, + "DITContentRule/optional", HFILL }}, + { &hf_x509if_optional_item, + { "Item", "x509if.optional_item", + FT_STRING, BASE_NONE, NULL, 0, + "DITContentRule/optional/_item", HFILL }}, + { &hf_x509if_precluded, + { "precluded", "x509if.precluded", + FT_UINT32, BASE_DEC, NULL, 0, + "DITContentRule/precluded", HFILL }}, + { &hf_x509if_precluded_item, + { "Item", "x509if.precluded_item", + FT_STRING, BASE_NONE, NULL, 0, + "DITContentRule/precluded/_item", HFILL }}, + { &hf_x509if_attributeType, + { "attributeType", "x509if.attributeType", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_mandatoryContexts, + { "mandatoryContexts", "x509if.mandatoryContexts", + FT_UINT32, BASE_DEC, NULL, 0, + "DITContextUse/mandatoryContexts", HFILL }}, + { &hf_x509if_mandatoryContexts_item, + { "Item", "x509if.mandatoryContexts_item", + FT_STRING, BASE_NONE, NULL, 0, + "DITContextUse/mandatoryContexts/_item", HFILL }}, + { &hf_x509if_optionalContexts, + { "optionalContexts", "x509if.optionalContexts", + FT_UINT32, BASE_DEC, NULL, 0, + "DITContextUse/optionalContexts", HFILL }}, + { &hf_x509if_optionalContexts_item, + { "Item", "x509if.optionalContexts_item", + FT_STRING, BASE_NONE, NULL, 0, + "DITContextUse/optionalContexts/_item", HFILL }}, + { &hf_x509if_id, + { "id", "x509if.id", + FT_INT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_dmdId, + { "dmdId", "x509if.dmdId", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_serviceType, + { "serviceType", "x509if.serviceType", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_userClass, + { "userClass", "x509if.userClass", + FT_INT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_inputAttributeTypes, + { "inputAttributeTypes", "x509if.inputAttributeTypes", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_inputAttributeTypes_item, + { "Item", "x509if.inputAttributeTypes_item", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_attributeCombination, + { "attributeCombination", "x509if.attributeCombination", + FT_UINT32, BASE_DEC, VALS(AttributeCombination_vals), 0, + "", HFILL }}, + { &hf_x509if_outputAttributeTypes, + { "outputAttributeTypes", "x509if.outputAttributeTypes", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_outputAttributeTypes_item, + { "Item", "x509if.outputAttributeTypes_item", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_defaultControls, + { "defaultControls", "x509if.defaultControls", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_mandatoryControls, + { "mandatoryControls", "x509if.mandatoryControls", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_searchRuleControls, + { "searchRuleControls", "x509if.searchRuleControls", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_relaxation, + { "relaxation", "x509if.relaxation", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_additionalControl, + { "additionalControl", "x509if.additionalControl", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_additionalControl_item, + { "Item", "x509if.additionalControl_item", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_allowedSubset, + { "allowedSubset", "x509if.allowedSubset", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_x509if_imposedSubset, + { "imposedSubset", "x509if.imposedSubset", + FT_UINT32, BASE_DEC, VALS(ImposedSubset_vals), 0, + "", HFILL }}, + { &hf_x509if_entryLimit, + { "entryLimit", "x509if.entryLimit", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_name, + { "name", "x509if.name", + FT_UINT32, BASE_DEC, NULL, 0, + "SearchRuleDescription/name", HFILL }}, + { &hf_x509if_name_item, + { "Item", "x509if.name_item", + FT_NONE, BASE_NONE, NULL, 0, + "SearchRuleDescription/name/_item", HFILL }}, + { &hf_x509if_description, + { "description", "x509if.description", + FT_NONE, BASE_NONE, NULL, 0, + "SearchRuleDescription/description", HFILL }}, + { &hf_x509if_obsolete, + { "obsolete", "x509if.obsolete", + FT_BOOLEAN, 8, NULL, 0, + "SearchRuleDescription/obsolete", HFILL }}, + { &hf_x509if_includeSubtypes, + { "includeSubtypes", "x509if.includeSubtypes", + FT_BOOLEAN, 8, NULL, 0, + "RequestAttribute/includeSubtypes", HFILL }}, + { &hf_x509if_selectedValues, + { "selectedValues", "x509if.selectedValues", + FT_UINT32, BASE_DEC, NULL, 0, + "RequestAttribute/selectedValues", HFILL }}, + { &hf_x509if_selectedValues_item, + { "Item", "x509if.selectedValues_item", + FT_NONE, BASE_NONE, NULL, 0, + "RequestAttribute/selectedValues/_item", HFILL }}, + { &hf_x509if_defaultValues, + { "defaultValues", "x509if.defaultValues", + FT_UINT32, BASE_DEC, NULL, 0, + "RequestAttribute/defaultValues", HFILL }}, + { &hf_x509if_defaultValues_item, + { "Item", "x509if.defaultValues_item", + FT_NONE, BASE_NONE, NULL, 0, + "RequestAttribute/defaultValues/_item", HFILL }}, + { &hf_x509if_entryType, + { "entryType", "x509if.entryType", + FT_STRING, BASE_NONE, NULL, 0, + "RequestAttribute/defaultValues/_item/entryType", HFILL }}, + { &hf_x509if_values1, + { "values", "x509if.values", + FT_UINT32, BASE_DEC, NULL, 0, + "RequestAttribute/defaultValues/_item/values", HFILL }}, + { &hf_x509if_values_item1, + { "Item", "x509if.values_item", + FT_NONE, BASE_NONE, NULL, 0, + "RequestAttribute/defaultValues/_item/values/_item", HFILL }}, + { &hf_x509if_contexts, + { "contexts", "x509if.contexts", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_contexts_item, + { "Item", "x509if.contexts_item", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_contextCombination, + { "contextCombination", "x509if.contextCombination", + FT_UINT32, BASE_DEC, VALS(ContextCombination_vals), 0, + "RequestAttribute/contextCombination", HFILL }}, + { &hf_x509if_matchingUse, + { "matchingUse", "x509if.matchingUse", + FT_UINT32, BASE_DEC, NULL, 0, + "RequestAttribute/matchingUse", HFILL }}, + { &hf_x509if_matchingUse_item, + { "Item", "x509if.matchingUse_item", + FT_NONE, BASE_NONE, NULL, 0, + "RequestAttribute/matchingUse/_item", HFILL }}, + { &hf_x509if_contextValue, + { "contextValue", "x509if.contextValue", + FT_UINT32, BASE_DEC, NULL, 0, + "ContextProfile/contextValue", HFILL }}, + { &hf_x509if_contextValue_item, + { "Item", "x509if.contextValue_item", + FT_NONE, BASE_NONE, NULL, 0, + "ContextProfile/contextValue/_item", HFILL }}, + { &hf_x509if_context, + { "context", "x509if.context", + FT_STRING, BASE_NONE, NULL, 0, + "ContextCombination/context", HFILL }}, + { &hf_x509if_and1, + { "and", "x509if.and", + FT_UINT32, BASE_DEC, NULL, 0, + "ContextCombination/and", HFILL }}, + { &hf_x509if_and_item1, + { "Item", "x509if.and_item", + FT_UINT32, BASE_DEC, VALS(ContextCombination_vals), 0, + "ContextCombination/and/_item", HFILL }}, + { &hf_x509if_or1, + { "or", "x509if.or", + FT_UINT32, BASE_DEC, NULL, 0, + "ContextCombination/or", HFILL }}, + { &hf_x509if_or_item1, + { "Item", "x509if.or_item", + FT_UINT32, BASE_DEC, VALS(ContextCombination_vals), 0, + "ContextCombination/or/_item", HFILL }}, + { &hf_x509if_not1, + { "not", "x509if.not", + FT_UINT32, BASE_DEC, VALS(ContextCombination_vals), 0, + "ContextCombination/not", HFILL }}, + { &hf_x509if_restrictionType, + { "restrictionType", "x509if.restrictionType", + FT_STRING, BASE_NONE, NULL, 0, + "MatchingUse/restrictionType", HFILL }}, + { &hf_x509if_restrictionValue, + { "restrictionValue", "x509if.restrictionValue", + FT_NONE, BASE_NONE, NULL, 0, + "MatchingUse/restrictionValue", HFILL }}, + { &hf_x509if_attribute, + { "attribute", "x509if.attribute", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_and2, + { "and", "x509if.and", + FT_UINT32, BASE_DEC, NULL, 0, + "AttributeCombination/and", HFILL }}, + { &hf_x509if_and_item2, + { "Item", "x509if.and_item", + FT_UINT32, BASE_DEC, VALS(AttributeCombination_vals), 0, + "AttributeCombination/and/_item", HFILL }}, + { &hf_x509if_or2, + { "or", "x509if.or", + FT_UINT32, BASE_DEC, NULL, 0, + "AttributeCombination/or", HFILL }}, + { &hf_x509if_or_item2, + { "Item", "x509if.or_item", + FT_UINT32, BASE_DEC, VALS(AttributeCombination_vals), 0, + "AttributeCombination/or/_item", HFILL }}, + { &hf_x509if_not2, + { "not", "x509if.not", + FT_UINT32, BASE_DEC, VALS(AttributeCombination_vals), 0, + "AttributeCombination/not", HFILL }}, + { &hf_x509if_outputValues, + { "outputValues", "x509if.outputValues", + FT_UINT32, BASE_DEC, VALS(T_outputValues_vals), 0, + "ResultAttribute/outputValues", HFILL }}, + { &hf_x509if_selectedValues1, + { "selectedValues", "x509if.selectedValues", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_x509if_selectedValues_item1, + { "Item", "x509if.selectedValues_item", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_matchedValuesOnly, + { "matchedValuesOnly", "x509if.matchedValuesOnly", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509if_default, + { "default", "x509if.default", + FT_INT32, BASE_DEC, NULL, 0, + "EntryLimit/default", HFILL }}, + { &hf_x509if_max, + { "max", "x509if.max", + FT_INT32, BASE_DEC, NULL, 0, + "EntryLimit/max", HFILL }}, + { &hf_x509if_basic, + { "basic", "x509if.basic", + FT_NONE, BASE_NONE, NULL, 0, + "RelaxationPolicy/basic", HFILL }}, + { &hf_x509if_tightenings, + { "tightenings", "x509if.tightenings", + FT_UINT32, BASE_DEC, NULL, 0, + "RelaxationPolicy/tightenings", HFILL }}, + { &hf_x509if_tightenings_item, + { "Item", "x509if.tightenings_item", + FT_NONE, BASE_NONE, NULL, 0, + "RelaxationPolicy/tightenings/_item", HFILL }}, + { &hf_x509if_relaxations, + { "relaxations", "x509if.relaxations", + FT_UINT32, BASE_DEC, NULL, 0, + "RelaxationPolicy/relaxations", HFILL }}, + { &hf_x509if_relaxations_item, + { "Item", "x509if.relaxations_item", + FT_NONE, BASE_NONE, NULL, 0, + "RelaxationPolicy/relaxations/_item", HFILL }}, + { &hf_x509if_maximum1, + { "maximum", "x509if.maximum", + FT_INT32, BASE_DEC, NULL, 0, + "RelaxationPolicy/maximum", HFILL }}, + { &hf_x509if_minimum1, + { "minimum", "x509if.minimum", + FT_INT32, BASE_DEC, NULL, 0, + "RelaxationPolicy/minimum", HFILL }}, + { &hf_x509if_mapping, + { "mapping", "x509if.mapping", + FT_UINT32, BASE_DEC, NULL, 0, + "MRMapping/mapping", HFILL }}, + { &hf_x509if_mapping_item, + { "Item", "x509if.mapping_item", + FT_NONE, BASE_NONE, NULL, 0, + "MRMapping/mapping/_item", HFILL }}, + { &hf_x509if_substitution, + { "substitution", "x509if.substitution", + FT_UINT32, BASE_DEC, NULL, 0, + "MRMapping/substitution", HFILL }}, + { &hf_x509if_substitution_item, + { "Item", "x509if.substitution_item", + FT_NONE, BASE_NONE, NULL, 0, + "MRMapping/substitution/_item", HFILL }}, + { &hf_x509if_mappingFunction, + { "mappingFunction", "x509if.mappingFunction", + FT_STRING, BASE_NONE, NULL, 0, + "Mapping/mappingFunction", HFILL }}, + { &hf_x509if_level, + { "level", "x509if.level", + FT_INT32, BASE_DEC, NULL, 0, + "Mapping/level", HFILL }}, + { &hf_x509if_oldMatchingRule, + { "oldMatchingRule", "x509if.oldMatchingRule", + FT_STRING, BASE_NONE, NULL, 0, + "MRSubstitution/oldMatchingRule", HFILL }}, + { &hf_x509if_newMatchingRule, + { "newMatchingRule", "x509if.newMatchingRule", + FT_STRING, BASE_NONE, NULL, 0, + "MRSubstitution/newMatchingRule", HFILL }}, { &hf_x509if_AllowedSubset_baseObject, { "baseObject", "x509if.baseObject", FT_BOOLEAN, 8, NULL, 0x80, @@ -366,11 +2503,71 @@ void proto_register_x509if(void) { &ett_x509if_Attribute, &ett_x509if_SET_OF_AttributeValue, + &ett_x509if_T_valuesWithContext, + &ett_x509if_T_valuesWithContext_item, + &ett_x509if_SET_OF_Context, + &ett_x509if_Context, + &ett_x509if_AttributeValueAssertion, + &ett_x509if_T_assertedContexts, + &ett_x509if_SET_OF_ContextAssertion, + &ett_x509if_ContextAssertion, + &ett_x509if_SET_OF_ContextValue, + &ett_x509if_AttributeTypeAssertion, + &ett_x509if_SEQUNCE_OF_ContextAssertion, &ett_x509if_Name, &ett_x509if_RDNSequence, &ett_x509if_RelativeDistinguishedName, &ett_x509if_AttributeTypeAndDistinguishedValue, + &ett_x509if_T_valuesWithContext1, + &ett_x509if_T_valuesWithContext_item1, + &ett_x509if_SubtreeSpecification, + &ett_x509if_T_specificExclusions, + &ett_x509if_T_specificExclusions_item, + &ett_x509if_ChopSpecification, + &ett_x509if_T_specificExclusions1, + &ett_x509if_T_specificExclusions_item1, + &ett_x509if_Refinement, + &ett_x509if_SET_OF_Refinement, + &ett_x509if_DITStructureRule, + &ett_x509if_SET_OF_RuleIdentifier, + &ett_x509if_DITContentRule, + &ett_x509if_SET_OF_OBJECT_IDENTIFIER, + &ett_x509if_SET_OF_AttributeId, + &ett_x509if_DITContextUse, + &ett_x509if_SearchRuleDescription, + &ett_x509if_SEQUNCE_OF_RequestAttribute, + &ett_x509if_SEQUNCE_OF_ResultAttribute, + &ett_x509if_SEQUNCE_OF_AttributeType, + &ett_x509if_SET_OF_DirectoryString, + &ett_x509if_SearchRule, + &ett_x509if_SearchRuleId, &ett_x509if_AllowedSubset, + &ett_x509if_RequestAttribute, + &ett_x509if_SEQUNCE_OF_SelectedValues, + &ett_x509if_T_defaultValues, + &ett_x509if_T_defaultValues_item, + &ett_x509if_SEQUNCE_OF_DefaultValueValues, + &ett_x509if_SEQUNCE_OF_ContextProfile, + &ett_x509if_SEQUNCE_OF_MatchingUse, + &ett_x509if_ContextProfile, + &ett_x509if_SEQUNCE_OF_AttributeValue, + &ett_x509if_ContextCombination, + &ett_x509if_SEQUNCE_OF_ContextCombination, + &ett_x509if_MatchingUse, + &ett_x509if_AttributeCombination, + &ett_x509if_SEQUNCE_OF_AttributeCombination, + &ett_x509if_ResultAttribute, + &ett_x509if_T_outputValues, + &ett_x509if_OutputValues, + &ett_x509if_ControlOptions, + &ett_x509if_EntryLimit, + &ett_x509if_RelaxationPolicy, + &ett_x509if_SEQUNCE_OF_MRMapping, + &ett_x509if_MRMapping, + &ett_x509if_SEQUNCE_OF_Mapping, + &ett_x509if_SEQUNCE_OF_MRSubstitution, + &ett_x509if_Mapping, + &ett_x509if_MRSubstitution, /*--- End of included file: packet-x509if-ettarr.c ---*/ diff --git a/epan/dissectors/packet-x509if.h b/epan/dissectors/packet-x509if.h index 2fccde2737..5c3af5b03b 100644 --- a/epan/dissectors/packet-x509if.h +++ b/epan/dissectors/packet-x509if.h @@ -36,12 +36,51 @@ /*--- Included file: packet-x509if-exp.h ---*/ extern const value_string Name_vals[]; +extern const value_string Refinement_vals[]; +extern const value_string AttributeUsage_vals[]; +extern const value_string ImposedSubset_vals[]; +extern const value_string ContextCombination_vals[]; +extern const value_string AttributeCombination_vals[]; +extern const value_string OutputValues_vals[]; int dissect_x509if_Attribute(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_x509if_AttributeType(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_Context(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_AttributeValueAssertion(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_ContextAssertion(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_AttributeTypeAssertion(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_x509if_Name(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_x509if_RDNSequence(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_x509if_DistinguishedName(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_x509if_RelativeDistinguishedName(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_AttributeTypeAndDistinguishedValue(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_SubtreeSpecification(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_LocalName(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_ChopSpecification(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_BaseDistance(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_Refinement(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_AttributeUsage(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_DITStructureRule(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_RuleIdentifier(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_DITContentRule(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_DITContextUse(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_SearchRuleDescription(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_SearchRule(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_SearchRuleId(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_AllowedSubset(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_ImposedSubset(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_RequestAttribute(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_ContextProfile(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_ContextCombination(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_MatchingUse(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_AttributeCombination(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_ResultAttribute(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_OutputValues(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_ControlOptions(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_EntryLimit(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_RelaxationPolicy(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_MRMapping(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_Mapping(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509if_MRSubstitution(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); /*--- End of included file: packet-x509if-exp.h ---*/ |