return X509v3_get_ext(x->crl.extensions, loc);
}
-static X509_EXTENSION *delete_ext(STACK_OF(X509_EXTENSION) **sk, int loc)
+X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc)
{
- X509_EXTENSION *ret = X509v3_delete_ext(*sk, loc);
+ X509_EXTENSION *ret = X509v3_delete_extension(&x->crl.extensions, loc);
- /* Empty extension lists are omitted. */
- if (*sk != NULL && sk_X509_EXTENSION_num(*sk) == 0) {
- sk_X509_EXTENSION_pop_free(*sk, X509_EXTENSION_free);
- *sk = NULL;
- }
+ if (ret != NULL)
+ x->crl.enc.modified = 1;
return ret;
}
-X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc)
-{
- return delete_ext(&x->crl.extensions, loc);
-}
-
void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx)
{
return X509V3_get_d2i(x->crl.extensions, nid, crit, idx);
X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc)
{
- return delete_ext(&x->extensions, loc);
+ return X509v3_delete_extension(&x->extensions, loc);
}
int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc)
X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc)
{
- X509_EXTENSION *ret;
-
- if (x == NULL || sk_X509_EXTENSION_num(x) <= loc || loc < 0)
- return NULL;
- ret = sk_X509_EXTENSION_delete(x, loc);
- return ret;
+ return sk_X509_EXTENSION_delete(x, loc);
}
X509_EXTENSION *X509v3_delete_extension(STACK_OF(X509_EXTENSION) **x, int loc)
X509v3_delete_extension() extends X509v3_delete_ext() by deallocating the
extension stack I<*x> if it becomes empty, and in that case also setting I<*x>
to NULL.
-This is a convenience wrapper for cases in which extensions are optional and
+This is a convenience wrapper for cases in which a list of extensions is optional and
should be omitted if the stack becomes empty.
X509v3_add_ext() inserts extension I<ex> to STACK I<*x> at position I<loc>.
|| !TEST_int_eq(sk_X509_EXTENSION_num(exts), 1))
goto err;
- /* Request "empty" SKID and AKID in order to drop any previous values */
+ /* Request "empty" SKID in order to drop any previous value */
NCONF_free(conf);
if (!TEST_ptr(conf = NCONF_new(NULL))
|| !TEST_int_ge(BIO_printf(bio, "subjectKeyIdentifier = none\n"), 0)