aboutsummaryrefslogtreecommitdiffstats
path: root/epan
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 /epan
parentfcd9e87872d1b2b77fb0c21ab08966a96c37832f (diff)
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 'epan')
-rw-r--r--epan/dissectors/packet-cms.c58
-rw-r--r--epan/dissectors/packet-cms.h7
-rw-r--r--epan/dissectors/packet-x411.c366
-rw-r--r--epan/dissectors/packet-x411.h12
-rw-r--r--epan/dissectors/packet-x420.c1426
-rw-r--r--epan/dissectors/packet-x420.h5
6 files changed, 1753 insertions, 121 deletions
diff --git a/epan/dissectors/packet-cms.c b/epan/dissectors/packet-cms.c
index 563e62dc0b..80d0d6eb8c 100644
--- a/epan/dissectors/packet-cms.c
+++ b/epan/dissectors/packet-cms.c
@@ -1,10 +1,11 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-cms.c */
+/* .\packet-cms.c */
/* ../../tools/asn2eth.py -X -b -e -p cms -c cms.cnf -s packet-cms-template CryptographicMessageSyntax.asn */
/* Input file: packet-cms-template.c */
+#line 1 "packet-cms-template.c"
/* packet-cms.c
* Routines for RFC2630 Cryptographic Message Syntax packet dissection
* Ronnie Sahlberg 2004
@@ -58,7 +59,7 @@ int proto_cms = -1;
static int hf_cms_ci_contentType = -1;
/*--- Included file: packet-cms-hf.c ---*/
-
+#line 1 "packet-cms-hf.c"
static int hf_cms_ContentInfo_PDU = -1; /* ContentInfo */
static int hf_cms_ContentType_PDU = -1; /* ContentType */
static int hf_cms_SignedData_PDU = -1; /* SignedData */
@@ -146,12 +147,12 @@ static int hf_cms_signature = -1; /* Signature */
static int hf_cms_attributes = -1; /* UnauthAttributes */
/*--- End of included file: packet-cms-hf.c ---*/
-
+#line 53 "packet-cms-template.c"
/* Initialize the subtree pointers */
/*--- Included file: packet-cms-ett.c ---*/
-
+#line 1 "packet-cms-ett.c"
static gint ett_cms_ContentInfo = -1;
static gint ett_cms_SignedData = -1;
static gint ett_cms_DigestAlgorithmIdentifiers = -1;
@@ -195,7 +196,7 @@ static gint ett_cms_ExtendedCertificate = -1;
static gint ett_cms_ExtendedCertificateInfo = -1;
/*--- End of included file: packet-cms-ett.c ---*/
-
+#line 56 "packet-cms-template.c"
static int dissect_cms_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) ; /* XXX kill a compiler warning until asn2eth stops generating these silly wrappers */
@@ -274,7 +275,7 @@ cms_verify_msg_digest(proto_item *pi, tvbuff_t *content, const char *alg, tvbuff
/*--- Included file: packet-cms-fn.c ---*/
-
+#line 1 "packet-cms-fn.c"
/*--- Fields for imported types ---*/
static int dissect_algorithm(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -312,10 +313,12 @@ static int dissect_encryptedContentType(packet_info *pinfo, proto_tree *tree, tv
static int
dissect_cms_T_contentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 60 "cms.cnf"
offset = dissect_ber_object_identifier_str(FALSE, pinfo, tree, tvb, offset,
hf_cms_ci_contentType, &object_identifier_id);
+
return offset;
}
static int dissect_contentType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -326,9 +329,11 @@ static int dissect_contentType(packet_info *pinfo, proto_tree *tree, tvbuff_t *t
static int
dissect_cms_T_content(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 64 "cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
return offset;
}
static int dissect_content(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -344,6 +349,7 @@ static const ber_sequence_t ContentInfo_sequence[] = {
int
dissect_cms_ContentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 54 "cms.cnf"
top_tree = tree;
offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
ContentInfo_sequence, hf_index, ett_cms_ContentInfo);
@@ -352,6 +358,7 @@ dissect_cms_ContentInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pa
top_tree = NULL;
+
return offset;
}
@@ -415,10 +422,12 @@ static int dissect_digestAlgorithms(packet_info *pinfo, proto_tree *tree, tvbuff
static int
dissect_cms_T_eContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 67 "cms.cnf"
offset = dissect_ber_object_identifier_str(FALSE, pinfo, tree, tvb, offset,
hf_cms_ci_contentType, &object_identifier_id);
+
return offset;
}
static int dissect_eContentType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -429,6 +438,7 @@ static int dissect_eContentType(packet_info *pinfo, proto_tree *tree, tvbuff_t *
static int
dissect_cms_T_eContent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 71 "cms.cnf"
gint8 class;
gboolean pc, ind;
gint32 tag;
@@ -446,6 +456,7 @@ dissect_cms_T_eContent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac
content_tvb = tvb_new_subset(tvb, content_offset, len, -1);
+
return offset;
}
static int dissect_eContent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -474,6 +485,7 @@ static int dissect_encapContentInfo(packet_info *pinfo, proto_tree *tree, tvbuff
static int
dissect_cms_T_attrType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 98 "cms.cnf"
char *name = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_cms_attrType, &object_identifier_id);
@@ -485,6 +497,7 @@ dissect_cms_T_attrType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac
}
+
return offset;
}
static int dissect_attrType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -495,10 +508,12 @@ static int dissect_attrType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb,
static int
dissect_cms_AttributeValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 108 "cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
return offset;
}
static int dissect_attrValues_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1049,10 +1064,12 @@ static int dissect_keyAttrId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb
static int
dissect_cms_T_keyAttr(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 91 "cms.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
return offset;
}
static int dissect_keyAttr(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1462,6 +1479,7 @@ dissect_cms_AuthenticatedData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs
static int
dissect_cms_MessageDigest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 112 "cms.cnf"
proto_item *pi;
int old_offset = offset;
@@ -1479,6 +1497,7 @@ dissect_cms_MessageDigest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
cms_verify_msg_digest(pi, content_tvb, x509af_get_last_algorithm_id(), tvb, old_offset);
+
return offset;
}
@@ -1571,7 +1590,7 @@ static void dissect_Countersignature_PDU(tvbuff_t *tvb, packet_info *pinfo, prot
/*--- End of included file: packet-cms-fn.c ---*/
-
+#line 133 "packet-cms-template.c"
/*--- proto_register_cms ----------------------------------------------*/
void proto_register_cms(void) {
@@ -1584,14 +1603,14 @@ void proto_register_cms(void) {
"ContentType", HFILL }},
/*--- Included file: packet-cms-hfarr.c ---*/
-
+#line 1 "packet-cms-hfarr.c"
{ &hf_cms_ContentInfo_PDU,
{ "ContentInfo", "cms.ContentInfo",
FT_NONE, BASE_NONE, NULL, 0,
"ContentInfo", HFILL }},
{ &hf_cms_ContentType_PDU,
{ "ContentType", "cms.ContentType",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"ContentType", HFILL }},
{ &hf_cms_SignedData_PDU,
{ "SignedData", "cms.SignedData",
@@ -1627,7 +1646,7 @@ void proto_register_cms(void) {
"Countersignature", HFILL }},
{ &hf_cms_contentType,
{ "contentType", "cms.contentType",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"ContentInfo/contentType", HFILL }},
{ &hf_cms_content,
{ "content", "cms.content",
@@ -1667,7 +1686,7 @@ void proto_register_cms(void) {
"SignerInfos/_item", HFILL }},
{ &hf_cms_eContentType,
{ "eContentType", "cms.eContentType",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"EncapsulatedContentInfo/eContentType", HFILL }},
{ &hf_cms_eContent,
{ "eContent", "cms.eContent",
@@ -1715,7 +1734,7 @@ void proto_register_cms(void) {
"UnsignedAttributes/_item", HFILL }},
{ &hf_cms_attrType,
{ "attrType", "cms.attrType",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"Attribute/attrType", HFILL }},
{ &hf_cms_attrValues,
{ "attrValues", "cms.attrValues",
@@ -1751,7 +1770,7 @@ void proto_register_cms(void) {
"RecipientInfos/_item", HFILL }},
{ &hf_cms_encryptedContentType,
{ "contentType", "cms.contentType",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"EncryptedContentInfo/contentType", HFILL }},
{ &hf_cms_contentEncryptionAlgorithm,
{ "contentEncryptionAlgorithm", "cms.contentEncryptionAlgorithm",
@@ -1899,7 +1918,7 @@ void proto_register_cms(void) {
"IssuerAndSerialNumber/serialNumber", HFILL }},
{ &hf_cms_keyAttrId,
{ "keyAttrId", "cms.keyAttrId",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"OtherKeyAttribute/keyAttrId", HFILL }},
{ &hf_cms_keyAttr,
{ "keyAttr", "cms.keyAttr",
@@ -1927,14 +1946,14 @@ void proto_register_cms(void) {
"ExtendedCertificateInfo/attributes", HFILL }},
/*--- End of included file: packet-cms-hfarr.c ---*/
-
+#line 144 "packet-cms-template.c"
};
/* List of subtrees */
static gint *ett[] = {
/*--- Included file: packet-cms-ettarr.c ---*/
-
+#line 1 "packet-cms-ettarr.c"
&ett_cms_ContentInfo,
&ett_cms_SignedData,
&ett_cms_DigestAlgorithmIdentifiers,
@@ -1978,7 +1997,7 @@ void proto_register_cms(void) {
&ett_cms_ExtendedCertificateInfo,
/*--- End of included file: packet-cms-ettarr.c ---*/
-
+#line 149 "packet-cms-template.c"
};
/* Register protocol */
@@ -1995,7 +2014,7 @@ void proto_register_cms(void) {
void proto_reg_handoff_cms(void) {
/*--- Included file: packet-cms-dis-tab.c ---*/
-
+#line 1 "packet-cms-dis-tab.c"
register_ber_oid_dissector("1.2.840.113549.1.9.16.1.6", dissect_ContentInfo_PDU, proto_cms, "id-ct-contentInfo");
register_ber_oid_dissector("1.2.840.113549.1.7.2", dissect_SignedData_PDU, proto_cms, "id-signedData");
register_ber_oid_dissector("1.2.840.113549.1.7.3", dissect_EnvelopedData_PDU, proto_cms, "id-envelopedData");
@@ -2006,9 +2025,10 @@ void proto_reg_handoff_cms(void) {
register_ber_oid_dissector("1.2.840.113549.1.9.4", dissect_MessageDigest_PDU, proto_cms, "id-messageDigest");
register_ber_oid_dissector("1.2.840.113549.1.9.5", dissect_SigningTime_PDU, proto_cms, "id-signingTime");
register_ber_oid_dissector("1.2.840.113549.1.9.6", dissect_Countersignature_PDU, proto_cms, "id-counterSignature");
+ register_ber_oid_dissector("2.6.1.4.18", dissect_ContentInfo_PDU, proto_cms, "id-et-pkcs7");
/*--- End of included file: packet-cms-dis-tab.c ---*/
-
+#line 164 "packet-cms-template.c"
}
diff --git a/epan/dissectors/packet-cms.h b/epan/dissectors/packet-cms.h
index d6a776050c..f6d28fdf81 100644
--- a/epan/dissectors/packet-cms.h
+++ b/epan/dissectors/packet-cms.h
@@ -1,10 +1,11 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-cms.h */
+/* .\packet-cms.h */
/* ../../tools/asn2eth.py -X -b -e -p cms -c cms.cnf -s packet-cms-template CryptographicMessageSyntax.asn */
/* Input file: packet-cms-template.h */
+#line 1 "packet-cms-template.h"
/* packet-cms.h
* Routines for RFC2630 Cryptographic Message Syntax packet dissection
* Ronnie Sahlberg 2004
@@ -35,7 +36,7 @@
/*--- Included file: packet-cms-exp.h ---*/
-
+#line 1 "packet-cms-exp.h"
extern const value_string cms_SignerIdentifier_vals[];
int dissect_cms_ContentInfo(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_cms_ContentType(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
@@ -53,7 +54,7 @@ int dissect_cms_IssuerAndSerialNumber(gboolean implicit_tag, tvbuff_t *tvb, int
int dissect_cms_Countersignature(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
/*--- End of included file: packet-cms-exp.h ---*/
-
+#line 30 "packet-cms-template.h"
#endif /* PACKET_CMS_H */
diff --git a/epan/dissectors/packet-x411.c b/epan/dissectors/packet-x411.c
index 12bf47b5bd..1555473499 100644
--- a/epan/dissectors/packet-x411.c
+++ b/epan/dissectors/packet-x411.c
@@ -1,10 +1,11 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-x411.c */
+/* .\packet-x411.c */
/* ../../tools/asn2eth.py -X -b -e -p x411 -c x411.cnf -s packet-x411-template x411.asn */
/* Input file: packet-x411-template.c */
+#line 1 "packet-x411-template.c"
/* packet-x411.c
* Routines for X.411 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -79,13 +80,14 @@ call_x411_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *p
/*--- Included file: packet-x411-hf.c ---*/
-
+#line 1 "packet-x411-hf.c"
static int hf_x411_MTABindArgument_PDU = -1; /* MTABindArgument */
static int hf_x411_MTABindResult_PDU = -1; /* MTABindResult */
static int hf_x411_MTABindError_PDU = -1; /* MTABindError */
static int hf_x411_MTS_APDU_PDU = -1; /* MTS_APDU */
static int hf_x411_InternalTraceInformation_PDU = -1; /* InternalTraceInformation */
static int hf_x411_TraceInformation_PDU = -1; /* TraceInformation */
+static int hf_x411_ReportDeliveryArgument_PDU = -1; /* ReportDeliveryArgument */
static int hf_x411_RecipientReassignmentProhibited_PDU = -1; /* RecipientReassignmentProhibited */
static int hf_x411_MTSOriginatorRequestedAlternateRecipient_PDU = -1; /* MTSOriginatorRequestedAlternateRecipient */
static int hf_x411_DLExpansionProhibited_PDU = -1; /* DLExpansionProhibited */
@@ -102,16 +104,21 @@ static int hf_x411_OriginatorReturnAddress_PDU = -1; /* OriginatorReturnAddress
static int hf_x411_PhysicalDeliveryReportRequest_PDU = -1; /* PhysicalDeliveryReportRequest */
static int hf_x411_OriginatorCertificate_PDU = -1; /* OriginatorCertificate */
static int hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU = -1; /* ContentConfidentialityAlgorithmIdentifier */
+static int hf_x411_ContentIntegrityCheck_PDU = -1; /* ContentIntegrityCheck */
+static int hf_x411_MessageOriginAuthenticationCheck_PDU = -1; /* MessageOriginAuthenticationCheck */
static int hf_x411_MessageSecurityLabel_PDU = -1; /* MessageSecurityLabel */
static int hf_x411_ProofOfSubmissionRequest_PDU = -1; /* ProofOfSubmissionRequest */
static int hf_x411_ProofOfDeliveryRequest_PDU = -1; /* ProofOfDeliveryRequest */
static int hf_x411_ContentCorrelator_PDU = -1; /* ContentCorrelator */
+static int hf_x411_ProbeOriginAuthenticationCheck_PDU = -1; /* ProbeOriginAuthenticationCheck */
static int hf_x411_RedirectionHistory_PDU = -1; /* RedirectionHistory */
static int hf_x411_DLExpansionHistory_PDU = -1; /* DLExpansionHistory */
static int hf_x411_PhysicalForwardingAddress_PDU = -1; /* PhysicalForwardingAddress */
static int hf_x411_OriginatorAndDLExpansionHistory_PDU = -1; /* OriginatorAndDLExpansionHistory */
static int hf_x411_ReportingDLName_PDU = -1; /* ReportingDLName */
static int hf_x411_ReportingMTACertificate_PDU = -1; /* ReportingMTACertificate */
+static int hf_x411_ReportOriginAuthenticationCheck_PDU = -1; /* ReportOriginAuthenticationCheck */
+static int hf_x411_ProofOfSubmission_PDU = -1; /* ProofOfSubmission */
static int hf_x411_ReportingMTAName_PDU = -1; /* ReportingMTAName */
static int hf_x411_ExtendedCertificates_PDU = -1; /* ExtendedCertificates */
static int hf_x411_DLExemptedRecipients_PDU = -1; /* DLExemptedRecipients */
@@ -212,8 +219,16 @@ static int hf_x411_non_urgent = -1; /* DeliveryQueue */
static int hf_x411_messages = -1; /* INTEGER */
static int hf_x411_delivery_queue_octets = -1; /* INTEGER */
static int hf_x411_simple = -1; /* Password */
+static int hf_x411_protected = -1; /* ProtectedPassword */
static int hf_x411_ia5_string = -1; /* IA5String */
static int hf_x411_octet_string = -1; /* OCTET_STRING */
+static int hf_x411_signature = -1; /* Signature */
+static int hf_x411_time1 = -1; /* UTCTime */
+static int hf_x411_time2 = -1; /* UTCTime */
+static int hf_x411_random1 = -1; /* BIT_STRING */
+static int hf_x411_random2 = -1; /* BIT_STRING */
+static int hf_x411_algorithmIdentifier = -1; /* AlgorithmIdentifier */
+static int hf_x411_encrypted = -1; /* BIT_STRING */
static int hf_x411_SecurityContext_item = -1; /* SecurityLabel */
static int hf_x411_message_submission_envelope = -1; /* MessageSubmissionEnvelope */
static int hf_x411_message_submission_identifier = -1; /* MessageSubmissionIdentifier */
@@ -230,6 +245,7 @@ static int hf_x411_message_delivery_identifier = -1; /* MessageDeliveryIdentifi
static int hf_x411_message_delivery_time = -1; /* MessageDeliveryTime */
static int hf_x411_other_fields = -1; /* OtherMessageDeliveryFields */
static int hf_x411_recipient_certificate = -1; /* RecipientCertificate */
+static int hf_x411_proof_of_delivery = -1; /* ProofOfDelivery */
static int hf_x411_subject_submission_identifier = -1; /* SubjectSubmissionIdentifier */
static int hf_x411_per_recipient_report_delivery_fields = -1; /* SEQUENCE_OF_PerRecipientReportDeliveryFields */
static int hf_x411_per_recipient_report_delivery_fields_item = -1; /* PerRecipientReportDeliveryFields */
@@ -499,13 +515,13 @@ static int hf_x411_G3FacsimileNonBasicParameters_jpeg = -1;
static int hf_x411_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
/*--- End of included file: packet-x411-hf.c ---*/
-
+#line 74 "packet-x411-template.c"
/* Initialize the subtree pointers */
static gint ett_x411 = -1;
/*--- Included file: packet-x411-ett.c ---*/
-
+#line 1 "packet-x411-ett.c"
static gint ett_x411_MTABindArgument = -1;
static gint ett_x411_AuthenticatedArgument = -1;
static gint ett_x411_MTABindResult = -1;
@@ -545,6 +561,8 @@ static gint ett_x411_MessagesWaiting = -1;
static gint ett_x411_DeliveryQueue = -1;
static gint ett_x411_Credentials = -1;
static gint ett_x411_Password = -1;
+static gint ett_x411_ProtectedPassword = -1;
+static gint ett_x411_Signature = -1;
static gint ett_x411_SecurityContext = -1;
static gint ett_x411_MessageSubmissionArgument = -1;
static gint ett_x411_MessageSubmissionResult = -1;
@@ -670,13 +688,16 @@ static gint ett_x411_SecurityCategories = -1;
static gint ett_x411_SecurityCategory = -1;
/*--- End of included file: packet-x411-ett.c ---*/
-
+#line 78 "packet-x411-template.c"
/*--- Included file: packet-x411-fn.c ---*/
-
+#line 1 "packet-x411-fn.c"
/*--- Fields for imported types ---*/
+static int dissect_algorithmIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x411_algorithmIdentifier);
+}
static int dissect_mta_directory_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x509if_Name(TRUE, tvb, offset, pinfo, tree, hf_x411_mta_directory_name);
}
@@ -727,6 +748,7 @@ static int dissect_empty_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *
static int
dissect_x411_MTAName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 347 "x411.cnf"
tvbuff_t *mtaname = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
@@ -747,6 +769,7 @@ dissect_x411_MTAName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packe
}
+
return offset;
}
static int dissect_authenticated_initiator_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -830,13 +853,91 @@ static int dissect_simple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, i
}
+
+static int
+dissect_x411_BIT_STRING(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_random1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_BIT_STRING(TRUE, tvb, offset, pinfo, tree, hf_x411_random1);
+}
+static int dissect_random2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_BIT_STRING(TRUE, tvb, offset, pinfo, tree, hf_x411_random2);
+}
+static int dissect_encrypted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_x411_encrypted);
+}
+
+
+static const ber_sequence_t Signature_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x411_Signature(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,
+ Signature_sequence, hf_index, ett_x411_Signature);
+
+ return offset;
+}
+static int dissect_signature(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_Signature(FALSE, tvb, offset, pinfo, tree, hf_x411_signature);
+}
+
+
+
+static int
+dissect_x411_UTCTime(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_UTCTime,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_time1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_UTCTime(TRUE, tvb, offset, pinfo, tree, hf_x411_time1);
+}
+static int dissect_time2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_UTCTime(TRUE, tvb, offset, pinfo, tree, hf_x411_time2);
+}
+
+
+static const ber_sequence_t ProtectedPassword_set[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signature },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_time1_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_time2_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_random1_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_random2_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x411_ProtectedPassword(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
+ ProtectedPassword_set, hf_index, ett_x411_ProtectedPassword);
+
+ return offset;
+}
+static int dissect_protected_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_ProtectedPassword(TRUE, tvb, offset, pinfo, tree, hf_x411_protected);
+}
+
+
static const value_string x411_Credentials_vals[] = {
- { -1/*choice*/, "simple" },
+ { 0, "simple" },
+ { 1, "protected" },
{ 0, NULL }
};
static const ber_choice_t Credentials_choice[] = {
- { -1/*choice*/, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_simple },
+ { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_simple },
+ { 1, BER_CLASS_CON, 1, 0, dissect_protected_impl },
{ 0, 0, 0, 0, NULL }
};
@@ -920,12 +1021,14 @@ static int dissect_privacy_mark(packet_info *pinfo, proto_tree *tree, tvbuff_t *
static int
dissect_x411_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 294 "x411.cnf"
offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &object_identifier_id);
extension_id = -1;
+
return offset;
}
static int dissect_private_extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -939,10 +1042,12 @@ static int dissect_category_type_impl(packet_info *pinfo, proto_tree *tree, tvbu
static int
dissect_x411_CategoryValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 215 "x411.cnf"
offset = dissect_unknown_ber(pinfo, tvb, offset, tree);
+
return offset;
}
static int dissect_category_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1131,6 +1236,7 @@ static const value_string x411_MTABindError_vals[] = {
static int
dissect_x411_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 600 "x411.cnf"
int error = -1;
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
&error);
@@ -1140,6 +1246,7 @@ dissect_x411_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
+
return offset;
}
@@ -1147,6 +1254,7 @@ dissect_x411_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
static int
dissect_x411_NumericString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 436 "x411.cnf"
tvbuff_t *nstring = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -1158,6 +1266,7 @@ dissect_x411_NumericString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
return offset;
}
static int dissect_x121_address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1183,6 +1292,7 @@ static int dissect_sub_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff
static int
dissect_x411_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 458 "x411.cnf"
tvbuff_t *pstring = NULL;
char *fmt = NULL;
@@ -1207,6 +1317,7 @@ dissect_x411_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse
}
+
return offset;
}
static int dissect_tsap_id(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1264,6 +1375,7 @@ static const ber_choice_t CountryName_choice[] = {
static int
dissect_x411_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 226 "x411.cnf"
gint8 class;
gboolean pc, ind_field;
gint32 tag;
@@ -1286,6 +1398,7 @@ dissect_x411_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, p
+
return offset;
}
static int dissect_country_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1307,6 +1420,7 @@ static const ber_choice_t AdministrationDomainName_choice[] = {
static int
dissect_x411_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 248 "x411.cnf"
gint8 class;
gboolean pc, ind_field;
gint32 tag;
@@ -1327,6 +1441,7 @@ dissect_x411_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb,
AdministrationDomainName_choice, hf_index, ett_x411_AdministrationDomainName, NULL);
+
return offset;
}
static int dissect_administration_domain_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1351,6 +1466,7 @@ static const ber_choice_t PrivateDomainIdentifier_choice[] = {
static int
dissect_x411_PrivateDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 398 "x411.cnf"
if(doing_address)
g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
@@ -1361,6 +1477,7 @@ dissect_x411_PrivateDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, i
+
return offset;
}
static int dissect_private_domain_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1380,6 +1497,7 @@ static const ber_sequence_t GlobalDomainIdentifier_sequence[] = {
static int
dissect_x411_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 505 "x411.cnf"
oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
address_item = tree;
@@ -1393,6 +1511,7 @@ dissect_x411_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, in
+
return offset;
}
static int dissect_global_domain_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1409,6 +1528,7 @@ static int dissect_attempted_domain(packet_info *pinfo, proto_tree *tree, tvbuff
static int
dissect_x411_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 519 "x411.cnf"
tvbuff_t *id = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
@@ -1420,6 +1540,7 @@ dissect_x411_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse
proto_item_append_text(address_item, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
+
return offset;
}
static int dissect_local_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1435,6 +1556,7 @@ static const ber_sequence_t MTSIdentifier_sequence[] = {
static int
dissect_x411_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 527 "x411.cnf"
doing_address = TRUE;
@@ -1445,6 +1567,7 @@ dissect_x411_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
doing_address = FALSE;
+
return offset;
}
@@ -1464,6 +1587,7 @@ static int dissect_message_identifier(packet_info *pinfo, proto_tree *tree, tvbu
static int
dissect_x411_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 367 "x411.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
@@ -1478,6 +1602,7 @@ dissect_x411_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, p
+
return offset;
}
@@ -1497,6 +1622,7 @@ static int dissect_network_address_impl(packet_info *pinfo, proto_tree *tree, tv
static int
dissect_x411_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 381 "x411.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1510,6 +1636,7 @@ dissect_x411_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int of
}
+
return offset;
}
static int dissect_terminal_identifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1531,6 +1658,7 @@ static const ber_choice_t PrivateDomainName_choice[] = {
static int
dissect_x411_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 391 "x411.cnf"
if(doing_address)
g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
@@ -1541,6 +1669,7 @@ dissect_x411_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb, int off
+
return offset;
}
static int dissect_private_domain_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1551,6 +1680,7 @@ static int dissect_private_domain_name_impl(packet_info *pinfo, proto_tree *tree
static int
dissect_x411_OrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 408 "x411.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -1564,6 +1694,7 @@ dissect_x411_OrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs
}
+
return offset;
}
static int dissect_organization_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1650,6 +1781,7 @@ static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
static int
dissect_x411_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 535 "x411.cnf"
address_item = tree;
@@ -1658,6 +1790,7 @@ dissect_x411_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb,
+
return offset;
}
static int dissect_built_in_standard_attributes(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1724,10 +1857,12 @@ static int dissect_extension_attribute_type_impl(packet_info *pinfo, proto_tree
static int
dissect_x411_T_extension_attribute_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 219 "x411.cnf"
offset=call_x411_oid_callback("x411.extension-attribute", tvb, offset, pinfo, tree);
+
return offset;
}
static int dissect_extension_attribute_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1779,6 +1914,7 @@ static const ber_sequence_t ORName_sequence[] = {
int
dissect_x411_ORName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 492 "x411.cnf"
oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
address_item = NULL;
@@ -1794,6 +1930,7 @@ dissect_x411_ORName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet
doing_address = FALSE;
+
return offset;
}
static int dissect_exact_match_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1910,6 +2047,7 @@ static int dissect_g3_facsimile_impl(packet_info *pinfo, proto_tree *tree, tvbuf
static int
dissect_x411_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 446 "x411.cnf"
tvbuff_t *tstring = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
@@ -1922,6 +2060,7 @@ dissect_x411_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
+
return offset;
}
static int dissect_teletex_surname_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2062,6 +2201,7 @@ static const value_string x411_BuiltInContentType_vals[] = {
static int
dissect_x411_BuiltInContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 318 "x411.cnf"
guint32 ict = -1;
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
@@ -2071,16 +2211,17 @@ dissect_x411_BuiltInContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int of
/* 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;
}
+
return offset;
}
static int dissect_built_in(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2094,6 +2235,7 @@ static int dissect_built_in_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t
static int
dissect_x411_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 302 "x411.cnf"
const char *name = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &content_type_id);
@@ -2108,6 +2250,7 @@ dissect_x411_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb, int o
}
+
return offset;
}
static int dissect_extended(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2149,6 +2292,7 @@ static int dissect_ContentTypes_item(packet_info *pinfo, proto_tree *tree, tvbuf
static int
dissect_x411_ContentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 268 "x411.cnf"
gint8 class;
gboolean pc, ind_field;
gint32 tag;
@@ -2169,6 +2313,7 @@ dissect_x411_ContentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int off
+
return offset;
}
static int dissect_content_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2233,6 +2378,7 @@ static int dissect_per_message_indicators(packet_info *pinfo, proto_tree *tree,
static int
dissect_x411_Time(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 579 "x411.cnf"
tvbuff_t *arrival = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_UTCTime,
@@ -2244,6 +2390,7 @@ dissect_x411_Time(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_i
proto_item_append_text(address_item, " %s", tvb_format_text(arrival, 0, tvb_length(arrival)));
+
return offset;
}
static int dissect_redirection_time(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2367,6 +2514,7 @@ static const value_string x411_RoutingAction_vals[] = {
static int
dissect_x411_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 590 "x411.cnf"
int action = 0;
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
@@ -2376,6 +2524,7 @@ dissect_x411_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
proto_item_append_text(address_item, " %s", val_to_str(action, x411_RoutingAction_vals, "action(%d)"));
+
return offset;
}
static int dissect_routing_action_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2441,6 +2590,7 @@ static const ber_sequence_t DomainSuppliedInformation_set[] = {
static int
dissect_x411_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 558 "x411.cnf"
doing_address = FALSE;
@@ -2452,6 +2602,7 @@ dissect_x411_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb,
proto_item_append_text(tree, ")");
+
return offset;
}
static int dissect_domain_supplied_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2467,6 +2618,7 @@ static const ber_sequence_t TraceInformationElement_sequence[] = {
static int
dissect_x411_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 541 "x411.cnf"
doing_address = TRUE;
@@ -2477,6 +2629,7 @@ dissect_x411_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb, i
doing_address = FALSE;
+
return offset;
}
static int dissect_TraceInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2548,6 +2701,7 @@ static int dissect_criticality_impl(packet_info *pinfo, proto_tree *tree, tvbuff
static int
dissect_x411_ExtensionValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 203 "x411.cnf"
char *name;
if(extension_id != -1)
@@ -2560,6 +2714,7 @@ dissect_x411_ExtensionValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset
+
return offset;
}
static int dissect_extension_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2750,6 +2905,7 @@ static int dissect_message_envelope(packet_info *pinfo, proto_tree *tree, tvbuff
static int
dissect_x411_Content(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 335 "x411.cnf"
tvbuff_t *next_tvb;
/* we can do this now constructed octet strings are supported */
@@ -2759,6 +2915,7 @@ dissect_x411_Content(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packe
(void) call_ber_oid_callback(content_type_id, next_tvb, 0, pinfo, top_tree ? top_tree : tree);
+
return offset;
}
static int dissect_content(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -2971,9 +3128,11 @@ static int dissect_subject_intermediate_trace_information(packet_info *pinfo, pr
static int
dissect_x411_AdditionalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 197 "x411.cnf"
/*XXX not implemented yet */
+
return offset;
}
static int dissect_additional_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -3424,6 +3583,7 @@ static const ber_sequence_t MTASuppliedInformation_set[] = {
static int
dissect_x411_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 567 "x411.cnf"
doing_address = FALSE;
@@ -3435,6 +3595,7 @@ dissect_x411_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, in
proto_item_append_text(tree, ")");
+
return offset;
}
static int dissect_mta_supplied_information(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -3451,6 +3612,7 @@ static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
static int
dissect_x411_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 549 "x411.cnf"
doing_address = TRUE;
@@ -3462,6 +3624,7 @@ dissect_x411_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t
+
return offset;
}
static int dissect_InternalTraceInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -3719,7 +3882,7 @@ static const ber_sequence_t MessageSubmissionEnvelope_set[] = {
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_x411_MessageSubmissionEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
MessageSubmissionEnvelope_set, hf_index, ett_x411_MessageSubmissionEnvelope);
@@ -4163,7 +4326,7 @@ dissect_x411_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse
-static int
+int
dissect_x411_MessageDeliveryIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_x411_MTSIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
@@ -4341,8 +4504,21 @@ static int dissect_recipient_certificate_impl(packet_info *pinfo, proto_tree *tr
}
+
+static int
+dissect_x411_ProofOfDelivery(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_proof_of_delivery_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_ProofOfDelivery(TRUE, tvb, offset, pinfo, tree, hf_x411_proof_of_delivery);
+}
+
+
static const ber_sequence_t MessageDeliveryResult_set[] = {
{ BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_recipient_certificate_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_proof_of_delivery_impl },
{ BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
{ 0, 0, 0, NULL }
};
@@ -4541,9 +4717,11 @@ static int dissect_built_in_argument_impl(packet_info *pinfo, proto_tree *tree,
static int
dissect_x411_T_refused_extension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 223 "x411.cnf"
/*XXX not implemented yet */
+
return offset;
}
static int dissect_refused_extension(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -4992,9 +5170,11 @@ static int dissect_standard_parameters_impl(packet_info *pinfo, proto_tree *tree
static int
dissect_x411_T_extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 200 "x411.cnf"
/*XXX not implemented yet */
+
return offset;
}
static int dissect_type_extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -5356,6 +5536,7 @@ static const ber_sequence_t ORAddress_sequence[] = {
static int
dissect_x411_ORAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 479 "x411.cnf"
oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';
doing_address = TRUE;
@@ -5371,6 +5552,7 @@ dissect_x411_ORAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac
doing_address = FALSE;
+
return offset;
}
@@ -5422,6 +5604,15 @@ dissect_x411_ContentConfidentialityAlgorithmIdentifier(gboolean implicit_tag _U_
static int
+dissect_x411_ContentIntegrityCheck(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
dissect_x411_ContentIntegrityAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
@@ -5431,6 +5622,15 @@ dissect_x411_ContentIntegrityAlgorithmIdentifier(gboolean implicit_tag _U_, tvbu
static int
+dissect_x411_MessageOriginAuthenticationCheck(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
dissect_x411_MessageOriginAuthenticationAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
@@ -5503,6 +5703,15 @@ dissect_x411_ContentCorrelator(gboolean implicit_tag _U_, tvbuff_t *tvb, int off
static int
+dissect_x411_ProbeOriginAuthenticationCheck(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
dissect_x411_ProbeOriginAuthenticationAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
@@ -5672,6 +5881,15 @@ dissect_x411_ReportingMTACertificate(gboolean implicit_tag _U_, tvbuff_t *tvb, i
static int
+dissect_x411_ReportOriginAuthenticationCheck(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
dissect_x411_ReportOriginAuthenticationAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
@@ -5758,7 +5976,7 @@ dissect_x411_PerRecipientReportFields(gboolean implicit_tag _U_, tvbuff_t *tvb,
-static int
+int
dissect_x411_OriginatingMTACertificate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, pinfo, tree, hf_index);
@@ -5767,9 +5985,9 @@ dissect_x411_OriginatingMTACertificate(gboolean implicit_tag _U_, tvbuff_t *tvb,
-static int
-dissect_x411_ProofOfSubmissionAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
- offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+int
+dissect_x411_ProofOfSubmission(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return offset;
}
@@ -5863,6 +6081,7 @@ dissect_x411_CertificateSelectors(gboolean implicit_tag _U_, tvbuff_t *tvb, int
static int
dissect_x411_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 421 "x411.cnf"
tvbuff_t *string = NULL;
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
@@ -5878,6 +6097,7 @@ dissect_x411_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pa
+
return offset;
}
@@ -5952,7 +6172,7 @@ static const ber_sequence_t UniversalOrBMPString_set[] = {
{ 0, 0, 0, NULL }
};
-static int
+int
dissect_x411_UniversalOrBMPString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
UniversalOrBMPString_set, hf_index, ett_x411_UniversalOrBMPString);
@@ -6558,6 +6778,9 @@ static void dissect_InternalTraceInformation_PDU(tvbuff_t *tvb, packet_info *pin
static void dissect_TraceInformation_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_TraceInformation(TRUE, tvb, 0, pinfo, tree, hf_x411_TraceInformation_PDU);
}
+static void dissect_ReportDeliveryArgument_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x411_ReportDeliveryArgument(FALSE, tvb, 0, pinfo, tree, hf_x411_ReportDeliveryArgument_PDU);
+}
static void dissect_RecipientReassignmentProhibited_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_RecipientReassignmentProhibited(FALSE, tvb, 0, pinfo, tree, hf_x411_RecipientReassignmentProhibited_PDU);
}
@@ -6606,6 +6829,12 @@ static void dissect_OriginatorCertificate_PDU(tvbuff_t *tvb, packet_info *pinfo,
static void dissect_ContentConfidentialityAlgorithmIdentifier_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_ContentConfidentialityAlgorithmIdentifier(FALSE, tvb, 0, pinfo, tree, hf_x411_ContentConfidentialityAlgorithmIdentifier_PDU);
}
+static void dissect_ContentIntegrityCheck_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x411_ContentIntegrityCheck(FALSE, tvb, 0, pinfo, tree, hf_x411_ContentIntegrityCheck_PDU);
+}
+static void dissect_MessageOriginAuthenticationCheck_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x411_MessageOriginAuthenticationCheck(FALSE, tvb, 0, pinfo, tree, hf_x411_MessageOriginAuthenticationCheck_PDU);
+}
static void dissect_MessageSecurityLabel_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_MessageSecurityLabel(FALSE, tvb, 0, pinfo, tree, hf_x411_MessageSecurityLabel_PDU);
}
@@ -6618,6 +6847,9 @@ static void dissect_ProofOfDeliveryRequest_PDU(tvbuff_t *tvb, packet_info *pinfo
static void dissect_ContentCorrelator_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_ContentCorrelator(FALSE, tvb, 0, pinfo, tree, hf_x411_ContentCorrelator_PDU);
}
+static void dissect_ProbeOriginAuthenticationCheck_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x411_ProbeOriginAuthenticationCheck(FALSE, tvb, 0, pinfo, tree, hf_x411_ProbeOriginAuthenticationCheck_PDU);
+}
static void dissect_RedirectionHistory_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_RedirectionHistory(FALSE, tvb, 0, pinfo, tree, hf_x411_RedirectionHistory_PDU);
}
@@ -6636,6 +6868,12 @@ static void dissect_ReportingDLName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto
static void dissect_ReportingMTACertificate_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_ReportingMTACertificate(FALSE, tvb, 0, pinfo, tree, hf_x411_ReportingMTACertificate_PDU);
}
+static void dissect_ReportOriginAuthenticationCheck_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x411_ReportOriginAuthenticationCheck(FALSE, tvb, 0, pinfo, tree, hf_x411_ReportOriginAuthenticationCheck_PDU);
+}
+static void dissect_ProofOfSubmission_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x411_ProofOfSubmission(FALSE, tvb, 0, pinfo, tree, hf_x411_ProofOfSubmission_PDU);
+}
static void dissect_ReportingMTAName_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x411_ReportingMTAName(FALSE, tvb, 0, pinfo, tree, hf_x411_ReportingMTAName_PDU);
}
@@ -6690,7 +6928,7 @@ static void dissect_PhysicalDeliveryOfficeName_PDU(tvbuff_t *tvb, packet_info *p
/*--- End of included file: packet-x411-fn.c ---*/
-
+#line 80 "packet-x411-template.c"
static int
call_x411_oid_callback(char *base_oid, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
@@ -6819,7 +7057,7 @@ void proto_register_x411(void) {
{
/*--- Included file: packet-x411-hfarr.c ---*/
-
+#line 1 "packet-x411-hfarr.c"
{ &hf_x411_MTABindArgument_PDU,
{ "MTABindArgument", "x411.MTABindArgument",
FT_UINT32, BASE_DEC, VALS(x411_MTABindArgument_vals), 0,
@@ -6844,6 +7082,10 @@ void proto_register_x411(void) {
{ "TraceInformation", "x411.TraceInformation",
FT_UINT32, BASE_DEC, NULL, 0,
"TraceInformation", HFILL }},
+ { &hf_x411_ReportDeliveryArgument_PDU,
+ { "ReportDeliveryArgument", "x411.ReportDeliveryArgument",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ReportDeliveryArgument", HFILL }},
{ &hf_x411_RecipientReassignmentProhibited_PDU,
{ "RecipientReassignmentProhibited", "x411.RecipientReassignmentProhibited",
FT_UINT32, BASE_DEC, VALS(x411_RecipientReassignmentProhibited_vals), 0,
@@ -6890,7 +7132,7 @@ void proto_register_x411(void) {
"RecipientNumberForAdvice", HFILL }},
{ &hf_x411_PhysicalRenditionAttributes_PDU,
{ "PhysicalRenditionAttributes", "x411.PhysicalRenditionAttributes",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"PhysicalRenditionAttributes", HFILL }},
{ &hf_x411_OriginatorReturnAddress_PDU,
{ "OriginatorReturnAddress", "x411.OriginatorReturnAddress",
@@ -6908,6 +7150,14 @@ void proto_register_x411(void) {
{ "ContentConfidentialityAlgorithmIdentifier", "x411.ContentConfidentialityAlgorithmIdentifier",
FT_NONE, BASE_NONE, NULL, 0,
"ContentConfidentialityAlgorithmIdentifier", HFILL }},
+ { &hf_x411_ContentIntegrityCheck_PDU,
+ { "ContentIntegrityCheck", "x411.ContentIntegrityCheck",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ContentIntegrityCheck", HFILL }},
+ { &hf_x411_MessageOriginAuthenticationCheck_PDU,
+ { "MessageOriginAuthenticationCheck", "x411.MessageOriginAuthenticationCheck",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "MessageOriginAuthenticationCheck", HFILL }},
{ &hf_x411_MessageSecurityLabel_PDU,
{ "MessageSecurityLabel", "x411.MessageSecurityLabel",
FT_NONE, BASE_NONE, NULL, 0,
@@ -6924,6 +7174,10 @@ void proto_register_x411(void) {
{ "ContentCorrelator", "x411.ContentCorrelator",
FT_UINT32, BASE_DEC, VALS(x411_ContentCorrelator_vals), 0,
"ContentCorrelator", HFILL }},
+ { &hf_x411_ProbeOriginAuthenticationCheck_PDU,
+ { "ProbeOriginAuthenticationCheck", "x411.ProbeOriginAuthenticationCheck",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProbeOriginAuthenticationCheck", HFILL }},
{ &hf_x411_RedirectionHistory_PDU,
{ "RedirectionHistory", "x411.RedirectionHistory",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -6948,6 +7202,14 @@ void proto_register_x411(void) {
{ "ReportingMTACertificate", "x411.ReportingMTACertificate",
FT_NONE, BASE_NONE, NULL, 0,
"ReportingMTACertificate", HFILL }},
+ { &hf_x411_ReportOriginAuthenticationCheck_PDU,
+ { "ReportOriginAuthenticationCheck", "x411.ReportOriginAuthenticationCheck",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ReportOriginAuthenticationCheck", HFILL }},
+ { &hf_x411_ProofOfSubmission_PDU,
+ { "ProofOfSubmission", "x411.ProofOfSubmission",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProofOfSubmission", HFILL }},
{ &hf_x411_ReportingMTAName_PDU,
{ "ReportingMTAName", "x411.ReportingMTAName",
FT_NONE, BASE_NONE, NULL, 0,
@@ -7348,6 +7610,10 @@ void proto_register_x411(void) {
{ "simple", "x411.simple",
FT_UINT32, BASE_DEC, VALS(x411_Password_vals), 0,
"Credentials/simple", HFILL }},
+ { &hf_x411_protected,
+ { "protected", "x411.protected",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Credentials/protected", HFILL }},
{ &hf_x411_ia5_string,
{ "ia5-string", "x411.ia5_string",
FT_STRING, BASE_NONE, NULL, 0,
@@ -7356,6 +7622,34 @@ void proto_register_x411(void) {
{ "octet-string", "x411.octet_string",
FT_BYTES, BASE_HEX, NULL, 0,
"Password/octet-string", HFILL }},
+ { &hf_x411_signature,
+ { "signature", "x411.signature",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtectedPassword/signature", HFILL }},
+ { &hf_x411_time1,
+ { "time1", "x411.time1",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "ProtectedPassword/time1", HFILL }},
+ { &hf_x411_time2,
+ { "time2", "x411.time2",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "ProtectedPassword/time2", HFILL }},
+ { &hf_x411_random1,
+ { "random1", "x411.random1",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "ProtectedPassword/random1", HFILL }},
+ { &hf_x411_random2,
+ { "random2", "x411.random2",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "ProtectedPassword/random2", HFILL }},
+ { &hf_x411_algorithmIdentifier,
+ { "algorithmIdentifier", "x411.algorithmIdentifier",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Signature/algorithmIdentifier", HFILL }},
+ { &hf_x411_encrypted,
+ { "encrypted", "x411.encrypted",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Signature/encrypted", HFILL }},
{ &hf_x411_SecurityContext_item,
{ "Item", "x411.SecurityContext_item",
FT_NONE, BASE_NONE, NULL, 0,
@@ -7420,6 +7714,10 @@ void proto_register_x411(void) {
{ "recipient-certificate", "x411.recipient_certificate",
FT_NONE, BASE_NONE, NULL, 0,
"", HFILL }},
+ { &hf_x411_proof_of_delivery,
+ { "proof-of-delivery", "x411.proof_of_delivery",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "MessageDeliveryResult/proof-of-delivery", HFILL }},
{ &hf_x411_subject_submission_identifier,
{ "subject-submission-identifier", "x411.subject_submission_identifier",
FT_NONE, BASE_NONE, NULL, 0,
@@ -7738,7 +8036,7 @@ void proto_register_x411(void) {
"", HFILL }},
{ &hf_x411_extended,
{ "extended", "x411.extended",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"", HFILL }},
{ &hf_x411_OtherRecipientNames_item,
{ "Item", "x411.OtherRecipientNames_item",
@@ -7750,7 +8048,7 @@ void proto_register_x411(void) {
"ExtensionType/standard-extension", HFILL }},
{ &hf_x411_private_extension,
{ "private-extension", "x411.private_extension",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"ExtensionType/private-extension", HFILL }},
{ &hf_x411_extension_type,
{ "type", "x411.type",
@@ -8118,7 +8416,7 @@ void proto_register_x411(void) {
"EncodedInformationTypes/extended-encoded-information-types", HFILL }},
{ &hf_x411_ExtendedEncodedInformationTypes_item,
{ "Item", "x411.ExtendedEncodedInformationTypes_item",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"ExtendedEncodedInformationTypes/_item", HFILL }},
{ &hf_x411_graphic_character_sets,
{ "graphic-character-sets", "x411.graphic_character_sets",
@@ -8142,7 +8440,7 @@ void proto_register_x411(void) {
"TeletexNonBasicParameters/private-use", HFILL }},
{ &hf_x411_security_policy_identifier,
{ "security-policy-identifier", "x411.security_policy_identifier",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"SecurityLabel/security-policy-identifier", HFILL }},
{ &hf_x411_security_classification,
{ "security-classification", "x411.security_classification",
@@ -8162,7 +8460,7 @@ void proto_register_x411(void) {
"SecurityCategories/_item", HFILL }},
{ &hf_x411_category_type,
{ "type", "x411.type",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"SecurityCategory/type", HFILL }},
{ &hf_x411_category_value,
{ "value", "x411.value",
@@ -8486,7 +8784,7 @@ void proto_register_x411(void) {
"", HFILL }},
/*--- End of included file: packet-x411-hfarr.c ---*/
-
+#line 207 "packet-x411-template.c"
};
/* List of subtrees */
@@ -8494,7 +8792,7 @@ void proto_register_x411(void) {
&ett_x411,
/*--- Included file: packet-x411-ettarr.c ---*/
-
+#line 1 "packet-x411-ettarr.c"
&ett_x411_MTABindArgument,
&ett_x411_AuthenticatedArgument,
&ett_x411_MTABindResult,
@@ -8534,6 +8832,8 @@ void proto_register_x411(void) {
&ett_x411_DeliveryQueue,
&ett_x411_Credentials,
&ett_x411_Password,
+ &ett_x411_ProtectedPassword,
+ &ett_x411_Signature,
&ett_x411_SecurityContext,
&ett_x411_MessageSubmissionArgument,
&ett_x411_MessageSubmissionResult,
@@ -8659,7 +8959,7 @@ void proto_register_x411(void) {
&ett_x411_SecurityCategory,
/*--- End of included file: packet-x411-ettarr.c ---*/
-
+#line 213 "packet-x411-template.c"
};
/* Register protocol */
@@ -8678,7 +8978,7 @@ void proto_reg_handoff_x411(void) {
/*--- Included file: packet-x411-dis-tab.c ---*/
-
+#line 1 "packet-x411-dis-tab.c"
register_ber_oid_dissector("x411.extension.1", dissect_RecipientReassignmentProhibited_PDU, proto_x411, "recipient-reassignment-prohibited");
register_ber_oid_dissector("x411.extension.2", dissect_MTSOriginatorRequestedAlternateRecipient_PDU, proto_x411, "originator-requested-alternate-recipient");
register_ber_oid_dissector("x411.extension.3", dissect_DLExpansionProhibited_PDU, proto_x411, "dl-expansion-prohibited");
@@ -8695,16 +8995,21 @@ void proto_reg_handoff_x411(void) {
register_ber_oid_dissector("x411.extension.14", dissect_PhysicalDeliveryReportRequest_PDU, proto_x411, "physical-delivery-report-request");
register_ber_oid_dissector("x411.extension.15", dissect_OriginatorCertificate_PDU, proto_x411, "originator-certificate");
register_ber_oid_dissector("x411.extension.17", dissect_ContentConfidentialityAlgorithmIdentifier_PDU, proto_x411, "content-confidentiality-algorithm-identifier");
+ register_ber_oid_dissector("x411.extension.18", dissect_ContentIntegrityCheck_PDU, proto_x411, "content-integrity-check");
+ register_ber_oid_dissector("x411.extension.19", dissect_MessageOriginAuthenticationCheck_PDU, proto_x411, "message-origin-authentication-check");
register_ber_oid_dissector("x411.extension.20", dissect_MessageSecurityLabel_PDU, proto_x411, "message-security-label");
register_ber_oid_dissector("x411.extension.21", dissect_ProofOfSubmissionRequest_PDU, proto_x411, "proof-of-submission-request");
register_ber_oid_dissector("x411.extension.22", dissect_ProofOfDeliveryRequest_PDU, proto_x411, "proof-of-delivery-request");
register_ber_oid_dissector("x411.extension.23", dissect_ContentCorrelator_PDU, proto_x411, "content-correlator");
+ register_ber_oid_dissector("x411.extension.24", dissect_ProbeOriginAuthenticationCheck_PDU, proto_x411, "probe-origin-authentication-check");
register_ber_oid_dissector("x411.extension.25", dissect_RedirectionHistory_PDU, proto_x411, "redirection-history");
register_ber_oid_dissector("x411.extension.26", dissect_DLExpansionHistory_PDU, proto_x411, "dl-expansion-history");
register_ber_oid_dissector("x411.extension.27", dissect_PhysicalForwardingAddress_PDU, proto_x411, "physical-forwarding-address");
register_ber_oid_dissector("x411.extension.30", dissect_OriginatorAndDLExpansionHistory_PDU, proto_x411, "originator-and-DL-expansion-history");
register_ber_oid_dissector("x411.extension.31", dissect_ReportingDLName_PDU, proto_x411, "reporting-DL-name");
register_ber_oid_dissector("x411.extension.32", dissect_ReportingMTACertificate_PDU, proto_x411, "reporting-MTA-certificate");
+ register_ber_oid_dissector("x411.extension.33", dissect_ReportOriginAuthenticationCheck_PDU, proto_x411, "report-origin-authentication-check");
+ register_ber_oid_dissector("x411.extension.35", dissect_ProofOfSubmission_PDU, proto_x411, "proof-of-submission");
register_ber_oid_dissector("x411.extension.37", dissect_TraceInformation_PDU, proto_x411, "trace-information");
register_ber_oid_dissector("x411.extension.38", dissect_InternalTraceInformation_PDU, proto_x411, "internal-trace-information");
register_ber_oid_dissector("x411.extension.39", dissect_ReportingMTAName_PDU, proto_x411, "reporting-MTA-name");
@@ -8724,10 +9029,11 @@ void proto_reg_handoff_x411(void) {
register_ber_oid_dissector("x411.extension-attribute.25", dissect_UniversalOrganizationName_PDU, proto_x411, "universal-organization-name");
register_ber_oid_dissector("x411.extension-attribute.26", dissect_UniversalPersonalName_PDU, proto_x411, "universal-personal-name");
register_ber_oid_dissector("x411.extension-attribute.27", dissect_UniversalOrganizationalUnitNames_PDU, proto_x411, "universal-organizational-unit-names");
+ register_ber_oid_dissector("2.6.1.4.14", dissect_ReportDeliveryArgument_PDU, proto_x411, "id-et-report");
/*--- End of included file: packet-x411-dis-tab.c ---*/
-
+#line 230 "packet-x411-template.c"
/* APPLICATION CONTEXT */
diff --git a/epan/dissectors/packet-x411.h b/epan/dissectors/packet-x411.h
index 00fb366a96..632a6358e4 100644
--- a/epan/dissectors/packet-x411.h
+++ b/epan/dissectors/packet-x411.h
@@ -1,10 +1,11 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
-/* ./packet-x411.h */
+/* .\packet-x411.h */
/* ../../tools/asn2eth.py -X -b -e -p x411 -c x411.cnf -s packet-x411-template x411.asn */
/* Input file: packet-x411-template.h */
+#line 1 "packet-x411-template.h"
/* packet-x411.h
* Routines for X.411 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -36,18 +37,23 @@
int dissect_x411_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree);
/*--- Included file: packet-x411-exp.h ---*/
-
+#line 1 "packet-x411-exp.h"
+int dissect_x411_MessageSubmissionEnvelope(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_OtherMessageDeliveryFields(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+int dissect_x411_MessageDeliveryIdentifier(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_MessageDeliveryTime(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_SupplementaryInformation(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+int dissect_x411_OriginatingMTACertificate(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+int dissect_x411_ProofOfSubmission(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_ExtendedCertificates(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_ORName(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+int dissect_x411_UniversalOrBMPString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_EncodedInformationTypes(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_G3FacsimileNonBasicParameters(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_TeletexNonBasicParameters(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x411_SecurityLabel(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
/*--- End of included file: packet-x411-exp.h ---*/
-
+#line 31 "packet-x411-template.h"
#endif /* PACKET_X411_H */
diff --git a/epan/dissectors/packet-x420.c b/epan/dissectors/packet-x420.c
index d786dbe90f..f17746c8fa 100644
--- a/epan/dissectors/packet-x420.c
+++ b/epan/dissectors/packet-x420.c
@@ -5,6 +5,7 @@
/* Input file: packet-x420-template.c */
+#line 1 "packet-x420-template.c"
/* packet-x420.c
* Routines for X.420 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -46,6 +47,7 @@
#include "packet-ros.h"
#include "packet-x509af.h"
+#include "packet-x509ce.h"
#include "packet-x411.h"
#include "packet-x420.h"
@@ -59,13 +61,79 @@ 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}
+};
-/*--- Included file: packet-x420-hf.c ---*/
+/*--- Included file: packet-x420-hf.c ---*/
+#line 1 "packet-x420-hf.c"
+static int hf_x420_InformationObject_PDU = -1; /* InformationObject */
+static int hf_x420_IA5TextParameters_PDU = -1; /* IA5TextParameters */
+static int hf_x420_IA5TextData_PDU = -1; /* IA5TextData */
+static int hf_x420_G3FacsimileParameters_PDU = -1; /* G3FacsimileParameters */
+static int hf_x420_G3FacsimileData_PDU = -1; /* G3FacsimileData */
+static int hf_x420_G4Class1Data_PDU = -1; /* G4Class1Data */
+static int hf_x420_MixedModeData_PDU = -1; /* MixedModeData */
+static int hf_x420_TeletexParameters_PDU = -1; /* TeletexParameters */
+static int hf_x420_TeletexData_PDU = -1; /* TeletexData */
+static int hf_x420_VideotexParameters_PDU = -1; /* VideotexParameters */
+static int hf_x420_VideotexData_PDU = -1; /* VideotexData */
+static int hf_x420_EncryptedParameters_PDU = -1; /* EncryptedParameters */
+static int hf_x420_EncryptedData_PDU = -1; /* EncryptedData */
+static int hf_x420_MessageParameters_PDU = -1; /* MessageParameters */
+static int hf_x420_MessageData_PDU = -1; /* MessageData */
+static int hf_x420_BilaterallyDefinedBodyPart_PDU = -1; /* BilaterallyDefinedBodyPart */
+static int hf_x420_IPN_PDU = -1; /* IPN */
static int hf_x420_AbsenceAdvice_PDU = -1; /* AbsenceAdvice */
static int hf_x420_ChangeOfAddressAdvice_PDU = -1; /* ChangeOfAddressAdvice */
static int hf_x420_IPMAssemblyInstructions_PDU = -1; /* IPMAssemblyInstructions */
static int hf_x420_OriginatingUA_PDU = -1; /* OriginatingUA */
+static int hf_x420_IncompleteCopy_PDU = -1; /* IncompleteCopy */
+static int hf_x420_Languages_PDU = -1; /* Languages */
+static int hf_x420_AutoSubmitted_PDU = -1; /* AutoSubmitted */
+static int hf_x420_BodyPartSignatures_PDU = -1; /* BodyPartSignatures */
+static int hf_x420_IPMSecurityLabel_PDU = -1; /* IPMSecurityLabel */
+static int hf_x420_AuthorizationTime_PDU = -1; /* AuthorizationTime */
+static int hf_x420_CirculationList_PDU = -1; /* CirculationList */
+static int hf_x420_CirculationListIndicator_PDU = -1; /* CirculationListIndicator */
+static int hf_x420_DistributionCodes_PDU = -1; /* DistributionCodes */
+static int hf_x420_ExtendedSubject_PDU = -1; /* ExtendedSubject */
+static int hf_x420_InformationCategories_PDU = -1; /* InformationCategories */
+static int hf_x420_ManualHandlingInstructions_PDU = -1; /* ManualHandlingInstructions */
+static int hf_x420_OriginatorsReference_PDU = -1; /* OriginatorsReference */
+static int hf_x420_PrecedencePolicyIdentifier_PDU = -1; /* PrecedencePolicyIdentifier */
+static int hf_x420_Precedence_PDU = -1; /* Precedence */
+static int hf_x420_GeneralTextParameters_PDU = -1; /* GeneralTextParameters */
+static int hf_x420_GeneralTextData_PDU = -1; /* GeneralTextData */
+static int hf_x420_VoiceParameters_PDU = -1; /* VoiceParameters */
+static int hf_x420_VoiceData_PDU = -1; /* VoiceData */
+static int hf_x420_ForwardedContentParameters_PDU = -1; /* ForwardedContentParameters */
static int hf_x420_ipm = -1; /* IPM */
static int hf_x420_ipn = -1; /* IPN */
static int hf_x420_heading = -1; /* Heading */
@@ -113,7 +181,7 @@ static int hf_x420_g3_facsimile = -1; /* G3FacsimileBodyPart */
static int hf_x420_g4_class1 = -1; /* G4Class1BodyPart */
static int hf_x420_teletex = -1; /* TeletexBodyPart */
static int hf_x420_videotex = -1; /* VideotexBodyPart */
-static int hf_x420_encrypted = -1; /* EncryptedBodyPart */
+static int hf_x420_encrypted_bp = -1; /* EncryptedBodyPart */
static int hf_x420_message = -1; /* MessageBodyPart */
static int hf_x420_mixed_mode = -1; /* MixedModeBodyPart */
static int hf_x420_bilaterally_defined = -1; /* BilaterallyDefinedBodyPart */
@@ -129,8 +197,8 @@ static int hf_x420_g3facsimile_data = -1; /* G3FacsimileData */
static int hf_x420_number_of_pages = -1; /* INTEGER */
static int hf_x420_g3facsimile_non_basic_parameters = -1; /* G3FacsimileNonBasicParameters */
static int hf_x420_G3FacsimileData_item = -1; /* BIT_STRING */
-static int hf_x420_G4Class1BodyPart_item = -1; /* Interchange_Data_Element */
-static int hf_x420_MixedModeBodyPart_item = -1; /* Interchange_Data_Element */
+static int hf_x420_G4Class1Data_item = -1; /* Interchange_Data_Element */
+static int hf_x420_MixedModeData_item = -1; /* Interchange_Data_Element */
static int hf_x420_teletex_parameters = -1; /* TeletexParameters */
static int hf_x420_teletex_data = -1; /* TeletexData */
static int hf_x420_telex_compatible = -1; /* BOOLEAN */
@@ -177,10 +245,48 @@ static int hf_x420_assembly_instructions = -1; /* BodyPartReferences */
static int hf_x420_BodyPartReferences_item = -1; /* BodyPartReference */
static int hf_x420_stored_entry = -1; /* SequenceNumber */
static int hf_x420_stored_content = -1; /* SequenceNumber */
-static int hf_x420_submitted_body_part = -1; /* INTEGER_1_MAX */
+static int hf_x420_submitted_body_part = -1; /* INTEGER */
static int hf_x420_stored_body_part = -1; /* T_stored_body_part */
static int hf_x420_message_entry = -1; /* SequenceNumber */
-static int hf_x420_body_part_number = -1; /* INTEGER_1_MAX */
+static int hf_x420_body_part_number = -1; /* BodyPartNumber */
+static int hf_x420_Languages_item = -1; /* Language */
+static int hf_x420_algorithmIdentifier = -1; /* AlgorithmIdentifier */
+static int hf_x420_encrypted = -1; /* BIT_STRING */
+static int hf_x420_BodyPartSignatures_item = -1; /* BodyPartSignatures_item */
+static int hf_x420_body_part_signature = -1; /* BodyPartSignature */
+static int hf_x420_originator_certificate_selector = -1; /* CertificateAssertion */
+static int hf_x420_content_security_label = -1; /* SecurityLabel */
+static int hf_x420_heading_security_label = -1; /* SecurityLabel */
+static int hf_x420_body_part_security_labels = -1; /* SEQUENCE_OF_BodyPartSecurityLabel */
+static int hf_x420_body_part_security_labels_item = -1; /* BodyPartSecurityLabel */
+static int hf_x420_body_part_unlabelled = -1; /* NULL */
+static int hf_x420_body_part_security_label = -1; /* SecurityLabel */
+static int hf_x420_CirculationList_item = -1; /* CirculationMember */
+static int hf_x420_circulation_recipient = -1; /* RecipientSpecifier */
+static int hf_x420_checked = -1; /* Checkmark */
+static int hf_x420_simple = -1; /* NULL */
+static int hf_x420_timestamped = -1; /* CirculationTime */
+static int hf_x420_signed = -1; /* CirculationSignature */
+static int hf_x420_circulation_signature_algorithm_identifier = -1; /* CirculationSignatureAlgorithmIdentifier */
+static int hf_x420_timestamp = -1; /* CirculationTime */
+static int hf_x420_circulation_signature_data = -1; /* CirculationSignatureData */
+static int hf_x420_DistributionCodes_item = -1; /* DistributionCode */
+static int hf_x420_oid_code = -1; /* OBJECT_IDENTIFIER */
+static int hf_x420_alphanumeric_code = -1; /* AlphaCode */
+static int hf_x420_or_descriptor = -1; /* ORDescriptor */
+static int hf_x420_InformationCategories_item = -1; /* InformationCategory */
+static int hf_x420_reference = -1; /* OBJECT_IDENTIFIER */
+static int hf_x420_description = -1; /* DescriptionString */
+static int hf_x420_ManualHandlingInstructions_item = -1; /* ManualHandlingInstruction */
+static int hf_x420_GeneralTextParameters_item = -1; /* CharacterSetRegistration */
+static int hf_x420_voice_message_duration = -1; /* INTEGER */
+static int hf_x420_voice_encoding_type = -1; /* OBJECT_IDENTIFIER */
+static int hf_x420_supplementary_information = -1; /* IA5String */
+static int hf_x420_mts_identifier = -1; /* MessageDeliveryIdentifier */
+static int hf_x420_submission_proof = -1; /* SubmissionProof */
+static int hf_x420_proof_of_submission = -1; /* ProofOfSubmission */
+static int hf_x420_originating_MTA_certificate = -1; /* OriginatingMTACertificate */
+static int hf_x420_message_submission_envelope = -1; /* MessageSubmissionEnvelope */
/* named bits */
static int hf_x420_NotificationRequests_rn = -1;
static int hf_x420_NotificationRequests_nrn = -1;
@@ -189,13 +295,13 @@ static int hf_x420_NotificationRequests_an_supported = -1;
static int hf_x420_NotificationRequests_suppress_an = -1;
/*--- End of included file: packet-x420-hf.c ---*/
-
+#line 86 "packet-x420-template.c"
/* Initialize the subtree pointers */
static gint ett_x420 = -1;
/*--- Included file: packet-x420-ett.c ---*/
-
+#line 1 "packet-x420-ett.c"
static gint ett_x420_InformationObject = -1;
static gint ett_x420_IPM = -1;
static gint ett_x420_IPMSExtension = -1;
@@ -221,8 +327,8 @@ static gint ett_x420_IA5TextParameters = -1;
static gint ett_x420_G3FacsimileBodyPart = -1;
static gint ett_x420_G3FacsimileParameters = -1;
static gint ett_x420_G3FacsimileData = -1;
-static gint ett_x420_G4Class1BodyPart = -1;
-static gint ett_x420_MixedModeBodyPart = -1;
+static gint ett_x420_G4Class1Data = -1;
+static gint ett_x420_MixedModeData = -1;
static gint ett_x420_TeletexBodyPart = -1;
static gint ett_x420_TeletexParameters = -1;
static gint ett_x420_TeletexData = -1;
@@ -246,13 +352,34 @@ static gint ett_x420_IPMAssemblyInstructions = -1;
static gint ett_x420_BodyPartReferences = -1;
static gint ett_x420_BodyPartReference = -1;
static gint ett_x420_T_stored_body_part = -1;
+static gint ett_x420_Languages = -1;
+static gint ett_x420_Signature = -1;
+static gint ett_x420_BodyPartSignatures = -1;
+static gint ett_x420_BodyPartSignatures_item = -1;
+static gint ett_x420_IPMSecurityLabel = -1;
+static gint ett_x420_SEQUENCE_OF_BodyPartSecurityLabel = -1;
+static gint ett_x420_BodyPartSecurityLabel = -1;
+static gint ett_x420_CirculationList = -1;
+static gint ett_x420_CirculationMember = -1;
+static gint ett_x420_Checkmark = -1;
+static gint ett_x420_CirculationSignatureData = -1;
+static gint ett_x420_CirculationSignature = -1;
+static gint ett_x420_DistributionCodes = -1;
+static gint ett_x420_DistributionCode = -1;
+static gint ett_x420_InformationCategories = -1;
+static gint ett_x420_InformationCategory = -1;
+static gint ett_x420_ManualHandlingInstructions = -1;
+static gint ett_x420_GeneralTextParameters = -1;
+static gint ett_x420_VoiceParameters = -1;
+static gint ett_x420_ForwardedContentParameters = -1;
+static gint ett_x420_SubmissionProof = -1;
/*--- End of included file: packet-x420-ett.c ---*/
-
+#line 90 "packet-x420-template.c"
/*--- Included file: packet-x420-fn.c ---*/
-
+#line 1 "packet-x420-fn.c"
/*--- Cyclic dependencies ---*/
/* IPM -> Body -> BodyPart -> MessageBodyPart -> MessageData -> IPM */
@@ -289,12 +416,42 @@ static int dissect_algorithm_identifier(packet_info *pinfo, proto_tree *tree, tv
static int dissect_originator_certificates(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x411_ExtendedCertificates(FALSE, tvb, offset, pinfo, tree, hf_x420_originator_certificates);
}
+static int dissect_originator_certificates_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_ExtendedCertificates(TRUE, tvb, offset, pinfo, tree, hf_x420_originator_certificates);
+}
static int dissect_delivery_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x411_MessageDeliveryTime(TRUE, tvb, offset, pinfo, tree, hf_x420_delivery_time);
}
static int dissect_delivery_envelope_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x411_OtherMessageDeliveryFields(TRUE, tvb, offset, pinfo, tree, hf_x420_delivery_envelope);
}
+static int dissect_algorithmIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509af_AlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x420_algorithmIdentifier);
+}
+static int dissect_originator_certificate_selector_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x509ce_CertificateAssertion(TRUE, tvb, offset, pinfo, tree, hf_x420_originator_certificate_selector);
+}
+static int dissect_content_security_label_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_SecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_content_security_label);
+}
+static int dissect_heading_security_label_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_SecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_heading_security_label);
+}
+static int dissect_body_part_security_label_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_SecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_body_part_security_label);
+}
+static int dissect_mts_identifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_MessageDeliveryIdentifier(TRUE, tvb, offset, pinfo, tree, hf_x420_mts_identifier);
+}
+static int dissect_proof_of_submission_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_ProofOfSubmission(TRUE, tvb, offset, pinfo, tree, hf_x420_proof_of_submission);
+}
+static int dissect_originating_MTA_certificate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_OriginatingMTACertificate(TRUE, tvb, offset, pinfo, tree, hf_x420_originating_MTA_certificate);
+}
+static int dissect_message_submission_envelope(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x411_MessageSubmissionEnvelope(FALSE, tvb, offset, pinfo, tree, hf_x420_message_submission_envelope);
+}
@@ -403,6 +560,9 @@ static int dissect_recipient_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t
static int dissect_new_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x420_ORDescriptor(TRUE, tvb, offset, pinfo, tree, hf_x420_new_address);
}
+static int dissect_or_descriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_ORDescriptor(TRUE, tvb, offset, pinfo, tree, hf_x420_or_descriptor);
+}
@@ -485,6 +645,7 @@ static int dissect_telex_compatible_impl(packet_info *pinfo, proto_tree *tree, t
static int
dissect_x420_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 110 "x420.cnf"
char *name = NULL;
offset = dissect_ber_object_identifier_str(implicit_tag, pinfo, tree, tvb, offset, hf_index, &object_identifier_id);
@@ -494,6 +655,7 @@ dissect_x420_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet
proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id);
+
return offset;
}
static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -504,10 +666,12 @@ static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int
static int
dissect_x420_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 118 "x420.cnf"
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree);
+
return offset;
}
static int dissect_value(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -579,6 +743,9 @@ dissect_x420_RecipientSpecifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int of
return offset;
}
+static int dissect_circulation_recipient(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_RecipientSpecifier(FALSE, tvb, offset, pinfo, tree, hf_x420_circulation_recipient);
+}
@@ -736,9 +903,18 @@ static int dissect_related_IPMs_impl(packet_info *pinfo, proto_tree *tree, tvbuf
static int
dissect_x420_SubjectField(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_TeletexString,
+#line 140 "x420.cnf"
+ tvbuff_t *subject=NULL;
+
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
pinfo, tree, tvb, offset, hf_index,
- NULL);
+ &subject);
+
+
+ if(subject && check_col(pinfo->cinfo, COL_INFO))
+ col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)", tvb_format_text(subject, 0, tvb_length(subject)));
+
+
return offset;
}
@@ -979,6 +1155,12 @@ dissect_x420_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packe
static int dissect_number_of_pages_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x420_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x420_number_of_pages);
}
+static int dissect_submitted_body_part_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x420_submitted_body_part);
+}
+static int dissect_voice_message_duration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_x420_voice_message_duration);
+}
static const ber_sequence_t G3FacsimileParameters_set[] = {
@@ -1011,6 +1193,9 @@ dissect_x420_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pa
static int dissect_G3FacsimileData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
return dissect_x420_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_x420_G3FacsimileData_item);
}
+static int dissect_encrypted(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_BIT_STRING(FALSE, tvb, offset, pinfo, tree, hf_x420_encrypted);
+}
static const ber_sequence_t G3FacsimileData_sequence_of[1] = {
@@ -1050,28 +1235,38 @@ static int dissect_g3_facsimile_impl(packet_info *pinfo, proto_tree *tree, tvbuf
static int
dissect_x420_Interchange_Data_Element(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-/*ARGSUSED*/
+#line 159 "x420.cnf"
/* XXX Not implemented yet */
+
return offset;
}
-static int dissect_G4Class1BodyPart_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x420_Interchange_Data_Element(FALSE, tvb, offset, pinfo, tree, hf_x420_G4Class1BodyPart_item);
+static int dissect_G4Class1Data_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_Interchange_Data_Element(FALSE, tvb, offset, pinfo, tree, hf_x420_G4Class1Data_item);
}
-static int dissect_MixedModeBodyPart_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x420_Interchange_Data_Element(FALSE, tvb, offset, pinfo, tree, hf_x420_MixedModeBodyPart_item);
+static int dissect_MixedModeData_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_Interchange_Data_Element(FALSE, tvb, offset, pinfo, tree, hf_x420_MixedModeData_item);
}
-static const ber_sequence_t G4Class1BodyPart_sequence_of[1] = {
- { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_G4Class1BodyPart_item },
+static const ber_sequence_t G4Class1Data_sequence_of[1] = {
+ { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_G4Class1Data_item },
};
static int
-dissect_x420_G4Class1BodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_x420_G4Class1Data(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,
- G4Class1BodyPart_sequence_of, hf_index, ett_x420_G4Class1BodyPart);
+ G4Class1Data_sequence_of, hf_index, ett_x420_G4Class1Data);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_G4Class1BodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x420_G4Class1Data(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return offset;
}
@@ -1262,8 +1457,8 @@ dissect_x420_EncryptedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int off
return offset;
}
-static int dissect_encrypted_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x420_EncryptedBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_encrypted);
+static int dissect_encrypted_bp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_EncryptedBodyPart(TRUE, tvb, offset, pinfo, tree, hf_x420_encrypted_bp);
}
@@ -1315,14 +1510,23 @@ static int dissect_message_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *
}
-static const ber_sequence_t MixedModeBodyPart_sequence_of[1] = {
- { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_MixedModeBodyPart_item },
+static const ber_sequence_t MixedModeData_sequence_of[1] = {
+ { BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_MixedModeData_item },
};
static int
-dissect_x420_MixedModeBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_x420_MixedModeData(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,
- MixedModeBodyPart_sequence_of, hf_index, ett_x420_MixedModeBodyPart);
+ MixedModeData_sequence_of, hf_index, ett_x420_MixedModeData);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_MixedModeBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x420_MixedModeData(implicit_tag, tvb, offset, pinfo, tree, hf_index);
return offset;
}
@@ -1347,10 +1551,12 @@ static int dissect_bilaterally_defined_impl(packet_info *pinfo, proto_tree *tree
static int
dissect_x420_NationallyDefinedBodyPart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
-/*ARGSUSED*/
+#line 162 "x420.cnf"
/* XXX Not implemented yet */
+
+
return offset;
}
static int dissect_nationally_defined_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
@@ -1397,7 +1603,7 @@ static const ber_choice_t BodyPart_choice[] = {
{ 4, BER_CLASS_CON, 4, 0, dissect_g4_class1_impl },
{ 5, BER_CLASS_CON, 5, 0, dissect_teletex_impl },
{ 6, BER_CLASS_CON, 6, 0, dissect_videotex_impl },
- { 8, BER_CLASS_CON, 8, 0, dissect_encrypted_impl },
+ { 8, BER_CLASS_CON, 8, 0, dissect_encrypted_bp_impl },
{ 9, BER_CLASS_CON, 9, 0, dissect_message_impl },
{ 11, BER_CLASS_CON, 11, 0, dissect_mixed_mode_impl },
{ 14, BER_CLASS_CON, 14, 0, dissect_bilaterally_defined_impl },
@@ -1446,12 +1652,15 @@ static const ber_sequence_t IPM_sequence[] = {
static int
dissect_x420_IPM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 122 "x420.cnf"
+
+ if((hf_index == hf_x420_ipm) && check_col(pinfo->cinfo, COL_INFO))
+ col_append_fstr(pinfo->cinfo, COL_INFO, " Message");
offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
IPM_sequence, hf_index, ett_x420_IPM);
- if((hf_index == hf_x420_ipm) && check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, " Message");
+
@@ -1769,12 +1978,15 @@ static const ber_sequence_t IPN_set[] = {
static int
dissect_x420_IPN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 130 "x420.cnf"
+
+ if((hf_index == hf_x420_ipn) && check_col(pinfo->cinfo, COL_INFO))
+ col_append_fstr(pinfo->cinfo, COL_INFO, " Notification");
offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
IPN_set, hf_index, ett_x420_IPN);
- if((hf_index == hf_x420_ipn) && check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, " Notification");
+
return offset;
@@ -1857,17 +2069,14 @@ static int dissect_message_entry(packet_info *pinfo, proto_tree *tree, tvbuff_t
static int
-dissect_x420_INTEGER_1_MAX(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+dissect_x420_BodyPartNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
NULL);
return offset;
}
-static int dissect_submitted_body_part_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x420_INTEGER_1_MAX(TRUE, tvb, offset, pinfo, tree, hf_x420_submitted_body_part);
-}
static int dissect_body_part_number(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
- return dissect_x420_INTEGER_1_MAX(FALSE, tvb, offset, pinfo, tree, hf_x420_body_part_number);
+ return dissect_x420_BodyPartNumber(FALSE, tvb, offset, pinfo, tree, hf_x420_body_part_number);
}
@@ -1958,8 +2167,674 @@ dissect_x420_OriginatingUA(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
return offset;
}
+
+
+static int
+dissect_x420_IncompleteCopy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_Language(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_Languages_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_Language(FALSE, tvb, offset, pinfo, tree, hf_x420_Languages_item);
+}
+
+
+static const ber_sequence_t Languages_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_Languages_item },
+};
+
+static int
+dissect_x420_Languages(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,
+ Languages_set_of, hf_index, ett_x420_Languages);
+
+ return offset;
+}
+
+
+static const value_string x420_AutoSubmitted_vals[] = {
+ { 0, "not-auto-submitted" },
+ { 1, "auto-generated" },
+ { 2, "auto-replied" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_x420_AutoSubmitted(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t Signature_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithmIdentifier },
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_Signature(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,
+ Signature_sequence, hf_index, ett_x420_Signature);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_BodyPartSignature(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x420_Signature(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_body_part_signature(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_BodyPartSignature(FALSE, tvb, offset, pinfo, tree, hf_x420_body_part_signature);
+}
+
+
+static const ber_sequence_t BodyPartSignatures_item_set[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_body_part_number },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_body_part_signature },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originator_certificate_selector_impl },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originator_certificates_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_BodyPartSignatures_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
+ BodyPartSignatures_item_set, hf_index, ett_x420_BodyPartSignatures_item);
+
+ return offset;
+}
+static int dissect_BodyPartSignatures_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_BodyPartSignatures_item(FALSE, tvb, offset, pinfo, tree, hf_x420_BodyPartSignatures_item);
+}
+
+
+static const ber_sequence_t BodyPartSignatures_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_BodyPartSignatures_item },
+};
+
+static int
+dissect_x420_BodyPartSignatures(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,
+ BodyPartSignatures_set_of, hf_index, ett_x420_BodyPartSignatures);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+static int dissect_body_part_unlabelled_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_NULL(TRUE, tvb, offset, pinfo, tree, hf_x420_body_part_unlabelled);
+}
+static int dissect_simple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_NULL(FALSE, tvb, offset, pinfo, tree, hf_x420_simple);
+}
+
+
+static const value_string x420_BodyPartSecurityLabel_vals[] = {
+ { 0, "body-part-unlabelled" },
+ { 1, "body-part-security-label" },
+ { 0, NULL }
+};
+
+static const ber_choice_t BodyPartSecurityLabel_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_body_part_unlabelled_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_body_part_security_label_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_BodyPartSecurityLabel(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,
+ BodyPartSecurityLabel_choice, hf_index, ett_x420_BodyPartSecurityLabel,
+ NULL);
+
+ return offset;
+}
+static int dissect_body_part_security_labels_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_BodyPartSecurityLabel(FALSE, tvb, offset, pinfo, tree, hf_x420_body_part_security_labels_item);
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_BodyPartSecurityLabel_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_body_part_security_labels_item },
+};
+
+static int
+dissect_x420_SEQUENCE_OF_BodyPartSecurityLabel(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,
+ SEQUENCE_OF_BodyPartSecurityLabel_sequence_of, hf_index, ett_x420_SEQUENCE_OF_BodyPartSecurityLabel);
+
+ return offset;
+}
+static int dissect_body_part_security_labels_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_SEQUENCE_OF_BodyPartSecurityLabel(TRUE, tvb, offset, pinfo, tree, hf_x420_body_part_security_labels);
+}
+
+
+static const ber_sequence_t IPMSecurityLabel_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_content_security_label_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_heading_security_label_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_body_part_security_labels_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_IPMSecurityLabel(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,
+ IPMSecurityLabel_sequence, hf_index, ett_x420_IPMSecurityLabel);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_AuthorizationTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_CirculationTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+static int dissect_timestamped(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_CirculationTime(FALSE, tvb, offset, pinfo, tree, hf_x420_timestamped);
+}
+static int dissect_timestamp(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_CirculationTime(FALSE, tvb, offset, pinfo, tree, hf_x420_timestamp);
+}
+
+
+
+static int
+dissect_x420_CirculationSignatureAlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_circulation_signature_algorithm_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_CirculationSignatureAlgorithmIdentifier(FALSE, tvb, offset, pinfo, tree, hf_x420_circulation_signature_algorithm_identifier);
+}
+
+
+static const ber_sequence_t CirculationSignatureData_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_circulation_signature_algorithm_identifier },
+ { BER_CLASS_APP, 11, BER_FLAGS_NOOWNTAG, dissect_this_IPM },
+ { BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_timestamp },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_CirculationSignatureData(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,
+ CirculationSignatureData_sequence, hf_index, ett_x420_CirculationSignatureData);
+
+ return offset;
+}
+static int dissect_circulation_signature_data(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_CirculationSignatureData(FALSE, tvb, offset, pinfo, tree, hf_x420_circulation_signature_data);
+}
+
+
+static const ber_sequence_t CirculationSignature_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_circulation_signature_data },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_algorithm_identifier },
+ { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_encrypted },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_CirculationSignature(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,
+ CirculationSignature_sequence, hf_index, ett_x420_CirculationSignature);
+
+ return offset;
+}
+static int dissect_signed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_CirculationSignature(FALSE, tvb, offset, pinfo, tree, hf_x420_signed);
+}
+
+
+static const value_string x420_Checkmark_vals[] = {
+ { 0, "simple" },
+ { 1, "timestamped" },
+ { 2, "signed" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Checkmark_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_simple },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_GeneralizedTime, BER_FLAGS_NOOWNTAG, dissect_timestamped },
+ { 2, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signed },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_Checkmark(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,
+ Checkmark_choice, hf_index, ett_x420_Checkmark,
+ NULL);
+
+ return offset;
+}
+static int dissect_checked(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_Checkmark(FALSE, tvb, offset, pinfo, tree, hf_x420_checked);
+}
+
+
+static const ber_sequence_t CirculationMember_set[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_circulation_recipient },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_checked },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_CirculationMember(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
+ CirculationMember_set, hf_index, ett_x420_CirculationMember);
+
+ return offset;
+}
+static int dissect_CirculationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_CirculationMember(FALSE, tvb, offset, pinfo, tree, hf_x420_CirculationList_item);
+}
+
+
+static const ber_sequence_t CirculationList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_CirculationList_item },
+};
+
+static int
+dissect_x420_CirculationList(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,
+ CirculationList_sequence_of, hf_index, ett_x420_CirculationList);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_CirculationListIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_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_oid_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_x420_oid_code);
+}
+static int dissect_reference_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_x420_reference);
+}
+static int dissect_voice_encoding_type_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_x420_voice_encoding_type);
+}
+
+
+
+static int
+dissect_x420_AlphaCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_alphanumeric_code(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_AlphaCode(FALSE, tvb, offset, pinfo, tree, hf_x420_alphanumeric_code);
+}
+
+
+static const ber_sequence_t DistributionCode_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_oid_code },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_alphanumeric_code },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_descriptor_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_DistributionCode(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,
+ DistributionCode_sequence, hf_index, ett_x420_DistributionCode);
+
+ return offset;
+}
+static int dissect_DistributionCodes_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_DistributionCode(FALSE, tvb, offset, pinfo, tree, hf_x420_DistributionCodes_item);
+}
+
+
+static const ber_sequence_t DistributionCodes_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_DistributionCodes_item },
+};
+
+static int
+dissect_x420_DistributionCodes(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,
+ DistributionCodes_sequence_of, hf_index, ett_x420_DistributionCodes);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_ExtendedSubject(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_DescriptionString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_description_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_DescriptionString(TRUE, tvb, offset, pinfo, tree, hf_x420_description);
+}
+
+
+static const ber_sequence_t InformationCategory_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reference_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_description_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_InformationCategory(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,
+ InformationCategory_sequence, hf_index, ett_x420_InformationCategory);
+
+ return offset;
+}
+static int dissect_InformationCategories_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_InformationCategory(FALSE, tvb, offset, pinfo, tree, hf_x420_InformationCategories_item);
+}
+
+
+static const ber_sequence_t InformationCategories_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_InformationCategories_item },
+};
+
+static int
+dissect_x420_InformationCategories(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,
+ InformationCategories_sequence_of, hf_index, ett_x420_InformationCategories);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_ManualHandlingInstruction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_ManualHandlingInstructions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_ManualHandlingInstruction(FALSE, tvb, offset, pinfo, tree, hf_x420_ManualHandlingInstructions_item);
+}
+
+
+static const ber_sequence_t ManualHandlingInstructions_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_ManualHandlingInstructions_item },
+};
+
+static int
+dissect_x420_ManualHandlingInstructions(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,
+ ManualHandlingInstructions_sequence_of, hf_index, ett_x420_ManualHandlingInstructions);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_OriginatorsReference(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_x411_UniversalOrBMPString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_PrecedencePolicyIdentifier(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_x420_Precedence(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_CharacterSetRegistration(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+#line 151 "x420.cnf"
+ guint32 crs;
+ proto_item *pi;
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ &crs);
+
+
+ if((pi = get_ber_last_created_item()))
+ proto_item_append_text(pi, " (%s)", val_to_str(crs, charsetreg_vals, "unknown"));
+
+
+
+ return offset;
+}
+static int dissect_GeneralTextParameters_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_CharacterSetRegistration(FALSE, tvb, offset, pinfo, tree, hf_x420_GeneralTextParameters_item);
+}
+
+
+static const ber_sequence_t GeneralTextParameters_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_GeneralTextParameters_item },
+};
+
+static int
+dissect_x420_GeneralTextParameters(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,
+ GeneralTextParameters_set_of, hf_index, ett_x420_GeneralTextParameters);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_GeneralTextData(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_GeneralString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_IA5String(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_IA5String,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_supplementary_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_IA5String(TRUE, tvb, offset, pinfo, tree, hf_x420_supplementary_information);
+}
+
+
+static const ber_sequence_t VoiceParameters_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voice_message_duration_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_voice_encoding_type_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supplementary_information_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_VoiceParameters(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,
+ VoiceParameters_sequence, hf_index, ett_x420_VoiceParameters);
+
+ return offset;
+}
+
+
+
+static int
+dissect_x420_VoiceData(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 const ber_sequence_t SubmissionProof_set[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_proof_of_submission_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_originating_MTA_certificate_impl },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_message_submission_envelope },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_SubmissionProof(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
+ SubmissionProof_set, hf_index, ett_x420_SubmissionProof);
+
+ return offset;
+}
+static int dissect_submission_proof_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_x420_SubmissionProof(TRUE, tvb, offset, pinfo, tree, hf_x420_submission_proof);
+}
+
+
+static const ber_sequence_t ForwardedContentParameters_set[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_time_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_delivery_envelope_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mts_identifier_impl },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_submission_proof_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_x420_ForwardedContentParameters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set(implicit_tag, pinfo, tree, tvb, offset,
+ ForwardedContentParameters_set, hf_index, ett_x420_ForwardedContentParameters);
+
+ return offset;
+}
+
/*--- PDUs ---*/
+static void dissect_InformationObject_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_InformationObject(FALSE, tvb, 0, pinfo, tree, hf_x420_InformationObject_PDU);
+}
+static void dissect_IA5TextParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_IA5TextParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_IA5TextParameters_PDU);
+}
+static void dissect_IA5TextData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_IA5TextData(FALSE, tvb, 0, pinfo, tree, hf_x420_IA5TextData_PDU);
+}
+static void dissect_G3FacsimileParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_G3FacsimileParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_G3FacsimileParameters_PDU);
+}
+static void dissect_G3FacsimileData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_G3FacsimileData(FALSE, tvb, 0, pinfo, tree, hf_x420_G3FacsimileData_PDU);
+}
+static void dissect_G4Class1Data_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_G4Class1Data(FALSE, tvb, 0, pinfo, tree, hf_x420_G4Class1Data_PDU);
+}
+static void dissect_MixedModeData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_MixedModeData(FALSE, tvb, 0, pinfo, tree, hf_x420_MixedModeData_PDU);
+}
+static void dissect_TeletexParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_TeletexParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_TeletexParameters_PDU);
+}
+static void dissect_TeletexData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_TeletexData(FALSE, tvb, 0, pinfo, tree, hf_x420_TeletexData_PDU);
+}
+static void dissect_VideotexParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_VideotexParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_VideotexParameters_PDU);
+}
+static void dissect_VideotexData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_VideotexData(FALSE, tvb, 0, pinfo, tree, hf_x420_VideotexData_PDU);
+}
+static void dissect_EncryptedParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_EncryptedParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_EncryptedParameters_PDU);
+}
+static void dissect_EncryptedData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_EncryptedData(FALSE, tvb, 0, pinfo, tree, hf_x420_EncryptedData_PDU);
+}
+static void dissect_MessageParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_MessageParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_MessageParameters_PDU);
+}
+static void dissect_MessageData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_MessageData(FALSE, tvb, 0, pinfo, tree, hf_x420_MessageData_PDU);
+}
+static void dissect_BilaterallyDefinedBodyPart_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_BilaterallyDefinedBodyPart(FALSE, tvb, 0, pinfo, tree, hf_x420_BilaterallyDefinedBodyPart_PDU);
+}
+static void dissect_IPN_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_IPN(FALSE, tvb, 0, pinfo, tree, hf_x420_IPN_PDU);
+}
static void dissect_AbsenceAdvice_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x420_AbsenceAdvice(FALSE, tvb, 0, pinfo, tree, hf_x420_AbsenceAdvice_PDU);
}
@@ -1972,10 +2847,70 @@ static void dissect_IPMAssemblyInstructions_PDU(tvbuff_t *tvb, packet_info *pinf
static void dissect_OriginatingUA_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
dissect_x420_OriginatingUA(FALSE, tvb, 0, pinfo, tree, hf_x420_OriginatingUA_PDU);
}
+static void dissect_IncompleteCopy_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_IncompleteCopy(FALSE, tvb, 0, pinfo, tree, hf_x420_IncompleteCopy_PDU);
+}
+static void dissect_Languages_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_Languages(FALSE, tvb, 0, pinfo, tree, hf_x420_Languages_PDU);
+}
+static void dissect_AutoSubmitted_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_AutoSubmitted(FALSE, tvb, 0, pinfo, tree, hf_x420_AutoSubmitted_PDU);
+}
+static void dissect_BodyPartSignatures_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_BodyPartSignatures(FALSE, tvb, 0, pinfo, tree, hf_x420_BodyPartSignatures_PDU);
+}
+static void dissect_IPMSecurityLabel_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_IPMSecurityLabel(FALSE, tvb, 0, pinfo, tree, hf_x420_IPMSecurityLabel_PDU);
+}
+static void dissect_AuthorizationTime_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_AuthorizationTime(FALSE, tvb, 0, pinfo, tree, hf_x420_AuthorizationTime_PDU);
+}
+static void dissect_CirculationList_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_CirculationList(FALSE, tvb, 0, pinfo, tree, hf_x420_CirculationList_PDU);
+}
+static void dissect_CirculationListIndicator_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_CirculationListIndicator(FALSE, tvb, 0, pinfo, tree, hf_x420_CirculationListIndicator_PDU);
+}
+static void dissect_DistributionCodes_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_DistributionCodes(FALSE, tvb, 0, pinfo, tree, hf_x420_DistributionCodes_PDU);
+}
+static void dissect_ExtendedSubject_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_ExtendedSubject(FALSE, tvb, 0, pinfo, tree, hf_x420_ExtendedSubject_PDU);
+}
+static void dissect_InformationCategories_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_InformationCategories(FALSE, tvb, 0, pinfo, tree, hf_x420_InformationCategories_PDU);
+}
+static void dissect_ManualHandlingInstructions_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_ManualHandlingInstructions(FALSE, tvb, 0, pinfo, tree, hf_x420_ManualHandlingInstructions_PDU);
+}
+static void dissect_OriginatorsReference_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_OriginatorsReference(FALSE, tvb, 0, pinfo, tree, hf_x420_OriginatorsReference_PDU);
+}
+static void dissect_PrecedencePolicyIdentifier_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_PrecedencePolicyIdentifier(FALSE, tvb, 0, pinfo, tree, hf_x420_PrecedencePolicyIdentifier_PDU);
+}
+static void dissect_Precedence_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_Precedence(FALSE, tvb, 0, pinfo, tree, hf_x420_Precedence_PDU);
+}
+static void dissect_GeneralTextParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_GeneralTextParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_GeneralTextParameters_PDU);
+}
+static void dissect_GeneralTextData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_GeneralTextData(FALSE, tvb, 0, pinfo, tree, hf_x420_GeneralTextData_PDU);
+}
+static void dissect_VoiceParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_VoiceParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_VoiceParameters_PDU);
+}
+static void dissect_VoiceData_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_VoiceData(FALSE, tvb, 0, pinfo, tree, hf_x420_VoiceData_PDU);
+}
+static void dissect_ForwardedContentParameters_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
+ dissect_x420_ForwardedContentParameters(FALSE, tvb, 0, pinfo, tree, hf_x420_ForwardedContentParameters_PDU);
+}
/*--- End of included file: packet-x420-fn.c ---*/
-
+#line 92 "packet-x420-template.c"
/*
* Dissect X420 PDUs inside a PPDU.
@@ -2009,7 +2944,75 @@ void proto_register_x420(void) {
{
/*--- Included file: packet-x420-hfarr.c ---*/
-
+#line 1 "packet-x420-hfarr.c"
+ { &hf_x420_InformationObject_PDU,
+ { "InformationObject", "x420.InformationObject",
+ FT_UINT32, BASE_DEC, VALS(x420_InformationObject_vals), 0,
+ "InformationObject", HFILL }},
+ { &hf_x420_IA5TextParameters_PDU,
+ { "IA5TextParameters", "x420.IA5TextParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "IA5TextParameters", HFILL }},
+ { &hf_x420_IA5TextData_PDU,
+ { "IA5TextData", "x420.IA5TextData",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "IA5TextData", HFILL }},
+ { &hf_x420_G3FacsimileParameters_PDU,
+ { "G3FacsimileParameters", "x420.G3FacsimileParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "G3FacsimileParameters", HFILL }},
+ { &hf_x420_G3FacsimileData_PDU,
+ { "G3FacsimileData", "x420.G3FacsimileData",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "G3FacsimileData", HFILL }},
+ { &hf_x420_G4Class1Data_PDU,
+ { "G4Class1Data", "x420.G4Class1Data",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "G4Class1Data", HFILL }},
+ { &hf_x420_MixedModeData_PDU,
+ { "MixedModeData", "x420.MixedModeData",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "MixedModeData", HFILL }},
+ { &hf_x420_TeletexParameters_PDU,
+ { "TeletexParameters", "x420.TeletexParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TeletexParameters", HFILL }},
+ { &hf_x420_TeletexData_PDU,
+ { "TeletexData", "x420.TeletexData",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "TeletexData", HFILL }},
+ { &hf_x420_VideotexParameters_PDU,
+ { "VideotexParameters", "x420.VideotexParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "VideotexParameters", HFILL }},
+ { &hf_x420_VideotexData_PDU,
+ { "VideotexData", "x420.VideotexData",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "VideotexData", HFILL }},
+ { &hf_x420_EncryptedParameters_PDU,
+ { "EncryptedParameters", "x420.EncryptedParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EncryptedParameters", HFILL }},
+ { &hf_x420_EncryptedData_PDU,
+ { "EncryptedData", "x420.EncryptedData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "EncryptedData", HFILL }},
+ { &hf_x420_MessageParameters_PDU,
+ { "MessageParameters", "x420.MessageParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "MessageParameters", HFILL }},
+ { &hf_x420_MessageData_PDU,
+ { "MessageData", "x420.MessageData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "MessageData", HFILL }},
+ { &hf_x420_BilaterallyDefinedBodyPart_PDU,
+ { "BilaterallyDefinedBodyPart", "x420.BilaterallyDefinedBodyPart",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "BilaterallyDefinedBodyPart", HFILL }},
+ { &hf_x420_IPN_PDU,
+ { "IPN", "x420.IPN",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "IPN", HFILL }},
{ &hf_x420_AbsenceAdvice_PDU,
{ "AbsenceAdvice", "x420.AbsenceAdvice",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2026,6 +3029,86 @@ void proto_register_x420(void) {
{ "OriginatingUA", "x420.OriginatingUA",
FT_STRING, BASE_NONE, NULL, 0,
"OriginatingUA", HFILL }},
+ { &hf_x420_IncompleteCopy_PDU,
+ { "IncompleteCopy", "x420.IncompleteCopy",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "IncompleteCopy", HFILL }},
+ { &hf_x420_Languages_PDU,
+ { "Languages", "x420.Languages",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Languages", HFILL }},
+ { &hf_x420_AutoSubmitted_PDU,
+ { "AutoSubmitted", "x420.AutoSubmitted",
+ FT_UINT32, BASE_DEC, VALS(x420_AutoSubmitted_vals), 0,
+ "AutoSubmitted", HFILL }},
+ { &hf_x420_BodyPartSignatures_PDU,
+ { "BodyPartSignatures", "x420.BodyPartSignatures",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "BodyPartSignatures", HFILL }},
+ { &hf_x420_IPMSecurityLabel_PDU,
+ { "IPMSecurityLabel", "x420.IPMSecurityLabel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "IPMSecurityLabel", HFILL }},
+ { &hf_x420_AuthorizationTime_PDU,
+ { "AuthorizationTime", "x420.AuthorizationTime",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "AuthorizationTime", HFILL }},
+ { &hf_x420_CirculationList_PDU,
+ { "CirculationList", "x420.CirculationList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CirculationList", HFILL }},
+ { &hf_x420_CirculationListIndicator_PDU,
+ { "CirculationListIndicator", "x420.CirculationListIndicator",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CirculationListIndicator", HFILL }},
+ { &hf_x420_DistributionCodes_PDU,
+ { "DistributionCodes", "x420.DistributionCodes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DistributionCodes", HFILL }},
+ { &hf_x420_ExtendedSubject_PDU,
+ { "ExtendedSubject", "x420.ExtendedSubject",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ExtendedSubject", HFILL }},
+ { &hf_x420_InformationCategories_PDU,
+ { "InformationCategories", "x420.InformationCategories",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "InformationCategories", HFILL }},
+ { &hf_x420_ManualHandlingInstructions_PDU,
+ { "ManualHandlingInstructions", "x420.ManualHandlingInstructions",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ManualHandlingInstructions", HFILL }},
+ { &hf_x420_OriginatorsReference_PDU,
+ { "OriginatorsReference", "x420.OriginatorsReference",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "OriginatorsReference", HFILL }},
+ { &hf_x420_PrecedencePolicyIdentifier_PDU,
+ { "PrecedencePolicyIdentifier", "x420.PrecedencePolicyIdentifier",
+ FT_OID, BASE_NONE, NULL, 0,
+ "PrecedencePolicyIdentifier", HFILL }},
+ { &hf_x420_Precedence_PDU,
+ { "Precedence", "x420.Precedence",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Precedence", HFILL }},
+ { &hf_x420_GeneralTextParameters_PDU,
+ { "GeneralTextParameters", "x420.GeneralTextParameters",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeneralTextParameters", HFILL }},
+ { &hf_x420_GeneralTextData_PDU,
+ { "GeneralTextData", "x420.GeneralTextData",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GeneralTextData", HFILL }},
+ { &hf_x420_VoiceParameters_PDU,
+ { "VoiceParameters", "x420.VoiceParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "VoiceParameters", HFILL }},
+ { &hf_x420_VoiceData_PDU,
+ { "VoiceData", "x420.VoiceData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "VoiceData", HFILL }},
+ { &hf_x420_ForwardedContentParameters_PDU,
+ { "ForwardedContentParameters", "x420.ForwardedContentParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ForwardedContentParameters", HFILL }},
{ &hf_x420_ipm,
{ "ipm", "x420.ipm",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2044,7 +3127,7 @@ void proto_register_x420(void) {
"IPM/body", HFILL }},
{ &hf_x420_type,
{ "type", "x420.type",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_OID, BASE_NONE, NULL, 0,
"IPMSExtension/type", HFILL }},
{ &hf_x420_value,
{ "value", "x420.value",
@@ -2053,7 +3136,7 @@ void proto_register_x420(void) {
{ &hf_x420_this_IPM,
{ "this-IPM", "x420.this_IPM",
FT_NONE, BASE_NONE, NULL, 0,
- "Heading/this-IPM", HFILL }},
+ "", HFILL }},
{ &hf_x420_originator,
{ "originator", "x420.originator",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2214,7 +3297,7 @@ void proto_register_x420(void) {
{ "videotex", "x420.videotex",
FT_NONE, BASE_NONE, NULL, 0,
"BodyPart/videotex", HFILL }},
- { &hf_x420_encrypted,
+ { &hf_x420_encrypted_bp,
{ "encrypted", "x420.encrypted",
FT_NONE, BASE_NONE, NULL, 0,
"BodyPart/encrypted", HFILL }},
@@ -2278,14 +3361,14 @@ void proto_register_x420(void) {
{ "Item", "x420.G3FacsimileData_item",
FT_BYTES, BASE_HEX, NULL, 0,
"G3FacsimileData/_item", HFILL }},
- { &hf_x420_G4Class1BodyPart_item,
- { "Item", "x420.G4Class1BodyPart_item",
+ { &hf_x420_G4Class1Data_item,
+ { "Item", "x420.G4Class1Data_item",
FT_NONE, BASE_NONE, NULL, 0,
- "G4Class1BodyPart/_item", HFILL }},
- { &hf_x420_MixedModeBodyPart_item,
- { "Item", "x420.MixedModeBodyPart_item",
+ "G4Class1Data/_item", HFILL }},
+ { &hf_x420_MixedModeData_item,
+ { "Item", "x420.MixedModeData_item",
FT_NONE, BASE_NONE, NULL, 0,
- "MixedModeBodyPart/_item", HFILL }},
+ "MixedModeData/_item", HFILL }},
{ &hf_x420_teletex_parameters,
{ "parameters", "x420.parameters",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2329,11 +3412,11 @@ void proto_register_x420(void) {
{ &hf_x420_algorithm_identifier,
{ "algorithm-identifier", "x420.algorithm_identifier",
FT_NONE, BASE_NONE, NULL, 0,
- "EncryptedParameters/algorithm-identifier", HFILL }},
+ "", HFILL }},
{ &hf_x420_originator_certificates,
{ "originator-certificates", "x420.originator_certificates",
FT_UINT32, BASE_DEC, NULL, 0,
- "EncryptedParameters/originator-certificates", HFILL }},
+ "", HFILL }},
{ &hf_x420_message_parameters,
{ "parameters", "x420.parameters",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2345,11 +3428,11 @@ void proto_register_x420(void) {
{ &hf_x420_delivery_time,
{ "delivery-time", "x420.delivery_time",
FT_STRING, BASE_NONE, NULL, 0,
- "MessageParameters/delivery-time", HFILL }},
+ "", HFILL }},
{ &hf_x420_delivery_envelope,
{ "delivery-envelope", "x420.delivery_envelope",
FT_NONE, BASE_NONE, NULL, 0,
- "MessageParameters/delivery-envelope", HFILL }},
+ "", HFILL }},
{ &hf_x420_subject_ipm,
{ "subject-ipm", "x420.subject_ipm",
FT_NONE, BASE_NONE, NULL, 0,
@@ -2472,7 +3555,7 @@ void proto_register_x420(void) {
"BodyPartReference/stored-content", HFILL }},
{ &hf_x420_submitted_body_part,
{ "submitted-body-part", "x420.submitted_body_part",
- FT_UINT32, BASE_DEC, NULL, 0,
+ FT_INT32, BASE_DEC, NULL, 0,
"BodyPartReference/submitted-body-part", HFILL }},
{ &hf_x420_stored_body_part,
{ "stored-body-part", "x420.stored_body_part",
@@ -2484,8 +3567,160 @@ void proto_register_x420(void) {
"BodyPartReference/stored-body-part/message-entry", HFILL }},
{ &hf_x420_body_part_number,
{ "body-part-number", "x420.body_part_number",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_x420_Languages_item,
+ { "Item", "x420.Languages_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Languages/_item", HFILL }},
+ { &hf_x420_algorithmIdentifier,
+ { "algorithmIdentifier", "x420.algorithmIdentifier",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Signature/algorithmIdentifier", HFILL }},
+ { &hf_x420_encrypted,
+ { "encrypted", "x420.encrypted",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_x420_BodyPartSignatures_item,
+ { "Item", "x420.BodyPartSignatures_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "BodyPartSignatures/_item", HFILL }},
+ { &hf_x420_body_part_signature,
+ { "body-part-signature", "x420.body_part_signature",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "BodyPartSignatures/_item/body-part-signature", HFILL }},
+ { &hf_x420_originator_certificate_selector,
+ { "originator-certificate-selector", "x420.originator_certificate_selector",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "BodyPartSignatures/_item/originator-certificate-selector", HFILL }},
+ { &hf_x420_content_security_label,
+ { "content-security-label", "x420.content_security_label",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "IPMSecurityLabel/content-security-label", HFILL }},
+ { &hf_x420_heading_security_label,
+ { "heading-security-label", "x420.heading_security_label",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "IPMSecurityLabel/heading-security-label", HFILL }},
+ { &hf_x420_body_part_security_labels,
+ { "body-part-security-labels", "x420.body_part_security_labels",
FT_UINT32, BASE_DEC, NULL, 0,
- "BodyPartReference/stored-body-part/body-part-number", HFILL }},
+ "IPMSecurityLabel/body-part-security-labels", HFILL }},
+ { &hf_x420_body_part_security_labels_item,
+ { "Item", "x420.body_part_security_labels_item",
+ FT_UINT32, BASE_DEC, VALS(x420_BodyPartSecurityLabel_vals), 0,
+ "IPMSecurityLabel/body-part-security-labels/_item", HFILL }},
+ { &hf_x420_body_part_unlabelled,
+ { "body-part-unlabelled", "x420.body_part_unlabelled",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "BodyPartSecurityLabel/body-part-unlabelled", HFILL }},
+ { &hf_x420_body_part_security_label,
+ { "body-part-security-label", "x420.body_part_security_label",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "BodyPartSecurityLabel/body-part-security-label", HFILL }},
+ { &hf_x420_CirculationList_item,
+ { "Item", "x420.CirculationList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CirculationList/_item", HFILL }},
+ { &hf_x420_circulation_recipient,
+ { "circulation-recipient", "x420.circulation_recipient",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CirculationMember/circulation-recipient", HFILL }},
+ { &hf_x420_checked,
+ { "checked", "x420.checked",
+ FT_UINT32, BASE_DEC, VALS(x420_Checkmark_vals), 0,
+ "CirculationMember/checked", HFILL }},
+ { &hf_x420_simple,
+ { "simple", "x420.simple",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Checkmark/simple", HFILL }},
+ { &hf_x420_timestamped,
+ { "timestamped", "x420.timestamped",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Checkmark/timestamped", HFILL }},
+ { &hf_x420_signed,
+ { "signed", "x420.signed",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Checkmark/signed", HFILL }},
+ { &hf_x420_circulation_signature_algorithm_identifier,
+ { "algorithm-identifier", "x420.algorithm_identifier",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CirculationSignatureData/algorithm-identifier", HFILL }},
+ { &hf_x420_timestamp,
+ { "timestamp", "x420.timestamp",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "CirculationSignatureData/timestamp", HFILL }},
+ { &hf_x420_circulation_signature_data,
+ { "circulation-signature-data", "x420.circulation_signature_data",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CirculationSignature/circulation-signature-data", HFILL }},
+ { &hf_x420_DistributionCodes_item,
+ { "Item", "x420.DistributionCodes_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "DistributionCodes/_item", HFILL }},
+ { &hf_x420_oid_code,
+ { "oid-code", "x420.oid_code",
+ FT_OID, BASE_NONE, NULL, 0,
+ "DistributionCode/oid-code", HFILL }},
+ { &hf_x420_alphanumeric_code,
+ { "alphanumeric-code", "x420.alphanumeric_code",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "DistributionCode/alphanumeric-code", HFILL }},
+ { &hf_x420_or_descriptor,
+ { "or-descriptor", "x420.or_descriptor",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "DistributionCode/or-descriptor", HFILL }},
+ { &hf_x420_InformationCategories_item,
+ { "Item", "x420.InformationCategories_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "InformationCategories/_item", HFILL }},
+ { &hf_x420_reference,
+ { "reference", "x420.reference",
+ FT_OID, BASE_NONE, NULL, 0,
+ "InformationCategory/reference", HFILL }},
+ { &hf_x420_description,
+ { "description", "x420.description",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "InformationCategory/description", HFILL }},
+ { &hf_x420_ManualHandlingInstructions_item,
+ { "Item", "x420.ManualHandlingInstructions_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ManualHandlingInstructions/_item", HFILL }},
+ { &hf_x420_GeneralTextParameters_item,
+ { "Item", "x420.GeneralTextParameters_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeneralTextParameters/_item", HFILL }},
+ { &hf_x420_voice_message_duration,
+ { "voice-message-duration", "x420.voice_message_duration",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "VoiceParameters/voice-message-duration", HFILL }},
+ { &hf_x420_voice_encoding_type,
+ { "voice-encoding-type", "x420.voice_encoding_type",
+ FT_OID, BASE_NONE, NULL, 0,
+ "VoiceParameters/voice-encoding-type", HFILL }},
+ { &hf_x420_supplementary_information,
+ { "supplementary-information", "x420.supplementary_information",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "VoiceParameters/supplementary-information", HFILL }},
+ { &hf_x420_mts_identifier,
+ { "mts-identifier", "x420.mts_identifier",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ForwardedContentParameters/mts-identifier", HFILL }},
+ { &hf_x420_submission_proof,
+ { "submission-proof", "x420.submission_proof",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ForwardedContentParameters/submission-proof", HFILL }},
+ { &hf_x420_proof_of_submission,
+ { "proof-of-submission", "x420.proof_of_submission",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SubmissionProof/proof-of-submission", HFILL }},
+ { &hf_x420_originating_MTA_certificate,
+ { "originating-MTA-certificate", "x420.originating_MTA_certificate",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SubmissionProof/originating-MTA-certificate", HFILL }},
+ { &hf_x420_message_submission_envelope,
+ { "message-submission-envelope", "x420.message_submission_envelope",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SubmissionProof/message-submission-envelope", HFILL }},
{ &hf_x420_NotificationRequests_rn,
{ "rn", "x420.rn",
FT_BOOLEAN, 8, NULL, 0x80,
@@ -2508,7 +3743,7 @@ void proto_register_x420(void) {
"", HFILL }},
/*--- End of included file: packet-x420-hfarr.c ---*/
-
+#line 124 "packet-x420-template.c"
};
/* List of subtrees */
@@ -2516,7 +3751,7 @@ void proto_register_x420(void) {
&ett_x420,
/*--- Included file: packet-x420-ettarr.c ---*/
-
+#line 1 "packet-x420-ettarr.c"
&ett_x420_InformationObject,
&ett_x420_IPM,
&ett_x420_IPMSExtension,
@@ -2542,8 +3777,8 @@ void proto_register_x420(void) {
&ett_x420_G3FacsimileBodyPart,
&ett_x420_G3FacsimileParameters,
&ett_x420_G3FacsimileData,
- &ett_x420_G4Class1BodyPart,
- &ett_x420_MixedModeBodyPart,
+ &ett_x420_G4Class1Data,
+ &ett_x420_MixedModeData,
&ett_x420_TeletexBodyPart,
&ett_x420_TeletexParameters,
&ett_x420_TeletexData,
@@ -2567,9 +3802,30 @@ void proto_register_x420(void) {
&ett_x420_BodyPartReferences,
&ett_x420_BodyPartReference,
&ett_x420_T_stored_body_part,
+ &ett_x420_Languages,
+ &ett_x420_Signature,
+ &ett_x420_BodyPartSignatures,
+ &ett_x420_BodyPartSignatures_item,
+ &ett_x420_IPMSecurityLabel,
+ &ett_x420_SEQUENCE_OF_BodyPartSecurityLabel,
+ &ett_x420_BodyPartSecurityLabel,
+ &ett_x420_CirculationList,
+ &ett_x420_CirculationMember,
+ &ett_x420_Checkmark,
+ &ett_x420_CirculationSignatureData,
+ &ett_x420_CirculationSignature,
+ &ett_x420_DistributionCodes,
+ &ett_x420_DistributionCode,
+ &ett_x420_InformationCategories,
+ &ett_x420_InformationCategory,
+ &ett_x420_ManualHandlingInstructions,
+ &ett_x420_GeneralTextParameters,
+ &ett_x420_VoiceParameters,
+ &ett_x420_ForwardedContentParameters,
+ &ett_x420_SubmissionProof,
/*--- End of included file: packet-x420-ettarr.c ---*/
-
+#line 130 "packet-x420-template.c"
};
/* Register protocol */
@@ -2587,15 +3843,57 @@ void proto_reg_handoff_x420(void) {
/*--- Included file: packet-x420-dis-tab.c ---*/
-
+#line 1 "packet-x420-dis-tab.c"
register_ber_oid_dissector("1.2.826.0.1004.10.1.1", dissect_OriginatingUA_PDU, proto_x420, "nexor-originating-ua");
register_ber_oid_dissector("2.6.1.19.0", dissect_AbsenceAdvice_PDU, proto_x420, "id-on-absence-advice");
register_ber_oid_dissector("2.6.1.19.1", dissect_ChangeOfAddressAdvice_PDU, proto_x420, "id-on-change-of-address-advice");
register_ber_oid_dissector("2.6.1.17.2", dissect_IPMAssemblyInstructions_PDU, proto_x420, "id-mst-assembly-instructions");
+ register_ber_oid_dissector("2.6.1.5.0", dissect_IncompleteCopy_PDU, proto_x420, "id-hex-languages");
+ register_ber_oid_dissector("2.6.1.5.1", dissect_Languages_PDU, proto_x420, "id-hex-languages");
+ register_ber_oid_dissector("2.6.1.5.2", dissect_AutoSubmitted_PDU, proto_x420, "id-hex-auto-submitted");
+ register_ber_oid_dissector("2.6.1.5.3", dissect_BodyPartSignatures_PDU, proto_x420, "id-hex-body-part-signatures");
+ register_ber_oid_dissector("2.6.1.5.4", dissect_IPMSecurityLabel_PDU, proto_x420, "id-hex-ipm-security-label");
+ register_ber_oid_dissector("2.6.1.5.5", dissect_AuthorizationTime_PDU, proto_x420, "id-hex-authorization-time");
+ register_ber_oid_dissector("2.6.1.5.6", dissect_CirculationList_PDU, proto_x420, "id-hex-circulation-list-recipients");
+ register_ber_oid_dissector("2.6.1.20.0", dissect_CirculationListIndicator_PDU, proto_x420, "id-rex-circulation-list-indicator");
+ register_ber_oid_dissector("2.6.1.5.7", dissect_DistributionCodes_PDU, proto_x420, "id-hex-distribution-codes");
+ register_ber_oid_dissector("2.6.1.5.8", dissect_ExtendedSubject_PDU, proto_x420, "id-hex-extended-subject");
+ register_ber_oid_dissector("2.6.1.5.9", dissect_InformationCategories_PDU, proto_x420, "id-hex-information-categories");
+ register_ber_oid_dissector("2.6.1.5.10", dissect_ManualHandlingInstructions_PDU, proto_x420, "id-hex-manual-handling-instructions");
+ register_ber_oid_dissector("2.6.1.5.11", dissect_OriginatorsReference_PDU, proto_x420, "id-hex-originators-reference");
+ register_ber_oid_dissector("2.6.1.5.12", dissect_PrecedencePolicyIdentifier_PDU, proto_x420, "id-hex-precedence-policy-id");
+ register_ber_oid_dissector("2.6.1.20.1", dissect_Precedence_PDU, proto_x420, "id-rex-precedence");
+ register_ber_oid_dissector("2.6.1.4.0", dissect_IA5TextData_PDU, proto_x420, "id-et-ia5-text");
+ register_ber_oid_dissector("2.6.1.11.0", dissect_IA5TextParameters_PDU, proto_x420, "id-ep-ia5-text");
+ register_ber_oid_dissector("2.6.1.4.2", dissect_G3FacsimileData_PDU, proto_x420, "id-et-g3-facsimile");
+ register_ber_oid_dissector("2.6.1.11.2", dissect_G3FacsimileParameters_PDU, proto_x420, "id-ep-g3-facsimile");
+ register_ber_oid_dissector("2.6.1.4.3", dissect_G4Class1Data_PDU, proto_x420, "id-et-g4-class1");
+ register_ber_oid_dissector("2.6.1.4.4", dissect_TeletexData_PDU, proto_x420, "id-et-teletex");
+ register_ber_oid_dissector("2.6.1.11.4", dissect_TeletexParameters_PDU, proto_x420, "id-ep-teletex");
+ register_ber_oid_dissector("2.6.1.4.5", dissect_VideotexData_PDU, proto_x420, "id-et-videotex");
+ register_ber_oid_dissector("2.6.1.11.5", dissect_VideotexParameters_PDU, proto_x420, "id-ep-videotex");
+ register_ber_oid_dissector("2.6.1.4.6", dissect_EncryptedData_PDU, proto_x420, "id-et-encrypted");
+ register_ber_oid_dissector("2.6.1.11.6", dissect_EncryptedParameters_PDU, proto_x420, "id-ep-encrypted");
+ register_ber_oid_dissector("2.6.1.4.7", dissect_MessageData_PDU, proto_x420, "id-et-message");
+ register_ber_oid_dissector("2.6.1.11.7", dissect_MessageParameters_PDU, proto_x420, "id-ep-message");
+ register_ber_oid_dissector("2.6.1.4.8", dissect_MixedModeData_PDU, proto_x420, "id-et-mixed-mode");
+ register_ber_oid_dissector("2.6.1.4.9", dissect_BilaterallyDefinedBodyPart_PDU, proto_x420, "id-et-bilaterally-defined");
+ register_ber_oid_dissector("2.6.1.11.11", dissect_GeneralTextParameters_PDU, proto_x420, "id-ep-general-text");
+ register_ber_oid_dissector("2.6.1.4.11", dissect_GeneralTextData_PDU, proto_x420, "id-et-general-text");
+ register_ber_oid_dissector("2.6.1.11.15", dissect_MessageParameters_PDU, proto_x420, "id-ep-notification");
+ register_ber_oid_dissector("2.6.1.4.15", dissect_IPN_PDU, proto_x420, "id-et-notification");
+ register_ber_oid_dissector("2.6.1.11.16", dissect_VoiceParameters_PDU, proto_x420, "id-ep-voice");
+ register_ber_oid_dissector("2.6.1.4.16", dissect_VoiceData_PDU, proto_x420, "id-et-voice");
+ register_ber_oid_dissector("2.6.1.11.17.2.6.1.10.1", dissect_ForwardedContentParameters_PDU, proto_x420, "id-ep-content-p22");
+ register_ber_oid_dissector("2.6.1.4.17.2.6.1.10.1", dissect_InformationObject_PDU, proto_x420, "id-et-content-p22");
+ register_ber_oid_dissector("2.6.1.11.17.2.6.1.10.0", dissect_ForwardedContentParameters_PDU, proto_x420, "id-ep-content-p2");
+ register_ber_oid_dissector("2.6.1.4.17.2.6.1.10.0", dissect_InformationObject_PDU, proto_x420, "id-et-content-p2");
+ register_ber_oid_dissector("2.6.1.11.17.1.3.26.0.4406.0.4.1", dissect_ForwardedContentParameters_PDU, proto_x420, "id-ep-content-p772");
+ register_ber_oid_dissector("2.6.1.4.17.1.3.26.0.4406.0.4.1", dissect_InformationObject_PDU, proto_x420, "id-et-content-p772");
/*--- End of included file: packet-x420-dis-tab.c ---*/
-
+#line 146 "packet-x420-template.c"
register_ber_oid_dissector("2.6.1.10.0", dissect_x420, proto_x420, "InterPersonal Message (1984)");
register_ber_oid_dissector("2.6.1.10.1", dissect_x420, proto_x420, "InterPersonal Message (1988)");
diff --git a/epan/dissectors/packet-x420.h b/epan/dissectors/packet-x420.h
index df407149af..7f3e1a9711 100644
--- a/epan/dissectors/packet-x420.h
+++ b/epan/dissectors/packet-x420.h
@@ -5,6 +5,7 @@
/* Input file: packet-x420-template.h */
+#line 1 "packet-x420-template.h"
/* packet-x420.h
* Routines for X.420 (X.400 Message Transfer) packet dissection
* Graeme Lunt 2005
@@ -35,13 +36,13 @@
/*--- Included file: packet-x420-exp.h ---*/
-
+#line 1 "packet-x420-exp.h"
extern const value_string x420_InformationObject_vals[];
int dissect_x420_InformationObject(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x420_ORDescriptor(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
int dissect_x420_ExtensionsField(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
/*--- End of included file: packet-x420-exp.h ---*/
-
+#line 30 "packet-x420-template.h"
#endif /* PACKET_X420_H */