libksba  1.6.0
About: KSBA is a library to make the tasks of working with X.509 certificates, CMS data and related objects more easy.
  Fossies Dox: libksba-1.6.0.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

cms.c File Reference
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <errno.h>
#include "util.h"
#include "cms.h"
#include "convert.h"
#include "keyinfo.h"
#include "der-encoder.h"
#include "ber-help.h"
#include "sexp-parse.h"
#include "cert.h"
#include "der-builder.h"
#include "stringbuf.h"
Include dependency graph for cms.c:

Go to the source code of this file.

Data Structures

struct  attrarray_s
 

Functions

static gpg_error_t ct_parse_data (ksba_cms_t cms)
 
static gpg_error_t ct_parse_signed_data (ksba_cms_t cms)
 
static gpg_error_t ct_parse_enveloped_data (ksba_cms_t cms)
 
static gpg_error_t ct_parse_digested_data (ksba_cms_t cms)
 
static gpg_error_t ct_parse_encrypted_data (ksba_cms_t cms)
 
static gpg_error_t ct_build_data (ksba_cms_t cms)
 
static gpg_error_t ct_build_signed_data (ksba_cms_t cms)
 
static gpg_error_t ct_build_enveloped_data (ksba_cms_t cms)
 
static gpg_error_t ct_build_digested_data (ksba_cms_t cms)
 
static gpg_error_t ct_build_encrypted_data (ksba_cms_t cms)
 
static gpg_error_t read_hash_block (ksba_cms_t cms, unsigned long nleft)
 
static gpg_error_t read_and_hash_cont (ksba_cms_t cms)
 
static gpg_error_t read_encrypted_cont (ksba_cms_t cms)
 
static gpg_error_t write_encrypted_cont (ksba_cms_t cms)
 
ksba_content_type_t _ksba_cms_identify (ksba_reader_t reader)
 
gpg_error_t _ksba_cms_new (ksba_cms_t *r_cms)
 
static void release_value_tree (struct value_tree_s *tree)
 
void _ksba_cms_release (ksba_cms_t cms)
 
gpg_error_t _ksba_cms_set_reader_writer (ksba_cms_t cms, ksba_reader_t r, ksba_writer_t w)
 
gpg_error_t _ksba_cms_parse (ksba_cms_t cms, ksba_stop_reason_t *r_stopreason)
 
gpg_error_t _ksba_cms_build (ksba_cms_t cms, ksba_stop_reason_t *r_stopreason)
 
ksba_content_type_t _ksba_cms_get_content_type (ksba_cms_t cms, int what)
 
const char * _ksba_cms_get_content_oid (ksba_cms_t cms, int what)
 
gpg_error_t _ksba_cms_get_content_enc_iv (ksba_cms_t cms, void *iv, size_t maxivlen, size_t *ivlen)
 
const char * _ksba_cms_get_digest_algo_list (ksba_cms_t cms, int idx)
 
gpg_error_t _ksba_cms_get_issuer_serial (ksba_cms_t cms, int idx, char **r_issuer, ksba_sexp_t *r_serial)
 
const char * _ksba_cms_get_digest_algo (ksba_cms_t cms, int idx)
 
ksba_cert_t _ksba_cms_get_cert (ksba_cms_t cms, int idx)
 
gpg_error_t _ksba_cms_get_message_digest (ksba_cms_t cms, int idx, char **r_digest, size_t *r_digest_len)
 
gpg_error_t _ksba_cms_get_signing_time (ksba_cms_t cms, int idx, ksba_isotime_t r_sigtime)
 
gpg_error_t _ksba_cms_get_sigattr_oids (ksba_cms_t cms, int idx, const char *reqoid, char **r_value)
 
ksba_sexp_t _ksba_cms_get_sig_val (ksba_cms_t cms, int idx)
 
ksba_sexp_t _ksba_cms_get_enc_val (ksba_cms_t cms, int idx)
 
void _ksba_cms_set_hash_function (ksba_cms_t cms, void(*hash_fnc)(void *, const void *, size_t), void *hash_fnc_arg)
 
gpg_error_t _ksba_cms_hash_signed_attrs (ksba_cms_t cms, int idx)
 
gpg_error_t _ksba_cms_set_content_type (ksba_cms_t cms, int what, ksba_content_type_t type)
 
gpg_error_t _ksba_cms_add_digest_algo (ksba_cms_t cms, const char *oid)
 
gpg_error_t _ksba_cms_add_signer (ksba_cms_t cms, ksba_cert_t cert)
 
gpg_error_t _ksba_cms_add_cert (ksba_cms_t cms, ksba_cert_t cert)
 
gpg_error_t _ksba_cms_add_smime_capability (ksba_cms_t cms, const char *oid, const unsigned char *der, size_t derlen)
 
gpg_error_t _ksba_cms_set_message_digest (ksba_cms_t cms, int idx, const unsigned char *digest, size_t digest_len)
 
gpg_error_t _ksba_cms_set_signing_time (ksba_cms_t cms, int idx, const ksba_isotime_t sigtime)
 
gpg_error_t _ksba_cms_set_sig_val (ksba_cms_t cms, int idx, ksba_const_sexp_t sigval)
 
gpg_error_t _ksba_cms_set_content_enc_algo (ksba_cms_t cms, const char *oid, const void *iv, size_t ivlen)
 
gpg_error_t _ksba_cms_set_enc_val (ksba_cms_t cms, int idx, ksba_const_sexp_t encval)
 
gpg_error_t _ksba_cms_add_recipient (ksba_cms_t cms, ksba_cert_t cert)
 
static gpg_error_t build_signed_data_header (ksba_cms_t cms)
 
static gpg_error_t set_issuer_serial (AsnNode info, ksba_cert_t cert, int mode)
 
static gpg_error_t store_smime_capability_sequence (AsnNode node, struct oidparmlist_s *capabilities)
 
static int compare_attrarray (const void *a_v, const void *b_v)
 
static gpg_error_t build_signed_data_attributes (ksba_cms_t cms)
 
static gpg_error_t build_signed_data_rest (ksba_cms_t cms)
 
static gpg_error_t build_enveloped_data_header (ksba_cms_t cms)
 

Variables

struct {
   const char *   oid
 
   ksba_content_type_t   ct
 
   gpg_error_t(*   parse_handler )(ksba_cms_t)
 
   gpg_error_t(*   build_handler )(ksba_cms_t)
 
content_handlers []
 
static const char oidstr_contentType [] = "1.2.840.113549.1.9.3"
 
static const char oidstr_messageDigest [] = "1.2.840.113549.1.9.4"
 
static const char oid_messageDigest [9] ="\x2A\x86\x48\x86\xF7\x0D\x01\x09\x04"
 
static const char oidstr_signingTime [] = "1.2.840.113549.1.9.5"
 
static const char oid_signingTime [9] = "\x2A\x86\x48\x86\xF7\x0D\x01\x09\x05"
 
static const char oidstr_smimeCapabilities [] = "1.2.840.113549.1.9.15"
 

Function Documentation

◆ _ksba_cms_add_cert()

gpg_error_t _ksba_cms_add_cert ( ksba_cms_t  cms,
ksba_cert_t  cert 
)

ksba_cms_add_cert: @cms: A CMS object @cert: A certificate to be send along with the signed data.

This functions adds a certificate to the list of certificates send along with the signed data. Using this is optional but it is very common to include at least the certificate of the signer it self.

Return value: 0 on success or an error code.

Definition at line 1836 of file cms.c.

References _ksba_cert_cmp(), certlist_s::cert, ksba_cms_s::cert_info_list, GPG_ERR_INV_VALUE, gpg_error, ksba_cert_ref(), certlist_s::next, and xtrycalloc.

◆ _ksba_cms_add_digest_algo()

gpg_error_t _ksba_cms_add_digest_algo ( ksba_cms_t  cms,
const char *  oid 
)

ksba_cms_add_digest_algo: @cms: A CMS object @oid: A stringified object OID describing the hash algorithm

Set the algorithm to be used for creating the hash. Note, that we currently can't do a per-signer hash.

Return value: 0 on success or an error code

Definition at line 1766 of file cms.c.

References ksba_cms_s::digest_algos, GPG_ERR_INV_VALUE, gpg_error, oidlist_s::next, oid, oidlist_s::oid, xfree, xtrymalloc, and xtrystrdup.

◆ _ksba_cms_add_recipient()

gpg_error_t _ksba_cms_add_recipient ( ksba_cms_t  cms,
ksba_cert_t  cert 
)

ksba_cms_add_recipient: @cms: A CMS object @cert: A certificate used to describe the recipient.

This functions starts assembly of a new enveloped data content or adds another recipient to the list of recipients.

Note: after successful completion of this function ownership of @cert is transferred to @cms.

Return value: 0 on success or an error code.

Definition at line 2413 of file cms.c.

References certlist_s::cert, and ksba_cms_add_signer().

◆ _ksba_cms_add_signer()

gpg_error_t _ksba_cms_add_signer ( ksba_cms_t  cms,
ksba_cert_t  cert 
)

ksba_cms_add_signer: @cms: A CMS object @cert: A certificate used to describe the signer.

This functions starts assembly of a new signed data content or adds another signer to the list of signers.

Return value: 0 on success or an error code.

Definition at line 1800 of file cms.c.

References certlist_s::cert, ksba_cms_s::cert_list, GPG_ERR_INV_VALUE, gpg_error, ksba_cert_ref(), certlist_s::next, and xtrycalloc.

◆ _ksba_cms_add_smime_capability()

gpg_error_t _ksba_cms_add_smime_capability ( ksba_cms_t  cms,
const char *  oid,
const unsigned char *  der,
size_t  derlen 
)

◆ _ksba_cms_build()

◆ _ksba_cms_get_cert()

ksba_cert_t _ksba_cms_get_cert ( ksba_cms_t  cms,
int  idx 
)

ksba_cms_get_cert: @cms: CMS object @idx: enumerator

Get the certificate out of a CMS. The caller should use this in a loop to get all certificates. The returned certificate is a shallow copy of the original one; the caller must still use ksba_cert_release() to free it.

Return value: A Certificate object or NULL for end of list or error

Definition at line 1023 of file cms.c.

References certlist_s::cert, ksba_cms_s::cert_list, ksba_cert_ref(), and certlist_s::next.

◆ _ksba_cms_get_content_enc_iv()

gpg_error_t _ksba_cms_get_content_enc_iv ( ksba_cms_t  cms,
void *  iv,
size_t  maxivlen,
size_t *  ivlen 
)

Definition at line 780 of file cms.c.

References ksba_cms_s::encr_iv, ksba_cms_s::encr_ivlen, GPG_ERR_INV_VALUE, and gpg_error.

◆ _ksba_cms_get_content_oid()

const char* _ksba_cms_get_content_oid ( ksba_cms_t  cms,
int  what 
)

◆ _ksba_cms_get_content_type()

ksba_content_type_t _ksba_cms_get_content_type ( ksba_cms_t  cms,
int  what 
)

◆ _ksba_cms_get_digest_algo()

const char* _ksba_cms_get_digest_algo ( ksba_cms_t  cms,
int  idx 
)

ksba_cms_get_digest_algo: @cms: CMS object @idx: index of signer

Figure out the the digest algorithm used by the signer @idx return its OID. This is the algorithm acually used to calculate the signature.

Return value: NULL for no such signer or a constn string valid as long as the CMS object lives.

Definition at line 979 of file cms.c.

References _ksba_asn_find_node(), _ksba_oid_node_to_str(), signer_info_s::cache, signer_info_s::digest_algo, signer_info_s::image, signer_info_s::next, signer_info_s::root, and ksba_cms_s::signer_info.

◆ _ksba_cms_get_digest_algo_list()

const char* _ksba_cms_get_digest_algo_list ( ksba_cms_t  cms,
int  idx 
)

ksba_cert_get_digest_algo_list: @cms: CMS object @idx: enumerator

Figure out the the digest algorithm used for the signature and return its OID. Note that the algos returned are just hints on what to hash.

Return value: NULL for no more algorithms or a string valid as long as the the cms object is valid.

Definition at line 808 of file cms.c.

References ksba_cms_s::digest_algos, oidlist_s::next, and oidlist_s::oid.

◆ _ksba_cms_get_enc_val()

ksba_sexp_t _ksba_cms_get_enc_val ( ksba_cms_t  cms,
int  idx 
)

ksba_cms_get_enc_val: @cms: CMS object @idx: index of recipient info

Return the encrypted value (the session key) of recipient @idx in a format suitable to be used as input to Libgcrypt's decryption function. The caller must free the returned string.

Return value: NULL or a string with a S-Exp.

Definition at line 1423 of file cms.c.

References _ksba_asn_find_node(), _ksba_encval_kari_to_sexp(), _ksba_encval_to_sexp(), _ksba_parse_algorithm_identifier(), _ksba_parse_algorithm_identifier2(), _ksba_parse_algorithm_identifier3(), der, derlen, get_stringbuf(), gpg_error, gpg_error_from_syserror, value_tree_s::image, init_stringbuf(), asn_node_struct::len, tag_info::length, asn_node_struct::name, value_tree_s::next, asn_node_struct::nhdr, asn_node_struct::off, parse_octet_string, put_stringbuf(), put_stringbuf_mem_sexp(), put_stringbuf_sexp(), ksba_cms_s::recp_info, asn_node_struct::right, value_tree_s::root, signer_info_s::root, and xfree.

◆ _ksba_cms_get_issuer_serial()

gpg_error_t _ksba_cms_get_issuer_serial ( ksba_cms_t  cms,
int  idx,
char **  r_issuer,
ksba_sexp_t r_serial 
)

ksba_cms_get_issuer_serial: @cms: CMS object @idx: index number @r_issuer: returns the issuer @r_serial: returns the serial number

This functions returns the issuer and serial number either from the sid or the rid elements of a CMS object.

Return value: 0 on success or an error code. An error code of -1 is returned to indicate that there is no issuer with that idx, GPG_ERR_NO_DATA is returned to indicate that there is no issuer at all.

Definition at line 839 of file cms.c.

References _ksba_asn_find_node(), _ksba_dn_to_str(), asn_node_struct::down, GPG_ERR_GENERAL, GPG_ERR_INV_VALUE, gpg_error, value_tree_s::image, signer_info_s::image, asn_node_struct::len, asn_node_struct::name, value_tree_s::next, signer_info_s::next, asn_node_struct::nhdr, asn_node_struct::off, ksba_cms_s::recp_info, value_tree_s::root, signer_info_s::root, ksba_cms_s::signer_info, and xtrymalloc.

◆ _ksba_cms_get_message_digest()

◆ _ksba_cms_get_sig_val()

ksba_sexp_t _ksba_cms_get_sig_val ( ksba_cms_t  cms,
int  idx 
)

ksba_cms_get_sig_val: @cms: CMS object @idx: index of signer

Return the actual signature of signer @idx in a format suitable to be used as input to Libgcrypt's verification function. The caller must free the returned string.

Return value: NULL or a string with a S-Exp.

Definition at line 1295 of file cms.c.

References _ksba_asn_find_node(), _ksba_sigval_to_sexp(), signer_info_s::image, asn_node_struct::len, signer_info_s::next, asn_node_struct::nhdr, asn_node_struct::off, asn_node_struct::right, signer_info_s::root, and ksba_cms_s::signer_info.

◆ _ksba_cms_get_sigattr_oids()

◆ _ksba_cms_get_signing_time()

◆ _ksba_cms_hash_signed_attrs()

◆ _ksba_cms_identify()

◆ _ksba_cms_new()

gpg_error_t _ksba_cms_new ( ksba_cms_t r_cms)

ksba_cms_new:

Create a new and empty CMS object

Return value: A CMS object or an error code.

Definition at line 545 of file cms.c.

References xtrycalloc.

◆ _ksba_cms_parse()

◆ _ksba_cms_release()

◆ _ksba_cms_set_content_enc_algo()

gpg_error_t _ksba_cms_set_content_enc_algo ( ksba_cms_t  cms,
const char *  oid,
const void *  iv,
size_t  ivlen 
)

◆ _ksba_cms_set_content_type()

gpg_error_t _ksba_cms_set_content_type ( ksba_cms_t  cms,
int  what,
ksba_content_type_t  type 
)

ksba_cms_set_content_type: @cms: A CMS object @what: 0 for content type, 1 for inner content type @type: Type constant

Set the content type used for build operations. This should be the first operation before starting to create a CMS message.

Return value: 0 on success or an error code

Definition at line 1719 of file cms.c.

References build_handler, ksba_cms_s::content, content_handlers, ct, ksba_cms_s::ct, GPG_ERR_INV_VALUE, gpg_error, ksba_cms_s::handler, ksba_cms_s::inner_cont_oid, oid, ksba_cms_s::oid, and xtrystrdup.

◆ _ksba_cms_set_enc_val()

◆ _ksba_cms_set_hash_function()

void _ksba_cms_set_hash_function ( ksba_cms_t  cms,
void(*)(void *, const void *, size_t)  hash_fnc,
void *  hash_fnc_arg 
)

Definition at line 1658 of file cms.c.

References ksba_cms_s::hash_fnc, and ksba_cms_s::hash_fnc_arg.

◆ _ksba_cms_set_message_digest()

gpg_error_t _ksba_cms_set_message_digest ( ksba_cms_t  cms,
int  idx,
const unsigned char *  digest,
size_t  digest_len 
)

ksba_cms_set_message_digest: @cms: A CMS object @idx: The index of the signer @digest: a message digest @digest_len: the length of the message digest

Set a message digest into the signedAttributes of the signer with the index IDX. The index of a signer is determined by the sequence of ksba_cms_add_signer() calls; the first signer has the index 0. This function is to be used when the hash value of the data has been calculated and before the create function requests the sign operation.

Return value: 0 on success or an error code

Definition at line 1933 of file cms.c.

References ksba_cms_s::cert_list, DIM, GPG_ERR_INV_VALUE, gpg_error, certlist_s::msg_digest, certlist_s::msg_digest_len, and certlist_s::next.

◆ _ksba_cms_set_reader_writer()

gpg_error_t _ksba_cms_set_reader_writer ( ksba_cms_t  cms,
ksba_reader_t  r,
ksba_writer_t  w 
)

Definition at line 644 of file cms.c.

References GPG_ERR_INV_VALUE, gpg_error, ksba_cms_s::reader, and ksba_cms_s::writer.

◆ _ksba_cms_set_sig_val()

◆ _ksba_cms_set_signing_time()

gpg_error_t _ksba_cms_set_signing_time ( ksba_cms_t  cms,
int  idx,
const ksba_isotime_t  sigtime 
)

ksba_cms_set_signing_time: @cms: A CMS object @idx: The index of the signer @sigtime: a time or an empty value to use the current time

Set a signing time into the signedAttributes of the signer with the index IDX. The index of a signer is determined by the sequence of ksba_cms_add_signer() calls; the first signer has the index 0.

Return value: 0 on success or an error code

Definition at line 1967 of file cms.c.

References _ksba_copy_time(), _ksba_current_time(), ksba_cms_s::cert_list, GPG_ERR_INV_VALUE, gpg_error, certlist_s::next, and certlist_s::signing_time.

◆ build_enveloped_data_header()

◆ build_signed_data_attributes()

◆ build_signed_data_header()

◆ build_signed_data_rest()

◆ compare_attrarray()

static int compare_attrarray ( const void *  a_v,
const void *  b_v 
)
static

Definition at line 2851 of file cms.c.

References attrarray_s::image, and attrarray_s::imagelen.

Referenced by build_signed_data_attributes().

◆ ct_build_data()

static gpg_error_t ct_build_data ( ksba_cms_t  cms)
static

Definition at line 2604 of file cms.c.

References gpg_error.

◆ ct_build_digested_data()

static gpg_error_t ct_build_digested_data ( ksba_cms_t  cms)
static

Definition at line 3895 of file cms.c.

References gpg_error.

◆ ct_build_encrypted_data()

static gpg_error_t ct_build_encrypted_data ( ksba_cms_t  cms)
static

Definition at line 3903 of file cms.c.

References gpg_error.

◆ ct_build_enveloped_data()

◆ ct_build_signed_data()

◆ ct_parse_data()

static gpg_error_t ct_parse_data ( ksba_cms_t  cms)
static

Definition at line 2427 of file cms.c.

References gpg_error.

◆ ct_parse_digested_data()

static gpg_error_t ct_parse_digested_data ( ksba_cms_t  cms)
static

Definition at line 2583 of file cms.c.

References gpg_error.

◆ ct_parse_encrypted_data()

static gpg_error_t ct_parse_encrypted_data ( ksba_cms_t  cms)
static

Definition at line 2591 of file cms.c.

References gpg_error.

◆ ct_parse_enveloped_data()

◆ ct_parse_signed_data()

◆ read_and_hash_cont()

◆ read_encrypted_cont()

◆ read_hash_block()

static gpg_error_t read_hash_block ( ksba_cms_t  cms,
unsigned long  nleft 
)
static

◆ release_value_tree()

static void release_value_tree ( struct value_tree_s tree)
static

◆ set_issuer_serial()

static gpg_error_t set_issuer_serial ( AsnNode  info,
ksba_cert_t  cert,
int  mode 
)
static

◆ store_smime_capability_sequence()

◆ write_encrypted_cont()

static gpg_error_t write_encrypted_cont ( ksba_cms_t  cms)
static

Variable Documentation

◆ build_handler

gpg_error_t(* build_handler) (ksba_cms_t) ( ksba_cms_t  )

Definition at line 74 of file cms.c.

Referenced by _ksba_cms_set_content_type().

◆ 

content_handlers[] { ... } struct
Initial value:
= {
{ "1.2.840.113549.1.7.1", KSBA_CT_DATA,
{ "1.2.840.113549.1.7.2", KSBA_CT_SIGNED_DATA,
{ "1.2.840.113549.1.7.3", KSBA_CT_ENVELOPED_DATA,
{ "1.2.840.113549.1.9.16.1.23", KSBA_CT_AUTHENVELOPED_DATA,
{ "1.2.840.113549.1.7.5", KSBA_CT_DIGESTED_DATA,
{ "1.2.840.113549.1.7.6", KSBA_CT_ENCRYPTED_DATA,
{ "1.2.840.113549.1.9.16.1.2", KSBA_CT_AUTH_DATA },
{ "1.3.6.1.4.1.311.2.1.4", KSBA_CT_SPC_IND_DATA_CTX,
{ "1.3.6.1.4.1.11591.2.3.1", KSBA_CT_OPENPGP_KEYBLOCK,
{ NULL }
}
static gpg_error_t ct_build_enveloped_data(ksba_cms_t cms)
Definition: cms.c:3822
static gpg_error_t ct_parse_digested_data(ksba_cms_t cms)
Definition: cms.c:2583
static gpg_error_t ct_build_digested_data(ksba_cms_t cms)
Definition: cms.c:3895
static gpg_error_t ct_build_data(ksba_cms_t cms)
Definition: cms.c:2604
static gpg_error_t ct_parse_encrypted_data(ksba_cms_t cms)
Definition: cms.c:2591
static gpg_error_t ct_parse_signed_data(ksba_cms_t cms)
Definition: cms.c:2435
static gpg_error_t ct_build_signed_data(ksba_cms_t cms)
Definition: cms.c:3469
static gpg_error_t ct_parse_enveloped_data(ksba_cms_t cms)
Definition: cms.c:2515
static gpg_error_t ct_parse_data(ksba_cms_t cms)
Definition: cms.c:2427
static gpg_error_t ct_build_encrypted_data(ksba_cms_t cms)
Definition: cms.c:3903
@ KSBA_CT_DATA
Definition: ksba.h:121
@ KSBA_CT_DIGESTED_DATA
Definition: ksba.h:124
@ KSBA_CT_AUTH_DATA
Definition: ksba.h:126
@ KSBA_CT_SPC_IND_DATA_CTX
Definition: ksba.h:128
@ KSBA_CT_SIGNED_DATA
Definition: ksba.h:122
@ KSBA_CT_ENVELOPED_DATA
Definition: ksba.h:123
@ KSBA_CT_AUTHENVELOPED_DATA
Definition: ksba.h:130
@ KSBA_CT_ENCRYPTED_DATA
Definition: ksba.h:125
@ KSBA_CT_OPENPGP_KEYBLOCK
Definition: ksba.h:129

Referenced by _ksba_cms_get_content_type(), _ksba_cms_identify(), _ksba_cms_parse(), and _ksba_cms_set_content_type().

◆ ct

Definition at line 72 of file cms.c.

Referenced by _ksba_cms_identify(), and _ksba_cms_set_content_type().

◆ oid

◆ oid_messageDigest

const char oid_messageDigest[9] ="\x2A\x86\x48\x86\xF7\x0D\x01\x09\x04"
static

Definition at line 100 of file cms.c.

Referenced by _ksba_cms_get_message_digest().

◆ oid_signingTime

const char oid_signingTime[9] = "\x2A\x86\x48\x86\xF7\x0D\x01\x09\x05"
static

Definition at line 103 of file cms.c.

Referenced by _ksba_cms_get_signing_time().

◆ oidstr_contentType

const char oidstr_contentType[] = "1.2.840.113549.1.9.3"
static

Definition at line 96 of file cms.c.

Referenced by build_signed_data_attributes().

◆ oidstr_messageDigest

const char oidstr_messageDigest[] = "1.2.840.113549.1.9.4"
static

Definition at line 99 of file cms.c.

Referenced by build_signed_data_attributes().

◆ oidstr_signingTime

const char oidstr_signingTime[] = "1.2.840.113549.1.9.5"
static

Definition at line 102 of file cms.c.

Referenced by build_signed_data_attributes().

◆ oidstr_smimeCapabilities

const char oidstr_smimeCapabilities[] = "1.2.840.113549.1.9.15"
static

Definition at line 105 of file cms.c.

Referenced by build_signed_data_attributes().

◆ parse_handler

gpg_error_t(* parse_handler) (ksba_cms_t) ( ksba_cms_t  )

Definition at line 73 of file cms.c.

Referenced by _ksba_cms_parse().