summaryrefslogtreecommitdiff
path: root/asn1/x420
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-12-05 23:00:03 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-12-05 23:00:03 +0000
commitf27bf1302279c2f360963deaf46bb9d3d8a40513 (patch)
tree986dc30eaabd17a0972313bb79b14ecb61d3b8de /asn1/x420
parentfcd9e87872d1b2b77fb0c21ab08966a96c37832f (diff)
downloadwireshark-f27bf1302279c2f360963deaf46bb9d3d8a40513.tar.gz
From Grame Lunt:
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 svn path=/trunk/; revision=16689
Diffstat (limited to 'asn1/x420')
-rw-r--r--asn1/x420/Makefile.nmake4
-rw-r--r--asn1/x420/packet-x420-template.c30
-rw-r--r--asn1/x420/x420.asn416
-rw-r--r--asn1/x420/x420.cnf69
4 files changed, 509 insertions, 10 deletions
diff --git a/asn1/x420/Makefile.nmake b/asn1/x420/Makefile.nmake
index 7b8e686be1..787c3c3ac3 100644
--- a/asn1/x420/Makefile.nmake
+++ b/asn1/x420/Makefile.nmake
@@ -37,6 +37,6 @@ fix_eol: generate_dissector
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
copy_files: generate_dissector fix_eol
- xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d
- xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d
+ xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
+ xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y
diff --git a/asn1/x420/packet-x420-template.c b/asn1/x420/packet-x420-template.c
index f0be929410..d1ca50cbb1 100644
--- a/asn1/x420/packet-x420-template.c
+++ b/asn1/x420/packet-x420-template.c
@@ -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 @@ int proto_x420 = -1;
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 */
diff --git a/asn1/x420/x420.asn b/asn1/x420/x420.asn
index 70e0d93052..8a58ecd4fa 100644
--- a/asn1/x420/x420.asn
+++ b/asn1/x420/x420.asn
@@ -68,7 +68,9 @@ IMPORTS
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,7 +95,12 @@ IMPORTS
-- 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
@@ -344,9 +351,13 @@ G3FacsimileParameters ::= SET {
G3FacsimileData ::= SEQUENCE OF BIT STRING
-- G4 Class 1 and Mixed-mode body parts
-G4Class1BodyPart ::= SEQUENCE OF Interchange-Data-Element
+G4Class1BodyPart ::= G4Class1Data
+
+G4Class1Data ::= SEQUENCE OF Interchange-Data-Element
-MixedModeBodyPart ::= SEQUENCE OF Interchange-Data-Element
+MixedModeBodyPart ::= MixedModeData
+
+MixedModeData ::= SEQUENCE OF Interchange-Data-Element
-- Teletex body part
TeletexBodyPart ::= SEQUENCE {
@@ -388,7 +399,7 @@ EncryptedParameters ::= SET {
...
}
-EncryptedData ::= BIT STRING(CONSTRAINED BY {BodyPart})
+EncryptedData ::= BIT STRING --(CONSTRAINED BY {BodyPart})
-- Message body part
MessageBodyPart ::= SEQUENCE {
@@ -601,10 +612,10 @@ BodyPartReferences ::= SEQUENCE OF BodyPartReference
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 @@ NationallyDefinedBodyPart ::= ANY
-- 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
+
diff --git a/asn1/x420/x420.cnf b/asn1/x420/x420.cnf
index 1ea117d1dc..84d23123fd 100644
--- a/asn1/x420/x420.cnf
+++ b/asn1/x420/x420.cnf
@@ -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 @@ EncryptedBodyPart/parameters encrypted_parameters
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 @@ AbsenceAdvice B "2.6.1.19.0" "id-on-absence-advice"
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,6 +144,16 @@ IPMAssemblyInstructions B "2.6.1.17.2" "id-mst-assembly-instructions"
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 */
@@ -93,3 +161,4 @@ IPMAssemblyInstructions B "2.6.1.17.2" "id-mst-assembly-instructions"
#.FN_BODY NationallyDefinedBodyPart
/* XXX Not implemented yet */
+