diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-12-24 11:32:13 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2004-12-24 11:32:13 +0000 |
commit | ec6fa27a6db140baa02ce10e7cb43b5307dcac71 (patch) | |
tree | 86ea407ae2b247c9a5b0382e90873b3a667fd9eb /asn1 | |
parent | 14a6b30376421a8d7830742a69b81c9ea43b0a6a (diff) |
New "protocol" the support functions from RFC2511 Certificate Request Message Format CRMF
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@12825 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/pkixcrmf/CRMF.asn | 287 | ||||
-rwxr-xr-x | asn1/pkixcrmf/Makefile | 5 | ||||
-rw-r--r-- | asn1/pkixcrmf/crmf-exp.cnf | 60 | ||||
-rw-r--r-- | asn1/pkixcrmf/crmf.cnf | 64 | ||||
-rw-r--r-- | asn1/pkixcrmf/packet-crmf-template.c | 91 | ||||
-rw-r--r-- | asn1/pkixcrmf/packet-crmf-template.h | 32 |
6 files changed, 539 insertions, 0 deletions
diff --git a/asn1/pkixcrmf/CRMF.asn b/asn1/pkixcrmf/CRMF.asn new file mode 100644 index 0000000000..2622442ca5 --- /dev/null +++ b/asn1/pkixcrmf/CRMF.asn @@ -0,0 +1,287 @@ +-- This ASN1 definition is taken from RFC2511 and modified to pass through +-- the ASN2ETH compiler. +-- +-- The copyright statement from the original description in RFC2511 +-- follows below: +-- +-- +-- 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. + +--PKIXCRMF {iso(1) identified-organization(3) dod(6) internet(1) +-- security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-crmf(5)} + +CRMF DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +IMPORTS + -- Directory Authentication Framework (X.509) + AlgorithmIdentifier, Name, + SubjectPublicKeyInfo, Extensions + FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-pkix1-explicit-88(1)} + + -- Certificate Extensions (X.509) + GeneralName + FROM PKIX1Implicit88 {iso(1) identified-organization(3) dod(6) + internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) + id-pkix1-implicit-88(2)} + + -- Cryptographic Message Syntax + EnvelopedData + FROM CryptographicMessageSyntax { iso(1) member-body(2) + us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) + modules(0) cms(1) }; + + +--copied in from pkix1explicit +Version ::= INTEGER { v1(0), v2(1), v3(2) } +UniqueIdentifier ::= BIT STRING +Time ::= CHOICE { + utcTime UTCTime, + generalTime GeneralizedTime } + + + +CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg + +CertReqMsg ::= SEQUENCE { + certReq CertRequest, + pop ProofOfPossession OPTIONAL, + -- content depends upon key type + regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL } + +CertRequest ::= SEQUENCE { + certReqId INTEGER, -- ID for matching request and reply + certTemplate CertTemplate, -- Selected fields of cert to be issued + controls Controls OPTIONAL } -- Attributes affecting issuance + +CertTemplate ::= SEQUENCE { + version [0] Version OPTIONAL, + serialNumber [1] INTEGER OPTIONAL, + signingAlg [2] AlgorithmIdentifier OPTIONAL, + issuer [3] Name OPTIONAL, + validity [4] OptionalValidity OPTIONAL, + subject [5] Name OPTIONAL, + publicKey [6] SubjectPublicKeyInfo OPTIONAL, + issuerUID [7] UniqueIdentifier OPTIONAL, + subjectUID [8] UniqueIdentifier OPTIONAL, + extensions [9] Extensions OPTIONAL } + +OptionalValidity ::= SEQUENCE { + notBefore [0] Time OPTIONAL, + notAfter [1] Time OPTIONAL } --at least one MUST be present + +Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue + +AttributeTypeAndValue ::= SEQUENCE { + type OBJECT IDENTIFIER, + value ANY } + +ProofOfPossession ::= CHOICE { + raVerified [0] NULL, + -- used if the RA has already verified that the requester is in + -- possession of the private key + signature [1] POPOSigningKey, + keyEncipherment [2] POPOPrivKey, + keyAgreement [3] POPOPrivKey } + +POPOSigningKey ::= SEQUENCE { + poposkInput [0] POPOSigningKeyInput OPTIONAL, + algorithmIdentifier AlgorithmIdentifier, + signature BIT STRING } + -- The signature (using "algorithmIdentifier") is on the + -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg + -- certReq CertTemplate contains the subject and publicKey values, + -- then poposkInput MUST be omitted and the signature MUST be + -- computed on the DER-encoded value of CertReqMsg certReq. If + -- the CertReqMsg certReq CertTemplate does not contain the public + -- key and subject values, then poposkInput MUST be present and + -- MUST be signed. This strategy ensures that the public key is + -- not present in both the poposkInput and CertReqMsg certReq + -- CertTemplate fields. + +POPOSigningKeyInput ::= SEQUENCE { + authInfo CHOICE { + sender [0] GeneralName, + -- used only if an authenticated identity has been + -- established for the sender (e.g., a DN from a + -- previously-issued and currently-valid certificate + publicKeyMAC PKMACValue }, + -- used if no authenticated GeneralName currently exists for + -- the sender; publicKeyMAC contains a password-based MAC + -- on the DER-encoded value of publicKey + publicKey SubjectPublicKeyInfo } -- from CertTemplate + +PKMACValue ::= SEQUENCE { + algId AlgorithmIdentifier, + -- algorithm value shall be PasswordBasedMac {1 2 840 113533 7 66 13} + -- parameter value is PBMParameter + value BIT STRING } + +PBMParameter ::= SEQUENCE { + salt OCTET STRING, + owf AlgorithmIdentifier, + -- AlgId for a One-Way Function (SHA-1 recommended) + iterationCount INTEGER, + -- number of times the OWF is applied + mac AlgorithmIdentifier + -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11], +} -- or HMAC [RFC2104, RFC2202]) + +POPOPrivKey ::= CHOICE { + thisMessage [0] BIT STRING, + -- posession is proven in this message (which contains the private + -- key itself (encrypted for the CA)) + subsequentMessage [1] SubsequentMessage, + -- possession will be proven in a subsequent message + dhMAC [2] BIT STRING } + -- for keyAgreement (only), possession is proven in this message + -- (which contains a MAC (over the DER-encoded value of the + -- certReq parameter in CertReqMsg, which MUST include both subject + -- and publicKey) based on a key derived from the end entity's + -- private DH key and the CA's public DH key); + -- the dhMAC value MUST be calculated as per the directions given + -- in Appendix A. + +SubsequentMessage ::= INTEGER { + encrCert (0), + -- requests that resulting certificate be encrypted for the + -- end entity (following which, POP will be proven in a + -- confirmation message) + challengeResp (1) } + -- requests that CA engage in challenge-response exchange with + -- end entity in order to prove private key possession + +-- Object identifier assignments -- + +id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) +dod(6) internet(1) security(5) mechanisms(5) 7 } + +-- arc for Internet X.509 PKI protocols and their components +id-pkip OBJECT IDENTIFIER ::= { id-pkix 5 } + +-- Registration Controls in CRMF +id-regCtrl OBJECT IDENTIFIER ::= { id-pkip 1 } + +-- The following definition may be uncommented for use with +-- ASN.1 compilers which do not understand UTF8String. + +-- UTF8String ::= [UNIVERSAL 12] IMPLICIT OCTET STRING + +id-regCtrl-regToken OBJECT IDENTIFIER ::= { id-regCtrl 1 } +--with syntax: +RegToken ::= UTF8String + +id-regCtrl-authenticator OBJECT IDENTIFIER ::= { id-regCtrl 2 } +--with syntax: +Authenticator ::= UTF8String + +id-regCtrl-pkiPublicationInfo OBJECT IDENTIFIER ::= { id-regCtrl 3 } +--with syntax: + +PKIPublicationInfo ::= SEQUENCE { + action INTEGER { + dontPublish (0), + pleasePublish (1) }, + pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL } + -- pubInfos MUST NOT be present if action is "dontPublish" + -- (if action is "pleasePublish" and pubInfos is omitted, + -- "dontCare" is assumed) + +SinglePubInfo ::= SEQUENCE { + pubMethod INTEGER { + dontCare (0), + x500 (1), + web (2), + ldap (3) }, + pubLocation GeneralName OPTIONAL } + +id-regCtrl-pkiArchiveOptions OBJECT IDENTIFIER ::= { id-regCtrl 4 } +--with syntax: +PKIArchiveOptions ::= CHOICE { + encryptedPrivKey [0] EncryptedKey, + -- the actual value of the private key + keyGenParameters [1] KeyGenParameters, + -- parameters which allow the private key to be re-generated + archiveRemGenPrivKey [2] BOOLEAN } + -- set to TRUE if sender wishes receiver to archive the private + -- key of a key pair which the receiver generates in response to + -- this request; set to FALSE if no archival is desired. + +EncryptedKey ::= CHOICE { + encryptedValue EncryptedValue, + envelopedData [0] EnvelopedData } + -- The encrypted private key MUST be placed in the envelopedData + -- encryptedContentInfo encryptedContent OCTET STRING. + + +EncryptedValue ::= SEQUENCE { + intendedAlg [0] AlgorithmIdentifier OPTIONAL, + -- the intended algorithm for which the value will be used + symmAlg [1] AlgorithmIdentifier OPTIONAL, + -- the symmetric algorithm used to encrypt the value + encSymmKey [2] BIT STRING OPTIONAL, + -- the (encrypted) symmetric key used to encrypt the value + keyAlg [3] AlgorithmIdentifier OPTIONAL, + -- algorithm used to encrypt the symmetric key + valueHint [4] OCTET STRING OPTIONAL, + -- a brief description or identifier of the encValue content + -- (may be meaningful only to the sending entity, and used only + -- if EncryptedValue might be re-examined by the sending entity + -- in the future) + encValue BIT STRING } + -- the encrypted value itself + +KeyGenParameters ::= OCTET STRING + +id-regCtrl-oldCertID OBJECT IDENTIFIER ::= { id-regCtrl 5 } +--with syntax: +OldCertId ::= CertId + +CertId ::= SEQUENCE { + issuer GeneralName, + serialNumber INTEGER } + +id-regCtrl-protocolEncrKey OBJECT IDENTIFIER ::= { id-regCtrl 6 } +--with syntax: +ProtocolEncrKey ::= SubjectPublicKeyInfo + +-- Registration Info in CRMF +id-regInfo OBJECT IDENTIFIER ::= { id-pkip 2 } + +id-regInfo-utf8Pairs OBJECT IDENTIFIER ::= { id-regInfo 1 } +--with syntax +UTF8Pairs ::= UTF8String + +id-regInfo-certReq OBJECT IDENTIFIER ::= { id-regInfo 2 } +--with syntax +CertReq ::= CertRequest + +END diff --git a/asn1/pkixcrmf/Makefile b/asn1/pkixcrmf/Makefile new file mode 100755 index 0000000000..cf74753397 --- /dev/null +++ b/asn1/pkixcrmf/Makefile @@ -0,0 +1,5 @@ + +../../epan/dissectors/packet-crmf.c : ../../tools/asn2eth.py CRMF.asn packet-crmf-template.c packet-crmf-template.h crmf.cnf + python ../../tools/asn2eth.py -X -b -e -p crmf -c crmf.cnf -s packet-crmf-template CRMF.asn + cp packet-crmf.* ../../epan/dissectors + diff --git a/asn1/pkixcrmf/crmf-exp.cnf b/asn1/pkixcrmf/crmf-exp.cnf new file mode 100644 index 0000000000..0a88e5fcb8 --- /dev/null +++ b/asn1/pkixcrmf/crmf-exp.cnf @@ -0,0 +1,60 @@ +#.IMPORT_TAG +CertReqMessages BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +CertReqMsg BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +CertRequest BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +CertTemplate BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +OptionalValidity BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +Controls BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +AttributeTypeAndValue BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ProofOfPossession BER_CLASS_CON -1/*choice*/ +POPOSigningKey BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +POPOSigningKeyInput BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +PKMACValue BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +PBMParameter BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +POPOPrivKey BER_CLASS_CON -1/*choice*/ +SubsequentMessage BER_CLASS_UNI BER_UNI_TAG_INTEGER +RegToken BER_CLASS_UNI BER_UNI_TAG_UTF8String +Authenticator BER_CLASS_UNI BER_UNI_TAG_UTF8String +PKIPublicationInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +SinglePubInfo BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +PKIArchiveOptions BER_CLASS_CON -1/*choice*/ +EncryptedKey -1/*choice*/ -1/*choice*/ +EncryptedValue BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +KeyGenParameters BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +OldCertId BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +CertId BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +ProtocolEncrKey BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +UTF8Pairs BER_CLASS_UNI BER_UNI_TAG_UTF8String +CertReq BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +#.END + +#.TYPE_ATTR +CertReqMessages TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +CertReqMsg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +CertRequest TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +CertTemplate TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +OptionalValidity TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +Controls TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +AttributeTypeAndValue TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +ProofOfPossession TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(ProofOfPossession_vals) BITMASK = 0 +POPOSigningKey TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +POPOSigningKeyInput TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +PKMACValue TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +PBMParameter TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +POPOPrivKey TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(POPOPrivKey_vals) BITMASK = 0 +SubsequentMessage TYPE = FT_INT32 DISPLAY = BASE_DEC STRINGS = VALS(SubsequentMessage_vals) BITMASK = 0 +RegToken TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +Authenticator TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +PKIPublicationInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +SinglePubInfo TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +PKIArchiveOptions TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(PKIArchiveOptions_vals) BITMASK = 0 +EncryptedKey TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(EncryptedKey_vals) BITMASK = 0 +EncryptedValue TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +KeyGenParameters TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +OldCertId TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +CertId TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +ProtocolEncrKey TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +UTF8Pairs TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +CertReq TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +#.END + diff --git a/asn1/pkixcrmf/crmf.cnf b/asn1/pkixcrmf/crmf.cnf new file mode 100644 index 0000000000..e34342c4ea --- /dev/null +++ b/asn1/pkixcrmf/crmf.cnf @@ -0,0 +1,64 @@ +# CRMF.cnf +# CRMF conformation file + +# $Id: cmrf.cnf 12740 2004-12-13 08:15:34Z sahlberg $ + +#.MODULE_IMPORT +CryptographicMessageSyntax cms +PKIX1Explicit88 pkix1explicit +PKIX1Implicit88 pkix1implicit + +#.INCLUDE ../cms/cms-exp.cnf +#.INCLUDE ../pkix1explicit/pkix1explicit_exp.cnf +#.INCLUDE ../pkix1implicit/pkix1implicit_exp.cnf + +#.EXPORTS +Authenticator +AttributeTypeAndValue +CertId +CertReq +CertReqMessages +CertReqMsg +CertRequest +CertTemplate +Controls +EncryptedKey +EncryptedValue +KeyGenParameters +OldCertId +OptionalValidity +PBMParameter +PKIArchiveOptions +PKIPublicationInfo +PKMACValue +POPOPrivKey +POPOSigningKey +POPOSigningKeyInput +ProofOfPossession +ProtocolEncrKey +RegToken +SinglePubInfo +SubsequentMessage +UTF8Pairs + +#.REGISTER + +#.NO_EMIT + +#.TYPE_RENAME + +#.FIELD_RENAME +CertTemplate/issuer template_issuer +POPOSigningKey/signature sk_signature +PKMACValue/value pkmac_value + +#.FN_BODY AttributeTypeAndValue/type + offset = dissect_ber_object_identifier(FALSE, pinfo, tree, tvb, offset, + hf_crmf_type_oid, object_identifier_id); + +#.FN_BODY AttributeTypeAndValue/value + offset=call_ber_oid_callback(object_identifier_id, tvb, offset, pinfo, tree); + +#.END + + diff --git a/asn1/pkixcrmf/packet-crmf-template.c b/asn1/pkixcrmf/packet-crmf-template.c new file mode 100644 index 0000000000..5258037fb8 --- /dev/null +++ b/asn1/pkixcrmf/packet-crmf-template.c @@ -0,0 +1,91 @@ +/* packet-crmf.c + * Routines for RFC2511 Certificate Request Message Format packet dissection + * Ronnie Sahlberg 2004 + * + * $Id: packet-crmf-template.c 12740 2004-12-13 08:15:34Z sahlberg $ + * + * 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-crmf.h" +#include "packet-cms.h" +#include "packet-pkix1explicit.h" +#include "packet-pkix1implicit.h" + +#define PNAME "Certificate Request Message Format" +#define PSNAME "CRMF" +#define PFNAME "crmf" + +/* Initialize the protocol and registered fields */ +int proto_crmf = -1; +static int hf_crmf_type_oid = -1; +#include "packet-crmf-hf.c" + +/* Initialize the subtree pointers */ +#include "packet-crmf-ett.c" + +static char object_identifier_id[64]; /*64 chars should be long enough? */ + +#include "packet-crmf-fn.c" + + +/*--- proto_register_crmf ----------------------------------------------*/ +void proto_register_crmf(void) { + + /* List of fields */ + static hf_register_info hf[] = { + { &hf_crmf_type_oid, + { "Type", "crmf.type.oid", + FT_STRING, BASE_NONE, NULL, 0, + "Type of AttributeTypeAndValue", HFILL }}, +#include "packet-crmf-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { +#include "packet-crmf-ettarr.c" + }; + + /* Register protocol */ + proto_crmf = proto_register_protocol(PNAME, PSNAME, PFNAME); + + /* Register fields and subtrees */ + proto_register_field_array(proto_crmf, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + +} + + +/*--- proto_reg_handoff_crmf -------------------------------------------*/ +void proto_reg_handoff_crmf(void) { +/*#include "packet-crmf-dis-tab.c"*/ +} + diff --git a/asn1/pkixcrmf/packet-crmf-template.h b/asn1/pkixcrmf/packet-crmf-template.h new file mode 100644 index 0000000000..c7becfbfd9 --- /dev/null +++ b/asn1/pkixcrmf/packet-crmf-template.h @@ -0,0 +1,32 @@ +/* packet-crmf.h + * Routines for RFC2511 Certificate Request Message Format packet dissection + * Ronnie Sahlberg 2004 + * + * $Id: packet-crmf-template.h 12573 2004-11-22 03:36:26Z sahlberg $ + * + * 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_CRMF_H +#define PACKET_CRMF_H + +#include "packet-crmf-exp.h" + +#endif /* PACKET_CRMF_H */ + |