diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_cpols.c')
| -rw-r--r-- | src/lib/libcrypto/x509v3/v3_cpols.c | 132 |
1 files changed, 126 insertions, 6 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_cpols.c b/src/lib/libcrypto/x509v3/v3_cpols.c index d683db697e..6ceb93d372 100644 --- a/src/lib/libcrypto/x509v3/v3_cpols.c +++ b/src/lib/libcrypto/x509v3/v3_cpols.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: v3_cpols.c,v 1.16 2014/10/05 18:27:33 miod Exp $ */ | 1 | /* $OpenBSD: v3_cpols.c,v 1.17 2015/02/09 16:03:11 jsing Exp $ */ |
| 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 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -97,14 +97,62 @@ ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) = | |||
| 97 | POLICYINFO) | 97 | POLICYINFO) |
| 98 | ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) | 98 | ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) |
| 99 | 99 | ||
| 100 | IMPLEMENT_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) | 100 | |
| 101 | CERTIFICATEPOLICIES * | ||
| 102 | d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len) | ||
| 103 | { | ||
| 104 | return (CERTIFICATEPOLICIES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 105 | &CERTIFICATEPOLICIES_it); | ||
| 106 | } | ||
| 107 | |||
| 108 | int | ||
| 109 | i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out) | ||
| 110 | { | ||
| 111 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &CERTIFICATEPOLICIES_it); | ||
| 112 | } | ||
| 113 | |||
| 114 | CERTIFICATEPOLICIES * | ||
| 115 | CERTIFICATEPOLICIES_new(void) | ||
| 116 | { | ||
| 117 | return (CERTIFICATEPOLICIES *)ASN1_item_new(&CERTIFICATEPOLICIES_it); | ||
| 118 | } | ||
| 119 | |||
| 120 | void | ||
| 121 | CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a) | ||
| 122 | { | ||
| 123 | ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it); | ||
| 124 | } | ||
| 101 | 125 | ||
| 102 | ASN1_SEQUENCE(POLICYINFO) = { | 126 | ASN1_SEQUENCE(POLICYINFO) = { |
| 103 | ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), | 127 | ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), |
| 104 | ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) | 128 | ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) |
| 105 | } ASN1_SEQUENCE_END(POLICYINFO) | 129 | } ASN1_SEQUENCE_END(POLICYINFO) |
| 106 | 130 | ||
| 107 | IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO) | 131 | |
| 132 | POLICYINFO * | ||
| 133 | d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len) | ||
| 134 | { | ||
| 135 | return (POLICYINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 136 | &POLICYINFO_it); | ||
| 137 | } | ||
| 138 | |||
| 139 | int | ||
| 140 | i2d_POLICYINFO(POLICYINFO *a, unsigned char **out) | ||
| 141 | { | ||
| 142 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYINFO_it); | ||
| 143 | } | ||
| 144 | |||
| 145 | POLICYINFO * | ||
| 146 | POLICYINFO_new(void) | ||
| 147 | { | ||
| 148 | return (POLICYINFO *)ASN1_item_new(&POLICYINFO_it); | ||
| 149 | } | ||
| 150 | |||
| 151 | void | ||
| 152 | POLICYINFO_free(POLICYINFO *a) | ||
| 153 | { | ||
| 154 | ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it); | ||
| 155 | } | ||
| 108 | 156 | ||
| 109 | ASN1_ADB_TEMPLATE(policydefault) = | 157 | ASN1_ADB_TEMPLATE(policydefault) = |
| 110 | ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); | 158 | ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); |
| @@ -119,21 +167,93 @@ ASN1_SEQUENCE(POLICYQUALINFO) = { | |||
| 119 | ASN1_ADB_OBJECT(POLICYQUALINFO) | 167 | ASN1_ADB_OBJECT(POLICYQUALINFO) |
| 120 | } ASN1_SEQUENCE_END(POLICYQUALINFO) | 168 | } ASN1_SEQUENCE_END(POLICYQUALINFO) |
| 121 | 169 | ||
| 122 | IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO) | 170 | |
| 171 | POLICYQUALINFO * | ||
| 172 | d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len) | ||
| 173 | { | ||
| 174 | return (POLICYQUALINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 175 | &POLICYQUALINFO_it); | ||
| 176 | } | ||
| 177 | |||
| 178 | int | ||
| 179 | i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out) | ||
| 180 | { | ||
| 181 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYQUALINFO_it); | ||
| 182 | } | ||
| 183 | |||
| 184 | POLICYQUALINFO * | ||
| 185 | POLICYQUALINFO_new(void) | ||
| 186 | { | ||
| 187 | return (POLICYQUALINFO *)ASN1_item_new(&POLICYQUALINFO_it); | ||
| 188 | } | ||
| 189 | |||
| 190 | void | ||
| 191 | POLICYQUALINFO_free(POLICYQUALINFO *a) | ||
| 192 | { | ||
| 193 | ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it); | ||
| 194 | } | ||
| 123 | 195 | ||
| 124 | ASN1_SEQUENCE(USERNOTICE) = { | 196 | ASN1_SEQUENCE(USERNOTICE) = { |
| 125 | ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), | 197 | ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), |
| 126 | ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) | 198 | ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) |
| 127 | } ASN1_SEQUENCE_END(USERNOTICE) | 199 | } ASN1_SEQUENCE_END(USERNOTICE) |
| 128 | 200 | ||
| 129 | IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE) | 201 | |
| 202 | USERNOTICE * | ||
| 203 | d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len) | ||
| 204 | { | ||
| 205 | return (USERNOTICE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 206 | &USERNOTICE_it); | ||
| 207 | } | ||
| 208 | |||
| 209 | int | ||
| 210 | i2d_USERNOTICE(USERNOTICE *a, unsigned char **out) | ||
| 211 | { | ||
| 212 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &USERNOTICE_it); | ||
| 213 | } | ||
| 214 | |||
| 215 | USERNOTICE * | ||
| 216 | USERNOTICE_new(void) | ||
| 217 | { | ||
| 218 | return (USERNOTICE *)ASN1_item_new(&USERNOTICE_it); | ||
| 219 | } | ||
| 220 | |||
| 221 | void | ||
| 222 | USERNOTICE_free(USERNOTICE *a) | ||
| 223 | { | ||
| 224 | ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it); | ||
| 225 | } | ||
| 130 | 226 | ||
| 131 | ASN1_SEQUENCE(NOTICEREF) = { | 227 | ASN1_SEQUENCE(NOTICEREF) = { |
| 132 | ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), | 228 | ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), |
| 133 | ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) | 229 | ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) |
| 134 | } ASN1_SEQUENCE_END(NOTICEREF) | 230 | } ASN1_SEQUENCE_END(NOTICEREF) |
| 135 | 231 | ||
| 136 | IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF) | 232 | |
| 233 | NOTICEREF * | ||
| 234 | d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len) | ||
| 235 | { | ||
| 236 | return (NOTICEREF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 237 | &NOTICEREF_it); | ||
| 238 | } | ||
| 239 | |||
| 240 | int | ||
| 241 | i2d_NOTICEREF(NOTICEREF *a, unsigned char **out) | ||
| 242 | { | ||
| 243 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &NOTICEREF_it); | ||
| 244 | } | ||
| 245 | |||
| 246 | NOTICEREF * | ||
| 247 | NOTICEREF_new(void) | ||
| 248 | { | ||
| 249 | return (NOTICEREF *)ASN1_item_new(&NOTICEREF_it); | ||
| 250 | } | ||
| 251 | |||
| 252 | void | ||
| 253 | NOTICEREF_free(NOTICEREF *a) | ||
| 254 | { | ||
| 255 | ASN1_item_free((ASN1_VALUE *)a, &NOTICEREF_it); | ||
| 256 | } | ||
| 137 | 257 | ||
| 138 | static | 258 | static |
| 139 | STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, | 259 | STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, |
