]>
git.ipfire.org Git - thirdparty/openssl.git/blob - crypto/x509/pcy_lib.c
2 * Copyright 2004-2020 The OpenSSL Project Authors. All Rights Reserved.
4 * Licensed under the Apache License 2.0 (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
10 #include "internal/cryptlib.h"
11 #include <openssl/x509.h>
12 #include <openssl/x509v3.h>
14 #include "pcy_local.h"
16 /* accessor functions */
18 /* X509_POLICY_TREE stuff */
20 int X509_policy_tree_level_count(const X509_POLICY_TREE
*tree
)
27 X509_POLICY_LEVEL
*X509_policy_tree_get0_level(const X509_POLICY_TREE
*tree
,
30 if (!tree
|| (i
< 0) || (i
>= tree
->nlevel
))
32 return tree
->levels
+ i
;
35 STACK_OF(X509_POLICY_NODE
) *X509_policy_tree_get0_policies(const
41 return tree
->auth_policies
;
44 STACK_OF(X509_POLICY_NODE
) *X509_policy_tree_get0_user_policies(const
50 if (tree
->flags
& POLICY_FLAG_ANY_POLICY
)
51 return tree
->auth_policies
;
53 return tree
->user_policies
;
56 /* X509_POLICY_LEVEL stuff */
58 int X509_policy_level_node_count(X509_POLICY_LEVEL
*level
)
68 n
+= sk_X509_POLICY_NODE_num(level
->nodes
);
72 X509_POLICY_NODE
*X509_policy_level_get0_node(const X509_POLICY_LEVEL
*level
, int i
)
76 if (level
->anyPolicy
) {
78 return level
->anyPolicy
;
81 return sk_X509_POLICY_NODE_value(level
->nodes
, i
);
84 /* X509_POLICY_NODE stuff */
86 const ASN1_OBJECT
*X509_policy_node_get0_policy(const X509_POLICY_NODE
*node
)
90 return node
->data
->valid_policy
;
93 STACK_OF(POLICYQUALINFO
) *X509_policy_node_get0_qualifiers(const
99 return node
->data
->qualifier_set
;
102 const X509_POLICY_NODE
*X509_policy_node_get0_parent(const X509_POLICY_NODE