diff options
-rw-r--r-- | asn1/x509af/x509af.cnf | 2 | ||||
-rw-r--r-- | asn1/x509ce/x509ce.cnf | 2 | ||||
-rwxr-xr-x | asn1/x509if/Makefile | 2 | ||||
-rw-r--r-- | asn1/x509if/x509if.cnf | 2 | ||||
-rwxr-xr-x | asn1/x509sat/Makefile | 5 | ||||
-rw-r--r-- | asn1/x509sat/SelectedAttributeTypes.asn | 338 | ||||
-rw-r--r-- | asn1/x509sat/packet-x509sat-template.c | 5 | ||||
-rw-r--r-- | asn1/x509sat/x509sat-exp.cnf | 66 | ||||
-rw-r--r-- | asn1/x509sat/x509sat.cnf | 30 | ||||
-rw-r--r-- | asn1/x509sat/x509sat_exp.cnf | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-x509if.c | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-x509sat.c | 1775 | ||||
-rw-r--r-- | epan/dissectors/packet-x509sat.h | 36 |
13 files changed, 2056 insertions, 215 deletions
diff --git a/asn1/x509af/x509af.cnf b/asn1/x509af/x509af.cnf index 37a4d6d46d..2f8b2e2c5a 100644 --- a/asn1/x509af/x509af.cnf +++ b/asn1/x509af/x509af.cnf @@ -10,7 +10,7 @@ SelectedAttributeTypes x509sat #.INCLUDE ../x509ce/x509ce_exp.cnf #.INCLUDE ../x509if/x509if-exp.cnf -#.INCLUDE ../x509sat/x509sat_exp.cnf +#.INCLUDE ../x509sat/x509sat-exp.cnf #.EXPORTS AlgorithmIdentifier diff --git a/asn1/x509ce/x509ce.cnf b/asn1/x509ce/x509ce.cnf index 94c8a16ba0..c09509bbb3 100644 --- a/asn1/x509ce/x509ce.cnf +++ b/asn1/x509ce/x509ce.cnf @@ -10,7 +10,7 @@ SelectedAttributeTypes x509sat #.INCLUDE ../x509if/x509if-exp.cnf #.INCLUDE ../x509af/x509af_exp.cnf -#.INCLUDE ../x509sat/x509sat_exp.cnf +#.INCLUDE ../x509sat/x509sat-exp.cnf #.EXPORTS diff --git a/asn1/x509if/Makefile b/asn1/x509if/Makefile index 5149ca3352..089f432888 100755 --- a/asn1/x509if/Makefile +++ b/asn1/x509if/Makefile @@ -1,5 +1,5 @@ -../../epan/dissectors/packet-x509if.c : ../../tools/asn2eth.py InformationFramework.asn packet-x509if-template.c packet-x509if-template.h x509if.cnf ../x509sat/x509sat_exp.cnf +../../epan/dissectors/packet-x509if.c : ../../tools/asn2eth.py InformationFramework.asn packet-x509if-template.c packet-x509if-template.h x509if.cnf ../x509sat/x509sat-exp.cnf python ../../tools/asn2eth.py -X -b -k -e -p x509if -c x509if.cnf -s packet-x509if-template InformationFramework.asn cp packet-x509if.* ../../epan/dissectors diff --git a/asn1/x509if/x509if.cnf b/asn1/x509if/x509if.cnf index 83725ac54b..e421024bba 100644 --- a/asn1/x509if/x509if.cnf +++ b/asn1/x509if/x509if.cnf @@ -6,7 +6,7 @@ #.MODULE_IMPORT SelectedAttributeTypes x509sat -#.INCLUDE ../x509sat/x509sat_exp.cnf +#.INCLUDE ../x509sat/x509sat-exp.cnf #.EXPORTS AllowedSubset diff --git a/asn1/x509sat/Makefile b/asn1/x509sat/Makefile new file mode 100755 index 0000000000..f7d8a4c5ce --- /dev/null +++ b/asn1/x509sat/Makefile @@ -0,0 +1,5 @@ + +../../epan/dissectors/packet-x509sat.c : ../../tools/asn2eth.py SelectedAttributeTypes.asn packet-x509sat-template.c packet-x509sat-template.h x509sat.cnf ../x509if/x509if-exp.cnf + python ../../tools/asn2eth.py -X -b -k -e -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn + cp packet-x509sat.* ../../epan/dissectors + diff --git a/asn1/x509sat/SelectedAttributeTypes.asn b/asn1/x509sat/SelectedAttributeTypes.asn index f6afc89135..aba6a6278d 100644 --- a/asn1/x509sat/SelectedAttributeTypes.asn +++ b/asn1/x509sat/SelectedAttributeTypes.asn @@ -129,7 +129,7 @@ UniqueIdentifier ::= BIT STRING -- ID id-at-countryName -- } -CountryName ::= PrintableString(SIZE (2)) +CountryName ::= PrintableString -- ISO 3166 codes only -- -- @@ -217,19 +217,20 @@ CountryName ::= PrintableString(SIZE (2)) -- searchGuide ATTRIBUTE ::= {WITH SYNTAX Guide -- ID id-at-searchGuide -- } --- + +-- XXX Asn2eth bug it can not handle SET for BER, only for PER -- Guide ::= SET { --- objectClass [0] OBJECT-CLASS.&id OPTIONAL, +-- objectClass [0] OBJECT IDENTIFIER OPTIONAL, -- criteria [1] Criteria -- } --- --- Criteria ::= CHOICE { --- type [0] CriteriaItem, --- and [1] SET OF Criteria, --- or [2] SET OF Criteria, --- not [3] Criteria --- } --- + +Criteria ::= CHOICE { + type [0] CriteriaItem, + and [1] SET OF Criteria, + or [2] SET OF Criteria, + not [3] Criteria +} + CriteriaItem ::= CHOICE { equality [0] AttributeType, substrings [1] AttributeType, @@ -242,14 +243,13 @@ CriteriaItem ::= CHOICE { -- WITH SYNTAX EnhancedGuide -- ID id-at-enhancedSearchGuide -- } --- --- EnhancedGuide ::= SEQUENCE { --- objectClass [0] OBJECT-CLASS.&id, --- criteria [1] Criteria, --- subset --- [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} DEFAULT oneLevel --- } --- + +EnhancedGuide ::= SEQUENCE { + objectClass [0] OBJECT IDENTIFIER, + criteria [1] Criteria, + subset [2] INTEGER {baseObject(0), oneLevel(1), wholeSubtree(2)} OPTIONAL +} + -- businessCategory ATTRIBUTE ::= { -- WITH SYNTAX DirectoryString {ub-business-category} -- EQUALITY MATCHING RULE caseIgnoreMatch @@ -263,10 +263,9 @@ CriteriaItem ::= CHOICE { -- SUBSTRINGS MATCHING RULE caseIgnoreListSubstringsMatch -- ID id-at-postalAddress -- } --- --- PostalAddress ::= --- SEQUENCE SIZE (1..ub-postal-line) OF DirectoryString{ub-postal-string} --- + +PostalAddress ::= SEQUENCE OF DirectoryString + -- collectivePostalAddress ATTRIBUTE ::= { -- SUBTYPE OF postalAddress -- COLLECTIVE TRUE @@ -361,12 +360,12 @@ TelexNumber ::= SEQUENCE { -- SYNTAX SubstringAssertion -- ID id-mr-facsimileNumberSubstringsMatch -- } --- --- FacsimileTelephoneNumber ::= SEQUENCE { --- telephoneNumber TelephoneNumber, --- parameters G3FacsimileNonBasicParameters OPTIONAL --- } --- + +FacsimileTelephoneNumber ::= SEQUENCE { + telephoneNumber TelephoneNumber +-- parameters G3FacsimileNonBasicParameters OPTIONAL +} + -- collectiveFacsimileTelephoneNumber ATTRIBUTE ::= { -- SUBTYPE OF facsimileTelephoneNumber -- COLLECTIVE TRUE @@ -379,9 +378,9 @@ TelexNumber ::= SEQUENCE { -- SUBSTRINGS MATCHING RULE numericStringSubstringsMatch -- ID id-at-x121Address -- } --- --- X121Address ::= NumericString(SIZE (1..ub-x121-address)) --- + +X121Address ::= NumericString + -- String as defined by ITU-T Rec. X.121 -- internationalISDNNumber ATTRIBUTE ::= { -- WITH SYNTAX InternationalISDNNumber @@ -389,10 +388,9 @@ TelexNumber ::= SEQUENCE { -- SUBSTRINGS MATCHING RULE numericStringSubstringsMatch -- ID id-at-internationalISDNNumber -- } --- --- InternationalISDNNumber ::= --- NumericString(SIZE (1..ub-international-isdn-number)) --- + +InternationalISDNNumber ::= NumericString + -- String complying with ITU-T Rec. E.164 only -- collectiveInternationalISDNNumber ATTRIBUTE ::= { -- SUBTYPE OF internationalISDNNumber @@ -412,9 +410,9 @@ TelexNumber ::= SEQUENCE { -- SUBSTRINGS MATCHING RULE caseIgnoreSubstringsMatch -- ID id-at-destinationIndicator -- } --- --- DestinationIndicator ::= PrintableString(SIZE (1..ub-destination-indicator)) --- + +DestinationIndicator ::= PrintableString + -- communicationsService ATTRIBUTE ::= { -- WITH SYNTAX OBJECT IDENTIFIER -- EQUALITY MATCHING RULE objectIdentifierMatch @@ -434,13 +432,12 @@ TelexNumber ::= SEQUENCE { -- SINGLE VALUE TRUE -- ID id-at-preferredDeliveryMethod -- } --- --- PreferredDeliveryMethod ::= --- SEQUENCE OF --- INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2), --- telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5), --- g4-facsimile-delivery(6), ia5-terminal-delivery(7), --- videotex-delivery(8), telephone-delivery(9)} + +PreferredDeliveryMethod ::= SEQUENCE OF + INTEGER {any-delivery-method(0), mhs-delivery(1), physical-delivery(2), + telex-delivery(3), teletex-delivery(4), g3-facsimile-delivery(5), + g4-facsimile-delivery(6), ia5-terminal-delivery(7), + videotex-delivery(8), telephone-delivery(9)} -- -- presentationAddress ATTRIBUTE ::= { -- WITH SYNTAX PresentationAddress @@ -448,14 +445,14 @@ TelexNumber ::= SEQUENCE { -- SINGLE VALUE TRUE -- ID id-at-presentationAddress -- } --- --- PresentationAddress ::= SEQUENCE { --- pSelector [0] OCTET STRING OPTIONAL, --- sSelector [1] OCTET STRING OPTIONAL, --- tSelector [2] OCTET STRING OPTIONAL, --- nAddresses [3] SET SIZE (1..MAX) OF OCTET STRING --- } --- + +PresentationAddress ::= SEQUENCE { + pSelector [0] OCTET STRING OPTIONAL, + sSelector [1] OCTET STRING OPTIONAL, + tSelector [2] OCTET STRING OPTIONAL, + nAddresses [3] SET OF OCTET STRING +} + -- supportedApplicationContext ATTRIBUTE ::= { -- WITH SYNTAX OBJECT IDENTIFIER -- EQUALITY MATCHING RULE objectIdentifierMatch @@ -467,12 +464,12 @@ TelexNumber ::= SEQUENCE { -- EQUALITY MATCHING RULE protocolInformationMatch -- ID id-at-protocolInformation -- } --- --- ProtocolInformation ::= SEQUENCE { --- nAddress OCTET STRING, --- profiles SET OF OBJECT IDENTIFIER --- } --- + +ProtocolInformation ::= SEQUENCE { + nAddress OCTET STRING, + profiles SET OF OBJECT IDENTIFIER +} + -- distinguishedName ATTRIBUTE ::= { -- WITH SYNTAX DistinguishedName -- EQUALITY MATCHING RULE distinguishedNameMatch @@ -488,12 +485,12 @@ TelexNumber ::= SEQUENCE { -- EQUALITY MATCHING RULE uniqueMemberMatch -- ID id-at-uniqueMember -- } --- --- NameAndOptionalUID ::= SEQUENCE { --- dn DistinguishedName, --- uid UniqueIdentifier OPTIONAL --- } --- + +NameAndOptionalUID ::= SEQUENCE { + dn DistinguishedName, + uid UniqueIdentifier OPTIONAL +} + -- owner ATTRIBUTE ::= {SUBTYPE OF distinguishedName -- ID id-at-owner -- } @@ -582,12 +579,12 @@ TelexNumber ::= SEQUENCE { -- WITH SYNTAX MultipleMatchingLocalities -- ID id-not-multipleMatchingLocalities -- } --- --- MultipleMatchingLocalities ::= SEQUENCE { --- matchingRuleUsed MATCHING-RULE.&id OPTIONAL, --- attributeList SEQUENCE OF AttributeValueAssertion --- } --- + +MultipleMatchingLocalities ::= SEQUENCE { + matchingRuleUsed OBJECT IDENTIFIER OPTIONAL, + attributeList SEQUENCE OF AttributeValueAssertion +} + -- proposedRelaxation ATTRIBUTE ::= { -- WITH SYNTAX SEQUENCE OF MRMapping -- ID id-not-proposedRelaxation @@ -614,14 +611,14 @@ TelexNumber ::= SEQUENCE { -- SYNTAX SubstringAssertion -- ID id-mr-caseIgnoreSubstringsMatch -- } --- --- SubstringAssertion ::= --- SEQUENCE OF --- CHOICE {initial [0] DirectoryString{ub-match}, --- any [1] DirectoryString{ub-match}, --- final [2] DirectoryString{ub-match}, --- control Attribute --- } + +SubstringAssertion ::= SEQUENCE OF + CHOICE {initial [0] DirectoryString, + any [1] DirectoryString, + final [2] DirectoryString, + control Attribute + } + -- Used to specify interpretation of the following items -- -- at most one initial and one final component @@ -660,9 +657,9 @@ TelexNumber ::= SEQUENCE { -- SYNTAX CaseIgnoreListMatch -- ID id-mr-caseIgnoreListMatch -- } --- --- CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString{ub-match} --- + +CaseIgnoreListMatch ::= SEQUENCE OF DirectoryString + -- caseIgnoreListSubstringsMatch MATCHING-RULE ::= { -- SYNTAX SubstringAssertion -- ID id-mr-caseIgnoreListSubstringsMatch @@ -705,13 +702,12 @@ TelexNumber ::= SEQUENCE { -- SYNTAX OctetSubstringAssertion -- ID id-mr-octetStringSubstringsMatch -- } --- --- OctetSubstringAssertion ::= --- SEQUENCE OF --- CHOICE {initial [0] OCTET STRING, --- any [1] OCTET STRING, --- final [2] OCTET STRING} --- + +OctetSubstringAssertion ::= SEQUENCE OF + CHOICE {initial [0] OCTET STRING, + any [1] OCTET STRING, + final [2] OCTET STRING} + -- at most one initial and one final component -- telephoneNumberMatch MATCHING-RULE ::= { -- SYNTAX TelephoneNumber @@ -834,12 +830,12 @@ TelexNumber ::= SEQUENCE { -- -- ZONAL-MATCHING ::= -- MAPPING-BASED-MATCHING{ZonalSelect, TRUE, ZonalResult, zonalMatch.&id} --- --- ZonalSelect ::= SEQUENCE OF AttributeType --- --- ZonalResult ::= ENUMERATED { --- cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)} --- + +ZonalSelect ::= SEQUENCE OF AttributeType + +ZonalResult ::= ENUMERATED { + cannot-select-mapping(0), zero-mappings(2), multiple-mappings(3)} + -- zonalMatch MATCHING-RULE ::= { -- UNIQUE-MATCH-INDICATOR multipleMatchingLocalities.&id -- ID id-mr-zonalMatch @@ -850,8 +846,8 @@ TelexNumber ::= SEQUENCE { -- WITH SYNTAX LanguageContextSyntax -- ID id-avc-language -- } --- --- LanguageContextSyntax ::= PrintableString(SIZE (2..3)) + +LanguageContextSyntax ::= PrintableString -- ISO 639-2 codes only -- -- @@ -860,91 +856,75 @@ TelexNumber ::= SEQUENCE { -- ASSERTED AS TimeAssertion -- ID id-avc-temporal -- } --- --- TimeSpecification ::= SEQUENCE { --- time --- CHOICE {absolute --- SEQUENCE {startTime [0] GeneralizedTime OPTIONAL, --- endTime [1] GeneralizedTime OPTIONAL}, --- periodic SET OF Period}, --- notThisTime BOOLEAN DEFAULT FALSE, --- timeZone TimeZone OPTIONAL --- } --- --- Period ::= SEQUENCE { --- timesOfDay [0] SET SIZE (1..MAX) OF DayTimeBand OPTIONAL, --- days --- [1] CHOICE {intDay SET OF INTEGER, --- bitDay --- BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), --- thursday(4), friday(5), saturday(6)}, --- dayOf XDayOf} OPTIONAL, --- weeks --- [2] CHOICE {allWeeks NULL, --- intWeek SET OF INTEGER, --- bitWeek --- BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)} --- } OPTIONAL, --- months --- [3] CHOICE {allMonths NULL, --- intMonth SET OF INTEGER, --- bitMonth --- BIT STRING {january(0), february(1), march(2), april(3), --- may(4), june(5), july(6), august(7), --- september(8), october(9), november(10), --- december(11)}} OPTIONAL, --- years [4] SET OF INTEGER(1000..MAX) OPTIONAL --- } --- --- XDayOf ::= CHOICE { --- first [1] NamedDay, --- second [2] NamedDay, --- third [3] NamedDay, --- fourth [4] NamedDay, --- fifth [5] NamedDay --- } --- --- NamedDay ::= CHOICE { --- intNamedDays --- ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5), --- friday(6), saturday(7)}, --- bitNamedDays --- BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4), --- friday(5), saturday(6)} --- } --- --- DayTimeBand ::= SEQUENCE { --- startDayTime [0] DayTime DEFAULT {hour 0}, --- endDayTime [1] DayTime DEFAULT {hour 23, minute 59, second 59} --- } --- --- DayTime ::= SEQUENCE { --- hour [0] INTEGER(0..23), --- minute [1] INTEGER(0..59) DEFAULT 0, --- second [2] INTEGER(0..59) DEFAULT 0 --- } --- --- TimeZone ::= INTEGER(-12..12) --- --- TimeAssertion ::= CHOICE { --- now NULL, --- at GeneralizedTime, --- between --- SEQUENCE {startTime [0] GeneralizedTime, --- endTime [1] GeneralizedTime OPTIONAL, --- entirely BOOLEAN DEFAULT FALSE} --- } --- + +TimeSpecification ::= SEQUENCE { + time CHOICE {absolute SEQUENCE { + startTime [0] GeneralizedTime OPTIONAL, + endTime [1] GeneralizedTime OPTIONAL}, + periodic SET OF Period}, + notThisTime BOOLEAN OPTIONAL, + timeZone TimeZone OPTIONAL +} + +Period ::= SEQUENCE { + timesOfDay [0] SET OF DayTimeBand OPTIONAL, + days [1] CHOICE {intDay SET OF INTEGER, + bitDay BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4), friday(5), saturday(6)}, + dayOf XDayOf} OPTIONAL, + weeks [2] CHOICE {allWeeks NULL, + intWeek SET OF INTEGER, + bitWeek BIT STRING {week1(0), week2(1), week3(2), week4(3), week5(4)} + } OPTIONAL, + months [3] CHOICE {allMonths NULL, + intMonth SET OF INTEGER, + bitMonth BIT STRING {january(0), february(1), march(2), april(3), may(4), june(5), july(6), august(7), september(8), october(9), november(10), december(11)}} OPTIONAL, + years [4] SET OF INTEGER OPTIONAL +} + +XDayOf ::= CHOICE { + first [1] NamedDay, + second [2] NamedDay, + third [3] NamedDay, + fourth [4] NamedDay, + fifth [5] NamedDay +} + +NamedDay ::= CHOICE { + intNamedDays ENUMERATED {sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5), friday(6), saturday(7)}, + bitNamedDays BIT STRING {sunday(0), monday(1), tuesday(2), wednesday(3), thursday(4), friday(5), saturday(6)} +} + +DayTimeBand ::= SEQUENCE { + startDayTime [0] DayTime OPTIONAL, + endDayTime [1] DayTime OPTIONAL +} + +DayTime ::= SEQUENCE { + hour [0] INTEGER, + minute [1] INTEGER OPTIONAL, + second [2] INTEGER OPTIONAL +} + +TimeZone ::= INTEGER + +TimeAssertion ::= CHOICE { + now NULL, + at GeneralizedTime, + between SEQUENCE {startTime [0] GeneralizedTime, + endTime [1] GeneralizedTime OPTIONAL, + entirely BOOLEAN OPTIONAL} +} + -- localeContext CONTEXT ::= { -- WITH SYNTAX LocaleContextSyntax -- ID id-avc-locale -- } --- --- LocaleContextSyntax ::= CHOICE { --- localeID1 OBJECT IDENTIFIER, --- localeID2 DirectoryString{ub-localeContextSyntax} --- } --- + +LocaleContextSyntax ::= CHOICE { + localeID1 OBJECT IDENTIFIER, + localeID2 DirectoryString +} + -- Object identifier assignments - -- object identifiers assigned in other modules are shown in comments -- Attributes diff --git a/asn1/x509sat/packet-x509sat-template.c b/asn1/x509sat/packet-x509sat-template.c index df03729282..01f8446b4e 100644 --- a/asn1/x509sat/packet-x509sat-template.c +++ b/asn1/x509sat/packet-x509sat-template.c @@ -44,7 +44,6 @@ /* Initialize the protocol and registered fields */ int proto_x509sat = -1; -/*aaa*/ #include "packet-x509sat-hf.c" /* Initialize the subtree pointers */ @@ -52,14 +51,12 @@ int proto_x509sat = -1; #include "packet-x509sat-fn.c" -/*bbb*/ /*--- proto_register_x509sat ----------------------------------------------*/ void proto_register_x509sat(void) { /* List of fields */ static hf_register_info hf[] = { -/*ccc*/ #include "packet-x509sat-hfarr.c" }; @@ -81,8 +78,6 @@ void proto_register_x509sat(void) { /*--- proto_reg_handoff_x509sat -------------------------------------------*/ void proto_reg_handoff_x509sat(void) { #include "packet-x509sat-dis-tab.c" - -/*ddd*/ } diff --git a/asn1/x509sat/x509sat-exp.cnf b/asn1/x509sat/x509sat-exp.cnf new file mode 100644 index 0000000000..2cf5a05322 --- /dev/null +++ b/asn1/x509sat/x509sat-exp.cnf @@ -0,0 +1,66 @@ +#.IMPORT_TAG +DirectoryString BER_CLASS_UNI BER_UNI_TAG_PrintableString +UniqueIdentifier BER_CLASS_UNI BER_UNI_TAG_BITSTRING +CountryName BER_CLASS_UNI BER_UNI_TAG_PrintableString +Criteria BER_CLASS_CON -1/*choice*/ +EnhancedGuide BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +PostalAddress BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +FacsimileTelephoneNumber BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +X121Address BER_CLASS_UNI BER_UNI_TAG_NumericString +InternationalISDNNumber BER_CLASS_UNI BER_UNI_TAG_NumericString +DestinationIndicator BER_CLASS_UNI BER_UNI_TAG_PrintableString +PreferredDeliveryMethod BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +PresentationAddress BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ProtocolInformation BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +NameAndOptionalUID BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +MultipleMatchingLocalities BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +SubstringAssertion BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +CaseIgnoreListMatch BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +OctetSubstringAssertion BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ZonalSelect BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ZonalResult BER_CLASS_UNI BER_UNI_TAG_ENUMERATED +LanguageContextSyntax BER_CLASS_UNI BER_UNI_TAG_PrintableString +TimeSpecification BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Period BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +XDayOf BER_CLASS_CON -1/*choice*/ +NamedDay BER_CLASS_UNI -1/*choice*/ +DayTimeBand BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +DayTime BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +TimeZone BER_CLASS_UNI BER_UNI_TAG_INTEGER +TimeAssertion BER_CLASS_UNI -1/*choice*/ +LocaleContextSyntax BER_CLASS_UNI -1/*choice*/ +#.END + +#.TYPE_ATTR +DirectoryString TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +UniqueIdentifier TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +CountryName TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +Criteria TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(Criteria_vals) BITMASK = 0 +EnhancedGuide TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +PostalAddress TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +FacsimileTelephoneNumber TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +X121Address TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +InternationalISDNNumber TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +DestinationIndicator TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +PreferredDeliveryMethod TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +PresentationAddress TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +ProtocolInformation TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +NameAndOptionalUID TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +MultipleMatchingLocalities TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +SubstringAssertion TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +CaseIgnoreListMatch TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +OctetSubstringAssertion TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +ZonalSelect TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +ZonalResult TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(ZonalResult_vals) BITMASK = 0 +LanguageContextSyntax TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +TimeSpecification TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +Period TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +XDayOf TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(XDayOf_vals) BITMASK = 0 +NamedDay TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(NamedDay_vals) BITMASK = 0 +DayTimeBand TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +DayTime TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +TimeZone TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +TimeAssertion TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(TimeAssertion_vals) BITMASK = 0 +LocaleContextSyntax TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(LocaleContextSyntax_vals) BITMASK = 0 +#.END + diff --git a/asn1/x509sat/x509sat.cnf b/asn1/x509sat/x509sat.cnf index ec423cd1ce..b166aba850 100644 --- a/asn1/x509sat/x509sat.cnf +++ b/asn1/x509sat/x509sat.cnf @@ -6,9 +6,39 @@ #.MODULE_IMPORT InformationFramework x509if +#.INCLUDE ../x509if/x509if-exp.cnf + #.EXPORTS +CaseIgnoreListMatch +CountryName +Criteria +DayTime +DayTimeBand +DestinationIndicator DirectoryString +EnhancedGuide +FacsimileTelephoneNumber +InternationalISDNNumber +LanguageContextSyntax +LocaleContextSyntax +MultipleMatchingLocalities +NameAndOptionalUID +NamedDay +OctetSubstringAssertion +Period +PostalAddress +PreferredDeliveryMethod +PresentationAddress +ProtocolInformation +SubstringAssertion +TimeAssertion +TimeSpecification +TimeZone UniqueIdentifier +X121Address +XDayOf +ZonalResult +ZonalSelect #.REGISTER CountryName B "2.5.4.6" "id-at-countryName" diff --git a/asn1/x509sat/x509sat_exp.cnf b/asn1/x509sat/x509sat_exp.cnf deleted file mode 100644 index c404778617..0000000000 --- a/asn1/x509sat/x509sat_exp.cnf +++ /dev/null @@ -1,4 +0,0 @@ - -#.IMPORT_TAG -UniqueIdentifier BER_CLASS_UNI BER_UNI_TAG_BITSTRING -DirectoryString BER_CLASS_UNI BER_UNI_TAG_PrintableString diff --git a/epan/dissectors/packet-x509if.c b/epan/dissectors/packet-x509if.c index 347ec54539..79ea7c3c8b 100644 --- a/epan/dissectors/packet-x509if.c +++ b/epan/dissectors/packet-x509if.c @@ -2269,11 +2269,11 @@ void proto_register_x509if(void) { "SearchRuleDescription/name", HFILL }}, { &hf_x509if_name_item, { "Item", "x509if.name_item", - FT_NONE, BASE_NONE, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "SearchRuleDescription/name/_item", HFILL }}, { &hf_x509if_description, { "description", "x509if.description", - FT_NONE, BASE_NONE, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "SearchRuleDescription/description", HFILL }}, { &hf_x509if_obsolete, { "obsolete", "x509if.obsolete", diff --git a/epan/dissectors/packet-x509sat.c b/epan/dissectors/packet-x509sat.c index 43a2009591..14d6d4ee1a 100644 --- a/epan/dissectors/packet-x509sat.c +++ b/epan/dissectors/packet-x509sat.c @@ -1,7 +1,7 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ /* ./packet-x509sat.c */ -/* ../../tools/asn2eth.py -X -b -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */ +/* ../../tools/asn2eth.py -X -b -k -e -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */ /* Input file: packet-x509sat-template.c */ @@ -9,7 +9,7 @@ /* packet-x509sat.c * Routines for X.509 Selected Attribute Types packet dissection * - * $Id: packet-x509sat-template.c 12545 2004-11-20 05:58:13Z sahlberg $ + * $Id: packet-x509sat-template.c 12546 2004-11-20 06:54:45Z sahlberg $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -51,7 +51,6 @@ /* Initialize the protocol and registered fields */ int proto_x509sat = -1; -/*aaa*/ /*--- Included file: packet-x509sat-hf.c ---*/ @@ -59,14 +58,127 @@ static int hf_x509sat_DirectoryString_PDU = -1; /* DirectoryString */ static int hf_x509sat_CountryName_PDU = -1; /* CountryName */ static int hf_x509sat_TelephoneNumber_PDU = -1; /* TelephoneNumber */ static int hf_x509sat_TelexNumber_PDU = -1; /* TelexNumber */ +static int hf_x509sat_type = -1; /* CriteriaItem */ +static int hf_x509sat_and = -1; /* SET_OF_Criteria */ +static int hf_x509sat_and_item = -1; /* Criteria */ +static int hf_x509sat_or = -1; /* SET_OF_Criteria */ +static int hf_x509sat_or_item = -1; /* Criteria */ +static int hf_x509sat_not = -1; /* Criteria */ static int hf_x509sat_equality = -1; /* AttributeType */ static int hf_x509sat_substrings = -1; /* AttributeType */ static int hf_x509sat_greaterOrEqual = -1; /* AttributeType */ static int hf_x509sat_lessOrEqual = -1; /* AttributeType */ static int hf_x509sat_approximateMatch = -1; /* AttributeType */ +static int hf_x509sat_objectClass = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509sat_criteria = -1; /* Criteria */ +static int hf_x509sat_subset = -1; /* T_subset */ +static int hf_x509sat_PostalAddress_item = -1; /* DirectoryString */ static int hf_x509sat_telexNumber = -1; /* PrintableString */ static int hf_x509sat_countryCode = -1; /* PrintableString */ static int hf_x509sat_answerback = -1; /* PrintableString */ +static int hf_x509sat_telephoneNumber = -1; /* TelephoneNumber */ +static int hf_x509sat_PreferredDeliveryMethod_item = -1; /* PreferredDeliveryMethod_item */ +static int hf_x509sat_pSelector = -1; /* OCTET_STRING */ +static int hf_x509sat_sSelector = -1; /* OCTET_STRING */ +static int hf_x509sat_tSelector = -1; /* OCTET_STRING */ +static int hf_x509sat_nAddresses = -1; /* SET_OF_OCTET_STRING */ +static int hf_x509sat_nAddresses_item = -1; /* OCTET_STRING */ +static int hf_x509sat_nAddress = -1; /* OCTET_STRING */ +static int hf_x509sat_profiles = -1; /* SET_OF_OBJECT_IDENTIFIER */ +static int hf_x509sat_profiles_item = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509sat_dn = -1; /* DistinguishedName */ +static int hf_x509sat_uid = -1; /* UniqueIdentifier */ +static int hf_x509sat_matchingRuleUsed = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509sat_attributeList = -1; /* SEQUNCE_OF_AttributeValueAssertion */ +static int hf_x509sat_attributeList_item = -1; /* AttributeValueAssertion */ +static int hf_x509sat_SubstringAssertion_item = -1; /* SubstringAssertion_item */ +static int hf_x509sat_initial = -1; /* DirectoryString */ +static int hf_x509sat_any = -1; /* DirectoryString */ +static int hf_x509sat_final = -1; /* DirectoryString */ +static int hf_x509sat_control = -1; /* Attribute */ +static int hf_x509sat_CaseIgnoreListMatch_item = -1; /* DirectoryString */ +static int hf_x509sat_OctetSubstringAssertion_item = -1; /* OctetSubstringAssertion_item */ +static int hf_x509sat_initial1 = -1; /* OCTET_STRING */ +static int hf_x509sat_any1 = -1; /* OCTET_STRING */ +static int hf_x509sat_final1 = -1; /* OCTET_STRING */ +static int hf_x509sat_ZonalSelect_item = -1; /* AttributeType */ +static int hf_x509sat_time = -1; /* T_time */ +static int hf_x509sat_absolute = -1; /* T_absolute */ +static int hf_x509sat_startTime = -1; /* GeneralizedTime */ +static int hf_x509sat_endTime = -1; /* GeneralizedTime */ +static int hf_x509sat_periodic = -1; /* SET_OF_Period */ +static int hf_x509sat_periodic_item = -1; /* Period */ +static int hf_x509sat_notThisTime = -1; /* BOOLEAN */ +static int hf_x509sat_timeZone = -1; /* TimeZone */ +static int hf_x509sat_timesOfDay = -1; /* SET_OF_DayTimeBand */ +static int hf_x509sat_timesOfDay_item = -1; /* DayTimeBand */ +static int hf_x509sat_days = -1; /* T_days */ +static int hf_x509sat_intDay = -1; /* SET_OF_INTEGER */ +static int hf_x509sat_intDay_item = -1; /* INTEGER */ +static int hf_x509sat_bitDay = -1; /* T_bitDay */ +static int hf_x509sat_dayOf = -1; /* XDayOf */ +static int hf_x509sat_weeks = -1; /* T_weeks */ +static int hf_x509sat_allWeeks = -1; /* NULL */ +static int hf_x509sat_intWeek = -1; /* SET_OF_INTEGER */ +static int hf_x509sat_intWeek_item = -1; /* INTEGER */ +static int hf_x509sat_bitWeek = -1; /* T_bitWeek */ +static int hf_x509sat_months = -1; /* T_months */ +static int hf_x509sat_allMonths = -1; /* NULL */ +static int hf_x509sat_intMonth = -1; /* SET_OF_INTEGER */ +static int hf_x509sat_intMonth_item = -1; /* INTEGER */ +static int hf_x509sat_bitMonth = -1; /* T_bitMonth */ +static int hf_x509sat_years = -1; /* SET_OF_INTEGER */ +static int hf_x509sat_years_item = -1; /* INTEGER */ +static int hf_x509sat_first = -1; /* NamedDay */ +static int hf_x509sat_second = -1; /* NamedDay */ +static int hf_x509sat_third = -1; /* NamedDay */ +static int hf_x509sat_fourth = -1; /* NamedDay */ +static int hf_x509sat_fifth = -1; /* NamedDay */ +static int hf_x509sat_intNamedDays = -1; /* T_intNamedDays */ +static int hf_x509sat_bitNamedDays = -1; /* T_bitNamedDays */ +static int hf_x509sat_startDayTime = -1; /* DayTime */ +static int hf_x509sat_endDayTime = -1; /* DayTime */ +static int hf_x509sat_hour = -1; /* INTEGER */ +static int hf_x509sat_minute = -1; /* INTEGER */ +static int hf_x509sat_second1 = -1; /* INTEGER */ +static int hf_x509sat_now = -1; /* NULL */ +static int hf_x509sat_at = -1; /* GeneralizedTime */ +static int hf_x509sat_between = -1; /* T_between */ +static int hf_x509sat_entirely = -1; /* BOOLEAN */ +static int hf_x509sat_localeID1 = -1; /* OBJECT_IDENTIFIER */ +static int hf_x509sat_localeID2 = -1; /* DirectoryString */ +/* named bits */ +static int hf_x509sat_T_bitDay_sunday = -1; +static int hf_x509sat_T_bitDay_monday = -1; +static int hf_x509sat_T_bitDay_tuesday = -1; +static int hf_x509sat_T_bitDay_wednesday = -1; +static int hf_x509sat_T_bitDay_thursday = -1; +static int hf_x509sat_T_bitDay_friday = -1; +static int hf_x509sat_T_bitDay_saturday = -1; +static int hf_x509sat_T_bitWeek_week1 = -1; +static int hf_x509sat_T_bitWeek_week2 = -1; +static int hf_x509sat_T_bitWeek_week3 = -1; +static int hf_x509sat_T_bitWeek_week4 = -1; +static int hf_x509sat_T_bitWeek_week5 = -1; +static int hf_x509sat_T_bitMonth_january = -1; +static int hf_x509sat_T_bitMonth_february = -1; +static int hf_x509sat_T_bitMonth_march = -1; +static int hf_x509sat_T_bitMonth_april = -1; +static int hf_x509sat_T_bitMonth_may = -1; +static int hf_x509sat_T_bitMonth_june = -1; +static int hf_x509sat_T_bitMonth_july = -1; +static int hf_x509sat_T_bitMonth_august = -1; +static int hf_x509sat_T_bitMonth_september = -1; +static int hf_x509sat_T_bitMonth_october = -1; +static int hf_x509sat_T_bitMonth_november = -1; +static int hf_x509sat_T_bitMonth_december = -1; +static int hf_x509sat_T_bitNamedDays_sunday = -1; +static int hf_x509sat_T_bitNamedDays_monday = -1; +static int hf_x509sat_T_bitNamedDays_tuesday = -1; +static int hf_x509sat_T_bitNamedDays_wednesday = -1; +static int hf_x509sat_T_bitNamedDays_thursday = -1; +static int hf_x509sat_T_bitNamedDays_friday = -1; +static int hf_x509sat_T_bitNamedDays_saturday = -1; /*--- End of included file: packet-x509sat-hf.c ---*/ @@ -75,8 +187,48 @@ static int hf_x509sat_answerback = -1; /* PrintableString */ /*--- Included file: packet-x509sat-ett.c ---*/ +static gint ett_x509sat_Criteria = -1; +static gint ett_x509sat_SET_OF_Criteria = -1; static gint ett_x509sat_CriteriaItem = -1; +static gint ett_x509sat_EnhancedGuide = -1; +static gint ett_x509sat_PostalAddress = -1; static gint ett_x509sat_TelexNumber = -1; +static gint ett_x509sat_FacsimileTelephoneNumber = -1; +static gint ett_x509sat_PreferredDeliveryMethod = -1; +static gint ett_x509sat_PresentationAddress = -1; +static gint ett_x509sat_SET_OF_OCTET_STRING = -1; +static gint ett_x509sat_ProtocolInformation = -1; +static gint ett_x509sat_SET_OF_OBJECT_IDENTIFIER = -1; +static gint ett_x509sat_NameAndOptionalUID = -1; +static gint ett_x509sat_MultipleMatchingLocalities = -1; +static gint ett_x509sat_SEQUNCE_OF_AttributeValueAssertion = -1; +static gint ett_x509sat_SubstringAssertion = -1; +static gint ett_x509sat_SubstringAssertion_item = -1; +static gint ett_x509sat_CaseIgnoreListMatch = -1; +static gint ett_x509sat_OctetSubstringAssertion = -1; +static gint ett_x509sat_OctetSubstringAssertion_item = -1; +static gint ett_x509sat_ZonalSelect = -1; +static gint ett_x509sat_TimeSpecification = -1; +static gint ett_x509sat_T_time = -1; +static gint ett_x509sat_T_absolute = -1; +static gint ett_x509sat_SET_OF_Period = -1; +static gint ett_x509sat_Period = -1; +static gint ett_x509sat_SET_OF_DayTimeBand = -1; +static gint ett_x509sat_T_days = -1; +static gint ett_x509sat_SET_OF_INTEGER = -1; +static gint ett_x509sat_T_bitDay = -1; +static gint ett_x509sat_T_weeks = -1; +static gint ett_x509sat_T_bitWeek = -1; +static gint ett_x509sat_T_months = -1; +static gint ett_x509sat_T_bitMonth = -1; +static gint ett_x509sat_XDayOf = -1; +static gint ett_x509sat_NamedDay = -1; +static gint ett_x509sat_T_bitNamedDays = -1; +static gint ett_x509sat_DayTimeBand = -1; +static gint ett_x509sat_DayTime = -1; +static gint ett_x509sat_TimeAssertion = -1; +static gint ett_x509sat_T_between = -1; +static gint ett_x509sat_LocaleContextSyntax = -1; /*--- End of included file: packet-x509sat-ett.c ---*/ @@ -84,6 +236,26 @@ static gint ett_x509sat_TelexNumber = -1; /*--- Included file: packet-x509sat-fn.c ---*/ +/*--- Cyclic dependencies ---*/ + +/* Criteria -> Criteria/and -> Criteria */ +/* Criteria -> Criteria */ +int dissect_x509sat_Criteria(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); + +static int dissect_and_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_Criteria(FALSE, tvb, offset, pinfo, tree, hf_x509sat_and_item); +} +static int dissect_or_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_Criteria(FALSE, tvb, offset, pinfo, tree, hf_x509sat_or_item); +} +static int dissect_not(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_Criteria(FALSE, tvb, offset, pinfo, tree, hf_x509sat_not); +} +static int dissect_criteria(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_Criteria(FALSE, tvb, offset, pinfo, tree, hf_x509sat_criteria); +} + + /*--- Fields for imported types ---*/ static int dissect_equality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { @@ -101,29 +273,62 @@ static int dissect_lessOrEqual(packet_info *pinfo, proto_tree *tree, tvbuff_t *t static int dissect_approximateMatch(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509sat_approximateMatch); } +static int dissect_dn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_DistinguishedName(FALSE, tvb, offset, pinfo, tree, hf_x509sat_dn); +} +static int dissect_attributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_x509sat_attributeList_item); +} +static int dissect_control(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_Attribute(FALSE, tvb, offset, pinfo, tree, hf_x509sat_control); +} +static int dissect_ZonalSelect_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509if_AttributeType(FALSE, tvb, offset, pinfo, tree, hf_x509sat_ZonalSelect_item); +} int -dissect_x509sat_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { +dissect_x509sat_DirectoryString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } +static int dissect_PostalAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_PostalAddress_item); +} +static int dissect_initial(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_initial); +} +static int dissect_any(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_any); +} +static int dissect_final(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_final); +} +static int dissect_CaseIgnoreListMatch_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_CaseIgnoreListMatch_item); +} +static int dissect_localeID2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DirectoryString(FALSE, tvb, offset, pinfo, tree, hf_x509sat_localeID2); +} int -dissect_x509sat_UniqueIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { +dissect_x509sat_UniqueIdentifier(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, NULL, hf_index, -1, NULL); return offset; } +static int dissect_uid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_UniqueIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x509sat_uid); +} -static int -dissect_x509sat_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { +int +dissect_x509sat_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, pinfo, tree, tvb, offset, hf_index, NULL); @@ -151,26 +356,142 @@ static const ber_choice CriteriaItem_choice[] = { }; static int -dissect_x509sat_CriteriaItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { +dissect_x509sat_CriteriaItem(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, CriteriaItem_choice, hf_index, ett_x509sat_CriteriaItem); return offset; } +static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_CriteriaItem(FALSE, tvb, offset, pinfo, tree, hf_x509sat_type); +} + +static const ber_sequence SET_OF_Criteria_set_of[1] = { + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_and_item }, +}; + +static int +dissect_x509sat_SET_OF_Criteria(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_Criteria_set_of, hf_index, ett_x509sat_SET_OF_Criteria); + + return offset; +} +static int dissect_and(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_Criteria(FALSE, tvb, offset, pinfo, tree, hf_x509sat_and); +} +static int dissect_or(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_Criteria(FALSE, tvb, offset, pinfo, tree, hf_x509sat_or); +} + + +const value_string Criteria_vals[] = { + { 0, "type" }, + { 1, "and" }, + { 2, "or" }, + { 3, "not" }, + { 0, NULL } +}; + +static const ber_choice Criteria_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_type }, + { 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_x509sat_Criteria(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, + Criteria_choice, hf_index, ett_x509sat_Criteria); + + return offset; +} + + +static int +dissect_x509sat_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_objectClass(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_objectClass); +} +static int dissect_profiles_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_profiles_item); +} +static int dissect_matchingRuleUsed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_matchingRuleUsed); +} +static int dissect_localeID1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_localeID1); +} + + +static const value_string T_subset_vals[] = { + { 0, "baseObject" }, + { 1, "oneLevel" }, + { 2, "wholeSubtree" }, + { 0, NULL } +}; static int -dissect_x509sat_TelephoneNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { +dissect_x509sat_T_subset(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_subset(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_subset(FALSE, tvb, offset, pinfo, tree, hf_x509sat_subset); +} + +static const ber_sequence EnhancedGuide_sequence[] = { + { BER_CLASS_CON, 0, 0, dissect_objectClass }, + { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_criteria }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_subset }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_EnhancedGuide(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, + EnhancedGuide_sequence, hf_index, ett_x509sat_EnhancedGuide); + + return offset; +} + +static const ber_sequence PostalAddress_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_PostalAddress_item }, +}; + +int +dissect_x509sat_PostalAddress(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, + PostalAddress_sequence_of, hf_index, ett_x509sat_PostalAddress); + + return offset; +} + + +static int +dissect_x509sat_TelephoneNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } +static int dissect_telephoneNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_TelephoneNumber(FALSE, tvb, offset, pinfo, tree, hf_x509sat_telephoneNumber); +} static int -dissect_x509sat_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { +dissect_x509sat_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, pinfo, tree, tvb, offset, hf_index, NULL); @@ -195,13 +516,943 @@ static const ber_sequence TelexNumber_sequence[] = { }; static int -dissect_x509sat_TelexNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) { +dissect_x509sat_TelexNumber(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, TelexNumber_sequence, hf_index, ett_x509sat_TelexNumber); return offset; } +static const ber_sequence FacsimileTelephoneNumber_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_telephoneNumber }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_FacsimileTelephoneNumber(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, + FacsimileTelephoneNumber_sequence, hf_index, ett_x509sat_FacsimileTelephoneNumber); + + return offset; +} + + +int +dissect_x509sat_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +int +dissect_x509sat_InternationalISDNNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +int +dissect_x509sat_DestinationIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static const value_string PreferredDeliveryMethod_item_vals[] = { + { 0, "any-delivery-method" }, + { 1, "mhs-delivery" }, + { 2, "physical-delivery" }, + { 3, "telex-delivery" }, + { 4, "teletex-delivery" }, + { 5, "g3-facsimile-delivery" }, + { 6, "g4-facsimile-delivery" }, + { 7, "ia5-terminal-delivery" }, + { 8, "videotex-delivery" }, + { 9, "telephone-delivery" }, + { 0, NULL } +}; + + +static int +dissect_x509sat_PreferredDeliveryMethod_item(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_PreferredDeliveryMethod_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_PreferredDeliveryMethod_item(FALSE, tvb, offset, pinfo, tree, hf_x509sat_PreferredDeliveryMethod_item); +} + +static const ber_sequence PreferredDeliveryMethod_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_PreferredDeliveryMethod_item }, +}; + +int +dissect_x509sat_PreferredDeliveryMethod(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, + PreferredDeliveryMethod_sequence_of, hf_index, ett_x509sat_PreferredDeliveryMethod); + + return offset; +} + + +static int +dissect_x509sat_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_pSelector(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_pSelector); +} +static int dissect_sSelector(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_sSelector); +} +static int dissect_tSelector(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_tSelector); +} +static int dissect_nAddresses_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_nAddresses_item); +} +static int dissect_nAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_nAddress); +} +static int dissect_initial1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_initial1); +} +static int dissect_any1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_any1); +} +static int dissect_final1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_final1); +} + +static const ber_sequence SET_OF_OCTET_STRING_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_nAddresses_item }, +}; + +static int +dissect_x509sat_SET_OF_OCTET_STRING(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_OCTET_STRING_set_of, hf_index, ett_x509sat_SET_OF_OCTET_STRING); + + return offset; +} +static int dissect_nAddresses(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_x509sat_nAddresses); +} + +static const ber_sequence PresentationAddress_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_pSelector }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_sSelector }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_tSelector }, + { BER_CLASS_CON, 3, 0, dissect_nAddresses }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_PresentationAddress(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, + PresentationAddress_sequence, hf_index, ett_x509sat_PresentationAddress); + + return offset; +} + +static const ber_sequence SET_OF_OBJECT_IDENTIFIER_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_profiles_item }, +}; + +static int +dissect_x509sat_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_x509sat_SET_OF_OBJECT_IDENTIFIER); + + return offset; +} +static int dissect_profiles(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_profiles); +} + +static const ber_sequence ProtocolInformation_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_nAddress }, + { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_profiles }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_ProtocolInformation(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, + ProtocolInformation_sequence, hf_index, ett_x509sat_ProtocolInformation); + + return offset; +} + +static const ber_sequence NameAndOptionalUID_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_dn }, + { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_uid }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_NameAndOptionalUID(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, + NameAndOptionalUID_sequence, hf_index, ett_x509sat_NameAndOptionalUID); + + return offset; +} + +static const ber_sequence SEQUNCE_OF_AttributeValueAssertion_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList_item }, +}; + +static int +dissect_x509sat_SEQUNCE_OF_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_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUNCE_OF_AttributeValueAssertion_sequence_of, hf_index, ett_x509sat_SEQUNCE_OF_AttributeValueAssertion); + + return offset; +} +static int dissect_attributeList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SEQUNCE_OF_AttributeValueAssertion(FALSE, tvb, offset, pinfo, tree, hf_x509sat_attributeList); +} + +static const ber_sequence MultipleMatchingLocalities_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_matchingRuleUsed }, + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_attributeList }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_MultipleMatchingLocalities(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, + MultipleMatchingLocalities_sequence, hf_index, ett_x509sat_MultipleMatchingLocalities); + + return offset; +} + + +static const value_string SubstringAssertion_item_vals[] = { + { 0, "initial" }, + { 1, "any" }, + { 2, "final" }, + { 3, "control" }, + { 0, NULL } +}; + +static const ber_choice SubstringAssertion_item_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_initial }, + { 1, BER_CLASS_CON, 1, 0, dissect_any }, + { 2, BER_CLASS_CON, 2, 0, dissect_final }, + { 3, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_control }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_SubstringAssertion_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, + SubstringAssertion_item_choice, hf_index, ett_x509sat_SubstringAssertion_item); + + return offset; +} +static int dissect_SubstringAssertion_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SubstringAssertion_item(FALSE, tvb, offset, pinfo, tree, hf_x509sat_SubstringAssertion_item); +} + +static const ber_sequence SubstringAssertion_sequence_of[1] = { + { -1/*choice*/ , -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_SubstringAssertion_item }, +}; + +int +dissect_x509sat_SubstringAssertion(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, + SubstringAssertion_sequence_of, hf_index, ett_x509sat_SubstringAssertion); + + return offset; +} + +static const ber_sequence CaseIgnoreListMatch_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_CaseIgnoreListMatch_item }, +}; + +int +dissect_x509sat_CaseIgnoreListMatch(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, + CaseIgnoreListMatch_sequence_of, hf_index, ett_x509sat_CaseIgnoreListMatch); + + return offset; +} + + +static const value_string OctetSubstringAssertion_item_vals[] = { + { 0, "initial" }, + { 1, "any" }, + { 2, "final" }, + { 0, NULL } +}; + +static const ber_choice OctetSubstringAssertion_item_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_initial1 }, + { 1, BER_CLASS_CON, 1, 0, dissect_any1 }, + { 2, BER_CLASS_CON, 2, 0, dissect_final1 }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_OctetSubstringAssertion_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, + OctetSubstringAssertion_item_choice, hf_index, ett_x509sat_OctetSubstringAssertion_item); + + return offset; +} +static int dissect_OctetSubstringAssertion_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_OctetSubstringAssertion_item(FALSE, tvb, offset, pinfo, tree, hf_x509sat_OctetSubstringAssertion_item); +} + +static const ber_sequence OctetSubstringAssertion_sequence_of[1] = { + { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_OctetSubstringAssertion_item }, +}; + +int +dissect_x509sat_OctetSubstringAssertion(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, + OctetSubstringAssertion_sequence_of, hf_index, ett_x509sat_OctetSubstringAssertion); + + return offset; +} + +static const ber_sequence ZonalSelect_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ZonalSelect_item }, +}; + +int +dissect_x509sat_ZonalSelect(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, + ZonalSelect_sequence_of, hf_index, ett_x509sat_ZonalSelect); + + return offset; +} + + +const value_string ZonalResult_vals[] = { + { 0, "cannot-select-mapping" }, + { 2, "zero-mappings" }, + { 3, "multiple-mappings" }, + { 0, NULL } +}; + + +int +dissect_x509sat_ZonalResult(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_x509sat_LanguageContextSyntax(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, + pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + +static int +dissect_x509sat_GeneralizedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_generalized_time(pinfo, tree, tvb, offset, hf_index); + + return offset; +} +static int dissect_startTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509sat_startTime); +} +static int dissect_endTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509sat_endTime); +} +static int dissect_at(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_GeneralizedTime(FALSE, tvb, offset, pinfo, tree, hf_x509sat_at); +} + +static const ber_sequence T_absolute_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_startTime }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_endTime }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_T_absolute(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_absolute_sequence, hf_index, ett_x509sat_T_absolute); + + return offset; +} +static int dissect_absolute(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_absolute(FALSE, tvb, offset, pinfo, tree, hf_x509sat_absolute); +} + + + +static int +dissect_x509sat_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_intDay_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_intDay_item); +} +static int dissect_intWeek_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_intWeek_item); +} +static int dissect_intMonth_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_intMonth_item); +} +static int dissect_years_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_years_item); +} +static int dissect_hour(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_hour); +} +static int dissect_minute(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_minute); +} +static int dissect_second1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_second1); +} + +static const ber_sequence DayTime_sequence[] = { + { BER_CLASS_CON, 0, 0, dissect_hour }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_minute }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_second1 }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_DayTime(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, + DayTime_sequence, hf_index, ett_x509sat_DayTime); + + return offset; +} +static int dissect_startDayTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DayTime(FALSE, tvb, offset, pinfo, tree, hf_x509sat_startDayTime); +} +static int dissect_endDayTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DayTime(FALSE, tvb, offset, pinfo, tree, hf_x509sat_endDayTime); +} + +static const ber_sequence DayTimeBand_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_startDayTime }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_endDayTime }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_DayTimeBand(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, + DayTimeBand_sequence, hf_index, ett_x509sat_DayTimeBand); + + return offset; +} +static int dissect_timesOfDay_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_DayTimeBand(FALSE, tvb, offset, pinfo, tree, hf_x509sat_timesOfDay_item); +} + +static const ber_sequence SET_OF_DayTimeBand_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_timesOfDay_item }, +}; + +static int +dissect_x509sat_SET_OF_DayTimeBand(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_DayTimeBand_set_of, hf_index, ett_x509sat_SET_OF_DayTimeBand); + + return offset; +} +static int dissect_timesOfDay(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_DayTimeBand(FALSE, tvb, offset, pinfo, tree, hf_x509sat_timesOfDay); +} + +static const ber_sequence SET_OF_INTEGER_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_intDay_item }, +}; + +static int +dissect_x509sat_SET_OF_INTEGER(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_INTEGER_set_of, hf_index, ett_x509sat_SET_OF_INTEGER); + + return offset; +} +static int dissect_intDay(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_intDay); +} +static int dissect_intWeek(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_intWeek); +} +static int dissect_intMonth(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_intMonth); +} +static int dissect_years(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_x509sat_years); +} + +static const asn_namedbit T_bitDay_bits[] = { + { 0, &hf_x509sat_T_bitDay_sunday, -1, -1, NULL, NULL }, + { 1, &hf_x509sat_T_bitDay_monday, -1, -1, NULL, NULL }, + { 2, &hf_x509sat_T_bitDay_tuesday, -1, -1, NULL, NULL }, + { 3, &hf_x509sat_T_bitDay_wednesday, -1, -1, NULL, NULL }, + { 4, &hf_x509sat_T_bitDay_thursday, -1, -1, NULL, NULL }, + { 5, &hf_x509sat_T_bitDay_friday, -1, -1, NULL, NULL }, + { 6, &hf_x509sat_T_bitDay_saturday, -1, -1, NULL, NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_x509sat_T_bitDay(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, + T_bitDay_bits, hf_index, ett_x509sat_T_bitDay, + NULL); + + return offset; +} +static int dissect_bitDay(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_bitDay(FALSE, tvb, offset, pinfo, tree, hf_x509sat_bitDay); +} + + +static const value_string T_intNamedDays_vals[] = { + { 1, "sunday" }, + { 2, "monday" }, + { 3, "tuesday" }, + { 4, "wednesday" }, + { 5, "thursday" }, + { 6, "friday" }, + { 7, "saturday" }, + { 0, NULL } +}; + + +static int +dissect_x509sat_T_intNamedDays(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_intNamedDays(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_intNamedDays(FALSE, tvb, offset, pinfo, tree, hf_x509sat_intNamedDays); +} + +static const asn_namedbit T_bitNamedDays_bits[] = { + { 0, &hf_x509sat_T_bitNamedDays_sunday, -1, -1, NULL, NULL }, + { 1, &hf_x509sat_T_bitNamedDays_monday, -1, -1, NULL, NULL }, + { 2, &hf_x509sat_T_bitNamedDays_tuesday, -1, -1, NULL, NULL }, + { 3, &hf_x509sat_T_bitNamedDays_wednesday, -1, -1, NULL, NULL }, + { 4, &hf_x509sat_T_bitNamedDays_thursday, -1, -1, NULL, NULL }, + { 5, &hf_x509sat_T_bitNamedDays_friday, -1, -1, NULL, NULL }, + { 6, &hf_x509sat_T_bitNamedDays_saturday, -1, -1, NULL, NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_x509sat_T_bitNamedDays(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, + T_bitNamedDays_bits, hf_index, ett_x509sat_T_bitNamedDays, + NULL); + + return offset; +} +static int dissect_bitNamedDays(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_bitNamedDays(FALSE, tvb, offset, pinfo, tree, hf_x509sat_bitNamedDays); +} + + +const value_string NamedDay_vals[] = { + { 0, "intNamedDays" }, + { 1, "bitNamedDays" }, + { 0, NULL } +}; + +static const ber_choice NamedDay_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_intNamedDays }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_bitNamedDays }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509sat_NamedDay(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, + NamedDay_choice, hf_index, ett_x509sat_NamedDay); + + return offset; +} +static int dissect_first(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NamedDay(FALSE, tvb, offset, pinfo, tree, hf_x509sat_first); +} +static int dissect_second(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NamedDay(FALSE, tvb, offset, pinfo, tree, hf_x509sat_second); +} +static int dissect_third(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NamedDay(FALSE, tvb, offset, pinfo, tree, hf_x509sat_third); +} +static int dissect_fourth(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NamedDay(FALSE, tvb, offset, pinfo, tree, hf_x509sat_fourth); +} +static int dissect_fifth(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NamedDay(FALSE, tvb, offset, pinfo, tree, hf_x509sat_fifth); +} + + +const value_string XDayOf_vals[] = { + { 1, "first" }, + { 2, "second" }, + { 3, "third" }, + { 4, "fourth" }, + { 5, "fifth" }, + { 0, NULL } +}; + +static const ber_choice XDayOf_choice[] = { + { 1, BER_CLASS_CON, 1, 0, dissect_first }, + { 2, BER_CLASS_CON, 2, 0, dissect_second }, + { 3, BER_CLASS_CON, 3, 0, dissect_third }, + { 4, BER_CLASS_CON, 4, 0, dissect_fourth }, + { 5, BER_CLASS_CON, 5, 0, dissect_fifth }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509sat_XDayOf(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, + XDayOf_choice, hf_index, ett_x509sat_XDayOf); + + return offset; +} +static int dissect_dayOf(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_XDayOf(FALSE, tvb, offset, pinfo, tree, hf_x509sat_dayOf); +} + + +static const value_string T_days_vals[] = { + { 0, "intDay" }, + { 1, "bitDay" }, + { 2, "dayOf" }, + { 0, NULL } +}; + +static const ber_choice T_days_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_intDay }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_bitDay }, + { 2, BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_dayOf }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_T_days(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_days_choice, hf_index, ett_x509sat_T_days); + + return offset; +} +static int dissect_days(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_days(FALSE, tvb, offset, pinfo, tree, hf_x509sat_days); +} + + +static int +dissect_x509sat_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_allWeeks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NULL(FALSE, tvb, offset, pinfo, tree, hf_x509sat_allWeeks); +} +static int dissect_allMonths(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NULL(FALSE, tvb, offset, pinfo, tree, hf_x509sat_allMonths); +} +static int dissect_now(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_NULL(FALSE, tvb, offset, pinfo, tree, hf_x509sat_now); +} + +static const asn_namedbit T_bitWeek_bits[] = { + { 0, &hf_x509sat_T_bitWeek_week1, -1, -1, NULL, NULL }, + { 1, &hf_x509sat_T_bitWeek_week2, -1, -1, NULL, NULL }, + { 2, &hf_x509sat_T_bitWeek_week3, -1, -1, NULL, NULL }, + { 3, &hf_x509sat_T_bitWeek_week4, -1, -1, NULL, NULL }, + { 4, &hf_x509sat_T_bitWeek_week5, -1, -1, NULL, NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_x509sat_T_bitWeek(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, + T_bitWeek_bits, hf_index, ett_x509sat_T_bitWeek, + NULL); + + return offset; +} +static int dissect_bitWeek(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_bitWeek(FALSE, tvb, offset, pinfo, tree, hf_x509sat_bitWeek); +} + + +static const value_string T_weeks_vals[] = { + { 0, "allWeeks" }, + { 1, "intWeek" }, + { 2, "bitWeek" }, + { 0, NULL } +}; + +static const ber_choice T_weeks_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allWeeks }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_intWeek }, + { 2, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_bitWeek }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_T_weeks(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_weeks_choice, hf_index, ett_x509sat_T_weeks); + + return offset; +} +static int dissect_weeks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_weeks(FALSE, tvb, offset, pinfo, tree, hf_x509sat_weeks); +} + +static const asn_namedbit T_bitMonth_bits[] = { + { 0, &hf_x509sat_T_bitMonth_january, -1, -1, NULL, NULL }, + { 1, &hf_x509sat_T_bitMonth_february, -1, -1, NULL, NULL }, + { 2, &hf_x509sat_T_bitMonth_march, -1, -1, NULL, NULL }, + { 3, &hf_x509sat_T_bitMonth_april, -1, -1, NULL, NULL }, + { 4, &hf_x509sat_T_bitMonth_may, -1, -1, NULL, NULL }, + { 5, &hf_x509sat_T_bitMonth_june, -1, -1, NULL, NULL }, + { 6, &hf_x509sat_T_bitMonth_july, -1, -1, NULL, NULL }, + { 7, &hf_x509sat_T_bitMonth_august, -1, -1, NULL, NULL }, + { 8, &hf_x509sat_T_bitMonth_september, -1, -1, NULL, NULL }, + { 9, &hf_x509sat_T_bitMonth_october, -1, -1, NULL, NULL }, + { 10, &hf_x509sat_T_bitMonth_november, -1, -1, NULL, NULL }, + { 11, &hf_x509sat_T_bitMonth_december, -1, -1, NULL, NULL }, + { 0, NULL, 0, 0, NULL, NULL } +}; + +static int +dissect_x509sat_T_bitMonth(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, + T_bitMonth_bits, hf_index, ett_x509sat_T_bitMonth, + NULL); + + return offset; +} +static int dissect_bitMonth(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_bitMonth(FALSE, tvb, offset, pinfo, tree, hf_x509sat_bitMonth); +} + + +static const value_string T_months_vals[] = { + { 0, "allMonths" }, + { 1, "intMonth" }, + { 2, "bitMonth" }, + { 0, NULL } +}; + +static const ber_choice T_months_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_allMonths }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_intMonth }, + { 2, BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_bitMonth }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_T_months(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_months_choice, hf_index, ett_x509sat_T_months); + + return offset; +} +static int dissect_months(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_months(FALSE, tvb, offset, pinfo, tree, hf_x509sat_months); +} + +static const ber_sequence Period_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_timesOfDay }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_days }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_weeks }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_months }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL, dissect_years }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_Period(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, + Period_sequence, hf_index, ett_x509sat_Period); + + return offset; +} +static int dissect_periodic_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_Period(FALSE, tvb, offset, pinfo, tree, hf_x509sat_periodic_item); +} + +static const ber_sequence SET_OF_Period_set_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_periodic_item }, +}; + +static int +dissect_x509sat_SET_OF_Period(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_Period_set_of, hf_index, ett_x509sat_SET_OF_Period); + + return offset; +} +static int dissect_periodic(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_SET_OF_Period(FALSE, tvb, offset, pinfo, tree, hf_x509sat_periodic); +} + + +static const value_string T_time_vals[] = { + { 0, "absolute" }, + { 1, "periodic" }, + { 0, NULL } +}; + +static const ber_choice T_time_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_absolute }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_periodic }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_T_time(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_time_choice, hf_index, ett_x509sat_T_time); + + return offset; +} +static int dissect_time(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_time(FALSE, tvb, offset, pinfo, tree, hf_x509sat_time); +} + + +static int +dissect_x509sat_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_notThisTime(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509sat_notThisTime); +} +static int dissect_entirely(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_x509sat_entirely); +} + + + +int +dissect_x509sat_TimeZone(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_timeZone(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_TimeZone(FALSE, tvb, offset, pinfo, tree, hf_x509sat_timeZone); +} + +static const ber_sequence TimeSpecification_sequence[] = { + { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_time }, + { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_notThisTime }, + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_timeZone }, + { 0, 0, 0, NULL } +}; + +int +dissect_x509sat_TimeSpecification(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, + TimeSpecification_sequence, hf_index, ett_x509sat_TimeSpecification); + + return offset; +} + +static const ber_sequence T_between_sequence[] = { + { BER_CLASS_CON, 0, 0, dissect_startTime }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_endTime }, + { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_entirely }, + { 0, 0, 0, NULL } +}; + +static int +dissect_x509sat_T_between(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_between_sequence, hf_index, ett_x509sat_T_between); + + return offset; +} +static int dissect_between(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_x509sat_T_between(FALSE, tvb, offset, pinfo, tree, hf_x509sat_between); +} + + +const value_string TimeAssertion_vals[] = { + { 0, "now" }, + { 1, "at" }, + { 2, "between" }, + { 0, NULL } +}; + +static const ber_choice TimeAssertion_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_now }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_at }, + { 2, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_between }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509sat_TimeAssertion(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, + TimeAssertion_choice, hf_index, ett_x509sat_TimeAssertion); + + return offset; +} + + +const value_string LocaleContextSyntax_vals[] = { + { 0, "localeID1" }, + { 1, "localeID2" }, + { 0, NULL } +}; + +static const ber_choice LocaleContextSyntax_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_localeID1 }, + { 1, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_localeID2 }, + { 0, 0, 0, 0, NULL } +}; + +int +dissect_x509sat_LocaleContextSyntax(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, + LocaleContextSyntax_choice, hf_index, ett_x509sat_LocaleContextSyntax); + + return offset; +} + /*--- PDUs ---*/ static void dissect_DirectoryString_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -221,14 +1472,12 @@ static void dissect_TelexNumber_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tre /*--- End of included file: packet-x509sat-fn.c ---*/ -/*bbb*/ /*--- proto_register_x509sat ----------------------------------------------*/ void proto_register_x509sat(void) { /* List of fields */ static hf_register_info hf[] = { -/*ccc*/ /*--- Included file: packet-x509sat-hfarr.c ---*/ @@ -248,26 +1497,66 @@ void proto_register_x509sat(void) { { "TelexNumber", "x509sat.TelexNumber", FT_NONE, BASE_NONE, NULL, 0, "TelexNumber", HFILL }}, + { &hf_x509sat_type, + { "type", "x509sat.type", + FT_UINT32, BASE_DEC, VALS(CriteriaItem_vals), 0, + "Criteria/type", HFILL }}, + { &hf_x509sat_and, + { "and", "x509sat.and", + FT_UINT32, BASE_DEC, NULL, 0, + "Criteria/and", HFILL }}, + { &hf_x509sat_and_item, + { "Item", "x509sat.and_item", + FT_UINT32, BASE_DEC, VALS(Criteria_vals), 0, + "Criteria/and/_item", HFILL }}, + { &hf_x509sat_or, + { "or", "x509sat.or", + FT_UINT32, BASE_DEC, NULL, 0, + "Criteria/or", HFILL }}, + { &hf_x509sat_or_item, + { "Item", "x509sat.or_item", + FT_UINT32, BASE_DEC, VALS(Criteria_vals), 0, + "Criteria/or/_item", HFILL }}, + { &hf_x509sat_not, + { "not", "x509sat.not", + FT_UINT32, BASE_DEC, VALS(Criteria_vals), 0, + "Criteria/not", HFILL }}, { &hf_x509sat_equality, { "equality", "x509sat.equality", - FT_NONE, BASE_NONE, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "CriteriaItem/equality", HFILL }}, { &hf_x509sat_substrings, { "substrings", "x509sat.substrings", - FT_NONE, BASE_NONE, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "CriteriaItem/substrings", HFILL }}, { &hf_x509sat_greaterOrEqual, { "greaterOrEqual", "x509sat.greaterOrEqual", - FT_NONE, BASE_NONE, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "CriteriaItem/greaterOrEqual", HFILL }}, { &hf_x509sat_lessOrEqual, { "lessOrEqual", "x509sat.lessOrEqual", - FT_NONE, BASE_NONE, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "CriteriaItem/lessOrEqual", HFILL }}, { &hf_x509sat_approximateMatch, { "approximateMatch", "x509sat.approximateMatch", - FT_NONE, BASE_NONE, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "CriteriaItem/approximateMatch", HFILL }}, + { &hf_x509sat_objectClass, + { "objectClass", "x509sat.objectClass", + FT_STRING, BASE_NONE, NULL, 0, + "EnhancedGuide/objectClass", HFILL }}, + { &hf_x509sat_criteria, + { "criteria", "x509sat.criteria", + FT_UINT32, BASE_DEC, VALS(Criteria_vals), 0, + "EnhancedGuide/criteria", HFILL }}, + { &hf_x509sat_subset, + { "subset", "x509sat.subset", + FT_INT32, BASE_DEC, VALS(T_subset_vals), 0, + "EnhancedGuide/subset", HFILL }}, + { &hf_x509sat_PostalAddress_item, + { "Item", "x509sat.PostalAddress_item", + FT_STRING, BASE_NONE, NULL, 0, + "PostalAddress/_item", HFILL }}, { &hf_x509sat_telexNumber, { "telexNumber", "x509sat.telexNumber", FT_STRING, BASE_NONE, NULL, 0, @@ -280,6 +1569,414 @@ void proto_register_x509sat(void) { { "answerback", "x509sat.answerback", FT_STRING, BASE_NONE, NULL, 0, "TelexNumber/answerback", HFILL }}, + { &hf_x509sat_telephoneNumber, + { "telephoneNumber", "x509sat.telephoneNumber", + FT_STRING, BASE_NONE, NULL, 0, + "FacsimileTelephoneNumber/telephoneNumber", HFILL }}, + { &hf_x509sat_PreferredDeliveryMethod_item, + { "Item", "x509sat.PreferredDeliveryMethod_item", + FT_INT32, BASE_DEC, VALS(PreferredDeliveryMethod_item_vals), 0, + "PreferredDeliveryMethod/_item", HFILL }}, + { &hf_x509sat_pSelector, + { "pSelector", "x509sat.pSelector", + FT_BYTES, BASE_HEX, NULL, 0, + "PresentationAddress/pSelector", HFILL }}, + { &hf_x509sat_sSelector, + { "sSelector", "x509sat.sSelector", + FT_BYTES, BASE_HEX, NULL, 0, + "PresentationAddress/sSelector", HFILL }}, + { &hf_x509sat_tSelector, + { "tSelector", "x509sat.tSelector", + FT_BYTES, BASE_HEX, NULL, 0, + "PresentationAddress/tSelector", HFILL }}, + { &hf_x509sat_nAddresses, + { "nAddresses", "x509sat.nAddresses", + FT_UINT32, BASE_DEC, NULL, 0, + "PresentationAddress/nAddresses", HFILL }}, + { &hf_x509sat_nAddresses_item, + { "Item", "x509sat.nAddresses_item", + FT_BYTES, BASE_HEX, NULL, 0, + "PresentationAddress/nAddresses/_item", HFILL }}, + { &hf_x509sat_nAddress, + { "nAddress", "x509sat.nAddress", + FT_BYTES, BASE_HEX, NULL, 0, + "ProtocolInformation/nAddress", HFILL }}, + { &hf_x509sat_profiles, + { "profiles", "x509sat.profiles", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolInformation/profiles", HFILL }}, + { &hf_x509sat_profiles_item, + { "Item", "x509sat.profiles_item", + FT_STRING, BASE_NONE, NULL, 0, + "ProtocolInformation/profiles/_item", HFILL }}, + { &hf_x509sat_dn, + { "dn", "x509sat.dn", + FT_UINT32, BASE_DEC, NULL, 0, + "NameAndOptionalUID/dn", HFILL }}, + { &hf_x509sat_uid, + { "uid", "x509sat.uid", + FT_BYTES, BASE_HEX, NULL, 0, + "NameAndOptionalUID/uid", HFILL }}, + { &hf_x509sat_matchingRuleUsed, + { "matchingRuleUsed", "x509sat.matchingRuleUsed", + FT_STRING, BASE_NONE, NULL, 0, + "MultipleMatchingLocalities/matchingRuleUsed", HFILL }}, + { &hf_x509sat_attributeList, + { "attributeList", "x509sat.attributeList", + FT_UINT32, BASE_DEC, NULL, 0, + "MultipleMatchingLocalities/attributeList", HFILL }}, + { &hf_x509sat_attributeList_item, + { "Item", "x509sat.attributeList_item", + FT_NONE, BASE_NONE, NULL, 0, + "MultipleMatchingLocalities/attributeList/_item", HFILL }}, + { &hf_x509sat_SubstringAssertion_item, + { "Item", "x509sat.SubstringAssertion_item", + FT_UINT32, BASE_DEC, VALS(SubstringAssertion_item_vals), 0, + "SubstringAssertion/_item", HFILL }}, + { &hf_x509sat_initial, + { "initial", "x509sat.initial", + FT_STRING, BASE_NONE, NULL, 0, + "SubstringAssertion/_item/initial", HFILL }}, + { &hf_x509sat_any, + { "any", "x509sat.any", + FT_STRING, BASE_NONE, NULL, 0, + "SubstringAssertion/_item/any", HFILL }}, + { &hf_x509sat_final, + { "final", "x509sat.final", + FT_STRING, BASE_NONE, NULL, 0, + "SubstringAssertion/_item/final", HFILL }}, + { &hf_x509sat_control, + { "control", "x509sat.control", + FT_NONE, BASE_NONE, NULL, 0, + "SubstringAssertion/_item/control", HFILL }}, + { &hf_x509sat_CaseIgnoreListMatch_item, + { "Item", "x509sat.CaseIgnoreListMatch_item", + FT_STRING, BASE_NONE, NULL, 0, + "CaseIgnoreListMatch/_item", HFILL }}, + { &hf_x509sat_OctetSubstringAssertion_item, + { "Item", "x509sat.OctetSubstringAssertion_item", + FT_UINT32, BASE_DEC, VALS(OctetSubstringAssertion_item_vals), 0, + "OctetSubstringAssertion/_item", HFILL }}, + { &hf_x509sat_initial1, + { "initial", "x509sat.initial", + FT_BYTES, BASE_HEX, NULL, 0, + "OctetSubstringAssertion/_item/initial", HFILL }}, + { &hf_x509sat_any1, + { "any", "x509sat.any", + FT_BYTES, BASE_HEX, NULL, 0, + "OctetSubstringAssertion/_item/any", HFILL }}, + { &hf_x509sat_final1, + { "final", "x509sat.final", + FT_BYTES, BASE_HEX, NULL, 0, + "OctetSubstringAssertion/_item/final", HFILL }}, + { &hf_x509sat_ZonalSelect_item, + { "Item", "x509sat.ZonalSelect_item", + FT_STRING, BASE_NONE, NULL, 0, + "ZonalSelect/_item", HFILL }}, + { &hf_x509sat_time, + { "time", "x509sat.time", + FT_UINT32, BASE_DEC, VALS(T_time_vals), 0, + "TimeSpecification/time", HFILL }}, + { &hf_x509sat_absolute, + { "absolute", "x509sat.absolute", + FT_NONE, BASE_NONE, NULL, 0, + "TimeSpecification/time/absolute", HFILL }}, + { &hf_x509sat_startTime, + { "startTime", "x509sat.startTime", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509sat_endTime, + { "endTime", "x509sat.endTime", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_x509sat_periodic, + { "periodic", "x509sat.periodic", + FT_UINT32, BASE_DEC, NULL, 0, + "TimeSpecification/time/periodic", HFILL }}, + { &hf_x509sat_periodic_item, + { "Item", "x509sat.periodic_item", + FT_NONE, BASE_NONE, NULL, 0, + "TimeSpecification/time/periodic/_item", HFILL }}, + { &hf_x509sat_notThisTime, + { "notThisTime", "x509sat.notThisTime", + FT_BOOLEAN, 8, NULL, 0, + "TimeSpecification/notThisTime", HFILL }}, + { &hf_x509sat_timeZone, + { "timeZone", "x509sat.timeZone", + FT_INT32, BASE_DEC, NULL, 0, + "TimeSpecification/timeZone", HFILL }}, + { &hf_x509sat_timesOfDay, + { "timesOfDay", "x509sat.timesOfDay", + FT_UINT32, BASE_DEC, NULL, 0, + "Period/timesOfDay", HFILL }}, + { &hf_x509sat_timesOfDay_item, + { "Item", "x509sat.timesOfDay_item", + FT_NONE, BASE_NONE, NULL, 0, + "Period/timesOfDay/_item", HFILL }}, + { &hf_x509sat_days, + { "days", "x509sat.days", + FT_UINT32, BASE_DEC, VALS(T_days_vals), 0, + "Period/days", HFILL }}, + { &hf_x509sat_intDay, + { "intDay", "x509sat.intDay", + FT_UINT32, BASE_DEC, NULL, 0, + "Period/days/intDay", HFILL }}, + { &hf_x509sat_intDay_item, + { "Item", "x509sat.intDay_item", + FT_INT32, BASE_DEC, NULL, 0, + "Period/days/intDay/_item", HFILL }}, + { &hf_x509sat_bitDay, + { "bitDay", "x509sat.bitDay", + FT_BYTES, BASE_HEX, NULL, 0, + "Period/days/bitDay", HFILL }}, + { &hf_x509sat_dayOf, + { "dayOf", "x509sat.dayOf", + FT_UINT32, BASE_DEC, VALS(XDayOf_vals), 0, + "Period/days/dayOf", HFILL }}, + { &hf_x509sat_weeks, + { "weeks", "x509sat.weeks", + FT_UINT32, BASE_DEC, VALS(T_weeks_vals), 0, + "Period/weeks", HFILL }}, + { &hf_x509sat_allWeeks, + { "allWeeks", "x509sat.allWeeks", + FT_NONE, BASE_NONE, NULL, 0, + "Period/weeks/allWeeks", HFILL }}, + { &hf_x509sat_intWeek, + { "intWeek", "x509sat.intWeek", + FT_UINT32, BASE_DEC, NULL, 0, + "Period/weeks/intWeek", HFILL }}, + { &hf_x509sat_intWeek_item, + { "Item", "x509sat.intWeek_item", + FT_INT32, BASE_DEC, NULL, 0, + "Period/weeks/intWeek/_item", HFILL }}, + { &hf_x509sat_bitWeek, + { "bitWeek", "x509sat.bitWeek", + FT_BYTES, BASE_HEX, NULL, 0, + "Period/weeks/bitWeek", HFILL }}, + { &hf_x509sat_months, + { "months", "x509sat.months", + FT_UINT32, BASE_DEC, VALS(T_months_vals), 0, + "Period/months", HFILL }}, + { &hf_x509sat_allMonths, + { "allMonths", "x509sat.allMonths", + FT_NONE, BASE_NONE, NULL, 0, + "Period/months/allMonths", HFILL }}, + { &hf_x509sat_intMonth, + { "intMonth", "x509sat.intMonth", + FT_UINT32, BASE_DEC, NULL, 0, + "Period/months/intMonth", HFILL }}, + { &hf_x509sat_intMonth_item, + { "Item", "x509sat.intMonth_item", + FT_INT32, BASE_DEC, NULL, 0, + "Period/months/intMonth/_item", HFILL }}, + { &hf_x509sat_bitMonth, + { "bitMonth", "x509sat.bitMonth", + FT_BYTES, BASE_HEX, NULL, 0, + "Period/months/bitMonth", HFILL }}, + { &hf_x509sat_years, + { "years", "x509sat.years", + FT_UINT32, BASE_DEC, NULL, 0, + "Period/years", HFILL }}, + { &hf_x509sat_years_item, + { "Item", "x509sat.years_item", + FT_INT32, BASE_DEC, NULL, 0, + "Period/years/_item", HFILL }}, + { &hf_x509sat_first, + { "first", "x509sat.first", + FT_UINT32, BASE_DEC, VALS(NamedDay_vals), 0, + "XDayOf/first", HFILL }}, + { &hf_x509sat_second, + { "second", "x509sat.second", + FT_UINT32, BASE_DEC, VALS(NamedDay_vals), 0, + "XDayOf/second", HFILL }}, + { &hf_x509sat_third, + { "third", "x509sat.third", + FT_UINT32, BASE_DEC, VALS(NamedDay_vals), 0, + "XDayOf/third", HFILL }}, + { &hf_x509sat_fourth, + { "fourth", "x509sat.fourth", + FT_UINT32, BASE_DEC, VALS(NamedDay_vals), 0, + "XDayOf/fourth", HFILL }}, + { &hf_x509sat_fifth, + { "fifth", "x509sat.fifth", + FT_UINT32, BASE_DEC, VALS(NamedDay_vals), 0, + "XDayOf/fifth", HFILL }}, + { &hf_x509sat_intNamedDays, + { "intNamedDays", "x509sat.intNamedDays", + FT_UINT32, BASE_DEC, VALS(T_intNamedDays_vals), 0, + "NamedDay/intNamedDays", HFILL }}, + { &hf_x509sat_bitNamedDays, + { "bitNamedDays", "x509sat.bitNamedDays", + FT_BYTES, BASE_HEX, NULL, 0, + "NamedDay/bitNamedDays", HFILL }}, + { &hf_x509sat_startDayTime, + { "startDayTime", "x509sat.startDayTime", + FT_NONE, BASE_NONE, NULL, 0, + "DayTimeBand/startDayTime", HFILL }}, + { &hf_x509sat_endDayTime, + { "endDayTime", "x509sat.endDayTime", + FT_NONE, BASE_NONE, NULL, 0, + "DayTimeBand/endDayTime", HFILL }}, + { &hf_x509sat_hour, + { "hour", "x509sat.hour", + FT_INT32, BASE_DEC, NULL, 0, + "DayTime/hour", HFILL }}, + { &hf_x509sat_minute, + { "minute", "x509sat.minute", + FT_INT32, BASE_DEC, NULL, 0, + "DayTime/minute", HFILL }}, + { &hf_x509sat_second1, + { "second", "x509sat.second", + FT_INT32, BASE_DEC, NULL, 0, + "DayTime/second", HFILL }}, + { &hf_x509sat_now, + { "now", "x509sat.now", + FT_NONE, BASE_NONE, NULL, 0, + "TimeAssertion/now", HFILL }}, + { &hf_x509sat_at, + { "at", "x509sat.at", + FT_STRING, BASE_NONE, NULL, 0, + "TimeAssertion/at", HFILL }}, + { &hf_x509sat_between, + { "between", "x509sat.between", + FT_NONE, BASE_NONE, NULL, 0, + "TimeAssertion/between", HFILL }}, + { &hf_x509sat_entirely, + { "entirely", "x509sat.entirely", + FT_BOOLEAN, 8, NULL, 0, + "TimeAssertion/between/entirely", HFILL }}, + { &hf_x509sat_localeID1, + { "localeID1", "x509sat.localeID1", + FT_STRING, BASE_NONE, NULL, 0, + "LocaleContextSyntax/localeID1", HFILL }}, + { &hf_x509sat_localeID2, + { "localeID2", "x509sat.localeID2", + FT_STRING, BASE_NONE, NULL, 0, + "LocaleContextSyntax/localeID2", HFILL }}, + { &hf_x509sat_T_bitDay_sunday, + { "sunday", "x509sat.sunday", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_x509sat_T_bitDay_monday, + { "monday", "x509sat.monday", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_x509sat_T_bitDay_tuesday, + { "tuesday", "x509sat.tuesday", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_x509sat_T_bitDay_wednesday, + { "wednesday", "x509sat.wednesday", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_x509sat_T_bitDay_thursday, + { "thursday", "x509sat.thursday", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_x509sat_T_bitDay_friday, + { "friday", "x509sat.friday", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_x509sat_T_bitDay_saturday, + { "saturday", "x509sat.saturday", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, + { &hf_x509sat_T_bitWeek_week1, + { "week1", "x509sat.week1", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_x509sat_T_bitWeek_week2, + { "week2", "x509sat.week2", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_x509sat_T_bitWeek_week3, + { "week3", "x509sat.week3", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_x509sat_T_bitWeek_week4, + { "week4", "x509sat.week4", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_x509sat_T_bitWeek_week5, + { "week5", "x509sat.week5", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_january, + { "january", "x509sat.january", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_february, + { "february", "x509sat.february", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_march, + { "march", "x509sat.march", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_april, + { "april", "x509sat.april", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_may, + { "may", "x509sat.may", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_june, + { "june", "x509sat.june", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_july, + { "july", "x509sat.july", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_august, + { "august", "x509sat.august", + FT_BOOLEAN, 8, NULL, 0x01, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_september, + { "september", "x509sat.september", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_october, + { "october", "x509sat.october", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_november, + { "november", "x509sat.november", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_x509sat_T_bitMonth_december, + { "december", "x509sat.december", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_x509sat_T_bitNamedDays_sunday, + { "sunday", "x509sat.sunday", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_x509sat_T_bitNamedDays_monday, + { "monday", "x509sat.monday", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_x509sat_T_bitNamedDays_tuesday, + { "tuesday", "x509sat.tuesday", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_x509sat_T_bitNamedDays_wednesday, + { "wednesday", "x509sat.wednesday", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_x509sat_T_bitNamedDays_thursday, + { "thursday", "x509sat.thursday", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_x509sat_T_bitNamedDays_friday, + { "friday", "x509sat.friday", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_x509sat_T_bitNamedDays_saturday, + { "saturday", "x509sat.saturday", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, /*--- End of included file: packet-x509sat-hfarr.c ---*/ @@ -290,8 +1987,48 @@ void proto_register_x509sat(void) { /*--- Included file: packet-x509sat-ettarr.c ---*/ + &ett_x509sat_Criteria, + &ett_x509sat_SET_OF_Criteria, &ett_x509sat_CriteriaItem, + &ett_x509sat_EnhancedGuide, + &ett_x509sat_PostalAddress, &ett_x509sat_TelexNumber, + &ett_x509sat_FacsimileTelephoneNumber, + &ett_x509sat_PreferredDeliveryMethod, + &ett_x509sat_PresentationAddress, + &ett_x509sat_SET_OF_OCTET_STRING, + &ett_x509sat_ProtocolInformation, + &ett_x509sat_SET_OF_OBJECT_IDENTIFIER, + &ett_x509sat_NameAndOptionalUID, + &ett_x509sat_MultipleMatchingLocalities, + &ett_x509sat_SEQUNCE_OF_AttributeValueAssertion, + &ett_x509sat_SubstringAssertion, + &ett_x509sat_SubstringAssertion_item, + &ett_x509sat_CaseIgnoreListMatch, + &ett_x509sat_OctetSubstringAssertion, + &ett_x509sat_OctetSubstringAssertion_item, + &ett_x509sat_ZonalSelect, + &ett_x509sat_TimeSpecification, + &ett_x509sat_T_time, + &ett_x509sat_T_absolute, + &ett_x509sat_SET_OF_Period, + &ett_x509sat_Period, + &ett_x509sat_SET_OF_DayTimeBand, + &ett_x509sat_T_days, + &ett_x509sat_SET_OF_INTEGER, + &ett_x509sat_T_bitDay, + &ett_x509sat_T_weeks, + &ett_x509sat_T_bitWeek, + &ett_x509sat_T_months, + &ett_x509sat_T_bitMonth, + &ett_x509sat_XDayOf, + &ett_x509sat_NamedDay, + &ett_x509sat_T_bitNamedDays, + &ett_x509sat_DayTimeBand, + &ett_x509sat_DayTime, + &ett_x509sat_TimeAssertion, + &ett_x509sat_T_between, + &ett_x509sat_LocaleContextSyntax, /*--- End of included file: packet-x509sat-ettarr.c ---*/ @@ -350,8 +2087,6 @@ void proto_reg_handoff_x509sat(void) { /*--- End of included file: packet-x509sat-dis-tab.c ---*/ - -/*ddd*/ } diff --git a/epan/dissectors/packet-x509sat.h b/epan/dissectors/packet-x509sat.h index 6e62311655..b76cfb164e 100644 --- a/epan/dissectors/packet-x509sat.h +++ b/epan/dissectors/packet-x509sat.h @@ -1,7 +1,7 @@ /* Do not modify this file. */ /* It is created automatically by the ASN.1 to Ethereal dissector compiler */ /* ./packet-x509sat.h */ -/* ../../tools/asn2eth.py -X -b -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */ +/* ../../tools/asn2eth.py -X -b -k -e -p x509sat -c x509sat.cnf -s packet-x509sat-template SelectedAttributeTypes.asn */ /* Input file: packet-x509sat-template.h */ @@ -35,8 +35,42 @@ /*--- Included file: packet-x509sat-exp.h ---*/ +extern const value_string Criteria_vals[]; +extern const value_string ZonalResult_vals[]; +extern const value_string XDayOf_vals[]; +extern const value_string NamedDay_vals[]; +extern const value_string TimeAssertion_vals[]; +extern const value_string LocaleContextSyntax_vals[]; int dissect_x509sat_DirectoryString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_x509sat_UniqueIdentifier(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_CountryName(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_Criteria(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_EnhancedGuide(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_PostalAddress(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_FacsimileTelephoneNumber(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_X121Address(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_InternationalISDNNumber(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_DestinationIndicator(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_PreferredDeliveryMethod(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_PresentationAddress(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_ProtocolInformation(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_NameAndOptionalUID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_MultipleMatchingLocalities(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_SubstringAssertion(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_CaseIgnoreListMatch(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_OctetSubstringAssertion(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_ZonalSelect(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_ZonalResult(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_LanguageContextSyntax(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_TimeSpecification(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_Period(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_XDayOf(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_NamedDay(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_DayTimeBand(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_DayTime(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_TimeZone(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_TimeAssertion(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_x509sat_LocaleContextSyntax(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); /*--- End of included file: packet-x509sat-exp.h ---*/ |