Renamed x411 to p1, x420 to p22 and s4406 to p772 to be consistent
authorstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 20 Feb 2011 17:03:29 +0000 (17:03 +0000)
committerstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 20 Feb 2011 17:03:29 +0000 (17:03 +0000)
on the naming policy for X.400 protocols.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@36013 f5534014-38df-0310-8fa8-9805f1628bb7

75 files changed:
asn1/Makefile.am
asn1/Makefile.nmake
asn1/acp133/Makefile.common
asn1/acp133/acp133.cnf
asn1/acp133/packet-acp133-template.c
asn1/cdt/cdt.cnf
asn1/cdt/packet-cdt-template.c
asn1/p1/MHSProtocolObjectIdentifiers.asn [moved from asn1/x411/MHSProtocolObjectIdentifiers.asn with 100% similarity]
asn1/p1/MTAAbstractService.asn [moved from asn1/x411/MTAAbstractService.asn with 100% similarity]
asn1/p1/MTSAbstractService.asn [moved from asn1/x411/MTSAbstractService.asn with 100% similarity]
asn1/p1/MTSAccessProtocol.asn [moved from asn1/x411/MTSAccessProtocol.asn with 100% similarity]
asn1/p1/MTSUpperBounds.asn [moved from asn1/x411/MTSUpperBounds.asn with 100% similarity]
asn1/p1/Makefile.am [moved from asn1/s4406/Makefile.am with 100% similarity]
asn1/p1/Makefile.common [moved from asn1/x411/Makefile.common with 99% similarity]
asn1/p1/Makefile.nmake [moved from asn1/s4406/Makefile.nmake with 100% similarity]
asn1/p1/p1.cnf [moved from asn1/x411/x411.cnf with 84% similarity]
asn1/p1/packet-p1-template.c [moved from asn1/x411/packet-x411-template.c with 52% similarity]
asn1/p1/packet-p1-template.h [moved from asn1/x411/packet-x411-template.h with 68% similarity]
asn1/p22/IPMSExtendedBodyPartTypes2.asn [moved from asn1/x420/IPMSExtendedBodyPartTypes2.asn with 100% similarity]
asn1/p22/IPMSExtendedVoiceBodyPartType.asn [moved from asn1/x420/IPMSExtendedVoiceBodyPartType.asn with 100% similarity]
asn1/p22/IPMSFileTransferBodyPartType.asn [moved from asn1/x420/IPMSFileTransferBodyPartType.asn with 100% similarity]
asn1/p22/IPMSForwardedContentBodyPartType.asn [moved from asn1/x420/IPMSForwardedContentBodyPartType.asn with 100% similarity]
asn1/p22/IPMSHeadingExtensions.asn [moved from asn1/x420/IPMSHeadingExtensions.asn with 100% similarity]
asn1/p22/IPMSInformationObjects.asn [moved from asn1/x420/IPMSInformationObjects.asn with 100% similarity]
asn1/p22/IPMSMessageStoreAttributes.asn [moved from asn1/x420/IPMSMessageStoreAttributes.asn with 100% similarity]
asn1/p22/IPMSObjectIdentifiers.asn [moved from asn1/x420/IPMSObjectIdentifiers.asn with 100% similarity]
asn1/p22/IPMSSecurityExtensions.asn [moved from asn1/x420/IPMSSecurityExtensions.asn with 100% similarity]
asn1/p22/IPMSUpperBounds.asn [moved from asn1/x420/IPMSUpperBounds.asn with 100% similarity]
asn1/p22/Makefile.am [moved from asn1/x411/Makefile.am with 100% similarity]
asn1/p22/Makefile.common [moved from asn1/x420/Makefile.common with 95% similarity]
asn1/p22/Makefile.nmake [moved from asn1/x411/Makefile.nmake with 100% similarity]
asn1/p22/p22.cnf [moved from asn1/x420/x420.cnf with 98% similarity]
asn1/p22/packet-p22-template.c [moved from asn1/x420/packet-x420-template.c with 75% similarity]
asn1/p22/packet-p22-template.h [moved from asn1/x420/packet-x420-template.h with 83% similarity]
asn1/p7/Makefile.common
asn1/p7/p7.cnf
asn1/p7/packet-p7-template.c
asn1/p772/MMSAbstractService.asn [moved from asn1/s4406/MMSAbstractService.asn with 100% similarity]
asn1/p772/MMSExtendedBodyPartTypes.asn [moved from asn1/s4406/MMSExtendedBodyPartTypes.asn with 100% similarity]
asn1/p772/MMSHeadingExtensions.asn [moved from asn1/s4406/MMSHeadingExtensions.asn with 100% similarity]
asn1/p772/MMSInformationObjects.asn [moved from asn1/s4406/MMSInformationObjects.asn with 100% similarity]
asn1/p772/MMSObjectIdentifiers.asn [moved from asn1/s4406/MMSObjectIdentifiers.asn with 100% similarity]
asn1/p772/MMSOtherNotificationTypeExtensions.asn [moved from asn1/s4406/MMSOtherNotificationTypeExtensions.asn with 100% similarity]
asn1/p772/MMSPerRecipientSpecifierExtensions.asn [moved from asn1/s4406/MMSPerRecipientSpecifierExtensions.asn with 100% similarity]
asn1/p772/MMSUpperBounds.asn [moved from asn1/s4406/MMSUpperBounds.asn with 100% similarity]
asn1/p772/Makefile.am [moved from asn1/x420/Makefile.am with 100% similarity]
asn1/p772/Makefile.common [moved from asn1/s4406/Makefile.common with 89% similarity]
asn1/p772/Makefile.nmake [moved from asn1/x420/Makefile.nmake with 100% similarity]
asn1/p772/p772.cnf [moved from asn1/s4406/s4406.cnf with 93% similarity]
asn1/p772/packet-p772-template.c [moved from asn1/s4406/packet-s4406-template.c with 59% similarity]
asn1/p772/packet-p772-template.h [moved from asn1/s4406/packet-s4406-template.h with 80% similarity]
asn1/x509ce/Makefile.common
asn1/x509ce/packet-x509ce-template.c
asn1/x509ce/x509ce.cnf
asn1/x509sat/Makefile.common
asn1/x509sat/packet-x509sat-template.c
asn1/x509sat/x509sat.cnf
configure.in
epan/CMakeLists.txt
epan/dissectors/Makefile.common
epan/dissectors/packet-acp133.c
epan/dissectors/packet-cdt.c
epan/dissectors/packet-dmp.c
epan/dissectors/packet-p1.c [new file with mode: 0644]
epan/dissectors/packet-p1.h [moved from epan/dissectors/packet-x411.h with 62% similarity]
epan/dissectors/packet-p22.c [new file with mode: 0644]
epan/dissectors/packet-p22.h [new file with mode: 0644]
epan/dissectors/packet-p7.c
epan/dissectors/packet-p772.c [moved from epan/dissectors/packet-s4406.c with 50% similarity]
epan/dissectors/packet-p772.h [moved from epan/dissectors/packet-s4406.h with 61% similarity]
epan/dissectors/packet-x411.c [deleted file]
epan/dissectors/packet-x420.c [deleted file]
epan/dissectors/packet-x420.h [deleted file]
epan/dissectors/packet-x509ce.c
epan/dissectors/packet-x509sat.c

index cf576e557611a30b21c4be6c31956c70e24d248e..c5513af330f75d3ccfaee55d0e4a5eaa16277fed 100644 (file)
@@ -69,7 +69,10 @@ SUBDIRS =            \
        nbap            \
        ns_cert_exts    \
        ocsp            \
+       p1              \
+       p22             \
        p7              \
+       p772            \
        pcap            \
        pkcs1           \
        pkcs12          \
@@ -92,7 +95,6 @@ SUBDIRS =             \
        rtse            \
        rua             \
        s1ap            \
-       s4406           \
        sabp            \
        smrse           \
        snmp            \
@@ -105,8 +107,6 @@ SUBDIRS =           \
        ulp             \
        wlancertextn    \
        x2ap            \
-       x411            \
-       x420            \
        x509af          \
        x509ce          \
        x509if          \
index b2c7875864036ca91ce53ff0f788b8e66b1b4700..a84032705fc76f806c1ab88a3358443a928638c0 100644 (file)
@@ -73,7 +73,10 @@ BER_LIST= \
        mms                     \
        ns_cert_exts            \
        ocsp                    \
+       p1                      \
+       p22                     \
        p7                      \
+       p772                    \
        pkcs1                   \
        pkcs12                  \
        pkinit                  \
@@ -89,7 +92,6 @@ BER_LIST= \
        qsig                    \
        ros                     \
        rtse                    \
-       s4406                   \
        smrse                   \
        snmp                    \
        spnego                  \
@@ -97,8 +99,6 @@ BER_LIST= \
        t125                    \
        tcap                    \
        wlancertextn            \
-       x411                    \
-       x420                    \
        x509af                  \
        x509ce                  \
        x509if                  \
index f1f0028869cd3450671037b83754b980a84cdf1e..fa35dfc2a2e5e6c34fcf298abb2797c094e0379c 100644 (file)
@@ -46,13 +46,13 @@ SRC_FILES = \
 A2W_FLAGS= -b 
 
 EXTRA_CNF= \
-       ../x411/x411-exp.cnf \
+       ../p1/p1-exp.cnf \
        ../x509af/x509af-exp.cnf \
        ../x509ce/x509ce-exp.cnf \
        ../x509if/x509if-exp.cnf
 
-../x411/x411-exp.cnf:
-       (cd ../x411 && $(MAKE_CNF_EXPORT))
+../p1/p1-exp.cnf:
+       (cd ../p1 && $(MAKE_CNF_EXPORT))
 
 ../x509af/x509af-exp.cnf:
        (cd ../x509af && $(MAKE_CNF_EXPORT))
index 26c51efe68e8577503b338fe8454069e960336b4..c3cc08c5a984640d3172358b7d49b5837207c895 100644 (file)
@@ -4,10 +4,10 @@
 #.IMPORT ../x509ce/x509ce-exp.cnf
 #.IMPORT ../x509if/x509if-exp.cnf
 #.IMPORT ../x509af/x509af-exp.cnf
-#.IMPORT ../x411/x411-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
 
 #.MODULE_IMPORT
-MTSAbstractService     x411
+MTSAbstractService     p1
 
 #.PDU
 ACPPreferredDelivery
@@ -71,24 +71,24 @@ Kmid
 
 # X.402
 
-# ContentLength B "2.6.5.2.0" "id-at-mhs-maximum-content-length" - see x411.cnf
-# ExtendedContentType B "2.6.5.2.1" "id-at-mhs-deliverable-content-types" - see x411.cnf
-# ExtendedEncodedInformationType B "2.6.5.2.2" "id-at-mhs-exclusively-acceptable-eits" - see x411.cnf
-# ORName B "2.6.5.2.3" "id-at-mhs-dl-members" - see x411.cnf
+# ContentLength B "2.6.5.2.0" "id-at-mhs-maximum-content-length" - see p1.cnf
+# ExtendedContentType B "2.6.5.2.1" "id-at-mhs-deliverable-content-types" - see p1.cnf
+# ExtendedEncodedInformationType B "2.6.5.2.2" "id-at-mhs-exclusively-acceptable-eits" - see p1.cnf
+# ORName B "2.6.5.2.3" "id-at-mhs-dl-members" - see p1.cnf
 DLSubmitPermission B "2.6.5.2.4" "id-at-mhs-dl-submit-permissions"
 # DistinguishedName B "2.6.5.2.5" "id-at-mhs-message-store-dn" - see x509if.cnf
-# ORAddress B "2.6.5.2.6" "id-at-mhs-or-addresses" - see x411.cnf
+# ORAddress B "2.6.5.2.6" "id-at-mhs-or-addresses" - see p1.cnf
 # ObjectIdentifier B "2.6.5.2.8" "id-at-mhs-supported-automatic-actions" - see x509sat.cnf
-# ExtendedContentType B "2.6.5.2.9" "id-at-mhs-supported-content-types" - see x411.cnf
+# ExtendedContentType B "2.6.5.2.9" "id-at-mhs-supported-content-types" - see p1.cnf
 # ObjectIdentifier B "2.6.5.2.10" "id-at-mhs-supported-attributes" - see x509sat.cnf
 # ObjectIdentifier B "2.6.5.2.11" "id-at-mhs-supported-matching-rules" - see x509sat.cnf
-# ORName B "2.6.5.2.12" "id-at-mhs-dl-archive-service" - see x411.cnf
+# ORName B "2.6.5.2.12" "id-at-mhs-dl-archive-service" - see p1.cnf
 DLPolicy  B "2.6.5.2.13" "id-at-mhs-dl-policy"
 # DistinguishedName B "2.6.5.2.14" "id-at-mhs-dl-related-lists" - see x509if.cnf
-# ORName B "2.6.5.2.15" "id-at-mhs-dl-subscription-service" - see x411.cnf
+# ORName B "2.6.5.2.15" "id-at-mhs-dl-subscription-service" - see p1.cnf
 AddressCapabilities B "2.6.5.2.16" "id-at-mhs-or-addresses-with-capabilities"
-# ExtendedEncodedInformationType B "2.6.5.2.17" "id-at-mhs-acceptable-eits" see x411.cnf
-# ExtendedEncodedInformationType B "2.6.5.2.18" "id-at-mhs-unacceptable-eits" - see x411.cnf
+# ExtendedEncodedInformationType B "2.6.5.2.17" "id-at-mhs-acceptable-eits" see p1.cnf
+# ExtendedEncodedInformationType B "2.6.5.2.18" "id-at-mhs-unacceptable-eits" - see p1.cnf
 Capability B "2.6.5.2.19" "id-at-mhs-deliverable-classes"
 
 
@@ -106,7 +106,7 @@ MonthlyUKMs B "2.16.840.1.101.2.1.5.28" "id-at-sepUKMs"
 MonthlyUKMs B "2.16.840.1.101.2.1.5.29" "id-at-octUKMs"
 MonthlyUKMs B "2.16.840.1.101.2.1.5.30" "id-at-novUKMs"
 MonthlyUKMs B "2.16.840.1.101.2.1.5.31" "id-at-decUKMs"
-# ORName B "2.16.840.1.101.2.1.5.47" "id-at-aLExemptedAddressProcessor - see x411.cnf
+# ORName B "2.16.840.1.101.2.1.5.47" "id-at-aLExemptedAddressProcessor - see p1.cnf
 
 # ACP133
 # DistinguishedName B "2.16.840.1.101.2.2.1.3" "id-at-alternateRecipient" - see x509if.cnf
@@ -191,7 +191,7 @@ OnSupported B "2.16.840.1.101.2.2.1.123" "id-at-onSupported"
 # DirectoryString B "2.16.840.1.101.2.2.1.129" "id-at-serviceNumber" - see x509sat.cnf
 # DirectoryString B "2.16.840.1.101.2.2.1.133" "id-at-rank" - see x509sat.cnf
 # B "2.16.840.1.101.2.2.1.134" "id-at-misc-collectives"
-# ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses" - see x411.cnf
+# ORAddress B "2.16.840.1.101.2.2.1.134.1" "id-at-collective-mhs-or-addresses" - see p1.cnf
 MLReceiptPolicy B "2.16.840.1.101.2.2.1.135" "id-at-aLReceiptPolicy"
 # DistinguishedName B "2.16.840.1.101.2.2.1.138" "id-at-plasServed" - see x509if.cnf
 #DistinguishedName B "2.16.840.1.101.2.2.1.139" "id-at-deployed"  - see x509if.cnf
index 58866fa39c785dcdab10ebe2a0c8545f007cacda..a77c8ffc6768e1424392beed1aa1ae1ad3c0ea4b 100644 (file)
@@ -37,7 +37,7 @@
 #include "packet-x509af.h"
 #include "packet-x509if.h"
 #include "packet-x509ce.h"
-#include "packet-x411.h"
+#include "packet-p1.h"
 
 #include "packet-acp133.h"
 
index 96e5e054961e10fbf566f0c6b37f6132cbb41ff3..cf3d3fc626480b299402bdca405d8fd57a1702ca 100644 (file)
@@ -103,7 +103,7 @@ CompressedData    B "1.3.26.0.4406.0.4.2"  "cdt"
      dissect_unknown_ber (actx->pinfo, next_tvb, 0, top_tree);
      break;
    case CDT_P1:
-     dissect_x411_mts_apdu (next_tvb, actx->pinfo, top_tree);
+     dissect_p1_mts_apdu (next_tvb, actx->pinfo, top_tree);
      break;
    default:
      call_dissector (data_handle, next_tvb, actx->pinfo, top_tree);
index cb68723f46db8b8e03ef458fa5f785b856ae8a0a..0b391f8f99b2312653ec23650681189261651542 100644 (file)
@@ -37,7 +37,7 @@
 #include <epan/asn1.h>
 
 #include "packet-ber.h"
-#include "packet-x411.h"
+#include "packet-p1.h"
 
 #include "packet-cdt.h"
 
similarity index 100%
rename from asn1/s4406/Makefile.am
rename to asn1/p1/Makefile.am
similarity index 99%
rename from asn1/x411/Makefile.common
rename to asn1/p1/Makefile.common
index b959664882969e316b281715bb7642d415ccfc05..9dfc1ba1dc73c25e6e28a5aa7c24e84ef05bf26f 100644 (file)
@@ -20,7 +20,7 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 
-PROTOCOL_NAME=x411
+PROTOCOL_NAME=p1
 
 DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c \
        packet-$(PROTOCOL_NAME).h
similarity index 84%
rename from asn1/x411/x411.cnf
rename to asn1/p1/p1.cnf
index 5e447acbfdeb25ef42c6d2d32a9bdcc49d9a5143..9d5502f500ea0af90d78f4d6eabc29e471c8dc74 100644 (file)
@@ -1,9 +1,9 @@
-# x411.cnf
+# p1.cnf
 # X.411 (MTA Access and Transfer) conformance file
 # $Id$
 
 #.TYPE_ATTR
-CountryName    TYPE = FT_UINT32  DISPLAY = BASE_DEC   STRINGS = VALS(x411_CountryName_U_vals)  BITMASK = 0
+CountryName    TYPE = FT_UINT32  DISPLAY = BASE_DEC   STRINGS = VALS(p1_CountryName_U_vals)  BITMASK = 0
 Time           TYPE = FT_STRING  DISPLAY = BASE_NONE  STRING = NULL BITMASK = 0
 
 #.IMPORT ../x509ce/x509ce-exp.cnf
@@ -341,101 +341,101 @@ OPERATION.&ResultType
 
 
 #.REGISTER
-RecipientReassignmentProhibited                                N x411.extension 1
-OriginatorRequestedAlternateRecipient  N x411.extension 2
-DLExpansionProhibited                                          N x411.extension 3
-ConversionWithLossProhibited                           N x411.extension 4
-LatestDeliveryTime                                                     N x411.extension 5
-RequestedDeliveryMethod                                                N x411.extension 6
-PhysicalForwardingProhibited                           N x411.extension 7
-PhysicalForwardingAddressRequest                       N x411.extension 8
-PhysicalDeliveryModes                                          N x411.extension 9
-RegisteredMailType                                                     N x411.extension 10
-RecipientNumberForAdvice                                       N x411.extension 11
-PhysicalRenditionAttributes                                    N x411.extension 12
-OriginatorReturnAddress                                                N x411.extension 13
-PhysicalDeliveryReportRequest                          N x411.extension 14
-OriginatorCertificate                                          N x411.extension 15
-MessageToken                                                           N x411.extension 16
-ContentConfidentialityAlgorithmIdentifier      N x411.extension 17
-ContentIntegrityCheck                                          N x411.extension 18
-MessageOriginAuthenticationCheck                       N x411.extension 19
-MessageSecurityLabel                                           N x411.extension 20
-ProofOfSubmissionRequest                                       N x411.extension 21
-ProofOfDeliveryRequest                                         N x411.extension 22
-ContentCorrelator                                                      N x411.extension 23
-ProbeOriginAuthenticationCheck                         N x411.extension 24
-RedirectionHistory                                                     N x411.extension 25
-DLExpansionHistory                                                     N x411.extension 26
-PhysicalForwardingAddress                                      N x411.extension 27
-RecipientCertificate                                           N x411.extension 28
-ProofOfDelivery                                                                N x411.extension 29
-OriginatorAndDLExpansionHistory                                N x411.extension 30
-ReportingDLName                                                                N x411.extension 31
-ReportingMTACertificate                                                N x411.extension 32
-ReportOriginAuthenticationCheck                                N x411.extension 33
-ProofOfSubmission                                                      N x411.extension 35
-
-TraceInformation                                                       N x411.extension 37
-InternalTraceInformation                                       N x411.extension 38
-ReportingMTAName                                                       N x411.extension 39
-ExtendedCertificates                                           N x411.extension 40
-
-DLExemptedRecipients                                           N x411.extension 42
-
-CertificateSelectors                                           N x411.extension 45
-
-CommonName                                                                     N x411.extension-attribute 1
-TeletexCommonName                                                      N x411.extension-attribute 2
-TeletexOrganizationName                                                N x411.extension-attribute 3
-TeletexPersonalName                                                    N x411.extension-attribute 4
-TeletexOrganizationalUnitNames                         N x411.extension-attribute 5
-TeletexDomainDefinedAttributes                         N x411.extension-attribute 6
-PDSName                                                                                N x411.extension-attribute 7
-PhysicalDeliveryCountryName                                    N x411.extension-attribute 8
-PostalCode                                                                     N x411.extension-attribute 9
-PhysicalDeliveryOfficeName                                     N x411.extension-attribute 10
-PhysicalDeliveryOfficeNumber                           N x411.extension-attribute 11
-ExtensionORAddressComponents                           N x411.extension-attribute 12
-PhysicalDeliveryPersonalName                           N x411.extension-attribute 13
-PhysicalDeliveryOrganizationName                       N x411.extension-attribute 14
-ExtensionPhysicalDeliveryAddressComponents     N x411.extension-attribute 15
-UnformattedPostalAddress                                       N x411.extension-attribute 16
-StreetAddress                                                          N x411.extension-attribute 17
-PostOfficeBoxAddress                                           N x411.extension-attribute 18
-PosteRestanteAddress                                           N x411.extension-attribute 19
-UniquePostalName                                                       N x411.extension-attribute 20
-LocalPostalAttributes                                          N x411.extension-attribute 21
-ExtendedNetworkAddress                                         N x411.extension-attribute 22
-TerminalType                                                           N x411.extension-attribute 23
-UniversalCommonName                                                    N x411.extension-attribute 24
-UniversalOrganizationName                                      N x411.extension-attribute 25
-UniversalPersonalName                                          N x411.extension-attribute 26
-UniversalOrganizationalUnitNames                       N x411.extension-attribute 27
-UniversalDomainDefinedAttributes                       N x411.extension-attribute 28
-UniversalPhysicalDeliveryOfficeName                    N x411.extension-attribute 29
-UniversalPhysicalDeliveryOfficeNumber          N x411.extension-attribute 30
-UniversalExtensionORAddressComponents          N x411.extension-attribute 31
-UniversalPhysicalDeliveryPersonalName          N x411.extension-attribute 32
-UniversalPhysicalDeliveryOrganizationName      N x411.extension-attribute 33
-UniversalExtensionPhysicalDeliveryAddressComponents N x411.extension-attribute 34
-UniversalUnformattedPostalAddress                      N x411.extension-attribute 35
-UniversalStreetAddress                                         N x411.extension-attribute 36
-UniversalPostOfficeBoxAddress                          N x411.extension-attribute 37
-UniversalPosteRestanteAddress                          N x411.extension-attribute 38
-UniversalUniquePostalName                                      N x411.extension-attribute 39
-UniversalLocalPostalAttributes                         N x411.extension-attribute 40
+RecipientReassignmentProhibited                                N p1.extension 1
+OriginatorRequestedAlternateRecipient  N p1.extension 2
+DLExpansionProhibited                                          N p1.extension 3
+ConversionWithLossProhibited                           N p1.extension 4
+LatestDeliveryTime                                                     N p1.extension 5
+RequestedDeliveryMethod                                                N p1.extension 6
+PhysicalForwardingProhibited                           N p1.extension 7
+PhysicalForwardingAddressRequest                       N p1.extension 8
+PhysicalDeliveryModes                                          N p1.extension 9
+RegisteredMailType                                                     N p1.extension 10
+RecipientNumberForAdvice                                       N p1.extension 11
+PhysicalRenditionAttributes                                    N p1.extension 12
+OriginatorReturnAddress                                                N p1.extension 13
+PhysicalDeliveryReportRequest                          N p1.extension 14
+OriginatorCertificate                                          N p1.extension 15
+MessageToken                                                           N p1.extension 16
+ContentConfidentialityAlgorithmIdentifier      N p1.extension 17
+ContentIntegrityCheck                                          N p1.extension 18
+MessageOriginAuthenticationCheck                       N p1.extension 19
+MessageSecurityLabel                                           N p1.extension 20
+ProofOfSubmissionRequest                                       N p1.extension 21
+ProofOfDeliveryRequest                                         N p1.extension 22
+ContentCorrelator                                                      N p1.extension 23
+ProbeOriginAuthenticationCheck                         N p1.extension 24
+RedirectionHistory                                                     N p1.extension 25
+DLExpansionHistory                                                     N p1.extension 26
+PhysicalForwardingAddress                                      N p1.extension 27
+RecipientCertificate                                           N p1.extension 28
+ProofOfDelivery                                                                N p1.extension 29
+OriginatorAndDLExpansionHistory                                N p1.extension 30
+ReportingDLName                                                                N p1.extension 31
+ReportingMTACertificate                                                N p1.extension 32
+ReportOriginAuthenticationCheck                                N p1.extension 33
+ProofOfSubmission                                                      N p1.extension 35
+
+TraceInformation                                                       N p1.extension 37
+InternalTraceInformation                                       N p1.extension 38
+ReportingMTAName                                                       N p1.extension 39
+ExtendedCertificates                                           N p1.extension 40
+
+DLExemptedRecipients                                           N p1.extension 42
+
+CertificateSelectors                                           N p1.extension 45
+
+CommonName                                                                     N p1.extension-attribute 1
+TeletexCommonName                                                      N p1.extension-attribute 2
+TeletexOrganizationName                                                N p1.extension-attribute 3
+TeletexPersonalName                                                    N p1.extension-attribute 4
+TeletexOrganizationalUnitNames                         N p1.extension-attribute 5
+TeletexDomainDefinedAttributes                         N p1.extension-attribute 6
+PDSName                                                                                N p1.extension-attribute 7
+PhysicalDeliveryCountryName                                    N p1.extension-attribute 8
+PostalCode                                                                     N p1.extension-attribute 9
+PhysicalDeliveryOfficeName                                     N p1.extension-attribute 10
+PhysicalDeliveryOfficeNumber                           N p1.extension-attribute 11
+ExtensionORAddressComponents                           N p1.extension-attribute 12
+PhysicalDeliveryPersonalName                           N p1.extension-attribute 13
+PhysicalDeliveryOrganizationName                       N p1.extension-attribute 14
+ExtensionPhysicalDeliveryAddressComponents     N p1.extension-attribute 15
+UnformattedPostalAddress                                       N p1.extension-attribute 16
+StreetAddress                                                          N p1.extension-attribute 17
+PostOfficeBoxAddress                                           N p1.extension-attribute 18
+PosteRestanteAddress                                           N p1.extension-attribute 19
+UniquePostalName                                                       N p1.extension-attribute 20
+LocalPostalAttributes                                          N p1.extension-attribute 21
+ExtendedNetworkAddress                                         N p1.extension-attribute 22
+TerminalType                                                           N p1.extension-attribute 23
+UniversalCommonName                                                    N p1.extension-attribute 24
+UniversalOrganizationName                                      N p1.extension-attribute 25
+UniversalPersonalName                                          N p1.extension-attribute 26
+UniversalOrganizationalUnitNames                       N p1.extension-attribute 27
+UniversalDomainDefinedAttributes                       N p1.extension-attribute 28
+UniversalPhysicalDeliveryOfficeName                    N p1.extension-attribute 29
+UniversalPhysicalDeliveryOfficeNumber          N p1.extension-attribute 30
+UniversalExtensionORAddressComponents          N p1.extension-attribute 31
+UniversalPhysicalDeliveryPersonalName          N p1.extension-attribute 32
+UniversalPhysicalDeliveryOrganizationName      N p1.extension-attribute 33
+UniversalExtensionPhysicalDeliveryAddressComponents N p1.extension-attribute 34
+UniversalUnformattedPostalAddress                      N p1.extension-attribute 35
+UniversalStreetAddress                                         N p1.extension-attribute 36
+UniversalPostOfficeBoxAddress                          N p1.extension-attribute 37
+UniversalPosteRestanteAddress                          N p1.extension-attribute 38
+UniversalUniquePostalName                                      N p1.extension-attribute 39
+UniversalLocalPostalAttributes                         N p1.extension-attribute 40
 
 #ReportDeliveryArgument        B       "2.6.1.4.14"    "id-et-report"
 
 AsymmetricToken                        B       "2.6.3.6.0"     "id-tok-asymmetricToken"
 MTANameAndOptionalGDI  B       "2.6.5.6.0"     "id-on-mtaName"
 
-BindTokenSignedData                    N       x411.tokendata 1
-MessageTokenSignedData         N       x411.tokendata 2
+BindTokenSignedData                    N       p1.tokendata 1
+MessageTokenSignedData         N       p1.tokendata 2
 # the next two are unlikely to ever be seen (unless in a bad encoding)
-MessageTokenEncryptedData      N       x411.tokendata 3
-BindTokenEncryptedData         N       x411.tokendata 4
+MessageTokenEncryptedData      N       p1.tokendata 3
+BindTokenEncryptedData         N       p1.tokendata 4
 
 # X402 - see master list in acp133.cnf
 
@@ -509,7 +509,7 @@ SubjectSubmissionIdentifier                 B       "2.6.4.3.40"    "id-att-subject-submission-identifi
 ORName                                                         B       "2.6.4.3.41"    "id-att-this-recipient-name"
 TraceInformationElement                                B       "2.6.4.3.75"    "id-att-trace-information"
 
-# IPMSMessageStoreAttributes - see master list in x420.cnf
+# IPMSMessageStoreAttributes - see master list in p22.cnf
 MessageToken                                           B       "2.6.1.7.36"    "id-hat-forwarded-token" 
 
 #.FN_BODY AdditionalInformation
@@ -522,7 +522,7 @@ MessageToken                                                B       "2.6.1.7.36"    "id-hat-forwarded-token"
    (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
 
    item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
-   tree = proto_item_add_subtree(item, ett_x411_additional_information);
+   tree = proto_item_add_subtree(item, ett_p1_additional_information);
    proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)"); 
 
    offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
@@ -534,8 +534,8 @@ MessageToken                                                B       "2.6.1.7.36"    "id-hat-forwarded-token"
        const char *name;
 
        if(extension_id != -1) {
-               proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, x411_StandardExtension_vals, "standard-extension %%d")); 
-               if (dissector_try_uint(x411_extension_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+               proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, p1_StandardExtension_vals, "standard-extension %%d")); 
+               if (dissector_try_uint(p1_extension_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
                        offset = tvb_length(tvb);
                } else {
                        proto_item *item = NULL;
@@ -543,7 +543,7 @@ MessageToken                                                B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
                        item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
                                "Dissector for standard-extension %%d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
-                       next_tree = proto_item_add_subtree(item, ett_x411_unknown_standard_extension);
+                       next_tree = proto_item_add_subtree(item, ett_p1_unknown_standard_extension);
                        offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
                        expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown standard-extension");
                }
@@ -573,8 +573,8 @@ MessageToken                                                B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
 #.FN_BODY ExtensionAttribute/extension-attribute-value
 
-       proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, x411_ExtensionAttributeType_vals, "extension-attribute-type %%d")); 
-       if (dissector_try_uint(x411_extension_attribute_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+       proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, p1_ExtensionAttributeType_vals, "extension-attribute-type %%d")); 
+       if (dissector_try_uint(p1_extension_attribute_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
                offset =tvb_length(tvb);
        } else {
                proto_item *item = NULL;
@@ -582,7 +582,7 @@ MessageToken                                                B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
                item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
                        "Dissector for extension-attribute-type %%d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
-               next_tree = proto_item_add_subtree(item, ett_x411_unknown_extension_attribute_type);
+               next_tree = proto_item_add_subtree(item, ett_p1_unknown_extension_attribute_type);
                offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
                expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type");
        }
@@ -663,10 +663,10 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
       proto_item *item = NULL;
       proto_tree *next_tree = NULL;
 
-      item = proto_tree_add_text(top_tree ? top_tree : tree, next_tvb, 0, tvb_length_remaining(tvb, offset), "X.411 Unknown Content (unknown built-in content-type)");
+      item = proto_tree_add_text(top_tree ? top_tree : tree, next_tvb, 0, tvb_length_remaining(tvb, offset), "P1 Unknown Content (unknown built-in content-type)");
       expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown built-in content-type");
       if (item) {
-        next_tree=proto_item_add_subtree(item, ett_x411_content_unknown);
+        next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
       }
       dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
     }
@@ -1116,14 +1116,14 @@ MessageToken                                            B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
        doing_address = TRUE;
 
-       if(hf_index == hf_x411_subject_identifier)
+       if(hf_index == hf_p1_subject_identifier)
                doing_subjectid = TRUE;
 
        %(DEFAULT_BODY)s
 
        doing_address = FALSE;
 
-       if(hf_index == hf_x411_subject_identifier)
+       if(hf_index == hf_p1_subject_identifier)
                doing_subjectid = FALSE;
 
 
@@ -1195,7 +1195,7 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
        %(DEFAULT_BODY)s
 
-       proto_item_append_text(address_item, " %%s", val_to_str(action, x411_RoutingAction_vals, "action(%%d)"));
+       proto_item_append_text(address_item, " %%s", val_to_str(action, p1_RoutingAction_vals, "action(%%d)"));
 
 #.FN_PARS MTABindError
   VAL_PTR=&error
@@ -1204,7 +1204,7 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
   int error = -1;
   %(DEFAULT_BODY)s
   if((error != -1) && check_col(actx->pinfo->cinfo, COL_INFO))
-    col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(error, x411_MTABindError_vals, "error(%%d)"));
+    col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(error, p1_MTABindError_vals, "error(%%d)"));
 
 #.FN_PARS TokenTypeIdentifier
        FN_VARIANT = _str  VAL_PTR = &object_identifier_id
@@ -1222,9 +1222,9 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
   %(DEFAULT_BODY)s
 
-  if( (credentials!=-1) && x411_Credentials_vals[credentials].strptr ){
+  if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
     if (check_col(actx->pinfo->cinfo, COL_INFO)) {
-      col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", x411_Credentials_vals[credentials].strptr);
+      col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_Credentials_vals[credentials].strptr);
     }
   }
 
@@ -1233,8 +1233,8 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
 #.FN_BODY TokenData/value
 
-       proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, x411_TokenDataType_vals, "tokendata-type %%d")); 
-       if (dissector_try_uint(x411_tokendata_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+       proto_item_append_text(tree, " (%%s)", val_to_str(extension_id, p1_TokenDataType_vals, "tokendata-type %%d")); 
+       if (dissector_try_uint(p1_tokendata_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
                offset = tvb_length(tvb);
        } else {
                proto_item *item = NULL;
@@ -1242,7 +1242,7 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
                item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
                        "Dissector for tokendata-type %%d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
-               next_tree = proto_item_add_subtree(item, ett_x411_unknown_tokendata_type);
+               next_tree = proto_item_add_subtree(item, ett_p1_unknown_tokendata_type);
                offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
                expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown tokendata-type");
        }
@@ -1258,7 +1258,7 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
        /* create some structure so we can tell what this unknown ASN.1 represents */   
        item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
-       tree = proto_item_add_subtree(item, ett_x411_bilateral_information);
+       tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
 
        offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
 
@@ -1270,9 +1270,9 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
        %(DEFAULT_BODY)s
        
-       if( (apdu!=-1) && x411_MTS_APDU_vals[apdu].strptr ){
+       if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
                if(check_col(actx->pinfo->cinfo, COL_INFO) && (apdu != 0)) { /* we don't show "message" - sub-dissectors have better idea */
-                       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", x411_MTS_APDU_vals[apdu].strptr);
+                       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_MTS_APDU_vals[apdu].strptr);
                }
        }
 
@@ -1284,9 +1284,9 @@ MessageToken                                              B       "2.6.1.7.36"    "id-hat-forwarded-token"
 
        %(DEFAULT_BODY)s
        
-        if( (report!=-1) && x411_ReportType_vals[report].strptr ){
+        if( (report!=-1) && p1_ReportType_vals[report].strptr ){
                if(check_col(actx->pinfo->cinfo, COL_INFO)) {
-                       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", x411_ReportType_vals[report].strptr);
+                       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %%s", p1_ReportType_vals[report].strptr);
                }
        }
 
similarity index 52%
rename from asn1/x411/packet-x411-template.c
rename to asn1/p1/packet-p1-template.c
index e3739c0798af872ab99b37053b08b12ff0ccc418..3f52787d5c0b14e6f3f3a5929985a58bc68d6cc7 100644 (file)
@@ -1,4 +1,4 @@
-/* packet-x411.c
+/* packet-p1.c
  * Routines for X.411 (X.400 Message Transfer)  packet dissection
  * Graeme Lunt 2005
  *
 #include "packet-x509if.h"
 #include "packet-x509sat.h"
 
-#include "packet-x411.h"
+#include "packet-p1.h"
 #include <epan/strutil.h>
 
 #define PNAME  "X.411 Message Transfer Service"
-#define PSNAME "X411"
-#define PFNAME "x411"
+#define PSNAME "P1"
+#define PFNAME "p1"
 
-static guint global_x411_tcp_port = 102;
+static guint global_p1_tcp_port = 102;
 static dissector_handle_t tpkt_handle;
-static void prefs_register_x411(void); /* forward declaration for use in preferences registration */
+static void prefs_register_p1(void); /* forward declaration for use in preferences registration */
 
 /* Initialize the protocol and registered fields */
-static int proto_x411 = -1;
+static int proto_p1 = -1;
 static int proto_p3 = -1;
 
 static struct SESSION_DATA_STRUCTURE* session = NULL;
@@ -73,35 +73,35 @@ static proto_item *address_item = NULL;
 
 static proto_tree *top_tree=NULL;
 
-static int hf_x411_MTS_APDU_PDU = -1;
-static int hf_x411_MTABindArgument_PDU = -1;
-static int hf_x411_MTABindResult_PDU = -1;
-static int hf_x411_MTABindError_PDU = -1;
+static int hf_p1_MTS_APDU_PDU = -1;
+static int hf_p1_MTABindArgument_PDU = -1;
+static int hf_p1_MTABindResult_PDU = -1;
+static int hf_p1_MTABindError_PDU = -1;
 
-#include "packet-x411-hf.c"
+#include "packet-p1-hf.c"
 
 /* Initialize the subtree pointers */
-static gint ett_x411 = -1;
+static gint ett_p1 = -1;
 static gint ett_p3 = -1;
-static gint ett_x411_content_unknown = -1;
-static gint ett_x411_bilateral_information = -1;
-static gint ett_x411_additional_information = -1;
-static gint ett_x411_unknown_standard_extension = -1;
-static gint ett_x411_unknown_extension_attribute_type = -1;
-static gint ett_x411_unknown_tokendata_type = -1;
-#include "packet-x411-ett.c"
+static gint ett_p1_content_unknown = -1;
+static gint ett_p1_bilateral_information = -1;
+static gint ett_p1_additional_information = -1;
+static gint ett_p1_unknown_standard_extension = -1;
+static gint ett_p1_unknown_extension_attribute_type = -1;
+static gint ett_p1_unknown_tokendata_type = -1;
+#include "packet-p1-ett.c"
 
 /* Dissector tables */
-static dissector_table_t x411_extension_dissector_table;
-static dissector_table_t x411_extension_attribute_dissector_table;
-static dissector_table_t x411_tokendata_dissector_table;
+static dissector_table_t p1_extension_dissector_table;
+static dissector_table_t p1_extension_attribute_dissector_table;
+static dissector_table_t p1_tokendata_dissector_table;
 
-#include "packet-x411-table.c"   /* operation and error codes */
+#include "packet-p1-table.c"   /* operation and error codes */
 
-#include "packet-x411-fn.c"
+#include "packet-p1-fn.c"
 
-#include "packet-x411-table11.c" /* operation argument/result dissectors */
-#include "packet-x411-table21.c" /* error dissector */
+#include "packet-p1-table11.c" /* operation argument/result dissectors */
+#include "packet-p1-table21.c" /* error dissector */
 
 static const ros_info_t p3_ros_info = {
   "P3",
@@ -114,13 +114,13 @@ static const ros_info_t p3_ros_info = {
 };
 
 
-char* x411_get_last_oraddress() { return oraddress; }
+char* p1_get_last_oraddress() { return oraddress; }
 
 /*
- * Dissect X411 MTS APDU
+ * Dissect P1 MTS APDU
  */
 void
-dissect_x411_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 {
        proto_item *item=NULL;
        proto_tree *tree=NULL;
@@ -131,29 +131,29 @@ dissect_x411_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tre
        top_tree=parent_tree;
 
        if(parent_tree){
-               item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
-               tree = proto_item_add_subtree(item, ett_x411);
+               item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, FALSE);
+               tree = proto_item_add_subtree(item, ett_p1);
        }
 
        col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
        col_set_str(pinfo->cinfo, COL_INFO, "Transfer");
 
-       dissect_x411_MTS_APDU (FALSE, tvb, 0, &asn1_ctx, tree, hf_x411_MTS_APDU_PDU);
+       dissect_p1_MTS_APDU (FALSE, tvb, 0, &asn1_ctx, tree, hf_p1_MTS_APDU_PDU);
 }
 
 /*
-* Dissect X411 PDUs inside a PPDU.
+* Dissect P1 PDUs inside a PPDU.
 */
 static void
-dissect_x411(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+dissect_p1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 {
        int offset = 0;
        int old_offset;
        proto_item *item=NULL;
        proto_tree *tree=NULL;
-       int (*x411_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) = NULL;
-       char *x411_op_name;
-       int hf_x411_index = -1;
+       int (*p1_dissector)(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) = NULL;
+       char *p1_op_name;
+       int hf_p1_index = -1;
        asn1_ctx_t asn1_ctx;
        asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
 
@@ -172,46 +172,46 @@ dissect_x411(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
        }
 
        if(parent_tree){
-               item = proto_tree_add_item(parent_tree, proto_x411, tvb, 0, -1, FALSE);
-               tree = proto_item_add_subtree(item, ett_x411);
+               item = proto_tree_add_item(parent_tree, proto_p1, tvb, 0, -1, FALSE);
+               tree = proto_item_add_subtree(item, ett_p1);
        }
        col_set_str(pinfo->cinfo, COL_PROTOCOL, "P1");
        col_clear(pinfo->cinfo, COL_INFO);
 
        switch(session->ros_op & ROS_OP_MASK) {
        case (ROS_OP_BIND | ROS_OP_ARGUMENT):   /*  BindInvoke */
-         x411_dissector = dissect_x411_MTABindArgument;
-         x411_op_name = "Bind-Argument";
-         hf_x411_index = hf_x411_MTABindArgument_PDU;
+         p1_dissector = dissect_p1_MTABindArgument;
+         p1_op_name = "Bind-Argument";
+         hf_p1_index = hf_p1_MTABindArgument_PDU;
          break;
        case (ROS_OP_BIND | ROS_OP_RESULT):     /*  BindResult */
-         x411_dissector = dissect_x411_MTABindResult;
-         x411_op_name = "Bind-Result";
-         hf_x411_index = hf_x411_MTABindResult_PDU;
+         p1_dissector = dissect_p1_MTABindResult;
+         p1_op_name = "Bind-Result";
+         hf_p1_index = hf_p1_MTABindResult_PDU;
          break;
        case (ROS_OP_BIND | ROS_OP_ERROR):      /*  BindError */
-         x411_dissector = dissect_x411_MTABindError;
-         x411_op_name = "Bind-Error";
-         hf_x411_index = hf_x411_MTABindError_PDU;
+         p1_dissector = dissect_p1_MTABindError;
+         p1_op_name = "Bind-Error";
+         hf_p1_index = hf_p1_MTABindError_PDU;
          break;
        case (ROS_OP_INVOKE | ROS_OP_ARGUMENT): /*  Invoke Argument */
-         x411_dissector = dissect_x411_MTS_APDU;
-         x411_op_name = "Transfer";
-         hf_x411_index = hf_x411_MTS_APDU_PDU;
+         p1_dissector = dissect_p1_MTS_APDU;
+         p1_op_name = "Transfer";
+         hf_p1_index = hf_p1_MTS_APDU_PDU;
          break;
        default:
-         proto_tree_add_text(tree, tvb, offset, -1,"Unsupported X411 PDU");
+         proto_tree_add_text(tree, tvb, offset, -1,"Unsupported P1 PDU");
          return;
        }
 
        if (check_col(pinfo->cinfo, COL_INFO))
-         col_set_str(pinfo->cinfo, COL_INFO, x411_op_name);
+         col_set_str(pinfo->cinfo, COL_INFO, p1_op_name);
 
        while (tvb_reported_length_remaining(tvb, offset) > 0){
                old_offset=offset;
-               offset=(*x411_dissector)(FALSE, tvb, offset, &asn1_ctx , tree, hf_x411_index);
+               offset=(*p1_dissector)(FALSE, tvb, offset, &asn1_ctx , tree, hf_p1_index);
                if(offset == old_offset){
-                       proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte X411 PDU");
+                       proto_tree_add_text(tree, tvb, offset, -1,"Internal error, zero-byte P1 PDU");
                        offset = tvb_length(tvb);
                        break;
                }
@@ -219,80 +219,80 @@ dissect_x411(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 }
 
 
-/*--- proto_register_x411 -------------------------------------------*/
-void proto_register_x411(void) {
+/*--- proto_register_p1 -------------------------------------------*/
+void proto_register_p1(void) {
 
   /* List of fields */
   static hf_register_info hf[] =
   {
          /* "Created by defining PDU in .cnf */
-    { &hf_x411_MTABindArgument_PDU,
-      { "MTABindArgument", "x411.MTABindArgument",
-        FT_UINT32, BASE_DEC, VALS(x411_MTABindArgument_vals), 0,
-        "x411.MTABindArgument", HFILL }},
-    { &hf_x411_MTABindResult_PDU,
-      { "MTABindResult", "x411.MTABindResult",
-        FT_UINT32, BASE_DEC, VALS(x411_MTABindResult_vals), 0,
-        "x411.MTABindResult", HFILL }},
-    { &hf_x411_MTABindError_PDU,
-      { "MTABindError", "x411.MTABindError",
-        FT_UINT32, BASE_DEC, VALS(x411_MTABindError_vals), 0,
-        "x411.MTABindError", HFILL }},
-    { &hf_x411_MTS_APDU_PDU,
-      { "MTS-APDU", "x411.MTS_APDU",
-        FT_UINT32, BASE_DEC, VALS(x411_MTS_APDU_vals), 0,
-        "x411.MTS_APDU", HFILL }},
-
-#include "packet-x411-hfarr.c"
+    { &hf_p1_MTABindArgument_PDU,
+      { "MTABindArgument", "p1.MTABindArgument",
+        FT_UINT32, BASE_DEC, VALS(p1_MTABindArgument_vals), 0,
+        "p1.MTABindArgument", HFILL }},
+    { &hf_p1_MTABindResult_PDU,
+      { "MTABindResult", "p1.MTABindResult",
+        FT_UINT32, BASE_DEC, VALS(p1_MTABindResult_vals), 0,
+        "p1.MTABindResult", HFILL }},
+    { &hf_p1_MTABindError_PDU,
+      { "MTABindError", "p1.MTABindError",
+        FT_UINT32, BASE_DEC, VALS(p1_MTABindError_vals), 0,
+        "p1.MTABindError", HFILL }},
+    { &hf_p1_MTS_APDU_PDU,
+      { "MTS-APDU", "p1.MTS_APDU",
+        FT_UINT32, BASE_DEC, VALS(p1_MTS_APDU_vals), 0,
+        "p1.MTS_APDU", HFILL }},
+
+#include "packet-p1-hfarr.c"
   };
 
   /* List of subtrees */
   static gint *ett[] = {
-    &ett_x411,
+    &ett_p1,
     &ett_p3,
-    &ett_x411_content_unknown,
-    &ett_x411_bilateral_information,
-    &ett_x411_additional_information,
-    &ett_x411_unknown_standard_extension,
-    &ett_x411_unknown_extension_attribute_type,
-    &ett_x411_unknown_tokendata_type,
-#include "packet-x411-ettarr.c"
+    &ett_p1_content_unknown,
+    &ett_p1_bilateral_information,
+    &ett_p1_additional_information,
+    &ett_p1_unknown_standard_extension,
+    &ett_p1_unknown_extension_attribute_type,
+    &ett_p1_unknown_tokendata_type,
+#include "packet-p1-ettarr.c"
   };
 
-  module_t *x411_module;
+  module_t *p1_module;
 
   /* Register protocol */
-  proto_x411 = proto_register_protocol(PNAME, PSNAME, PFNAME);
-  register_dissector("x411", dissect_x411, proto_x411);
+  proto_p1 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+  register_dissector("p1", dissect_p1, proto_p1);
 
   proto_p3 = proto_register_protocol("X.411 Message Access Service", "P3", "p3");
 
   /* Register fields and subtrees */
-  proto_register_field_array(proto_x411, hf, array_length(hf));
+  proto_register_field_array(proto_p1, hf, array_length(hf));
   proto_register_subtree_array(ett, array_length(ett));
 
-  x411_extension_dissector_table = register_dissector_table("x411.extension", "X411-EXTENSION", FT_UINT32, BASE_DEC);
-  x411_extension_attribute_dissector_table = register_dissector_table("x411.extension-attribute", "X411-EXTENSION-ATTRIBUTE", FT_UINT32, BASE_DEC);
-  x411_tokendata_dissector_table = register_dissector_table("x411.tokendata", "X411-TOKENDATA", FT_UINT32, BASE_DEC);
+  p1_extension_dissector_table = register_dissector_table("p1.extension", "P1-EXTENSION", FT_UINT32, BASE_DEC);
+  p1_extension_attribute_dissector_table = register_dissector_table("p1.extension-attribute", "P1-EXTENSION-ATTRIBUTE", FT_UINT32, BASE_DEC);
+  p1_tokendata_dissector_table = register_dissector_table("p1.tokendata", "P1-TOKENDATA", FT_UINT32, BASE_DEC);
 
-  /* Register our configuration options for X411, particularly our port */
+  /* Register our configuration options for P1, particularly our port */
 
-  x411_module = prefs_register_protocol_subtree("OSI/X.400", proto_x411, prefs_register_x411);
+  p1_module = prefs_register_protocol_subtree("OSI/X.400", proto_p1, prefs_register_p1);
 
-  prefs_register_uint_preference(x411_module, "tcp.port", "X.411 TCP Port",
+  prefs_register_uint_preference(p1_module, "tcp.port", "P1 TCP Port",
                                 "Set the port for P1 operations (if other"
                                 " than the default of 102)",
-                                10, &global_x411_tcp_port);
+                                10, &global_p1_tcp_port);
 
-  register_ber_syntax_dissector("X.411 Message", proto_x411, dissect_x411_mts_apdu);
+  register_ber_syntax_dissector("P1 Message", proto_p1, dissect_p1_mts_apdu);
 }
 
 
-/*--- proto_reg_handoff_x411 --- */
-void proto_reg_handoff_x411(void) {
-  dissector_handle_t x411_handle;
+/*--- proto_reg_handoff_p1 --- */
+void proto_reg_handoff_p1(void) {
+  dissector_handle_t p1_handle;
 
-#include "packet-x411-dis-tab.c"
+#include "packet-p1-dis-tab.c"
 
   /* APPLICATION CONTEXT */
 
@@ -300,12 +300,12 @@ void proto_reg_handoff_x411(void) {
 
   /* ABSTRACT SYNTAXES */
 
-  x411_handle = find_dissector("x411");
-  register_rtse_oid_dissector_handle("2.6.0.2.12", x411_handle, 0, "id-as-mta-rtse", TRUE);
-  register_rtse_oid_dissector_handle("2.6.0.2.7", x411_handle, 0, "id-as-mtse", FALSE);
+  p1_handle = find_dissector("p1");
+  register_rtse_oid_dissector_handle("2.6.0.2.12", p1_handle, 0, "id-as-mta-rtse", TRUE);
+  register_rtse_oid_dissector_handle("2.6.0.2.7", p1_handle, 0, "id-as-mtse", FALSE);
 
-  register_rtse_oid_dissector_handle("applicationProtocol.1", x411_handle, 0, "mts-transfer-protocol-1984", FALSE);
-  register_rtse_oid_dissector_handle("applicationProtocol.12", x411_handle, 0, "mta-transfer-protocol", FALSE);
+  register_rtse_oid_dissector_handle("applicationProtocol.1", p1_handle, 0, "mts-transfer-protocol-1984", FALSE);
+  register_rtse_oid_dissector_handle("applicationProtocol.12", p1_handle, 0, "mta-transfer-protocol", FALSE);
 
   /* remember the tpkt handler for change in preferences */
   tpkt_handle = find_dissector("tpkt");
@@ -332,7 +332,7 @@ void proto_reg_handoff_x411(void) {
 }
 
 static void
-prefs_register_x411(void)
+prefs_register_p1(void)
 {
   static guint tcp_port = 0;
 
@@ -342,7 +342,7 @@ prefs_register_x411(void)
     dissector_delete_uint("tcp.port", tcp_port, tpkt_handle);
 
   /* Set our port number for future use */
-  tcp_port = global_x411_tcp_port;
+  tcp_port = global_p1_tcp_port;
 
   if((tcp_port > 0) && (tcp_port != 102) && tpkt_handle)
     dissector_add_uint("tcp.port", tcp_port, tpkt_handle);
similarity index 68%
rename from asn1/x411/packet-x411-template.h
rename to asn1/p1/packet-p1-template.h
index 01eb470f276a0fadf97189d58e8c601c39215b2a..d83bd5dc8e816ae0177763937d2d00360bb31ef0 100644 (file)
@@ -1,5 +1,5 @@
-/* packet-x411.h
- * Routines forX.411 (X.400 Message Transfer) packet dissection
+/* packet-p3.h
+ * Routines for X.411 (X.400 Message Transfer) packet dissection
  * Graeme Lunt 2005
  *
  * $Id$
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#ifndef PACKET_X411_H
-#define PACKET_X411_H
+#ifndef PACKET_P1_H
+#define PACKET_P1_H
 
-#include "packet-x411-val.h"
+#include "packet-p1-val.h"
 
-char* x411_get_last_oraddress(void);
-void dissect_x411_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree);
-#include "packet-x411-exp.h"
+char* p1_get_last_oraddress(void);
+void dissect_p1_mts_apdu (tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree);
+#include "packet-p1-exp.h"
 
-void proto_reg_handoff_x411(void);
-void proto_register_x411(void);
+void proto_reg_handoff_p1(void);
+void proto_register_p1(void);
 
-#endif  /* PACKET_X411_H */
+#endif  /* PACKET_P1_H */
similarity index 100%
rename from asn1/x411/Makefile.am
rename to asn1/p22/Makefile.am
similarity index 95%
rename from asn1/x420/Makefile.common
rename to asn1/p22/Makefile.common
index 928fcb36e2fee15a205c8732bc51f84852914b4b..3864321efad284903c2b6549a6dc77ea7df74e47 100644 (file)
@@ -20,7 +20,7 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 
-PROTOCOL_NAME=x420
+PROTOCOL_NAME=p22
 
 DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c \
        packet-$(PROTOCOL_NAME).h
@@ -61,7 +61,7 @@ EXTRA_CNF= \
        ../acse/acse-exp.cnf \
        ../ftam/ftam-exp.cnf \
        ../p7/p7-exp.cnf \
-       ../x411/x411-exp.cnf \
+       ../p1/p1-exp.cnf \
        ../x509af/x509af-exp.cnf \
        ../x509ce/x509ce-exp.cnf
 
@@ -74,8 +74,8 @@ EXTRA_CNF= \
 ../p7/p7-exp.cnf:
        (cd ../p7 && $(MAKE_CNF_EXPORT))
 
-../x411/x411-exp.cnf:
-       (cd ../x411 && $(MAKE_CNF_EXPORT))
+../p1/p1-exp.cnf:
+       (cd ../p1 && $(MAKE_CNF_EXPORT))
 
 ../x509af/x509af-exp.cnf:
        (cd ../x509af && $(MAKE_CNF_EXPORT))
similarity index 98%
rename from asn1/x420/x420.cnf
rename to asn1/p22/p22.cnf
index b6a2affbe3be53bbe1d287fcf53cb9b2c8de26b6..ae0c3b658640204d08f412c3ad843732cfc3f9f3 100644 (file)
@@ -1,4 +1,4 @@
-# x411.cnf
+# p22.cnf
 # X.420 (InterPersonal Messaging) conformance file
 # $Id$
 
@@ -10,7 +10,7 @@ Time                  TYPE = FT_STRING  DISPLAY = BASE_NONE  STRING = NULL BITMASK = 0
 Permitted-Actions-Attribute TYPE = FT_BYTES   DISPLAY = BASE_NONE   STRINGS = NULL  BITMASK = 0
 
 #.IMPORT ../ftam/ftam-exp.cnf
-#.IMPORT ../x411/x411-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
 #.IMPORT ../p7/p7-exp.cnf
 #.IMPORT ../x509af/x509af-exp.cnf
 #.IMPORT ../x509ce/x509ce-exp.cnf
@@ -124,7 +124,7 @@ GeneralTextData                             B "2.6.1.4.11"  "id-et-general-text"
 FileTransferParameters         B "2.6.1.11.12" "id-ep-file-transfer"
 FileTransferData                       B "2.6.1.4.12"  "id-et-file-transfer"
 # {id-et 13} is no longer defined
-# ForwardedReportBodyPart {id-et 14} defined in x411.cnf
+# ForwardedReportBodyPart {id-et 14} defined in p1.cnf
 MessageParameters                      B "2.6.1.11.15" "id-ep-notification"
 IPN                                                    B "2.6.1.4.15"  "id-et-notification"
 VoiceParameters                        B "2.6.1.11.16" "id-ep-voice"
@@ -183,7 +183,7 @@ ManualHandlingInstruction   B       "2.6.1.7.32"    "id-hat-manual-handling-instructions"
 OriginatorsReference           B       "2.6.1.7.33"    "id-hat-originators-reference"
 PrecedencePolicyIdentifier     B       "2.6.1.7.34"    "id-hat-precedence-policy-id"
 ForwardedContentToken          B       "2.6.1.7.35"    "id-hat-forwarded-content-token"
-#MessageToken                          B       "2.6.1.7.36"    "id-hat-forwarded-token" - see x411.cnf
+#MessageToken                          B       "2.6.1.7.36"    "id-hat-forwarded-token" - see p1.cnf
 Precedence                                     B       "2.6.1.7.37"    "id-hat-precedence"
 BodyPartSignatureVerification  B       "2.6.1.7.38"    "id-hat-body-part-signature-verification-status"
 
similarity index 75%
rename from asn1/x420/packet-x420-template.c
rename to asn1/p22/packet-p22-template.c
index 64c5458c3be9db44e68c2bdb0d63463196bc2ddf..95e9bbe0e7ebd80e87fb5a8798a2e40f1f11c6a6 100644 (file)
@@ -1,4 +1,4 @@
-/* packet-x420.c
+/* packet-p22.c
  * Routines for X.420 (X.400 Message Transfer)  packet dissection
  * Graeme Lunt 2005
  *
 #include "packet-x509af.h"
 #include "packet-x509ce.h"
 #include "packet-ftam.h"
-#include "packet-x411.h"
+#include "packet-p1.h"
 #include "packet-p7.h"
 
-#include "packet-x420.h"
+#include "packet-p22.h"
 
 #define PNAME  "X.420 Information Object"
-#define PSNAME "X420"
-#define PFNAME "x420"
+#define PSNAME "P22"
+#define PFNAME "p22"
 
 /* Initialize the protocol and registered fields */
-static int proto_x420 = -1;
+static int proto_p22 = -1;
 
 static const char *object_identifier_id; /* content type identifier */
 
@@ -82,21 +82,21 @@ static const value_string charsetreg_vals [] = {
   { 0, NULL}
 };
 
-#include "packet-x420-val.h"
+#include "packet-p22-val.h"
 
-#include "packet-x420-hf.c"
+#include "packet-p22-hf.c"
 
 /* Initialize the subtree pointers */
-static gint ett_x420 = -1;
-#include "packet-x420-ett.c"
+static gint ett_p22 = -1;
+#include "packet-p22-ett.c"
 
-#include "packet-x420-fn.c"
+#include "packet-p22-fn.c"
 
 /*
-* Dissect X420 PDUs inside a PPDU.
+* Dissect P22 PDUs inside a PPDU.
 */
 static void
-dissect_x420(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+dissect_p22(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 {
        int offset = 0;
        proto_item *item=NULL;
@@ -105,49 +105,49 @@ dissect_x420(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
        asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
 
        if(parent_tree){
-               item = proto_tree_add_item(parent_tree, proto_x420, tvb, 0, -1, FALSE);
-               tree = proto_item_add_subtree(item, ett_x420);
+               item = proto_tree_add_item(parent_tree, proto_p22, tvb, 0, -1, FALSE);
+               tree = proto_item_add_subtree(item, ett_p22);
        }
 
        col_set_str(pinfo->cinfo, COL_PROTOCOL, "P22");
        col_set_str(pinfo->cinfo, COL_INFO, "InterPersonal");
 
-       dissect_x420_InformationObject(TRUE, tvb, offset, &asn1_ctx , tree, -1);
+       dissect_p22_InformationObject(TRUE, tvb, offset, &asn1_ctx , tree, -1);
 }
 
 
-/*--- proto_register_x420 -------------------------------------------*/
-void proto_register_x420(void) {
+/*--- proto_register_p22 -------------------------------------------*/
+void proto_register_p22(void) {
 
   /* List of fields */
   static hf_register_info hf[] =
   {
-#include "packet-x420-hfarr.c"
+#include "packet-p22-hfarr.c"
   };
 
   /* List of subtrees */
   static gint *ett[] = {
-    &ett_x420,
-#include "packet-x420-ettarr.c"
+    &ett_p22,
+#include "packet-p22-ettarr.c"
   };
 
   /* Register protocol */
-  proto_x420 = proto_register_protocol(PNAME, PSNAME, PFNAME);
-  register_dissector("x420", dissect_x420, proto_x420);
+  proto_p22 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+  register_dissector("p22", dissect_p22, proto_p22);
   /* Register fields and subtrees */
-  proto_register_field_array(proto_x420, hf, array_length(hf));
+  proto_register_field_array(proto_p22, hf, array_length(hf));
   proto_register_subtree_array(ett, array_length(ett));
 
 }
 
 
-/*--- proto_reg_handoff_x420 --- */
-void proto_reg_handoff_x420(void) {
+/*--- proto_reg_handoff_p22 --- */
+void proto_reg_handoff_p22(void) {
 
-#include "packet-x420-dis-tab.c" 
+#include "packet-p22-dis-tab.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)");
+  register_ber_oid_dissector("2.6.1.10.0", dissect_p22, proto_p22, "InterPersonal Message (1984)");
+  register_ber_oid_dissector("2.6.1.10.1", dissect_p22, proto_p22, "InterPersonal Message (1988)");
 
 
 }
similarity index 83%
rename from asn1/x420/packet-x420-template.h
rename to asn1/p22/packet-p22-template.h
index f177712f85e3729bc8c16b5ebb06081246918efc..5e8f716f0f523ca300214496c0e8c3fc09508533 100644 (file)
@@ -1,4 +1,4 @@
-/* packet-x420.h
+/* packet-p22.h
  * Routines for X.420 (X.400 Message Transfer) packet dissection
  * Graeme Lunt 2005
  *
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#ifndef PACKET_X420_H
-#define PACKET_X420_H
+#ifndef PACKET_P22_H
+#define PACKET_P22_H
 
-#include "packet-x420-exp.h"
+#include "packet-p22-exp.h"
 
-void proto_reg_handoff_x420(void);
-void proto_register_x420(void);
+void proto_reg_handoff_p22(void);
+void proto_register_p22(void);
 
-#endif  /* PACKET_X420_H */
+#endif  /* PACKET_P22_H */
index 6b3b8780b4d1fd6b4ce906ac951d56fa13c20cce..430366c62fc54b7d167da63b48b01909a34146e4 100644 (file)
@@ -53,12 +53,12 @@ SRC_FILES = \
 A2W_FLAGS= -b -e -L -C
 
 EXTRA_CNF= \
-       ../x411/x411-exp.cnf \
+       ../p1/p1-exp.cnf \
        ../ros/ros-exp.cnf \
        ../rtse/rtse.cnf
 
-../x411/x411-exp.cnf:
-       (cd ../x411 && $(MAKE_CNF_EXPORT))
+../p1/p1-exp.cnf:
+       (cd ../p1 && $(MAKE_CNF_EXPORT))
 
 ../ros/ros-exp.cnf:
        (cd ../ros && $(MAKE_CNF_EXPORT))
index 740cf0772d90e576c41b0918b4e72179fab3cb5f..487f6f7c2eb40fc35bb63b7cd73b031e41732bed 100644 (file)
@@ -2,7 +2,7 @@
 # $Id$
 #
 
-#.IMPORT ../x411/x411-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
 #.IMPORT ../ros/ros-exp.cnf
 #.IMPORT ../rtse/rtse-exp.cnf
 
@@ -220,80 +220,80 @@ AutoActionError                   B       "2.6.4.3.46"    "id-att-auto-action-error"
 #Integer                               B       "2.6.4.3.47"    "id-att-auto-action-registration-identifier" - see XXX
 SequenceNumber                 B       "2.6.4.3.48"    "id-att-auto-action-subject-entry"
 AutoActionType                 B       "2.6.4.3.49"    "id-att-auto-action-type"
-#CertificateSelectors  B       "2.6.4.3.80"    "id-att-certificate-selectors" - see x411.cnf
+#CertificateSelectors  B       "2.6.4.3.80"    "id-att-certificate-selectors" - see p1.cnf
 SequenceNumber                 B       "2.6.4.3.0"             "id-att-child-sequence-numbers"
 #Content                               B       "2.6.4.3.1"             "id-att-content" - see XXX
 #AlgorithmIdentifier   B       "2.6.4.3.2"             "id-att-content-confidentiality-algorithm-identifier" - see XXX
-#ContentCorrelator             B       "2.6.4.3.3"             "id-att-content-correlator" - see x411.cnf
-#ContentIdentifier             B       "2.6.4.3.4"             "id-att-content-identifier" - see x411.cnf
-#ContentIntegrityCheck B       "2.6.4.3.5"             "id-att-content-inetgrity-check" - see x411.cnf
-#ContentLength                 B       "2.6.4.3.6"             "id-att-content-length" - see x411.cnf
+#ContentCorrelator             B       "2.6.4.3.3"             "id-att-content-correlator" - see p1.cnf
+#ContentIdentifier             B       "2.6.4.3.4"             "id-att-content-identifier" - see p1.cnf
+#ContentIntegrityCheck B       "2.6.4.3.5"             "id-att-content-inetgrity-check" - see p1.cnf
+#ContentLength                 B       "2.6.4.3.6"             "id-att-content-length" - see p1.cnf
 #Boolean                               B       "2.6.4.3.7"             "id-att-content-returned" - see XXX
-#ExtendedContentType   B       "2.6.4.3.8"             "id-att-content-type" - see x411.cnf
-#ConversionWithLossProhibited          B       "2.6.4.3.9"     "id-att-conversion-with-loss-prohibited" - see x411.cnf
+#ExtendedContentType   B       "2.6.4.3.8"             "id-att-content-type" - see p1.cnf
+#ConversionWithLossProhibited          B       "2.6.4.3.9"     "id-att-conversion-with-loss-prohibited" - see p1.cnf
 MS-EIT                                                         B       "2.6.4.3.10"    "id-att-converted-EITs"
 CreationTime                                           B       "2.6.4.3.11"    "id-att-creation-time"
 DeferredDeliveryCancellationTime       B       "2.6.4.3.50"    "id-att-deferred-delivery-cancellation-time"
-#DeferredDeliveryTime                          B       "2.6.4.3.51"    "id-att-deferred-delivery-time" - see x411.cnf
+#DeferredDeliveryTime                          B       "2.6.4.3.51"    "id-att-deferred-delivery-time" - see p1.cnf
 DeletionTime                                           B       "2.6.4.3.52"    "id-att-deletion-time"
 MS-EIT                                                         B       "2.6.4.3.12"    "id-att-delivered-EITs"
-#DeliveryFlags                                         B       "2.6.4.3.13"    "id-att-delivery-flags" - see x411.cnf
-#ORName                                                                B       "2.6.4.3.78"    "id-att-dl-exempted-recipients" - see x411.cnf
-#DLExpansion                                           B       "2.6.4.3.14"    "id-att-dl-expansion-history" - see x411.cnf
-#DLExpansionProhibited                         B       "2.6.4.3.53"    "id-att-dl-expansion-prohibited" - see x411.cnf
+#DeliveryFlags                                         B       "2.6.4.3.13"    "id-att-delivery-flags" - see p1.cnf
+#ORName                                                                B       "2.6.4.3.78"    "id-att-dl-exempted-recipients" - see p1.cnf
+#DLExpansion                                           B       "2.6.4.3.14"    "id-att-dl-expansion-history" - see p1.cnf
+#DLExpansionProhibited                         B       "2.6.4.3.53"    "id-att-dl-expansion-prohibited" - see p1.cnf
 EntryType                                                      B       "2.6.4.3.16"    "id-att-entry-type"
-#InternalTraceInformationElement       B       "2.6.4.3.54"    "id-att-internal-trace-information" - see x411.cnf
-#LatestDeliveryTime                                    B       "2.6.4.3.55"    "id-att-latest-delivery-time" - see x411.cnf
+#InternalTraceInformationElement       B       "2.6.4.3.54"    "id-att-internal-trace-information" - see p1.cnf
+#LatestDeliveryTime                                    B       "2.6.4.3.55"    "id-att-latest-delivery-time" - see p1.cnf
 #NULL                                                          B       "2.6.4.3.77"    "id-att-locally-originated - see XXX
 #NULL                                                          B       "2.6.4.3.56"    "id-att-marked-for-deletion" - see XXX
-#MessageDeliveryEnvelope                       B       "2.6.4.3.18"    "id-att-message-delivery-envelope" - see x411.cnf
-#MessageDeliveryTime                           B       "2.6.4.3.20"    "id-att-message-delivery-time" - see x411.cnf
+#MessageDeliveryEnvelope                       B       "2.6.4.3.18"    "id-att-message-delivery-envelope" - see p1.cnf
+#MessageDeliveryTime                           B       "2.6.4.3.20"    "id-att-message-delivery-time" - see p1.cnf
 MessageGroupName                                       B       "2.6.4.3.57"    "id-att-message-group-name"
-#MTSIdentifier                                         B       "2.6.4.3.19"    "id-att-message-identifier" - see x411.cnf
+#MTSIdentifier                                         B       "2.6.4.3.19"    "id-att-message-identifier" - see p1.cnf
 #GeneralString                                         B       "2.6.4.3.58"    "id-att-message-notes" - see XXX
-#MessageOriginAuthenticationCheck      B       "2.6.4.3.21"    "id-at-message-orgin-authentication-check" - see x411.cnf
-#MessageSecurityLabel                          B       "2.6.4.3.22"    "id-att-message-security-label" - see x411.cnf
-#MessageSubmissionEnvelope                     B       "2.6.4.3.59"    "id-att-message-submission-envelope" - see x411.cnf
+#MessageOriginAuthenticationCheck      B       "2.6.4.3.21"    "id-at-message-orgin-authentication-check" - see p1.cnf
+#MessageSecurityLabel                          B       "2.6.4.3.22"    "id-att-message-security-label" - see p1.cnf
+#MessageSubmissionEnvelope                     B       "2.6.4.3.59"    "id-att-message-submission-envelope" - see p1.cnf
 #MessageSubmissionTime                         B       "2.6.4.3.23"    "id-att-message-submission-time"
 #MessageToken                                          B       "2.6.4.3.24"    "id-att-message-token"
 #NULL                                                          B       "2.6.4.3.60"    "id-att-ms-originated"
 SubmissionError                                                B       "2.6.4.3.61"    "id-att-ms-submission-error"
-#ExtendedCertificates                          B       "2.6.4.3.81"    "id-att-multiple-originator-certificates" - see x411.cnf
+#ExtendedCertificates                          B       "2.6.4.3.81"    "id-att-multiple-originator-certificates" - see p1.cnf
 MS-EIT                                                         B       "2.6.4.3.25"    "id-att-original-EITs"
-#ORName                                                                B       "2.6.4.3.17"    "id-att-originally-intended-recipient-name" - see x411.cnf
-#OriginatingMTACertificate                     B       "2.6.4.3.62"    "id-att-originating-MTA-certificate" - see x411.cnf
-#OriginatorCertificate                         B       "2.6.4.3.26"    "id-att-originator-certificate" - see x411.cnf
-#ORName                                                                B       "2.6.4.3.27"    "id-att-originator-name" - see x411.cnf
-#OriginatorReportRequest                       B       "2.6.4.3.63"    "id-att-originator-report-request" - see x411.cnf
-#OriginatorReturnAddress                       B       "2.6.4.3.64"    "id-att-originator-return-address" - see x411.cnf
-#ORName                                                                B       "2.6.4.3.28"    "id-att-other-recipient-names" - see x411.cnf
+#ORName                                                                B       "2.6.4.3.17"    "id-att-originally-intended-recipient-name" - see p1.cnf
+#OriginatingMTACertificate                     B       "2.6.4.3.62"    "id-att-originating-MTA-certificate" - see p1.cnf
+#OriginatorCertificate                         B       "2.6.4.3.26"    "id-att-originator-certificate" - see p1.cnf
+#ORName                                                                B       "2.6.4.3.27"    "id-att-originator-name" - see p1.cnf
+#OriginatorReportRequest                       B       "2.6.4.3.63"    "id-att-originator-report-request" - see p1.cnf
+#OriginatorReturnAddress                       B       "2.6.4.3.64"    "id-att-originator-return-address" - see p1.cnf
+#ORName                                                                B       "2.6.4.3.28"    "id-att-other-recipient-names" - see p1.cnf
 SequenceNumber                                         B       "2.6.4.3.29"    "id-att-parent-sequence-number"
-#PerMessageIndicators                          B       "2.6.4.3.65"    "id-att-per-message-indicators" - see x411.cnf
-#PerRecipientMessageSubmissionFields   B       "2.6.4.3.66"    "id-att-per-recipient-message-submission-fields" - see x411.cnf
-#PerRecipientProbeSubmissionFields     B       "2.6.4.3.67"    "id-att-per-recipient-probe-submission-fields" - see x411.cnf
-#PerRecipientReportDeliveryFields      B       "2.6.4.3.30"    "id-att-per-recipient-report-delivery-fields" - see x411.cnf
-#Priority                                                      B       "2.6.4.3.31"    "id-att-priority" - see x411.cnf
-#ProbeOriginAuthenticationCheck        B       "2.6.4.3.68"    "id-att-probe-origin-authentication-check" - see x411.cnf
-#ProbeSubmissionEnvelope       B       "2.6.4.3.69"    "id-att-probe-submission-envelope" - see x411.cnf
-#ProofOfDeliveryRequest        B       "2.6.4.3.32"    "id-att-proof-of-delivery-request" - see x411.cnf
-#ProofOfSubmission     B       "2.6.4.3.70"    "id-att-proof-of-submission" - see x411.cnf
-#ExtendedCertificates  B       "2.6.4.3.82"    "id-att-recipient-certificate" - see x411.cnf
-#ORName                        B       "2.6.4.3.71"    "id-att-recipient-names" - see x411.cnf
-#RecipientReassignmentProhibited       B       "2.6.4.3.72"    "id-att-recipient-reassignment-prohibited" - see x411.cnf
-#Redirection           B       "2.6.4.3.33"    "id-at-redirection-history" - see x411.cnf
-#ReportDeliveryEnvelope        B       "2.6.4.3.34"    "id-att-report-delivery-envelope" - see x411.cnf
-#ReportingDLName       B       "2.6.4.3.35"    "id-att-reporting-DL-name" - see x411.cnf
-#ReportingMTACertificate       B       "2.6.4.3.36"    "id-att-reporting-MTA-certificate" - see x411.cnf
-#ReportOriginAuthenticationCheck       B       "2.6.4.3.37"    "id-att-report-origin-authentication-check" - see x411.cnf
+#PerMessageIndicators                          B       "2.6.4.3.65"    "id-att-per-message-indicators" - see p1.cnf
+#PerRecipientMessageSubmissionFields   B       "2.6.4.3.66"    "id-att-per-recipient-message-submission-fields" - see p1.cnf
+#PerRecipientProbeSubmissionFields     B       "2.6.4.3.67"    "id-att-per-recipient-probe-submission-fields" - see p1.cnf
+#PerRecipientReportDeliveryFields      B       "2.6.4.3.30"    "id-att-per-recipient-report-delivery-fields" - see p1.cnf
+#Priority                                                      B       "2.6.4.3.31"    "id-att-priority" - see p1.cnf
+#ProbeOriginAuthenticationCheck        B       "2.6.4.3.68"    "id-att-probe-origin-authentication-check" - see p1.cnf
+#ProbeSubmissionEnvelope       B       "2.6.4.3.69"    "id-att-probe-submission-envelope" - see p1.cnf
+#ProofOfDeliveryRequest        B       "2.6.4.3.32"    "id-att-proof-of-delivery-request" - see p1.cnf
+#ProofOfSubmission     B       "2.6.4.3.70"    "id-att-proof-of-submission" - see p1.cnf
+#ExtendedCertificates  B       "2.6.4.3.82"    "id-att-recipient-certificate" - see p1.cnf
+#ORName                        B       "2.6.4.3.71"    "id-att-recipient-names" - see p1.cnf
+#RecipientReassignmentProhibited       B       "2.6.4.3.72"    "id-att-recipient-reassignment-prohibited" - see p1.cnf
+#Redirection           B       "2.6.4.3.33"    "id-at-redirection-history" - see p1.cnf
+#ReportDeliveryEnvelope        B       "2.6.4.3.34"    "id-att-report-delivery-envelope" - see p1.cnf
+#ReportingDLName       B       "2.6.4.3.35"    "id-att-reporting-DL-name" - see p1.cnf
+#ReportingMTACertificate       B       "2.6.4.3.36"    "id-att-reporting-MTA-certificate" - see p1.cnf
+#ReportOriginAuthenticationCheck       B       "2.6.4.3.37"    "id-att-report-origin-authentication-check" - see p1.cnf
 RetrievalStatus                B       "2.6.4.3.15"    "id-att-retrieval-status"
-#SecurityClassification        B       "2.6.4.3.38"    "id-att-security-classification" - see x411.cnf
+#SecurityClassification        B       "2.6.4.3.38"    "id-att-security-classification" - see p1.cnf
 SequenceNumber         B       "2.6.4.3.39"    "id-att-sequence-number"
 SignatureVerificationStatus    B       "2.6.4.3.79"    "id-att-signature-verification-status"
 StoragePeriod          B       "2.6.4.3.73"    "id-att-storage-period"
 StorageTime            B       "2.6.4.3.74"    "id-att-storage-time"
-#SubjectSubmissionIdentifier   B       "2.6.4.3.40"    "id-att-subject-submission-identifier" - see x411.cnf
-#ORName                        B       "2.6.4.3.41"    "id-att-this-recipient-name" - see x411.cnf
-#TraceInformationElement       B       "2.6.4.3.75"    "id-att-trace-information" - see x411.cnf
+#SubjectSubmissionIdentifier   B       "2.6.4.3.40"    "id-att-subject-submission-identifier" - see p1.cnf
+#ORName                        B       "2.6.4.3.41"    "id-att-this-recipient-name" - see p1.cnf
+#TraceInformationElement       B       "2.6.4.3.75"    "id-att-trace-information" - see p1.cnf
 
 #MSExtensions
 ChangeCredentialsAlgorithms                    B       "2.6.4.9.5"     "id-ext-protected-change-credentials-capability"
@@ -370,7 +370,7 @@ RTSE-apdus  B       "2.6.0.2.10""id-as-ms-rtse"
        
        %(DEFAULT_BODY)s
 
-       if (check_col(actx->pinfo->cinfo, COL_INFO) && (ora = x411_get_last_oraddress())) {
+       if (check_col(actx->pinfo->cinfo, COL_INFO) && (ora = p1_get_last_oraddress())) {
                col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (initiator=%%s)", ora);
        }
        
index 2266337d70c8323b8854ff2bc2e0bed50e035629..39e2effe6c36dc32111684074acc4d1518522d94 100644 (file)
@@ -38,7 +38,7 @@
 #include "packet-ros.h"
 #include "packet-rtse.h"
 
-#include "packet-x411.h"
+#include "packet-p1.h"
 #include <epan/strutil.h>
 
 #define PNAME  "X.413 Message Store Service"
similarity index 100%
rename from asn1/x420/Makefile.am
rename to asn1/p772/Makefile.am
similarity index 89%
rename from asn1/s4406/Makefile.common
rename to asn1/p772/Makefile.common
index 2ff18ff7cca282aec1c8fde7c235fa2789d135d5..32eb5b38abaae0f581d1af8314395e13a4226191 100644 (file)
@@ -20,7 +20,7 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 
-PROTOCOL_NAME=s4406
+PROTOCOL_NAME=p772
 
 DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c \
        packet-$(PROTOCOL_NAME).h
@@ -50,12 +50,12 @@ SRC_FILES = \
 A2W_FLAGS= -b -e -C
 
 EXTRA_CNF= \
-       ../x411/x411-exp.cnf \
-       ../x420/x420-exp.cnf
+       ../p1/p1-exp.cnf \
+       ../p22/p22-exp.cnf
 
-../x411/x411-exp.cnf:
-       (cd ../x411 && $(MAKE_CNF_EXPORT))
+../p1/p1-exp.cnf:
+       (cd ../p1 && $(MAKE_CNF_EXPORT))
 
-../x420/x420-exp.cnf:
-       (cd ../x420 && $(MAKE_CNF_EXPORT))
+../p22/p22-exp.cnf:
+       (cd ../p22 && $(MAKE_CNF_EXPORT))
 
similarity index 93%
rename from asn1/s4406/s4406.cnf
rename to asn1/p772/p772.cnf
index 9dcbcdd1e974ebd2a057fff30de012b84dba9951..6896efd6720e89f12aecaae5420a7ec133e765b0 100644 (file)
@@ -1,10 +1,10 @@
-# s4406.cnf
-# s4406 conformation file
+# p772.cnf
+# p772 conformation file
 
 # $Id$
 
-#.IMPORT ../x411/x411-exp.cnf
-#.IMPORT ../x420/x420-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
+#.IMPORT ../p22/p22-exp.cnf
 
 #.OMIT_ASSIGNMENT
 ID
@@ -105,7 +105,7 @@ InformationObject           B "2.6.1.4.17.1.3.26.0.4406.0.4.1"      "id-et-content-p772"
   int precedence = -1;
   %(DEFAULT_BODY)s
   if((precedence != -1) && check_col(actx->pinfo->cinfo, COL_INFO))
-   col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (primary=%%s)", val_to_str(precedence, s4406_PrimaryPrecedence_vals, "precedence(%%d)"));
+   col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (primary=%%s)", val_to_str(precedence, p772_PrimaryPrecedence_vals, "precedence(%%d)"));
 
 #.FN_PARS CopyPrecedence
   VAL_PTR=&precedence
@@ -113,4 +113,4 @@ InformationObject           B "2.6.1.4.17.1.3.26.0.4406.0.4.1"      "id-et-content-p772"
   int precedence = -1;
   %(DEFAULT_BODY)s
   if((precedence != -1) && check_col(actx->pinfo->cinfo, COL_INFO))
-   col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (copy=%%s)", val_to_str(precedence, s4406_CopyPrecedence_vals, "precedence(%%d)"));
+   col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (copy=%%s)", val_to_str(precedence, p772_CopyPrecedence_vals, "precedence(%%d)"));
similarity index 59%
rename from asn1/s4406/packet-s4406-template.c
rename to asn1/p772/packet-p772-template.c
index 93049b2f09e2e8777c929621bdf30220b85cd0ce..8d06031691720e7a03e6622f9d380f29f6c0997f 100644 (file)
@@ -1,4 +1,4 @@
-/* packet-s4406.c
+/* packet-p772.c
  * Routines for STANAG 4406 (X.400 Military Message Extensions)  packet dissection
  * Graeme Lunt 2005
  *
 
 #include "packet-x509if.h"
 
-#include "packet-s4406.h"
-#include "packet-x411.h" 
-#include "packet-x420.h" 
+#include "packet-p772.h"
+#include "packet-p1.h" 
+#include "packet-p22.h" 
 
 #define PNAME  "STANAG 4406 Message"
-#define PSNAME "STANAG 4406"
-#define PFNAME "s4406"
+#define PSNAME "P772"
+#define PFNAME "p772"
 
 /* Initialize the protocol and registered fields */
-static int proto_s4406 = -1;
+static int proto_p772 = -1;
 
-#include "packet-s4406-val.h"
+#include "packet-p772-val.h"
 
-#include "packet-s4406-hf.c"
+#include "packet-p772-hf.c"
 
 /* Initialize the subtree pointers */
-static gint ett_s4406 = -1;
-#include "packet-s4406-ett.c"
+static gint ett_p772 = -1;
+#include "packet-p772-ett.c"
 
-#include "packet-s4406-fn.c"
+#include "packet-p772-fn.c"
 
 
 /*
 * Dissect STANAG 4406 PDUs inside a PPDU.
 */
 static void
-dissect_s4406(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+dissect_p772(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
 {
        int offset = 0;
        proto_item *item=NULL;
@@ -70,48 +70,48 @@ dissect_s4406(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
        asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
 
        if(parent_tree){
-               item = proto_tree_add_item(parent_tree, proto_s4406, tvb, 0, -1, FALSE);
-               tree = proto_item_add_subtree(item, ett_s4406);
+               item = proto_tree_add_item(parent_tree, proto_p772, tvb, 0, -1, FALSE);
+               tree = proto_item_add_subtree(item, ett_p772);
        }
 
-       col_set_str(pinfo->cinfo, COL_PROTOCOL, "S4406");
+       col_set_str(pinfo->cinfo, COL_PROTOCOL, "P772");
        col_set_str(pinfo->cinfo, COL_INFO, "Military");
 
-       dissect_s4406_InformationObject(TRUE, tvb, offset, &asn1_ctx , tree, -1);
+       dissect_p772_InformationObject(TRUE, tvb, offset, &asn1_ctx , tree, -1);
 }
 
 
 
-/*--- proto_register_s4406 -------------------------------------------*/
-void proto_register_s4406(void) {
+/*--- proto_register_p772 -------------------------------------------*/
+void proto_register_p772(void) {
 
   /* List of fields */
   static hf_register_info hf[] =
   {
-#include "packet-s4406-hfarr.c"
+#include "packet-p772-hfarr.c"
   };
 
   /* List of subtrees */
   static gint *ett[] = {
-    &ett_s4406,
-#include "packet-s4406-ettarr.c"
+    &ett_p772,
+#include "packet-p772-ettarr.c"
   };
 
   /* Register protocol */
-  proto_s4406 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+  proto_p772 = proto_register_protocol(PNAME, PSNAME, PFNAME);
 
   /* Register fields and subtrees */
-  proto_register_field_array(proto_s4406, hf, array_length(hf));
+  proto_register_field_array(proto_p772, hf, array_length(hf));
   proto_register_subtree_array(ett, array_length(ett));
 
-  register_ber_syntax_dissector("STANAG 4406", proto_s4406, dissect_s4406); 
+  register_ber_syntax_dissector("STANAG 4406", proto_p772, dissect_p772); 
   register_ber_oid_syntax(".p772", NULL, "STANAG 4406");
 }
 
 
-/*--- proto_reg_handoff_s4406 --- */
-void proto_reg_handoff_s4406(void) {
-#include "packet-s4406-dis-tab.c"
+/*--- proto_reg_handoff_p772 --- */
+void proto_reg_handoff_p772(void) {
+#include "packet-p772-dis-tab.c"
 
-  register_ber_oid_dissector("1.3.26.0.4406.0.4.1", dissect_s4406, proto_s4406, "STANAG 4406");
+  register_ber_oid_dissector("1.3.26.0.4406.0.4.1", dissect_p772, proto_p772, "STANAG 4406");
 }
similarity index 80%
rename from asn1/s4406/packet-s4406-template.h
rename to asn1/p772/packet-p772-template.h
index bff84f15cd4cfdde8905405d595b7460a2126f16..d9dfcadcd55a001cbe4ff99799d3f1120128dca6 100644 (file)
@@ -1,5 +1,5 @@
-/* packet-s4406.h
- * Routines for X.411 (X.400 Message Transfer) packet dissection
+/* packet-p772.h
+ * Routines for STANAG 4406 (X.400 Military Message Extensions)  packet dissection
  * Graeme Lunt 2005
  *
  * $Id$
@@ -23,9 +23,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-#ifndef PACKET_S4406_H
-#define PACKET_S4406_H
+#ifndef PACKET_P772_H
+#define PACKET_P772_H
 
-/* #include "packet-s4406-exp.h" */
+/* #include "packet-p772-exp.h" */
 
-#endif  /* PACKET_S4406_H */
+#endif  /* PACKET_P772_H */
index 29b0862d7b3d9e96c2326b339fcb17a5ce483898..9fb9146219873fb3630d55fb17cc6b0971b5c420 100644 (file)
@@ -48,13 +48,13 @@ SRC_FILES = \
 A2W_FLAGS= -b -e 
 
 EXTRA_CNF= \
-       ../x411/x411-exp.cnf \
+       ../p1/p1-exp.cnf \
        ../x509af/x509af-exp.cnf \
        ../x509if/x509if-exp.cnf \
        ../x509sat/x509sat-exp.cnf
 
-../x411/x411-exp.cnf:
-       (cd ../x411 && $(MAKE_CNF_EXPORT))
+../p1/p1-exp.cnf:
+       (cd ../p1 && $(MAKE_CNF_EXPORT))
 
 ../x509af/x509af-exp.cnf:
        (cd ../x509af && $(MAKE_CNF_EXPORT))
index 5d253e3932360bc2ab6efb181ed873311c94e4a5..3a6eeab9bcedf5c9bce27a2a3f116c2d005e13e9 100644 (file)
@@ -36,7 +36,7 @@
 #include "packet-x509af.h"
 #include "packet-x509if.h"
 #include "packet-x509sat.h"
-#include "packet-x411.h"
+#include "packet-p1.h"
 
 #define PNAME  "X.509 Certificate Extensions"
 #define PSNAME "X509CE"
index e960385324e8e7eddc9121cea6bd047470700456..9164709899d3fc7a2c88d4ae20125c674657b677 100644 (file)
@@ -6,7 +6,7 @@
 #.IMPORT ../x509if/x509if-exp.cnf
 #.IMPORT ../x509af/x509af-exp.cnf
 #.IMPORT ../x509sat/x509sat-exp.cnf
-#.IMPORT ../x411/x411-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
 
 # Forward declaration
 #.CLASS CERT-POLICY-QUALIFIER
index c4165eb7282637c21e6e7c61606cc9c2414e680f..9e42fd87b5842b37d6c39b093daa7f8c7f51bcd1 100644 (file)
@@ -50,11 +50,11 @@ A2W_FLAGS= -b -e -r Syntax
 
 EXTRA_CNF= \
        ../x509if/x509if-exp.cnf \
-       ../x411/x411-exp.cnf 
+       ../p1/p1-exp.cnf 
 
 ../x509if/x509if-exp.cnf:
        (cd ../x509if && $(MAKE_CNF_EXPORT))
 
-../x411/x411-exp.cnf:
-       (cd ../x411 && $(MAKE_CNF_EXPORT))
+../p1/p1-exp.cnf:
+       (cd ../p1 && $(MAKE_CNF_EXPORT))
 
index 726874c3dd9348dfdde9face283f20f2ae718624..5eac5a7848c705c7bca012cd5c0d7a4be9a975c7 100644 (file)
@@ -33,7 +33,7 @@
 #include <epan/asn1.h>
 
 #include "packet-ber.h"
-#include "packet-x411.h"
+#include "packet-p1.h"
 #include "packet-x509sat.h"
 #include "packet-x509if.h"
 
index c551eb4e5f0f651e75edddd11bd6a07f88c20553..932087617db067749015c55afc30eb7b2509372c 100644 (file)
@@ -7,7 +7,7 @@
 GUID                   TYPE = FT_GUID  DISPLAY = BASE_NONE  STRING = NULL BITMASK = 0
 
 #.IMPORT ../x509if/x509if-exp.cnf
-#.IMPORT ../x411/x411-exp.cnf
+#.IMPORT ../p1/p1-exp.cnf
 
 #.CLASS CONTEXT
 &Type       
@@ -320,7 +320,7 @@ Integer B "1.2.826.0.1063.7.0.0.0" "unknown-UK-organisation-defined-extension"
 # NEXOR Originating UA
 SyntaxIA5String                        B "1.2.826.0.1004.10.1.1" "nexor-originating-ua"
 
-# X.420 Message Store Attributes - see x420.cnf
+# X.420 Message Store Attributes - see p22.cnf
 Boolean                B       "2.6.1.6.3"     "id-sat-ipm-auto-discarded"
 
 # RFC 4530
index 2583332f162f071e43c49921ae4a76a63959e58a..6e398eee1f25ff45c5164e2b732006ee07b67a28 100644 (file)
@@ -1870,7 +1870,10 @@ AC_OUTPUT(
   asn1/nbap/Makefile
   asn1/ns_cert_exts/Makefile
   asn1/ocsp/Makefile
+  asn1/p1/Makefile
+  asn1/p22/Makefile
   asn1/p7/Makefile
+  asn1/p772/Makefile
   asn1/pcap/Makefile
   asn1/pkcs1/Makefile
   asn1/pkcs12/Makefile
@@ -1893,7 +1896,6 @@ AC_OUTPUT(
   asn1/rtse/Makefile
   asn1/rua/Makefile
   asn1/s1ap/Makefile
-  asn1/s4406/Makefile
   asn1/sabp/Makefile
   asn1/smrse/Makefile
   asn1/snmp/Makefile
@@ -1906,8 +1908,6 @@ AC_OUTPUT(
   asn1/ulp/Makefile
   asn1/wlancertextn/Makefile
   asn1/x2ap/Makefile
-  asn1/x411/Makefile
-  asn1/x420/Makefile
   asn1/x509af/Makefile
   asn1/x509ce/Makefile
   asn1/x509if/Makefile
index ebb37d99d4fa0a616a769ef8cb59eba6354c8a42..0c1760f68ebed315901917b7c9897aff524c87ee 100644 (file)
@@ -223,6 +223,7 @@ set(ASN1_DISSECTOR_SRC
        dissectors/packet-ocsp.c
        dissectors/packet-opsi.c
        dissectors/packet-p7.c
+       dissectors/packet-p772.c
        dissectors/packet-pkcs1.c
        dissectors/packet-pkinit.c
        dissectors/packet-pkix1explicit.c
@@ -239,7 +240,6 @@ set(ASN1_DISSECTOR_SRC
        dissectors/packet-rtse.c
        dissectors/packet-rua.c
        dissectors/packet-s1ap.c
-       dissectors/packet-s4406.c
        dissectors/packet-sabp.c
        dissectors/packet-smrse.c
        dissectors/packet-spnego.c
@@ -265,6 +265,8 @@ set(DIRTY_ASN1_DISSECTOR_SRC
        dissectors/packet-ldap.c
        dissectors/packet-lte-rrc.c
        dissectors/packet-nbap.c
+       dissectors/packet-p1.c
+       dissectors/packet-p22.c
        dissectors/packet-pcap.c
        dissectors/packet-pkcs12.c
        dissectors/packet-pres.c
@@ -275,8 +277,6 @@ set(DIRTY_ASN1_DISSECTOR_SRC
        dissectors/packet-t125.c
        dissectors/packet-tcap.c
        dissectors/packet-tetra.c
-       dissectors/packet-x411.c
-       dissectors/packet-x420.c
 )
 
 set(DISSECTOR_SRC
index 24d4469ef9a631b32cf4994b5fccc1ef36f7daf6..b9f1c513a541c478edc2fd1ab64666b275926bc6 100644 (file)
@@ -130,6 +130,7 @@ ASN1_DISSECTOR_SRC = \
        packet-ocsp.c \
        packet-opsi.c \
        packet-p7.c \
+       packet-p772.c \
        packet-pkcs1.c \
        packet-pkinit.c \
        packet-pkix1explicit.c \
@@ -146,7 +147,6 @@ ASN1_DISSECTOR_SRC = \
        packet-rtse.c \
        packet-rua.c \
        packet-s1ap.c           \
-       packet-s4406.c \
        packet-sabp.c \
        packet-smrse.c \
        packet-spnego.c \
@@ -175,6 +175,8 @@ DIRTY_ASN1_DISSECTOR_SRC = \
        packet-ldap.c \
        packet-lte-rrc.c \
        packet-nbap.c \
+       packet-p1.c \
+       packet-p22.c \
        packet-pcap.c \
        packet-pkcs12.c \
        packet-pres.c \
@@ -184,9 +186,7 @@ DIRTY_ASN1_DISSECTOR_SRC = \
        packet-snmp.c \
        packet-t125.c \
        packet-tcap.c \
-       packet-tetra.c \
-       packet-x411.c \
-       packet-x420.c
+       packet-tetra.c
 
 #
 # Dissectors without warnings.
@@ -1206,7 +1206,10 @@ DISSECTOR_INCLUDES =     \
        packet-ocsp.h   \
        packet-osi.h    \
        packet-osi-options.h    \
+       packet-p1.h     \
+       packet-p22.h    \
        packet-p7.h \
+       packet-p772.h   \
        packet-pcnfsd.h \
        packet-pdcp-lte.h       \
        packet-per.h    \
@@ -1264,7 +1267,6 @@ DISSECTOR_INCLUDES =      \
        packet-rwall.h  \
        packet-rx.h             \
        packet-s1ap.h   \
-       packet-s4406.h  \
        packet-sccp.h \
        packet-scsi.h   \
        packet-scsi-mmc.h       \
@@ -1330,8 +1332,6 @@ DISSECTOR_INCLUDES =      \
        x11-extension-errors.h  \
        x11-glx-render-enum.h   \
        x11-enum.h      \
-       packet-x411.h   \
-       packet-x420.h   \
        packet-x509af.h \
        packet-x509ce.h \
        packet-x509if.h \
index 7e7932ed92308082d73364b003f320951fcd1e99..0649e111728bef99a60633801dd1d6e8f8b96469 100644 (file)
@@ -45,7 +45,7 @@
 #include "packet-x509af.h"
 #include "packet-x509if.h"
 #include "packet-x509ce.h"
-#include "packet-x411.h"
+#include "packet-p1.h"
 
 #include "packet-acp133.h"
 
@@ -566,7 +566,7 @@ dissect_acp133_MLReceiptPolicy(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
 
 static int
 dissect_acp133_ORNamePattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_x411_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
+  offset = dissect_p1_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
 
   return offset;
 }
@@ -581,8 +581,8 @@ static const value_string acp133_DLSubmitPermission_vals[] = {
 };
 
 static const ber_choice_t DLSubmitPermission_choice[] = {
-  {   0, &hf_acp133_individual   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_x411_ORName },
-  {   1, &hf_acp133_member_of_dl , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_ORName },
+  {   0, &hf_acp133_individual   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ORName },
+  {   1, &hf_acp133_member_of_dl , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_ORName },
   {   2, &hf_acp133_pattern_match, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_acp133_ORNamePattern },
   {   3, &hf_acp133_member_of_group, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_x509if_Name },
   { 0, NULL, 0, 0, 0, NULL }
@@ -781,7 +781,7 @@ static const value_string acp133_T_requested_delivery_method_vals[] = {
 static const ber_choice_t T_requested_delivery_method_choice[] = {
   {   0, &hf_acp133_unchanged    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_acp133_NULL },
   {   1, &hf_acp133_removed      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_acp133_NULL },
-  {   2, &hf_acp133_replaced     , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_RequestedDeliveryMethod },
+  {   2, &hf_acp133_replaced     , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_RequestedDeliveryMethod },
   { 0, NULL, 0, 0, 0, NULL }
 };
 
@@ -864,7 +864,7 @@ dissect_acp133_GeneralString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
 
 
 static const ber_sequence_t SET_OF_ExtendedContentType_set_of[1] = {
-  { &hf_acp133_content_types_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_x411_ExtendedContentType },
+  { &hf_acp133_content_types_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedContentType },
 };
 
 static int
@@ -878,9 +878,9 @@ dissect_acp133_SET_OF_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *t
 
 static const ber_sequence_t Capability_set[] = {
   { &hf_acp133_content_types, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_acp133_SET_OF_ExtendedContentType },
-  { &hf_acp133_maximum_content_length, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_ContentLength },
-  { &hf_acp133_encoded_information_types_constraints, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_EncodedInformationTypesConstraints },
-  { &hf_acp133_security_labels, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityContext },
+  { &hf_acp133_maximum_content_length, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
+  { &hf_acp133_encoded_information_types_constraints, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_EncodedInformationTypesConstraints },
+  { &hf_acp133_security_labels, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
   { NULL, 0, 0, 0, NULL }
 };
 
@@ -908,7 +908,7 @@ dissect_acp133_SET_OF_Capability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
 
 static const ber_sequence_t AddressCapabilities_sequence[] = {
   { &hf_acp133_description  , BER_CLASS_UNI, BER_UNI_TAG_GeneralString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_acp133_GeneralString },
-  { &hf_acp133_address      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x411_ORAddress },
+  { &hf_acp133_address      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddress },
   { &hf_acp133_capabilities , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_acp133_SET_OF_Capability },
   { NULL, 0, 0, 0, NULL }
 };
index 5b52cc6dc3b6ac11fdee7b81e2d40b94898ffbca..c94c530106241557cac5aef07e83606ddd3f9c10 100644 (file)
@@ -45,7 +45,7 @@
 #include <epan/asn1.h>
 
 #include "packet-ber.h"
-#include "packet-x411.h"
+#include "packet-p1.h"
 
 #include "packet-cdt.h"
 
@@ -281,7 +281,7 @@ dissect_cdt_CompressedContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
      dissect_unknown_ber (actx->pinfo, next_tvb, 0, top_tree);
      break;
    case CDT_P1:
-     dissect_x411_mts_apdu (next_tvb, actx->pinfo, top_tree);
+     dissect_p1_mts_apdu (next_tvb, actx->pinfo, top_tree);
      break;
    default:
      call_dissector (data_handle, next_tvb, actx->pinfo, top_tree);
index 03958f83d4c28acab2f3be14cedf76ef39b8392a..1d7724666fd53be196d45a01744b46de094a265e 100644 (file)
@@ -50,8 +50,8 @@
 #include <epan/crc16.h>
 #include <epan/asn1.h>
 
-#include "packet-x411.h"
-#include "packet-x420.h"
+#include "packet-p1.h"
+#include "packet-p22.h"
 
 #define PNAME  "Direct Message Profile"
 #define PSNAME "DMP"
@@ -556,13 +556,13 @@ static const value_string addr_type_str [] = {
 
 static const value_string addr_form [] = {
   { 0x0, "P1 Direct"                       },
-  { 0x1, "P22/P722 Direct"                 },
+  { 0x1, "P22/P772 Direct"                 },
   { 0x2, "P1 Extended"                     },
-  { 0x3, "P22/P722 Extended"               },
-  { 0x4, "P1 and P22/P722 Direct"          },
-  { 0x5, "P1 Direct and P22/P722 Extended" },
-  { 0x6, "P1 Extended and P22/P722 Direct" },
-  { 0x7, "P1 and P22/P722 Extended"        },
+  { 0x3, "P22/P772 Extended"               },
+  { 0x4, "P1 and P22/P772 Direct"          },
+  { 0x5, "P1 Direct and P22/P772 Extended" },
+  { 0x6, "P1 Extended and P22/P772 Direct" },
+  { 0x7, "P1 and P22/P772 Extended"        },
   { 0,   NULL } };
 
 static const value_string addr_form_orig [] = {
@@ -880,8 +880,8 @@ static const gchar *msg_type_to_str (void)
 static const gchar *non_del_reason_str (guint32 value)
 {
   if (value < 0x3D) {
-    /* Standard values according to X.411 */
-    return val_to_str (value, x411_NonDeliveryReasonCode_vals, "Unknown");
+    /* Standard values according to P1 */
+    return val_to_str (value, p1_NonDeliveryReasonCode_vals, "Unknown");
   } else {
     return val_to_str (value, non_del_reason, "Unknown");
   }
@@ -890,8 +890,8 @@ static const gchar *non_del_reason_str (guint32 value)
 static const gchar *non_del_diagn_str (guint32 value)
 {
   if (value < 0x7C) {
-    /* Standard values according to X.411 */
-    return val_to_str (value, x411_NonDeliveryDiagnosticCode_vals, "Unknown");
+    /* Standard values according to P1 */
+    return val_to_str (value, p1_NonDeliveryDiagnosticCode_vals, "Unknown");
   } else {
     return val_to_str (value, non_del_diagn, "Unknown");
   }
@@ -899,15 +899,15 @@ static const gchar *non_del_diagn_str (guint32 value)
 
 static const gchar *nrn_reason_str (guint32 value)
 {
-  /* Standard values according to X.420 */
-  return val_to_str (value, x420_NonReceiptReasonField_vals, "Reserved");
+  /* Standard values according to P22 */
+  return val_to_str (value, p22_NonReceiptReasonField_vals, "Reserved");
 }
 
 static const gchar *discard_reason_str (guint32 value)
 {
   if (value < 0xFE) {
-    /* Standard values according to X.420 */
-    return val_to_str (value, x420_DiscardReasonField_vals, "Reserved");
+    /* Standard values according to P22 */
+    return val_to_str (value, p22_DiscardReasonField_vals, "Reserved");
   } else {
     return val_to_str (value, discard_reason, "Unknown");
   }
@@ -1826,7 +1826,7 @@ static gint dissect_dmp_ext_addr (tvbuff_t *tvb, packet_info *pinfo,
   if (type == ASN1_BER) {
     tvbuff_t *next_tvb = tvb_new_subset(tvb, offset, length, length);
 
-    dissect_x411_ORName (FALSE, next_tvb, 0, &asn1_ctx, ext_tree,
+    dissect_p1_ORName (FALSE, next_tvb, 0, &asn1_ctx, ext_tree,
                          hf_addr_ext_asn1_ber);
   } else if (type == ASN1_PER) {
     proto_tree_add_item (ext_tree, hf_addr_ext_asn1_per, tvb, offset,
@@ -2875,7 +2875,7 @@ static gint dissect_dmp_report (tvbuff_t *tvb, packet_info *pinfo,
     tf = proto_tree_add_uint_format (report_tree, hf_report_reason,
                                      tvb, offset, 1, report,
                                      "Reason%s: %s (%d)",
-                                     ((report & 0x3F) < 0x3D) ? " (X.411)":"",
+                                     ((report & 0x3F) < 0x3D) ? " (P1)":"",
                                      non_del_reason_str (report & 0x3F),
                                      report & 0x3F);
     field_tree = proto_item_add_subtree (tf, ett_report_reason);
@@ -2898,7 +2898,7 @@ static gint dissect_dmp_report (tvbuff_t *tvb, packet_info *pinfo,
     tf = proto_tree_add_uint_format (report_tree, hf_report_diagn,
                                      tvb, offset, 1, report,
                                      "Diagnostic%s: %s (%d)",
-                                     ((report & 0x7F) < 0x7C) ? " (X.411)":"",
+                                     ((report & 0x7F) < 0x7C) ? " (P1)":"",
                                      non_del_diagn_str (report & 0x7F),
                                      report & 0x7F);
     field_tree = proto_item_add_subtree (tf, ett_report_diagn);
@@ -3024,7 +3024,7 @@ static gint dissect_dmp_notification (tvbuff_t *tvb, packet_info *pinfo _U_,
     proto_tree_add_uint_format (notif_tree, hf_notif_non_rec_reason,
                                 tvb, offset, 1, notif,
                                 "Non-Receipt Reason%s: %s (%d)",
-                                (notif < 0x10) ? " (X.420)" : "",
+                                (notif < 0x10) ? " (P22)" : "",
                                 nrn_reason_str (notif), notif);
     offset += 1;
 
@@ -3033,7 +3033,7 @@ static gint dissect_dmp_notification (tvbuff_t *tvb, packet_info *pinfo _U_,
     proto_tree_add_uint_format (notif_tree, hf_notif_discard_reason,
                                 tvb, offset, 1, notif,
                                 "Discard Reason%s: %s (%d)",
-                                (notif < 0x10) ? " (X.420)" : "",
+                                (notif < 0x10) ? " (P22)" : "",
                                 discard_reason_str (notif), notif);
     offset += 1;
   }
@@ -4026,15 +4026,15 @@ void proto_register_dmp (void)
       { "Address Encoding", "dmp.addr_encoding", FT_BOOLEAN, 8,
         TFS (&addr_enc), 0x40, NULL, HFILL } },
     { &hf_report_reason,
-      { "Reason (X.411)", "dmp.report_reason", FT_UINT8, BASE_DEC,
-        VALS (x411_NonDeliveryReasonCode_vals), 0x3F,
+      { "Reason (P1)", "dmp.report_reason", FT_UINT8, BASE_DEC,
+        VALS (p1_NonDeliveryReasonCode_vals), 0x3F,
         "Reason", HFILL } },
     { &hf_report_info_present_ndr,
       { "Info Present", "dmp.info_present", FT_BOOLEAN, 8,
         TFS (&tfs_present_absent), 0x80, NULL, HFILL } },
     { &hf_report_diagn,
-      { "Diagnostic (X.411)", "dmp.report_diagnostic", FT_UINT8, BASE_DEC,
-        VALS (x411_NonDeliveryDiagnosticCode_vals), 0x7F,
+      { "Diagnostic (P1)", "dmp.report_diagnostic", FT_UINT8, BASE_DEC,
+        VALS (p1_NonDeliveryDiagnosticCode_vals), 0x7F,
         "Diagnostic", HFILL } },
     { &hf_report_suppl_info_len,
       { "Supplementary Information", "dmp.suppl_info_len", FT_UINT8,
@@ -4075,11 +4075,11 @@ void proto_register_dmp (void)
         HFILL } },
     { &hf_notif_non_rec_reason,
       { "Non-Receipt Reason", "dmp.notif_non_rec_reason",
-        FT_UINT8, BASE_DEC, VALS (x420_NonReceiptReasonField_vals), 0x0,
+        FT_UINT8, BASE_DEC, VALS (p22_NonReceiptReasonField_vals), 0x0,
         NULL, HFILL } },
     { &hf_notif_discard_reason,
       { "Discard Reason", "dmp.notif_discard_reason", FT_UINT8,
-        BASE_DEC, VALS (x420_DiscardReasonField_vals), 0x0,
+        BASE_DEC, VALS (p22_DiscardReasonField_vals), 0x0,
         NULL, HFILL } },
     { &hf_notif_on_type,
       { "ON Type", "dmp.notif_on_type", FT_UINT8, BASE_DEC,
diff --git a/epan/dissectors/packet-p1.c b/epan/dissectors/packet-p1.c
new file mode 100644 (file)
index 0000000..e0e2e94
--- /dev/null
@@ -0,0 +1,11118 @@
+/* Do not modify this file.                                                   */
+/* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
+/* packet-p1.c                                                                */
+/* ../../tools/asn2wrs.py -b -e -C -p p1 -c ./p1.cnf -s ./packet-p1-template -D . MTAAbstractService.asn MTSAbstractService.asn MTSAccessProtocol.asn MHSProtocolObjectIdentifiers.asn MTSUpperBounds.asn */
+
+/* Input file: packet-p1-template.c */
+
+#line 1 "packet-p1-template.c"
+/* packet-p1.c
+ * Routines for X.411 (X.400 Message Transfer)  packet dissection
+ * Graeme Lunt 2005
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+#include <epan/expert.h>
+
+#include "packet-ber.h"
+#include "packet-acse.h"
+#include "packet-ros.h"
+#include "packet-rtse.h"
+
+#include "packet-x509af.h"
+#include "packet-x509ce.h"
+#include "packet-x509if.h"
+#include "packet-x509sat.h"
+
+#include "packet-p1.h"
+#include <epan/strutil.h>
+
+#define PNAME  "X.411 Message Transfer Service"
+#define PSNAME "P1"
+#define PFNAME "p1"
+
+static guint global_p1_tcp_port = 102;
+static dissector_handle_t tpkt_handle;
+static void prefs_register_p1(void); /* forward declaration for use in preferences registration */
+
+/* Initialize the protocol and registered fields */
+static int proto_p1 = -1;
+static int proto_p3 = -1;
+
+static struct SESSION_DATA_STRUCTURE* session = NULL;
+static int extension_id = -1; /* integer extension id */
+static const char *object_identifier_id = NULL; /* extensions identifier */
+static const char *content_type_id = NULL; /* content type identifier */
+
+#define MAX_ORA_STR_LEN     256
+static char *oraddress = NULL;
+static char *ddatype = NULL;
+static gboolean doing_address=FALSE;
+static gboolean doing_subjectid=FALSE;
+static proto_item *address_item = NULL;
+
+static proto_tree *top_tree=NULL;
+
+static int hf_p1_MTS_APDU_PDU = -1;
+static int hf_p1_MTABindArgument_PDU = -1;
+static int hf_p1_MTABindResult_PDU = -1;
+static int hf_p1_MTABindError_PDU = -1;
+
+
+/*--- Included file: packet-p1-hf.c ---*/
+#line 1 "packet-p1-hf.c"
+static int hf_p1_InternalTraceInformation_PDU = -1;  /* InternalTraceInformation */
+static int hf_p1_InternalTraceInformationElement_PDU = -1;  /* InternalTraceInformationElement */
+static int hf_p1_TraceInformation_PDU = -1;       /* TraceInformation */
+static int hf_p1_TraceInformationElement_PDU = -1;  /* TraceInformationElement */
+static int hf_p1_MTSBindArgument_PDU = -1;        /* MTSBindArgument */
+static int hf_p1_MTSBindResult_PDU = -1;          /* MTSBindResult */
+static int hf_p1_PAR_mts_bind_error_PDU = -1;     /* PAR_mts_bind_error */
+static int hf_p1_MessageSubmissionArgument_PDU = -1;  /* MessageSubmissionArgument */
+static int hf_p1_MessageSubmissionResult_PDU = -1;  /* MessageSubmissionResult */
+static int hf_p1_ProbeSubmissionArgument_PDU = -1;  /* ProbeSubmissionArgument */
+static int hf_p1_ProbeSubmissionResult_PDU = -1;  /* ProbeSubmissionResult */
+static int hf_p1_CancelDeferredDeliveryArgument_PDU = -1;  /* CancelDeferredDeliveryArgument */
+static int hf_p1_CancelDeferredDeliveryResult_PDU = -1;  /* CancelDeferredDeliveryResult */
+static int hf_p1_SubmissionControlArgument_PDU = -1;  /* SubmissionControlArgument */
+static int hf_p1_SubmissionControlResult_PDU = -1;  /* SubmissionControlResult */
+static int hf_p1_PAR_submission_control_violated_PDU = -1;  /* PAR_submission_control_violated */
+static int hf_p1_PAR_element_of_service_not_subscribed_PDU = -1;  /* PAR_element_of_service_not_subscribed */
+static int hf_p1_PAR_deferred_delivery_cancellation_rejected_PDU = -1;  /* PAR_deferred_delivery_cancellation_rejected */
+static int hf_p1_PAR_originator_invalid_PDU = -1;  /* PAR_originator_invalid */
+static int hf_p1_ImproperlySpecifiedRecipients_PDU = -1;  /* ImproperlySpecifiedRecipients */
+static int hf_p1_PAR_message_submission_identifier_invalid_PDU = -1;  /* PAR_message_submission_identifier_invalid */
+static int hf_p1_PAR_inconsistent_request_PDU = -1;  /* PAR_inconsistent_request */
+static int hf_p1_SecurityProblem_PDU = -1;        /* SecurityProblem */
+static int hf_p1_PAR_unsupported_critical_function_PDU = -1;  /* PAR_unsupported_critical_function */
+static int hf_p1_PAR_remote_bind_error_PDU = -1;  /* PAR_remote_bind_error */
+static int hf_p1_MessageSubmissionTime_PDU = -1;  /* MessageSubmissionTime */
+static int hf_p1_MessageDeliveryArgument_PDU = -1;  /* MessageDeliveryArgument */
+static int hf_p1_MessageDeliveryResult_PDU = -1;  /* MessageDeliveryResult */
+static int hf_p1_ReportDeliveryArgument_PDU = -1;  /* ReportDeliveryArgument */
+static int hf_p1_ReportDeliveryResult_PDU = -1;   /* ReportDeliveryResult */
+static int hf_p1_DeliveryControlArgument_PDU = -1;  /* DeliveryControlArgument */
+static int hf_p1_DeliveryControlResult_PDU = -1;  /* DeliveryControlResult */
+static int hf_p1_PAR_delivery_control_violated_PDU = -1;  /* PAR_delivery_control_violated */
+static int hf_p1_PAR_control_violates_registration_PDU = -1;  /* PAR_control_violates_registration */
+static int hf_p1_RefusedOperation_PDU = -1;       /* RefusedOperation */
+static int hf_p1_RecipientCertificate_PDU = -1;   /* RecipientCertificate */
+static int hf_p1_ProofOfDelivery_PDU = -1;        /* ProofOfDelivery */
+static int hf_p1_RegisterArgument_PDU = -1;       /* RegisterArgument */
+static int hf_p1_RegisterResult_PDU = -1;         /* RegisterResult */
+static int hf_p1_ChangeCredentialsArgument_PDU = -1;  /* ChangeCredentialsArgument */
+static int hf_p1_RES_change_credentials_PDU = -1;  /* RES_change_credentials */
+static int hf_p1_PAR_register_rejected_PDU = -1;  /* PAR_register_rejected */
+static int hf_p1_PAR_new_credentials_unacceptable_PDU = -1;  /* PAR_new_credentials_unacceptable */
+static int hf_p1_PAR_old_credentials_incorrectly_specified_PDU = -1;  /* PAR_old_credentials_incorrectly_specified */
+static int hf_p1_MessageSubmissionEnvelope_PDU = -1;  /* MessageSubmissionEnvelope */
+static int hf_p1_PerRecipientMessageSubmissionFields_PDU = -1;  /* PerRecipientMessageSubmissionFields */
+static int hf_p1_ProbeSubmissionEnvelope_PDU = -1;  /* ProbeSubmissionEnvelope */
+static int hf_p1_PerRecipientProbeSubmissionFields_PDU = -1;  /* PerRecipientProbeSubmissionFields */
+static int hf_p1_MessageDeliveryEnvelope_PDU = -1;  /* MessageDeliveryEnvelope */
+static int hf_p1_ReportDeliveryEnvelope_PDU = -1;  /* ReportDeliveryEnvelope */
+static int hf_p1_PerRecipientReportDeliveryFields_PDU = -1;  /* PerRecipientReportDeliveryFields */
+static int hf_p1_ExtendedContentType_PDU = -1;    /* ExtendedContentType */
+static int hf_p1_ContentIdentifier_PDU = -1;      /* ContentIdentifier */
+static int hf_p1_PerMessageIndicators_PDU = -1;   /* PerMessageIndicators */
+static int hf_p1_OriginatorReportRequest_PDU = -1;  /* OriginatorReportRequest */
+static int hf_p1_DeferredDeliveryTime_PDU = -1;   /* DeferredDeliveryTime */
+static int hf_p1_Priority_PDU = -1;               /* Priority */
+static int hf_p1_ContentLength_PDU = -1;          /* ContentLength */
+static int hf_p1_MessageDeliveryTime_PDU = -1;    /* MessageDeliveryTime */
+static int hf_p1_DeliveryFlags_PDU = -1;          /* DeliveryFlags */
+static int hf_p1_SubjectSubmissionIdentifier_PDU = -1;  /* SubjectSubmissionIdentifier */
+static int hf_p1_RecipientReassignmentProhibited_PDU = -1;  /* RecipientReassignmentProhibited */
+static int hf_p1_OriginatorRequestedAlternateRecipient_PDU = -1;  /* OriginatorRequestedAlternateRecipient */
+static int hf_p1_DLExpansionProhibited_PDU = -1;  /* DLExpansionProhibited */
+static int hf_p1_ConversionWithLossProhibited_PDU = -1;  /* ConversionWithLossProhibited */
+static int hf_p1_LatestDeliveryTime_PDU = -1;     /* LatestDeliveryTime */
+static int hf_p1_RequestedDeliveryMethod_PDU = -1;  /* RequestedDeliveryMethod */
+static int hf_p1_PhysicalForwardingProhibited_PDU = -1;  /* PhysicalForwardingProhibited */
+static int hf_p1_PhysicalForwardingAddressRequest_PDU = -1;  /* PhysicalForwardingAddressRequest */
+static int hf_p1_PhysicalDeliveryModes_PDU = -1;  /* PhysicalDeliveryModes */
+static int hf_p1_RegisteredMailType_PDU = -1;     /* RegisteredMailType */
+static int hf_p1_RecipientNumberForAdvice_PDU = -1;  /* RecipientNumberForAdvice */
+static int hf_p1_PhysicalRenditionAttributes_PDU = -1;  /* PhysicalRenditionAttributes */
+static int hf_p1_OriginatorReturnAddress_PDU = -1;  /* OriginatorReturnAddress */
+static int hf_p1_PhysicalDeliveryReportRequest_PDU = -1;  /* PhysicalDeliveryReportRequest */
+static int hf_p1_OriginatorCertificate_PDU = -1;  /* OriginatorCertificate */
+static int hf_p1_MessageToken_PDU = -1;           /* MessageToken */
+static int hf_p1_ContentConfidentialityAlgorithmIdentifier_PDU = -1;  /* ContentConfidentialityAlgorithmIdentifier */
+static int hf_p1_ContentIntegrityCheck_PDU = -1;  /* ContentIntegrityCheck */
+static int hf_p1_MessageOriginAuthenticationCheck_PDU = -1;  /* MessageOriginAuthenticationCheck */
+static int hf_p1_MessageSecurityLabel_PDU = -1;   /* MessageSecurityLabel */
+static int hf_p1_ProofOfSubmissionRequest_PDU = -1;  /* ProofOfSubmissionRequest */
+static int hf_p1_ProofOfDeliveryRequest_PDU = -1;  /* ProofOfDeliveryRequest */
+static int hf_p1_ContentCorrelator_PDU = -1;      /* ContentCorrelator */
+static int hf_p1_ProbeOriginAuthenticationCheck_PDU = -1;  /* ProbeOriginAuthenticationCheck */
+static int hf_p1_RedirectionHistory_PDU = -1;     /* RedirectionHistory */
+static int hf_p1_Redirection_PDU = -1;            /* Redirection */
+static int hf_p1_DLExpansionHistory_PDU = -1;     /* DLExpansionHistory */
+static int hf_p1_DLExpansion_PDU = -1;            /* DLExpansion */
+static int hf_p1_PhysicalForwardingAddress_PDU = -1;  /* PhysicalForwardingAddress */
+static int hf_p1_OriginatorAndDLExpansionHistory_PDU = -1;  /* OriginatorAndDLExpansionHistory */
+static int hf_p1_ReportingDLName_PDU = -1;        /* ReportingDLName */
+static int hf_p1_ReportingMTACertificate_PDU = -1;  /* ReportingMTACertificate */
+static int hf_p1_ReportOriginAuthenticationCheck_PDU = -1;  /* ReportOriginAuthenticationCheck */
+static int hf_p1_OriginatingMTACertificate_PDU = -1;  /* OriginatingMTACertificate */
+static int hf_p1_ProofOfSubmission_PDU = -1;      /* ProofOfSubmission */
+static int hf_p1_ReportingMTAName_PDU = -1;       /* ReportingMTAName */
+static int hf_p1_ExtendedCertificates_PDU = -1;   /* ExtendedCertificates */
+static int hf_p1_DLExemptedRecipients_PDU = -1;   /* DLExemptedRecipients */
+static int hf_p1_CertificateSelectors_PDU = -1;   /* CertificateSelectors */
+static int hf_p1_Content_PDU = -1;                /* Content */
+static int hf_p1_MTSIdentifier_PDU = -1;          /* MTSIdentifier */
+static int hf_p1_ORName_PDU = -1;                 /* ORName */
+static int hf_p1_ORAddress_PDU = -1;              /* ORAddress */
+static int hf_p1_CommonName_PDU = -1;             /* CommonName */
+static int hf_p1_TeletexCommonName_PDU = -1;      /* TeletexCommonName */
+static int hf_p1_UniversalCommonName_PDU = -1;    /* UniversalCommonName */
+static int hf_p1_TeletexOrganizationName_PDU = -1;  /* TeletexOrganizationName */
+static int hf_p1_UniversalOrganizationName_PDU = -1;  /* UniversalOrganizationName */
+static int hf_p1_TeletexPersonalName_PDU = -1;    /* TeletexPersonalName */
+static int hf_p1_UniversalPersonalName_PDU = -1;  /* UniversalPersonalName */
+static int hf_p1_TeletexOrganizationalUnitNames_PDU = -1;  /* TeletexOrganizationalUnitNames */
+static int hf_p1_UniversalOrganizationalUnitNames_PDU = -1;  /* UniversalOrganizationalUnitNames */
+static int hf_p1_PDSName_PDU = -1;                /* PDSName */
+static int hf_p1_PhysicalDeliveryCountryName_PDU = -1;  /* PhysicalDeliveryCountryName */
+static int hf_p1_PostalCode_PDU = -1;             /* PostalCode */
+static int hf_p1_PhysicalDeliveryOfficeName_PDU = -1;  /* PhysicalDeliveryOfficeName */
+static int hf_p1_UniversalPhysicalDeliveryOfficeName_PDU = -1;  /* UniversalPhysicalDeliveryOfficeName */
+static int hf_p1_PhysicalDeliveryOfficeNumber_PDU = -1;  /* PhysicalDeliveryOfficeNumber */
+static int hf_p1_UniversalPhysicalDeliveryOfficeNumber_PDU = -1;  /* UniversalPhysicalDeliveryOfficeNumber */
+static int hf_p1_ExtensionORAddressComponents_PDU = -1;  /* ExtensionORAddressComponents */
+static int hf_p1_UniversalExtensionORAddressComponents_PDU = -1;  /* UniversalExtensionORAddressComponents */
+static int hf_p1_PhysicalDeliveryPersonalName_PDU = -1;  /* PhysicalDeliveryPersonalName */
+static int hf_p1_UniversalPhysicalDeliveryPersonalName_PDU = -1;  /* UniversalPhysicalDeliveryPersonalName */
+static int hf_p1_PhysicalDeliveryOrganizationName_PDU = -1;  /* PhysicalDeliveryOrganizationName */
+static int hf_p1_UniversalPhysicalDeliveryOrganizationName_PDU = -1;  /* UniversalPhysicalDeliveryOrganizationName */
+static int hf_p1_ExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* ExtensionPhysicalDeliveryAddressComponents */
+static int hf_p1_UniversalExtensionPhysicalDeliveryAddressComponents_PDU = -1;  /* UniversalExtensionPhysicalDeliveryAddressComponents */
+static int hf_p1_UnformattedPostalAddress_PDU = -1;  /* UnformattedPostalAddress */
+static int hf_p1_UniversalUnformattedPostalAddress_PDU = -1;  /* UniversalUnformattedPostalAddress */
+static int hf_p1_StreetAddress_PDU = -1;          /* StreetAddress */
+static int hf_p1_UniversalStreetAddress_PDU = -1;  /* UniversalStreetAddress */
+static int hf_p1_PostOfficeBoxAddress_PDU = -1;   /* PostOfficeBoxAddress */
+static int hf_p1_UniversalPostOfficeBoxAddress_PDU = -1;  /* UniversalPostOfficeBoxAddress */
+static int hf_p1_PosteRestanteAddress_PDU = -1;   /* PosteRestanteAddress */
+static int hf_p1_UniversalPosteRestanteAddress_PDU = -1;  /* UniversalPosteRestanteAddress */
+static int hf_p1_UniquePostalName_PDU = -1;       /* UniquePostalName */
+static int hf_p1_UniversalUniquePostalName_PDU = -1;  /* UniversalUniquePostalName */
+static int hf_p1_LocalPostalAttributes_PDU = -1;  /* LocalPostalAttributes */
+static int hf_p1_UniversalLocalPostalAttributes_PDU = -1;  /* UniversalLocalPostalAttributes */
+static int hf_p1_ExtendedNetworkAddress_PDU = -1;  /* ExtendedNetworkAddress */
+static int hf_p1_TerminalType_PDU = -1;           /* TerminalType */
+static int hf_p1_TeletexDomainDefinedAttributes_PDU = -1;  /* TeletexDomainDefinedAttributes */
+static int hf_p1_UniversalDomainDefinedAttributes_PDU = -1;  /* UniversalDomainDefinedAttributes */
+static int hf_p1_ExtendedEncodedInformationType_PDU = -1;  /* ExtendedEncodedInformationType */
+static int hf_p1_MTANameAndOptionalGDI_PDU = -1;  /* MTANameAndOptionalGDI */
+static int hf_p1_AsymmetricToken_PDU = -1;        /* AsymmetricToken */
+static int hf_p1_BindTokenSignedData_PDU = -1;    /* BindTokenSignedData */
+static int hf_p1_MessageTokenSignedData_PDU = -1;  /* MessageTokenSignedData */
+static int hf_p1_MessageTokenEncryptedData_PDU = -1;  /* MessageTokenEncryptedData */
+static int hf_p1_BindTokenEncryptedData_PDU = -1;  /* BindTokenEncryptedData */
+static int hf_p1_SecurityClassification_PDU = -1;  /* SecurityClassification */
+static int hf_p1_unauthenticated = -1;            /* NULL */
+static int hf_p1_authenticated_argument = -1;     /* AuthenticatedArgument */
+static int hf_p1_authenticated_initiator_name = -1;  /* MTAName */
+static int hf_p1_initiator_credentials = -1;      /* InitiatorCredentials */
+static int hf_p1_security_context = -1;           /* SecurityContext */
+static int hf_p1_authenticated_result = -1;       /* AuthenticatedResult */
+static int hf_p1_authenticated_responder_name = -1;  /* MTAName */
+static int hf_p1_responder_credentials = -1;      /* ResponderCredentials */
+static int hf_p1_message = -1;                    /* Message */
+static int hf_p1_probe = -1;                      /* Probe */
+static int hf_p1_report = -1;                     /* Report */
+static int hf_p1_message_envelope = -1;           /* MessageTransferEnvelope */
+static int hf_p1_content = -1;                    /* Content */
+static int hf_p1_report_envelope = -1;            /* ReportTransferEnvelope */
+static int hf_p1_report_content = -1;             /* ReportTransferContent */
+static int hf_p1_message_identifier = -1;         /* MessageIdentifier */
+static int hf_p1_originator_name = -1;            /* MTAOriginatorName */
+static int hf_p1_original_encoded_information_types = -1;  /* OriginalEncodedInformationTypes */
+static int hf_p1_content_type = -1;               /* ContentType */
+static int hf_p1_content_identifier = -1;         /* ContentIdentifier */
+static int hf_p1_priority = -1;                   /* Priority */
+static int hf_p1_per_message_indicators = -1;     /* PerMessageIndicators */
+static int hf_p1_deferred_delivery_time = -1;     /* DeferredDeliveryTime */
+static int hf_p1_per_domain_bilateral_information = -1;  /* SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation */
+static int hf_p1_per_domain_bilateral_information_item = -1;  /* PerDomainBilateralInformation */
+static int hf_p1_trace_information = -1;          /* TraceInformation */
+static int hf_p1_extensions = -1;                 /* SET_OF_ExtensionField */
+static int hf_p1_extensions_item = -1;            /* ExtensionField */
+static int hf_p1_recipient_name = -1;             /* MTARecipientName */
+static int hf_p1_originally_specified_recipient_number = -1;  /* OriginallySpecifiedRecipientNumber */
+static int hf_p1_per_recipient_indicators = -1;   /* PerRecipientIndicators */
+static int hf_p1_explicit_conversion = -1;        /* ExplicitConversion */
+static int hf_p1_probe_identifier = -1;           /* ProbeIdentifier */
+static int hf_p1_content_length = -1;             /* ContentLength */
+static int hf_p1_report_identifier = -1;          /* ReportIdentifier */
+static int hf_p1_report_destination_name = -1;    /* ReportDestinationName */
+static int hf_p1_subject_identifier = -1;         /* SubjectIdentifier */
+static int hf_p1_subject_intermediate_trace_information = -1;  /* SubjectIntermediateTraceInformation */
+static int hf_p1_returned_content = -1;           /* Content */
+static int hf_p1_additional_information = -1;     /* AdditionalInformation */
+static int hf_p1_mta_actual_recipient_name = -1;  /* MTAActualRecipientName */
+static int hf_p1_last_trace_information = -1;     /* LastTraceInformation */
+static int hf_p1_report_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
+static int hf_p1_supplementary_information = -1;  /* SupplementaryInformation */
+static int hf_p1_country_name = -1;               /* CountryName */
+static int hf_p1_bilateral_domain = -1;           /* T_bilateral_domain */
+static int hf_p1_administration_domain_name = -1;  /* AdministrationDomainName */
+static int hf_p1_private_domain = -1;             /* T_private_domain */
+static int hf_p1_private_domain_identifier = -1;  /* PrivateDomainIdentifier */
+static int hf_p1_bilateral_information = -1;      /* T_bilateral_information */
+static int hf_p1_arrival_time = -1;               /* ArrivalTime */
+static int hf_p1_converted_encoded_information_types = -1;  /* ConvertedEncodedInformationTypes */
+static int hf_p1_trace_report_type = -1;          /* ReportType */
+static int hf_p1_InternalTraceInformation_item = -1;  /* InternalTraceInformationElement */
+static int hf_p1_global_domain_identifier = -1;   /* GlobalDomainIdentifier */
+static int hf_p1_mta_name = -1;                   /* MTAName */
+static int hf_p1_mta_supplied_information = -1;   /* MTASuppliedInformation */
+static int hf_p1__untag_item = -1;                /* TraceInformationElement */
+static int hf_p1_domain_supplied_information = -1;  /* DomainSuppliedInformation */
+static int hf_p1_deferred_time = -1;              /* DeferredTime */
+static int hf_p1_other_actions = -1;              /* OtherActions */
+static int hf_p1_initiator_name = -1;             /* ObjectName */
+static int hf_p1_messages_waiting = -1;           /* MessagesWaiting */
+static int hf_p1_responder_name = -1;             /* ObjectName */
+static int hf_p1_user_agent = -1;                 /* ORAddressAndOptionalDirectoryName */
+static int hf_p1_mTA = -1;                        /* MTAName */
+static int hf_p1_message_store = -1;              /* ORAddressAndOptionalDirectoryName */
+static int hf_p1_urgent = -1;                     /* DeliveryQueue */
+static int hf_p1_normal = -1;                     /* DeliveryQueue */
+static int hf_p1_non_urgent = -1;                 /* DeliveryQueue */
+static int hf_p1_messages = -1;                   /* INTEGER_0_ub_queue_size */
+static int hf_p1_delivery_queue_octets = -1;      /* INTEGER_0_ub_content_length */
+static int hf_p1_simple = -1;                     /* Password */
+static int hf_p1_strong = -1;                     /* StrongCredentials */
+static int hf_p1_protected = -1;                  /* ProtectedPassword */
+static int hf_p1_ia5_string = -1;                 /* IA5String_SIZE_0_ub_password_length */
+static int hf_p1_octet_string = -1;               /* OCTET_STRING_SIZE_0_ub_password_length */
+static int hf_p1_bind_token = -1;                 /* Token */
+static int hf_p1_certificate = -1;                /* Certificates */
+static int hf_p1_certificate_selector = -1;       /* CertificateAssertion */
+static int hf_p1_signature = -1;                  /* Signature */
+static int hf_p1_time1 = -1;                      /* UTCTime */
+static int hf_p1_time2 = -1;                      /* UTCTime */
+static int hf_p1_random1 = -1;                    /* BIT_STRING */
+static int hf_p1_random2 = -1;                    /* BIT_STRING */
+static int hf_p1_algorithmIdentifier = -1;        /* AlgorithmIdentifier */
+static int hf_p1_encrypted = -1;                  /* BIT_STRING */
+static int hf_p1_SecurityContext_item = -1;       /* SecurityLabel */
+static int hf_p1_message_submission_envelope = -1;  /* MessageSubmissionEnvelope */
+static int hf_p1_message_submission_identifier = -1;  /* MessageSubmissionIdentifier */
+static int hf_p1_message_submission_time = -1;    /* MessageSubmissionTime */
+static int hf_p1_probe_submission_identifier = -1;  /* ProbeSubmissionIdentifier */
+static int hf_p1_probe_submission_time = -1;      /* ProbeSubmissionTime */
+static int hf_p1_ImproperlySpecifiedRecipients_item = -1;  /* RecipientName */
+static int hf_p1_waiting_operations = -1;         /* Operations */
+static int hf_p1_waiting_messages = -1;           /* WaitingMessages */
+static int hf_p1_waiting_content_types = -1;      /* SET_SIZE_0_ub_content_types_OF_ContentType */
+static int hf_p1_waiting_content_types_item = -1;  /* ContentType */
+static int hf_p1_waiting_encoded_information_types = -1;  /* EncodedInformationTypes */
+static int hf_p1_recipient_certificate = -1;      /* RecipientCertificate */
+static int hf_p1_proof_of_delivery = -1;          /* ProofOfDelivery */
+static int hf_p1_empty_result = -1;               /* NULL */
+static int hf_p1_max_extensions = -1;             /* SET_SIZE_1_MAX_OF_ExtensionField */
+static int hf_p1_max_extensions_item = -1;        /* ExtensionField */
+static int hf_p1_restrict = -1;                   /* BOOLEAN */
+static int hf_p1_permissible_operations = -1;     /* Operations */
+static int hf_p1_permissible_maximum_content_length = -1;  /* ContentLength */
+static int hf_p1_permissible_lowest_priority = -1;  /* Priority */
+static int hf_p1_permissible_content_types = -1;  /* ContentTypes */
+static int hf_p1_permissible_encoded_information_types = -1;  /* PermissibleEncodedInformationTypes */
+static int hf_p1_permissible_security_context = -1;  /* SecurityContext */
+static int hf_p1_refused_argument = -1;           /* T_refused_argument */
+static int hf_p1_built_in_argument = -1;          /* RefusedArgument */
+static int hf_p1_refused_extension = -1;          /* T_refused_extension */
+static int hf_p1_refusal_reason = -1;             /* RefusalReason */
+static int hf_p1_user_name = -1;                  /* UserName */
+static int hf_p1_user_address = -1;               /* UserAddress */
+static int hf_p1_deliverable_class = -1;          /* SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass */
+static int hf_p1_deliverable_class_item = -1;     /* DeliverableClass */
+static int hf_p1_default_delivery_controls = -1;  /* DefaultDeliveryControls */
+static int hf_p1_redirections = -1;               /* Redirections */
+static int hf_p1_restricted_delivery = -1;        /* RestrictedDelivery */
+static int hf_p1_retrieve_registrations = -1;     /* RegistrationTypes */
+static int hf_p1_non_empty_result = -1;           /* T_non_empty_result */
+static int hf_p1_registered_information = -1;     /* RegisterArgument */
+static int hf_p1_old_credentials = -1;            /* Credentials */
+static int hf_p1_new_credentials = -1;            /* Credentials */
+static int hf_p1_x121 = -1;                       /* T_x121 */
+static int hf_p1_x121_address = -1;               /* T_x121_address */
+static int hf_p1_tsap_id = -1;                    /* PrintableString_SIZE_1_ub_tsap_id_length */
+static int hf_p1_presentation = -1;               /* PSAPAddress */
+static int hf_p1_Redirections_item = -1;          /* RecipientRedirection */
+static int hf_p1_redirection_classes = -1;        /* SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass */
+static int hf_p1_redirection_classes_item = -1;   /* RedirectionClass */
+static int hf_p1_recipient_assigned_alternate_recipient = -1;  /* RecipientAssignedAlternateRecipient */
+static int hf_p1_content_types = -1;              /* ContentTypes */
+static int hf_p1_maximum_content_length = -1;     /* ContentLength */
+static int hf_p1_encoded_information_types_constraints = -1;  /* EncodedInformationTypesConstraints */
+static int hf_p1_security_labels = -1;            /* SecurityContext */
+static int hf_p1_class_priority = -1;             /* SET_OF_Priority */
+static int hf_p1_class_priority_item = -1;        /* Priority */
+static int hf_p1_objects = -1;                    /* T_objects */
+static int hf_p1_applies_only_to = -1;            /* SEQUENCE_OF_Restriction */
+static int hf_p1_applies_only_to_item = -1;       /* Restriction */
+static int hf_p1_unacceptable_eits = -1;          /* ExtendedEncodedInformationTypes */
+static int hf_p1_acceptable_eits = -1;            /* ExtendedEncodedInformationTypes */
+static int hf_p1_exclusively_acceptable_eits = -1;  /* ExtendedEncodedInformationTypes */
+static int hf_p1_RestrictedDelivery_item = -1;    /* Restriction */
+static int hf_p1_permitted = -1;                  /* BOOLEAN */
+static int hf_p1_source_type = -1;                /* T_source_type */
+static int hf_p1_source_name = -1;                /* ExactOrPattern */
+static int hf_p1_exact_match = -1;                /* ORName */
+static int hf_p1_pattern_match = -1;              /* ORName */
+static int hf_p1_standard_parameters = -1;        /* T_standard_parameters */
+static int hf_p1_type_extensions = -1;            /* T_type_extensions */
+static int hf_p1_type_extensions_item = -1;       /* T_type_extensions_item */
+static int hf_p1_originator_name_01 = -1;         /* OriginatorName */
+static int hf_p1_submission_recipient_name = -1;  /* RecipientName */
+static int hf_p1_originator_report_request = -1;  /* OriginatorReportRequest */
+static int hf_p1_probe_recipient_name = -1;       /* RecipientName */
+static int hf_p1_message_delivery_identifier = -1;  /* MessageDeliveryIdentifier */
+static int hf_p1_message_delivery_time = -1;      /* MessageDeliveryTime */
+static int hf_p1_other_fields = -1;               /* OtherMessageDeliveryFields */
+static int hf_p1_delivered_content_type = -1;     /* DeliveredContentType */
+static int hf_p1_delivered_originator_name = -1;  /* DeliveredOriginatorName */
+static int hf_p1_delivery_flags = -1;             /* DeliveryFlags */
+static int hf_p1_other_recipient_names = -1;      /* OtherRecipientNames */
+static int hf_p1_this_recipient_name = -1;        /* ThisRecipientName */
+static int hf_p1_originally_intended_recipient_name = -1;  /* OriginallyIntendedRecipientName */
+static int hf_p1_subject_submission_identifier = -1;  /* SubjectSubmissionIdentifier */
+static int hf_p1_actual_recipient_name = -1;      /* ActualRecipientName */
+static int hf_p1_delivery_report_type = -1;       /* ReportType */
+static int hf_p1_delivery = -1;                   /* DeliveryReport */
+static int hf_p1_non_delivery = -1;               /* NonDeliveryReport */
+static int hf_p1_type_of_MTS_user = -1;           /* TypeOfMTSUser */
+static int hf_p1_non_delivery_reason_code = -1;   /* NonDeliveryReasonCode */
+static int hf_p1_non_delivery_diagnostic_code = -1;  /* NonDeliveryDiagnosticCode */
+static int hf_p1_ContentTypes_item = -1;          /* ContentType */
+static int hf_p1_built_in = -1;                   /* BuiltInContentType */
+static int hf_p1_extended = -1;                   /* ExtendedContentType */
+static int hf_p1_OtherRecipientNames_item = -1;   /* OtherRecipientName */
+static int hf_p1_standard_extension = -1;         /* StandardExtension */
+static int hf_p1_private_extension = -1;          /* T_private_extension */
+static int hf_p1_extension_type = -1;             /* ExtensionType */
+static int hf_p1_criticality = -1;                /* Criticality */
+static int hf_p1_extension_value = -1;            /* ExtensionValue */
+static int hf_p1_RequestedDeliveryMethod_item = -1;  /* RequestedDeliveryMethod_item */
+static int hf_p1_ia5text = -1;                    /* IA5String */
+static int hf_p1_octets = -1;                     /* OCTET_STRING */
+static int hf_p1_RedirectionHistory_item = -1;    /* Redirection */
+static int hf_p1_intended_recipient_name = -1;    /* IntendedRecipientName */
+static int hf_p1_redirection_reason = -1;         /* RedirectionReason */
+static int hf_p1_intended_recipient = -1;         /* ORAddressAndOptionalDirectoryName */
+static int hf_p1_redirection_time = -1;           /* Time */
+static int hf_p1_DLExpansionHistory_item = -1;    /* DLExpansion */
+static int hf_p1_dl = -1;                         /* ORAddressAndOptionalDirectoryName */
+static int hf_p1_dl_expansion_time = -1;          /* Time */
+static int hf_p1_OriginatorAndDLExpansionHistory_item = -1;  /* OriginatorAndDLExpansion */
+static int hf_p1_originator_or_dl_name = -1;      /* ORAddressAndOptionalDirectoryName */
+static int hf_p1_origination_or_expansion_time = -1;  /* Time */
+static int hf_p1_report_type = -1;                /* T_report_type */
+static int hf_p1_report_type_delivery = -1;       /* PerRecipientDeliveryReportFields */
+static int hf_p1_non_delivery_report = -1;        /* PerRecipientNonDeliveryReportFields */
+static int hf_p1_domain = -1;                     /* GlobalDomainIdentifier */
+static int hf_p1_mta_directory_name = -1;         /* Name */
+static int hf_p1_ExtendedCertificates_item = -1;  /* ExtendedCertificate */
+static int hf_p1_directory_entry = -1;            /* Name */
+static int hf_p1_DLExemptedRecipients_item = -1;  /* ORAddressAndOrDirectoryName */
+static int hf_p1_encryption_recipient = -1;       /* CertificateAssertion */
+static int hf_p1_encryption_originator = -1;      /* CertificateAssertion */
+static int hf_p1_selectors_content_integrity_check = -1;  /* CertificateAssertion */
+static int hf_p1_token_signature = -1;            /* CertificateAssertion */
+static int hf_p1_message_origin_authentication = -1;  /* CertificateAssertion */
+static int hf_p1_local_identifier = -1;           /* LocalIdentifier */
+static int hf_p1_numeric_private_domain_identifier = -1;  /* T_numeric_private_domain_identifier */
+static int hf_p1_printable_private_domain_identifier = -1;  /* T_printable_private_domain_identifier */
+static int hf_p1_built_in_standard_attributes = -1;  /* BuiltInStandardAttributes */
+static int hf_p1_built_in_domain_defined_attributes = -1;  /* BuiltInDomainDefinedAttributes */
+static int hf_p1_extension_attributes = -1;       /* ExtensionAttributes */
+static int hf_p1_network_address = -1;            /* NetworkAddress */
+static int hf_p1_terminal_identifier = -1;        /* TerminalIdentifier */
+static int hf_p1_private_domain_name = -1;        /* PrivateDomainName */
+static int hf_p1_organization_name = -1;          /* OrganizationName */
+static int hf_p1_numeric_user_identifier = -1;    /* NumericUserIdentifier */
+static int hf_p1_personal_name = -1;              /* PersonalName */
+static int hf_p1_organizational_unit_names = -1;  /* OrganizationalUnitNames */
+static int hf_p1_x121_dcc_code = -1;              /* T_x121_dcc_code */
+static int hf_p1_iso_3166_alpha2_code = -1;       /* T_iso_3166_alpha2_code */
+static int hf_p1_numeric = -1;                    /* T_numeric */
+static int hf_p1_printable = -1;                  /* T_printable */
+static int hf_p1_numeric_private_domain_name = -1;  /* T_numeric_private_domain_name */
+static int hf_p1_printable_private_domain_name = -1;  /* T_printable_private_domain_name */
+static int hf_p1_printable_surname = -1;          /* T_printable_surname */
+static int hf_p1_printable_given_name = -1;       /* T_printable_given_name */
+static int hf_p1_printable_initials = -1;         /* T_printable_initials */
+static int hf_p1_printable_generation_qualifier = -1;  /* T_printable_generation_qualifier */
+static int hf_p1_OrganizationalUnitNames_item = -1;  /* OrganizationalUnitName */
+static int hf_p1_BuiltInDomainDefinedAttributes_item = -1;  /* BuiltInDomainDefinedAttribute */
+static int hf_p1_printable_type = -1;             /* T_printable_type */
+static int hf_p1_printable_value = -1;            /* T_printable_value */
+static int hf_p1_ExtensionAttributes_item = -1;   /* ExtensionAttribute */
+static int hf_p1_extension_attribute_type = -1;   /* ExtensionAttributeType */
+static int hf_p1_extension_attribute_value = -1;  /* T_extension_attribute_value */
+static int hf_p1_teletex_surname = -1;            /* T_teletex_surname */
+static int hf_p1_teletex_given_name = -1;         /* T_teletex_given_name */
+static int hf_p1_teletex_initials = -1;           /* T_teletex_initials */
+static int hf_p1_teletex_generation_qualifier = -1;  /* T_teletex_generation_qualifier */
+static int hf_p1_universal_surname = -1;          /* UniversalOrBMPString */
+static int hf_p1_universal_given_name = -1;       /* UniversalOrBMPString */
+static int hf_p1_universal_initials = -1;         /* UniversalOrBMPString */
+static int hf_p1_universal_generation_qualifier = -1;  /* UniversalOrBMPString */
+static int hf_p1_TeletexOrganizationalUnitNames_item = -1;  /* TeletexOrganizationalUnitName */
+static int hf_p1_UniversalOrganizationalUnitNames_item = -1;  /* UniversalOrganizationalUnitName */
+static int hf_p1_character_encoding = -1;         /* T_character_encoding */
+static int hf_p1_two_octets = -1;                 /* BMPString_SIZE_1_ub_string_length */
+static int hf_p1_four_octets = -1;                /* UniversalString_SIZE_1_ub_string_length */
+static int hf_p1_iso_639_language_code = -1;      /* PrintableString_SIZE_CONSTR001 */
+static int hf_p1_x121_dcc_code_01 = -1;           /* T_x121_dcc_code_01 */
+static int hf_p1_iso_3166_alpha2_code_01 = -1;    /* T_iso_3166_alpha2_code_01 */
+static int hf_p1_numeric_code = -1;               /* T_numeric_code */
+static int hf_p1_printable_code = -1;             /* PrintableString_SIZE_1_ub_postal_code_length */
+static int hf_p1_printable_address = -1;          /* T_printable_address */
+static int hf_p1_printable_address_item = -1;     /* PrintableString_SIZE_1_ub_pds_parameter_length */
+static int hf_p1_teletex_string = -1;             /* TeletexString_SIZE_1_ub_unformatted_address_length */
+static int hf_p1_printable_string = -1;           /* PrintableString_SIZE_1_ub_pds_parameter_length */
+static int hf_p1_pds_teletex_string = -1;         /* TeletexString_SIZE_1_ub_pds_parameter_length */
+static int hf_p1_e163_4_address = -1;             /* T_e163_4_address */
+static int hf_p1_number = -1;                     /* NumericString_SIZE_1_ub_e163_4_number_length */
+static int hf_p1_sub_address = -1;                /* NumericString_SIZE_1_ub_e163_4_sub_address_length */
+static int hf_p1_psap_address = -1;               /* PresentationAddress */
+static int hf_p1_TeletexDomainDefinedAttributes_item = -1;  /* TeletexDomainDefinedAttribute */
+static int hf_p1_type = -1;                       /* T_type */
+static int hf_p1_teletex_value = -1;              /* T_teletex_value */
+static int hf_p1_UniversalDomainDefinedAttributes_item = -1;  /* UniversalDomainDefinedAttribute */
+static int hf_p1_universal_type = -1;             /* UniversalOrBMPString */
+static int hf_p1_universal_value = -1;            /* UniversalOrBMPString */
+static int hf_p1_ExtendedEncodedInformationTypes_item = -1;  /* ExtendedEncodedInformationType */
+static int hf_p1_g3_facsimile = -1;               /* G3FacsimileNonBasicParameters */
+static int hf_p1_teletex = -1;                    /* TeletexNonBasicParameters */
+static int hf_p1_graphic_character_sets = -1;     /* TeletexString */
+static int hf_p1_control_character_sets = -1;     /* TeletexString */
+static int hf_p1_page_formats = -1;               /* OCTET_STRING */
+static int hf_p1_miscellaneous_terminal_capabilities = -1;  /* TeletexString */
+static int hf_p1_private_use = -1;                /* OCTET_STRING */
+static int hf_p1_token_type_identifier = -1;      /* TokenTypeIdentifier */
+static int hf_p1_token = -1;                      /* TokenTypeData */
+static int hf_p1_signature_algorithm_identifier = -1;  /* AlgorithmIdentifier */
+static int hf_p1_name = -1;                       /* T_name */
+static int hf_p1_token_recipient_name = -1;       /* RecipientName */
+static int hf_p1_token_mta = -1;                  /* MTANameAndOptionalGDI */
+static int hf_p1_time = -1;                       /* Time */
+static int hf_p1_signed_data = -1;                /* TokenData */
+static int hf_p1_encryption_algorithm_identifier = -1;  /* AlgorithmIdentifier */
+static int hf_p1_encrypted_data = -1;             /* BIT_STRING */
+static int hf_p1_asymmetric_token_data = -1;      /* AsymmetricTokenData */
+static int hf_p1_algorithm_identifier = -1;       /* AlgorithmIdentifier */
+static int hf_p1_token_data_type = -1;            /* TokenDataType */
+static int hf_p1_value = -1;                      /* T_value */
+static int hf_p1_content_confidentiality_algorithm_identifier = -1;  /* ContentConfidentialityAlgorithmIdentifier */
+static int hf_p1_content_integrity_check = -1;    /* ContentIntegrityCheck */
+static int hf_p1_message_security_label = -1;     /* MessageSecurityLabel */
+static int hf_p1_proof_of_delivery_request = -1;  /* ProofOfDeliveryRequest */
+static int hf_p1_message_sequence_number = -1;    /* INTEGER */
+static int hf_p1_content_confidentiality_key = -1;  /* EncryptionKey */
+static int hf_p1_content_integrity_key = -1;      /* EncryptionKey */
+static int hf_p1_security_policy_identifier = -1;  /* SecurityPolicyIdentifier */
+static int hf_p1_security_classification = -1;    /* SecurityClassification */
+static int hf_p1_privacy_mark = -1;               /* PrivacyMark */
+static int hf_p1_security_categories = -1;        /* SecurityCategories */
+static int hf_p1_SecurityCategories_item = -1;    /* SecurityCategory */
+static int hf_p1_category_type = -1;              /* SecurityCategoryIdentifier */
+static int hf_p1_category_value = -1;             /* CategoryValue */
+static int hf_p1_mta_originator_name = -1;        /* MTAOriginatorName */
+static int hf_p1_per_recipient_message_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields */
+static int hf_p1_per_recipient_message_fields_item = -1;  /* PerRecipientMessageTransferFields */
+static int hf_p1_per_recipient_probe_transfer_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields */
+static int hf_p1_per_recipient_probe_transfer_fields_item = -1;  /* PerRecipientProbeTransferFields */
+static int hf_p1_per_recipient_report_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields */
+static int hf_p1_per_recipient_report_fields_item = -1;  /* PerRecipientReportTransferFields */
+static int hf_p1_routing_action = -1;             /* RoutingAction */
+static int hf_p1_attempted = -1;                  /* T_attempted */
+static int hf_p1_mta = -1;                        /* MTAName */
+static int hf_p1_attempted_domain = -1;           /* GlobalDomainIdentifier */
+static int hf_p1_per_recipient_report_delivery_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields */
+static int hf_p1_per_recipient_report_delivery_fields_item = -1;  /* PerRecipientReportDeliveryFields */
+static int hf_p1_mts_originator_name = -1;        /* OriginatorName */
+static int hf_p1_per_recipient_message_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields */
+static int hf_p1_per_recipient_message_submission_fields_item = -1;  /* PerRecipientMessageSubmissionFields */
+static int hf_p1_per_recipient_probe_submission_fields = -1;  /* SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields */
+static int hf_p1_per_recipient_probe_submission_fields_item = -1;  /* PerRecipientProbeSubmissionFields */
+static int hf_p1_directory_name = -1;             /* Name */
+static int hf_p1_built_in_encoded_information_types = -1;  /* BuiltInEncodedInformationTypes */
+static int hf_p1_extended_encoded_information_types = -1;  /* ExtendedEncodedInformationTypes */
+/* named bits */
+static int hf_p1_PerRecipientIndicators_responsibility = -1;
+static int hf_p1_PerRecipientIndicators_originating_MTA_report = -1;
+static int hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report = -1;
+static int hf_p1_PerRecipientIndicators_originator_report = -1;
+static int hf_p1_PerRecipientIndicators_originator_non_delivery_report = -1;
+static int hf_p1_PerRecipientIndicators_reserved_5 = -1;
+static int hf_p1_PerRecipientIndicators_reserved_6 = -1;
+static int hf_p1_PerRecipientIndicators_reserved_7 = -1;
+static int hf_p1_OtherActions_redirected = -1;
+static int hf_p1_OtherActions_dl_operation = -1;
+static int hf_p1_Operations_probe_submission_or_report_delivery = -1;
+static int hf_p1_Operations_message_submission_or_message_delivery = -1;
+static int hf_p1_WaitingMessages_long_content = -1;
+static int hf_p1_WaitingMessages_low_priority = -1;
+static int hf_p1_WaitingMessages_other_security_labels = -1;
+static int hf_p1_T_source_type_originated_by = -1;
+static int hf_p1_T_source_type_redirected_by = -1;
+static int hf_p1_T_source_type_dl_expanded_by = -1;
+static int hf_p1_T_standard_parameters_user_name = -1;
+static int hf_p1_T_standard_parameters_user_address = -1;
+static int hf_p1_T_standard_parameters_deliverable_class = -1;
+static int hf_p1_T_standard_parameters_default_delivery_controls = -1;
+static int hf_p1_T_standard_parameters_redirections = -1;
+static int hf_p1_T_standard_parameters_restricted_delivery = -1;
+static int hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients = -1;
+static int hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited = -1;
+static int hf_p1_PerMessageIndicators_U_alternate_recipient_allowed = -1;
+static int hf_p1_PerMessageIndicators_U_content_return_request = -1;
+static int hf_p1_PerMessageIndicators_U_reserved = -1;
+static int hf_p1_PerMessageIndicators_U_bit_5 = -1;
+static int hf_p1_PerMessageIndicators_U_bit_6 = -1;
+static int hf_p1_PerMessageIndicators_U_service_message = -1;
+static int hf_p1_OriginatorReportRequest_report = -1;
+static int hf_p1_OriginatorReportRequest_non_delivery_report = -1;
+static int hf_p1_DeliveryFlags_implicit_conversion_prohibited = -1;
+static int hf_p1_Criticality_for_submission = -1;
+static int hf_p1_Criticality_for_transfer = -1;
+static int hf_p1_Criticality_for_delivery = -1;
+static int hf_p1_PhysicalDeliveryModes_ordinary_mail = -1;
+static int hf_p1_PhysicalDeliveryModes_special_delivery = -1;
+static int hf_p1_PhysicalDeliveryModes_express_mail = -1;
+static int hf_p1_PhysicalDeliveryModes_counter_collection = -1;
+static int hf_p1_PhysicalDeliveryModes_counter_collection_with_telephone_advice = -1;
+static int hf_p1_PhysicalDeliveryModes_counter_collection_with_telex_advice = -1;
+static int hf_p1_PhysicalDeliveryModes_counter_collection_with_teletex_advice = -1;
+static int hf_p1_PhysicalDeliveryModes_bureau_fax_delivery = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_unknown = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_ia5_text = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_g3_facsimile = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_g4_class_1 = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_teletex = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_videotex = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_voice = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_sfd = -1;
+static int hf_p1_BuiltInEncodedInformationTypes_mixed_mode = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_two_dimensional = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_fine_resolution = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_unlimited_length = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_b4_length = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_a3_width = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_b4_width = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_t6_coding = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_uncompressed = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728 = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728 = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_resolution_type = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_resolution_400x400 = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_resolution_300x300 = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_resolution_8x15 = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_edi = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_dtm = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_bft = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_mixed_mode = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_character_mode = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_twelve_bits = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_full_colour = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_jpeg = -1;
+static int hf_p1_G3FacsimileNonBasicParameters_processable_mode_26 = -1;
+
+/*--- End of included file: packet-p1-hf.c ---*/
+#line 82 "packet-p1-template.c"
+
+/* Initialize the subtree pointers */
+static gint ett_p1 = -1;
+static gint ett_p3 = -1;
+static gint ett_p1_content_unknown = -1;
+static gint ett_p1_bilateral_information = -1;
+static gint ett_p1_additional_information = -1;
+static gint ett_p1_unknown_standard_extension = -1;
+static gint ett_p1_unknown_extension_attribute_type = -1;
+static gint ett_p1_unknown_tokendata_type = -1;
+
+/*--- Included file: packet-p1-ett.c ---*/
+#line 1 "packet-p1-ett.c"
+static gint ett_p1_MTABindArgument = -1;
+static gint ett_p1_AuthenticatedArgument = -1;
+static gint ett_p1_MTABindResult = -1;
+static gint ett_p1_AuthenticatedResult = -1;
+static gint ett_p1_MTS_APDU = -1;
+static gint ett_p1_Message = -1;
+static gint ett_p1_Report = -1;
+static gint ett_p1_MessageTransferEnvelope = -1;
+static gint ett_p1_PerMessageTransferFields = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation = -1;
+static gint ett_p1_SET_OF_ExtensionField = -1;
+static gint ett_p1_PerRecipientMessageTransferFields = -1;
+static gint ett_p1_ProbeTransferEnvelope = -1;
+static gint ett_p1_PerProbeTransferFields = -1;
+static gint ett_p1_PerRecipientProbeTransferFields = -1;
+static gint ett_p1_ReportTransferEnvelope = -1;
+static gint ett_p1_ReportTransferContent = -1;
+static gint ett_p1_PerReportTransferFields = -1;
+static gint ett_p1_PerRecipientReportTransferFields = -1;
+static gint ett_p1_PerDomainBilateralInformation = -1;
+static gint ett_p1_T_bilateral_domain = -1;
+static gint ett_p1_T_private_domain = -1;
+static gint ett_p1_PerRecipientIndicators = -1;
+static gint ett_p1_LastTraceInformation = -1;
+static gint ett_p1_InternalTraceInformation = -1;
+static gint ett_p1_InternalTraceInformationElement = -1;
+static gint ett_p1_MTASuppliedInformation = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement = -1;
+static gint ett_p1_TraceInformationElement = -1;
+static gint ett_p1_DomainSuppliedInformation = -1;
+static gint ett_p1_AdditionalActions = -1;
+static gint ett_p1_OtherActions = -1;
+static gint ett_p1_MTSBindArgument = -1;
+static gint ett_p1_MTSBindResult = -1;
+static gint ett_p1_ObjectName = -1;
+static gint ett_p1_MessagesWaiting = -1;
+static gint ett_p1_DeliveryQueue = -1;
+static gint ett_p1_Credentials = -1;
+static gint ett_p1_Password = -1;
+static gint ett_p1_StrongCredentials = -1;
+static gint ett_p1_ProtectedPassword = -1;
+static gint ett_p1_Signature = -1;
+static gint ett_p1_SecurityContext = -1;
+static gint ett_p1_MessageSubmissionArgument = -1;
+static gint ett_p1_MessageSubmissionResult = -1;
+static gint ett_p1_ProbeSubmissionResult = -1;
+static gint ett_p1_ImproperlySpecifiedRecipients = -1;
+static gint ett_p1_Waiting = -1;
+static gint ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType = -1;
+static gint ett_p1_Operations = -1;
+static gint ett_p1_WaitingMessages = -1;
+static gint ett_p1_MessageDeliveryArgument = -1;
+static gint ett_p1_MessageDeliveryResult = -1;
+static gint ett_p1_ReportDeliveryArgument = -1;
+static gint ett_p1_ReportDeliveryResult = -1;
+static gint ett_p1_SET_SIZE_1_MAX_OF_ExtensionField = -1;
+static gint ett_p1_DeliveryControlArgument = -1;
+static gint ett_p1_DeliveryControlResult = -1;
+static gint ett_p1_RefusedOperation = -1;
+static gint ett_p1_T_refused_argument = -1;
+static gint ett_p1_Controls = -1;
+static gint ett_p1_RegisterArgument = -1;
+static gint ett_p1_SET_SIZE_1_ub_deliverable_class_OF_DeliverableClass = -1;
+static gint ett_p1_RegisterResult = -1;
+static gint ett_p1_T_non_empty_result = -1;
+static gint ett_p1_ChangeCredentialsArgument = -1;
+static gint ett_p1_UserAddress = -1;
+static gint ett_p1_T_x121 = -1;
+static gint ett_p1_Redirections = -1;
+static gint ett_p1_RecipientRedirection = -1;
+static gint ett_p1_SET_SIZE_1_ub_redirection_classes_OF_RedirectionClass = -1;
+static gint ett_p1_MessageClass = -1;
+static gint ett_p1_SET_OF_Priority = -1;
+static gint ett_p1_SEQUENCE_OF_Restriction = -1;
+static gint ett_p1_EncodedInformationTypesConstraints = -1;
+static gint ett_p1_RestrictedDelivery = -1;
+static gint ett_p1_Restriction = -1;
+static gint ett_p1_T_source_type = -1;
+static gint ett_p1_ExactOrPattern = -1;
+static gint ett_p1_RegistrationTypes = -1;
+static gint ett_p1_T_standard_parameters = -1;
+static gint ett_p1_T_type_extensions = -1;
+static gint ett_p1_MessageSubmissionEnvelope = -1;
+static gint ett_p1_PerMessageSubmissionFields = -1;
+static gint ett_p1_PerRecipientMessageSubmissionFields = -1;
+static gint ett_p1_ProbeSubmissionEnvelope = -1;
+static gint ett_p1_PerProbeSubmissionFields = -1;
+static gint ett_p1_PerRecipientProbeSubmissionFields = -1;
+static gint ett_p1_MessageDeliveryEnvelope = -1;
+static gint ett_p1_OtherMessageDeliveryFields = -1;
+static gint ett_p1_ReportDeliveryEnvelope = -1;
+static gint ett_p1_PerReportDeliveryFields = -1;
+static gint ett_p1_PerRecipientReportDeliveryFields = -1;
+static gint ett_p1_ReportType = -1;
+static gint ett_p1_DeliveryReport = -1;
+static gint ett_p1_NonDeliveryReport = -1;
+static gint ett_p1_ContentTypes = -1;
+static gint ett_p1_ContentType = -1;
+static gint ett_p1_DeliveredContentType = -1;
+static gint ett_p1_PerMessageIndicators_U = -1;
+static gint ett_p1_OriginatorReportRequest = -1;
+static gint ett_p1_DeliveryFlags = -1;
+static gint ett_p1_OtherRecipientNames = -1;
+static gint ett_p1_ExtensionType = -1;
+static gint ett_p1_Criticality = -1;
+static gint ett_p1_ExtensionField = -1;
+static gint ett_p1_RequestedDeliveryMethod = -1;
+static gint ett_p1_PhysicalDeliveryModes = -1;
+static gint ett_p1_ContentCorrelator = -1;
+static gint ett_p1_RedirectionHistory = -1;
+static gint ett_p1_Redirection = -1;
+static gint ett_p1_IntendedRecipientName = -1;
+static gint ett_p1_DLExpansionHistory = -1;
+static gint ett_p1_DLExpansion = -1;
+static gint ett_p1_OriginatorAndDLExpansionHistory = -1;
+static gint ett_p1_OriginatorAndDLExpansion = -1;
+static gint ett_p1_PerRecipientReportFields = -1;
+static gint ett_p1_T_report_type = -1;
+static gint ett_p1_PerRecipientDeliveryReportFields = -1;
+static gint ett_p1_PerRecipientNonDeliveryReportFields = -1;
+static gint ett_p1_ReportingMTAName = -1;
+static gint ett_p1_ExtendedCertificates = -1;
+static gint ett_p1_ExtendedCertificate = -1;
+static gint ett_p1_DLExemptedRecipients = -1;
+static gint ett_p1_CertificateSelectors = -1;
+static gint ett_p1_MTSIdentifier_U = -1;
+static gint ett_p1_GlobalDomainIdentifier_U = -1;
+static gint ett_p1_PrivateDomainIdentifier = -1;
+static gint ett_p1_ORName_U = -1;
+static gint ett_p1_ORAddress = -1;
+static gint ett_p1_BuiltInStandardAttributes = -1;
+static gint ett_p1_CountryName_U = -1;
+static gint ett_p1_AdministrationDomainName_U = -1;
+static gint ett_p1_PrivateDomainName = -1;
+static gint ett_p1_PersonalName = -1;
+static gint ett_p1_OrganizationalUnitNames = -1;
+static gint ett_p1_BuiltInDomainDefinedAttributes = -1;
+static gint ett_p1_BuiltInDomainDefinedAttribute = -1;
+static gint ett_p1_ExtensionAttributes = -1;
+static gint ett_p1_ExtensionAttribute = -1;
+static gint ett_p1_TeletexPersonalName = -1;
+static gint ett_p1_UniversalPersonalName = -1;
+static gint ett_p1_TeletexOrganizationalUnitNames = -1;
+static gint ett_p1_UniversalOrganizationalUnitNames = -1;
+static gint ett_p1_UniversalOrBMPString = -1;
+static gint ett_p1_T_character_encoding = -1;
+static gint ett_p1_PhysicalDeliveryCountryName = -1;
+static gint ett_p1_PostalCode = -1;
+static gint ett_p1_UnformattedPostalAddress = -1;
+static gint ett_p1_T_printable_address = -1;
+static gint ett_p1_PDSParameter = -1;
+static gint ett_p1_ExtendedNetworkAddress = -1;
+static gint ett_p1_T_e163_4_address = -1;
+static gint ett_p1_TeletexDomainDefinedAttributes = -1;
+static gint ett_p1_TeletexDomainDefinedAttribute = -1;
+static gint ett_p1_UniversalDomainDefinedAttributes = -1;
+static gint ett_p1_UniversalDomainDefinedAttribute = -1;
+static gint ett_p1_EncodedInformationTypes_U = -1;
+static gint ett_p1_BuiltInEncodedInformationTypes = -1;
+static gint ett_p1_ExtendedEncodedInformationTypes = -1;
+static gint ett_p1_NonBasicParameters = -1;
+static gint ett_p1_G3FacsimileNonBasicParameters = -1;
+static gint ett_p1_TeletexNonBasicParameters = -1;
+static gint ett_p1_Token = -1;
+static gint ett_p1_AsymmetricTokenData = -1;
+static gint ett_p1_T_name = -1;
+static gint ett_p1_MTANameAndOptionalGDI = -1;
+static gint ett_p1_AsymmetricToken = -1;
+static gint ett_p1_TokenData = -1;
+static gint ett_p1_MessageTokenSignedData = -1;
+static gint ett_p1_MessageTokenEncryptedData = -1;
+static gint ett_p1_SecurityLabel = -1;
+static gint ett_p1_SecurityCategories = -1;
+static gint ett_p1_SecurityCategory = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields = -1;
+static gint ett_p1_T_attempted = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields = -1;
+static gint ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields = -1;
+
+/*--- End of included file: packet-p1-ett.c ---*/
+#line 93 "packet-p1-template.c"
+
+/* Dissector tables */
+static dissector_table_t p1_extension_dissector_table;
+static dissector_table_t p1_extension_attribute_dissector_table;
+static dissector_table_t p1_tokendata_dissector_table;
+
+
+/*--- Included file: packet-p1-table.c ---*/
+#line 1 "packet-p1-table.c"
+
+/* P3 ABSTRACT-OPERATIONS */
+const value_string p3_opr_code_string_vals[] = {
+       { op_ros_bind, "mts_bind" },
+       { op_message_submission, "message_submission" },
+       { op_probe_submission, "probe_submission" },
+       { op_cancel_deferred_delivery, "cancel_deferred_delivery" },
+       { op_submission_control, "submission_control" },
+       { op_message_delivery, "message_delivery" },
+       { op_report_delivery, "report_delivery" },
+       { op_delivery_control, "delivery_control" },
+       { op_register, "register" },
+       { op_change_credentials, "change_credentials" },
+       { 0, NULL }
+};
+
+
+/* P3 ERRORS */
+static const value_string p3_err_code_string_vals[] = {
+       { err_ros_bind, "mts_bind_error" },  
+       { err_submission_control_violated, "submission_control_violated" },  
+       { err_element_of_service_not_subscribed, "element_of_service_not_subscribed" },  
+       { err_deferred_delivery_cancellation_rejected, "deferred_delivery_cancellation_rejected" },  
+       { err_originator_invalid, "originator_invalid" },  
+       { err_recipient_improperly_specified, "recipient_improperly_specified" },  
+       { err_message_submission_identifier_invalid, "message_submission_identifier_invalid" },  
+       { err_inconsistent_request, "inconsistent_request" },  
+       { err_security_error, "security_error" },  
+       { err_unsupported_critical_function, "unsupported_critical_function" },  
+       { err_remote_bind_error, "remote_bind_error" },  
+       { err_delivery_control_violated, "delivery_control_violated" },  
+       { err_control_violates_registration, "control_violates_registration" },  
+       { err_operation_refused, "operation_refused" },  
+       { err_register_rejected, "register_rejected" },  
+       { err_new_credentials_unacceptable, "new_credentials_unacceptable" },  
+       { err_old_credentials_incorrectly_specified, "old_credentials_incorrectly_specified" },  
+         { 0, NULL }
+};
+
+
+/*--- End of included file: packet-p1-table.c ---*/
+#line 100 "packet-p1-template.c"
+
+
+/*--- Included file: packet-p1-fn.c ---*/
+#line 1 "packet-p1-fn.c"
+
+
+static int
+dissect_p1_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_MTAName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 679 "p1.cnf"
+       tvbuff_t        *mtaname = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_mta_name_length, hf_index, &mtaname);
+
+
+       if(doing_address) {
+
+               proto_item_append_text(address_item, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
+
+       } else {
+
+       if (check_col(actx->pinfo->cinfo, COL_INFO) && mtaname) {
+               col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", tvb_format_text(mtaname, 0, tvb_length(mtaname)));
+       }
+
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_IA5String_SIZE_0_ub_password_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+                                                        actx, tree, tvb, offset,
+                                                        0, ub_password_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_OCTET_STRING_SIZE_0_ub_password_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_octet_string(implicit_tag, actx, tree, tvb, offset,
+                                                   0, ub_password_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const value_string p1_Password_vals[] = {
+  {   0, "ia5-string" },
+  {   1, "octet-string" },
+  { 0, NULL }
+};
+
+static const ber_choice_t Password_choice[] = {
+  {   0, &hf_p1_ia5_string       , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_IA5String_SIZE_0_ub_password_length },
+  {   1, &hf_p1_octet_string     , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_OCTET_STRING_SIZE_0_ub_password_length },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_Password(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 Password_choice, hf_index, ett_p1_Password,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_TokenTypeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_TokenTypeData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1213 "p1.cnf"
+       
+       if(object_identifier_id) 
+          call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t Token_sequence[] = {
+  { &hf_p1_token_type_identifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_TokenTypeIdentifier },
+  { &hf_p1_token            , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_TokenTypeData },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_Token(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   Token_sequence, hf_index, ett_p1_Token);
+
+  return offset;
+}
+
+
+static const ber_sequence_t StrongCredentials_set[] = {
+  { &hf_p1_bind_token       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Token },
+  { &hf_p1_certificate      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509af_Certificates },
+  { &hf_p1_certificate_selector, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509ce_CertificateAssertion },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_StrongCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              StrongCredentials_set, hf_index, ett_p1_StrongCredentials);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                    NULL, hf_index, -1,
+                                    NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t Signature_sequence[] = {
+  { &hf_p1_algorithmIdentifier, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_x509af_AlgorithmIdentifier },
+  { &hf_p1_encrypted        , BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_BIT_STRING },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_Signature(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   Signature_sequence, hf_index, ett_p1_Signature);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_UTCTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ProtectedPassword_set[] = {
+  { &hf_p1_signature        , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_Signature },
+  { &hf_p1_time1            , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UTCTime },
+  { &hf_p1_time2            , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_UTCTime },
+  { &hf_p1_random1          , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
+  { &hf_p1_random2          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BIT_STRING },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ProtectedPassword(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ProtectedPassword_set, hf_index, ett_p1_ProtectedPassword);
+
+  return offset;
+}
+
+
+const value_string p1_Credentials_vals[] = {
+  {   0, "simple" },
+  {   1, "strong" },
+  {   2, "protected" },
+  { 0, NULL }
+};
+
+static const ber_choice_t Credentials_choice[] = {
+  {   0, &hf_p1_simple           , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_p1_Password },
+  {   1, &hf_p1_strong           , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_StrongCredentials },
+  {   2, &hf_p1_protected        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_ProtectedPassword },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1221 "p1.cnf"
+  gint credentials = -1;
+
+    offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 Credentials_choice, hf_index, ett_p1_Credentials,
+                                 &credentials);
+
+
+  if( (credentials!=-1) && p1_Credentials_vals[credentials].strptr ){
+    if (check_col(actx->pinfo->cinfo, COL_INFO)) {
+      col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_Credentials_vals[credentials].strptr);
+    }
+  }
+
+
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_InitiatorCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SecurityPolicyIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const value_string p1_SecurityClassification_vals[] = {
+  {   0, "unmarked" },
+  {   1, "unclassified" },
+  {   2, "restricted" },
+  {   3, "confidential" },
+  {   4, "secret" },
+  {   5, "top-secret" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_SecurityClassification(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_integer_options, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PrivacyMark(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_privacy_mark_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SecurityCategoryIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SecurityCategoryValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 561 "p1.cnf"
+       const char *name;
+
+       if (object_identifier_id) {
+               offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+               name = oid_resolved_from_string(object_identifier_id);
+               proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id); 
+       } else {
+               offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_CategoryValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_SecurityCategoryValue(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SecurityCategory_sequence[] = {
+  { &hf_p1_category_type    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SecurityCategoryIdentifier },
+  { &hf_p1_category_value   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_CategoryValue },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_SecurityCategory(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   SecurityCategory_sequence, hf_index, ett_p1_SecurityCategory);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SecurityCategories_set_of[1] = {
+  { &hf_p1_SecurityCategories_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_SecurityCategory },
+};
+
+static int
+dissect_p1_SecurityCategories(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
+                                             1, ub_security_categories, SecurityCategories_set_of, hf_index, ett_p1_SecurityCategories);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SecurityLabel_set[] = {
+  { &hf_p1_security_policy_identifier, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityPolicyIdentifier },
+  { &hf_p1_security_classification, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityClassification },
+  { &hf_p1_privacy_mark     , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PrivacyMark },
+  { &hf_p1_security_categories, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SecurityCategories },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_SecurityLabel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              SecurityLabel_set, hf_index, ett_p1_SecurityLabel);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SecurityContext_set_of[1] = {
+  { &hf_p1_SecurityContext_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_SecurityLabel },
+};
+
+int
+dissect_p1_SecurityContext(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
+                                             1, ub_security_labels, SecurityContext_set_of, hf_index, ett_p1_SecurityContext);
+
+  return offset;
+}
+
+
+static const ber_sequence_t AuthenticatedArgument_set[] = {
+  { &hf_p1_authenticated_initiator_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
+  { &hf_p1_initiator_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_InitiatorCredentials },
+  { &hf_p1_security_context , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_AuthenticatedArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              AuthenticatedArgument_set, hf_index, ett_p1_AuthenticatedArgument);
+
+  return offset;
+}
+
+
+static const value_string p1_MTABindArgument_vals[] = {
+  {   0, "unauthenticated" },
+  {   1, "authenticated" },
+  { 0, NULL }
+};
+
+static const ber_choice_t MTABindArgument_choice[] = {
+  {   0, &hf_p1_unauthenticated  , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
+  {   1, &hf_p1_authenticated_argument, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_AuthenticatedArgument },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MTABindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 MTABindArgument_choice, hf_index, ett_p1_MTABindArgument,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ResponderCredentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Credentials(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t AuthenticatedResult_set[] = {
+  { &hf_p1_authenticated_responder_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
+  { &hf_p1_responder_credentials, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ResponderCredentials },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_AuthenticatedResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              AuthenticatedResult_set, hf_index, ett_p1_AuthenticatedResult);
+
+  return offset;
+}
+
+
+static const value_string p1_MTABindResult_vals[] = {
+  {   0, "unauthenticated" },
+  {   1, "authenticated" },
+  { 0, NULL }
+};
+
+static const ber_choice_t MTABindResult_choice[] = {
+  {   0, &hf_p1_unauthenticated  , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_p1_NULL },
+  {   1, &hf_p1_authenticated_result, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_AuthenticatedResult },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MTABindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 MTABindResult_choice, hf_index, ett_p1_MTABindResult,
+                                 NULL);
+
+  return offset;
+}
+
+
+static const value_string p1_MTABindError_vals[] = {
+  {   0, "busy" },
+  {   2, "authentication-error" },
+  {   3, "unacceptable-dialogue-mode" },
+  {   4, "unacceptable-security-context" },
+  {   5, "inadequate-association-confidentiality" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1204 "p1.cnf"
+  int error = -1;
+    offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_integer_options, hf_index, &error);
+
+  if((error != -1) && check_col(actx->pinfo->cinfo, COL_INFO))
+    col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s)", val_to_str(error, p1_MTABindError_vals, "error(%d)"));
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_x121_dcc_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 863 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+                                                        actx, tree, tvb, offset,
+                                                        ub_country_name_numeric_length, ub_country_name_numeric_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_iso_3166_alpha2_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 815 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        ub_country_name_alpha_length, ub_country_name_alpha_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+static const value_string p1_CountryName_U_vals[] = {
+  {   0, "x121-dcc-code" },
+  {   1, "iso-3166-alpha2-code" },
+  { 0, NULL }
+};
+
+static const ber_choice_t CountryName_U_choice[] = {
+  {   0, &hf_p1_x121_dcc_code    , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_x121_dcc_code },
+  {   1, &hf_p1_iso_3166_alpha2_code, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_iso_3166_alpha2_code },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_CountryName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 CountryName_U_choice, hf_index, ett_p1_CountryName_U,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 595 "p1.cnf"
+ if(doing_address)
+    g_strlcat(oraddress, "/C=", MAX_ORA_STR_LEN);
+   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 1, TRUE, dissect_p1_CountryName_U);
+
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_numeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 871 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+                                                        actx, tree, tvb, offset,
+                                                        0, ub_domain_name_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 823 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        0, ub_domain_name_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+static const value_string p1_AdministrationDomainName_U_vals[] = {
+  {   0, "numeric" },
+  {   1, "printable" },
+  { 0, NULL }
+};
+
+static const ber_choice_t AdministrationDomainName_U_choice[] = {
+  {   0, &hf_p1_numeric          , BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric },
+  {   1, &hf_p1_printable        , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_AdministrationDomainName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 AdministrationDomainName_U_choice, hf_index, ett_p1_AdministrationDomainName_U,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 602 "p1.cnf"
+  if(doing_address)
+    g_strlcat(oraddress, "/A=", MAX_ORA_STR_LEN);
+
+   offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 2, TRUE, dissect_p1_AdministrationDomainName_U);
+
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_numeric_private_domain_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 887 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_domain_name_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_private_domain_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 839 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_domain_name_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+static const value_string p1_PrivateDomainIdentifier_vals[] = {
+  {   0, "numeric" },
+  {   1, "printable" },
+  { 0, NULL }
+};
+
+static const ber_choice_t PrivateDomainIdentifier_choice[] = {
+  {   0, &hf_p1_numeric_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_private_domain_identifier },
+  {   1, &hf_p1_printable_private_domain_identifier, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_private_domain_identifier },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PrivateDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 730 "p1.cnf"
+
+       if(doing_address)
+               g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
+
+         offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 PrivateDomainIdentifier_choice, hf_index, ett_p1_PrivateDomainIdentifier,
+                                 NULL);
+
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t GlobalDomainIdentifier_U_sequence[] = {
+  { &hf_p1_country_name     , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
+  { &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
+  { &hf_p1_private_domain_identifier, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainIdentifier },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_GlobalDomainIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   GlobalDomainIdentifier_U_sequence, hf_index, ett_p1_GlobalDomainIdentifier_U);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1084 "p1.cnf"
+       
+       oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
+       address_item = tree;
+
+         offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 3, TRUE, dissect_p1_GlobalDomainIdentifier_U);
+
+
+       if(*oraddress) {
+               proto_item_append_text(address_item, " (%s/", oraddress);
+
+               if(doing_subjectid  && check_col(actx->pinfo->cinfo, COL_INFO)) {
+                       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%s/", oraddress);
+               }
+       }
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1103 "p1.cnf"
+       tvbuff_t        *id = NULL;
+       
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_local_id_length, hf_index, &id);
+
+       
+       if(id) {
+         if(doing_address) 
+                 proto_item_append_text(address_item, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
+
+          if(doing_subjectid  && check_col(actx->pinfo->cinfo, COL_INFO)) 
+               col_append_fstr(actx->pinfo->cinfo, COL_INFO, " $ %s)", tvb_format_text(id, 0, tvb_length(id)));
+       }
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t MTSIdentifier_U_sequence[] = {
+  { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
+  { &hf_p1_local_identifier , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_LocalIdentifier },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MTSIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   MTSIdentifier_U_sequence, hf_index, ett_p1_MTSIdentifier_U);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1116 "p1.cnf"
+
+       doing_address = TRUE;
+
+       if(hf_index == hf_p1_subject_identifier)
+               doing_subjectid = TRUE;
+
+         offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 4, TRUE, dissect_p1_MTSIdentifier_U);
+
+
+       doing_address = FALSE;
+
+       if(hf_index == hf_p1_subject_identifier)
+               doing_subjectid = FALSE;
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_MessageIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1078 "p1.cnf"
+
+       address_item = NULL;
+
+         offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 699 "p1.cnf"
+       tvbuff_t        *string = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_x121_address_length, hf_index, &string);
+
+
+       if(doing_address && string) {
+               g_strlcat(oraddress, "/X121=", MAX_ORA_STR_LEN);
+               g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+       }
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_NetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_X121Address(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 713 "p1.cnf"
+       tvbuff_t        *string = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_terminal_id_length, hf_index, &string);
+
+
+       if(doing_address && string) {
+               g_strlcat(oraddress, "/UA-ID=", MAX_ORA_STR_LEN);
+               g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_numeric_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 879 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_domain_name_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 831 "p1.cnf"
+       tvbuff_t        *nstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_domain_name_length, hf_index, &nstring);
+
+
+       if(doing_address && nstring)
+               g_strlcat(oraddress, tvb_format_text(nstring, 0, tvb_length(nstring)), MAX_ORA_STR_LEN);
+
+
+
+  return offset;
+}
+
+
+static const value_string p1_PrivateDomainName_vals[] = {
+  {   0, "numeric" },
+  {   1, "printable" },
+  { 0, NULL }
+};
+
+static const ber_choice_t PrivateDomainName_choice[] = {
+  {   0, &hf_p1_numeric_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_NumericString, BER_FLAGS_NOOWNTAG, dissect_p1_T_numeric_private_domain_name },
+  {   1, &hf_p1_printable_private_domain_name, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_private_domain_name },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 723 "p1.cnf"
+
+       if(doing_address)
+               g_strlcat(oraddress, "/P=", MAX_ORA_STR_LEN);
+
+         offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 PrivateDomainName_choice, hf_index, ett_p1_PrivateDomainName,
+                                 NULL);
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_OrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 740 "p1.cnf"
+       tvbuff_t        *string = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_organization_name_length, hf_index, &string);
+
+
+       if(doing_address && string) {
+               g_strlcat(oraddress, "/O=", MAX_ORA_STR_LEN);
+               g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_NumericUserIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_numeric_user_id_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 943 "p1.cnf"
+       tvbuff_t        *pstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_surname_length, hf_index, &pstring);
+
+
+       if(doing_address && pstring) {
+           g_strlcat(oraddress, "/S=", MAX_ORA_STR_LEN);
+         g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 953 "p1.cnf"
+       tvbuff_t        *pstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_given_name_length, hf_index, &pstring);
+
+
+       if(doing_address && pstring) {
+           g_strlcat(oraddress, "/G=", MAX_ORA_STR_LEN);
+         g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 963 "p1.cnf"
+       tvbuff_t        *pstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_initials_length, hf_index, &pstring);
+
+
+       if(doing_address && pstring) {
+           g_strlcat(oraddress, "/I=", MAX_ORA_STR_LEN);
+         g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_generation_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 973 "p1.cnf"
+       tvbuff_t        *pstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_generation_qualifier_length, hf_index, &pstring);
+
+
+       if(doing_address && pstring) {
+           g_strlcat(oraddress, "/Q=", MAX_ORA_STR_LEN);
+         g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+       }
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t PersonalName_set[] = {
+  { &hf_p1_printable_surname, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_T_printable_surname },
+  { &hf_p1_printable_given_name, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_given_name },
+  { &hf_p1_printable_initials, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_initials },
+  { &hf_p1_printable_generation_qualifier, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_T_printable_generation_qualifier },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              PersonalName_set, hf_index, ett_p1_PersonalName);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_OrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 766 "p1.cnf"
+       tvbuff_t        *string = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_organizational_unit_name_length, hf_index, &string);
+
+
+       if(doing_address && string) {
+               g_strlcat(oraddress, "/OU=", MAX_ORA_STR_LEN);
+               g_strlcat(oraddress, tvb_format_text(string, 0, tvb_length(string)), MAX_ORA_STR_LEN);
+       }
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t OrganizationalUnitNames_sequence_of[1] = {
+  { &hf_p1_OrganizationalUnitNames_item, BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_OrganizationalUnitName },
+};
+
+static int
+dissect_p1_OrganizationalUnitNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_organizational_units, OrganizationalUnitNames_sequence_of, hf_index, ett_p1_OrganizationalUnitNames);
+
+  return offset;
+}
+
+
+static const ber_sequence_t BuiltInStandardAttributes_sequence[] = {
+  { &hf_p1_country_name     , BER_CLASS_APP, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
+  { &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
+  { &hf_p1_network_address  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NetworkAddress },
+  { &hf_p1_terminal_identifier, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TerminalIdentifier },
+  { &hf_p1_private_domain_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainName },
+  { &hf_p1_organization_name, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OrganizationName },
+  { &hf_p1_numeric_user_identifier, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NumericUserIdentifier },
+  { &hf_p1_personal_name    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_PersonalName },
+  { &hf_p1_organizational_unit_names, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OrganizationalUnitNames },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1140 "p1.cnf"
+
+       address_item = tree;    
+
+         offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   BuiltInStandardAttributes_sequence, hf_index, ett_p1_BuiltInStandardAttributes);
+
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1023 "p1.cnf"
+       tvbuff_t        *pstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_domain_defined_attribute_type_length, hf_index, &pstring);
+
+
+       if(doing_address && pstring) {
+           g_strlcat(oraddress, "/DD.", MAX_ORA_STR_LEN);
+           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+           g_strlcat(ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+       }
+       
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_printable_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1034 "p1.cnf"
+       tvbuff_t        *pstring = NULL;
+
+         offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_domain_defined_attribute_value_length, hf_index, &pstring);
+
+
+       if(doing_address && pstring) {
+           g_strlcat(oraddress, "=", MAX_ORA_STR_LEN);
+           g_strlcat(oraddress, tvb_format_text(pstring, 0, tvb_length(pstring)), MAX_ORA_STR_LEN);
+           if (*ddatype) {
+              proto_item_append_text (tree, " (%s=%s)", ddatype, tvb_format_text(pstring, 0, tvb_length(pstring)));
+           }
+       }
+       
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = {
+  { &hf_p1_printable_type   , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_type },
+  { &hf_p1_printable_value  , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_p1_T_printable_value },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_BuiltInDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1047 "p1.cnf"
+        ddatype = ep_alloc(MAX_ORA_STR_LEN); ddatype[0] = '\0';
+
+         offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   BuiltInDomainDefinedAttribute_sequence, hf_index, ett_p1_BuiltInDomainDefinedAttribute);
+
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t BuiltInDomainDefinedAttributes_sequence_of[1] = {
+  { &hf_p1_BuiltInDomainDefinedAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttribute },
+};
+
+static int
+dissect_p1_BuiltInDomainDefinedAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_domain_defined_attributes, BuiltInDomainDefinedAttributes_sequence_of, hf_index, ett_p1_BuiltInDomainDefinedAttributes);
+
+  return offset;
+}
+
+
+static const value_string p1_ExtensionAttributeType_vals[] = {
+  {   1, "common-name" },
+  {   2, "teletex-common-name" },
+  {   3, "teletex-organization-name" },
+  {   4, "teletex-personal-name" },
+  {   5, "teletex-organizational-unit-names" },
+  {   6, "teletex-domain-defined-attributes" },
+  {   7, "pds-name" },
+  {   8, "physical-delivery-country-name" },
+  {   9, "postal-code" },
+  {  10, "physical-delivery-office-name" },
+  {  11, "physical-delivery-office-number" },
+  {  12, "extension-OR-address-components" },
+  {  13, "physical-delivery-personal-name" },
+  {  14, "physical-delivery-organization-name" },
+  {  15, "extension-physical-delivery-address-components" },
+  {  16, "unformatted-postal-address" },
+  {  17, "street-address" },
+  {  18, "post-office-box-address" },
+  {  19, "poste-restante-address" },
+  {  20, "unique-postal-name" },
+  {  21, "local-postal-attributes" },
+  {  22, "extended-network-address" },
+  {  23, "terminal-type" },
+  {  24, "universal-common-name" },
+  {  25, "universal-organization-name" },
+  {  26, "universal-personal-name" },
+  {  27, "universal-organizational-unit-names" },
+  {  28, "universal-domain-defined-attributes" },
+  {  29, "universal-physical-delivery-office-name" },
+  {  30, "universal-physical-delivery-office-number" },
+  {  31, "universal-extension-OR-address-components" },
+  {  32, "universal-physical-delivery-personal-name" },
+  {  33, "universal-physical-delivery-organization-name" },
+  {  34, "universal-extension-physical-delivery-address-components" },
+  {  35, "universal-unformatted-postal-address" },
+  {  36, "universal-street-address" },
+  {  37, "universal-post-office-box-address" },
+  {  38, "universal-poste-restante-address" },
+  {  39, "universal-unique-postal-name" },
+  {  40, "universal-local-postal-attributes" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_ExtensionAttributeType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                &extension_id);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_extension_attribute_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 575 "p1.cnf"
+
+       proto_item_append_text(tree, " (%s)", val_to_str(extension_id, p1_ExtensionAttributeType_vals, "extension-attribute-type %d")); 
+       if (dissector_try_uint(p1_extension_attribute_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+               offset =tvb_length(tvb);
+       } else {
+               proto_item *item = NULL;
+               proto_tree *next_tree = NULL;
+
+               item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
+                       "Dissector for extension-attribute-type %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
+               next_tree = proto_item_add_subtree(item, ett_p1_unknown_extension_attribute_type);
+               offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+               expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown extension-attribute-type");
+       }
+
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t ExtensionAttribute_sequence[] = {
+  { &hf_p1_extension_attribute_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ExtensionAttributeType },
+  { &hf_p1_extension_attribute_value, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_T_extension_attribute_value },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ExtensionAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   ExtensionAttribute_sequence, hf_index, ett_p1_ExtensionAttribute);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ExtensionAttributes_set_of[1] = {
+  { &hf_p1_ExtensionAttributes_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttribute },
+};
+
+static int
+dissect_p1_ExtensionAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
+                                             1, ub_extension_attributes, ExtensionAttributes_set_of, hf_index, ett_p1_ExtensionAttributes);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ORName_U_sequence[] = {
+  { &hf_p1_built_in_standard_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInStandardAttributes },
+  { &hf_p1_built_in_domain_defined_attributes, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInDomainDefinedAttributes },
+  { &hf_p1_extension_attributes, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionAttributes },
+  { &hf_p1_directory_name   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x509if_Name },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ORName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   ORName_U_sequence, hf_index, ett_p1_ORName_U);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ORName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1065 "p1.cnf"
+       
+       oraddress = ep_alloc(MAX_ORA_STR_LEN); oraddress[0] = '\0';     
+       address_item = NULL;
+       doing_address = TRUE;
+
+         offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 0, TRUE, dissect_p1_ORName_U);
+
+
+       if(*oraddress && address_item)
+               proto_item_append_text(address_item, " (%s/)", oraddress);
+
+       doing_address = FALSE;
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ORAddressAndOptionalDirectoryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_MTAOriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const asn_namedbit BuiltInEncodedInformationTypes_bits[] = {
+  {  0, &hf_p1_BuiltInEncodedInformationTypes_unknown, -1, -1, "unknown", NULL },
+  {  2, &hf_p1_BuiltInEncodedInformationTypes_ia5_text, -1, -1, "ia5-text", NULL },
+  {  3, &hf_p1_BuiltInEncodedInformationTypes_g3_facsimile, -1, -1, "g3-facsimile", NULL },
+  {  4, &hf_p1_BuiltInEncodedInformationTypes_g4_class_1, -1, -1, "g4-class-1", NULL },
+  {  5, &hf_p1_BuiltInEncodedInformationTypes_teletex, -1, -1, "teletex", NULL },
+  {  6, &hf_p1_BuiltInEncodedInformationTypes_videotex, -1, -1, "videotex", NULL },
+  {  7, &hf_p1_BuiltInEncodedInformationTypes_voice, -1, -1, "voice", NULL },
+  {  8, &hf_p1_BuiltInEncodedInformationTypes_sfd, -1, -1, "sfd", NULL },
+  {  9, &hf_p1_BuiltInEncodedInformationTypes_mixed_mode, -1, -1, "mixed-mode", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_BuiltInEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_built_in_encoded_information_types, BuiltInEncodedInformationTypes_bits, hf_index, ett_p1_BuiltInEncodedInformationTypes,
+                                                NULL);
+
+  return offset;
+}
+
+
+static const asn_namedbit G3FacsimileNonBasicParameters_bits[] = {
+  {  8, &hf_p1_G3FacsimileNonBasicParameters_two_dimensional, -1, -1, "two-dimensional", NULL },
+  {  9, &hf_p1_G3FacsimileNonBasicParameters_fine_resolution, -1, -1, "fine-resolution", NULL },
+  { 20, &hf_p1_G3FacsimileNonBasicParameters_unlimited_length, -1, -1, "unlimited-length", NULL },
+  { 21, &hf_p1_G3FacsimileNonBasicParameters_b4_length, -1, -1, "b4-length", NULL },
+  { 22, &hf_p1_G3FacsimileNonBasicParameters_a3_width, -1, -1, "a3-width", NULL },
+  { 23, &hf_p1_G3FacsimileNonBasicParameters_b4_width, -1, -1, "b4-width", NULL },
+  { 25, &hf_p1_G3FacsimileNonBasicParameters_t6_coding, -1, -1, "t6-coding", NULL },
+  { 30, &hf_p1_G3FacsimileNonBasicParameters_uncompressed, -1, -1, "uncompressed", NULL },
+  { 37, &hf_p1_G3FacsimileNonBasicParameters_width_middle_864_of_1728, -1, -1, "width-middle-864-of-1728", NULL },
+  { 38, &hf_p1_G3FacsimileNonBasicParameters_width_middle_1216_of_1728, -1, -1, "width-middle-1216-of-1728", NULL },
+  { 44, &hf_p1_G3FacsimileNonBasicParameters_resolution_type, -1, -1, "resolution-type", NULL },
+  { 45, &hf_p1_G3FacsimileNonBasicParameters_resolution_400x400, -1, -1, "resolution-400x400", NULL },
+  { 46, &hf_p1_G3FacsimileNonBasicParameters_resolution_300x300, -1, -1, "resolution-300x300", NULL },
+  { 47, &hf_p1_G3FacsimileNonBasicParameters_resolution_8x15, -1, -1, "resolution-8x15", NULL },
+  { 49, &hf_p1_G3FacsimileNonBasicParameters_edi, -1, -1, "edi", NULL },
+  { 50, &hf_p1_G3FacsimileNonBasicParameters_dtm, -1, -1, "dtm", NULL },
+  { 51, &hf_p1_G3FacsimileNonBasicParameters_bft, -1, -1, "bft", NULL },
+  { 58, &hf_p1_G3FacsimileNonBasicParameters_mixed_mode, -1, -1, "mixed-mode", NULL },
+  { 60, &hf_p1_G3FacsimileNonBasicParameters_character_mode, -1, -1, "character-mode", NULL },
+  { 65, &hf_p1_G3FacsimileNonBasicParameters_twelve_bits, -1, -1, "twelve-bits", NULL },
+  { 66, &hf_p1_G3FacsimileNonBasicParameters_preferred_huffmann, -1, -1, "preferred-huffmann", NULL },
+  { 67, &hf_p1_G3FacsimileNonBasicParameters_full_colour, -1, -1, "full-colour", NULL },
+  { 68, &hf_p1_G3FacsimileNonBasicParameters_jpeg, -1, -1, "jpeg", NULL },
+  { 71, &hf_p1_G3FacsimileNonBasicParameters_processable_mode_26, -1, -1, "processable-mode-26", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+int
+dissect_p1_G3FacsimileNonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                    G3FacsimileNonBasicParameters_bits, hf_index, ett_p1_G3FacsimileNonBasicParameters,
+                                    NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_TeletexString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString,
+                                            actx, tree, tvb, offset, hf_index,
+                                            NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                       NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t TeletexNonBasicParameters_set[] = {
+  { &hf_p1_graphic_character_sets, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
+  { &hf_p1_control_character_sets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
+  { &hf_p1_page_formats     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OCTET_STRING },
+  { &hf_p1_miscellaneous_terminal_capabilities, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexString },
+  { &hf_p1_private_use      , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OCTET_STRING },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_TeletexNonBasicParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              TeletexNonBasicParameters_set, hf_index, ett_p1_TeletexNonBasicParameters);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ExtendedEncodedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ExtendedEncodedInformationTypes_set_of[1] = {
+  { &hf_p1_ExtendedEncodedInformationTypes_item, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedEncodedInformationType },
+};
+
+static int
+dissect_p1_ExtendedEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
+                                             1, ub_encoded_information_types, ExtendedEncodedInformationTypes_set_of, hf_index, ett_p1_ExtendedEncodedInformationTypes);
+
+  return offset;
+}
+
+
+static const ber_sequence_t EncodedInformationTypes_U_set[] = {
+  { &hf_p1_built_in_encoded_information_types, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_BuiltInEncodedInformationTypes },
+  { &hf_p1_g3_facsimile     , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_G3FacsimileNonBasicParameters },
+  { &hf_p1_teletex          , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TeletexNonBasicParameters },
+  { &hf_p1_extended_encoded_information_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_EncodedInformationTypes_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              EncodedInformationTypes_U_set, hf_index, ett_p1_EncodedInformationTypes_U);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_EncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 5, TRUE, dissect_p1_EncodedInformationTypes_U);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_OriginalEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const value_string p1_BuiltInContentType_U_vals[] = {
+  {   0, "unidentified" },
+  {   1, "external" },
+  {   2, "interpersonal-messaging-1984" },
+  {  22, "interpersonal-messaging-1988" },
+  {  35, "edi-messaging" },
+  {  40, "voice-messaging" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_BuiltInContentType_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 635 "p1.cnf"
+  static guint32       ict = -1;       
+
+    offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_built_in_content_type, hf_index, &ict);
+
+
+  /* convert integer content type to oid for dispatch when the content is found */
+  switch(ict) {
+       case 2:
+       content_type_id = ep_strdup("2.6.1.10.0");
+       break;
+       case 22:
+       content_type_id = ep_strdup("2.6.1.10.1");
+       break;
+       default:
+       content_type_id = NULL;
+       break;
+       }
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_BuiltInContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 6, TRUE, dissect_p1_BuiltInContentType_U);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 620 "p1.cnf"
+       const char *name = NULL;
+
+         offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &content_type_id);
+
+
+       if(content_type_id) {
+         name = oid_resolved_from_string(content_type_id);
+
+         if(!name) name = content_type_id;
+
+         proto_item_append_text(tree, " (%s)", name);
+       }
+
+
+
+  return offset;
+}
+
+
+const value_string p1_ContentType_vals[] = {
+  {   0, "built-in" },
+  {   1, "extended" },
+  { 0, NULL }
+};
+
+static const ber_choice_t ContentType_choice[] = {
+  {   0, &hf_p1_built_in         , BER_CLASS_APP, 6, BER_FLAGS_NOOWNTAG, dissect_p1_BuiltInContentType },
+  {   1, &hf_p1_extended         , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedContentType },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 ContentType_choice, hf_index, ett_p1_ContentType,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PrintableString_SIZE_1_ub_content_id_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_content_id_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ContentIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 10, TRUE, dissect_p1_PrintableString_SIZE_1_ub_content_id_length);
+
+  return offset;
+}
+
+
+static const value_string p1_Priority_U_vals[] = {
+  {   0, "normal" },
+  {   1, "non-urgent" },
+  {   2, "urgent" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_Priority_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                  NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 7, TRUE, dissect_p1_Priority_U);
+
+  return offset;
+}
+
+
+static const asn_namedbit PerMessageIndicators_U_bits[] = {
+  {  0, &hf_p1_PerMessageIndicators_U_disclosure_of_other_recipients, -1, -1, "disclosure-of-other-recipients", NULL },
+  {  1, &hf_p1_PerMessageIndicators_U_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
+  {  2, &hf_p1_PerMessageIndicators_U_alternate_recipient_allowed, -1, -1, "alternate-recipient-allowed", NULL },
+  {  3, &hf_p1_PerMessageIndicators_U_content_return_request, -1, -1, "content-return-request", NULL },
+  {  4, &hf_p1_PerMessageIndicators_U_reserved, -1, -1, "reserved", NULL },
+  {  5, &hf_p1_PerMessageIndicators_U_bit_5, -1, -1, "bit-5", NULL },
+  {  6, &hf_p1_PerMessageIndicators_U_bit_6, -1, -1, "bit-6", NULL },
+  {  7, &hf_p1_PerMessageIndicators_U_service_message, -1, -1, "service-message", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_PerMessageIndicators_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_bit_options, PerMessageIndicators_U_bits, hf_index, ett_p1_PerMessageIndicators_U,
+                                                NULL);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_PerMessageIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 8, TRUE, dissect_p1_PerMessageIndicators_U);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1183 "p1.cnf"
+       tvbuff_t *arrival = NULL;
+
+         offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+
+       if(arrival && doing_address)
+               proto_item_append_text(address_item, " %s", tvb_format_text(arrival, 0, tvb_length(arrival)));
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_DeferredDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t T_private_domain_sequence[] = {
+  { &hf_p1_administration_domain_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_AdministrationDomainName },
+  { &hf_p1_private_domain_identifier, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_PrivateDomainIdentifier },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_T_private_domain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   T_private_domain_sequence, hf_index, ett_p1_T_private_domain);
+
+  return offset;
+}
+
+
+static const value_string p1_T_bilateral_domain_vals[] = {
+  {   0, "administration-domain-name" },
+  {   1, "private-domain" },
+  { 0, NULL }
+};
+
+static const ber_choice_t T_bilateral_domain_choice[] = {
+  {   0, &hf_p1_administration_domain_name, BER_CLASS_APP, 2, BER_FLAGS_NOOWNTAG, dissect_p1_AdministrationDomainName },
+  {   1, &hf_p1_private_domain   , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_T_private_domain },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_T_bilateral_domain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 T_bilateral_domain_choice, hf_index, ett_p1_T_bilateral_domain,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_bilateral_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1251 "p1.cnf"
+       proto_item *item = NULL;
+       int         loffset = 0;
+       guint32     len = 0;
+
+       /* work out the length */
+       loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
+       (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
+
+       /* create some structure so we can tell what this unknown ASN.1 represents */   
+       item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
+       tree = proto_item_add_subtree(item, ett_p1_bilateral_information);
+
+       offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t PerDomainBilateralInformation_sequence[] = {
+  { &hf_p1_country_name     , BER_CLASS_APP, 1, BER_FLAGS_NOOWNTAG, dissect_p1_CountryName },
+  { &hf_p1_bilateral_domain , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_bilateral_domain },
+  { &hf_p1_bilateral_information, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_p1_T_bilateral_information },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PerDomainBilateralInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   PerDomainBilateralInformation_sequence, hf_index, ett_p1_PerDomainBilateralInformation);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of[1] = {
+  { &hf_p1_per_domain_bilateral_information_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_PerDomainBilateralInformation },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ArrivalTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const value_string p1_RoutingAction_vals[] = {
+  {   0, "relayed" },
+  {   1, "rerouted" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1194 "p1.cnf"
+       int action = 0;
+
+         offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                  &action);
+
+
+       proto_item_append_text(address_item, " %s", val_to_str(action, p1_RoutingAction_vals, "action(%d)"));
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_DeferredTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ConvertedEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_EncodedInformationTypes(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const asn_namedbit OtherActions_bits[] = {
+  {  0, &hf_p1_OtherActions_redirected, -1, -1, "redirected", NULL },
+  {  1, &hf_p1_OtherActions_dl_operation, -1, -1, "dl-operation", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_OtherActions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_bit_options, OtherActions_bits, hf_index, ett_p1_OtherActions,
+                                                NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t DomainSuppliedInformation_set[] = {
+  { &hf_p1_arrival_time     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
+  { &hf_p1_routing_action   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RoutingAction },
+  { &hf_p1_attempted_domain , BER_CLASS_APP, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
+  { &hf_p1_deferred_time    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredTime },
+  { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
+  { &hf_p1_other_actions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherActions },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1162 "p1.cnf"
+
+       doing_address = FALSE;
+
+         offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              DomainSuppliedInformation_set, hf_index, ett_p1_DomainSuppliedInformation);
+
+
+       doing_address = TRUE;
+       proto_item_append_text(tree, ")");
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t TraceInformationElement_sequence[] = {
+  { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
+  { &hf_p1_domain_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_DomainSuppliedInformation },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1146 "p1.cnf"
+
+       doing_address = TRUE;
+
+         offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   TraceInformationElement_sequence, hf_index, ett_p1_TraceInformationElement);
+
+
+       doing_address = FALSE;
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of[1] = {
+  { &hf_p1__untag_item      , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformationElement },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_transfers, SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_TraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
+                                      hf_index, BER_CLASS_APP, 9, TRUE, dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_TraceInformationElement);
+
+  return offset;
+}
+
+
+static const value_string p1_StandardExtension_vals[] = {
+  {   1, "recipient-reassignment-prohibited" },
+  {   2, "originator-requested-alternate-recipient" },
+  {   3, "dl-expansion-prohibited" },
+  {   4, "conversion-with-loss-prohibited" },
+  {   5, "latest-delivery-time" },
+  {   6, "requested-delivery-method" },
+  {   7, "physical-forwarding-prohibited" },
+  {   8, "physical-forwarding-address-request" },
+  {   9, "physical-delivery-modes" },
+  {  10, "registered-mail-type" },
+  {  11, "recipient-number-for-advice" },
+  {  12, "physical-rendition-attributes" },
+  {  13, "originator-return-address" },
+  {  14, "physical-delivery-report-request" },
+  {  15, "originator-certificate" },
+  {  16, "message-token" },
+  {  17, "content-confidentiality-algorithm-identifier" },
+  {  18, "content-integrity-check" },
+  {  19, "message-origin-authentication-check" },
+  {  20, "message-security-label" },
+  {  21, "proof-of-submission-request" },
+  {  22, "proof-of-delivery-request" },
+  {  23, "content-correlator" },
+  {  24, "probe-origin-authentication-check" },
+  {  25, "redirection-history" },
+  {  26, "dl-expansion-history" },
+  {  27, "physical-forwarding-address" },
+  {  28, "recipient-certificate" },
+  {  29, "proof-of-delivery" },
+  {  30, "originator-and-DL-expansion-history" },
+  {  31, "reporting-DL-name" },
+  {  32, "reporting-MTA-certificate" },
+  {  33, "report-origin-authentication-check" },
+  {  34, "originating-MTA-certificate" },
+  {  35, "proof-of-submission" },
+  {  36, "forwarding-request" },
+  {  37, "trace-information" },
+  {  38, "internal-trace-information" },
+  {  39, "reporting-MTA-name" },
+  {  40, "multiple-originator-certificates" },
+  {  41, "blind-copy-recipients" },
+  {  42, "dl-exempted-recipients" },
+  {  43, "body-part-encryption-token" },
+  {  44, "forwarded-content-token" },
+  {  45, "certificate-selectors" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_StandardExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                &extension_id);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_T_private_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 612 "p1.cnf"
+
+         offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &object_identifier_id);
+
+       extension_id = -1;
+
+
+
+  return offset;
+}
+
+
+static const value_string p1_ExtensionType_vals[] = {
+  {   0, "standard-extension" },
+  {   3, "private-extension" },
+  { 0, NULL }
+};
+
+static const ber_choice_t ExtensionType_choice[] = {
+  {   0, &hf_p1_standard_extension, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_StandardExtension },
+  {   3, &hf_p1_private_extension, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_T_private_extension },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ExtensionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 ExtensionType_choice, hf_index, ett_p1_ExtensionType,
+                                 NULL);
+
+  return offset;
+}
+
+
+static const asn_namedbit Criticality_bits[] = {
+  {  0, &hf_p1_Criticality_for_submission, -1, -1, "for-submission", NULL },
+  {  1, &hf_p1_Criticality_for_transfer, -1, -1, "for-transfer", NULL },
+  {  2, &hf_p1_Criticality_for_delivery, -1, -1, "for-delivery", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_Criticality(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_bit_options, Criticality_bits, hf_index, ett_p1_Criticality,
+                                                NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ExtensionValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 534 "p1.cnf"
+       const char *name;
+
+       if(extension_id != -1) {
+               proto_item_append_text(tree, " (%s)", val_to_str(extension_id, p1_StandardExtension_vals, "standard-extension %d")); 
+               if (dissector_try_uint(p1_extension_dissector_table, extension_id, tvb, actx->pinfo, tree)) {
+                       offset = tvb_length(tvb);
+               } else {
+                       proto_item *item = NULL;
+                       proto_tree *next_tree = NULL;
+
+                       item = proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), 
+                               "Dissector for standard-extension %d not implemented.  Contact Wireshark developers if you want this supported", extension_id);
+                       next_tree = proto_item_add_subtree(item, ett_p1_unknown_standard_extension);
+                       offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree);
+                       expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown standard-extension");
+               }
+       } else if (object_identifier_id) {
+               offset = call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, tree);
+               name = oid_resolved_from_string(object_identifier_id);
+               proto_item_append_text(tree, " (%s)", name ? name : object_identifier_id); 
+       }
+               
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t ExtensionField_sequence[] = {
+  { &hf_p1_extension_type   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ExtensionType },
+  { &hf_p1_criticality      , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Criticality },
+  { &hf_p1_extension_value  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtensionValue },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   ExtensionField_sequence, hf_index, ett_p1_ExtensionField);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SET_OF_ExtensionField_set_of[1] = {
+  { &hf_p1_extensions_item  , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionField },
+};
+
+static int
+dissect_p1_SET_OF_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
+                                 SET_OF_ExtensionField_set_of, hf_index, ett_p1_SET_OF_ExtensionField);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_MTARecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_OriginallySpecifiedRecipientNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            1U, ub_recipients, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const asn_namedbit PerRecipientIndicators_bits[] = {
+  {  0, &hf_p1_PerRecipientIndicators_responsibility, -1, -1, "responsibility", NULL },
+  {  1, &hf_p1_PerRecipientIndicators_originating_MTA_report, -1, -1, "originating-MTA-report", NULL },
+  {  2, &hf_p1_PerRecipientIndicators_originating_MTA_non_delivery_report, -1, -1, "originating-MTA-non-delivery-report", NULL },
+  {  3, &hf_p1_PerRecipientIndicators_originator_report, -1, -1, "originator-report", NULL },
+  {  4, &hf_p1_PerRecipientIndicators_originator_non_delivery_report, -1, -1, "originator-non-delivery-report", NULL },
+  {  5, &hf_p1_PerRecipientIndicators_reserved_5, -1, -1, "reserved-5", NULL },
+  {  6, &hf_p1_PerRecipientIndicators_reserved_6, -1, -1, "reserved-6", NULL },
+  {  7, &hf_p1_PerRecipientIndicators_reserved_7, -1, -1, "reserved-7", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_PerRecipientIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                8, ub_bit_options, PerRecipientIndicators_bits, hf_index, ett_p1_PerRecipientIndicators,
+                                                NULL);
+
+  return offset;
+}
+
+
+static const value_string p1_ExplicitConversion_vals[] = {
+  {   0, "ia5-text-to-teletex" },
+  {   8, "ia5-text-to-g3-facsimile" },
+  {   9, "ia5-text-to-g4-class-1" },
+  {  10, "ia5-text-to-videotex" },
+  {  11, "teletex-to-ia5-text" },
+  {  12, "teletex-to-g3-facsimile" },
+  {  13, "teletex-to-g4-class-1" },
+  {  14, "teletex-to-videotex" },
+  {  16, "videotex-to-ia5-text" },
+  {  17, "videotex-to-teletex" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_ExplicitConversion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_integer_options, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t PerRecipientMessageTransferFields_set[] = {
+  { &hf_p1_recipient_name   , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTARecipientName },
+  { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
+  { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
+  { &hf_p1_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
+  { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PerRecipientMessageTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              PerRecipientMessageTransferFields_set, hf_index, ett_p1_PerRecipientMessageTransferFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of[1] = {
+  { &hf_p1_per_recipient_message_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientMessageTransferFields },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MessageTransferEnvelope_set[] = {
+  { &hf_p1_message_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageIdentifier },
+  { &hf_p1_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTAOriginatorName },
+  { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
+  { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_priority         , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
+  { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
+  { &hf_p1_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredDeliveryTime },
+  { &hf_p1_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
+  { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
+  { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { &hf_p1_per_recipient_message_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageTransferFields },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MessageTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MessageTransferEnvelope_set, hf_index, ett_p1_MessageTransferEnvelope);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_Content(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 653 "p1.cnf"
+  tvbuff_t *next_tvb;
+
+  /* we can do this now constructed octet strings are supported */
+  offset = dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &next_tvb);
+  proto_item_set_text(actx->created_item, "content (%u bytes)", tvb_length (next_tvb));
+
+  if (next_tvb) {
+    if (content_type_id) {
+      (void) call_ber_oid_callback(content_type_id, next_tvb, 0, actx->pinfo, top_tree ? top_tree : tree);
+    } else {
+      proto_item *item = NULL;
+      proto_tree *next_tree = NULL;
+
+      item = proto_tree_add_text(top_tree ? top_tree : tree, next_tvb, 0, tvb_length_remaining(tvb, offset), "P1 Unknown Content (unknown built-in content-type)");
+      expert_add_info_format(actx->pinfo, item, PI_UNDECODED, PI_WARN, "Unknown built-in content-type");
+      if (item) {
+        next_tree=proto_item_add_subtree(item, ett_p1_content_unknown);
+      }
+      dissect_unknown_ber(actx->pinfo, next_tvb, 0, next_tree);
+    }
+  }
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t Message_sequence[] = {
+  { &hf_p1_message_envelope , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MessageTransferEnvelope },
+  { &hf_p1_content          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_Message(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   Message_sequence, hf_index, ett_p1_Message);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_content_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t PerRecipientProbeTransferFields_set[] = {
+  { &hf_p1_recipient_name   , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTARecipientName },
+  { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
+  { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
+  { &hf_p1_explicit_conversion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
+  { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              PerRecipientProbeTransferFields_set, hf_index, ett_p1_PerRecipientProbeTransferFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of[1] = {
+  { &hf_p1_per_recipient_probe_transfer_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientProbeTransferFields },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ProbeTransferEnvelope_set[] = {
+  { &hf_p1_probe_identifier , BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ProbeIdentifier },
+  { &hf_p1_mta_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_MTAOriginatorName },
+  { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
+  { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_content_length   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
+  { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
+  { &hf_p1_per_domain_bilateral_information, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_transfers_OF_PerDomainBilateralInformation },
+  { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
+  { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { &hf_p1_per_recipient_probe_transfer_fields, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeTransferFields },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ProbeTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ProbeTransferEnvelope_set, hf_index, ett_p1_ProbeTransferEnvelope);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_Probe(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ProbeTransferEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ReportIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ReportDestinationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ReportTransferEnvelope_set[] = {
+  { &hf_p1_report_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ReportIdentifier },
+  { &hf_p1_report_destination_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ReportDestinationName },
+  { &hf_p1_trace_information, BER_CLASS_APP, 9, BER_FLAGS_NOOWNTAG, dissect_p1_TraceInformation },
+  { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ReportTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ReportTransferEnvelope_set, hf_index, ett_p1_ReportTransferEnvelope);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_MessageOrProbeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SubjectIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MessageOrProbeIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SubjectIntermediateTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_TraceInformation(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_AdditionalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 516 "p1.cnf"
+   proto_item *item = NULL;
+   int         loffset = 0;
+   guint32     len = 0;
+
+   /* work out the length */
+   loffset = dissect_ber_identifier(actx->pinfo, tree, tvb, offset, NULL, NULL, NULL);
+   (void) dissect_ber_length(actx->pinfo, tree, tvb, loffset, &len, NULL);
+
+   item = proto_tree_add_item(tree, hf_index, tvb, offset, len, FALSE);
+   tree = proto_item_add_subtree(item, ett_p1_additional_information);
+   proto_item_append_text(tree, " (The use of this field is \"strongly deprecated\".)"); 
+
+   offset = dissect_unknown_ber(actx->pinfo, tvb, offset, tree);
+
+
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_MTAActualRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_MessageDeliveryTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const value_string p1_TypeOfMTSUser_vals[] = {
+  {   0, "public" },
+  {   1, "private" },
+  {   2, "ms" },
+  {   3, "dl" },
+  {   4, "pdau" },
+  {   5, "physical-recipient" },
+  {   6, "other" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_TypeOfMTSUser(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_mts_user_types, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t DeliveryReport_set[] = {
+  { &hf_p1_message_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MessageDeliveryTime },
+  { &hf_p1_type_of_MTS_user , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_TypeOfMTSUser },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_DeliveryReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              DeliveryReport_set, hf_index, ett_p1_DeliveryReport);
+
+  return offset;
+}
+
+
+const value_string p1_NonDeliveryReasonCode_vals[] = {
+  {   0, "transfer-failure" },
+  {   1, "unable-to-transfer" },
+  {   2, "conversion-not-performed" },
+  {   3, "physical-rendition-not-performed" },
+  {   4, "physical-delivery-not-performed" },
+  {   5, "restricted-delivery" },
+  {   6, "directory-operation-unsuccessful" },
+  {   7, "deferred-delivery-not-performed" },
+  {   8, "transfer-failure-for-security-reason" },
+  { 0, NULL }
+};
+
+
+int
+dissect_p1_NonDeliveryReasonCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_reason_codes, hf_index, NULL);
+
+  return offset;
+}
+
+
+const value_string p1_NonDeliveryDiagnosticCode_vals[] = {
+  {   0, "unrecognised-OR-name" },
+  {   1, "ambiguous-OR-name" },
+  {   2, "mts-congestion" },
+  {   3, "loop-detected" },
+  {   4, "recipient-unavailable" },
+  {   5, "maximum-time-expired" },
+  {   6, "encoded-information-types-unsupported" },
+  {   7, "content-too-long" },
+  {   8, "conversion-impractical" },
+  {   9, "implicit-conversion-prohibited" },
+  {  10, "implicit-conversion-not-subscribed" },
+  {  11, "invalid-arguments" },
+  {  12, "content-syntax-error" },
+  {  13, "size-constraint-violation" },
+  {  14, "protocol-violation" },
+  {  15, "content-type-not-supported" },
+  {  16, "too-many-recipients" },
+  {  17, "no-bilateral-agreement" },
+  {  18, "unsupported-critical-function" },
+  {  19, "conversion-with-loss-prohibited" },
+  {  20, "line-too-long" },
+  {  21, "page-split" },
+  {  22, "pictorial-symbol-loss" },
+  {  23, "punctuation-symbol-loss" },
+  {  24, "alphabetic-character-loss" },
+  {  25, "multiple-information-loss" },
+  {  26, "recipient-reassignment-prohibited" },
+  {  27, "redirection-loop-detected" },
+  {  28, "dl-expansion-prohibited" },
+  {  29, "no-dl-submit-permission" },
+  {  30, "dl-expansion-failure" },
+  {  31, "physical-rendition-attributes-not-supported" },
+  {  32, "undeliverable-mail-physical-delivery-address-incorrect" },
+  {  33, "undeliverable-mail-physical-delivery-office-incorrect-or-invalid" },
+  {  34, "undeliverable-mail-physical-delivery-address-incomplete" },
+  {  35, "undeliverable-mail-recipient-unknown" },
+  {  36, "undeliverable-mail-recipient-deceased" },
+  {  37, "undeliverable-mail-organization-expired" },
+  {  38, "undeliverable-mail-recipient-refused-to-accept" },
+  {  39, "undeliverable-mail-recipient-did-not-claim" },
+  {  40, "undeliverable-mail-recipient-changed-address-permanently" },
+  {  41, "undeliverable-mail-recipient-changed-address-temporarily" },
+  {  42, "undeliverable-mail-recipient-changed-temporary-address" },
+  {  43, "undeliverable-mail-new-address-unknown" },
+  {  44, "undeliverable-mail-recipient-did-not-want-forwarding" },
+  {  45, "undeliverable-mail-originator-prohibited-forwarding" },
+  {  46, "secure-messaging-error" },
+  {  47, "unable-to-downgrade" },
+  {  48, "unable-to-complete-transfer" },
+  {  49, "transfer-attempts-limit-reached" },
+  {  50, "incorrect-notification-type" },
+  {  51, "dl-expansion-prohibited-by-security-policy" },
+  {  52, "forbidden-alternate-recipient" },
+  {  53, "security-policy-violation" },
+  {  54, "security-services-refusal" },
+  {  55, "unauthorised-dl-member" },
+  {  56, "unauthorised-dl-name" },
+  {  57, "unauthorised-originally-intended-recipient-name" },
+  {  58, "unauthorised-originator-name" },
+  {  59, "unauthorised-recipient-name" },
+  {  60, "unreliable-system" },
+  {  61, "authentication-failure-on-subject-message" },
+  {  62, "decryption-failed" },
+  {  63, "decryption-key-unobtainable" },
+  {  64, "double-envelope-creation-failure" },
+  {  65, "double-enveloping-message-restoring-failure" },
+  {  66, "failure-of-proof-of-message" },
+  {  67, "integrity-failure-on-subject-message" },
+  {  68, "invalid-security-label" },
+  {  69, "key-failure" },
+  {  70, "mandatory-parameter-absence" },
+  {  71, "operation-security-failure" },
+  {  72, "repudiation-failure-of-message" },
+  {  73, "security-context-failure" },
+  {  74, "token-decryption-failed" },
+  {  75, "token-error" },
+  {  76, "unknown-security-label" },
+  {  77, "unsupported-algorithm-identifier" },
+  {  78, "unsupported-security-policy" },
+  { 0, NULL }
+};
+
+
+int
+dissect_p1_NonDeliveryDiagnosticCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_diagnostic_codes, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t NonDeliveryReport_set[] = {
+  { &hf_p1_non_delivery_reason_code, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryReasonCode },
+  { &hf_p1_non_delivery_diagnostic_code, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryDiagnosticCode },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_NonDeliveryReport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              NonDeliveryReport_set, hf_index, ett_p1_NonDeliveryReport);
+
+  return offset;
+}
+
+
+static const value_string p1_ReportType_vals[] = {
+  {   0, "delivery" },
+  {   1, "non-delivery" },
+  { 0, NULL }
+};
+
+static const ber_choice_t ReportType_choice[] = {
+  {   0, &hf_p1_delivery         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryReport },
+  {   1, &hf_p1_non_delivery     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_NonDeliveryReport },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ReportType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1283 "p1.cnf"
+       gint report = -1;
+
+         offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 ReportType_choice, hf_index, ett_p1_ReportType,
+                                 &report);
+
+       
+        if( (report!=-1) && p1_ReportType_vals[report].strptr ){
+               if(check_col(actx->pinfo->cinfo, COL_INFO)) {
+                       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_ReportType_vals[report].strptr);
+               }
+       }
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t LastTraceInformation_set[] = {
+  { &hf_p1_arrival_time     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
+  { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
+  { &hf_p1_trace_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ReportType },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_LastTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              LastTraceInformation_set, hf_index, ett_p1_LastTraceInformation);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_OriginallyIntendedRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_SupplementaryInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_supplementary_info_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t PerRecipientReportTransferFields_set[] = {
+  { &hf_p1_mta_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAActualRecipientName },
+  { &hf_p1_originally_specified_recipient_number, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_OriginallySpecifiedRecipientNumber },
+  { &hf_p1_per_recipient_indicators, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_PerRecipientIndicators },
+  { &hf_p1_last_trace_information, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_LastTraceInformation },
+  { &hf_p1_report_originally_intended_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
+  { &hf_p1_supplementary_information, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SupplementaryInformation },
+  { &hf_p1_extensions       , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PerRecipientReportTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              PerRecipientReportTransferFields_set, hf_index, ett_p1_PerRecipientReportTransferFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of[1] = {
+  { &hf_p1_per_recipient_report_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientReportTransferFields },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ReportTransferContent_set[] = {
+  { &hf_p1_subject_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectIdentifier },
+  { &hf_p1_subject_intermediate_trace_information, BER_CLASS_APP, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_SubjectIntermediateTraceInformation },
+  { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
+  { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_returned_content , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Content },
+  { &hf_p1_additional_information, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_AdditionalInformation },
+  { &hf_p1_extensions       , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { &hf_p1_per_recipient_report_fields, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportTransferFields },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ReportTransferContent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ReportTransferContent_set, hf_index, ett_p1_ReportTransferContent);
+
+  return offset;
+}
+
+
+static const ber_sequence_t Report_sequence[] = {
+  { &hf_p1_report_envelope  , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_ReportTransferEnvelope },
+  { &hf_p1_report_content   , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_ReportTransferContent },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_Report(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   Report_sequence, hf_index, ett_p1_Report);
+
+  return offset;
+}
+
+
+static const value_string p1_MTS_APDU_vals[] = {
+  {   0, "message" },
+  {   2, "probe" },
+  {   1, "report" },
+  { 0, NULL }
+};
+
+static const ber_choice_t MTS_APDU_choice[] = {
+  {   0, &hf_p1_message          , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_Message },
+  {   2, &hf_p1_probe            , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_Probe },
+  {   1, &hf_p1_report           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_Report },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MTS_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1269 "p1.cnf"
+       gint apdu = -1;
+
+         offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 MTS_APDU_choice, hf_index, ett_p1_MTS_APDU,
+                                 &apdu);
+
+       
+       if( (apdu!=-1) && p1_MTS_APDU_vals[apdu].strptr ){
+               if(check_col(actx->pinfo->cinfo, COL_INFO) && (apdu != 0)) { /* we don't show "message" - sub-dissectors have better idea */
+                       col_append_fstr(actx->pinfo->cinfo, COL_INFO, " %s", p1_MTS_APDU_vals[apdu].strptr);
+               }
+       }
+
+
+
+  return offset;
+}
+
+
+
+
+
+static const value_string p1_T_attempted_vals[] = {
+  {   0, "mta" },
+  {   1, "domain" },
+  { 0, NULL }
+};
+
+static const ber_choice_t T_attempted_choice[] = {
+  {   0, &hf_p1_mta              , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
+  {   1, &hf_p1_domain           , BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_T_attempted(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 T_attempted_choice, hf_index, ett_p1_T_attempted,
+                                 NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MTASuppliedInformation_set[] = {
+  { &hf_p1_arrival_time     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ArrivalTime },
+  { &hf_p1_routing_action   , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_RoutingAction },
+  { &hf_p1_attempted        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_T_attempted },
+  { &hf_p1_deferred_time    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredTime },
+  { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
+  { &hf_p1_other_actions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherActions },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1171 "p1.cnf"
+
+       doing_address = FALSE;
+
+         offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MTASuppliedInformation_set, hf_index, ett_p1_MTASuppliedInformation);
+
+
+       doing_address = TRUE;
+       proto_item_append_text(tree, ")");
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t InternalTraceInformationElement_sequence[] = {
+  { &hf_p1_global_domain_identifier, BER_CLASS_APP, 3, BER_FLAGS_NOOWNTAG, dissect_p1_GlobalDomainIdentifier },
+  { &hf_p1_mta_name         , BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_p1_MTAName },
+  { &hf_p1_mta_supplied_information, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MTASuppliedInformation },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1154 "p1.cnf"
+
+       doing_address = TRUE;
+
+         offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   InternalTraceInformationElement_sequence, hf_index, ett_p1_InternalTraceInformationElement);
+
+
+       doing_address = FALSE;
+
+
+
+  return offset;
+}
+
+
+static const ber_sequence_t InternalTraceInformation_sequence_of[1] = {
+  { &hf_p1_InternalTraceInformation_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_InternalTraceInformationElement },
+};
+
+static int
+dissect_p1_InternalTraceInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_transfers, InternalTraceInformation_sequence_of, hf_index, ett_p1_InternalTraceInformation);
+
+  return offset;
+}
+
+
+
+
+static const value_string p1_ObjectName_vals[] = {
+  {   0, "user-agent" },
+  {   1, "mTA" },
+  {   2, "message-store" },
+  { 0, NULL }
+};
+
+static const ber_choice_t ObjectName_choice[] = {
+  {   0, &hf_p1_user_agent       , BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
+  {   1, &hf_p1_mTA              , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MTAName },
+  {   2, &hf_p1_message_store    , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_p1_ORAddressAndOptionalDirectoryName },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ObjectName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 ObjectName_choice, hf_index, ett_p1_ObjectName,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_INTEGER_0_ub_queue_size(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_queue_size, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_INTEGER_0_ub_content_length(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_content_length, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t DeliveryQueue_set[] = {
+  { &hf_p1_messages         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_INTEGER_0_ub_queue_size },
+  { &hf_p1_delivery_queue_octets, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_INTEGER_0_ub_content_length },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_DeliveryQueue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              DeliveryQueue_set, hf_index, ett_p1_DeliveryQueue);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MessagesWaiting_set[] = {
+  { &hf_p1_urgent           , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
+  { &hf_p1_normal           , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
+  { &hf_p1_non_urgent       , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_p1_DeliveryQueue },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MessagesWaiting(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MessagesWaiting_set, hf_index, ett_p1_MessagesWaiting);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MTSBindArgument_set[] = {
+  { &hf_p1_initiator_name   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ObjectName },
+  { &hf_p1_messages_waiting , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p1_MessagesWaiting },
+  { &hf_p1_initiator_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_InitiatorCredentials },
+  { &hf_p1_security_context , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
+  { &hf_p1_extensions       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MTSBindArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MTSBindArgument_set, hf_index, ett_p1_MTSBindArgument);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MTSBindResult_set[] = {
+  { &hf_p1_responder_name   , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ObjectName },
+  { &hf_p1_messages_waiting , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_p1_MessagesWaiting },
+  { &hf_p1_responder_credentials, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ResponderCredentials },
+  { &hf_p1_extensions       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MTSBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MTSBindResult_set, hf_index, ett_p1_MTSBindResult);
+
+  return offset;
+}
+
+
+static const value_string p1_PAR_mts_bind_error_vals[] = {
+  {   0, "busy" },
+  {   2, "authentication-error" },
+  {   3, "unacceptable-dialogue-mode" },
+  {   4, "unacceptable-security-context" },
+  {   5, "inadequate-association-confidentiality" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_p1_PAR_mts_bind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_integer_options, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ORAddressAndOrDirectoryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_OriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_RecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const asn_namedbit OriginatorReportRequest_bits[] = {
+  {  3, &hf_p1_OriginatorReportRequest_report, -1, -1, "report", NULL },
+  {  4, &hf_p1_OriginatorReportRequest_non_delivery_report, -1, -1, "non-delivery-report", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_OriginatorReportRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_bit_options, OriginatorReportRequest_bits, hf_index, ett_p1_OriginatorReportRequest,
+                                                NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t PerRecipientMessageSubmissionFields_set[] = {
+  { &hf_p1_submission_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
+  { &hf_p1_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginatorReportRequest },
+  { &hf_p1_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
+  { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PerRecipientMessageSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              PerRecipientMessageSubmissionFields_set, hf_index, ett_p1_PerRecipientMessageSubmissionFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of[1] = {
+  { &hf_p1_per_recipient_message_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientMessageSubmissionFields },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MessageSubmissionEnvelope_set[] = {
+  { &hf_p1_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorName },
+  { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
+  { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_priority         , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
+  { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
+  { &hf_p1_deferred_delivery_time, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeferredDeliveryTime },
+  { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { &hf_p1_per_recipient_message_submission_fields, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientMessageSubmissionFields },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_MessageSubmissionEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MessageSubmissionEnvelope_set, hf_index, ett_p1_MessageSubmissionEnvelope);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MessageSubmissionArgument_sequence[] = {
+  { &hf_p1_message_submission_envelope, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_MessageSubmissionEnvelope },
+  { &hf_p1_content          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MessageSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   MessageSubmissionArgument_sequence, hf_index, ett_p1_MessageSubmissionArgument);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_MessageSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_MessageSubmissionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MessageSubmissionResult_set[] = {
+  { &hf_p1_message_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageSubmissionIdentifier },
+  { &hf_p1_message_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_MessageSubmissionTime },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MessageSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MessageSubmissionResult_set, hf_index, ett_p1_MessageSubmissionResult);
+
+  return offset;
+}
+
+
+static const ber_sequence_t PerRecipientProbeSubmissionFields_set[] = {
+  { &hf_p1_probe_recipient_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
+  { &hf_p1_originator_report_request, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_OriginatorReportRequest },
+  { &hf_p1_explicit_conversion, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExplicitConversion },
+  { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_PerRecipientProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              PerRecipientProbeSubmissionFields_set, hf_index, ett_p1_PerRecipientProbeSubmissionFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of[1] = {
+  { &hf_p1_per_recipient_probe_submission_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientProbeSubmissionFields },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ProbeSubmissionEnvelope_set[] = {
+  { &hf_p1_mts_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OriginatorName },
+  { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
+  { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_content_length   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
+  { &hf_p1_per_message_indicators, BER_CLASS_APP, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PerMessageIndicators },
+  { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { &hf_p1_per_recipient_probe_submission_fields, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_ProbeSubmissionEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ProbeSubmissionEnvelope_set, hf_index, ett_p1_ProbeSubmissionEnvelope);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ProbeSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ProbeSubmissionEnvelope(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ProbeSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_ProbeSubmissionTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Time(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ProbeSubmissionResult_set[] = {
+  { &hf_p1_probe_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_ProbeSubmissionIdentifier },
+  { &hf_p1_probe_submission_time, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ProbeSubmissionTime },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ProbeSubmissionResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ProbeSubmissionResult_set, hf_index, ett_p1_ProbeSubmissionResult);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_CancelDeferredDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MessageSubmissionIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_CancelDeferredDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const asn_namedbit Operations_bits[] = {
+  {  0, &hf_p1_Operations_probe_submission_or_report_delivery, -1, -1, "probe-submission-or-report-delivery", NULL },
+  {  1, &hf_p1_Operations_message_submission_or_message_delivery, -1, -1, "message-submission-or-message-delivery", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_Operations(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_bit_options, Operations_bits, hf_index, ett_p1_Operations,
+                                                NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ContentTypes_set_of[1] = {
+  { &hf_p1_ContentTypes_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+};
+
+static int
+dissect_p1_ContentTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
+                                             1, ub_content_types, ContentTypes_set_of, hf_index, ett_p1_ContentTypes);
+
+  return offset;
+}
+
+
+static const ber_sequence_t EncodedInformationTypesConstraints_sequence[] = {
+  { &hf_p1_unacceptable_eits, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
+  { &hf_p1_acceptable_eits  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
+  { &hf_p1_exclusively_acceptable_eits, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ExtendedEncodedInformationTypes },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_EncodedInformationTypesConstraints(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   EncodedInformationTypesConstraints_sequence, hf_index, ett_p1_EncodedInformationTypesConstraints);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PermissibleEncodedInformationTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_EncodedInformationTypesConstraints(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t Controls_set[] = {
+  { &hf_p1_restrict         , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_BOOLEAN },
+  { &hf_p1_permissible_operations, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
+  { &hf_p1_permissible_maximum_content_length, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentLength },
+  { &hf_p1_permissible_lowest_priority, BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
+  { &hf_p1_permissible_content_types, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentTypes },
+  { &hf_p1_permissible_encoded_information_types, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_PermissibleEncodedInformationTypes },
+  { &hf_p1_permissible_security_context, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SecurityContext },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_Controls(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              Controls_set, hf_index, ett_p1_Controls);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SubmissionControls(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Controls(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SubmissionControlArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_SubmissionControls(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const asn_namedbit WaitingMessages_bits[] = {
+  {  0, &hf_p1_WaitingMessages_long_content, -1, -1, "long-content", NULL },
+  {  1, &hf_p1_WaitingMessages_low_priority, -1, -1, "low-priority", NULL },
+  {  2, &hf_p1_WaitingMessages_other_security_labels, -1, -1, "other-security-labels", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_WaitingMessages(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_bit_options, WaitingMessages_bits, hf_index, ett_p1_WaitingMessages,
+                                                NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SET_SIZE_0_ub_content_types_OF_ContentType_set_of[1] = {
+  { &hf_p1_waiting_content_types_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+};
+
+static int
+dissect_p1_SET_SIZE_0_ub_content_types_OF_ContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,
+                                             0, ub_content_types, SET_SIZE_0_ub_content_types_OF_ContentType_set_of, hf_index, ett_p1_SET_SIZE_0_ub_content_types_OF_ContentType);
+
+  return offset;
+}
+
+
+static const ber_sequence_t Waiting_set[] = {
+  { &hf_p1_waiting_operations, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Operations },
+  { &hf_p1_waiting_messages , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_WaitingMessages },
+  { &hf_p1_waiting_content_types, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_SIZE_0_ub_content_types_OF_ContentType },
+  { &hf_p1_waiting_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_EncodedInformationTypes },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_Waiting(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              Waiting_set, hf_index, ett_p1_Waiting);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SubmissionControlResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Waiting(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_submission_control_violated(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_element_of_service_not_subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_deferred_delivery_cancellation_rejected(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_originator_invalid(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ImproperlySpecifiedRecipients_sequence_of[1] = {
+  { &hf_p1_ImproperlySpecifiedRecipients_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_RecipientName },
+};
+
+int
+dissect_p1_ImproperlySpecifiedRecipients(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, ImproperlySpecifiedRecipients_sequence_of, hf_index, ett_p1_ImproperlySpecifiedRecipients);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_message_submission_identifier_invalid(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_inconsistent_request(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+const value_string p1_SecurityProblem_vals[] = {
+  {   0, "assemby-instructions-conflict-with-security-services" },
+  {   1, "authentication-problem" },
+  {   2, "authentication-failure-on-subject-message" },
+  {   3, "confidentiality-association-problem" },
+  {   4, "decryption-failed" },
+  {   5, "decryption-key-unobtainable" },
+  {   6, "failure-of-proof-of-message" },
+  {   7, "forbidden-user-security-label-register" },
+  {   8, "incompatible-change-with-original-security-context" },
+  {   9, "integrity-failure-on-subject-message" },
+  {  10, "invalid-security-label" },
+  {  11, "invalid-security-label-update" },
+  {  12, "key-failure" },
+  {  13, "mandatory-parameter-absence" },
+  {  14, "operation-security-failure" },
+  {  15, "redirection-prohibited" },
+  {  16, "refused-alternate-recipient-name" },
+  {  17, "repudiation-failure-of-message" },
+  {  18, "responder-credentials-checking-problem" },
+  {  19, "security-context-failure" },
+  {  20, "security-context-problem" },
+  {  21, "security-policy-violation" },
+  {  22, "security-services-refusal" },
+  {  23, "token-decryption-failed" },
+  {  24, "token-error" },
+  {  25, "unable-to-aggregate-security-labels" },
+  {  26, "unauthorised-dl-name" },
+  {  27, "unauthorised-entry-class" },
+  {  28, "unauthorised-originally-intended-recipient-name" },
+  {  29, "unauthorised-originator-name" },
+  {  30, "unauthorised-recipient-name" },
+  {  31, "unauthorised-security-label-update" },
+  {  32, "unauthorised-user-name" },
+  {  33, "unknown-security-label" },
+  {  34, "unsupported-algorithm-identifier" },
+  {  35, "unsupported-security-policy" },
+  { 0, NULL }
+};
+
+
+int
+dissect_p1_SecurityProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset,
+                                                            0U, ub_security_problems, hf_index, NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_unsupported_critical_function(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_PAR_remote_bind_error(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
+
+  return offset;
+}
+
+
+
+int
+dissect_p1_MessageDeliveryIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const value_string p1_DeliveredContentType_vals[] = {
+  {   0, "built-in" },
+  {   1, "extended" },
+  { 0, NULL }
+};
+
+static const ber_choice_t DeliveredContentType_choice[] = {
+  {   0, &hf_p1_built_in         , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_BuiltInContentType },
+  {   1, &hf_p1_extended         , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_p1_ExtendedContentType },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_DeliveredContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 DeliveredContentType_choice, hf_index, ett_p1_DeliveredContentType,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_DeliveredOriginatorName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const asn_namedbit DeliveryFlags_bits[] = {
+  {  1, &hf_p1_DeliveryFlags_implicit_conversion_prohibited, -1, -1, "implicit-conversion-prohibited", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_p1_DeliveryFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                                0, ub_bit_options, DeliveryFlags_bits, hf_index, ett_p1_DeliveryFlags,
+                                                NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_OtherRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t OtherRecipientNames_sequence_of[1] = {
+  { &hf_p1_OtherRecipientNames_item, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_OtherRecipientName },
+};
+
+static int
+dissect_p1_OtherRecipientNames(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, OtherRecipientNames_sequence_of, hf_index, ett_p1_OtherRecipientNames);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ThisRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOptionalDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t OtherMessageDeliveryFields_set[] = {
+  { &hf_p1_delivered_content_type, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_DeliveredContentType },
+  { &hf_p1_delivered_originator_name, BER_CLASS_APP, 0, BER_FLAGS_NOOWNTAG, dissect_p1_DeliveredOriginatorName },
+  { &hf_p1_original_encoded_information_types, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginalEncodedInformationTypes },
+  { &hf_p1_priority         , BER_CLASS_APP, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_Priority },
+  { &hf_p1_delivery_flags   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_DeliveryFlags },
+  { &hf_p1_other_recipient_names, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OtherRecipientNames },
+  { &hf_p1_this_recipient_name, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_p1_ThisRecipientName },
+  { &hf_p1_originally_intended_recipient_name, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
+  { &hf_p1_converted_encoded_information_types, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ConvertedEncodedInformationTypes },
+  { &hf_p1_message_submission_time, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_p1_MessageSubmissionTime },
+  { &hf_p1_content_identifier, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_extensions       , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+int
+dissect_p1_OtherMessageDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              OtherMessageDeliveryFields_set, hf_index, ett_p1_OtherMessageDeliveryFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MessageDeliveryArgument_sequence[] = {
+  { &hf_p1_message_delivery_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryIdentifier },
+  { &hf_p1_message_delivery_time, BER_CLASS_UNI, BER_UNI_TAG_UTCTime, BER_FLAGS_NOOWNTAG, dissect_p1_MessageDeliveryTime },
+  { &hf_p1_other_fields     , BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_OtherMessageDeliveryFields },
+  { &hf_p1_content          , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_p1_Content },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MessageDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+                                   MessageDeliveryArgument_sequence, hf_index, ett_p1_MessageDeliveryArgument);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_RecipientCertificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_x509af_Certificates(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ProofOfDelivery(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_Signature(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MessageDeliveryResult_set[] = {
+  { &hf_p1_recipient_certificate, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_RecipientCertificate },
+  { &hf_p1_proof_of_delivery, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_ProofOfDelivery },
+  { &hf_p1_extensions       , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_MessageDeliveryResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MessageDeliveryResult_set, hf_index, ett_p1_MessageDeliveryResult);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_SubjectSubmissionIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_p1_ActualRecipientName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_p1_ORAddressAndOrDirectoryName(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+static const ber_sequence_t PerRecipientReportDeliveryFields_set[] = {
+  { &hf_p1_actual_recipient_name, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_p1_ActualRecipientName },
+  { &hf_p1_delivery_report_type, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ReportType },
+  { &hf_p1_converted_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ConvertedEncodedInformationTypes },
+  { &hf_p1_originally_intended_recipient_name, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_OriginallyIntendedRecipientName },
+  { &hf_p1_supplementary_information, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SupplementaryInformation },
+  { &hf_p1_extensions       , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_PerRecipientReportDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              PerRecipientReportDeliveryFields_set, hf_index, ett_p1_PerRecipientReportDeliveryFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of[1] = {
+  { &hf_p1_per_recipient_report_delivery_fields_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_p1_PerRecipientReportDeliveryFields },
+};
+
+static int
+dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_recipients, SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields_sequence_of, hf_index, ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ReportDeliveryArgument_set[] = {
+  { &hf_p1_subject_submission_identifier, BER_CLASS_APP, 4, BER_FLAGS_NOOWNTAG, dissect_p1_SubjectSubmissionIdentifier },
+  { &hf_p1_content_identifier, BER_CLASS_APP, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_ContentIdentifier },
+  { &hf_p1_content_type     , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_p1_ContentType },
+  { &hf_p1_original_encoded_information_types, BER_CLASS_APP, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_p1_OriginalEncodedInformationTypes },
+  { &hf_p1_extensions       , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_SET_OF_ExtensionField },
+  { &hf_p1_per_recipient_report_delivery_fields, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientReportDeliveryFields },
+  { &hf_p1_returned_content , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_p1_Content },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_p1_ReportDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ReportDeliveryArgument_set, hf_index, ett_p1_ReportDeliveryArgument);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SET_SIZE_1_MAX_OF_ExtensionField_set_of[1] = {
+  { &hf_p1_max_extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_p1_ExtensionField },
+};
+
+static int
+dissect_p1_SET_SIZE_1_MAX_OF_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_set_of(implicit_tag, actx, tree, tvb, offset,