Ethereal-dev: Re: [Ethereal-dev] Questions about the X.411 dissector
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Graeme Lunt <graeme.lunt@xxxxxxxxx>
Date: Mon, 5 Dec 2005 17:53:36 +0100
Hi, > I was thinking about GeneralText body part (2.6.1.4.11/2.6.1.11.11). > I suppose it is pretty simple to implement. Attached is a patch for the X.411, X420 and CMS dissectors to implement the remaining heading extensions and bodyparts. This includes GeneralText BP, forwarded content BP (forwarded p22 and forwarded p772), PKCS#7 BP, and "business class" messaging extensions. The X.411 extensions using the SIGNATURE macro have also been implemented. There is also a fix for a bug in the dissection of integer 22 content type. Graeme
Index: asn1/cms/cms.cnf =================================================================== --- asn1/cms/cms.cnf (revision 16673) +++ asn1/cms/cms.cnf (working copy) @@ -39,6 +39,8 @@ SigningTime B "1.2.840.113549.1.9.5" "id-signingTime" Countersignature B "1.2.840.113549.1.9.6" "id-counterSignature" +ContentInfo B "2.6.1.4.18" "id-et-pkcs7" + #.NO_EMIT #.TYPE_RENAME Index: asn1/x411/x411.cnf =================================================================== --- asn1/x411/x411.cnf (revision 16673) +++ asn1/x411/x411.cnf (working copy) @@ -23,6 +23,11 @@ SupplementaryInformation TeletexNonBasicParameters SecurityLabel +UniversalOrBMPString +MessageDeliveryIdentifier +ProofOfSubmission +OriginatingMTACertificate +MessageSubmissionEnvelope #.TYPE_RENAME MTABindArgument/authenticated AuthenticatedArgument @@ -142,13 +147,13 @@ OriginatorCertificate B "x411.extension.15" "originator-certificate" ContentConfidentialityAlgorithmIdentifier B "x411.extension.17" "content-confidentiality-algorithm-identifier" - - +ContentIntegrityCheck B "x411.extension.18" "content-integrity-check" +MessageOriginAuthenticationCheck B "x411.extension.19" "message-origin-authentication-check" MessageSecurityLabel B "x411.extension.20" "message-security-label" ProofOfSubmissionRequest B "x411.extension.21" "proof-of-submission-request" ProofOfDeliveryRequest B "x411.extension.22" "proof-of-delivery-request" ContentCorrelator B "x411.extension.23" "content-correlator" - +ProbeOriginAuthenticationCheck B "x411.extension.24" "probe-origin-authentication-check" RedirectionHistory B "x411.extension.25" "redirection-history" DLExpansionHistory B "x411.extension.26" "dl-expansion-history" PhysicalForwardingAddress B "x411.extension.27" "physical-forwarding-address" @@ -157,6 +162,8 @@ OriginatorAndDLExpansionHistory B "x411.extension.30" "originator-and-DL-expansion-history" ReportingDLName B "x411.extension.31" "reporting-DL-name" ReportingMTACertificate B "x411.extension.32" "reporting-MTA-certificate" +ReportOriginAuthenticationCheck B "x411.extension.33" "report-origin-authentication-check" +ProofOfSubmission B "x411.extension.35" "proof-of-submission" TraceInformation B "x411.extension.37" "trace-information" InternalTraceInformation B "x411.extension.38" "internal-trace-information" @@ -179,12 +186,13 @@ PostalCode B "x411.extension-attribute.9" "postal-code" PhysicalDeliveryOfficeName B "x411.extension-attribute.10" "physical-delivery-office-name" - UniversalCommonName B "x411.extension-attribute.24" "universal-common-name" UniversalOrganizationName B "x411.extension-attribute.25" "universal-organization-name" UniversalPersonalName B "x411.extension-attribute.26" "universal-personal-name" UniversalOrganizationalUnitNames B "x411.extension-attribute.27" "universal-organizational-unit-names" +ReportDeliveryArgument B "2.6.1.4.14" "id-et-report" + #.FN_BODY AdditionalInformation /*XXX not implemented yet */ @@ -314,10 +322,10 @@ /* convert integer content type to oid for dispatch when the content is found */ switch(ict) { case 2: - object_identifier_id = ep_strdup("2.6.1.10.0"); + content_type_id = ep_strdup("2.6.1.10.0"); break; case 22: - object_identifier_id = ep_strdup("2.6.1.10.1"); + content_type_id = ep_strdup("2.6.1.10.1"); break; default: break; Index: asn1/x411/x411-exp.cnf =================================================================== --- asn1/x411/x411-exp.cnf (revision 16673) +++ asn1/x411/x411-exp.cnf (working copy) @@ -1,9 +1,14 @@ #.IMPORT_TAG +MessageSubmissionEnvelope BER_CLASS_UNI BER_UNI_TAG_SET OtherMessageDeliveryFields BER_CLASS_UNI BER_UNI_TAG_SET +MessageDeliveryIdentifier BER_CLASS_APP 4 MessageDeliveryTime BER_CLASS_UNI BER_UNI_TAG_UTCTime SupplementaryInformation BER_CLASS_UNI BER_UNI_TAG_PrintableString +OriginatingMTACertificate BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ProofOfSubmission BER_CLASS_UNI BER_UNI_TAG_SEQUENCE ExtendedCertificates BER_CLASS_UNI BER_UNI_TAG_SET ORName BER_CLASS_APP 0 +UniversalOrBMPString BER_CLASS_UNI BER_UNI_TAG_SET EncodedInformationTypes BER_CLASS_APP 5 G3FacsimileNonBasicParameters BER_CLASS_UNI BER_UNI_TAG_BITSTRING TeletexNonBasicParameters BER_CLASS_UNI BER_UNI_TAG_SET @@ -11,11 +16,16 @@ #.END #.TYPE_ATTR +MessageSubmissionEnvelope TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 OtherMessageDeliveryFields TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +MessageDeliveryIdentifier TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 MessageDeliveryTime TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 SupplementaryInformation TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +OriginatingMTACertificate TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +ProofOfSubmission TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 ExtendedCertificates TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 ORName TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +UniversalOrBMPString TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 EncodedInformationTypes TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 G3FacsimileNonBasicParameters TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 TeletexNonBasicParameters TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 Index: asn1/x411/x411.asn =================================================================== --- asn1/x411/x411.asn (revision 16673) +++ asn1/x411/x411.asn (working copy) @@ -763,10 +763,10 @@ ResponderCredentials ::= Credentials Credentials ::= CHOICE { - simple Password + simple Password, -- strong [0] StrongCredentials, -- ..., --- protected [1] ProtectedPassword + protected [1] ProtectedPassword } Password ::= CHOICE { @@ -781,19 +781,25 @@ -- certificate-selector [2] CertificateAssertion OPTIONAL --} ---ProtectedPassword ::= SET { --- signature +ProtectedPassword ::= SET { + signature -- SIGNATURE{SET {password Password, -- time1 [0] UTCTime OPTIONAL, -- time2 [1] UTCTime OPTIONAL, -- random1 [2] BIT STRING OPTIONAL, -- random2 [3] BIT STRING OPTIONAL}}, --- time1 [0] UTCTime OPTIONAL, --- time2 [1] UTCTime OPTIONAL, --- random1 [2] BIT STRING OPTIONAL, --- random2 [3] BIT STRING OPTIONAL ---} + Signature, + time1 [0] UTCTime OPTIONAL, + time2 [1] UTCTime OPTIONAL, + random1 [2] BIT STRING OPTIONAL, + random2 [3] BIT STRING OPTIONAL +} +Signature ::= SEQUENCE { + algorithmIdentifier AlgorithmIdentifier, + encrypted BIT STRING +} + SecurityContext ::= SET --SIZE (1..ub-security-labels)-- OF SecurityLabel -- Submission Port @@ -1016,7 +1022,7 @@ MessageDeliveryResult ::= SET { recipient-certificate [0] RecipientCertificate OPTIONAL, --- proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL, + proof-of-delivery [1] IMPLICIT ProofOfDelivery OPTIONAL, ..., extensions [2] SET OF ExtensionField --{{MessageDeliveryResultExtensions}}-- DEFAULT {} @@ -1142,7 +1148,7 @@ -- Delivery Port Parameters RecipientCertificate ::= Certificates ---ProofOfDelivery ::= +ProofOfDelivery ::= Signature -- SIGNATURE -- {SEQUENCE {algorithm-identifier -- ProofOfDeliveryAlgorithmIdentifier, @@ -1945,7 +1951,7 @@ -- IDENTIFIED BY standard-extension:18 --} ---ContentIntegrityCheck ::= +ContentIntegrityCheck ::= Signature -- SIGNATURE -- {SEQUENCE {algorithm-identifier -- ContentIntegrityAlgorithmIdentifier OPTIONAL, @@ -1959,7 +1965,7 @@ -- IDENTIFIED BY standard-extension:19 --} ---MessageOriginAuthenticationCheck ::= +MessageOriginAuthenticationCheck ::= Signature -- SIGNATURE -- {SEQUENCE {algorithm-identifier -- MessageOriginAuthenticationAlgorithmIdentifier, @@ -2013,7 +2019,7 @@ -- IDENTIFIED BY standard-extension:24 --} ---ProbeOriginAuthenticationCheck ::= +ProbeOriginAuthenticationCheck ::= Signature -- SIGNATURE -- {SEQUENCE {algorithm-identifier -- ProbeOriginAuthenticationAlgorithmIdentifier, @@ -2110,7 +2116,7 @@ -- IDENTIFIED BY standard-extension:33 --} ---ReportOriginAuthenticationCheck ::= +ReportOriginAuthenticationCheck ::= Signature -- SIGNATURE -- {SEQUENCE {algorithm-identifier -- ReportOriginAuthenticationAlgorithmIdentifier, @@ -2154,7 +2160,7 @@ -- IDENTIFIED BY standard-extension:35 --} ---ProofOfSubmission ::= +ProofOfSubmission ::= Signature -- SIGNATURE -- {SEQUENCE {algorithm-identifier -- ProofOfSubmissionAlgorithmIdentifier, @@ -2163,7 +2169,7 @@ -- message-submission-identifier MessageSubmissionIdentifier, -- message-submission-time MessageSubmissionTime}} -ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier +--ProofOfSubmissionAlgorithmIdentifier ::= AlgorithmIdentifier --reporting-MTA-name EXTENSION ::= { -- ReportingMTAName, Index: asn1/x420/x420.cnf =================================================================== --- asn1/x420/x420.cnf (revision 16673) +++ asn1/x420/x420.cnf (working copy) @@ -1,10 +1,12 @@ #.MODULE_IMPORT MTSAbstractService x411 AuthenticationFramework x509af +CertificateExtensions x509ce ACSE-1 acse #.INCLUDE ../x411/x411-exp.cnf #.INCLUDE ../x509af/x509af-exp.cnf +#.INCLUDE ../x509ce/x509ce-exp.cnf #.INCLUDE ../acse/acse-exp.cnf #.EXPORTS @@ -33,6 +35,9 @@ TeletexParameters/non-basic-parameters teletex_non_basic_parameters G3FacsimileParameters/non-basic-parameters g3facsimile_non_basic_parameters +BodyPart/encrypted encrypted_bp +CirculationSignatureData/algorithm-identifier circulation-signature-algorithm-identifier + #.PDU OriginatingUA AbsenceAdvice @@ -45,6 +50,59 @@ ChangeOfAddressAdvice B "2.6.1.19.1" "id-on-change-of-address-advice" IPMAssemblyInstructions B "2.6.1.17.2" "id-mst-assembly-instructions" +IncompleteCopy B "2.6.1.5.0" "id-hex-languages" +Languages B "2.6.1.5.1" "id-hex-languages" +AutoSubmitted B "2.6.1.5.2" "id-hex-auto-submitted" +BodyPartSignatures B "2.6.1.5.3" "id-hex-body-part-signatures" +IPMSecurityLabel B "2.6.1.5.4" "id-hex-ipm-security-label" +AuthorizationTime B "2.6.1.5.5" "id-hex-authorization-time" +CirculationList B "2.6.1.5.6" "id-hex-circulation-list-recipients" +CirculationListIndicator B "2.6.1.20.0" "id-rex-circulation-list-indicator" +DistributionCodes B "2.6.1.5.7" "id-hex-distribution-codes" +ExtendedSubject B "2.6.1.5.8" "id-hex-extended-subject" +InformationCategories B "2.6.1.5.9" "id-hex-information-categories" +ManualHandlingInstructions B "2.6.1.5.10" "id-hex-manual-handling-instructions" +OriginatorsReference B "2.6.1.5.11" "id-hex-originators-reference" +PrecedencePolicyIdentifier B "2.6.1.5.12" "id-hex-precedence-policy-id" +Precedence B "2.6.1.20.1" "id-rex-precedence" + +IA5TextData B "2.6.1.4.0" "id-et-ia5-text" +IA5TextParameters B "2.6.1.11.0" "id-ep-ia5-text" +G3FacsimileData B "2.6.1.4.2" "id-et-g3-facsimile" +G3FacsimileParameters B "2.6.1.11.2" "id-ep-g3-facsimile" +G4Class1Data B "2.6.1.4.3" "id-et-g4-class1" +TeletexData B "2.6.1.4.4" "id-et-teletex" +TeletexParameters B "2.6.1.11.4" "id-ep-teletex" +VideotexData B "2.6.1.4.5" "id-et-videotex" +VideotexParameters B "2.6.1.11.5" "id-ep-videotex" +EncryptedData B "2.6.1.4.6" "id-et-encrypted" +EncryptedParameters B "2.6.1.11.6" "id-ep-encrypted" +MessageData B "2.6.1.4.7" "id-et-message" +MessageParameters B "2.6.1.11.7" "id-ep-message" +MixedModeData B "2.6.1.4.8" "id-et-mixed-mode" +BilaterallyDefinedBodyPart B "2.6.1.4.9" "id-et-bilaterally-defined" + +GeneralTextParameters B "2.6.1.11.11" "id-ep-general-text" +GeneralTextData B "2.6.1.4.11" "id-et-general-text" +# FileTransferBodyPart {id-et 12} in a separate dissector (ftbp) +# {id-et 13} is no longer defined +# ForwardedReportBodyPart {id-et 14} defined in x411.cnf +MessageParameters B "2.6.1.11.15" "id-ep-notification" +IPN B "2.6.1.4.15" "id-et-notification" +VoiceParameters B "2.6.1.11.16" "id-ep-voice" +VoiceData B "2.6.1.4.16" "id-et-voice" +# P22 +ForwardedContentParameters B "2.6.1.11.17.2.6.1.10.1" "id-ep-content-p22" +InformationObject B "2.6.1.4.17.2.6.1.10.1" "id-et-content-p22" +#p2 +ForwardedContentParameters B "2.6.1.11.17.2.6.1.10.0" "id-ep-content-p2" +InformationObject B "2.6.1.4.17.2.6.1.10.0" "id-et-content-p2" +#p722 +ForwardedContentParameters B "2.6.1.11.17.1.3.26.0.4406.0.4.1" "id-ep-content-p772" +# this will display as P22 for now +InformationObject B "2.6.1.4.17.1.3.26.0.4406.0.4.1" "id-et-content-p772" +# PKCS#7Bodypart {id-et 18} defined in cms.cnf + #.FN_PARS IPMSExtension/type FN_VARIANT = _str VAL_PTR = &object_identifier_id @@ -86,10 +144,21 @@ if(subject && check_col(pinfo->cinfo, COL_INFO)) col_append_fstr(pinfo->cinfo, COL_INFO, " (%%s)", tvb_format_text(subject, 0, tvb_length(subject))); +#.FN_PARS CharacterSetRegistration + VAL_PTR=&crs +#.FN_BODY CharacterSetRegistration + guint32 crs; + proto_item *pi; + %(DEFAULT_BODY)s + + if((pi = get_ber_last_created_item())) + proto_item_append_text(pi, " (%%s)", val_to_str(crs, charsetreg_vals, "unknown")); + #.FN_BODY Interchange_Data_Element /* XXX Not implemented yet */ #.FN_BODY NationallyDefinedBodyPart /* XXX Not implemented yet */ + Index: asn1/x420/packet-x420-template.c =================================================================== --- asn1/x420/packet-x420-template.c (revision 16673) +++ asn1/x420/packet-x420-template.c (working copy) @@ -39,6 +39,7 @@ #include "packet-ros.h" #include "packet-x509af.h" +#include "packet-x509ce.h" #include "packet-x411.h" #include "packet-x420.h" @@ -52,6 +53,35 @@ static const char *object_identifier_id; /* content type identifier */ +static const value_string charsetreg_vals [] = { + { 1, "C0: (ISO/IEC 6429)"}, + { 6, "G0: ASCII (ISO/IEC 646)"}, + { 77, "C1: (ISO/IEC 6429)"}, + { 100, "Gn: Latin Alphabet No.1, Western European Supplementary Set (GR area of ISO-8859-1)"}, + { 101, "Gn: Latin Alphabet No.2, Central EuropeanSupplementary Set (GR area of ISO-8859-2)"}, + { 104, "C0: (ISO/IEC 4873)"}, + { 105, "C1: (ISO/IEC 4873)"}, + { 106, "C0: Teletex (CCITT T.61)"}, + { 107, "C1: Teletex (CCITT T.61)"}, + { 109, "Gn: Latin Alphabet No.3, Southern European Supplementary Set (GR area of ISO-8859-3)"}, + { 110, "Gn: Latin Alphabet No.4, Baltic Supplementary Set (GR area of ISO-8859-4)"}, + { 126, "Gn: Greek Supplementary Set (GR area of ISO-8859-7)"}, + { 127, "Gn: Arabic Supplementary Set (GR area of ISO-8859-6)"}, + { 138, "Gn: Hebrew Supplementary Set (GR area of ISO-8859-8)"}, + { 144, "Gn: Cyrillic Supplementary Set (GR area of ISO-8859-5)"}, + { 148, "Gn: Latin Alphabet No.5, Cyrillic Supplementary Set (GR area of ISO-8859-9)"}, + { 154, "Gn: Supplementary Set for Latin Alphabets No.1 or No.5, and No.2"}, + { 157, "Gn: Latin Alphabet No.6, Arabic Supplementary Set (GR area of ISO-8859-10)"}, + { 158, "Gn: Supplementary Set for Sami (Lappish) to complement Latin Alphabet No.6 (from Annex A of ISO-8859-10)"}, + { 166, "Gn: Thai Supplementary Set (GR area of ISO-8859-11)"}, + { 179, "Gn: Latin Alphabet No.7, Baltic Rim Supplementary Set (GR area of ISO-8859-13)"}, + { 182, "Gn: Welsh Variant of Latin Alphabet No.1, Supplementary Set (GR area of ISO-8859-1)"}, + { 197, "Gn: Supplementary Set for Sami to complement Latin Alphabet No.6 (from Annex A of ISO-8859-10)"}, + { 199, "Gn: Latin Alphabet No.8, Celtic Supplementary Set (GR area of ISO-8859-14)"}, + { 203, "Gn: Latin Alphabet No.9, European Rim Supplementary Set (GR area of ISO-8859-15)"}, + { 0, NULL} +}; + #include "packet-x420-hf.c" /* Initialize the subtree pointers */ Index: asn1/x420/x420.asn =================================================================== --- asn1/x420/x420.asn (revision 16673) +++ asn1/x420/x420.asn (working copy) @@ -68,7 +68,9 @@ EncodedInformationTypes, ExtendedCertificates, EXTENSION, G3FacsimileNonBasicParameters, MessageDeliveryTime, ORName, OtherMessageDeliveryFields, SupplementaryInformation, - TeletexNonBasicParameters + TeletexNonBasicParameters, UniversalOrBMPString, SecurityLabel, + MessageDeliveryIdentifier, ProofOfSubmission, OriginatingMTACertificate, + MessageSubmissionEnvelope --== FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) mts-abstract-service(1) version-1999(1)} @@ -93,8 +95,13 @@ -- FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) -- object-identifiers(0) version-1999(1)} ; -- EXTERNAL - FROM ACSE-1; + FROM ACSE-1 + CertificateAssertion + --== + FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1) + certificateExtensions(26) 0}; + Time ::= UTCTime -- Information object @@ -344,10 +351,14 @@ G3FacsimileData ::= SEQUENCE OF BIT STRING -- G4 Class 1 and Mixed-mode body parts -G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element +G4Class1BodyPart ::= G4Class1Data -MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element +G4Class1Data ::= SEQUENCE OF Interchange-Data-Element +MixedModeBodyPart ::= MixedModeData + +MixedModeData ::= SEQUENCE OF Interchange-Data-Element + -- Teletex body part TeletexBodyPart ::= SEQUENCE { parameters TeletexParameters, @@ -388,7 +399,7 @@ ... } -EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart}) +EncryptedData ::= BIT STRING --(CONSTRAINED BY {BodyPart}) -- Message body part MessageBodyPart ::= SEQUENCE { @@ -601,10 +612,10 @@ BodyPartReference ::= CHOICE { stored-entry [0] SequenceNumber, stored-content [1] SequenceNumber, - submitted-body-part [2] INTEGER(1..MAX), + submitted-body-part [2] INTEGER--(1..MAX)--, stored-body-part [3] SEQUENCE {message-entry SequenceNumber, - body-part-number INTEGER(1..MAX)} + body-part-number --INTEGER(1..MAX)-- BodyPartNumber} } --originator-body-part-encryption-token MS-EXTENSION ::= { @@ -637,7 +648,396 @@ -- cannot refer to basic types in .cnf .#REGISTER - so we create an intermediate type OriginatingUA ::= IA5String -END -- of IPMSInformationObjects +-- END - - of IPMSInformationObjects + +-- Module IPMSHeadingExtensions (X.420:06/1999) +--IPMSHeadingExtensions {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- heading-extensions(6) version-1999(1)} DEFINITIONS IMPLICIT TAGS ::= +--BEGIN + +-- Prologue +-- Exports everything. +--IMPORTS + -- IPMS Information Objects +-- IPMS-EXTENSION, ORDescriptor, RecipientSpecifier, ThisIPMField, BodyPart + --== +-- FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- information-objects(2) version-1999(1)} + -- MTS Abstract Service +-- ExtendedCertificates, SecurityLabel, UniversalOrBMPString{} + --== +-- FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) +-- mts-abstract-service(1) version-1999(1)} + -- Directory Authentication Framework +-- AlgorithmIdentifier, SIGNATURE{}, SIGNED{} + --== +-- FROM AuthenticationFramework {joint-iso-itu-t ds(5) module(1) +-- authenticationFramework(7) 3} + -- Directory Certificate Extensions +-- CertificateAssertion + --== +-- FROM CertificateExtensions {joint-iso-itu-t ds(5) module(1) +-- certificateExtensions(26) 0} + -- IPMS upper bounds +-- ub-alpha-code-length, ub-circulation-list-members, ub-distribution-codes, +-- ub-extended-subject-length, ub-information-categories, +-- ub-information-category-length, ub-manual-handling-instruction-length, +-- ub-manual-handling-instructions, ub-originators-reference-length, +-- ub-precedence + --== +-- FROM IPMSUpperBounds {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- upper-bounds(10) version-1999(1)} + -- IPMS Object Identifiers +-- id-hex-authorization-time, id-hex-auto-submitted, +-- id-hex-body-part-signatures, id-hex-circulation-list-recipients, +-- id-hex-distribution-codes, id-hex-extended-subject, id-hex-incomplete-copy, +-- id-hex-information-category, id-hex-ipm-security-label, id-hex-languages, +-- id-hex-manual-handling-instructions, id-hex-originators-reference, +-- id-hex-precedence-policy-id, id-rex-circulation-list-indicator, +-- id-rex-precedence + --== +-- FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- object-identifiers(0) version-1999(1)}; + +-- Incomplete Copy +--incomplete-copy IPMS-EXTENSION ::= { +-- VALUE IncompleteCopy, +-- IDENTIFIED BY id-hex-incomplete-copy +--} + +IncompleteCopy ::= NULL + +-- Languages +--languages IPMS-EXTENSION ::= { +-- VALUE SET OF Language, +-- IDENTIFIED BY id-hex-languages +--} + +Languages ::= SET OF Language + +Language ::= PrintableString --(SIZE (2 | 5)) + +-- Auto-submitted +--auto-submitted IPMS-EXTENSION ::= { +-- VALUE AutoSubmitted, +-- IDENTIFIED BY id-hex-auto-submitted +--} + +AutoSubmitted ::= ENUMERATED { + not-auto-submitted(0), auto-generated(1), auto-replied(2)} + +--body-part-signatures IPMS-EXTENSION ::= { +-- VALUE BodyPartSignatures, +-- IDENTIFIED BY id-hex-body-part-signatures +--} + +Signature ::= SEQUENCE { + algorithmIdentifier AlgorithmIdentifier, + encrypted BIT STRING +} + + +BodyPartSignatures ::= + SET OF + SET {body-part-number BodyPartNumber, + body-part-signature BodyPartSignature, + originator-certificate-selector [1] CertificateAssertion OPTIONAL, + originator-certificates [0] ExtendedCertificates OPTIONAL --, +-- ... --} + +BodyPartNumber ::= INTEGER --(1..MAX) + +BodyPartSignature ::= Signature +-- SIGNATURE +-- {SEQUENCE {signature-algorithm-identifier AlgorithmIdentifier, +-- body-part BodyPart, +-- body-part-security-label SecurityLabel OPTIONAL +-- }} + +--ipm-security-label IPMS-EXTENSION ::= { +-- VALUE IPMSecurityLabel, +-- IDENTIFIED BY id-hex-ipm-security-label +--} + +IPMSecurityLabel ::= SEQUENCE { + content-security-label [0] SecurityLabel, + heading-security-label [1] SecurityLabel OPTIONAL, + body-part-security-labels [2] SEQUENCE OF BodyPartSecurityLabel OPTIONAL +} + +BodyPartSecurityLabel ::= CHOICE { + body-part-unlabelled [0] NULL, + body-part-security-label [1] SecurityLabel +} + +-- Authorization Time +--authorization-time IPMS-EXTENSION ::= { +-- VALUE AuthorizationTime, +-- IDENTIFIED BY id-hex-authorization-time +--} + +AuthorizationTime ::= GeneralizedTime + +-- Circulation List +--circulation-list-recipients IPMS-EXTENSION ::= { +-- VALUE CirculationList, +-- IDENTIFIED BY id-hex-circulation-list-recipients +--} + +CirculationList ::= + SEQUENCE (SIZE (2..ub-circulation-list-members)) OF CirculationMember + +CirculationMember ::= SET { + circulation-recipient + RecipientSpecifier +-- (WITH COMPONENTS { +-- ..., +-- recipient (WITH COMPONENTS { +-- ..., +-- formal-name PRESENT +-- }) +-- })--, + checked Checkmark OPTIONAL +} + +Checkmark ::= CHOICE { + simple NULL, + timestamped CirculationTime, + signed CirculationSignature +} + +CirculationTime ::= GeneralizedTime + +CirculationSignatureData ::= +-- SIGNED +-- { --SEQUENCE {algorithm-identifier CirculationSignatureAlgorithmIdentifier, + this-IPM ThisIPMField, + timestamp CirculationTime} --} + +-- expand SIGNED macro + +CirculationSignature ::= SEQUENCE { + circulation-signature-data CirculationSignatureData, + algorithm-identifier AlgorithmIdentifier, + encrypted BIT STRING +} + + + +CirculationSignatureAlgorithmIdentifier ::= AlgorithmIdentifier + +-- Circulation List Indicator +--circulation-list-indicator IPMS-EXTENSION ::= { +-- VALUE NULL, +-- IDENTIFIED BY id-rex-circulation-list-indicator +--} + +CirculationListIndicator ::= NULL + +-- Distribution Codes +--distribution-codes IPMS-EXTENSION ::= { +-- VALUE DistributionCodes, +-- IDENTIFIED BY id-hex-distribution-codes +--} + +DistributionCodes ::= + SEQUENCE --(SIZE (1..ub-distribution-codes))-- OF DistributionCode + +DistributionCode ::= SEQUENCE { + oid-code OBJECT IDENTIFIER OPTIONAL, + alphanumeric-code AlphaCode OPTIONAL, + or-descriptor [0] ORDescriptor OPTIONAL +} + +AlphaCode ::= UniversalOrBMPString --{ub-alpha-code-length} + +-- Extended Subject +--extended-subject IPMS-EXTENSION ::= { +-- VALUE ExtendedSubject, +-- IDENTIFIED BY id-hex-extended-subject +--} + +ExtendedSubject ::= UniversalOrBMPString--{ub-extended-subject-length} + +-- Information category +--information-category IPMS-EXTENSION ::= { +-- VALUE InformationCategories, +-- IDENTIFIED BY id-hex-information-category +--} + +InformationCategories ::= + SEQUENCE --(SIZE (1..ub-information-categories))-- OF InformationCategory + +InformationCategory ::= SEQUENCE { + reference [0] OBJECT IDENTIFIER OPTIONAL, + description [1] DescriptionString OPTIONAL +} + +DescriptionString ::= UniversalOrBMPString --{ub-information-category-length} + +-- Manual handling Instructions +--manual-handling-instructions IPMS-EXTENSION ::= { +-- VALUE ManualHandlingInstructions, +-- IDENTIFIED BY id-hex-manual-handling-instructions +--} + +ManualHandlingInstructions ::= + SEQUENCE --(SIZE (1..ub-manual-handling-instructions))-- OF + ManualHandlingInstruction + +ManualHandlingInstruction ::= + UniversalOrBMPString --{ub-manual-handling-instruction-length} + +-- Originator's Reference +--originators-reference IPMS-EXTENSION ::= { +-- VALUE OriginatorsReference, +-- IDENTIFIED BY id-hex-originators-reference +--} + +OriginatorsReference ::= UniversalOrBMPString--{ub-originators-reference-length} + +-- Precedence Policy Identifier +--precedence-policy-identifier IPMS-EXTENSION ::= { +-- VALUE PrecedencePolicyIdentifier, +-- IDENTIFIED BY id-hex-precedence-policy-id +--} + +PrecedencePolicyIdentifier ::= OBJECT IDENTIFIER + +-- Precedence +--precedence IPMS-EXTENSION ::= { +-- VALUE Precedence, +-- IDENTIFIED BY id-rex-precedence +--} + +Precedence ::= INTEGER(0..ub-precedence) + +-- END - - of IPMSHeadingExtensions + +-- Module IPMSExtendedBodyPartTypes2 (X.420:06/1999) +-- IPMSExtendedBodyPartTypes2 {iso standard mhs(10021) ipms(7) modules(0) +-- extended-body-part-types-2(1)} DEFINITIONS IMPLICIT TAGS ::= +--BEGIN + +-- Prologue +-- Exports everything. +--IMPORTS + -- IPMS Information Objects +-- EXTENDED-BODY-PART-TYPE + --== +-- FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- information-objects(2) version-1999(1)} + -- IPMS Object Identifiers +-- id-ep-general-text, id-et-general-text + --== +-- FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- object-identifiers(0) version-1999(1)}; + +-- General Text body part +--general-text-body-part EXTENDED-BODY-PART-TYPE ::= { +-- PARAMETERS {GeneralTextParameters +-- IDENTIFIED BY id-ep-general-text}, +-- DATA {GeneralTextData +-- IDENTIFIED BY id-et-general-text} +--} + +GeneralTextParameters ::= SET OF CharacterSetRegistration + +GeneralTextData ::= GeneralString + +CharacterSetRegistration ::= INTEGER(1..32767) + +--END - - of IPMSExtendedBodyPartTypes2 + +-- Module IPMSExtendedVoiceBodyPartType (X.420:06/1999) +--IPMSExtendedVoiceBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- extended-voice-body-part-type(11)} DEFINITIONS IMPLICIT TAGS ::= +--BEGIN + +-- Prologue +-- Exports everything. +--IMPORTS + -- IPMS Information Objects +-- EXTENDED-BODY-PART-TYPE + --== +-- FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- information-objects(2) version-1999(1)} + -- IPMS Object Identifiers +-- id-ep-voice, id-et-voice + --== +-- FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- object-identifiers(0) version-1999(1)}; + +-- Extended Voice body part +--voice-body-part EXTENDED-BODY-PART-TYPE ::= { +-- PARAMETERS {VoiceParameters +-- IDENTIFIED BY id-ep-voice}, +-- DATA {VoiceData +-- IDENTIFIED BY id-et-voice} +--} + +VoiceParameters ::= SEQUENCE { + voice-message-duration [0] INTEGER OPTIONAL, -- In seconds + voice-encoding-type [1] OBJECT IDENTIFIER, + supplementary-information [2] IA5String OPTIONAL +} + +VoiceData ::= OCTET STRING + +--END - - of IPMSExtendedVoiceBodyPartType + +-- Module IPMSForwardedContentBodyPartType (X.420:06/1999) +--IPMSForwardedContentBodyPartType {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- forwarded-content-body-part-type(15)} DEFINITIONS IMPLICIT TAGS ::= +--BEGIN + +-- Prologue +-- Exports everything. +--IMPORTS + -- MTS Abstract Service +-- Content, ExtendedContentType, MessageDeliveryIdentifier, MessageDeliveryTime, +-- MessageSubmissionEnvelope, OriginatingMTACertificate, +-- OtherMessageDeliveryFields, ProofOfSubmission + --== +-- FROM MTSAbstractService {joint-iso-itu-t mhs(6) mts(3) modules(0) +-- mts-abstract-service(1) version-1999(1)} + -- IPMS Information Objects +-- EXTENDED-BODY-PART-TYPE + --== +-- FROM IPMSInformationObjects {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- information-objects(2) version-1999(1)} + -- IPMS Object Identifiers +-- id-ep-content, id-et-content + --== +-- FROM IPMSObjectIdentifiers {joint-iso-itu-t mhs(6) ipms(1) modules(0) +-- object-identifiers(0) version-1999(1)}; + +-- Forwarded Content body part +--content-body-part{ExtendedContentType:content-type} EXTENDED-BODY-PART-TYPE ::= +-- { +-- PARAMETERS +-- {ForwardedContentParameters +-- IDENTIFIED BY {id-ep-content content-type}}, +-- DATA {Content +-- IDENTIFIED BY {id-et-content content-type}} +--} + +ForwardedContentParameters ::= SET { + delivery-time [0] MessageDeliveryTime OPTIONAL, + delivery-envelope [1] OtherMessageDeliveryFields OPTIONAL, + mts-identifier [2] MessageDeliveryIdentifier OPTIONAL, + submission-proof [3] SubmissionProof OPTIONAL +} + +SubmissionProof ::= SET { + proof-of-submission [0] ProofOfSubmission, + originating-MTA-certificate [1] OriginatingMTACertificate, + message-submission-envelope MessageSubmissionEnvelope +} + +END -- of IPMSForwardedContentBodyPartType + -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D +
- Follow-Ups:
- SV: [Ethereal-dev] Questions about the X.411 dissector
- From: Anders Broman
- SV: [Ethereal-dev] Questions about the X.411 dissector
- Prev by Date: Re: [Ethereal-dev] DOP Protocol Dissection
- Next by Date: Re: [Ethereal-dev] Dumpcap: Coredump when disconnecting Ethernet during capture
- Previous by thread: Re: [Ethereal-dev] DOP Protocol Dissection
- Next by thread: SV: [Ethereal-dev] Questions about the X.411 dissector
- Index(es):