mirror of
https://github.com/QuasarApp/openssl.git
synced 2025-04-27 02:04:37 +00:00
Add ossl_ symbol to x509 policy
Partial fix for #12964 Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14473)
This commit is contained in:
parent
fc27fca84a
commit
b54cab31d2
@ -40,7 +40,7 @@ static int policy_cache_create(X509 *x,
|
||||
}
|
||||
for (i = 0; i < num; i++) {
|
||||
policy = sk_POLICYINFO_value(policies, i);
|
||||
data = policy_data_new(policy, NULL, crit);
|
||||
data = ossl_policy_data_new(policy, NULL, crit);
|
||||
if (data == NULL) {
|
||||
ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE);
|
||||
goto just_cleanup;
|
||||
@ -68,11 +68,11 @@ static int policy_cache_create(X509 *x,
|
||||
bad_policy:
|
||||
if (ret == -1)
|
||||
x->ex_flags |= EXFLAG_INVALID_POLICY;
|
||||
policy_data_free(data);
|
||||
ossl_policy_data_free(data);
|
||||
just_cleanup:
|
||||
sk_POLICYINFO_pop_free(policies, POLICYINFO_free);
|
||||
if (ret <= 0) {
|
||||
sk_X509_POLICY_DATA_pop_free(cache->data, policy_data_free);
|
||||
sk_X509_POLICY_DATA_pop_free(cache->data, ossl_policy_data_free);
|
||||
cache->data = NULL;
|
||||
}
|
||||
return ret;
|
||||
@ -151,7 +151,7 @@ static int policy_cache_new(X509 *x)
|
||||
if (i != -1)
|
||||
goto bad_cache;
|
||||
} else {
|
||||
i = policy_cache_set_mapping(x, ext_pmaps);
|
||||
i = ossl_policy_cache_set_mapping(x, ext_pmaps);
|
||||
if (i <= 0)
|
||||
goto bad_cache;
|
||||
}
|
||||
@ -175,16 +175,16 @@ static int policy_cache_new(X509 *x)
|
||||
|
||||
}
|
||||
|
||||
void policy_cache_free(X509_POLICY_CACHE *cache)
|
||||
void ossl_policy_cache_free(X509_POLICY_CACHE *cache)
|
||||
{
|
||||
if (!cache)
|
||||
return;
|
||||
policy_data_free(cache->anyPolicy);
|
||||
sk_X509_POLICY_DATA_pop_free(cache->data, policy_data_free);
|
||||
ossl_policy_data_free(cache->anyPolicy);
|
||||
sk_X509_POLICY_DATA_pop_free(cache->data, ossl_policy_data_free);
|
||||
OPENSSL_free(cache);
|
||||
}
|
||||
|
||||
const X509_POLICY_CACHE *policy_cache_set(X509 *x)
|
||||
const X509_POLICY_CACHE *ossl_policy_cache_set(X509 *x)
|
||||
{
|
||||
|
||||
if (x->policy_cache == NULL) {
|
||||
@ -198,8 +198,8 @@ const X509_POLICY_CACHE *policy_cache_set(X509 *x)
|
||||
|
||||
}
|
||||
|
||||
X509_POLICY_DATA *policy_cache_find_data(const X509_POLICY_CACHE *cache,
|
||||
const ASN1_OBJECT *id)
|
||||
X509_POLICY_DATA *ossl_policy_cache_find_data(const X509_POLICY_CACHE *cache,
|
||||
const ASN1_OBJECT *id)
|
||||
{
|
||||
int idx;
|
||||
X509_POLICY_DATA tmp;
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
/* Policy Node routines */
|
||||
|
||||
void policy_data_free(X509_POLICY_DATA *data)
|
||||
void ossl_policy_data_free(X509_POLICY_DATA *data)
|
||||
{
|
||||
if (data == NULL)
|
||||
return;
|
||||
@ -35,8 +35,8 @@ void policy_data_free(X509_POLICY_DATA *data)
|
||||
* source.
|
||||
*/
|
||||
|
||||
X509_POLICY_DATA *policy_data_new(POLICYINFO *policy,
|
||||
const ASN1_OBJECT *cid, int crit)
|
||||
X509_POLICY_DATA *ossl_policy_data_new(POLICYINFO *policy,
|
||||
const ASN1_OBJECT *cid, int crit)
|
||||
{
|
||||
X509_POLICY_DATA *ret;
|
||||
ASN1_OBJECT *id;
|
||||
|
@ -135,33 +135,31 @@ struct X509_POLICY_TREE_st {
|
||||
|
||||
/* Internal functions */
|
||||
|
||||
X509_POLICY_DATA *policy_data_new(POLICYINFO *policy, const ASN1_OBJECT *id,
|
||||
int crit);
|
||||
void policy_data_free(X509_POLICY_DATA *data);
|
||||
X509_POLICY_DATA *ossl_policy_data_new(POLICYINFO *policy, const ASN1_OBJECT *id,
|
||||
int crit);
|
||||
void ossl_policy_data_free(X509_POLICY_DATA *data);
|
||||
|
||||
X509_POLICY_DATA *policy_cache_find_data(const X509_POLICY_CACHE *cache,
|
||||
const ASN1_OBJECT *id);
|
||||
int policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps);
|
||||
X509_POLICY_DATA *ossl_policy_cache_find_data(const X509_POLICY_CACHE *cache,
|
||||
const ASN1_OBJECT *id);
|
||||
int ossl_policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps);
|
||||
|
||||
STACK_OF(X509_POLICY_NODE) *policy_node_cmp_new(void);
|
||||
STACK_OF(X509_POLICY_NODE) *ossl_policy_node_cmp_new(void);
|
||||
|
||||
void policy_cache_init(void);
|
||||
void ossl_policy_cache_free(X509_POLICY_CACHE *cache);
|
||||
|
||||
void policy_cache_free(X509_POLICY_CACHE *cache);
|
||||
X509_POLICY_NODE *ossl_policy_level_find_node(const X509_POLICY_LEVEL *level,
|
||||
const X509_POLICY_NODE *parent,
|
||||
const ASN1_OBJECT *id);
|
||||
|
||||
X509_POLICY_NODE *level_find_node(const X509_POLICY_LEVEL *level,
|
||||
const X509_POLICY_NODE *parent,
|
||||
const ASN1_OBJECT *id);
|
||||
X509_POLICY_NODE *ossl_policy_tree_find_sk(STACK_OF(X509_POLICY_NODE) *sk,
|
||||
const ASN1_OBJECT *id);
|
||||
|
||||
X509_POLICY_NODE *tree_find_sk(STACK_OF(X509_POLICY_NODE) *sk,
|
||||
const ASN1_OBJECT *id);
|
||||
X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
X509_POLICY_TREE *tree);
|
||||
void ossl_policy_node_free(X509_POLICY_NODE *node);
|
||||
int ossl_policy_node_match(const X509_POLICY_LEVEL *lvl,
|
||||
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid);
|
||||
|
||||
X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
X509_POLICY_TREE *tree);
|
||||
void policy_node_free(X509_POLICY_NODE *node);
|
||||
int policy_node_match(const X509_POLICY_LEVEL *lvl,
|
||||
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid);
|
||||
|
||||
const X509_POLICY_CACHE *policy_cache_set(X509 *x);
|
||||
const X509_POLICY_CACHE *ossl_policy_cache_set(X509 *x);
|
||||
|
@ -19,7 +19,7 @@
|
||||
* POLICY_MAPPINGS structure
|
||||
*/
|
||||
|
||||
int policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
|
||||
int ossl_policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
|
||||
{
|
||||
POLICY_MAPPING *map;
|
||||
X509_POLICY_DATA *data;
|
||||
@ -40,16 +40,16 @@ int policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
|
||||
}
|
||||
|
||||
/* Attempt to find matching policy data */
|
||||
data = policy_cache_find_data(cache, map->issuerDomainPolicy);
|
||||
data = ossl_policy_cache_find_data(cache, map->issuerDomainPolicy);
|
||||
/* If we don't have anyPolicy can't map */
|
||||
if (data == NULL && !cache->anyPolicy)
|
||||
continue;
|
||||
|
||||
/* Create a NODE from anyPolicy */
|
||||
if (data == NULL) {
|
||||
data = policy_data_new(NULL, map->issuerDomainPolicy,
|
||||
cache->anyPolicy->flags
|
||||
& POLICY_DATA_FLAG_CRITICAL);
|
||||
data = ossl_policy_data_new(NULL, map->issuerDomainPolicy,
|
||||
cache->anyPolicy->flags
|
||||
& POLICY_DATA_FLAG_CRITICAL);
|
||||
if (data == NULL)
|
||||
goto bad_mapping;
|
||||
data->qualifier_set = cache->anyPolicy->qualifier_set;
|
||||
@ -59,7 +59,7 @@ int policy_cache_set_mapping(X509 *x, POLICY_MAPPINGS *maps)
|
||||
data->flags |= POLICY_DATA_FLAG_MAPPED_ANY;
|
||||
data->flags |= POLICY_DATA_FLAG_SHARED_QUALIFIERS;
|
||||
if (!sk_X509_POLICY_DATA_push(cache->data, data)) {
|
||||
policy_data_free(data);
|
||||
ossl_policy_data_free(data);
|
||||
goto bad_mapping;
|
||||
}
|
||||
} else
|
||||
|
@ -20,13 +20,13 @@ static int node_cmp(const X509_POLICY_NODE *const *a,
|
||||
return OBJ_cmp((*a)->data->valid_policy, (*b)->data->valid_policy);
|
||||
}
|
||||
|
||||
STACK_OF(X509_POLICY_NODE) *policy_node_cmp_new(void)
|
||||
STACK_OF(X509_POLICY_NODE) *ossl_policy_node_cmp_new(void)
|
||||
{
|
||||
return sk_X509_POLICY_NODE_new(node_cmp);
|
||||
}
|
||||
|
||||
X509_POLICY_NODE *tree_find_sk(STACK_OF(X509_POLICY_NODE) *nodes,
|
||||
const ASN1_OBJECT *id)
|
||||
X509_POLICY_NODE *ossl_policy_tree_find_sk(STACK_OF(X509_POLICY_NODE) *nodes,
|
||||
const ASN1_OBJECT *id)
|
||||
{
|
||||
X509_POLICY_DATA n;
|
||||
X509_POLICY_NODE l;
|
||||
@ -40,9 +40,9 @@ X509_POLICY_NODE *tree_find_sk(STACK_OF(X509_POLICY_NODE) *nodes,
|
||||
|
||||
}
|
||||
|
||||
X509_POLICY_NODE *level_find_node(const X509_POLICY_LEVEL *level,
|
||||
const X509_POLICY_NODE *parent,
|
||||
const ASN1_OBJECT *id)
|
||||
X509_POLICY_NODE *ossl_policy_level_find_node(const X509_POLICY_LEVEL *level,
|
||||
const X509_POLICY_NODE *parent,
|
||||
const ASN1_OBJECT *id)
|
||||
{
|
||||
X509_POLICY_NODE *node;
|
||||
int i;
|
||||
@ -56,10 +56,10 @@ X509_POLICY_NODE *level_find_node(const X509_POLICY_LEVEL *level,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
X509_POLICY_TREE *tree)
|
||||
X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
X509_POLICY_TREE *tree)
|
||||
{
|
||||
X509_POLICY_NODE *node;
|
||||
|
||||
@ -78,7 +78,7 @@ X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
} else {
|
||||
|
||||
if (level->nodes == NULL)
|
||||
level->nodes = policy_node_cmp_new();
|
||||
level->nodes = ossl_policy_node_cmp_new();
|
||||
if (level->nodes == NULL) {
|
||||
ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE);
|
||||
goto node_error;
|
||||
@ -109,11 +109,11 @@ X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
return node;
|
||||
|
||||
node_error:
|
||||
policy_node_free(node);
|
||||
ossl_policy_node_free(node);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void policy_node_free(X509_POLICY_NODE *node)
|
||||
void ossl_policy_node_free(X509_POLICY_NODE *node)
|
||||
{
|
||||
OPENSSL_free(node);
|
||||
}
|
||||
@ -123,8 +123,8 @@ void policy_node_free(X509_POLICY_NODE *node)
|
||||
* expected policy set otherwise just valid policy.
|
||||
*/
|
||||
|
||||
int policy_node_match(const X509_POLICY_LEVEL *lvl,
|
||||
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid)
|
||||
int ossl_policy_node_match(const X509_POLICY_LEVEL *lvl,
|
||||
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid)
|
||||
{
|
||||
int i;
|
||||
ASN1_OBJECT *policy_oid;
|
||||
|
@ -113,7 +113,7 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
X509_check_purpose(x, -1, 0);
|
||||
|
||||
/* If cache is NULL, likely ENOMEM: return immediately */
|
||||
if (policy_cache_set(x) == NULL)
|
||||
if (ossl_policy_cache_set(x) == NULL)
|
||||
return X509_PCY_TREE_INTERNAL;
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
return X509_PCY_TREE_INVALID;
|
||||
|
||||
/* Access the cache which we now know exists */
|
||||
cache = policy_cache_set(x);
|
||||
cache = ossl_policy_cache_set(x);
|
||||
|
||||
if ((ret & X509_PCY_TREE_VALID) && cache->data == NULL)
|
||||
ret = X509_PCY_TREE_EMPTY;
|
||||
@ -177,10 +177,11 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
}
|
||||
tree->nlevel = n+1;
|
||||
level = tree->levels;
|
||||
if ((data = policy_data_new(NULL, OBJ_nid2obj(NID_any_policy), 0)) == NULL)
|
||||
if ((data = ossl_policy_data_new(NULL,
|
||||
OBJ_nid2obj(NID_any_policy), 0)) == NULL)
|
||||
goto bad_tree;
|
||||
if (level_add_node(level, data, NULL, tree) == NULL) {
|
||||
policy_data_free(data);
|
||||
if (ossl_policy_level_add_node(level, data, NULL, tree) == NULL) {
|
||||
ossl_policy_data_free(data);
|
||||
goto bad_tree;
|
||||
}
|
||||
|
||||
@ -193,7 +194,7 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
uint32_t ex_flags = X509_get_extension_flags(x);
|
||||
|
||||
/* Access the cache which we now know exists */
|
||||
cache = policy_cache_set(x);
|
||||
cache = ossl_policy_cache_set(x);
|
||||
|
||||
X509_up_ref(x);
|
||||
(++level)->cert = x;
|
||||
@ -247,14 +248,14 @@ static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||
for (i = 0; i < sk_X509_POLICY_NODE_num(last->nodes); i++) {
|
||||
X509_POLICY_NODE *node = sk_X509_POLICY_NODE_value(last->nodes, i);
|
||||
|
||||
if (policy_node_match(last, node, data->valid_policy)) {
|
||||
if (level_add_node(curr, data, node, NULL) == NULL)
|
||||
if (ossl_policy_node_match(last, node, data->valid_policy)) {
|
||||
if (ossl_policy_level_add_node(curr, data, node, NULL) == NULL)
|
||||
return 0;
|
||||
matched = 1;
|
||||
}
|
||||
}
|
||||
if (!matched && last->anyPolicy) {
|
||||
if (level_add_node(curr, data, last->anyPolicy, NULL) == NULL)
|
||||
if (ossl_policy_level_add_node(curr, data, last->anyPolicy, NULL) == NULL)
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@ -300,14 +301,14 @@ static int tree_add_unmatched(X509_POLICY_LEVEL *curr,
|
||||
* Create a new node with qualifiers from anyPolicy and id from unmatched
|
||||
* node.
|
||||
*/
|
||||
if ((data = policy_data_new(NULL, id, node_critical(node))) == NULL)
|
||||
if ((data = ossl_policy_data_new(NULL, id, node_critical(node))) == NULL)
|
||||
return 0;
|
||||
|
||||
/* Curr may not have anyPolicy */
|
||||
data->qualifier_set = cache->anyPolicy->qualifier_set;
|
||||
data->flags |= POLICY_DATA_FLAG_SHARED_QUALIFIERS;
|
||||
if (level_add_node(curr, data, node, tree) == NULL) {
|
||||
policy_data_free(data);
|
||||
if (ossl_policy_level_add_node(curr, data, node, tree) == NULL) {
|
||||
ossl_policy_data_free(data);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@ -339,7 +340,7 @@ static int tree_link_unmatched(X509_POLICY_LEVEL *curr,
|
||||
/* Locate unmatched nodes */
|
||||
for (i = 0; i < sk_ASN1_OBJECT_num(expset); i++) {
|
||||
ASN1_OBJECT *oid = sk_ASN1_OBJECT_value(expset, i);
|
||||
if (level_find_node(curr, node, oid))
|
||||
if (ossl_policy_level_find_node(curr, node, oid))
|
||||
continue;
|
||||
if (!tree_add_unmatched(curr, cache, oid, node, tree))
|
||||
return 0;
|
||||
@ -368,7 +369,8 @@ static int tree_link_any(X509_POLICY_LEVEL *curr,
|
||||
}
|
||||
/* Finally add link to anyPolicy */
|
||||
if (last->anyPolicy &&
|
||||
level_add_node(curr, cache->anyPolicy, last->anyPolicy, NULL) == NULL)
|
||||
ossl_policy_level_add_node(curr, cache->anyPolicy,
|
||||
last->anyPolicy, NULL) == NULL)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
@ -435,7 +437,7 @@ static int tree_add_auth_node(STACK_OF(X509_POLICY_NODE) **pnodes,
|
||||
X509_POLICY_NODE *pcy)
|
||||
{
|
||||
if (*pnodes == NULL &&
|
||||
(*pnodes = policy_node_cmp_new()) == NULL)
|
||||
(*pnodes = ossl_policy_node_cmp_new()) == NULL)
|
||||
return 0;
|
||||
if (sk_X509_POLICY_NODE_find(*pnodes, pcy) >= 0)
|
||||
return 1;
|
||||
@ -536,7 +538,7 @@ static int tree_calculate_user_set(X509_POLICY_TREE *tree,
|
||||
|
||||
for (i = 0; i < sk_ASN1_OBJECT_num(policy_oids); i++) {
|
||||
oid = sk_ASN1_OBJECT_value(policy_oids, i);
|
||||
node = tree_find_sk(auth_nodes, oid);
|
||||
node = ossl_policy_tree_find_sk(auth_nodes, oid);
|
||||
if (!node) {
|
||||
if (!anyPolicy)
|
||||
continue;
|
||||
@ -544,13 +546,14 @@ static int tree_calculate_user_set(X509_POLICY_TREE *tree,
|
||||
* Create a new node with policy ID from user set and qualifiers
|
||||
* from anyPolicy.
|
||||
*/
|
||||
extra = policy_data_new(NULL, oid, node_critical(anyPolicy));
|
||||
extra = ossl_policy_data_new(NULL, oid, node_critical(anyPolicy));
|
||||
if (extra == NULL)
|
||||
return 0;
|
||||
extra->qualifier_set = anyPolicy->data->qualifier_set;
|
||||
extra->flags = POLICY_DATA_FLAG_SHARED_QUALIFIERS
|
||||
| POLICY_DATA_FLAG_EXTRA_NODE;
|
||||
node = level_add_node(NULL, extra, anyPolicy->parent, tree);
|
||||
node = ossl_policy_level_add_node(NULL, extra, anyPolicy->parent,
|
||||
tree);
|
||||
}
|
||||
if (!tree->user_policies) {
|
||||
tree->user_policies = sk_X509_POLICY_NODE_new_null();
|
||||
@ -576,7 +579,7 @@ static int tree_evaluate(X509_POLICY_TREE *tree)
|
||||
const X509_POLICY_CACHE *cache;
|
||||
|
||||
for (i = 1; i < tree->nlevel; i++, curr++) {
|
||||
cache = policy_cache_set(curr->cert);
|
||||
cache = ossl_policy_cache_set(curr->cert);
|
||||
if (!tree_link_nodes(curr, cache))
|
||||
return X509_PCY_TREE_INTERNAL;
|
||||
|
||||
@ -610,11 +613,11 @@ void X509_policy_tree_free(X509_POLICY_TREE *tree)
|
||||
|
||||
for (i = 0, curr = tree->levels; i < tree->nlevel; i++, curr++) {
|
||||
X509_free(curr->cert);
|
||||
sk_X509_POLICY_NODE_pop_free(curr->nodes, policy_node_free);
|
||||
policy_node_free(curr->anyPolicy);
|
||||
sk_X509_POLICY_NODE_pop_free(curr->nodes, ossl_policy_node_free);
|
||||
ossl_policy_node_free(curr->anyPolicy);
|
||||
}
|
||||
|
||||
sk_X509_POLICY_DATA_pop_free(tree->extra_data, policy_data_free);
|
||||
sk_X509_POLICY_DATA_pop_free(tree->extra_data, ossl_policy_data_free);
|
||||
OPENSSL_free(tree->levels);
|
||||
OPENSSL_free(tree);
|
||||
|
||||
|
@ -31,7 +31,7 @@ ASN1_SEQUENCE_enc(X509_CINF, enc, 0) = {
|
||||
IMPLEMENT_ASN1_FUNCTIONS(X509_CINF)
|
||||
/* X509 top level structure needs a bit of customisation */
|
||||
|
||||
extern void policy_cache_free(X509_POLICY_CACHE *cache);
|
||||
extern void ossl_policy_cache_free(X509_POLICY_CACHE *cache);
|
||||
|
||||
static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
|
||||
void *exarg)
|
||||
@ -46,7 +46,7 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
|
||||
ASN1_OCTET_STRING_free(ret->skid);
|
||||
AUTHORITY_KEYID_free(ret->akid);
|
||||
CRL_DIST_POINTS_free(ret->crldp);
|
||||
policy_cache_free(ret->policy_cache);
|
||||
ossl_policy_cache_free(ret->policy_cache);
|
||||
GENERAL_NAMES_free(ret->altname);
|
||||
NAME_CONSTRAINTS_free(ret->nc);
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
@ -87,7 +87,7 @@ static int x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
|
||||
ASN1_OCTET_STRING_free(ret->skid);
|
||||
AUTHORITY_KEYID_free(ret->akid);
|
||||
CRL_DIST_POINTS_free(ret->crldp);
|
||||
policy_cache_free(ret->policy_cache);
|
||||
ossl_policy_cache_free(ret->policy_cache);
|
||||
GENERAL_NAMES_free(ret->altname);
|
||||
NAME_CONSTRAINTS_free(ret->nc);
|
||||
#ifndef OPENSSL_NO_RFC3779
|
||||
|
Loading…
x
Reference in New Issue
Block a user