aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-09-16 08:58:28 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2004-09-16 08:58:28 +0000
commit0388e3cd12bd3f59422200ceb1dd9eb287c77e01 (patch)
treec25d41edc204b53e30eb82e9731cfb10e9aaeecd
parent1335871c8eaf1af3a342ce8a32923f4b1a5565c8 (diff)
new protocol PKIX1EXPLICIT
svn path=/trunk/; revision=12013
-rw-r--r--asn1/pkix1explicit/PKIX1EXPLICIT93.asn854
-rw-r--r--asn1/pkix1explicit/packet-pkix1explicit-template.c113
-rw-r--r--asn1/pkix1explicit/packet-pkix1explicit-template.h37
-rw-r--r--asn1/pkix1explicit/pkix1explicit.cnf21
-rw-r--r--asn1/pkix1explicit/pkix1explicit_exp.cnf15
5 files changed, 1040 insertions, 0 deletions
diff --git a/asn1/pkix1explicit/PKIX1EXPLICIT93.asn b/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
new file mode 100644
index 0000000000..a812a8398c
--- /dev/null
+++ b/asn1/pkix1explicit/PKIX1EXPLICIT93.asn
@@ -0,0 +1,854 @@
+-- This file is based on PKIX1Explicit93 definition in
+-- RFC2459 section b.1
+--
+--Appendix F of RFC2459
+--Appendix F. Full Copyright Statement
+--
+-- Copyright (C) The Internet Society (1999). All Rights Reserved.
+--
+-- This document and translations of it may be copied and furnished to
+-- others, and derivative works that comment on or otherwise explain it
+-- or assist in its implementation may be prepared, copied, published
+-- and distributed, in whole or in part, without restriction of any
+-- kind, provided that the above copyright notice and this paragraph are
+-- included on all such copies and derivative works. However, this
+-- document itself may not be modified in any way, such as by removing
+-- the copyright notice or references to the Internet Society or other
+-- Internet organizations, except as needed for the purpose of
+-- developing Internet standards in which case the procedures for
+-- copyrights defined in the Internet Standards process must be
+-- followed, or as required to translate it into languages other than
+-- English.
+--
+-- The limited permissions granted above are perpetual and will not be
+-- revoked by the Internet Society or its successors or assigns.
+--
+-- This document and the information contained herein is provided on an
+-- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+-- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+-- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+-- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+-- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+--
+--
+--NOTE: This ASN1 definition have been significantly modified from the original
+--version in RFC2459 in order to accomodate the featuresets available
+--in the ethereal projects asn2eth compiler.
+--It has also been modified and structures have been commented out that
+--are already implemented in the X509 dissectors.
+--Dissectors present already in the X509 dissectors should be implemented in
+--the template by hand as stubs that will just call the original
+--dissector functions in X509 in order not to duplicate code.
+--
+--Structures and constructs in this definition are uncommented and
+--implemented on-demand when someone needs them.
+--
+--If you export new types from this file, make sure to update the
+--pkix1explicit_exp.cnf file with the proper definitions
+
+
+
+PKIX1Explicit93 {iso(1) identified-organization(3) dod(6) internet(1)
+ security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit-93(3)}
+
+
+DEFINITIONS EXPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS ALL --
+
+IMPORTS
+ authorityKeyIdentifier, subjectKeyIdentifier, keyUsage,
+ extendedKeyUsage, privateKeyUsagePeriod, certificatePolicies,
+ policyMappings, subjectAltName, issuerAltName,
+ basicConstraints, nameConstraints, policyConstraints,
+ cRLDistributionPoints, subjectDirectoryAttributes,
+ cRLNumber, reasonCode, instructionCode, invalidityDate,
+ issuingDistributionPoint, certificateIssuer,
+ deltaCRLIndicator, authorityInfoAccess, id-ce
+ FROM PKIX1Implicit93 {iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)
+ id-mod(0) id-pkix1-implicit-93(4)} ;
+
+--
+-- Locally defined OIDs
+--
+--id-pkix OBJECT IDENTIFIER ::=
+-- { iso(1) identified-organization(3) dod(6) internet(1)
+-- security(5) mechanisms(5) pkix(7) }
+--
+-- PKIX arcs
+-- arc for private certificate extensions
+--id-pe OBJECT IDENTIFIER ::= { id-pkix 1 }
+-- arc for policy qualifier types
+--id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+-- arc for extended key purpose OIDS
+--id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+-- arc for access descriptors
+--id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+--
+-- policyQualifierIds for Internet policy qualifiers
+--id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+-- OID for CPS qualifier
+--
+--id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+-- OID for user notice qualifier
+--
+-- based on excerpts from AuthenticationFramework
+-- {joint-iso-ccitt ds(5) modules(1) authenticationFramework(7) 2}
+--
+-- Public Key Certificate
+--
+--Certificate ::= SIGNED { SEQUENCE {
+-- version [0] Version DEFAULT v1,
+-- serialNumber CertificateSerialNumber,
+-- signature AlgorithmIdentifier,
+-- issuer Name,
+-- validity Validity,
+-- subject Name,
+-- subjectPublicKeyInfo SubjectPublicKeyInfo,
+-- issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL,
+-- if present, version shall be v2 or v3
+-- subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
+-- if present, version shall be v2 or v3
+-- extensions [3] Extensions OPTIONAL
+-- if present, version shall be v3
+-- }
+--}
+--
+--UniqueIdentifier ::= BIT STRING
+--
+--Version ::= INTEGER { v1(0), v2(1), v3(2) }
+
+ -- This one is defined with .NO_EMIT in the conformance file
+ -- and implemented in the template as just a call to the
+ -- corresponding function in x509
+CertificateSerialNumber ::= INTEGER
+
+--Validity ::= SEQUENCE {
+-- notBefore Time,
+-- notAfter Time }
+--
+--Time ::= CHOICE {
+-- utcTime UTCTime,
+-- generalTime GeneralizedTime }
+--
+
+
+
+ -- This one is implemented in the template as just a call to the
+ -- corresponding function in x509
+--SubjectPublicKeyInfo ::= SEQUENCE{
+-- algorithm AlgorithmIdentifier,
+-- subjectPublicKey BIT STRING
+--}
+
+
+
+
+--Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+--
+--Extension ::= SEQUENCE {
+-- extnId EXTENSION.&id ({ExtensionSet}),
+-- critical BOOLEAN DEFAULT FALSE,
+-- extnValue OCTET STRING }
+-- contains a DER encoding of a value of type
+-- &ExtnType for the
+-- extension object identified by extnId
+--
+-- The following information object set is defined to constrain the
+-- set of legal certificate extensions.
+--
+--ExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+-- subjectKeyIdentifier |
+-- keyUsage |
+-- extendedKeyUsage |
+-- privateKeyUsagePeriod |
+-- certificatePolicies |
+-- policyMappings |
+-- subjectAltName |
+-- issuerAltName |
+-- basicConstraints |
+-- nameConstraints |
+-- policyConstraints |
+-- cRLDistributionPoints |
+-- subjectDirectoryAttributes |
+-- authorityInfoAccess }
+--
+--EXTENSION ::= CLASS {
+-- &id OBJECT IDENTIFIER UNIQUE,
+-- &ExtnType }
+--WITH SYNTAX {
+-- SYNTAX &ExtnType
+-- IDENTIFIED BY &id }
+--
+-- Certificate Revocation List
+--
+--CertificateList ::= SIGNED { SEQUENCE {
+-- version Version OPTIONAL,
+-- if present, shall be v2
+-- signature AlgorithmIdentifier,
+-- issuer Name,
+-- thisUpdate Time,
+-- nextUpdate Time OPTIONAL,
+-- revokedCertificates SEQUENCE OF SEQUENCE {
+-- userCertificate CertificateSerialNumber,
+-- revocationDate Time,
+-- crlEntryExtensions EntryExtensions OPTIONAL } OPTIONAL,
+-- crlExtensions [0] CRLExtensions OPTIONAL }}
+--
+--CRLExtensions ::= SEQUENCE SIZE (1..MAX) OF CRLExtension
+--
+--CRLExtension ::= SEQUENCE {
+-- extnId EXTENSION.&id ({CRLExtensionSet}),
+-- critical BOOLEAN DEFAULT FALSE,
+-- extnValue OCTET STRING }
+-- contains a DER encoding of a value of type
+-- &ExtnType for the
+-- extension object identified by extnId
+--
+-- The following information object set is defined to constrain the
+-- set of legal CRL extensions.
+--
+--CRLExtensionSet EXTENSION ::= { authorityKeyIdentifier |
+-- issuerAltName |
+-- cRLNumber |
+-- deltaCRLIndicator |
+-- issuingDistributionPoint }
+--
+-- EXTENSION defined above for certificates
+--
+--EntryExtensions ::= SEQUENCE SIZE (1..MAX) OF EntryExtension
+--
+--EntryExtension ::= SEQUENCE {
+-- extnId EXTENSION.&id ({EntryExtensionSet}),
+-- critical BOOLEAN DEFAULT FALSE,
+-- extnValue OCTET STRING }
+-- contains a DER encoding of a value of type
+-- &ExtnType for the
+-- extension object identified by extnId
+--
+-- The following information object set is defined to constrain the
+-- set of legal CRL entry extensions.
+--
+--EntryExtensionSet EXTENSION ::= { reasonCode |
+-- instructionCode |
+-- invalidityDate |
+-- certificateIssuer }
+--
+-- information object classes used in the defintion
+-- of certificates and CRLs
+--
+-- Parameterized Type SIGNED
+--
+-- SIGNED { ToBeSigned } ::= SEQUENCE {
+-- toBeSigned ToBeSigned,
+-- algorithm AlgorithmIdentifier,
+-- signature BIT STRING
+-- }
+--
+
+ -- This one is implemented in the template as just a call to the
+ -- corresponding function in x509
+-- Definition of AlgorithmIdentifier
+-- ISO definition was:
+--AlgorithmIdentifier ::= SEQUENCE {
+-- algorithm ALGORITHM.&id({SupportedAlgorithms}),
+-- parameters ALGORITHM.&Type({SupportedAlgorithms}
+-- { @algorithm}) OPTIONAL
+--}
+
+-- Definition of ALGORITHM
+-- ALGORITHM ::= TYPE-IDENTIFIER
+--
+-- The following PKIX definition replaces the X.509 definition
+--
+--
+--AlgorithmIdentifier ::= SEQUENCE {
+-- algorithm ALGORITHM-ID.&id({SupportedAlgorithms}),
+-- parameters ALGORITHM-ID.&Type({SupportedAlgorithms}
+-- { @algorithm}) OPTIONAL }
+--
+-- Definition of ALGORITHM-ID
+--
+-- ALGORITHM-ID ::= CLASS {
+-- &id OBJECT IDENTIFIER UNIQUE,
+-- &Type OPTIONAL
+-- }
+-- WITH SYNTAX { OID &id [PARMS &Type] }
+--
+-- The definition of SupportedAlgorithms may be modified as this
+-- document does not specify a mandatory algorithm set. In addition,
+-- the set is specified as extensible, since additional algorithms
+-- may be supported
+--
+--SupportedAlgorithms ALGORITHM-ID ::= { ...,
+-- rsaPublicKey |
+-- rsaSHA-1 |
+-- rsaMD5 |
+-- rsaMD2 |
+-- dssPublicKey |
+-- dsaSHA-1 |
+-- dhPublicKey }
+--
+-- OIDs and parameter structures for ALGORITHM-IDs used
+-- in this specification
+--
+--rsaPublicKey ALGORITHM-ID ::= { OID rsaEncryption PARMS NULL }
+--
+--rsaSHA-1 ALGORITHM-ID ::= { OID sha1WithRSAEncryption PARMS NULL }
+--
+--rsaMD5 ALGORITHM-ID ::= { OID md5WithRSAEncryption PARMS NULL }
+--
+--rsaMD2 ALGORITHM-ID ::= { OID md2WithRSAEncryption PARMS NULL }
+--
+--dssPublicKey ALGORITHM-ID ::= { OID id-dsa PARMS Dss-Parms }
+--
+--dsaSHA-1 ALGORITHM-ID ::= { OID id-dsa-with-sha1 }
+--
+--dhPublicKey ALGORITHM-ID ::= {OID dhpublicnumber PARMS DomainParameters}
+--
+-- algorithm identifiers and parameter structures
+--
+--pkcs-1 OBJECT IDENTIFIER ::= {
+-- iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+--
+--rsaEncryption OBJECT IDENTIFIER ::= { pkcs-1 1 }
+--
+--md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+--
+--md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+--
+--sha1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+--
+--id-dsa-with-sha1 OBJECT IDENTIFIER ::= {
+-- iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 3 }
+--
+--Dss-Sig-Value ::= SEQUENCE {
+-- r INTEGER,
+-- s INTEGER }
+--
+--dhpublicnumber OBJECT IDENTIFIER ::= {
+-- iso(1) member-body(2) us(840) ansi-x942(10046) number-type(2) 1 }
+--
+--DomainParameters ::= SEQUENCE {
+-- p INTEGER,
+-- g INTEGER,
+-- q INTEGER,
+-- j INTEGER OPTIONAL,
+-- validationParms ValidationParms OPTIONAL }
+--
+--ValidationParms ::= SEQUENCE {
+-- seed BIT STRING,
+-- pgenCounter INTEGER }
+--
+--id-dsa OBJECT IDENTIFIER ::= {
+-- iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 1 }
+--
+--Dss-Parms ::= SEQUENCE {
+-- p INTEGER,
+-- q INTEGER,
+-- g INTEGER }
+--
+-- The ASN.1 in this section supports the Name type
+-- and the directoryAttribute extension
+--
+-- attribute data types
+--
+--Attribute ::= SEQUENCE {
+-- type ATTRIBUTE.&id ({SupportedAttributes}),
+-- values SET SIZE (1 .. MAX) OF ATTRIBUTE.&Type
+-- ({SupportedAttributes}{@type})}
+--
+--AttributeTypeAndValue ::= SEQUENCE {
+-- type ATTRIBUTE.&id ({SupportedAttributes}),
+-- value ATTRIBUTE.&Type ({SupportedAttributes}{@type})}
+--
+-- naming data types --
+--
+
+
+ -- This one is implemented in the template as just a call to the
+ -- corresponding function in x509
+--Name ::= CHOICE {
+-- rdnSequence RDNSequence
+--}
+
+
+--
+--RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+--
+--RelativeDistinguishedName ::=
+-- SET SIZE (1 .. MAX) OF AttributeTypeAndValue
+--
+--ID ::= OBJECT IDENTIFIER
+--
+-- ATTRIBUTE information object class specification
+-- Note: This has been greatly simplified for PKIX !!
+--
+--ATTRIBUTE ::= CLASS {
+-- &Type,
+-- &id OBJECT IDENTIFIER UNIQUE }
+--WITH SYNTAX {
+-- WITH SYNTAX &Type ID &id }
+--
+-- suggested naming attributes
+-- Definition of the following information object set may be
+-- augmented to meet local requirements. Note that deleting
+-- members of the set may prevent interoperability with
+-- conforming implementations.
+--
+--SupportedAttributes ATTRIBUTE ::= {
+-- name | commonName | surname | givenName | initials |
+-- generationQualifier | dnQualifier | countryName |
+-- localityName | stateOrProvinceName | organizationName |
+-- organizationalUnitName | title | pkcs9email }
+--
+--name ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString { ub-name }
+-- ID id-at-name }
+--
+--commonName ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-common-name}
+-- ID id-at-commonName }
+--
+--surname ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-at-surname }
+--
+--givenName ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-at-givenName }
+--
+--initials ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-at-initials }
+--
+--generationQualifier ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-name}
+-- ID id-at-generationQualifier}
+--
+--dnQualifier ATTRIBUTE ::= {
+-- WITH SYNTAX PrintableString
+-- ID id-at-dnQualifier }
+--
+--
+--countryName ATTRIBUTE ::= {
+-- WITH SYNTAX PrintableString (SIZE (2))
+-- ID id-at-countryName }
+--
+--localityName ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-locality-name}
+-- ID id-at-localityName }
+--
+--stateOrProvinceName ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-state-name}
+-- ID id-at-stateOrProvinceName }
+--
+--organizationName ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-organization-name}
+-- ID id-at-organizationName }
+--
+--organizationalUnitName ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-organizational-unit-name}
+-- ID id-at-organizationalUnitName }
+--
+--title ATTRIBUTE ::= {
+-- WITH SYNTAX DirectoryString {ub-title}
+-- ID id-at-title }
+--
+-- Legacy attributes
+--
+--pkcs9email ATTRIBUTE ::= {
+-- WITH SYNTAX PHGString,
+-- ID emailAddress }
+--
+--PHGString ::= IA5String (SIZE(1..ub-emailaddress-length))
+--
+--pkcs-9 OBJECT IDENTIFIER ::=
+-- { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 }
+--
+--emailAddress OBJECT IDENTIFIER ::= { pkcs-9 1 }
+--
+-- object identifiers for Name type and directory attribute support
+--
+-- Object identifier assignments
+--
+--id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt(2) ds(5) 4}
+--
+-- Attributes
+--
+--id-at-commonName OBJECT IDENTIFIER ::= {id-at 3}
+--id-at-surname OBJECT IDENTIFIER ::= {id-at 4}
+--id-at-countryName OBJECT IDENTIFIER ::= {id-at 6}
+--id-at-localityName OBJECT IDENTIFIER ::= {id-at 7}
+--id-at-stateOrProvinceName OBJECT IDENTIFIER ::= {id-at 8}
+--id-at-organizationName OBJECT IDENTIFIER ::= {id-at 10}
+--id-at-organizationalUnitName OBJECT IDENTIFIER ::= {id-at 11}
+--id-at-title OBJECT IDENTIFIER ::= {id-at 12}
+--id-at-name OBJECT IDENTIFIER ::= {id-at 41}
+--id-at-givenName OBJECT IDENTIFIER ::= {id-at 42}
+--id-at-initials OBJECT IDENTIFIER ::= {id-at 43}
+--id-at-generationQualifier OBJECT IDENTIFIER ::= {id-at 44}
+--id-at-dnQualifier OBJECT IDENTIFIER ::= {id-at 46}
+--
+-- Directory string type, used extensively in Name types
+--
+--DirectoryString { INTEGER:maxSize } ::= CHOICE {
+-- teletexString TeletexString (SIZE (1..maxSize)),
+-- printableString PrintableString (SIZE (1..maxSize)),
+-- universalString UniversalString (SIZE (1..maxSize)),
+-- bmpString BMPString (SIZE(1..maxSize)),
+-- utf8String UTF8String (SIZE(1..maxSize))
+-- }
+--
+-- End of ASN.1 for Name type and directory attribute support
+--
+-- The ASN.1 in this section supports X.400 style names
+-- for implementations that use the x400Address component
+-- of GeneralName.
+--
+--ORAddress ::= SEQUENCE {
+-- built-in-standard-attributes BuiltInStandardAttributes,
+-- built-in-domain-defined-attributes
+-- BuiltInDomainDefinedAttributes OPTIONAL,
+-- see also teletex-domain-defined-attributes
+-- extension-attributes ExtensionAttributes OPTIONAL }
+--
+-- The OR-address is semantically absent from the OR-name if the
+-- built-in-standard-attribute sequence is empty and the
+-- built-in-domain-defined-attributes and extension-attributes are
+-- both omitted.
+--
+-- Built-in Standard Attributes
+--
+--BuiltInStandardAttributes ::= SEQUENCE {
+-- country-name CountryName OPTIONAL,
+-- administration-domain-name AdministrationDomainName OPTIONAL,
+-- network-address [0] NetworkAddress OPTIONAL,
+-- see also extended-network-address
+-- terminal-identifier [1] TerminalIdentifier OPTIONAL,
+-- private-domain-name [2] PrivateDomainName OPTIONAL,
+-- organization-name [3] OrganizationName OPTIONAL,
+-- see also teletex-organization-name
+-- numeric-user-identifier [4] NumericUserIdentifier OPTIONAL,
+-- personal-name [5] PersonalName OPTIONAL,
+-- see also teletex-personal-name
+-- organizational-unit-names [6] OrganizationalUnitNames OPTIONAL
+-- see also teletex-organizational-unit-names
+-- }
+--
+--CountryName ::= [APPLICATION 1] CHOICE {
+-- x121-dcc-code NumericString,
+-- iso-3166-alpha2-code PrintableString
+--}
+--
+--AdministrationDomainName ::= [APPLICATION 2] CHOICE {
+-- numeric NumericString (SIZE (0..ub-domain-name-length)),
+-- printable PrintableString (SIZE (0..ub-domain-name-length)) }
+--
+--NetworkAddress ::= X121Address
+-- see also extended-network-address
+--
+--X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
+--
+--TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
+--
+--PrivateDomainName ::= CHOICE {
+-- numeric NumericString (SIZE (1..ub-domain-name-length)),
+-- printable PrintableString (SIZE (1..ub-domain-name-length)) }
+--
+--OrganizationName ::= PrintableString
+-- (SIZE (1..ub-organization-name-length))
+-- see also teletex-organization-name
+--
+--NumericUserIdentifier ::= NumericString
+-- (SIZE (1..ub-numeric-user-id-length))
+--
+--PersonalName ::= SET {
+-- surname [0] PrintableString (SIZE (1..ub-surname-length)),
+-- given-name [1] PrintableString
+-- (SIZE (1..ub-given-name-length)) OPTIONAL,
+-- initials [2] PrintableString
+-- (SIZE (1..ub-initials-length)) OPTIONAL,
+-- generation-qualifier [3] PrintableString
+-- (SIZE (1..ub-generation-qualifier-length)) OPTIONAL}
+-- see also teletex-personal-name
+--
+--OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
+-- OF OrganizationalUnitName
+-- see also teletex-organizational-unit-names
+--
+--OrganizationalUnitName ::= PrintableString (SIZE
+-- (1..ub-organizational-unit-name-length))
+--
+-- Built-in Domain-defined Attributes
+--BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
+-- (1..ub-domain-defined-attributes) OF
+-- BuiltInDomainDefinedAttribute
+--
+--BuiltInDomainDefinedAttribute ::= SEQUENCE {
+-- type PrintableString (SIZE
+-- (1..ub-domain-defined-attribute-type-length)),
+-- value PrintableString (SIZE
+-- (1..ub-domain-defined-attribute-value-length)) }
+--
+-- Extension Attributes
+--
+--ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes)
+-- OF ExtensionAttribute
+--ExtensionAttribute ::= SEQUENCE {
+--
+-- extension-attribute-type [0] EXTENSION-ATTRIBUTE.&id
+-- ({ExtensionAttributeTable}),
+-- extension-attribute-value [1] EXTENSION-ATTRIBUTE.&Type
+-- ({ExtensionAttributeTable} {@extension-attribute-type}) }
+--
+--EXTENSION-ATTRIBUTE ::= CLASS {
+-- &id INTEGER (0..ub-extension-attributes) UNIQUE,
+-- &Type }
+--WITH SYNTAX {&Type IDENTIFIED BY &id}
+--
+--ExtensionAttributeTable EXTENSION-ATTRIBUTE ::= {
+-- common-name |
+-- teletex-common-name |
+-- teletex-organization-name |
+-- teletex-personal-name |
+-- teletex-organizational-unit-names |
+-- teletex-domain-defined-attributes |
+-- pds-name |
+-- physical-delivery-country-name |
+-- postal-code |
+-- physical-delivery-office-name |
+-- physical-delivery-office-number |
+-- extension-OR-address-components |
+-- physical-delivery-personal-name |
+-- physical-delivery-organization-name |
+-- extension-physical-delivery-address-components |
+-- unformatted-postal-address |
+-- street-address |
+-- post-office-box-address |
+-- poste-restante-address |
+-- unique-postal-name |
+-- local-postal-attributes |
+-- extended-network-address |
+-- terminal-type }
+--
+-- Extension Standard Attributes
+--
+--common-name EXTENSION-ATTRIBUTE ::= {CommonName IDENTIFIED BY 1}
+--
+--CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
+--
+--teletex-common-name EXTENSION-ATTRIBUTE ::=
+-- {TeletexCommonName IDENTIFIED BY 2}
+--
+--TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
+--
+--teletex-organization-name EXTENSION-ATTRIBUTE ::=
+-- {TeletexOrganizationName IDENTIFIED BY 3}
+--
+--TeletexOrganizationName ::=
+-- TeletexString (SIZE (1..ub-organization-name-length))
+--
+--teletex-personal-name EXTENSION-ATTRIBUTE ::=
+-- {TeletexPersonalName IDENTIFIED BY 4}
+--
+--TeletexPersonalName ::= SET {
+-- surname [0] TeletexString (SIZE (1..ub-surname-length)),
+-- given-name [1] TeletexString
+-- (SIZE (1..ub-given-name-length)) OPTIONAL,
+-- initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL,
+-- generation-qualifier [3] TeletexString (SIZE
+-- (1..ub-generation-qualifier-length)) OPTIONAL }
+--
+--teletex-organizational-unit-names EXTENSION-ATTRIBUTE ::=
+-- {TeletexOrganizationalUnitNames IDENTIFIED BY 5}
+--
+--TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
+-- (1..ub-organizational-units) OF TeletexOrganizationalUnitName
+--
+--TeletexOrganizationalUnitName ::= TeletexString
+-- (SIZE (1..ub-organizational-unit-name-length))
+--
+--pds-name EXTENSION-ATTRIBUTE ::= {PDSName IDENTIFIED BY 7}
+--
+--PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
+--
+--physical-delivery-country-name EXTENSION-ATTRIBUTE ::=
+-- {PhysicalDeliveryCountryName IDENTIFIED BY 8}
+--
+--PhysicalDeliveryCountryName ::= CHOICE {
+-- x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
+-- iso-3166-alpha2-code PrintableString
+-- (SIZE (ub-country-name-alpha-length)) }
+--
+--postal-code EXTENSION-ATTRIBUTE ::= {PostalCode IDENTIFIED BY 9}
+--
+--PostalCode ::= CHOICE {
+-- numeric-code NumericString (SIZE (1..ub-postal-code-length)),
+-- printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
+--
+--physical-delivery-office-name EXTENSION-ATTRIBUTE ::=
+-- {PhysicalDeliveryOfficeName IDENTIFIED BY 10}
+--
+--PhysicalDeliveryOfficeName ::= PDSParameter
+--
+--physical-delivery-office-number EXTENSION-ATTRIBUTE ::=
+-- {PhysicalDeliveryOfficeNumber IDENTIFIED BY 11}
+--
+--PhysicalDeliveryOfficeNumber ::= PDSParameter
+--
+--extension-OR-address-components EXTENSION-ATTRIBUTE ::=
+-- {ExtensionORAddressComponents IDENTIFIED BY 12}
+--
+--ExtensionORAddressComponents ::= PDSParameter
+--
+--physical-delivery-personal-name EXTENSION-ATTRIBUTE ::=
+-- {PhysicalDeliveryPersonalName IDENTIFIED BY 13}
+--
+--PhysicalDeliveryPersonalName ::= PDSParameter
+--
+--physical-delivery-organization-name EXTENSION-ATTRIBUTE ::=
+-- {PhysicalDeliveryOrganizationName IDENTIFIED BY 14}
+--
+--PhysicalDeliveryOrganizationName ::= PDSParameter
+--
+--extension-physical-delivery-address-components EXTENSION-ATTRIBUTE ::=
+-- {ExtensionPhysicalDeliveryAddressComponents IDENTIFIED BY 15}
+--
+--ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
+--
+--unformatted-postal-address EXTENSION-ATTRIBUTE ::=
+-- {UnformattedPostalAddress IDENTIFIED BY 16}
+--
+--UnformattedPostalAddress ::= SET {
+-- printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
+-- PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL,
+-- teletex-string TeletexString (SIZE
+-- (1..ub-unformatted-address-length)) OPTIONAL }
+--
+--street-address EXTENSION-ATTRIBUTE ::=
+-- {StreetAddress IDENTIFIED BY 17}
+--
+--StreetAddress ::= PDSParameter
+--
+--post-office-box-address EXTENSION-ATTRIBUTE ::=
+-- {PostOfficeBoxAddress IDENTIFIED BY 18}
+--
+--PostOfficeBoxAddress ::= PDSParameter
+--
+--poste-restante-address EXTENSION-ATTRIBUTE ::=
+-- {PosteRestanteAddress IDENTIFIED BY 19}
+--
+--PosteRestanteAddress ::= PDSParameter
+--
+--unique-postal-name EXTENSION-ATTRIBUTE ::=
+-- {UniquePostalName IDENTIFIED BY 20}
+--
+--UniquePostalName ::= PDSParameter
+--
+--local-postal-attributes EXTENSION-ATTRIBUTE ::=
+-- {LocalPostalAttributes IDENTIFIED BY 21}
+--
+--LocalPostalAttributes ::= PDSParameter
+--
+--PDSParameter ::= SET {
+-- printable-string PrintableString
+-- (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
+-- teletex-string TeletexString
+-- (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
+--
+--extended-network-address EXTENSION-ATTRIBUTE ::=
+-- {ExtendedNetworkAddress IDENTIFIED BY 22}
+--
+--ExtendedNetworkAddress ::= CHOICE {
+-- e163-4-address SEQUENCE {
+-- number [0] NumericString
+-- (SIZE (1..ub-e163-4-number-length)),
+-- sub-address [1] NumericString
+-- (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL},
+-- psap-address [0] PresentationAddress }
+--
+--PresentationAddress ::= SEQUENCE {
+-- pSelector [0] EXPLICIT OCTET STRING OPTIONAL,
+-- sSelector [1] EXPLICIT OCTET STRING OPTIONAL,
+-- tSelector [2] EXPLICIT OCTET STRING OPTIONAL,
+-- nAddresses [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING}
+--
+--
+--terminal-type EXTENSION-ATTRIBUTE ::= {TerminalType IDENTIFIED BY 23}
+
+TerminalType ::= INTEGER {
+ telex (3),
+ teletex (4),
+ g3-facsimile (5),
+ g4-facsimile (6),
+ ia5-terminal (7),
+ videotex (8) }
+
+-- Extension Domain-defined Attributes
+--
+--teletex-domain-defined-attributes EXTENSION-ATTRIBUTE ::=
+-- {TeletexDomainDefinedAttributes IDENTIFIED BY 6}
+--
+--TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
+-- (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
+
+TeletexDomainDefinedAttribute ::= SEQUENCE {
+ type TeletexString,
+ value TeletexString
+}
+
+-- specifications of Upper Bounds
+-- shall be regarded as mandatory
+-- from Annex B of ITU-T X.411
+-- Reference Definition of MTS Parameter Upper Bounds
+--
+-- Upper Bounds
+--ub-name INTEGER ::= 32768
+--ub-common-name INTEGER ::= 64
+--ub-locality-name INTEGER ::= 128
+--ub-state-name INTEGER ::= 128
+--ub-organization-name INTEGER ::= 64
+--ub-organizational-unit-name INTEGER ::= 64
+--ub-title INTEGER ::= 64
+--ub-match INTEGER ::= 128
+--
+--ub-emailaddress-length INTEGER ::= 128
+--
+--ub-common-name-length INTEGER ::= 64
+--ub-country-name-alpha-length INTEGER ::= 2
+--ub-country-name-numeric-length INTEGER ::= 3
+--ub-domain-defined-attributes INTEGER ::= 4
+--ub-domain-defined-attribute-type-length INTEGER ::= 8
+--ub-domain-defined-attribute-value-length INTEGER ::= 128
+--ub-domain-name-length INTEGER ::= 16
+--ub-extension-attributes INTEGER ::= 256
+--ub-e163-4-number-length INTEGER ::= 15
+--ub-e163-4-sub-address-length INTEGER ::= 40
+--ub-generation-qualifier-length INTEGER ::= 3
+--ub-given-name-length INTEGER ::= 16
+--ub-initials-length INTEGER ::= 5
+--ub-integer-options INTEGER ::= 256
+--ub-numeric-user-id-length INTEGER ::= 32
+--ub-organization-name-length INTEGER ::= 64
+--ub-organizational-unit-name-length INTEGER ::= 32
+--ub-organizational-units INTEGER ::= 4
+--ub-pds-name-length INTEGER ::= 16
+--ub-pds-parameter-length INTEGER ::= 30
+--ub-pds-physical-address-lines INTEGER ::= 6
+--ub-postal-code-length INTEGER ::= 16
+--ub-surname-length INTEGER ::= 40
+--ub-terminal-id-length INTEGER ::= 24
+--ub-unformatted-address-length INTEGER ::= 180
+--
+--ub-x121-address-length INTEGER ::= 16
+--
+-- Note - upper bounds on TeletexString are measured in characters.
+-- A significantly greater number of octets will be required to hold
+-- such a value. As a minimum, 16 octets, or twice the specified upper
+-- bound, whichever is the larger, should be allowed.
+
+END
diff --git a/asn1/pkix1explicit/packet-pkix1explicit-template.c b/asn1/pkix1explicit/packet-pkix1explicit-template.c
new file mode 100644
index 0000000000..e64e72ab45
--- /dev/null
+++ b/asn1/pkix1explicit/packet-pkix1explicit-template.c
@@ -0,0 +1,113 @@
+#define BER_UNI_TAG_TeletexString 20 /* workaround bug in asn2eth */
+
+/* packet-pkix1explicit.c
+ * Routines for PKIX1Explitic packet dissection
+ *
+ * $Id: packet-pkix1explicit-template.c,v 1.2 2004/05/25 21:07:43 guy Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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/conversation.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-ber.h"
+#include "packet-pkix1explicit.h"
+#include "packet-x509af.h"
+#include "packet-x509if.h"
+
+#define PNAME "PKIX1Explitit"
+#define PSNAME "PKIX1EXPLICIT"
+#define PFNAME "pkix1explicit"
+
+/* Initialize the protocol and registered fields */
+static int proto_pkix1explicit = -1;
+#include "packet-pkix1explicit-hf.c"
+
+/* Initialize the subtree pointers */
+#include "packet-pkix1explicit-ett.c"
+
+
+int
+dissect_pkix1explicit_CertificateSerialNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509af_CertificateSerialNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+int
+dissect_pkix1explicit_Name(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index) {
+ offset = dissect_x509if_Name(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+static int
+dissect_pkix1explicit_AlgorithmIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_x509af_AlgorithmIdentifier(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+int
+dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index) {
+ offset = dissect_x509af_SubjectPublicKeyInfo(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+#include "packet-pkix1explicit-fn.c"
+
+
+/*--- proto_register_pkix1explicit ----------------------------------------------*/
+void proto_register_pkix1explicit(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-pkix1explicit-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+#include "packet-pkix1explicit-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_pkix1explicit = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_pkix1explicit, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+}
+
+
+/*--- proto_reg_handoff_pkix1explicit -------------------------------------------*/
+void proto_reg_handoff_pkix1explicit(void) {
+}
+
diff --git a/asn1/pkix1explicit/packet-pkix1explicit-template.h b/asn1/pkix1explicit/packet-pkix1explicit-template.h
new file mode 100644
index 0000000000..975f44343d
--- /dev/null
+++ b/asn1/pkix1explicit/packet-pkix1explicit-template.h
@@ -0,0 +1,37 @@
+/* packet-pkix1explicit.h
+ * Routines for PKIX1Explicit packet dissection
+ *
+ * $Id: packet-pkix1explicit-template.h,v 1.1 2004/05/24 08:42:29 sahlberg Exp $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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.
+ */
+
+#ifndef PACKET_PKIX1EXPLICIT_H
+#define PACKET_PKIX1EXPLICIT_H
+
+int dissect_pkix1explicit_CertificateSerialNumber(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+int dissect_pkix1explicit_Name(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+int dissect_pkix1explicit_AlgorithmIdentifier(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index);
+int dissect_pkix1explicit_SubjectPublicKeyInfo(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);
+
+
+/*#include "packet-pkix1explicit-exp.h"*/
+
+#endif /* PACKET_PKIX1EXPLICIT_H */
+
diff --git a/asn1/pkix1explicit/pkix1explicit.cnf b/asn1/pkix1explicit/pkix1explicit.cnf
new file mode 100644
index 0000000000..612b8d0947
--- /dev/null
+++ b/asn1/pkix1explicit/pkix1explicit.cnf
@@ -0,0 +1,21 @@
+# pkix1explicit.cnf
+# pkix1explicit conformation file
+
+# $Id: pkix1explicit.cnf,v 1.2 2004/06/03 08:35:44 guy Exp $
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+#.PDU
+
+#.NO_EMIT
+
+CertificateSerialNumber
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.END
+
diff --git a/asn1/pkix1explicit/pkix1explicit_exp.cnf b/asn1/pkix1explicit/pkix1explicit_exp.cnf
new file mode 100644
index 0000000000..ec75539dde
--- /dev/null
+++ b/asn1/pkix1explicit/pkix1explicit_exp.cnf
@@ -0,0 +1,15 @@
+
+#.IMPORT_TAG
+AlgorithmIdentifier BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+CertificateSerialNumber BER_CLASS_UNI BER_UNI_TAG_INTEGER
+Name BER_CLASS_ANY -1
+SubjectPublicKeyInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE
+#.END
+
+#.TYPE_ATTR
+CertificateSerialNumber TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+Name TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0
+SubjectPublicKeyInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0
+#.END
+
+