Mbed TLS v3.6.7
Toggle main menu visibility
Loading...
Searching...
No Matches
pkcs7.h
Go to the documentation of this file.
1
7
/*
8
* Copyright The Mbed TLS Contributors
9
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
10
*/
11
41
42
#ifndef MBEDTLS_PKCS7_H
43
#define MBEDTLS_PKCS7_H
44
45
#include "
mbedtls/private_access.h
"
46
47
#include "
mbedtls/build_info.h
"
48
49
#include "
mbedtls/asn1.h
"
50
#include "
mbedtls/x509_crt.h
"
51
56
#define MBEDTLS_ERR_PKCS7_INVALID_FORMAT -0x5300
57
#define MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE -0x5380
58
#define MBEDTLS_ERR_PKCS7_INVALID_VERSION -0x5400
59
#define MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO -0x5480
60
#define MBEDTLS_ERR_PKCS7_INVALID_ALG -0x5500
61
#define MBEDTLS_ERR_PKCS7_INVALID_CERT -0x5580
62
#define MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE -0x5600
63
#define MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO -0x5680
64
#define MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA -0x5700
65
#define MBEDTLS_ERR_PKCS7_ALLOC_FAILED -0x5780
66
#define MBEDTLS_ERR_PKCS7_VERIFY_FAIL -0x5800
67
#define MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID -0x5880
68
/* \} name */
69
74
#define MBEDTLS_PKCS7_SUPPORTED_VERSION 0x01
75
/* \} name */
76
77
#ifdef __cplusplus
78
extern
"C"
{
79
#endif
80
84
typedef
mbedtls_asn1_buf
mbedtls_pkcs7_buf
;
85
90
typedef
mbedtls_asn1_named_data
mbedtls_pkcs7_name
;
91
95
typedef
mbedtls_asn1_sequence
mbedtls_pkcs7_sequence
;
96
100
typedef
enum
{
101
MBEDTLS_PKCS7_NONE
=0,
102
MBEDTLS_PKCS7_DATA
,
103
MBEDTLS_PKCS7_SIGNED_DATA
,
104
MBEDTLS_PKCS7_ENVELOPED_DATA
,
105
MBEDTLS_PKCS7_SIGNED_AND_ENVELOPED_DATA
,
106
MBEDTLS_PKCS7_DIGESTED_DATA
,
107
MBEDTLS_PKCS7_ENCRYPTED_DATA
,
108
}
109
mbedtls_pkcs7_type
;
110
114
typedef
struct
mbedtls_pkcs7_signer_info
{
115
int
MBEDTLS_PRIVATE
(version);
116
mbedtls_x509_buf
MBEDTLS_PRIVATE
(serial);
117
mbedtls_x509_name
MBEDTLS_PRIVATE
(issuer);
118
mbedtls_x509_buf
MBEDTLS_PRIVATE
(issuer_raw);
119
mbedtls_x509_buf
MBEDTLS_PRIVATE
(alg_identifier);
120
mbedtls_x509_buf
MBEDTLS_PRIVATE
(sig_alg_identifier);
121
mbedtls_x509_buf
MBEDTLS_PRIVATE
(sig);
122
struct
mbedtls_pkcs7_signer_info
*
MBEDTLS_PRIVATE
(next);
123
}
124
mbedtls_pkcs7_signer_info
;
125
129
typedef
struct
mbedtls_pkcs7_signed_data
{
130
int
MBEDTLS_PRIVATE
(version);
131
mbedtls_pkcs7_buf
MBEDTLS_PRIVATE
(digest_alg_identifiers);
132
int
MBEDTLS_PRIVATE
(no_of_certs);
133
mbedtls_x509_crt
MBEDTLS_PRIVATE
(certs);
134
int
MBEDTLS_PRIVATE
(no_of_crls);
135
mbedtls_x509_crl
MBEDTLS_PRIVATE
(crl);
136
int
MBEDTLS_PRIVATE
(no_of_signers);
137
mbedtls_pkcs7_signer_info
MBEDTLS_PRIVATE
(signers);
138
}
139
mbedtls_pkcs7_signed_data
;
140
144
typedef
struct
mbedtls_pkcs7
{
145
mbedtls_pkcs7_buf
MBEDTLS_PRIVATE
(raw);
146
mbedtls_pkcs7_signed_data
MBEDTLS_PRIVATE
(signed_data);
147
}
148
mbedtls_pkcs7
;
149
155
void
mbedtls_pkcs7_init
(
mbedtls_pkcs7
*pkcs7);
156
173
int
mbedtls_pkcs7_parse_der
(
mbedtls_pkcs7
*pkcs7,
const
unsigned
char
*buf,
174
const
size_t
buflen);
175
204
int
mbedtls_pkcs7_signed_data_verify
(
mbedtls_pkcs7
*pkcs7,
205
const
mbedtls_x509_crt
*cert,
206
const
unsigned
char
*data,
207
size_t
datalen);
208
236
int
mbedtls_pkcs7_signed_hash_verify
(
mbedtls_pkcs7
*pkcs7,
237
const
mbedtls_x509_crt
*cert,
238
const
unsigned
char
*hash,
size_t
hashlen);
239
246
void
mbedtls_pkcs7_free
(
mbedtls_pkcs7
*pkcs7);
247
248
#ifdef __cplusplus
249
}
250
#endif
251
252
#endif
/* pkcs7.h */
asn1.h
Generic ASN.1 parsing.
mbedtls_x509_name
mbedtls_asn1_named_data mbedtls_x509_name
Definition
x509.h:227
mbedtls_x509_buf
mbedtls_asn1_buf mbedtls_x509_buf
Definition
x509.h:216
build_info.h
Build-time configuration info.
mbedtls_pkcs7_parse_der
int mbedtls_pkcs7_parse_der(mbedtls_pkcs7 *pkcs7, const unsigned char *buf, const size_t buflen)
Parse a single DER formatted PKCS #7 detached signature.
mbedtls_pkcs7_init
void mbedtls_pkcs7_init(mbedtls_pkcs7 *pkcs7)
Initialize mbedtls_pkcs7 structure.
mbedtls_pkcs7_signed_hash_verify
int mbedtls_pkcs7_signed_hash_verify(mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, const unsigned char *hash, size_t hashlen)
Verification of PKCS #7 signature against a caller-supplied certificate.
mbedtls_pkcs7_signed_data_verify
int mbedtls_pkcs7_signed_data_verify(mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, const unsigned char *data, size_t datalen)
Verification of PKCS #7 signature against a caller-supplied certificate.
mbedtls_pkcs7_buf
mbedtls_asn1_buf mbedtls_pkcs7_buf
Definition
pkcs7.h:84
mbedtls_pkcs7_sequence
mbedtls_asn1_sequence mbedtls_pkcs7_sequence
Definition
pkcs7.h:95
mbedtls_pkcs7_free
void mbedtls_pkcs7_free(mbedtls_pkcs7 *pkcs7)
Unallocate all PKCS #7 data and zeroize the memory. It doesn't free pkcs7 itself. This should be done...
mbedtls_pkcs7_name
mbedtls_asn1_named_data mbedtls_pkcs7_name
Definition
pkcs7.h:90
mbedtls_pkcs7_type
mbedtls_pkcs7_type
Definition
pkcs7.h:100
MBEDTLS_PKCS7_DIGESTED_DATA
@ MBEDTLS_PKCS7_DIGESTED_DATA
Definition
pkcs7.h:106
MBEDTLS_PKCS7_NONE
@ MBEDTLS_PKCS7_NONE
Definition
pkcs7.h:101
MBEDTLS_PKCS7_SIGNED_AND_ENVELOPED_DATA
@ MBEDTLS_PKCS7_SIGNED_AND_ENVELOPED_DATA
Definition
pkcs7.h:105
MBEDTLS_PKCS7_ENVELOPED_DATA
@ MBEDTLS_PKCS7_ENVELOPED_DATA
Definition
pkcs7.h:104
MBEDTLS_PKCS7_ENCRYPTED_DATA
@ MBEDTLS_PKCS7_ENCRYPTED_DATA
Definition
pkcs7.h:107
MBEDTLS_PKCS7_SIGNED_DATA
@ MBEDTLS_PKCS7_SIGNED_DATA
Definition
pkcs7.h:103
MBEDTLS_PKCS7_DATA
@ MBEDTLS_PKCS7_DATA
Definition
pkcs7.h:102
private_access.h
Macro wrapper for struct's members.
MBEDTLS_PRIVATE
#define MBEDTLS_PRIVATE(member)
Definition
private_access.h:15
mbedtls_asn1_buf
Definition
asn1.h:141
mbedtls_asn1_named_data
Definition
asn1.h:178
mbedtls_asn1_sequence
Definition
asn1.h:161
mbedtls_pkcs7_signed_data
Definition
pkcs7.h:129
mbedtls_pkcs7_signer_info
Definition
pkcs7.h:114
mbedtls_pkcs7
Definition
pkcs7.h:144
mbedtls_x509_crl
Definition
x509_crl.h:64
mbedtls_x509_crt
Definition
x509_crt.h:41
x509_crt.h
X.509 certificate parsing and writing.
include
mbedtls
pkcs7.h
Generated on
for Mbed TLS v3.6.7 by
1.17.0