From 0de04bfc2439ac38efa23590dadd54e4a2ad7b90 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Sun, 7 Oct 2007 16:02:04 +0000 Subject: From Martin Peylo: http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1888 There are new versions of CMP (v2) in RFC4210 and CRMF (v2) in RFC4211. The right to exist of CRMF is bound to CMP so I don't split that into two bug reports. I'll upload the new (slightly handmassaged) ASN.1 files for both protocols, along with patches for the respective cnf files, where I also added new #.REGISTER statements. Additionally I had to export some definitions from pkix1explicit (Attribute, Time, UniqueIdentifier and Version) and from pkix1implicit (KeyIdentifier). I'll also upload a patch for that. I uploaded a CMPv2 sample (with errors in the protocol!) to the wiki. svn path=/trunk/; revision=23082 --- asn1/pkix1explicit/Makefile | 2 +- asn1/pkix1explicit/Makefile.nmake | 2 +- asn1/pkix1explicit/PKIX1EXPLICIT93.asn | 15 ++++++++++----- asn1/pkix1explicit/pkix1explicit-exp.cnf | 8 ++++++++ asn1/pkix1explicit/pkix1explicit.cnf | 10 ++++++++++ asn1/pkix1explicit/pkix1explicit_exp.cnf | 8 ++++++++ 6 files changed, 38 insertions(+), 7 deletions(-) (limited to 'asn1/pkix1explicit') diff --git a/asn1/pkix1explicit/Makefile b/asn1/pkix1explicit/Makefile index 6ed4f2585e..4dc179e2d8 100644 --- a/asn1/pkix1explicit/Makefile +++ b/asn1/pkix1explicit/Makefile @@ -7,7 +7,7 @@ all: generate_dissector generate_dissector: $(DISSECTOR_FILES) $(DISSECTOR_FILES): ../../tools/asn2wrs.py PKIX1EXPLICIT93.asn packet-pkix1explicit-template.c packet-pkix1explicit-template.h pkix1explicit.cnf - python ../../tools/asn2wrs.py -e -b -p pkix1explicit -c pkix1explicit.cnf -s packet-pkix1explicit-template PKIX1EXPLICIT93.asn + python ../../tools/asn2wrs.py -e -b -X -T -p pkix1explicit -c pkix1explicit.cnf -s packet-pkix1explicit-template PKIX1EXPLICIT93.asn clean: rm -f pkix1explicit-exp.cnf parsetab.py $(DISSECTOR_FILES) diff --git a/asn1/pkix1explicit/Makefile.nmake b/asn1/pkix1explicit/Makefile.nmake index 0ddc6bc643..ff589fbd9c 100644 --- a/asn1/pkix1explicit/Makefile.nmake +++ b/asn1/pkix1explicit/Makefile.nmake @@ -15,7 +15,7 @@ generate_dissector: $(DISSECTOR_FILES) $(DISSECTOR_FILES): ../../tools/asn2wrs.py PKIX1EXPLICIT93.asn packet-pkix1explicit-template.c packet-pkix1explicit-template.h pkix1explicit.cnf !IFDEF PYTHON - $(PYTHON) "../../tools/asn2wrs.py" -e -b -p $(PROTOCOL_NAME) -c pkix1explicit.cnf -s packet-pkix1explicit-template PKIX1EXPLICIT93.asn + $(PYTHON) "../../tools/asn2wrs.py" -e -b -X -T -p $(PROTOCOL_NAME) -c pkix1explicit.cnf -s packet-pkix1explicit-template PKIX1EXPLICIT93.asn !ELSE @echo Error: You need Python to use asn2wrs.py @exit 1 diff --git a/asn1/pkix1explicit/PKIX1EXPLICIT93.asn b/asn1/pkix1explicit/PKIX1EXPLICIT93.asn index 86a52ac153..799e820f56 100644 --- a/asn1/pkix1explicit/PKIX1EXPLICIT93.asn +++ b/asn1/pkix1explicit/PKIX1EXPLICIT93.asn @@ -117,9 +117,9 @@ IMPORTS -- } --} -- ---UniqueIdentifier ::= BIT STRING +UniqueIdentifier ::= BIT STRING -- ---Version ::= INTEGER { v1(0), v2(1), v3(2) } +Version ::= INTEGER { v1(0), v2(1), v3(2) } -- This one is defined with .NO_EMIT in the conformance file -- and implemented in the template as just a call to the @@ -130,9 +130,9 @@ CertificateSerialNumber ::= INTEGER -- notBefore Time, -- notAfter Time } -- ---Time ::= CHOICE { --- utcTime UTCTime, --- generalTime GeneralizedTime } +Time ::= CHOICE { + utcTime UTCTime, + generalTime GeneralizedTime } -- @@ -362,6 +362,11 @@ ValidationParms ::= SEQUENCE { -- values SET SIZE (1 .. MAX) OF ATTRIBUTE.&Type -- ({SupportedAttributes}{@type})} +Attribute ::= SEQUENCE { + type OBJECT IDENTIFIER, + values SET SIZE (1 .. MAX) OF ANY + -- at least one value is required -- } + AttributeTypeAndValue ::= SEQUENCE { type OBJECT IDENTIFIER, value ANY diff --git a/asn1/pkix1explicit/pkix1explicit-exp.cnf b/asn1/pkix1explicit/pkix1explicit-exp.cnf index a2dd2fb5c0..c167bde3a0 100644 --- a/asn1/pkix1explicit/pkix1explicit-exp.cnf +++ b/asn1/pkix1explicit/pkix1explicit-exp.cnf @@ -8,9 +8,13 @@ PKIX1Explicit93 pkix1explicit #.END #.IMPORT_TAG +UniqueIdentifier BER_CLASS_UNI BER_UNI_TAG_BITSTRING +Version BER_CLASS_UNI BER_UNI_TAG_INTEGER CertificateSerialNumber BER_CLASS_UNI BER_UNI_TAG_INTEGER +Time BER_CLASS_ANY/*choice*/ -1/*choice*/ Extensions BER_CLASS_UNI BER_UNI_TAG_SEQUENCE Extension BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Attribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE AttributeTypeAndValue BER_CLASS_UNI BER_UNI_TAG_SEQUENCE RDNSequence BER_CLASS_UNI BER_UNI_TAG_SEQUENCE RelativeDistinguishedName BER_CLASS_UNI BER_UNI_TAG_SET @@ -20,9 +24,13 @@ TeletexDomainDefinedAttribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE #.END #.TYPE_ATTR +UniqueIdentifier TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +Version TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(pkix1explicit_Version_vals) BITMASK = 0 CertificateSerialNumber TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +Time TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(pkix1explicit_Time_vals) BITMASK = 0 Extensions TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 Extension TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +Attribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 AttributeTypeAndValue TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 RDNSequence TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 RelativeDistinguishedName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 diff --git a/asn1/pkix1explicit/pkix1explicit.cnf b/asn1/pkix1explicit/pkix1explicit.cnf index 0e50f5955e..aefafed833 100644 --- a/asn1/pkix1explicit/pkix1explicit.cnf +++ b/asn1/pkix1explicit/pkix1explicit.cnf @@ -6,6 +6,7 @@ #.MODULE_IMPORT #.EXPORTS +Attribute AttributeTypeAndValue CertificateSerialNumber DirectoryString @@ -15,6 +16,9 @@ RelativeDistinguishedName RDNSequence TeletexDomainDefinedAttribute TerminalType +Version +Time +UniqueIdentifier #.REGISTER DirectoryString B "1.3.6.1.5.5.7.2.1" "id-qt-cps" @@ -31,6 +35,12 @@ DomainParameters B "1.2.840.10046.2.1" "dhpublicnumber" #.FN_BODY DirectoryString offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, NULL); +#.FN_PARS Attribute/values + FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id VAL_PTR = &object_identifier_id + +#.FN_BODY Attribute/values/_item + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree); + #.FN_PARS AttributeTypeAndValue/value FN_VARIANT = _str HF_INDEX = hf_pkix1explicit_object_identifier_id VAL_PTR = &object_identifier_id diff --git a/asn1/pkix1explicit/pkix1explicit_exp.cnf b/asn1/pkix1explicit/pkix1explicit_exp.cnf index 3007121ce4..c7cca6fc50 100644 --- a/asn1/pkix1explicit/pkix1explicit_exp.cnf +++ b/asn1/pkix1explicit/pkix1explicit_exp.cnf @@ -1,6 +1,7 @@ #.IMPORT_TAG AlgorithmIdentifier BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Attribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE AttributeTypeAndValue BER_CLASS_UNI BER_UNI_TAG_SEQUENCE Certificate BER_CLASS_UNI BER_UNI_TAG_SEQUENCE CertificateList BER_CLASS_UNI BER_UNI_TAG_SEQUENCE @@ -15,9 +16,13 @@ RelativeDistinguishedName BER_CLASS_UNI BER_UNI_TAG_SET SubjectPublicKeyInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE TeletexDomainDefinedAttribute BER_CLASS_UNI BER_UNI_TAG_SEQUENCE TerminalType BER_CLASS_UNI BER_UNI_TAG_INTEGER +Time BER_CLASS_ANY/*choice*/ -1/*choice*/ +UniqueIdentifier BER_CLASS_UNI BER_UNI_TAG_BITSTRING +Version BER_CLASS_UNI BER_UNI_TAG_INTEGER #.END #.TYPE_ATTR +Attribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 AttributeTypeAndValue TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 Certificate TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 CertificateList TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 @@ -32,5 +37,8 @@ RelativeDistinguishedName TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL SubjectPublicKeyInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 TeletexDomainDefinedAttribute TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 TerminalType TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +Time TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(pkix1explicit_Time_vals) BITMASK = 0 +UniqueIdentifier TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +Version TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(pkix1explicit_Version_vals) BITMASK = 0 #.END -- cgit v1.2.1