Go to the documentation of this file.
30 #include "../internal.h"
35 const size_t initial_certs_len =
sk_X509_num(out_certs);
46 !sk_X509_push(out_certs, x509)) {
57 while (
sk_X509_num(out_certs) != initial_certs_len) {
58 X509 *x509 = sk_X509_pop(out_certs);
67 CBS signed_data, crls;
69 int ret = 0, has_crls;
70 const size_t initial_crls_len = sk_X509_CRL_num(out_crls);
77 &signed_data, NULL, NULL,
80 &signed_data, &crls, &has_crls,
98 if (
CBS_len(&crl_data) > LONG_MAX) {
109 if (sk_X509_CRL_push(out_crls, crl) == 0) {
121 while (sk_X509_CRL_num(out_crls) != initial_crls_len) {
217 for (
i = 0;
i < sk_X509_CRL_num(crls);
i++) {
218 X509_CRL *crl = sk_X509_CRL_value(crls,
i);
247 if (
ret->d.sign == NULL) {
251 ret->d.sign->crl = sk_X509_CRL_new_null();
253 if (
ret->d.sign->cert == NULL ||
ret->d.sign->crl == NULL ||
260 sk_X509_free(
ret->d.sign->cert);
261 ret->d.sign->cert = NULL;
264 if (sk_X509_CRL_num(
ret->d.sign->crl) == 0) {
265 sk_X509_CRL_free(
ret->d.sign->crl);
266 ret->d.sign->crl = NULL;
271 if (
ret->ber_bytes == NULL) {
300 static const size_t kMaxSize = 4 * 1024 * 1024;
311 if (
out != NULL &&
ret != NULL) {
354 if (p7->
d.
sign != NULL) {
387 static const size_t kBufSize = 4096;
410 *out_sig_len = max_out_sig;
439 const int subject_len =
445 CBB seq, issuer_and_serial, signing_algo,
null,
signature;
446 if (subject_len < 0 ||
452 !
CBB_add_bytes(&issuer_and_serial, subject_bytes, subject_len) ||
453 !
CBB_add_bytes(&issuer_and_serial, serial_bytes, serial_len) ||
488 }
else if (
sign_cert != NULL && pkey != NULL && certs == NULL &&
502 signature_max_len, pkey,
data) ||
#define PEM_bytes_read_bio
#define CRYPTO_BUFFER_free
#define EVP_DigestSignInit
#define X509_get_subject_name
#define CBB_flush_asn1_set_of
#define OPENSSL_PUT_ERROR(library, reason)
static int copy(grpc_slice_buffer *input, grpc_slice_buffer *output)
#define CBS_ASN1_OCTETSTRING
#define NID_rsaEncryption
int PKCS7_type_is_data(const PKCS7 *p7)
#define CBS_ASN1_CONTEXT_SPECIFIC
int PKCS7_bundle_CRLs(CBB *out, const STACK_OF(X509_CRL) *crls)
OPENSSL_EXPORT X509 * X509_parse_from_buffer(CRYPTO_BUFFER *buf)
static struct test_ctx ctx
static int write_signer_info(CBB *out, const void *arg)
const OPENSSL_EXPORT EVP_MD * EVP_sha256(void)
static int sign_sha256(uint8_t *out_sig, size_t *out_sig_len, size_t max_out_sig, EVP_PKEY *pkey, BIO *data)
static void * OPENSSL_memset(void *dst, int c, size_t n)
int PKCS7_get_PEM_CRLs(STACK_OF(X509_CRL) *out_crls, BIO *pem_bio)
PKCS7 * PKCS7_sign(X509 *sign_cert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, int flags)
int PKCS7_get_PEM_certificates(STACK_OF(X509) *out_certs, BIO *pem_bio)
void PKCS7_free(PKCS7 *p7)
#define sk_CRYPTO_BUFFER_new_null
int PKCS7_type_is_signedAndEnveloped(const PKCS7 *p7)
#define EVP_DigestSignFinal
int PKCS7_bundle_certificates(CBB *out, const STACK_OF(X509) *certs)
int i2d_PKCS7(const PKCS7 *p7, uint8_t **out)
#define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED
PKCS7 * d2i_PKCS7_bio(BIO *bio, PKCS7 **out)
#define PKCS7_get_raw_certificates
static void * OPENSSL_memcpy(void *dst, const void *src, size_t n)
#define pkcs7_add_signed_data
ASN1_BIT_STRING * signature
int PKCS7_type_is_enveloped(const PKCS7 *p7)
OPENSSL_EXPORT int i2d_ASN1_INTEGER(const ASN1_INTEGER *in, uint8_t **outp)
#define CBS_ASN1_CONSTRUCTED
static int write_sha256_ai(CBB *digest_algos_set, const void *arg)
static int pkcs7_bundle_certificates_cb(CBB *out, const void *arg)
int PKCS7_get_certificates(STACK_OF(X509) *out_certs, CBS *cbs)
#define sk_CRYPTO_BUFFER_value
static int pkcs7_bundle_crls_cb(CBB *out, const void *arg)
#define pkcs7_parse_header
#define CBS_get_optional_asn1
#define X509_get0_serialNumber
int PKCS7_type_is_encrypted(const PKCS7 *p7)
PKCS7 * d2i_PKCS7(PKCS7 **out, const uint8_t **inp, size_t len)
UniquePtr< SSL_SESSION > ret
int i2d_PKCS7_bio(BIO *bio, const PKCS7 *p7)
#define EVP_DigestSignUpdate
int PKCS7_type_is_digest(const PKCS7 *p7)
#define CBS_get_asn1_element
static PKCS7 * pkcs7_new(CBS *cbs)
#define CBS_ASN1_SEQUENCE
#define EVP_MD_CTX_cleanup
int PKCS7_get_CRLs(STACK_OF(X509_CRL) *out_crls, CBS *cbs)
#define sk_CRYPTO_BUFFER_num
int PKCS7_type_is_signed(const PKCS7 *p7)
#define ERR_R_MALLOC_FAILURE
#define CBB_add_asn1_uint64
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:43