Lines Matching refs:crl

68 static void setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp);
76 static int def_crl_verify(X509_CRL *crl, EVP_PKEY *r);
77 static int def_crl_lookup(X509_CRL *crl,
126 static int crl_set_issuers(X509_CRL *crl)
133 revoked = X509_CRL_get_REVOKED(crl);
147 crl->flags |= EXFLAG_INVALID;
154 if (!crl->issuers)
156 crl->issuers = sk_GENERAL_NAMES_new_null();
157 if (!crl->issuers)
160 if (!sk_GENERAL_NAMES_push(crl->issuers, gtmp))
169 crl->flags |= EXFLAG_INVALID;
193 crl->flags |= EXFLAG_CRITICAL;
211 X509_CRL *crl = (X509_CRL *)*pval;
219 crl->idp = NULL;
220 crl->akid = NULL;
221 crl->flags = 0;
222 crl->idp_flags = 0;
223 crl->idp_reasons = CRLDP_ALL_REASONS;
224 crl->meth = default_crl_method;
225 crl->meth_data = NULL;
226 crl->issuers = NULL;
227 crl->crl_number = NULL;
228 crl->base_crl_number = NULL;
233 X509_CRL_digest(crl, EVP_sha1(), crl->sha1_hash, NULL);
235 crl->idp = X509_CRL_get_ext_d2i(crl,
237 if (crl->idp)
238 setup_idp(crl, crl->idp);
240 crl->akid = X509_CRL_get_ext_d2i(crl,
243 crl->crl_number = X509_CRL_get_ext_d2i(crl,
246 crl->base_crl_number = X509_CRL_get_ext_d2i(crl,
249 if (crl->base_crl_number && !crl->crl_number)
250 crl->flags |= EXFLAG_INVALID;
260 exts = crl->crl->extensions;
268 crl->flags |= EXFLAG_FRESHEST;
276 crl->flags |= EXFLAG_CRITICAL;
282 if (!crl_set_issuers(crl))
285 if (crl->meth->crl_init)
287 if (crl->meth->crl_init(crl) == 0)
293 if (crl->meth->crl_free)
295 if (!crl->meth->crl_free(crl))
298 if (crl->akid)
299 AUTHORITY_KEYID_free(crl->akid);
300 if (crl->idp)
301 ISSUING_DIST_POINT_free(crl->idp);
302 ASN1_INTEGER_free(crl->crl_number);
303 ASN1_INTEGER_free(crl->base_crl_number);
304 sk_GENERAL_NAMES_pop_free(crl->issuers, GENERAL_NAMES_free);
312 static void setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp)
316 crl->idp_flags |= IDP_PRESENT;
320 crl->idp_flags |= IDP_ONLYUSER;
325 crl->idp_flags |= IDP_ONLYCA;
330 crl->idp_flags |= IDP_ONLYATTR;
334 crl->idp_flags |= IDP_INVALID;
337 crl->idp_flags |= IDP_INDIRECT;
341 crl->idp_flags |= IDP_REASONS;
343 crl->idp_reasons = idp->onlysomereasons->data[0];
345 crl->idp_reasons |=
347 crl->idp_reasons &= CRLDP_ALL_REASONS;
350 DIST_POINT_set_dpname(idp->distpoint, X509_CRL_get_issuer(crl));
354 ASN1_SIMPLE(X509_CRL, crl, X509_CRL_INFO),
372 int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)
375 inf = crl->crl;
386 int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *r)
388 if (crl->meth->crl_verify)
389 return crl->meth->crl_verify(crl, r);
393 int X509_CRL_get0_by_serial(X509_CRL *crl,
396 if (crl->meth->crl_lookup)
397 return crl->meth->crl_lookup(crl, ret, serial, NULL);
401 int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)
403 if (crl->meth->crl_lookup)
404 return crl->meth->crl_lookup(crl, ret,
410 static int def_crl_verify(X509_CRL *crl, EVP_PKEY *r)
413 crl->sig_alg, crl->signature,crl->crl,r));
416 static int crl_revoked_issuer_match(X509_CRL *crl, X509_NAME *nm,
425 if (!X509_NAME_cmp(nm, X509_CRL_get_issuer(crl)))
431 nm = X509_CRL_get_issuer(crl);
445 static int def_crl_lookup(X509_CRL *crl,
454 if (!sk_X509_REVOKED_is_sorted(crl->crl->revoked))
457 sk_X509_REVOKED_sort(crl->crl->revoked);
460 idx = sk_X509_REVOKED_find(crl->crl->revoked, &rtmp);
464 for(;idx < sk_X509_REVOKED_num(crl->crl->revoked); idx++)
466 rev = sk_X509_REVOKED_value(crl->crl->revoked, idx);
469 if (crl_revoked_issuer_match(crl, issuer, rev))
490 int (*crl_init)(X509_CRL *crl),
491 int (*crl_free)(X509_CRL *crl),
492 int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret,
494 int (*crl_verify)(X509_CRL *crl, EVP_PKEY *pk))
515 void X509_CRL_set_meth_data(X509_CRL *crl, void *dat)
517 crl->meth_data = dat;
520 void *X509_CRL_get_meth_data(X509_CRL *crl)
522 return crl->meth_data;