Go to the documentation of this file.
68 #include "../internal.h"
78 #define X509_CRL_METHOD_DYNAMIC 1
122 if (!
a || !
a->revoked)
155 static int crl_set_issuers(
X509_CRL *crl)
160 GENERAL_NAMES *gens, *gtmp;
166 for (
i = 0;
i < sk_X509_REVOKED_num(revoked);
i++) {
173 if (!gtmp && (j != -1)) {
181 crl->issuers = sk_GENERAL_NAMES_new_null();
185 if (!sk_GENERAL_NAMES_push(crl->issuers, gtmp))
191 if (!reason && (j != -1)) {
204 exts = rev->extensions;
206 for (
k = 0;
k < sk_X509_EXTENSION_num(exts);
k++) {
207 ext = sk_X509_EXTENSION_value(exts,
k);
258 if (crl->
idp != NULL) {
262 }
else if (
i != -1) {
269 if (crl->
akid == NULL &&
i != -1) {
297 exts = crl->
crl->extensions;
299 for (
idx = 0;
idx < sk_X509_EXTENSION_num(exts);
idx++) {
301 ext = sk_X509_EXTENSION_value(exts,
idx);
316 if (!crl_set_issuers(crl))
407 if (!
inf->revoked || !sk_X509_REVOKED_push(
inf->revoked, rev)) {
411 inf->enc.modified = 1;
466 for (
i = 0;
i < sk_GENERAL_NAME_num(rev->issuer);
i++) {
492 const int is_sorted = sk_X509_REVOKED_is_sorted(crl->
crl->revoked);
497 if (!sk_X509_REVOKED_is_sorted(crl->
crl->revoked)) {
498 sk_X509_REVOKED_sort(crl->
crl->revoked);
503 if (!sk_X509_REVOKED_find(crl->
crl->revoked, &
idx, &rtmp))
506 for (;
idx < sk_X509_REVOKED_num(crl->
crl->revoked);
idx++) {
507 rev = sk_X509_REVOKED_value(crl->
crl->revoked,
idx);
510 if (crl_revoked_issuer_match(crl, issuer, rev)) {
542 m->crl_init = crl_init;
543 m->crl_free = crl_free;
544 m->crl_lookup = crl_lookup;
545 m->crl_verify = crl_verify;
static int def_crl_lookup(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial, X509_NAME *issuer)
static const X509_CRL_METHOD * default_crl_method
#define CRYPTO_STATIC_MUTEX_INIT
#define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag)
#define ASN1_OPT(stname, field, type)
X509_CRL_METHOD * X509_CRL_METHOD_new(int(*crl_init)(X509_CRL *crl), int(*crl_free)(X509_CRL *crl), int(*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *ser, X509_NAME *issuer), int(*crl_verify)(X509_CRL *crl, EVP_PKEY *pk))
ASN1_INTEGER * base_crl_number
X509_NAME * directoryName
#define CRL_REASON_REMOVE_FROM_CRL
#define CRYPTO_STATIC_MUTEX_unlock_write
ASN1_SEQUENCE(X509_REVOKED)
void X509_CRL_set_meth_data(X509_CRL *crl, void *dat)
#define OPENSSL_PUT_ERROR(library, reason)
#define NID_authority_key_identifier
int(* crl_verify)(X509_CRL *crl, EVP_PKEY *pk)
OPENSSL_EXPORT int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *pkey)
int(* crl_init)(X509_CRL *crl)
static int setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp)
#define ASN1_SEQUENCE_ref(tname, cb)
int(* crl_lookup)(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *ser, X509_NAME *issuer)
#define X509_CRL_METHOD_DYNAMIC
#define IMPLEMENT_ASN1_FUNCTIONS(stname)
void X509_CRL_METHOD_free(X509_CRL_METHOD *m)
ASN1_BIT_STRING * onlysomereasons
OPENSSL_EXPORT int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b)
#define X509_get_issuer_name
#define NID_certificate_issuer
#define AUTHORITY_KEYID_free
#define ASN1_SEQUENCE_END_enc(stname, tname)
#define X509_REVOKED_get_ext_d2i
#define X509_EXTENSION_get_object
unsigned char sha1_hash[SHA_DIGEST_LENGTH]
#define CRYPTO_STATIC_MUTEX_unlock_read
const X509_CRL_METHOD * meth
#define CRYPTO_STATIC_MUTEX_lock_write
#define X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER
#define IMPLEMENT_ASN1_DUP_FUNCTION(stname)
OPENSSL_EXPORT void ASN1_INTEGER_free(ASN1_INTEGER *str)
OPENSSL_EXPORT GENERAL_NAME * gen
#define X509_CRL_get_REVOKED
#define GENERAL_NAMES_free
ASN1_SEQUENCE_enc(X509_CRL_INFO, enc, crl_inf_cb)
#define X509_R_SIGNATURE_ALGORITHM_MISMATCH
OPENSSL_EXPORT int X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial)
ASN1_SEQUENCE_END(X509_NAME_ENTRY)
static const X509_CRL_METHOD int_crl_meth
#define CRLDP_ALL_REASONS
ASN1_INTEGER * serialNumber
union GENERAL_NAME_st::@370 d
OPENSSL_EXPORT void ASN1_ENUMERATED_free(ASN1_ENUMERATED *str)
int(* crl_free)(X509_CRL *crl)
#define ASN1_ITEM_rptr(name)
#define ISSUING_DIST_POINT_free
void X509_CRL_set_default_method(const X509_CRL_METHOD *meth)
UniquePtr< SSL_SESSION > ret
static int X509_REVOKED_cmp(const X509_REVOKED **a, const X509_REVOKED **b)
ASN1_INTEGER * crl_number
struct ASN1_VALUE_st ASN1_VALUE
const OPENSSL_EXPORT EVP_MD * EVP_sha1(void)
#define ASN1_ENUMERATED_get
#define X509_get_serialNumber
OPENSSL_EXPORT int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)
static int crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
#define CRYPTO_STATIC_MUTEX_lock_read
#define NID_issuing_distribution_point
#define DIST_POINT_set_dpname
#define ASN1_OP_FREE_POST
DIST_POINT_NAME * distpoint
#define X509_EXTENSION_get_critical
#define ASN1_SEQUENCE_OF_OPT(stname, field, type)
#define ASN1_SEQUENCE_END_ref(stname, tname)
void * X509_CRL_get_meth_data(X509_CRL *crl)
#define X509_CRL_get_issuer
#define X509_CRL_get_ext_d2i
OPENSSL_EXPORT int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
#define ERR_R_MALLOC_FAILURE
ASN1_BIT_STRING * signature
#define ASN1_SIMPLE(stname, field, type)
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:56