2004-07-20 09:11:40 +00:00
/* Do not modify this file. */
2006-05-24 12:24:54 +00:00
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
2007-10-31 08:26:52 +00:00
/* packet-cms.c */
2010-01-12 11:49:17 +00:00
/* ../../tools/asn2wrs.py -b -e -C -p cms -c ./cms.cnf -s ./packet-cms-template -D . CryptographicMessageSyntax.asn AttributeCertificateVersion1.asn */
2004-07-20 09:11:40 +00:00
/* Input file: packet-cms-template.c */
2005-12-05 23:00:03 +00:00
# line 1 "packet-cms-template.c"
2004-07-20 09:11:40 +00:00
/* packet-cms.c
2010-01-12 14:29:53 +00:00
* Routines for RFC5652 Cryptographic Message Syntax packet dissection
2004-11-22 03:36:26 +00:00
* Ronnie Sahlberg 2004
2010-01-12 14:29:53 +00:00
* Stig Bjorlykke 2010
2004-07-20 09:11:40 +00:00
*
2005-07-09 02:58:07 +00:00
* $ Id $
2004-07-20 09:11:40 +00:00
*
2006-05-21 04:49:01 +00:00
* Wireshark - Network traffic analyzer
* By Gerald Combs < gerald @ wireshark . org >
2004-07-20 09:11:40 +00:00
* 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>
2007-08-25 01:14:24 +00:00
# include <epan/oids.h>
2007-05-13 20:58:29 +00:00
# include <epan/asn1.h>
2004-07-20 09:11:40 +00:00
# include <stdio.h>
# include <string.h>
# include "packet-ber.h"
# include "packet-cms.h"
# include "packet-x509af.h"
2010-01-12 11:49:17 +00:00
# include "packet-x509ce.h"
2004-07-25 10:41:39 +00:00
# include "packet-x509if.h"
2010-01-12 11:49:17 +00:00
# include "packet-x509sat.h"
2007-08-17 19:14:39 +00:00
# include "packet-pkcs12.h"
2004-07-20 09:11:40 +00:00
2007-01-12 00:33:32 +00:00
# include <epan/crypt/crypt-sha1.h>
2007-01-02 22:49:57 +00:00
# include <epan/crypt/crypt-md5.h>
2005-11-16 07:13:12 +00:00
2004-07-20 09:11:40 +00:00
# define PNAME "Cryptographic Message Syntax"
# define PSNAME "CMS"
# define PFNAME "cms"
/* Initialize the protocol and registered fields */
2009-10-11 16:24:29 +00:00
static int proto_cms = - 1 ;
2004-09-16 09:01:20 +00:00
static int hf_cms_ci_contentType = - 1 ;
2004-07-20 09:11:40 +00:00
/*--- Included file: packet-cms-hf.c ---*/
2005-12-05 23:00:03 +00:00
# line 1 "packet-cms-hf.c"
2005-10-02 21:14:35 +00:00
static int hf_cms_ContentInfo_PDU = - 1 ; /* ContentInfo */
2005-10-03 05:17:51 +00:00
static int hf_cms_ContentType_PDU = - 1 ; /* ContentType */
2004-10-26 13:53:30 +00:00
static int hf_cms_SignedData_PDU = - 1 ; /* SignedData */
static int hf_cms_EnvelopedData_PDU = - 1 ; /* EnvelopedData */
static int hf_cms_DigestedData_PDU = - 1 ; /* DigestedData */
static int hf_cms_EncryptedData_PDU = - 1 ; /* EncryptedData */
static int hf_cms_AuthenticatedData_PDU = - 1 ; /* AuthenticatedData */
2007-01-28 10:20:51 +00:00
static int hf_cms_IssuerAndSerialNumber_PDU = - 1 ; /* IssuerAndSerialNumber */
2005-10-03 05:17:51 +00:00
static int hf_cms_MessageDigest_PDU = - 1 ; /* MessageDigest */
static int hf_cms_SigningTime_PDU = - 1 ; /* SigningTime */
static int hf_cms_Countersignature_PDU = - 1 ; /* Countersignature */
2007-01-28 10:20:51 +00:00
static int hf_cms_RC2WrapParameter_PDU = - 1 ; /* RC2WrapParameter */
static int hf_cms_SMIMECapabilities_PDU = - 1 ; /* SMIMECapabilities */
static int hf_cms_SMIMEEncryptionKeyPreference_PDU = - 1 ; /* SMIMEEncryptionKeyPreference */
static int hf_cms_RC2CBCParameters_PDU = - 1 ; /* RC2CBCParameters */
2007-01-13 15:26:13 +00:00
static int hf_cms_contentType = - 1 ; /* ContentType */
2004-10-29 12:11:42 +00:00
static int hf_cms_content = - 1 ; /* T_content */
2004-07-20 09:11:40 +00:00
static int hf_cms_version = - 1 ; /* CMSVersion */
static int hf_cms_digestAlgorithms = - 1 ; /* DigestAlgorithmIdentifiers */
static int hf_cms_encapContentInfo = - 1 ; /* EncapsulatedContentInfo */
static int hf_cms_certificates = - 1 ; /* CertificateSet */
2010-01-12 14:29:53 +00:00
static int hf_cms_crls = - 1 ; /* RevocationInfoChoices */
2004-07-20 09:11:40 +00:00
static int hf_cms_signerInfos = - 1 ; /* SignerInfos */
static int hf_cms_DigestAlgorithmIdentifiers_item = - 1 ; /* DigestAlgorithmIdentifier */
static int hf_cms_SignerInfos_item = - 1 ; /* SignerInfo */
2007-01-13 15:26:13 +00:00
static int hf_cms_eContentType = - 1 ; /* ContentType */
2004-10-29 12:11:42 +00:00
static int hf_cms_eContent = - 1 ; /* T_eContent */
2004-07-20 09:11:40 +00:00
static int hf_cms_sid = - 1 ; /* SignerIdentifier */
static int hf_cms_digestAlgorithm = - 1 ; /* DigestAlgorithmIdentifier */
static int hf_cms_signedAttrs = - 1 ; /* SignedAttributes */
static int hf_cms_signatureAlgorithm = - 1 ; /* SignatureAlgorithmIdentifier */
2004-10-13 00:21:00 +00:00
static int hf_cms_signatureValue = - 1 ; /* SignatureValue */
2004-07-20 09:11:40 +00:00
static int hf_cms_unsignedAttrs = - 1 ; /* UnsignedAttributes */
static int hf_cms_issuerAndSerialNumber = - 1 ; /* IssuerAndSerialNumber */
static int hf_cms_subjectKeyIdentifier = - 1 ; /* SubjectKeyIdentifier */
static int hf_cms_SignedAttributes_item = - 1 ; /* Attribute */
static int hf_cms_UnsignedAttributes_item = - 1 ; /* Attribute */
2005-10-03 05:17:51 +00:00
static int hf_cms_attrType = - 1 ; /* T_attrType */
static int hf_cms_attrValues = - 1 ; /* SET_OF_AttributeValue */
static int hf_cms_attrValues_item = - 1 ; /* AttributeValue */
2004-07-25 10:34:07 +00:00
static int hf_cms_originatorInfo = - 1 ; /* OriginatorInfo */
static int hf_cms_recipientInfos = - 1 ; /* RecipientInfos */
static int hf_cms_encryptedContentInfo = - 1 ; /* EncryptedContentInfo */
static int hf_cms_unprotectedAttrs = - 1 ; /* UnprotectedAttributes */
static int hf_cms_certs = - 1 ; /* CertificateSet */
static int hf_cms_RecipientInfos_item = - 1 ; /* RecipientInfo */
2005-11-16 07:13:12 +00:00
static int hf_cms_encryptedContentType = - 1 ; /* ContentType */
2004-07-25 10:34:07 +00:00
static int hf_cms_contentEncryptionAlgorithm = - 1 ; /* ContentEncryptionAlgorithmIdentifier */
static int hf_cms_encryptedContent = - 1 ; /* EncryptedContent */
static int hf_cms_UnprotectedAttributes_item = - 1 ; /* Attribute */
static int hf_cms_ktri = - 1 ; /* KeyTransRecipientInfo */
static int hf_cms_kari = - 1 ; /* KeyAgreeRecipientInfo */
static int hf_cms_kekri = - 1 ; /* KEKRecipientInfo */
2010-01-12 11:49:17 +00:00
static int hf_cms_pwri = - 1 ; /* PasswordRecipientInfo */
static int hf_cms_ori = - 1 ; /* OtherRecipientInfo */
2004-07-25 10:34:07 +00:00
static int hf_cms_rid = - 1 ; /* RecipientIdentifier */
static int hf_cms_keyEncryptionAlgorithm = - 1 ; /* KeyEncryptionAlgorithmIdentifier */
static int hf_cms_encryptedKey = - 1 ; /* EncryptedKey */
static int hf_cms_originator = - 1 ; /* OriginatorIdentifierOrKey */
static int hf_cms_ukm = - 1 ; /* UserKeyingMaterial */
static int hf_cms_recipientEncryptedKeys = - 1 ; /* RecipientEncryptedKeys */
static int hf_cms_originatorKey = - 1 ; /* OriginatorPublicKey */
static int hf_cms_algorithm = - 1 ; /* AlgorithmIdentifier */
static int hf_cms_publicKey = - 1 ; /* BIT_STRING */
static int hf_cms_RecipientEncryptedKeys_item = - 1 ; /* RecipientEncryptedKey */
2004-10-13 00:21:00 +00:00
static int hf_cms_rekRid = - 1 ; /* KeyAgreeRecipientIdentifier */
2004-07-25 10:34:07 +00:00
static int hf_cms_rKeyId = - 1 ; /* RecipientKeyIdentifier */
static int hf_cms_date = - 1 ; /* GeneralizedTime */
static int hf_cms_other = - 1 ; /* OtherKeyAttribute */
static int hf_cms_kekid = - 1 ; /* KEKIdentifier */
static int hf_cms_keyIdentifier = - 1 ; /* OCTET_STRING */
2010-01-12 11:49:17 +00:00
static int hf_cms_keyDerivationAlgorithm = - 1 ; /* KeyDerivationAlgorithmIdentifier */
static int hf_cms_oriType = - 1 ; /* T_oriType */
static int hf_cms_oriValue = - 1 ; /* T_oriValue */
2004-07-25 10:34:07 +00:00
static int hf_cms_digest = - 1 ; /* Digest */
static int hf_cms_macAlgorithm = - 1 ; /* MessageAuthenticationCodeAlgorithm */
2010-01-12 11:49:17 +00:00
static int hf_cms_authAttrs = - 1 ; /* AuthAttributes */
2004-07-25 10:34:07 +00:00
static int hf_cms_mac = - 1 ; /* MessageAuthenticationCode */
2010-01-12 11:49:17 +00:00
static int hf_cms_unauthAttrs = - 1 ; /* UnauthAttributes */
2004-07-20 09:11:40 +00:00
static int hf_cms_AuthAttributes_item = - 1 ; /* Attribute */
static int hf_cms_UnauthAttributes_item = - 1 ; /* Attribute */
2010-01-12 14:29:53 +00:00
static int hf_cms_RevocationInfoChoices_item = - 1 ; /* RevocationInfoChoice */
static int hf_cms_crl = - 1 ; /* CertificateList */
static int hf_cms_otherRIC = - 1 ; /* OtherRevocationInfoFormat */
static int hf_cms_otherRevInfoFormat = - 1 ; /* T_otherRevInfoFormat */
static int hf_cms_otherRevInfo = - 1 ; /* T_otherRevInfo */
2004-07-20 09:11:40 +00:00
static int hf_cms_certificate = - 1 ; /* Certificate */
static int hf_cms_extendedCertificate = - 1 ; /* ExtendedCertificate */
2010-01-12 11:49:17 +00:00
static int hf_cms_v1AttrCert = - 1 ; /* AttributeCertificateV1 */
static int hf_cms_v2AttrCert = - 1 ; /* AttributeCertificateV2 */
2004-07-20 09:11:40 +00:00
static int hf_cms_CertificateSet_item = - 1 ; /* CertificateChoices */
2004-07-25 10:41:39 +00:00
static int hf_cms_issuer = - 1 ; /* Name */
2004-07-20 09:11:40 +00:00
static int hf_cms_serialNumber = - 1 ; /* CertificateSerialNumber */
2004-10-29 12:11:42 +00:00
static int hf_cms_keyAttrId = - 1 ; /* T_keyAttrId */
static int hf_cms_keyAttr = - 1 ; /* T_keyAttr */
2005-10-03 05:17:51 +00:00
static int hf_cms_utcTime = - 1 ; /* UTCTime */
static int hf_cms_generalTime = - 1 ; /* GeneralizedTime */
2007-01-28 10:20:51 +00:00
static int hf_cms_rc2ParameterVersion = - 1 ; /* INTEGER */
static int hf_cms_iv = - 1 ; /* OCTET_STRING */
2004-07-20 09:11:40 +00:00
static int hf_cms_extendedCertificateInfo = - 1 ; /* ExtendedCertificateInfo */
2004-10-13 00:21:00 +00:00
static int hf_cms_signature = - 1 ; /* Signature */
2004-07-20 09:11:40 +00:00
static int hf_cms_attributes = - 1 ; /* UnauthAttributes */
2007-01-28 10:20:51 +00:00
static int hf_cms_SMIMECapabilities_item = - 1 ; /* SMIMECapability */
static int hf_cms_capability = - 1 ; /* T_capability */
static int hf_cms_parameters = - 1 ; /* T_parameters */
static int hf_cms_recipientKeyId = - 1 ; /* RecipientKeyIdentifier */
static int hf_cms_subjectAltKeyIdentifier = - 1 ; /* SubjectKeyIdentifier */
static int hf_cms_rc2WrapParameter = - 1 ; /* RC2WrapParameter */
static int hf_cms_rc2CBCParameter = - 1 ; /* RC2CBCParameter */
2010-01-12 11:49:17 +00:00
static int hf_cms_acInfo = - 1 ; /* AttributeCertificateInfoV1 */
static int hf_cms_signatureAlgorithm_v1 = - 1 ; /* AlgorithmIdentifier */
static int hf_cms_signatureValue_v1 = - 1 ; /* BIT_STRING */
static int hf_cms_version_v1 = - 1 ; /* AttCertVersionV1 */
static int hf_cms_subject = - 1 ; /* T_subject */
static int hf_cms_baseCertificateID = - 1 ; /* IssuerSerial */
static int hf_cms_subjectName = - 1 ; /* GeneralNames */
static int hf_cms_issuer_v1 = - 1 ; /* GeneralNames */
static int hf_cms_signature_v1 = - 1 ; /* AlgorithmIdentifier */
static int hf_cms_attCertValidityPeriod = - 1 ; /* AttCertValidityPeriod */
static int hf_cms_attributes_v1 = - 1 ; /* SEQUENCE_OF_Attribute */
static int hf_cms_attributes_v1_item = - 1 ; /* Attribute */
static int hf_cms_issuerUniqueID = - 1 ; /* UniqueIdentifier */
static int hf_cms_extensions = - 1 ; /* Extensions */
2004-07-20 09:11:40 +00:00
/*--- End of included file: packet-cms-hf.c ---*/
2010-01-12 14:29:53 +00:00
# line 58 "packet-cms-template.c"
2004-07-20 09:11:40 +00:00
/* Initialize the subtree pointers */
/*--- Included file: packet-cms-ett.c ---*/
2005-12-05 23:00:03 +00:00
# line 1 "packet-cms-ett.c"
2004-10-29 12:11:42 +00:00
static gint ett_cms_ContentInfo = - 1 ;
2004-07-20 09:11:40 +00:00
static gint ett_cms_SignedData = - 1 ;
static gint ett_cms_DigestAlgorithmIdentifiers = - 1 ;
static gint ett_cms_SignerInfos = - 1 ;
static gint ett_cms_EncapsulatedContentInfo = - 1 ;
static gint ett_cms_SignerInfo = - 1 ;
static gint ett_cms_SignerIdentifier = - 1 ;
static gint ett_cms_SignedAttributes = - 1 ;
static gint ett_cms_UnsignedAttributes = - 1 ;
static gint ett_cms_Attribute = - 1 ;
2005-10-03 05:17:51 +00:00
static gint ett_cms_SET_OF_AttributeValue = - 1 ;
2004-07-25 10:34:07 +00:00
static gint ett_cms_EnvelopedData = - 1 ;
static gint ett_cms_OriginatorInfo = - 1 ;
static gint ett_cms_RecipientInfos = - 1 ;
static gint ett_cms_EncryptedContentInfo = - 1 ;
static gint ett_cms_UnprotectedAttributes = - 1 ;
static gint ett_cms_RecipientInfo = - 1 ;
static gint ett_cms_KeyTransRecipientInfo = - 1 ;
2004-07-20 09:11:40 +00:00
static gint ett_cms_RecipientIdentifier = - 1 ;
2004-07-25 10:34:07 +00:00
static gint ett_cms_KeyAgreeRecipientInfo = - 1 ;
static gint ett_cms_OriginatorIdentifierOrKey = - 1 ;
static gint ett_cms_OriginatorPublicKey = - 1 ;
static gint ett_cms_RecipientEncryptedKeys = - 1 ;
static gint ett_cms_RecipientEncryptedKey = - 1 ;
static gint ett_cms_KeyAgreeRecipientIdentifier = - 1 ;
static gint ett_cms_RecipientKeyIdentifier = - 1 ;
static gint ett_cms_KEKRecipientInfo = - 1 ;
static gint ett_cms_KEKIdentifier = - 1 ;
2010-01-12 11:49:17 +00:00
static gint ett_cms_PasswordRecipientInfo = - 1 ;
static gint ett_cms_OtherRecipientInfo = - 1 ;
2004-07-25 10:34:07 +00:00
static gint ett_cms_DigestedData = - 1 ;
static gint ett_cms_EncryptedData = - 1 ;
static gint ett_cms_AuthenticatedData = - 1 ;
2004-07-20 09:11:40 +00:00
static gint ett_cms_AuthAttributes = - 1 ;
static gint ett_cms_UnauthAttributes = - 1 ;
2010-01-12 14:29:53 +00:00
static gint ett_cms_RevocationInfoChoices = - 1 ;
static gint ett_cms_RevocationInfoChoice = - 1 ;
static gint ett_cms_OtherRevocationInfoFormat = - 1 ;
2004-07-20 09:11:40 +00:00
static gint ett_cms_CertificateChoices = - 1 ;
static gint ett_cms_CertificateSet = - 1 ;
static gint ett_cms_IssuerAndSerialNumber = - 1 ;
2004-07-25 10:34:07 +00:00
static gint ett_cms_OtherKeyAttribute = - 1 ;
2005-10-03 05:17:51 +00:00
static gint ett_cms_Time = - 1 ;
2007-01-28 10:20:51 +00:00
static gint ett_cms_RC2CBCParameter = - 1 ;
2004-07-20 09:11:40 +00:00
static gint ett_cms_ExtendedCertificate = - 1 ;
static gint ett_cms_ExtendedCertificateInfo = - 1 ;
2007-01-28 10:20:51 +00:00
static gint ett_cms_SMIMECapabilities = - 1 ;
static gint ett_cms_SMIMECapability = - 1 ;
static gint ett_cms_SMIMEEncryptionKeyPreference = - 1 ;
static gint ett_cms_RC2CBCParameters = - 1 ;
2010-01-12 11:49:17 +00:00
static gint ett_cms_AttributeCertificateV1 = - 1 ;
static gint ett_cms_AttributeCertificateInfoV1 = - 1 ;
static gint ett_cms_T_subject = - 1 ;
static gint ett_cms_SEQUENCE_OF_Attribute = - 1 ;
2004-07-20 09:11:40 +00:00
/*--- End of included file: packet-cms-ett.c ---*/
2010-01-12 14:29:53 +00:00
# line 61 "packet-cms-template.c"
2004-07-20 09:11:40 +00:00
2007-05-13 20:58:29 +00:00
static int dissect_cms_OCTET_STRING ( gboolean implicit_tag _U_ , tvbuff_t * tvb , int offset , asn1_ctx_t * actx , proto_tree * tree , int hf_index _U_ ) ; /* XXX kill a compiler warning until asn2wrs stops generating these silly wrappers */
2004-12-13 08:15:34 +00:00
2005-11-14 10:02:31 +00:00
static const char * object_identifier_id ;
2005-11-16 07:13:12 +00:00
static tvbuff_t * content_tvb = NULL ;
static proto_tree * top_tree = NULL ;
2007-01-28 10:20:51 +00:00
static proto_tree * cap_tree = NULL ;
2005-11-16 07:13:12 +00:00
# define HASH_SHA1 "1.3.14.3.2.26"
# define SHA1_BUFFER_SIZE 20
# define HASH_MD5 "1.2.840.113549.2.5"
# define MD5_BUFFER_SIZE 16
/* SHA-2 variants */
# define HASH_SHA224 "2.16.840.1.101.3.4.2.4"
# define SHA224_BUFFER_SIZE 32 /* actually 28 */
# define HASH_SHA256 "2.16.840.1.101.3.4.2.1"
# define SHA256_BUFFER_SIZE 32
unsigned char digest_buf [ MAX ( SHA1_BUFFER_SIZE , MD5_BUFFER_SIZE ) ] ;
static void
2005-11-17 11:50:36 +00:00
cms_verify_msg_digest ( proto_item * pi , tvbuff_t * content , const char * alg , tvbuff_t * tvb , int offset )
2005-11-16 07:13:12 +00:00
{
sha1_context sha1_ctx ;
md5_state_t md5_ctx ;
int i = 0 , buffer_size = 0 ;
/* we only support two algorithms at the moment - if we do add SHA2
we should add a registration process to use a registration process */
if ( strcmp ( alg , HASH_SHA1 ) = = 0 ) {
sha1_starts ( & sha1_ctx ) ;
2007-01-02 22:49:57 +00:00
sha1_update ( & sha1_ctx , tvb_get_ptr ( content , 0 , tvb_length ( content ) ) ,
2005-11-16 07:13:12 +00:00
tvb_length ( content ) ) ;
sha1_finish ( & sha1_ctx , digest_buf ) ;
buffer_size = SHA1_BUFFER_SIZE ;
} else if ( strcmp ( alg , HASH_MD5 ) = = 0 ) {
md5_init ( & md5_ctx ) ;
2007-01-02 22:49:57 +00:00
md5_append ( & md5_ctx , tvb_get_ptr ( content , 0 , tvb_length ( content ) ) ,
2005-11-16 07:13:12 +00:00
tvb_length ( content ) ) ;
2007-01-02 22:49:57 +00:00
2005-11-16 07:13:12 +00:00
md5_finish ( & md5_ctx , digest_buf ) ;
buffer_size = MD5_BUFFER_SIZE ;
}
if ( buffer_size ) {
2007-01-02 22:49:57 +00:00
/* compare our computed hash with what we have received */
2005-11-16 07:13:12 +00:00
if ( tvb_bytes_exist ( tvb , offset , buffer_size ) & &
2007-01-02 22:49:57 +00:00
( memcmp ( tvb_get_ptr ( tvb , offset , buffer_size ) , digest_buf , buffer_size ) ! = 0 ) ) {
2005-11-16 07:13:12 +00:00
proto_item_append_text ( pi , " [incorrect, should be " ) ;
for ( i = 0 ; i < buffer_size ; i + + )
proto_item_append_text ( pi , " %02X " , digest_buf [ i ] ) ;
proto_item_append_text ( pi , " ] " ) ;
}
else
proto_item_append_text ( pi , " [correct] " ) ;
} else {
proto_item_append_text ( pi , " [unable to verify] " ) ;
}
}
2004-07-25 10:34:07 +00:00
2004-07-20 09:11:40 +00:00
/*--- Included file: packet-cms-fn.c ---*/
2005-12-05 23:00:03 +00:00
# line 1 "packet-cms-fn.c"
2004-09-16 09:01:20 +00:00
2005-06-26 05:48:50 +00:00
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_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_ ) {
2010-01-12 14:29:53 +00:00
# line 87 "cms.cnf"
2007-01-13 15:26:13 +00:00
const char * name = NULL ;
2004-07-20 09:11:40 +00:00
2007-05-15 05:49:43 +00:00
offset = dissect_ber_object_identifier_str ( implicit_tag , actx , tree , tvb , offset , hf_index , & object_identifier_id ) ;
2004-10-29 12:11:42 +00:00
2007-01-13 15:26:13 +00:00
if ( object_identifier_id ) {
2007-11-01 19:36:39 +00:00
name = oid_resolved_from_string ( object_identifier_id ) ;
2007-01-13 15:26:13 +00:00
proto_item_append_text ( tree , " (%s) " , name ? name : object_identifier_id ) ;
}
2004-10-29 12:11:42 +00:00
2005-12-05 23:00:03 +00:00
2004-10-29 12:11:42 +00:00
return offset ;
2004-07-20 09:11:40 +00:00
}
2004-10-29 12:11:42 +00:00
2004-11-06 02:06:55 +00:00
2004-10-29 12:11:42 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_T_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_ ) {
2010-01-12 14:29:53 +00:00
# line 97 "cms.cnf"
2007-05-13 20:58:29 +00:00
offset = call_ber_oid_callback ( object_identifier_id , tvb , offset , actx - > pinfo , tree ) ;
2004-10-29 12:11:42 +00:00
2005-12-05 23:00:03 +00:00
2007-01-13 15:26:13 +00:00
2004-10-29 12:11:42 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t ContentInfo_sequence [ ] = {
{ & hf_cms_contentType , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_ContentType } ,
{ & hf_cms_content , BER_CLASS_CON , 0 , 0 , dissect_cms_T_content } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-10-29 12:11:42 +00:00
} ;
int
2007-05-13 20:58:29 +00:00
dissect_cms_ContentInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 78 "cms.cnf"
2005-11-16 07:13:12 +00:00
top_tree = tree ;
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
ContentInfo_sequence , hf_index , ett_cms_ContentInfo ) ;
2004-10-29 12:11:42 +00:00
2005-11-16 07:13:12 +00:00
content_tvb = NULL ;
top_tree = NULL ;
2005-12-05 23:00:03 +00:00
2004-10-29 12:11:42 +00:00
return offset ;
2004-07-25 10:34:07 +00:00
}
2004-07-20 09:11:40 +00:00
2005-02-23 08:57:47 +00:00
static const value_string cms_CMSVersion_vals [ ] = {
2004-07-20 09:11:40 +00:00
{ 0 , " v0 " } ,
{ 1 , " v1 " } ,
{ 2 , " v2 " } ,
{ 3 , " v3 " } ,
{ 4 , " v4 " } ,
2010-01-12 14:29:53 +00:00
{ 5 , " v5 " } ,
2004-07-20 09:11:40 +00:00
{ 0 , NULL }
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_CMSVersion ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_integer ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2008-07-22 17:28:38 +00:00
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-01-13 15:26:13 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_DigestAlgorithmIdentifier ( 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_AlgorithmIdentifier ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t DigestAlgorithmIdentifiers_set_of [ 1 ] = {
{ & hf_cms_DigestAlgorithmIdentifiers_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_DigestAlgorithmIdentifier } ,
2004-07-20 09:11:40 +00:00
} ;
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_DigestAlgorithmIdentifiers ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_set_of ( implicit_tag , actx , tree , tvb , offset ,
DigestAlgorithmIdentifiers_set_of , hf_index , ett_cms_DigestAlgorithmIdentifiers ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2004-10-29 12:11:42 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_T_eContent ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 101 "cms.cnf"
2005-07-09 02:58:07 +00:00
gint8 class ;
2004-10-29 12:11:42 +00:00
gboolean pc , ind ;
2005-07-09 02:58:07 +00:00
gint32 tag ;
guint32 len ;
2004-10-29 12:11:42 +00:00
int pdu_offset = offset ;
2005-11-16 07:13:12 +00:00
int content_offset ;
2004-10-29 12:11:42 +00:00
/* XXX Do we care about printing out the octet string? */
2007-05-13 20:58:29 +00:00
offset = dissect_cms_OCTET_STRING ( FALSE , tvb , offset , actx , NULL , hf_cms_eContent ) ;
2004-10-29 12:11:42 +00:00
pdu_offset = get_ber_identifier ( tvb , pdu_offset , & class , & pc , & tag ) ;
2007-08-24 07:12:04 +00:00
content_offset = pdu_offset = get_ber_length ( tvb , pdu_offset , & len , & ind ) ;
2007-05-13 20:58:29 +00:00
pdu_offset = call_ber_oid_callback ( object_identifier_id , tvb , pdu_offset , actx - > pinfo , top_tree ? top_tree : tree ) ;
2007-01-12 00:33:32 +00:00
2007-01-13 15:26:13 +00:00
/* save the content for checking the message digest */
2005-11-16 07:13:12 +00:00
content_tvb = tvb_new_subset ( tvb , content_offset , len , - 1 ) ;
2004-10-29 12:11:42 +00:00
2005-12-05 23:00:03 +00:00
2004-10-29 12:11:42 +00:00
return offset ;
2004-07-25 10:34:07 +00:00
}
2004-10-29 12:11:42 +00:00
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t EncapsulatedContentInfo_sequence [ ] = {
{ & hf_cms_eContentType , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_ContentType } ,
{ & hf_cms_eContent , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL , dissect_cms_T_eContent } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-10-29 12:11:42 +00:00
} ;
2004-07-20 09:11:40 +00:00
2004-10-29 12:11:42 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_EncapsulatedContentInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
EncapsulatedContentInfo_sequence , hf_index , ett_cms_EncapsulatedContentInfo ) ;
2004-10-29 12:11:42 +00:00
return offset ;
}
2004-07-20 09:11:40 +00:00
2005-06-26 05:48:50 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_T_attrType ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 139 "cms.cnf"
2005-12-06 22:59:30 +00:00
const char * name = NULL ;
2005-11-16 07:13:12 +00:00
2007-05-15 05:49:43 +00:00
offset = dissect_ber_object_identifier_str ( implicit_tag , actx , tree , tvb , offset , hf_cms_attrType , & object_identifier_id ) ;
2005-11-16 07:13:12 +00:00
if ( object_identifier_id ) {
2007-11-01 19:36:39 +00:00
name = oid_resolved_from_string ( object_identifier_id ) ;
2007-01-12 00:33:32 +00:00
proto_item_append_text ( tree , " (%s) " , name ? name : object_identifier_id ) ;
2005-11-16 07:13:12 +00:00
}
2004-07-20 09:11:40 +00:00
2005-12-05 23:00:03 +00:00
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-10-03 05:17:51 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_AttributeValue ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 149 "cms.cnf"
2005-10-03 05:17:51 +00:00
2007-05-13 20:58:29 +00:00
offset = call_ber_oid_callback ( object_identifier_id , tvb , offset , actx - > pinfo , tree ) ;
2005-10-03 05:17:51 +00:00
2005-12-05 23:00:03 +00:00
2005-10-03 05:17:51 +00:00
return offset ;
}
2007-09-13 05:22:51 +00:00
static const ber_sequence_t SET_OF_AttributeValue_set_of [ 1 ] = {
{ & hf_cms_attrValues_item , BER_CLASS_ANY , 0 , BER_FLAGS_NOOWNTAG , dissect_cms_AttributeValue } ,
2005-10-03 05:17:51 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_SET_OF_AttributeValue ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_set_of ( implicit_tag , actx , tree , tvb , offset ,
SET_OF_AttributeValue_set_of , hf_index , ett_cms_SET_OF_AttributeValue ) ;
2005-10-03 05:17:51 +00:00
return offset ;
}
2004-07-20 09:11:40 +00:00
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t Attribute_sequence [ ] = {
{ & hf_cms_attrType , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_T_attrType } ,
{ & hf_cms_attrValues , BER_CLASS_UNI , BER_UNI_TAG_SET , BER_FLAGS_NOOWNTAG , dissect_cms_SET_OF_AttributeValue } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_Attribute ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
Attribute_sequence , hf_index , ett_cms_Attribute ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t UnauthAttributes_set_of [ 1 ] = {
{ & hf_cms_UnauthAttributes_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_Attribute } ,
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_UnauthAttributes ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 11:49:17 +00:00
offset = dissect_ber_constrained_set_of ( implicit_tag , actx , tree , tvb , offset ,
1 , NO_BOUND , UnauthAttributes_set_of , hf_index , ett_cms_UnauthAttributes ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t ExtendedCertificateInfo_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_certificate , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509af_Certificate } ,
{ & hf_cms_attributes , BER_CLASS_UNI , BER_UNI_TAG_SET , BER_FLAGS_NOOWNTAG , dissect_cms_UnauthAttributes } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_ExtendedCertificateInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
ExtendedCertificateInfo_sequence , hf_index , ett_cms_ExtendedCertificateInfo ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_SignatureAlgorithmIdentifier ( 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_AlgorithmIdentifier ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_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_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_bitstring ( implicit_tag , actx , tree , tvb , offset ,
2005-09-02 05:43:49 +00:00
NULL , hf_index , - 1 ,
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t ExtendedCertificate_sequence [ ] = {
{ & hf_cms_extendedCertificateInfo , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_ExtendedCertificateInfo } ,
{ & hf_cms_signatureAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_SignatureAlgorithmIdentifier } ,
{ & hf_cms_signature , BER_CLASS_UNI , BER_UNI_TAG_BITSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_Signature } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_ExtendedCertificate ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
ExtendedCertificate_sequence , hf_index , ett_cms_ExtendedCertificate ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2010-01-12 11:49:17 +00:00
static const value_string cms_AttCertVersionV1_vals [ ] = {
{ 0 , " v1 " } ,
{ 0 , NULL }
} ;
static int
dissect_cms_AttCertVersionV1 ( 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 const value_string cms_T_subject_vals [ ] = {
{ 0 , " baseCertificateID " } ,
{ 1 , " subjectName " } ,
{ 0 , NULL }
} ;
static const ber_choice_t T_subject_choice [ ] = {
{ 0 , & hf_cms_baseCertificateID , BER_CLASS_CON , 0 , BER_FLAGS_IMPLTAG , dissect_x509af_IssuerSerial } ,
{ 1 , & hf_cms_subjectName , BER_CLASS_CON , 1 , BER_FLAGS_IMPLTAG , dissect_x509ce_GeneralNames } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
} ;
static int
dissect_cms_T_subject ( 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_subject_choice , hf_index , ett_cms_T_subject ,
NULL ) ;
return offset ;
}
static const ber_sequence_t SEQUENCE_OF_Attribute_sequence_of [ 1 ] = {
{ & hf_cms_attributes_v1_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_Attribute } ,
} ;
static int
dissect_cms_SEQUENCE_OF_Attribute ( 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_of ( implicit_tag , actx , tree , tvb , offset ,
SEQUENCE_OF_Attribute_sequence_of , hf_index , ett_cms_SEQUENCE_OF_Attribute ) ;
return offset ;
}
static const ber_sequence_t AttributeCertificateInfoV1_sequence [ ] = {
{ & hf_cms_version_v1 , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_cms_AttCertVersionV1 } ,
{ & hf_cms_subject , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG | BER_FLAGS_NOTCHKTAG , dissect_cms_T_subject } ,
{ & hf_cms_issuer_v1 , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509ce_GeneralNames } ,
{ & hf_cms_signature_v1 , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509af_AlgorithmIdentifier } ,
{ & hf_cms_serialNumber , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_x509af_CertificateSerialNumber } ,
{ & hf_cms_attCertValidityPeriod , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509af_AttCertValidityPeriod } ,
{ & hf_cms_attributes_v1 , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_SEQUENCE_OF_Attribute } ,
{ & hf_cms_issuerUniqueID , BER_CLASS_UNI , BER_UNI_TAG_BITSTRING , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_x509sat_UniqueIdentifier } ,
{ & hf_cms_extensions , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_x509af_Extensions } ,
{ NULL , 0 , 0 , 0 , NULL }
} ;
static int
dissect_cms_AttributeCertificateInfoV1 ( 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 ,
AttributeCertificateInfoV1_sequence , hf_index , ett_cms_AttributeCertificateInfoV1 ) ;
return offset ;
}
static int
dissect_cms_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 AttributeCertificateV1_sequence [ ] = {
{ & hf_cms_acInfo , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_AttributeCertificateInfoV1 } ,
{ & hf_cms_signatureAlgorithm_v1 , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509af_AlgorithmIdentifier } ,
{ & hf_cms_signatureValue_v1 , BER_CLASS_UNI , BER_UNI_TAG_BITSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_BIT_STRING } ,
{ NULL , 0 , 0 , 0 , NULL }
} ;
static int
dissect_cms_AttributeCertificateV1 ( 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 ,
AttributeCertificateV1_sequence , hf_index , ett_cms_AttributeCertificateV1 ) ;
return offset ;
}
static int
dissect_cms_AttributeCertificateV2 ( 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_AttributeCertificate ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
return offset ;
}
2005-02-23 08:57:47 +00:00
static const value_string cms_CertificateChoices_vals [ ] = {
2004-07-20 09:11:40 +00:00
{ 0 , " certificate " } ,
{ 1 , " extendedCertificate " } ,
2010-01-12 11:49:17 +00:00
{ 2 , " v1AttrCert " } ,
{ 3 , " v2AttrCert " } ,
2004-07-20 09:11:40 +00:00
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t CertificateChoices_choice [ ] = {
{ 0 , & hf_cms_certificate , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509af_Certificate } ,
{ 1 , & hf_cms_extendedCertificate , BER_CLASS_CON , 0 , BER_FLAGS_IMPLTAG , dissect_cms_ExtendedCertificate } ,
2010-01-12 11:49:17 +00:00
{ 2 , & hf_cms_v1AttrCert , BER_CLASS_CON , 1 , BER_FLAGS_IMPLTAG , dissect_cms_AttributeCertificateV1 } ,
{ 3 , & hf_cms_v2AttrCert , BER_CLASS_CON , 2 , BER_FLAGS_IMPLTAG , dissect_cms_AttributeCertificateV2 } ,
2007-09-13 05:22:51 +00:00
{ 0 , NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_CertificateChoices ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
CertificateChoices_choice , hf_index , ett_cms_CertificateChoices ,
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t CertificateSet_set_of [ 1 ] = {
{ & hf_cms_CertificateSet_item , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG | BER_FLAGS_NOTCHKTAG , dissect_cms_CertificateChoices } ,
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_CertificateSet ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_set_of ( implicit_tag , actx , tree , tvb , offset ,
CertificateSet_set_of , hf_index , ett_cms_CertificateSet ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2010-01-12 14:29:53 +00:00
static int
dissect_cms_T_otherRevInfoFormat ( 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_cms_T_otherRevInfo ( 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 133 "cms.cnf"
offset = call_ber_oid_callback ( object_identifier_id , tvb , offset , actx - > pinfo , tree ) ;
return offset ;
}
static const ber_sequence_t OtherRevocationInfoFormat_sequence [ ] = {
{ & hf_cms_otherRevInfoFormat , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_T_otherRevInfoFormat } ,
{ & hf_cms_otherRevInfo , BER_CLASS_ANY , 0 , BER_FLAGS_NOOWNTAG , dissect_cms_T_otherRevInfo } ,
{ NULL , 0 , 0 , 0 , NULL }
} ;
static int
dissect_cms_OtherRevocationInfoFormat ( 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 ,
OtherRevocationInfoFormat_sequence , hf_index , ett_cms_OtherRevocationInfoFormat ) ;
return offset ;
}
static const value_string cms_RevocationInfoChoice_vals [ ] = {
{ 0 , " crl " } ,
{ 1 , " other " } ,
{ 0 , NULL }
} ;
static const ber_choice_t RevocationInfoChoice_choice [ ] = {
{ 0 , & hf_cms_crl , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509af_CertificateList } ,
{ 1 , & hf_cms_otherRIC , BER_CLASS_CON , 1 , BER_FLAGS_IMPLTAG , dissect_cms_OtherRevocationInfoFormat } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
} ;
static int
dissect_cms_RevocationInfoChoice ( 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 ,
RevocationInfoChoice_choice , hf_index , ett_cms_RevocationInfoChoice ,
NULL ) ;
return offset ;
}
static const ber_sequence_t RevocationInfoChoices_set_of [ 1 ] = {
{ & hf_cms_RevocationInfoChoices_item , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG | BER_FLAGS_NOTCHKTAG , dissect_cms_RevocationInfoChoice } ,
2004-07-20 09:11:40 +00:00
} ;
static int
2010-01-12 14:29:53 +00:00
dissect_cms_RevocationInfoChoices ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_set_of ( implicit_tag , actx , tree , tvb , offset ,
2010-01-12 14:29:53 +00:00
RevocationInfoChoices_set_of , hf_index , ett_cms_RevocationInfoChoices ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t IssuerAndSerialNumber_sequence [ ] = {
{ & hf_cms_issuer , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG , dissect_x509if_Name } ,
{ & hf_cms_serialNumber , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_x509af_CertificateSerialNumber } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
2004-09-16 09:01:20 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_IssuerAndSerialNumber ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
IssuerAndSerialNumber_sequence , hf_index , ett_cms_IssuerAndSerialNumber ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-09 02:58:07 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_SubjectKeyIdentifier ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-07-09 02:58:07 +00:00
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-02-23 08:57:47 +00:00
const value_string cms_SignerIdentifier_vals [ ] = {
2004-07-20 09:11:40 +00:00
{ 0 , " issuerAndSerialNumber " } ,
{ 1 , " subjectKeyIdentifier " } ,
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t SignerIdentifier_choice [ ] = {
{ 0 , & hf_cms_issuerAndSerialNumber , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_IssuerAndSerialNumber } ,
{ 1 , & hf_cms_subjectKeyIdentifier , BER_CLASS_CON , 0 , BER_FLAGS_IMPLTAG , dissect_cms_SubjectKeyIdentifier } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_SignerIdentifier ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
SignerIdentifier_choice , hf_index , ett_cms_SignerIdentifier ,
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t SignedAttributes_set_of [ 1 ] = {
{ & hf_cms_SignedAttributes_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_Attribute } ,
2004-07-20 09:11:40 +00:00
} ;
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_SignedAttributes ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 11:49:17 +00:00
offset = dissect_ber_constrained_set_of ( implicit_tag , actx , tree , tvb , offset ,
1 , NO_BOUND , SignedAttributes_set_of , hf_index , ett_cms_SignedAttributes ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-09 02:58:07 +00:00
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_SignatureValue ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-07-09 02:58:07 +00:00
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t UnsignedAttributes_set_of [ 1 ] = {
{ & hf_cms_UnsignedAttributes_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_Attribute } ,
2004-07-20 09:11:40 +00:00
} ;
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_UnsignedAttributes ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 11:49:17 +00:00
offset = dissect_ber_constrained_set_of ( implicit_tag , actx , tree , tvb , offset ,
1 , NO_BOUND , UnsignedAttributes_set_of , hf_index , ett_cms_UnsignedAttributes ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t SignerInfo_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_sid , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG | BER_FLAGS_NOTCHKTAG , dissect_cms_SignerIdentifier } ,
{ & hf_cms_digestAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_DigestAlgorithmIdentifier } ,
{ & hf_cms_signedAttrs , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_SignedAttributes } ,
{ & hf_cms_signatureAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_SignatureAlgorithmIdentifier } ,
{ & hf_cms_signatureValue , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_SignatureValue } ,
{ & hf_cms_unsignedAttrs , BER_CLASS_CON , 1 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_UnsignedAttributes } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_SignerInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
SignerInfo_sequence , hf_index , ett_cms_SignerInfo ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t SignerInfos_set_of [ 1 ] = {
{ & hf_cms_SignerInfos_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_SignerInfo } ,
2004-07-20 09:11:40 +00:00
} ;
2004-11-22 03:36:26 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_SignerInfos ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_set_of ( implicit_tag , actx , tree , tvb , offset ,
SignerInfos_set_of , hf_index , ett_cms_SignerInfos ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t SignedData_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_digestAlgorithms , BER_CLASS_UNI , BER_UNI_TAG_SET , BER_FLAGS_NOOWNTAG , dissect_cms_DigestAlgorithmIdentifiers } ,
{ & hf_cms_encapContentInfo , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_EncapsulatedContentInfo } ,
{ & hf_cms_certificates , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_CertificateSet } ,
2010-01-12 14:29:53 +00:00
{ & hf_cms_crls , BER_CLASS_CON , 1 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_RevocationInfoChoices } ,
2007-09-13 05:22:51 +00:00
{ & hf_cms_signerInfos , BER_CLASS_UNI , BER_UNI_TAG_SET , BER_FLAGS_NOOWNTAG , dissect_cms_SignerInfos } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
int
2007-05-13 20:58:29 +00:00
dissect_cms_SignedData ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
SignedData_sequence , hf_index , ett_cms_SignedData ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t OriginatorInfo_sequence [ ] = {
{ & hf_cms_certs , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_CertificateSet } ,
2010-01-12 14:29:53 +00:00
{ & hf_cms_crls , BER_CLASS_CON , 1 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_RevocationInfoChoices } ,
2007-09-13 05:22:51 +00:00
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_OriginatorInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
OriginatorInfo_sequence , hf_index , ett_cms_OriginatorInfo ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2004-07-20 09:11:40 +00:00
2005-02-23 08:57:47 +00:00
static const value_string cms_RecipientIdentifier_vals [ ] = {
2004-07-20 09:11:40 +00:00
{ 0 , " issuerAndSerialNumber " } ,
{ 1 , " subjectKeyIdentifier " } ,
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t RecipientIdentifier_choice [ ] = {
{ 0 , & hf_cms_issuerAndSerialNumber , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_IssuerAndSerialNumber } ,
{ 1 , & hf_cms_subjectKeyIdentifier , BER_CLASS_CON , 0 , BER_FLAGS_IMPLTAG , dissect_cms_SubjectKeyIdentifier } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RecipientIdentifier ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
RecipientIdentifier_choice , hf_index , ett_cms_RecipientIdentifier ,
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_KeyEncryptionAlgorithmIdentifier ( 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_AlgorithmIdentifier ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-07-09 02:58:07 +00:00
2004-07-25 10:34:07 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_EncryptedKey ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-07-09 02:58:07 +00:00
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t KeyTransRecipientInfo_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_rid , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG | BER_FLAGS_NOTCHKTAG , dissect_cms_RecipientIdentifier } ,
{ & hf_cms_keyEncryptionAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_KeyEncryptionAlgorithmIdentifier } ,
{ & hf_cms_encryptedKey , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_EncryptedKey } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-20 09:11:40 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_KeyTransRecipientInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
KeyTransRecipientInfo_sequence , hf_index , ett_cms_KeyTransRecipientInfo ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2007-09-13 05:22:51 +00:00
static const ber_sequence_t OriginatorPublicKey_sequence [ ] = {
{ & hf_cms_algorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_x509af_AlgorithmIdentifier } ,
{ & hf_cms_publicKey , BER_CLASS_UNI , BER_UNI_TAG_BITSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_BIT_STRING } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_OriginatorPublicKey ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
OriginatorPublicKey_sequence , hf_index , ett_cms_OriginatorPublicKey ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-02-23 08:57:47 +00:00
static const value_string cms_OriginatorIdentifierOrKey_vals [ ] = {
2004-07-25 10:34:07 +00:00
{ 0 , " issuerAndSerialNumber " } ,
{ 1 , " subjectKeyIdentifier " } ,
{ 2 , " originatorKey " } ,
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t OriginatorIdentifierOrKey_choice [ ] = {
{ 0 , & hf_cms_issuerAndSerialNumber , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_IssuerAndSerialNumber } ,
{ 1 , & hf_cms_subjectKeyIdentifier , BER_CLASS_CON , 0 , BER_FLAGS_IMPLTAG , dissect_cms_SubjectKeyIdentifier } ,
{ 2 , & hf_cms_originatorKey , BER_CLASS_CON , 1 , BER_FLAGS_IMPLTAG , dissect_cms_OriginatorPublicKey } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_OriginatorIdentifierOrKey ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
OriginatorIdentifierOrKey_choice , hf_index , ett_cms_OriginatorIdentifierOrKey ,
NULL ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-07-09 02:58:07 +00:00
2004-07-25 10:34:07 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_UserKeyingMaterial ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-07-09 02:58:07 +00:00
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_GeneralizedTime ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_GeneralizedTime ( implicit_tag , actx , tree , tvb , offset , hf_index ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2004-10-29 12:11:42 +00:00
2005-06-26 05:48:50 +00:00
2004-10-29 12:11:42 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_T_keyAttrId ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_object_identifier_str ( implicit_tag , actx , tree , tvb , offset , hf_cms_ci_contentType , & object_identifier_id ) ;
2004-10-29 12:11:42 +00:00
return offset ;
}
2004-11-06 02:06:55 +00:00
2004-10-29 12:11:42 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_T_keyAttr ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 128 "cms.cnf"
2007-05-13 20:58:29 +00:00
offset = call_ber_oid_callback ( object_identifier_id , tvb , offset , actx - > pinfo , tree ) ;
2004-10-29 12:11:42 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t OtherKeyAttribute_sequence [ ] = {
{ & hf_cms_keyAttrId , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_T_keyAttrId } ,
{ & hf_cms_keyAttr , BER_CLASS_ANY , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_cms_T_keyAttr } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-10-29 12:11:42 +00:00
} ;
2004-11-22 03:36:26 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_OtherKeyAttribute ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
OtherKeyAttribute_sequence , hf_index , ett_cms_OtherKeyAttribute ) ;
2004-10-29 12:11:42 +00:00
return offset ;
}
2004-07-25 10:34:07 +00:00
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t RecipientKeyIdentifier_sequence [ ] = {
{ & hf_cms_subjectKeyIdentifier , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_SubjectKeyIdentifier } ,
{ & hf_cms_date , BER_CLASS_UNI , BER_UNI_TAG_GeneralizedTime , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_cms_GeneralizedTime } ,
{ & hf_cms_other , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_cms_OtherKeyAttribute } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RecipientKeyIdentifier ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
RecipientKeyIdentifier_sequence , hf_index , ett_cms_RecipientKeyIdentifier ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-02-23 08:57:47 +00:00
static const value_string cms_KeyAgreeRecipientIdentifier_vals [ ] = {
2004-07-25 10:34:07 +00:00
{ 0 , " issuerAndSerialNumber " } ,
{ 1 , " rKeyId " } ,
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t KeyAgreeRecipientIdentifier_choice [ ] = {
{ 0 , & hf_cms_issuerAndSerialNumber , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_IssuerAndSerialNumber } ,
{ 1 , & hf_cms_rKeyId , BER_CLASS_CON , 0 , BER_FLAGS_IMPLTAG , dissect_cms_RecipientKeyIdentifier } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_KeyAgreeRecipientIdentifier ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
KeyAgreeRecipientIdentifier_choice , hf_index , ett_cms_KeyAgreeRecipientIdentifier ,
NULL ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t RecipientEncryptedKey_sequence [ ] = {
{ & hf_cms_rekRid , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG | BER_FLAGS_NOTCHKTAG , dissect_cms_KeyAgreeRecipientIdentifier } ,
{ & hf_cms_encryptedKey , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_EncryptedKey } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RecipientEncryptedKey ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
RecipientEncryptedKey_sequence , hf_index , ett_cms_RecipientEncryptedKey ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t RecipientEncryptedKeys_sequence_of [ 1 ] = {
{ & hf_cms_RecipientEncryptedKeys_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_RecipientEncryptedKey } ,
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RecipientEncryptedKeys ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence_of ( implicit_tag , actx , tree , tvb , offset ,
RecipientEncryptedKeys_sequence_of , hf_index , ett_cms_RecipientEncryptedKeys ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t KeyAgreeRecipientInfo_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_originator , BER_CLASS_CON , 0 , BER_FLAGS_NOTCHKTAG , dissect_cms_OriginatorIdentifierOrKey } ,
{ & hf_cms_ukm , BER_CLASS_CON , 1 , BER_FLAGS_OPTIONAL , dissect_cms_UserKeyingMaterial } ,
{ & hf_cms_keyEncryptionAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_KeyEncryptionAlgorithmIdentifier } ,
{ & hf_cms_recipientEncryptedKeys , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_RecipientEncryptedKeys } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_KeyAgreeRecipientInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
KeyAgreeRecipientInfo_sequence , hf_index , ett_cms_KeyAgreeRecipientInfo ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2004-10-29 12:11:42 +00:00
2005-07-09 02:58:07 +00:00
2004-10-29 12:11:42 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_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_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-07-09 02:58:07 +00:00
NULL ) ;
2004-10-29 12:11:42 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t KEKIdentifier_sequence [ ] = {
{ & hf_cms_keyIdentifier , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_OCTET_STRING } ,
{ & hf_cms_date , BER_CLASS_UNI , BER_UNI_TAG_GeneralizedTime , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_cms_GeneralizedTime } ,
{ & hf_cms_other , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_cms_OtherKeyAttribute } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_KEKIdentifier ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
KEKIdentifier_sequence , hf_index , ett_cms_KEKIdentifier ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t KEKRecipientInfo_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_kekid , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_KEKIdentifier } ,
{ & hf_cms_keyEncryptionAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_KeyEncryptionAlgorithmIdentifier } ,
{ & hf_cms_encryptedKey , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_EncryptedKey } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_KEKRecipientInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
KEKRecipientInfo_sequence , hf_index , ett_cms_KEKRecipientInfo ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2010-01-12 11:49:17 +00:00
static int
dissect_cms_KeyDerivationAlgorithmIdentifier ( 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_AlgorithmIdentifier ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
return offset ;
}
static const ber_sequence_t PasswordRecipientInfo_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_keyDerivationAlgorithm , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_KeyDerivationAlgorithmIdentifier } ,
{ & hf_cms_keyEncryptionAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_KeyEncryptionAlgorithmIdentifier } ,
{ & hf_cms_encryptedKey , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_EncryptedKey } ,
{ NULL , 0 , 0 , 0 , NULL }
} ;
static int
dissect_cms_PasswordRecipientInfo ( 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 ,
PasswordRecipientInfo_sequence , hf_index , ett_cms_PasswordRecipientInfo ) ;
return offset ;
}
static int
dissect_cms_T_oriType ( 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_cms_T_oriValue ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 122 "cms.cnf"
2010-01-12 11:49:17 +00:00
offset = call_ber_oid_callback ( object_identifier_id , tvb , offset , actx - > pinfo , tree ) ;
return offset ;
}
static const ber_sequence_t OtherRecipientInfo_sequence [ ] = {
{ & hf_cms_oriType , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_T_oriType } ,
{ & hf_cms_oriValue , BER_CLASS_ANY , 0 , BER_FLAGS_NOOWNTAG , dissect_cms_T_oriValue } ,
{ NULL , 0 , 0 , 0 , NULL }
} ;
static int
dissect_cms_OtherRecipientInfo ( 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 ,
OtherRecipientInfo_sequence , hf_index , ett_cms_OtherRecipientInfo ) ;
return offset ;
}
2005-02-23 08:57:47 +00:00
static const value_string cms_RecipientInfo_vals [ ] = {
2004-07-25 10:34:07 +00:00
{ 0 , " ktri " } ,
{ 1 , " kari " } ,
{ 2 , " kekri " } ,
2010-01-12 11:49:17 +00:00
{ 3 , " pwri " } ,
{ 4 , " ori " } ,
2004-07-25 10:34:07 +00:00
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t RecipientInfo_choice [ ] = {
{ 0 , & hf_cms_ktri , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_KeyTransRecipientInfo } ,
{ 1 , & hf_cms_kari , BER_CLASS_CON , 1 , BER_FLAGS_IMPLTAG , dissect_cms_KeyAgreeRecipientInfo } ,
{ 2 , & hf_cms_kekri , BER_CLASS_CON , 2 , BER_FLAGS_IMPLTAG , dissect_cms_KEKRecipientInfo } ,
2010-01-12 11:49:17 +00:00
{ 3 , & hf_cms_pwri , BER_CLASS_CON , 3 , BER_FLAGS_IMPLTAG , dissect_cms_PasswordRecipientInfo } ,
{ 4 , & hf_cms_ori , BER_CLASS_CON , 4 , BER_FLAGS_IMPLTAG , dissect_cms_OtherRecipientInfo } ,
2007-09-13 05:22:51 +00:00
{ 0 , NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RecipientInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
RecipientInfo_choice , hf_index , ett_cms_RecipientInfo ,
NULL ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2004-07-25 10:34:07 +00:00
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t RecipientInfos_set_of [ 1 ] = {
{ & hf_cms_RecipientInfos_item , BER_CLASS_ANY /*choice*/ , - 1 /*choice*/ , BER_FLAGS_NOOWNTAG | BER_FLAGS_NOTCHKTAG , dissect_cms_RecipientInfo } ,
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RecipientInfos ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
offset = dissect_ber_constrained_set_of ( implicit_tag , actx , tree , tvb , offset ,
1 , NO_BOUND , RecipientInfos_set_of , hf_index , ett_cms_RecipientInfos ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2004-07-20 09:11:40 +00:00
2005-09-02 05:43:49 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_ContentEncryptionAlgorithmIdentifier ( 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_AlgorithmIdentifier ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2004-07-25 10:34:07 +00:00
2005-07-09 02:58:07 +00:00
2004-07-25 10:34:07 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_EncryptedContent ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 199 "cms.cnf"
2007-08-17 19:14:39 +00:00
tvbuff_t * encrypted_tvb ;
proto_item * item ;
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2007-08-17 19:14:39 +00:00
& encrypted_tvb ) ;
2010-01-12 14:29:53 +00:00
# line 204 "cms.cnf"
2007-08-17 19:14:39 +00:00
2008-01-03 17:49:59 +00:00
item = actx - > created_item ;
2007-08-17 19:14:39 +00:00
PBE_decrypt_data ( object_identifier_id , encrypted_tvb , actx , item ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t EncryptedContentInfo_sequence [ ] = {
{ & hf_cms_encryptedContentType , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_ContentType } ,
{ & hf_cms_contentEncryptionAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_ContentEncryptionAlgorithmIdentifier } ,
{ & hf_cms_encryptedContent , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_EncryptedContent } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_EncryptedContentInfo ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
EncryptedContentInfo_sequence , hf_index , ett_cms_EncryptedContentInfo ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t UnprotectedAttributes_set_of [ 1 ] = {
{ & hf_cms_UnprotectedAttributes_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_Attribute } ,
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_UnprotectedAttributes ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 11:49:17 +00:00
offset = dissect_ber_constrained_set_of ( implicit_tag , actx , tree , tvb , offset ,
1 , NO_BOUND , UnprotectedAttributes_set_of , hf_index , ett_cms_UnprotectedAttributes ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t EnvelopedData_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_originatorInfo , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_OriginatorInfo } ,
{ & hf_cms_recipientInfos , BER_CLASS_UNI , BER_UNI_TAG_SET , BER_FLAGS_NOOWNTAG , dissect_cms_RecipientInfos } ,
{ & hf_cms_encryptedContentInfo , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_EncryptedContentInfo } ,
{ & hf_cms_unprotectedAttrs , BER_CLASS_CON , 1 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_UnprotectedAttributes } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
2004-12-24 11:24:35 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_EnvelopedData ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
EnvelopedData_sequence , hf_index , ett_cms_EnvelopedData ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-07-09 02:58:07 +00:00
2007-01-13 15:26:13 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_Digest ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-07-09 02:58:07 +00:00
NULL ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t DigestedData_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_digestAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_DigestAlgorithmIdentifier } ,
{ & hf_cms_encapContentInfo , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_EncapsulatedContentInfo } ,
{ & hf_cms_digest , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_Digest } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_DigestedData ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
DigestedData_sequence , hf_index , ett_cms_DigestedData ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t EncryptedData_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_encryptedContentInfo , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_EncryptedContentInfo } ,
{ & hf_cms_unprotectedAttrs , BER_CLASS_CON , 1 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_UnprotectedAttributes } ,
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_EncryptedData ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
EncryptedData_sequence , hf_index , ett_cms_EncryptedData ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2004-07-20 09:11:40 +00:00
2005-09-02 05:43:49 +00:00
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_MessageAuthenticationCodeAlgorithm ( 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_AlgorithmIdentifier ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2004-07-25 10:34:07 +00:00
2005-07-21 21:12:09 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t AuthAttributes_set_of [ 1 ] = {
{ & hf_cms_AuthAttributes_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_Attribute } ,
2004-07-25 10:34:07 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_AuthAttributes ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 11:49:17 +00:00
offset = dissect_ber_constrained_set_of ( implicit_tag , actx , tree , tvb , offset ,
1 , NO_BOUND , AuthAttributes_set_of , hf_index , ett_cms_AuthAttributes ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-07-09 02:58:07 +00:00
2004-07-25 10:34:07 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_MessageAuthenticationCode ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-07-09 02:58:07 +00:00
NULL ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2004-07-20 09:11:40 +00:00
2005-09-02 05:43:49 +00:00
2007-09-13 05:22:51 +00:00
static const ber_sequence_t AuthenticatedData_sequence [ ] = {
{ & hf_cms_version , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_CMSVersion } ,
{ & hf_cms_originatorInfo , BER_CLASS_CON , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_OriginatorInfo } ,
{ & hf_cms_recipientInfos , BER_CLASS_UNI , BER_UNI_TAG_SET , BER_FLAGS_NOOWNTAG , dissect_cms_RecipientInfos } ,
{ & hf_cms_macAlgorithm , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_MessageAuthenticationCodeAlgorithm } ,
{ & hf_cms_digestAlgorithm , BER_CLASS_CON , 1 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_DigestAlgorithmIdentifier } ,
{ & hf_cms_encapContentInfo , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_EncapsulatedContentInfo } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_authAttrs , BER_CLASS_CON , 2 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_AuthAttributes } ,
2007-09-13 05:22:51 +00:00
{ & hf_cms_mac , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_MessageAuthenticationCode } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_unauthAttrs , BER_CLASS_CON , 3 , BER_FLAGS_OPTIONAL | BER_FLAGS_IMPLTAG , dissect_cms_UnauthAttributes } ,
2007-09-13 05:22:51 +00:00
{ NULL , 0 , 0 , 0 , NULL }
2004-07-25 10:34:07 +00:00
} ;
2004-07-20 09:11:40 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_AuthenticatedData ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
AuthenticatedData_sequence , hf_index , ett_cms_AuthenticatedData ) ;
2004-07-25 10:34:07 +00:00
return offset ;
}
2005-09-02 05:43:49 +00:00
2005-10-03 05:17:51 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_MessageDigest ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 153 "cms.cnf"
2005-11-16 07:13:12 +00:00
proto_item * pi ;
int old_offset = offset ;
2007-05-15 05:49:43 +00:00
offset = dissect_ber_octet_string ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2005-10-03 05:17:51 +00:00
NULL ) ;
2007-01-12 00:33:32 +00:00
2008-01-03 17:49:59 +00:00
pi = actx - > created_item ;
2005-11-16 07:13:12 +00:00
/* move past TLV */
old_offset = get_ber_identifier ( tvb , old_offset , NULL , NULL , NULL ) ;
2007-08-24 07:12:04 +00:00
old_offset = get_ber_length ( tvb , old_offset , NULL , NULL ) ;
2005-11-16 07:13:12 +00:00
2007-01-12 00:33:32 +00:00
if ( content_tvb )
2005-11-16 07:13:12 +00:00
cms_verify_msg_digest ( pi , content_tvb , x509af_get_last_algorithm_id ( ) , tvb , old_offset ) ;
2005-12-05 23:00:03 +00:00
2005-10-03 05:17:51 +00:00
return offset ;
}
static int
2007-05-13 20:58:29 +00:00
dissect_cms_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_ ) {
2008-08-01 16:45:30 +00:00
offset = dissect_ber_UTCTime ( implicit_tag , actx , tree , tvb , offset , hf_index ) ;
2005-10-03 05:17:51 +00:00
return offset ;
}
static const value_string cms_Time_vals [ ] = {
{ 0 , " utcTime " } ,
{ 1 , " generalTime " } ,
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t Time_choice [ ] = {
{ 0 , & hf_cms_utcTime , BER_CLASS_UNI , BER_UNI_TAG_UTCTime , BER_FLAGS_NOOWNTAG , dissect_cms_UTCTime } ,
{ 1 , & hf_cms_generalTime , BER_CLASS_UNI , BER_UNI_TAG_GeneralizedTime , BER_FLAGS_NOOWNTAG , dissect_cms_GeneralizedTime } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
2005-10-03 05:17:51 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_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_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
Time_choice , hf_index , ett_cms_Time ,
NULL ) ;
2005-10-03 05:17:51 +00:00
return offset ;
}
static int
2007-05-13 20:58:29 +00:00
dissect_cms_SigningTime ( 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_cms_Time ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2005-10-03 05:17:51 +00:00
return offset ;
}
2004-12-13 08:15:34 +00:00
int
2007-05-13 20:58:29 +00:00
dissect_cms_Countersignature ( 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_cms_SignerInfo ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2004-07-20 09:11:40 +00:00
return offset ;
}
2007-01-28 10:20:51 +00:00
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RC2ParameterVersion ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 189 "cms.cnf"
2007-01-28 10:20:51 +00:00
guint32 length = 0 ;
2007-05-15 05:49:43 +00:00
offset = dissect_ber_integer ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2008-07-22 17:28:38 +00:00
& length ) ;
2007-01-28 10:20:51 +00:00
if ( cap_tree ! = NULL )
proto_item_append_text ( cap_tree , " (%d bits) " , length ) ;
return offset ;
}
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RC2WrapParameter ( 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_cms_RC2ParameterVersion ( implicit_tag , tvb , offset , actx , tree , hf_index ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
static int
2007-05-13 20:58:29 +00:00
dissect_cms_INTEGER ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-05-15 05:49:43 +00:00
offset = dissect_ber_integer ( implicit_tag , actx , tree , tvb , offset , hf_index ,
2008-07-22 17:28:38 +00:00
NULL ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
2007-09-13 05:22:51 +00:00
static const ber_sequence_t RC2CBCParameter_sequence [ ] = {
{ & hf_cms_rc2ParameterVersion , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_INTEGER } ,
{ & hf_cms_iv , BER_CLASS_UNI , BER_UNI_TAG_OCTETSTRING , BER_FLAGS_NOOWNTAG , dissect_cms_OCTET_STRING } ,
{ NULL , 0 , 0 , 0 , NULL }
2007-01-28 10:20:51 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RC2CBCParameter ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
RC2CBCParameter_sequence , hf_index , ett_cms_RC2CBCParameter ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
static int
2007-05-13 20:58:29 +00:00
dissect_cms_T_capability ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 171 "cms.cnf"
2007-01-28 10:20:51 +00:00
const char * name = NULL ;
2007-05-15 05:49:43 +00:00
offset = dissect_ber_object_identifier_str ( implicit_tag , actx , tree , tvb , offset , hf_cms_attrType , & object_identifier_id ) ;
2007-01-28 10:20:51 +00:00
if ( object_identifier_id ) {
2007-11-01 19:36:39 +00:00
name = oid_resolved_from_string ( object_identifier_id ) ;
2007-01-28 10:20:51 +00:00
proto_item_append_text ( tree , " %s " , name ? name : object_identifier_id ) ;
cap_tree = tree ;
}
return offset ;
}
static int
2007-05-13 20:58:29 +00:00
dissect_cms_T_parameters ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2010-01-12 14:29:53 +00:00
# line 182 "cms.cnf"
2007-01-28 10:20:51 +00:00
2007-05-13 20:58:29 +00:00
offset = call_ber_oid_callback ( object_identifier_id , tvb , offset , actx - > pinfo , tree ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
2007-09-13 05:22:51 +00:00
static const ber_sequence_t SMIMECapability_sequence [ ] = {
{ & hf_cms_capability , BER_CLASS_UNI , BER_UNI_TAG_OID , BER_FLAGS_NOOWNTAG , dissect_cms_T_capability } ,
{ & hf_cms_parameters , BER_CLASS_ANY , 0 , BER_FLAGS_OPTIONAL | BER_FLAGS_NOOWNTAG , dissect_cms_T_parameters } ,
{ NULL , 0 , 0 , 0 , NULL }
2007-01-28 10:20:51 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_SMIMECapability ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence ( implicit_tag , actx , tree , tvb , offset ,
SMIMECapability_sequence , hf_index , ett_cms_SMIMECapability ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
2007-09-13 05:22:51 +00:00
static const ber_sequence_t SMIMECapabilities_sequence_of [ 1 ] = {
{ & hf_cms_SMIMECapabilities_item , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_SMIMECapability } ,
2007-01-28 10:20:51 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_SMIMECapabilities ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_sequence_of ( implicit_tag , actx , tree , tvb , offset ,
SMIMECapabilities_sequence_of , hf_index , ett_cms_SMIMECapabilities ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
static const value_string cms_SMIMEEncryptionKeyPreference_vals [ ] = {
{ 0 , " issuerAndSerialNumber " } ,
{ 1 , " recipientKeyId " } ,
{ 2 , " subjectAltKeyIdentifier " } ,
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t SMIMEEncryptionKeyPreference_choice [ ] = {
{ 0 , & hf_cms_issuerAndSerialNumber , BER_CLASS_CON , 0 , BER_FLAGS_IMPLTAG , dissect_cms_IssuerAndSerialNumber } ,
{ 1 , & hf_cms_recipientKeyId , BER_CLASS_CON , 1 , BER_FLAGS_IMPLTAG , dissect_cms_RecipientKeyIdentifier } ,
{ 2 , & hf_cms_subjectAltKeyIdentifier , BER_CLASS_CON , 2 , BER_FLAGS_IMPLTAG , dissect_cms_SubjectKeyIdentifier } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
2007-01-28 10:20:51 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_SMIMEEncryptionKeyPreference ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
SMIMEEncryptionKeyPreference_choice , hf_index , ett_cms_SMIMEEncryptionKeyPreference ,
NULL ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
static const value_string cms_RC2CBCParameters_vals [ ] = {
{ 0 , " rc2WrapParameter " } ,
{ 1 , " rc2CBCParameter " } ,
{ 0 , NULL }
} ;
2007-09-13 05:22:51 +00:00
static const ber_choice_t RC2CBCParameters_choice [ ] = {
{ 0 , & hf_cms_rc2WrapParameter , BER_CLASS_UNI , BER_UNI_TAG_INTEGER , BER_FLAGS_NOOWNTAG , dissect_cms_RC2WrapParameter } ,
{ 1 , & hf_cms_rc2CBCParameter , BER_CLASS_UNI , BER_UNI_TAG_SEQUENCE , BER_FLAGS_NOOWNTAG , dissect_cms_RC2CBCParameter } ,
{ 0 , NULL , 0 , 0 , 0 , NULL }
2007-01-28 10:20:51 +00:00
} ;
static int
2007-05-13 20:58:29 +00:00
dissect_cms_RC2CBCParameters ( gboolean implicit_tag _U_ , tvbuff_t * tvb _U_ , int offset _U_ , asn1_ctx_t * actx _U_ , proto_tree * tree _U_ , int hf_index _U_ ) {
2007-09-13 05:22:51 +00:00
offset = dissect_ber_choice ( actx , tree , tvb , offset ,
RC2CBCParameters_choice , hf_index , ett_cms_RC2CBCParameters ,
NULL ) ;
2007-01-28 10:20:51 +00:00
return offset ;
}
2004-10-26 13:53:30 +00:00
/*--- PDUs ---*/
2007-03-21 10:22:22 +00:00
static void dissect_ContentInfo_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_ContentInfo ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_ContentInfo_PDU ) ;
2005-10-02 21:14:35 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_ContentType_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_ContentType ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_ContentType_PDU ) ;
2005-10-03 05:17:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_SignedData_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_SignedData ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_SignedData_PDU ) ;
2004-10-26 13:53:30 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_EnvelopedData_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_EnvelopedData ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_EnvelopedData_PDU ) ;
2004-10-26 13:53:30 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_DigestedData_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_DigestedData ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_DigestedData_PDU ) ;
2004-10-26 13:53:30 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_EncryptedData_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_EncryptedData ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_EncryptedData_PDU ) ;
2004-10-26 13:53:30 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_AuthenticatedData_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_AuthenticatedData ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_AuthenticatedData_PDU ) ;
2004-10-26 13:53:30 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_IssuerAndSerialNumber_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_IssuerAndSerialNumber ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_IssuerAndSerialNumber_PDU ) ;
2007-01-28 10:20:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_MessageDigest_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_MessageDigest ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_MessageDigest_PDU ) ;
2005-10-03 05:17:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_SigningTime_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_SigningTime ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_SigningTime_PDU ) ;
2005-10-03 05:17:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_Countersignature_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_Countersignature ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_Countersignature_PDU ) ;
2005-10-03 05:17:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_RC2WrapParameter_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_RC2WrapParameter ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_RC2WrapParameter_PDU ) ;
2007-01-28 10:20:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_SMIMECapabilities_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_SMIMECapabilities ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_SMIMECapabilities_PDU ) ;
2007-01-28 10:20:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_SMIMEEncryptionKeyPreference_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_SMIMEEncryptionKeyPreference ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_SMIMEEncryptionKeyPreference_PDU ) ;
2007-01-28 10:20:51 +00:00
}
2007-03-21 10:22:22 +00:00
static void dissect_RC2CBCParameters_PDU ( tvbuff_t * tvb _U_ , packet_info * pinfo _U_ , proto_tree * tree _U_ ) {
2007-05-13 20:58:29 +00:00
asn1_ctx_t asn1_ctx ;
asn1_ctx_init ( & asn1_ctx , ASN1_ENC_BER , TRUE , pinfo ) ;
dissect_cms_RC2CBCParameters ( FALSE , tvb , 0 , & asn1_ctx , tree , hf_cms_RC2CBCParameters_PDU ) ;
2007-01-28 10:20:51 +00:00
}
2004-10-26 13:53:30 +00:00
2004-07-20 09:11:40 +00:00
/*--- End of included file: packet-cms-fn.c ---*/
2010-01-12 14:29:53 +00:00
# line 139 "packet-cms-template.c"
2004-07-20 09:11:40 +00:00
/*--- proto_register_cms ----------------------------------------------*/
void proto_register_cms ( void ) {
/* List of fields */
static hf_register_info hf [ ] = {
2004-09-16 09:01:20 +00:00
{ & hf_cms_ci_contentType ,
{ " contentType " , " cms.contentInfo.contentType " ,
2006-05-10 19:50:54 +00:00
FT_OID , BASE_NONE , NULL , 0 ,
2004-09-16 09:01:20 +00:00
" ContentType " , HFILL } } ,
2004-07-20 09:11:40 +00:00
/*--- Included file: packet-cms-hfarr.c ---*/
2005-12-05 23:00:03 +00:00
# line 1 "packet-cms-hfarr.c"
2005-10-02 21:14:35 +00:00
{ & hf_cms_ContentInfo_PDU ,
{ " ContentInfo " , " cms.ContentInfo " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.ContentInfo " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_ContentType_PDU ,
{ " ContentType " , " cms.ContentType " ,
2005-12-05 23:00:03 +00:00
FT_OID , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.ContentType " , HFILL } } ,
2004-10-26 13:53:30 +00:00
{ & hf_cms_SignedData_PDU ,
{ " SignedData " , " cms.SignedData " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SignedData " , HFILL } } ,
2004-10-26 13:53:30 +00:00
{ & hf_cms_EnvelopedData_PDU ,
{ " EnvelopedData " , " cms.EnvelopedData " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.EnvelopedData " , HFILL } } ,
2004-10-26 13:53:30 +00:00
{ & hf_cms_DigestedData_PDU ,
{ " DigestedData " , " cms.DigestedData " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.DigestedData " , HFILL } } ,
2004-10-26 13:53:30 +00:00
{ & hf_cms_EncryptedData_PDU ,
{ " EncryptedData " , " cms.EncryptedData " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.EncryptedData " , HFILL } } ,
2004-10-26 13:53:30 +00:00
{ & hf_cms_AuthenticatedData_PDU ,
{ " AuthenticatedData " , " cms.AuthenticatedData " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.AuthenticatedData " , HFILL } } ,
2007-01-28 10:20:51 +00:00
{ & hf_cms_IssuerAndSerialNumber_PDU ,
{ " IssuerAndSerialNumber " , " cms.IssuerAndSerialNumber " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.IssuerAndSerialNumber " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_MessageDigest_PDU ,
{ " MessageDigest " , " cms.MessageDigest " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.MessageDigest " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_SigningTime_PDU ,
{ " SigningTime " , " cms.SigningTime " ,
2008-11-10 13:36:24 +00:00
FT_UINT32 , BASE_DEC , VALS ( cms_Time_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SigningTime " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_Countersignature_PDU ,
{ " Countersignature " , " cms.Countersignature " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Countersignature " , HFILL } } ,
2007-01-28 10:20:51 +00:00
{ & hf_cms_RC2WrapParameter_PDU ,
{ " RC2WrapParameter " , " cms.RC2WrapParameter " ,
FT_INT32 , BASE_DEC , NULL , 0 ,
" cms.RC2WrapParameter " , HFILL } } ,
{ & hf_cms_SMIMECapabilities_PDU ,
{ " SMIMECapabilities " , " cms.SMIMECapabilities " ,
FT_UINT32 , BASE_DEC , NULL , 0 ,
" cms.SMIMECapabilities " , HFILL } } ,
{ & hf_cms_SMIMEEncryptionKeyPreference_PDU ,
{ " SMIMEEncryptionKeyPreference " , " cms.SMIMEEncryptionKeyPreference " ,
FT_UINT32 , BASE_DEC , VALS ( cms_SMIMEEncryptionKeyPreference_vals ) , 0 ,
" cms.SMIMEEncryptionKeyPreference " , HFILL } } ,
{ & hf_cms_RC2CBCParameters_PDU ,
{ " RC2CBCParameters " , " cms.RC2CBCParameters " ,
FT_UINT32 , BASE_DEC , VALS ( cms_RC2CBCParameters_vals ) , 0 ,
" cms.RC2CBCParameters " , HFILL } } ,
2004-10-29 12:11:42 +00:00
{ & hf_cms_contentType ,
{ " contentType " , " cms.contentType " ,
2005-12-05 23:00:03 +00:00
FT_OID , BASE_NONE , NULL , 0 ,
2007-01-13 15:26:13 +00:00
" cms.ContentType " , HFILL } } ,
2004-10-29 12:11:42 +00:00
{ & hf_cms_content ,
{ " content " , " cms.content " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.T_content " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_version ,
{ " version " , " cms.version " ,
2005-02-23 08:57:47 +00:00
FT_INT32 , BASE_DEC , VALS ( cms_CMSVersion_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.CMSVersion " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_digestAlgorithms ,
{ " digestAlgorithms " , " cms.digestAlgorithms " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.DigestAlgorithmIdentifiers " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_encapContentInfo ,
{ " encapContentInfo " , " cms.encapContentInfo " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.EncapsulatedContentInfo " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_certificates ,
{ " certificates " , " cms.certificates " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.CertificateSet " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_crls ,
{ " crls " , " cms.crls " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2010-01-12 14:29:53 +00:00
" cms.RevocationInfoChoices " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_signerInfos ,
{ " signerInfos " , " cms.signerInfos " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SignerInfos " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_DigestAlgorithmIdentifiers_item ,
2009-05-16 22:07:03 +00:00
{ " DigestAlgorithmIdentifier " , " cms.DigestAlgorithmIdentifier " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.DigestAlgorithmIdentifier " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_SignerInfos_item ,
2009-05-16 22:07:03 +00:00
{ " SignerInfo " , " cms.SignerInfo " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SignerInfo " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_eContentType ,
{ " eContentType " , " cms.eContentType " ,
2005-12-05 23:00:03 +00:00
FT_OID , BASE_NONE , NULL , 0 ,
2007-01-13 15:26:13 +00:00
" cms.ContentType " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_eContent ,
{ " eContent " , " cms.eContent " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.T_eContent " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_sid ,
{ " sid " , " cms.sid " ,
2005-02-23 08:57:47 +00:00
FT_UINT32 , BASE_DEC , VALS ( cms_SignerIdentifier_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SignerIdentifier " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_digestAlgorithm ,
{ " digestAlgorithm " , " cms.digestAlgorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.DigestAlgorithmIdentifier " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_signedAttrs ,
{ " signedAttrs " , " cms.signedAttrs " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SignedAttributes " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_signatureAlgorithm ,
{ " signatureAlgorithm " , " cms.signatureAlgorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SignatureAlgorithmIdentifier " , HFILL } } ,
2004-10-13 00:21:00 +00:00
{ & hf_cms_signatureValue ,
2004-07-20 09:11:40 +00:00
{ " signature " , " cms.signature " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SignatureValue " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_unsignedAttrs ,
{ " unsignedAttrs " , " cms.unsignedAttrs " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.UnsignedAttributes " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_issuerAndSerialNumber ,
{ " issuerAndSerialNumber " , " cms.issuerAndSerialNumber " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.IssuerAndSerialNumber " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_subjectKeyIdentifier ,
{ " subjectKeyIdentifier " , " cms.subjectKeyIdentifier " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SubjectKeyIdentifier " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_SignedAttributes_item ,
2009-05-16 22:07:03 +00:00
{ " Attribute " , " cms.Attribute " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Attribute " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_UnsignedAttributes_item ,
2009-05-16 22:07:03 +00:00
{ " Attribute " , " cms.Attribute " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Attribute " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_attrType ,
{ " attrType " , " cms.attrType " ,
2005-12-05 23:00:03 +00:00
FT_OID , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.T_attrType " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_attrValues ,
{ " attrValues " , " cms.attrValues " ,
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.SET_OF_AttributeValue " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_attrValues_item ,
2009-05-16 22:07:03 +00:00
{ " AttributeValue " , " cms.AttributeValue " ,
2005-10-03 05:17:51 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.AttributeValue " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_originatorInfo ,
{ " originatorInfo " , " cms.originatorInfo " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.OriginatorInfo " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_recipientInfos ,
{ " recipientInfos " , " cms.recipientInfos " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.RecipientInfos " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_encryptedContentInfo ,
{ " encryptedContentInfo " , " cms.encryptedContentInfo " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.EncryptedContentInfo " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_unprotectedAttrs ,
{ " unprotectedAttrs " , " cms.unprotectedAttrs " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.UnprotectedAttributes " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_certs ,
{ " certs " , " cms.certs " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.CertificateSet " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_RecipientInfos_item ,
2009-05-16 22:07:03 +00:00
{ " RecipientInfo " , " cms.RecipientInfo " ,
2005-02-23 08:57:47 +00:00
FT_UINT32 , BASE_DEC , VALS ( cms_RecipientInfo_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.RecipientInfo " , HFILL } } ,
2005-11-16 07:13:12 +00:00
{ & hf_cms_encryptedContentType ,
2004-07-25 10:34:07 +00:00
{ " contentType " , " cms.contentType " ,
2005-12-05 23:00:03 +00:00
FT_OID , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.ContentType " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_contentEncryptionAlgorithm ,
{ " contentEncryptionAlgorithm " , " cms.contentEncryptionAlgorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.ContentEncryptionAlgorithmIdentifier " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_encryptedContent ,
{ " encryptedContent " , " cms.encryptedContent " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.EncryptedContent " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_UnprotectedAttributes_item ,
2009-05-16 22:07:03 +00:00
{ " Attribute " , " cms.Attribute " ,
2004-07-25 10:34:07 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Attribute " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_ktri ,
{ " ktri " , " cms.ktri " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.KeyTransRecipientInfo " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_kari ,
{ " kari " , " cms.kari " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.KeyAgreeRecipientInfo " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_kekri ,
{ " kekri " , " cms.kekri " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.KEKRecipientInfo " , HFILL } } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_pwri ,
{ " pwri " , " cms.pwri " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.PasswordRecipientInfo " , HFILL } } ,
{ & hf_cms_ori ,
{ " ori " , " cms.ori " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.OtherRecipientInfo " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_rid ,
{ " rid " , " cms.rid " ,
2005-02-23 08:57:47 +00:00
FT_UINT32 , BASE_DEC , VALS ( cms_RecipientIdentifier_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.RecipientIdentifier " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_keyEncryptionAlgorithm ,
{ " keyEncryptionAlgorithm " , " cms.keyEncryptionAlgorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.KeyEncryptionAlgorithmIdentifier " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_encryptedKey ,
{ " encryptedKey " , " cms.encryptedKey " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.EncryptedKey " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_originator ,
{ " originator " , " cms.originator " ,
2005-02-23 08:57:47 +00:00
FT_UINT32 , BASE_DEC , VALS ( cms_OriginatorIdentifierOrKey_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.OriginatorIdentifierOrKey " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_ukm ,
{ " ukm " , " cms.ukm " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.UserKeyingMaterial " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_recipientEncryptedKeys ,
{ " recipientEncryptedKeys " , " cms.recipientEncryptedKeys " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.RecipientEncryptedKeys " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_originatorKey ,
{ " originatorKey " , " cms.originatorKey " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.OriginatorPublicKey " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_algorithm ,
{ " algorithm " , " cms.algorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" x509af.AlgorithmIdentifier " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_publicKey ,
{ " publicKey " , " cms.publicKey " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.BIT_STRING " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_RecipientEncryptedKeys_item ,
2009-05-16 22:07:03 +00:00
{ " RecipientEncryptedKey " , " cms.RecipientEncryptedKey " ,
2004-07-25 10:34:07 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.RecipientEncryptedKey " , HFILL } } ,
2004-10-13 00:21:00 +00:00
{ & hf_cms_rekRid ,
2004-07-25 10:34:07 +00:00
{ " rid " , " cms.rid " ,
2005-02-23 08:57:47 +00:00
FT_UINT32 , BASE_DEC , VALS ( cms_KeyAgreeRecipientIdentifier_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.KeyAgreeRecipientIdentifier " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_rKeyId ,
{ " rKeyId " , " cms.rKeyId " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.RecipientKeyIdentifier " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_date ,
{ " date " , " cms.date " ,
FT_STRING , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.GeneralizedTime " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_other ,
{ " other " , " cms.other " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.OtherKeyAttribute " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_kekid ,
{ " kekid " , " cms.kekid " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.KEKIdentifier " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_keyIdentifier ,
{ " keyIdentifier " , " cms.keyIdentifier " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.OCTET_STRING " , HFILL } } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_keyDerivationAlgorithm ,
{ " keyDerivationAlgorithm " , " cms.keyDerivationAlgorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.KeyDerivationAlgorithmIdentifier " , HFILL } } ,
{ & hf_cms_oriType ,
{ " oriType " , " cms.oriType " ,
FT_OID , BASE_NONE , NULL , 0 ,
" cms.T_oriType " , HFILL } } ,
{ & hf_cms_oriValue ,
{ " oriValue " , " cms.oriValue " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.T_oriValue " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_digest ,
{ " digest " , " cms.digest " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Digest " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_macAlgorithm ,
{ " macAlgorithm " , " cms.macAlgorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.MessageAuthenticationCodeAlgorithm " , HFILL } } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_authAttrs ,
{ " authAttrs " , " cms.authAttrs " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.AuthAttributes " , HFILL } } ,
2004-07-25 10:34:07 +00:00
{ & hf_cms_mac ,
{ " mac " , " cms.mac " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.MessageAuthenticationCode " , HFILL } } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_unauthAttrs ,
{ " unauthAttrs " , " cms.unauthAttrs " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.UnauthAttributes " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_AuthAttributes_item ,
2009-05-16 22:07:03 +00:00
{ " Attribute " , " cms.Attribute " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Attribute " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_UnauthAttributes_item ,
2009-05-16 22:07:03 +00:00
{ " Attribute " , " cms.Attribute " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Attribute " , HFILL } } ,
2010-01-12 14:29:53 +00:00
{ & hf_cms_RevocationInfoChoices_item ,
{ " RevocationInfoChoice " , " cms.RevocationInfoChoice " ,
FT_UINT32 , BASE_DEC , VALS ( cms_RevocationInfoChoice_vals ) , 0 ,
" cms.RevocationInfoChoice " , HFILL } } ,
{ & hf_cms_crl ,
{ " crl " , " cms.crl " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" x509af.CertificateList " , HFILL } } ,
2010-01-12 14:29:53 +00:00
{ & hf_cms_otherRIC ,
{ " other " , " cms.other " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.OtherRevocationInfoFormat " , HFILL } } ,
{ & hf_cms_otherRevInfoFormat ,
{ " otherRevInfoFormat " , " cms.otherRevInfoFormat " ,
FT_OID , BASE_NONE , NULL , 0 ,
" cms.T_otherRevInfoFormat " , HFILL } } ,
{ & hf_cms_otherRevInfo ,
{ " otherRevInfo " , " cms.otherRevInfo " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.T_otherRevInfo " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_certificate ,
{ " certificate " , " cms.certificate " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" x509af.Certificate " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_extendedCertificate ,
{ " extendedCertificate " , " cms.extendedCertificate " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.ExtendedCertificate " , HFILL } } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_v1AttrCert ,
{ " v1AttrCert " , " cms.v1AttrCert " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.AttributeCertificateV1 " , HFILL } } ,
{ & hf_cms_v2AttrCert ,
{ " v2AttrCert " , " cms.v2AttrCert " ,
2004-07-20 09:11:40 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
2010-01-12 11:49:17 +00:00
" cms.AttributeCertificateV2 " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_CertificateSet_item ,
2009-05-16 22:07:03 +00:00
{ " CertificateChoices " , " cms.CertificateChoices " ,
2005-02-23 08:57:47 +00:00
FT_UINT32 , BASE_DEC , VALS ( cms_CertificateChoices_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" cms.CertificateChoices " , HFILL } } ,
2004-07-25 10:41:39 +00:00
{ & hf_cms_issuer ,
{ " issuer " , " cms.issuer " ,
2005-02-23 08:57:47 +00:00
FT_UINT32 , BASE_DEC , VALS ( x509if_Name_vals ) , 0 ,
2006-08-16 05:58:39 +00:00
" x509if.Name " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_serialNumber ,
{ " serialNumber " , " cms.serialNumber " ,
2004-07-25 10:34:07 +00:00
FT_INT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" x509af.CertificateSerialNumber " , HFILL } } ,
2004-10-29 12:11:42 +00:00
{ & hf_cms_keyAttrId ,
{ " keyAttrId " , " cms.keyAttrId " ,
2005-12-05 23:00:03 +00:00
FT_OID , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.T_keyAttrId " , HFILL } } ,
2004-10-29 12:11:42 +00:00
{ & hf_cms_keyAttr ,
{ " keyAttr " , " cms.keyAttr " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.T_keyAttr " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_utcTime ,
{ " utcTime " , " cms.utcTime " ,
FT_STRING , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.UTCTime " , HFILL } } ,
2005-10-03 05:17:51 +00:00
{ & hf_cms_generalTime ,
{ " generalTime " , " cms.generalTime " ,
FT_STRING , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.GeneralizedTime " , HFILL } } ,
2007-01-28 10:20:51 +00:00
{ & hf_cms_rc2ParameterVersion ,
{ " rc2ParameterVersion " , " cms.rc2ParameterVersion " ,
FT_INT32 , BASE_DEC , NULL , 0 ,
" cms.INTEGER " , HFILL } } ,
{ & hf_cms_iv ,
{ " iv " , " cms.iv " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2007-01-28 10:20:51 +00:00
" cms.OCTET_STRING " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_extendedCertificateInfo ,
{ " extendedCertificateInfo " , " cms.extendedCertificateInfo " ,
FT_NONE , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.ExtendedCertificateInfo " , HFILL } } ,
2004-10-13 00:21:00 +00:00
{ & hf_cms_signature ,
2004-07-20 09:11:40 +00:00
{ " signature " , " cms.signature " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.Signature " , HFILL } } ,
2004-07-20 09:11:40 +00:00
{ & hf_cms_attributes ,
{ " attributes " , " cms.attributes " ,
2005-07-21 21:12:09 +00:00
FT_UINT32 , BASE_DEC , NULL , 0 ,
2006-08-16 05:58:39 +00:00
" cms.UnauthAttributes " , HFILL } } ,
2007-01-28 10:20:51 +00:00
{ & hf_cms_SMIMECapabilities_item ,
2009-05-16 22:07:03 +00:00
{ " SMIMECapability " , " cms.SMIMECapability " ,
2007-01-28 10:20:51 +00:00
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.SMIMECapability " , HFILL } } ,
{ & hf_cms_capability ,
{ " capability " , " cms.capability " ,
FT_OID , BASE_NONE , NULL , 0 ,
" cms.T_capability " , HFILL } } ,
{ & hf_cms_parameters ,
{ " parameters " , " cms.parameters " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.T_parameters " , HFILL } } ,
{ & hf_cms_recipientKeyId ,
{ " recipientKeyId " , " cms.recipientKeyId " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.RecipientKeyIdentifier " , HFILL } } ,
{ & hf_cms_subjectAltKeyIdentifier ,
{ " subjectAltKeyIdentifier " , " cms.subjectAltKeyIdentifier " ,
From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero
svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
FT_BYTES , BASE_NONE , NULL , 0 ,
2007-01-28 10:20:51 +00:00
" cms.SubjectKeyIdentifier " , HFILL } } ,
{ & hf_cms_rc2WrapParameter ,
{ " rc2WrapParameter " , " cms.rc2WrapParameter " ,
FT_INT32 , BASE_DEC , NULL , 0 ,
" cms.RC2WrapParameter " , HFILL } } ,
{ & hf_cms_rc2CBCParameter ,
{ " rc2CBCParameter " , " cms.rc2CBCParameter " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.RC2CBCParameter " , HFILL } } ,
2010-01-12 11:49:17 +00:00
{ & hf_cms_acInfo ,
{ " acInfo " , " cms.acInfo " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.AttributeCertificateInfoV1 " , HFILL } } ,
{ & hf_cms_signatureAlgorithm_v1 ,
{ " signatureAlgorithm " , " cms.signatureAlgorithm " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" x509af.AlgorithmIdentifier " , HFILL } } ,
{ & hf_cms_signatureValue_v1 ,
{ " signature " , " cms.signature " ,
FT_BYTES , BASE_NONE , NULL , 0 ,
" cms.BIT_STRING " , HFILL } } ,
{ & hf_cms_version_v1 ,
{ " version " , " cms.version " ,
FT_INT32 , BASE_DEC , VALS ( cms_AttCertVersionV1_vals ) , 0 ,
" cms.AttCertVersionV1 " , HFILL } } ,
{ & hf_cms_subject ,
{ " subject " , " cms.subject " ,
FT_UINT32 , BASE_DEC , VALS ( cms_T_subject_vals ) , 0 ,
" cms.T_subject " , HFILL } } ,
{ & hf_cms_baseCertificateID ,
{ " baseCertificateID " , " cms.baseCertificateID " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" x509af.IssuerSerial " , HFILL } } ,
{ & hf_cms_subjectName ,
{ " subjectName " , " cms.subjectName " ,
FT_UINT32 , BASE_DEC , NULL , 0 ,
" x509ce.GeneralNames " , HFILL } } ,
{ & hf_cms_issuer_v1 ,
{ " issuer " , " cms.issuer " ,
FT_UINT32 , BASE_DEC , NULL , 0 ,
" x509ce.GeneralNames " , HFILL } } ,
{ & hf_cms_signature_v1 ,
{ " signature " , " cms.signature " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" x509af.AlgorithmIdentifier " , HFILL } } ,
{ & hf_cms_attCertValidityPeriod ,
{ " attCertValidityPeriod " , " cms.attCertValidityPeriod " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" x509af.AttCertValidityPeriod " , HFILL } } ,
{ & hf_cms_attributes_v1 ,
{ " attributes " , " cms.attributes " ,
FT_UINT32 , BASE_DEC , NULL , 0 ,
" cms.SEQUENCE_OF_Attribute " , HFILL } } ,
{ & hf_cms_attributes_v1_item ,
{ " Attribute " , " cms.Attribute " ,
FT_NONE , BASE_NONE , NULL , 0 ,
" cms.Attribute " , HFILL } } ,
{ & hf_cms_issuerUniqueID ,
{ " issuerUniqueID " , " cms.issuerUniqueID " ,
FT_BYTES , BASE_NONE , NULL , 0 ,
" x509sat.UniqueIdentifier " , HFILL } } ,
{ & hf_cms_extensions ,
{ " extensions " , " cms.extensions " ,
FT_UINT32 , BASE_DEC , NULL , 0 ,
" x509af.Extensions " , HFILL } } ,
2004-07-20 09:11:40 +00:00
/*--- End of included file: packet-cms-hfarr.c ---*/
2010-01-12 14:29:53 +00:00
# line 150 "packet-cms-template.c"
2004-07-20 09:11:40 +00:00
} ;
/* List of subtrees */
static gint * ett [ ] = {
/*--- Included file: packet-cms-ettarr.c ---*/
2005-12-05 23:00:03 +00:00
# line 1 "packet-cms-ettarr.c"
2004-10-29 12:11:42 +00:00
& ett_cms_ContentInfo ,
2004-07-20 09:11:40 +00:00
& ett_cms_SignedData ,
& ett_cms_DigestAlgorithmIdentifiers ,
& ett_cms_SignerInfos ,
& ett_cms_EncapsulatedContentInfo ,
& ett_cms_SignerInfo ,
& ett_cms_SignerIdentifier ,
& ett_cms_SignedAttributes ,
& ett_cms_UnsignedAttributes ,
& ett_cms_Attribute ,
2005-10-03 05:17:51 +00:00
& ett_cms_SET_OF_AttributeValue ,
2004-07-25 10:34:07 +00:00
& ett_cms_EnvelopedData ,
& ett_cms_OriginatorInfo ,
& ett_cms_RecipientInfos ,
& ett_cms_EncryptedContentInfo ,
& ett_cms_UnprotectedAttributes ,
& ett_cms_RecipientInfo ,
& ett_cms_KeyTransRecipientInfo ,
2004-07-20 09:11:40 +00:00
& ett_cms_RecipientIdentifier ,
2004-07-25 10:34:07 +00:00
& ett_cms_KeyAgreeRecipientInfo ,
& ett_cms_OriginatorIdentifierOrKey ,
& ett_cms_OriginatorPublicKey ,
& ett_cms_RecipientEncryptedKeys ,
& ett_cms_RecipientEncryptedKey ,
& ett_cms_KeyAgreeRecipientIdentifier ,
& ett_cms_RecipientKeyIdentifier ,
& ett_cms_KEKRecipientInfo ,
& ett_cms_KEKIdentifier ,
2010-01-12 11:49:17 +00:00
& ett_cms_PasswordRecipientInfo ,
& ett_cms_OtherRecipientInfo ,
2004-07-25 10:34:07 +00:00
& ett_cms_DigestedData ,
& ett_cms_EncryptedData ,
& ett_cms_AuthenticatedData ,
2004-07-20 09:11:40 +00:00
& ett_cms_AuthAttributes ,
& ett_cms_UnauthAttributes ,
2010-01-12 14:29:53 +00:00
& ett_cms_RevocationInfoChoices ,
& ett_cms_RevocationInfoChoice ,
& ett_cms_OtherRevocationInfoFormat ,
2004-07-20 09:11:40 +00:00
& ett_cms_CertificateChoices ,
& ett_cms_CertificateSet ,
& ett_cms_IssuerAndSerialNumber ,
2004-07-25 10:34:07 +00:00
& ett_cms_OtherKeyAttribute ,
2005-10-03 05:17:51 +00:00
& ett_cms_Time ,
2007-01-28 10:20:51 +00:00
& ett_cms_RC2CBCParameter ,
2004-07-20 09:11:40 +00:00
& ett_cms_ExtendedCertificate ,
& ett_cms_ExtendedCertificateInfo ,
2007-01-28 10:20:51 +00:00
& ett_cms_SMIMECapabilities ,
& ett_cms_SMIMECapability ,
& ett_cms_SMIMEEncryptionKeyPreference ,
& ett_cms_RC2CBCParameters ,
2010-01-12 11:49:17 +00:00
& ett_cms_AttributeCertificateV1 ,
& ett_cms_AttributeCertificateInfoV1 ,
& ett_cms_T_subject ,
& ett_cms_SEQUENCE_OF_Attribute ,
2004-07-20 09:11:40 +00:00
/*--- End of included file: packet-cms-ettarr.c ---*/
2010-01-12 14:29:53 +00:00
# line 155 "packet-cms-template.c"
2004-07-20 09:11:40 +00:00
} ;
/* Register protocol */
proto_cms = proto_register_protocol ( PNAME , PSNAME , PFNAME ) ;
/* Register fields and subtrees */
proto_register_field_array ( proto_cms , hf , array_length ( hf ) ) ;
proto_register_subtree_array ( ett , array_length ( ett ) ) ;
2007-01-28 10:20:51 +00:00
register_ber_syntax_dissector ( " ContentInfo " , proto_cms , dissect_ContentInfo_PDU ) ;
register_ber_oid_syntax ( " .p7s " , NULL , " ContentInfo " ) ;
register_ber_oid_syntax ( " .p7m " , NULL , " ContentInfo " ) ;
register_ber_oid_syntax ( " .p7c " , NULL , " ContentInfo " ) ;
2004-07-20 09:11:40 +00:00
}
/*--- proto_reg_handoff_cms -------------------------------------------*/
void proto_reg_handoff_cms ( void ) {
2004-10-26 13:53:30 +00:00
/*--- Included file: packet-cms-dis-tab.c ---*/
2005-12-05 23:00:03 +00:00
# line 1 "packet-cms-dis-tab.c"
2005-10-02 21:14:35 +00:00
register_ber_oid_dissector ( " 1.2.840.113549.1.9.16.1.6 " , dissect_ContentInfo_PDU , proto_cms , " id-ct-contentInfo " ) ;
2005-07-09 02:58:07 +00:00
register_ber_oid_dissector ( " 1.2.840.113549.1.7.2 " , dissect_SignedData_PDU , proto_cms , " id-signedData " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.7.3 " , dissect_EnvelopedData_PDU , proto_cms , " id-envelopedData " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.7.5 " , dissect_DigestedData_PDU , proto_cms , " id-digestedData " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.7.6 " , dissect_EncryptedData_PDU , proto_cms , " id-encryptedData " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.9.16.1.2 " , dissect_AuthenticatedData_PDU , proto_cms , " id-ct-authenticatedData " ) ;
2005-10-03 05:17:51 +00:00
register_ber_oid_dissector ( " 1.2.840.113549.1.9.3 " , dissect_ContentType_PDU , proto_cms , " id-contentType " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.9.4 " , dissect_MessageDigest_PDU , proto_cms , " id-messageDigest " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.9.5 " , dissect_SigningTime_PDU , proto_cms , " id-signingTime " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.9.6 " , dissect_Countersignature_PDU , proto_cms , " id-counterSignature " ) ;
2005-12-05 23:00:03 +00:00
register_ber_oid_dissector ( " 2.6.1.4.18 " , dissect_ContentInfo_PDU , proto_cms , " id-et-pkcs7 " ) ;
2007-01-28 10:20:51 +00:00
register_ber_oid_dissector ( " 1.3.6.1.4.1.311.16.4 " , dissect_IssuerAndSerialNumber_PDU , proto_cms , " ms-oe-encryption-key-preference " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.9.15 " , dissect_SMIMECapabilities_PDU , proto_cms , " id-smime-capabilities " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.1.9.16.2.11 " , dissect_SMIMEEncryptionKeyPreference_PDU , proto_cms , " id-encryption-key-preference " ) ;
register_ber_oid_dissector ( " 1.2.840.113549.3.2 " , dissect_RC2CBCParameters_PDU , proto_cms , " id-alg-rc2-cbc " ) ;
2007-03-23 16:45:49 +00:00
register_ber_oid_dissector ( " 1.2.840.113549.3.4 " , dissect_RC2CBCParameters_PDU , proto_cms , " id-alg-rc4 " ) ;
2007-01-28 10:20:51 +00:00
register_ber_oid_dissector ( " 1.2.840.113549.1.9.16.3.7 " , dissect_RC2WrapParameter_PDU , proto_cms , " id-alg-cmsrc2-wrap " ) ;
2004-10-26 13:53:30 +00:00
/*--- End of included file: packet-cms-dis-tab.c ---*/
2010-01-12 14:29:53 +00:00
# line 176 "packet-cms-template.c"
2007-01-13 15:26:13 +00:00
2007-10-31 08:26:52 +00:00
oid_add_from_string ( " id-data " , " 1.2.840.113549.1.7.1 " ) ;
oid_add_from_string ( " id-alg-des-ede3-cbc " , " 1.2.840.113549.3.7 " ) ;
oid_add_from_string ( " id-alg-des-cbc " , " 1.3.14.3.2.7 " ) ;
2007-01-13 15:26:13 +00:00
2004-07-20 09:11:40 +00:00
}