summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_pmaps.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_pmaps.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_pmaps.c51
1 files changed, 27 insertions, 24 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_pmaps.c b/src/lib/libcrypto/x509v3/v3_pmaps.c
index 865bcd3980..bf5f291877 100644
--- a/src/lib/libcrypto/x509v3/v3_pmaps.c
+++ b/src/lib/libcrypto/x509v3/v3_pmaps.c
@@ -10,7 +10,7 @@
10 * are met: 10 * are met:
11 * 11 *
12 * 1. Redistributions of source code must retain the above copyright 12 * 1. Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer. 13 * notice, this list of conditions and the following disclaimer.
14 * 14 *
15 * 2. Redistributions in binary form must reproduce the above copyright 15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in 16 * notice, this list of conditions and the following disclaimer in
@@ -64,19 +64,18 @@
64#include <openssl/x509v3.h> 64#include <openssl/x509v3.h>
65 65
66static void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, 66static void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method,
67 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); 67 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
68static STACK_OF(CONF_VALUE) * 68static STACK_OF(CONF_VALUE) *i2v_POLICY_MAPPINGS(
69i2v_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, void *pmps, 69 const X509V3_EXT_METHOD *method, void *pmps, STACK_OF(CONF_VALUE) *extlist);
70 STACK_OF(CONF_VALUE) *extlist);
71 70
72const X509V3_EXT_METHOD v3_policy_mappings = { 71const X509V3_EXT_METHOD v3_policy_mappings = {
73 NID_policy_mappings, 0, 72 NID_policy_mappings, 0,
74 ASN1_ITEM_ref(POLICY_MAPPINGS), 73 ASN1_ITEM_ref(POLICY_MAPPINGS),
75 0,0,0,0, 74 0, 0, 0, 0,
76 0,0, 75 0, 0,
77 i2v_POLICY_MAPPINGS, 76 i2v_POLICY_MAPPINGS,
78 v2i_POLICY_MAPPINGS, 77 v2i_POLICY_MAPPINGS,
79 0,0, 78 0, 0,
80 NULL 79 NULL
81}; 80};
82 81
@@ -85,24 +84,24 @@ ASN1_SEQUENCE(POLICY_MAPPING) = {
85 ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT) 84 ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT)
86} ASN1_SEQUENCE_END(POLICY_MAPPING) 85} ASN1_SEQUENCE_END(POLICY_MAPPING)
87 86
88ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) = 87ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) =
89 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, POLICY_MAPPINGS, 88ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, POLICY_MAPPINGS,
90 POLICY_MAPPING) 89 POLICY_MAPPING)
91ASN1_ITEM_TEMPLATE_END(POLICY_MAPPINGS) 90ASN1_ITEM_TEMPLATE_END(POLICY_MAPPINGS)
92 91
93IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) 92IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING)
94 93
95
96static STACK_OF(CONF_VALUE) * 94static STACK_OF(CONF_VALUE) *
97i2v_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, void *a, 95i2v_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, void *a,
98 STACK_OF(CONF_VALUE) *ext_list) 96 STACK_OF(CONF_VALUE) *ext_list)
99{ 97{
100 POLICY_MAPPINGS *pmaps = a; 98 POLICY_MAPPINGS *pmaps = a;
101 POLICY_MAPPING *pmap; 99 POLICY_MAPPING *pmap;
102 int i; 100 int i;
103 char obj_tmp1[80]; 101 char obj_tmp1[80];
104 char obj_tmp2[80]; 102 char obj_tmp2[80];
105 for(i = 0; i < sk_POLICY_MAPPING_num(pmaps); i++) { 103
104 for (i = 0; i < sk_POLICY_MAPPING_num(pmaps); i++) {
106 pmap = sk_POLICY_MAPPING_value(pmaps, i); 105 pmap = sk_POLICY_MAPPING_value(pmaps, i);
107 i2t_ASN1_OBJECT(obj_tmp1, 80, pmap->issuerDomainPolicy); 106 i2t_ASN1_OBJECT(obj_tmp1, 80, pmap->issuerDomainPolicy);
108 i2t_ASN1_OBJECT(obj_tmp2, 80, pmap->subjectDomainPolicy); 107 i2t_ASN1_OBJECT(obj_tmp2, 80, pmap->subjectDomainPolicy);
@@ -111,8 +110,9 @@ i2v_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, void *a,
111 return ext_list; 110 return ext_list;
112} 111}
113 112
114static void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, 113static void *
115 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval) 114v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
115 STACK_OF(CONF_VALUE) *nval)
116{ 116{
117 POLICY_MAPPINGS *pmaps; 117 POLICY_MAPPINGS *pmaps;
118 POLICY_MAPPING *pmap; 118 POLICY_MAPPING *pmap;
@@ -120,31 +120,34 @@ static void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method,
120 CONF_VALUE *val; 120 CONF_VALUE *val;
121 int i; 121 int i;
122 122
123 if(!(pmaps = sk_POLICY_MAPPING_new_null())) { 123 if (!(pmaps = sk_POLICY_MAPPING_new_null())) {
124 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,ERR_R_MALLOC_FAILURE); 124 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS, ERR_R_MALLOC_FAILURE);
125 return NULL; 125 return NULL;
126 } 126 }
127 127
128 for(i = 0; i < sk_CONF_VALUE_num(nval); i++) { 128 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
129 val = sk_CONF_VALUE_value(nval, i); 129 val = sk_CONF_VALUE_value(nval, i);
130 if(!val->value || !val->name) { 130 if (!val->value || !val->name) {
131 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free); 131 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free);
132 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,X509V3_R_INVALID_OBJECT_IDENTIFIER); 132 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,
133 X509V3_R_INVALID_OBJECT_IDENTIFIER);
133 X509V3_conf_err(val); 134 X509V3_conf_err(val);
134 return NULL; 135 return NULL;
135 } 136 }
136 obj1 = OBJ_txt2obj(val->name, 0); 137 obj1 = OBJ_txt2obj(val->name, 0);
137 obj2 = OBJ_txt2obj(val->value, 0); 138 obj2 = OBJ_txt2obj(val->value, 0);
138 if(!obj1 || !obj2) { 139 if (!obj1 || !obj2) {
139 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free); 140 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free);
140 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,X509V3_R_INVALID_OBJECT_IDENTIFIER); 141 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,
142 X509V3_R_INVALID_OBJECT_IDENTIFIER);
141 X509V3_conf_err(val); 143 X509V3_conf_err(val);
142 return NULL; 144 return NULL;
143 } 145 }
144 pmap = POLICY_MAPPING_new(); 146 pmap = POLICY_MAPPING_new();
145 if (!pmap) { 147 if (!pmap) {
146 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free); 148 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free);
147 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,ERR_R_MALLOC_FAILURE); 149 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,
150 ERR_R_MALLOC_FAILURE);
148 return NULL; 151 return NULL;
149 } 152 }
150 pmap->issuerDomainPolicy = obj1; 153 pmap->issuerDomainPolicy = obj1;