| OLD | NEW |
| 1 /* v3_pmaps.c */ | 1 /* v3_pmaps.c */ |
| 2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 * project. | 3 * project. |
| 4 */ | 4 */ |
| 5 /* ==================================================================== | 5 /* ==================================================================== |
| 6 * Copyright (c) 2003 The OpenSSL Project. All rights reserved. | 6 * Copyright (c) 2003 The OpenSSL Project. All rights reserved. |
| 7 * | 7 * |
| 8 * Redistribution and use in source and binary forms, with or without | 8 * Redistribution and use in source and binary forms, with or without |
| 9 * modification, are permitted provided that the following conditions | 9 * modification, are permitted provided that the following conditions |
| 10 * are met: | 10 * are met: |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 * | 56 * |
| 57 */ | 57 */ |
| 58 | 58 |
| 59 | 59 |
| 60 #include <stdio.h> | 60 #include <stdio.h> |
| 61 #include "cryptlib.h" | 61 #include "cryptlib.h" |
| 62 #include <openssl/asn1t.h> | 62 #include <openssl/asn1t.h> |
| 63 #include <openssl/conf.h> | 63 #include <openssl/conf.h> |
| 64 #include <openssl/x509v3.h> | 64 #include <openssl/x509v3.h> |
| 65 | 65 |
| 66 static void *v2i_POLICY_MAPPINGS(X509V3_EXT_METHOD *method, | 66 static 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); |
| 68 static STACK_OF(CONF_VALUE) *i2v_POLICY_MAPPINGS(X509V3_EXT_METHOD *method, | 68 static STACK_OF(CONF_VALUE) * |
| 69 » » » » void *pmps, STACK_OF(CONF_VALUE) *extlist); | 69 i2v_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, void *pmps, |
| 70 » » STACK_OF(CONF_VALUE) *extlist); |
| 70 | 71 |
| 71 const X509V3_EXT_METHOD v3_policy_mappings = { | 72 const X509V3_EXT_METHOD v3_policy_mappings = { |
| 72 NID_policy_mappings, 0, | 73 NID_policy_mappings, 0, |
| 73 ASN1_ITEM_ref(POLICY_MAPPINGS), | 74 ASN1_ITEM_ref(POLICY_MAPPINGS), |
| 74 0,0,0,0, | 75 0,0,0,0, |
| 75 0,0, | 76 0,0, |
| 76 i2v_POLICY_MAPPINGS, | 77 i2v_POLICY_MAPPINGS, |
| 77 v2i_POLICY_MAPPINGS, | 78 v2i_POLICY_MAPPINGS, |
| 78 0,0, | 79 0,0, |
| 79 NULL | 80 NULL |
| 80 }; | 81 }; |
| 81 | 82 |
| 82 ASN1_SEQUENCE(POLICY_MAPPING) = { | 83 ASN1_SEQUENCE(POLICY_MAPPING) = { |
| 83 ASN1_SIMPLE(POLICY_MAPPING, issuerDomainPolicy, ASN1_OBJECT), | 84 ASN1_SIMPLE(POLICY_MAPPING, issuerDomainPolicy, ASN1_OBJECT), |
| 84 ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT) | 85 ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT) |
| 85 } ASN1_SEQUENCE_END(POLICY_MAPPING) | 86 } ASN1_SEQUENCE_END(POLICY_MAPPING) |
| 86 | 87 |
| 87 ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) = | 88 ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) = |
| 88 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, POLICY_MAPPINGS, | 89 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, POLICY_MAPPINGS, |
| 89 POLICY_MAPPING) | 90 POLICY_MAPPING) |
| 90 ASN1_ITEM_TEMPLATE_END(POLICY_MAPPINGS) | 91 ASN1_ITEM_TEMPLATE_END(POLICY_MAPPINGS) |
| 91 | 92 |
| 92 IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) | 93 IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) |
| 93 | 94 |
| 94 | 95 |
| 95 static STACK_OF(CONF_VALUE) *i2v_POLICY_MAPPINGS(X509V3_EXT_METHOD *method, | 96 static STACK_OF(CONF_VALUE) * |
| 96 » » void *a, STACK_OF(CONF_VALUE) *ext_list) | 97 i2v_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, void *a, |
| 98 » » STACK_OF(CONF_VALUE) *ext_list) |
| 97 { | 99 { |
| 98 POLICY_MAPPINGS *pmaps = a; | 100 POLICY_MAPPINGS *pmaps = a; |
| 99 POLICY_MAPPING *pmap; | 101 POLICY_MAPPING *pmap; |
| 100 int i; | 102 int i; |
| 101 char obj_tmp1[80]; | 103 char obj_tmp1[80]; |
| 102 char obj_tmp2[80]; | 104 char obj_tmp2[80]; |
| 103 for(i = 0; i < sk_POLICY_MAPPING_num(pmaps); i++) { | 105 for(i = 0; i < sk_POLICY_MAPPING_num(pmaps); i++) { |
| 104 pmap = sk_POLICY_MAPPING_value(pmaps, i); | 106 pmap = sk_POLICY_MAPPING_value(pmaps, i); |
| 105 i2t_ASN1_OBJECT(obj_tmp1, 80, pmap->issuerDomainPolicy); | 107 i2t_ASN1_OBJECT(obj_tmp1, 80, pmap->issuerDomainPolicy); |
| 106 i2t_ASN1_OBJECT(obj_tmp2, 80, pmap->subjectDomainPolicy); | 108 i2t_ASN1_OBJECT(obj_tmp2, 80, pmap->subjectDomainPolicy); |
| 107 X509V3_add_value(obj_tmp1, obj_tmp2, &ext_list); | 109 X509V3_add_value(obj_tmp1, obj_tmp2, &ext_list); |
| 108 } | 110 } |
| 109 return ext_list; | 111 return ext_list; |
| 110 } | 112 } |
| 111 | 113 |
| 112 static void *v2i_POLICY_MAPPINGS(X509V3_EXT_METHOD *method, | 114 static void *v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, |
| 113 » » » » X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval) | 115 » » » » X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval) |
| 114 { | 116 { |
| 115 POLICY_MAPPINGS *pmaps; | 117 POLICY_MAPPINGS *pmaps; |
| 116 POLICY_MAPPING *pmap; | 118 POLICY_MAPPING *pmap; |
| 117 ASN1_OBJECT *obj1, *obj2; | 119 ASN1_OBJECT *obj1, *obj2; |
| 118 CONF_VALUE *val; | 120 CONF_VALUE *val; |
| 119 int i; | 121 int i; |
| 120 | 122 |
| 121 if(!(pmaps = sk_POLICY_MAPPING_new_null())) { | 123 if(!(pmaps = sk_POLICY_MAPPING_new_null())) { |
| 122 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,ERR_R_MALLOC_FAILURE); | 124 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,ERR_R_MALLOC_FAILURE); |
| 123 return NULL; | 125 return NULL; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 144 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free); | 146 sk_POLICY_MAPPING_pop_free(pmaps, POLICY_MAPPING_free); |
| 145 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,ERR_R_MALLOC_FAIL
URE); | 147 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS,ERR_R_MALLOC_FAIL
URE); |
| 146 return NULL; | 148 return NULL; |
| 147 } | 149 } |
| 148 pmap->issuerDomainPolicy = obj1; | 150 pmap->issuerDomainPolicy = obj1; |
| 149 pmap->subjectDomainPolicy = obj2; | 151 pmap->subjectDomainPolicy = obj2; |
| 150 sk_POLICY_MAPPING_push(pmaps, pmap); | 152 sk_POLICY_MAPPING_push(pmaps, pmap); |
| 151 } | 153 } |
| 152 return pmaps; | 154 return pmaps; |
| 153 } | 155 } |
| OLD | NEW |