1 /* 2 * WARNING: do not edit! 3 * Generated by Makefile from include/openssl/x509v3.h.in 4 * 5 * Copyright 1999-2025 The OpenSSL Project Authors. All Rights Reserved. 6 * 7 * Licensed under the Apache License 2.0 (the "License"). You may not use 8 * this file except in compliance with the License. You can obtain a copy 9 * in the file LICENSE in the source distribution or at 10 * https://www.openssl.org/source/license.html 11 */ 12 13 14 15 #ifndef OPENSSL_X509V3_H 16 # define OPENSSL_X509V3_H 17 # pragma once 18 19 # include <openssl/macros.h> 20 # ifndef OPENSSL_NO_DEPRECATED_3_0 21 # define HEADER_X509V3_H 22 # endif 23 24 # include <openssl/bio.h> 25 # include <openssl/x509.h> 26 # include <openssl/conf.h> 27 # include <openssl/x509v3err.h> 28 # ifndef OPENSSL_NO_STDIO 29 # include <stdio.h> 30 # endif 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 /* Forward reference */ 37 struct v3_ext_method; 38 struct v3_ext_ctx; 39 40 /* Useful typedefs */ 41 42 typedef void *(*X509V3_EXT_NEW)(void); 43 typedef void (*X509V3_EXT_FREE) (void *); 44 typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); 45 typedef int (*X509V3_EXT_I2D) (const void *, unsigned char **); 46 typedef STACK_OF(CONF_VALUE) * 47 (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, 48 STACK_OF(CONF_VALUE) *extlist); 49 typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, 50 struct v3_ext_ctx *ctx, 51 STACK_OF(CONF_VALUE) *values); 52 typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, 53 void *ext); 54 typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, 55 struct v3_ext_ctx *ctx, const char *str); 56 typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, 57 BIO *out, int indent); 58 typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, 59 struct v3_ext_ctx *ctx, const char *str); 60 61 /* V3 extension structure */ 62 63 struct v3_ext_method { 64 int ext_nid; 65 int ext_flags; 66 /* If this is set the following four fields are ignored */ 67 ASN1_ITEM_EXP *it; 68 /* Old style ASN1 calls */ 69 X509V3_EXT_NEW ext_new; 70 X509V3_EXT_FREE ext_free; 71 X509V3_EXT_D2I d2i; 72 X509V3_EXT_I2D i2d; 73 /* The following pair is used for string extensions */ 74 X509V3_EXT_I2S i2s; 75 X509V3_EXT_S2I s2i; 76 /* The following pair is used for multi-valued extensions */ 77 X509V3_EXT_I2V i2v; 78 X509V3_EXT_V2I v2i; 79 /* The following are used for raw extensions */ 80 X509V3_EXT_I2R i2r; 81 X509V3_EXT_R2I r2i; 82 void *usr_data; /* Any extension specific data */ 83 }; 84 85 typedef struct X509V3_CONF_METHOD_st { 86 char *(*get_string) (void *db, const char *section, const char *value); 87 STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); 88 void (*free_string) (void *db, char *string); 89 void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); 90 } X509V3_CONF_METHOD; 91 92 /* Context specific info for producing X509 v3 extensions*/ 93 struct v3_ext_ctx { 94 # define X509V3_CTX_TEST 0x1 95 # ifndef OPENSSL_NO_DEPRECATED_3_0 96 # define CTX_TEST X509V3_CTX_TEST 97 # endif 98 # define X509V3_CTX_REPLACE 0x2 99 int flags; 100 X509 *issuer_cert; 101 X509 *subject_cert; 102 X509_REQ *subject_req; 103 X509_CRL *crl; 104 X509V3_CONF_METHOD *db_meth; 105 void *db; 106 EVP_PKEY *issuer_pkey; 107 /* Maybe more here */ 108 }; 109 110 typedef struct v3_ext_method X509V3_EXT_METHOD; 111 112 SKM_DEFINE_STACK_OF_INTERNAL(X509V3_EXT_METHOD, X509V3_EXT_METHOD, X509V3_EXT_METHOD) 113 #define sk_X509V3_EXT_METHOD_num(sk) OPENSSL_sk_num(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) 114 #define sk_X509V3_EXT_METHOD_value(sk, idx) ((X509V3_EXT_METHOD *)OPENSSL_sk_value(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), (idx))) 115 #define sk_X509V3_EXT_METHOD_new(cmp) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) 116 #define sk_X509V3_EXT_METHOD_new_null() ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_null()) 117 #define sk_X509V3_EXT_METHOD_new_reserve(cmp, n) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_new_reserve(ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp), (n))) 118 #define sk_X509V3_EXT_METHOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (n)) 119 #define sk_X509V3_EXT_METHOD_free(sk) OPENSSL_sk_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) 120 #define sk_X509V3_EXT_METHOD_zero(sk) OPENSSL_sk_zero(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) 121 #define sk_X509V3_EXT_METHOD_delete(sk, i) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (i))) 122 #define sk_X509V3_EXT_METHOD_delete_ptr(sk, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_delete_ptr(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr))) 123 #define sk_X509V3_EXT_METHOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) 124 #define sk_X509V3_EXT_METHOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) 125 #define sk_X509V3_EXT_METHOD_pop(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_pop(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) 126 #define sk_X509V3_EXT_METHOD_shift(sk) ((X509V3_EXT_METHOD *)OPENSSL_sk_shift(ossl_check_X509V3_EXT_METHOD_sk_type(sk))) 127 #define sk_X509V3_EXT_METHOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509V3_EXT_METHOD_sk_type(sk),ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc)) 128 #define sk_X509V3_EXT_METHOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), (idx)) 129 #define sk_X509V3_EXT_METHOD_set(sk, idx, ptr) ((X509V3_EXT_METHOD *)OPENSSL_sk_set(ossl_check_X509V3_EXT_METHOD_sk_type(sk), (idx), ossl_check_X509V3_EXT_METHOD_type(ptr))) 130 #define sk_X509V3_EXT_METHOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) 131 #define sk_X509V3_EXT_METHOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr)) 132 #define sk_X509V3_EXT_METHOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_type(ptr), pnum) 133 #define sk_X509V3_EXT_METHOD_sort(sk) OPENSSL_sk_sort(ossl_check_X509V3_EXT_METHOD_sk_type(sk)) 134 #define sk_X509V3_EXT_METHOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk)) 135 #define sk_X509V3_EXT_METHOD_dup(sk) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_dup(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk))) 136 #define sk_X509V3_EXT_METHOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509V3_EXT_METHOD) *)OPENSSL_sk_deep_copy(ossl_check_const_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_copyfunc_type(copyfunc), ossl_check_X509V3_EXT_METHOD_freefunc_type(freefunc))) 137 #define sk_X509V3_EXT_METHOD_set_cmp_func(sk, cmp) ((sk_X509V3_EXT_METHOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509V3_EXT_METHOD_sk_type(sk), ossl_check_X509V3_EXT_METHOD_compfunc_type(cmp))) 138 139 140 /* ext_flags values */ 141 # define X509V3_EXT_DYNAMIC 0x1 142 # define X509V3_EXT_CTX_DEP 0x2 143 # define X509V3_EXT_MULTILINE 0x4 144 145 typedef BIT_STRING_BITNAME ENUMERATED_NAMES; 146 147 typedef struct BASIC_CONSTRAINTS_st { 148 int ca; 149 ASN1_INTEGER *pathlen; 150 } BASIC_CONSTRAINTS; 151 152 typedef struct OSSL_BASIC_ATTR_CONSTRAINTS_st { 153 int authority; 154 ASN1_INTEGER *pathlen; 155 } OSSL_BASIC_ATTR_CONSTRAINTS; 156 157 typedef struct PKEY_USAGE_PERIOD_st { 158 ASN1_GENERALIZEDTIME *notBefore; 159 ASN1_GENERALIZEDTIME *notAfter; 160 } PKEY_USAGE_PERIOD; 161 162 typedef struct otherName_st { 163 ASN1_OBJECT *type_id; 164 ASN1_TYPE *value; 165 } OTHERNAME; 166 167 typedef struct EDIPartyName_st { 168 ASN1_STRING *nameAssigner; 169 ASN1_STRING *partyName; 170 } EDIPARTYNAME; 171 172 typedef struct GENERAL_NAME_st { 173 # define GEN_OTHERNAME 0 174 # define GEN_EMAIL 1 175 # define GEN_DNS 2 176 # define GEN_X400 3 177 # define GEN_DIRNAME 4 178 # define GEN_EDIPARTY 5 179 # define GEN_URI 6 180 # define GEN_IPADD 7 181 # define GEN_RID 8 182 int type; 183 union { 184 char *ptr; 185 OTHERNAME *otherName; /* otherName */ 186 ASN1_IA5STRING *rfc822Name; 187 ASN1_IA5STRING *dNSName; 188 ASN1_STRING *x400Address; 189 X509_NAME *directoryName; 190 EDIPARTYNAME *ediPartyName; 191 ASN1_IA5STRING *uniformResourceIdentifier; 192 ASN1_OCTET_STRING *iPAddress; 193 ASN1_OBJECT *registeredID; 194 /* Old names */ 195 ASN1_OCTET_STRING *ip; /* iPAddress */ 196 X509_NAME *dirn; /* dirn */ 197 ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, 198 * uniformResourceIdentifier */ 199 ASN1_OBJECT *rid; /* registeredID */ 200 ASN1_TYPE *other; /* x400Address */ 201 } d; 202 } GENERAL_NAME; 203 204 typedef struct ACCESS_DESCRIPTION_st { 205 ASN1_OBJECT *method; 206 GENERAL_NAME *location; 207 } ACCESS_DESCRIPTION; 208 209 int GENERAL_NAME_set1_X509_NAME(GENERAL_NAME **tgt, const X509_NAME *src); 210 211 SKM_DEFINE_STACK_OF_INTERNAL(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION, ACCESS_DESCRIPTION) 212 #define sk_ACCESS_DESCRIPTION_num(sk) OPENSSL_sk_num(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) 213 #define sk_ACCESS_DESCRIPTION_value(sk, idx) ((ACCESS_DESCRIPTION *)OPENSSL_sk_value(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), (idx))) 214 #define sk_ACCESS_DESCRIPTION_new(cmp) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) 215 #define sk_ACCESS_DESCRIPTION_new_null() ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_null()) 216 #define sk_ACCESS_DESCRIPTION_new_reserve(cmp, n) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_new_reserve(ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp), (n))) 217 #define sk_ACCESS_DESCRIPTION_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (n)) 218 #define sk_ACCESS_DESCRIPTION_free(sk) OPENSSL_sk_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) 219 #define sk_ACCESS_DESCRIPTION_zero(sk) OPENSSL_sk_zero(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) 220 #define sk_ACCESS_DESCRIPTION_delete(sk, i) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (i))) 221 #define sk_ACCESS_DESCRIPTION_delete_ptr(sk, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_delete_ptr(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr))) 222 #define sk_ACCESS_DESCRIPTION_push(sk, ptr) OPENSSL_sk_push(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) 223 #define sk_ACCESS_DESCRIPTION_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) 224 #define sk_ACCESS_DESCRIPTION_pop(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_pop(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) 225 #define sk_ACCESS_DESCRIPTION_shift(sk) ((ACCESS_DESCRIPTION *)OPENSSL_sk_shift(ossl_check_ACCESS_DESCRIPTION_sk_type(sk))) 226 #define sk_ACCESS_DESCRIPTION_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ACCESS_DESCRIPTION_sk_type(sk),ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc)) 227 #define sk_ACCESS_DESCRIPTION_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), (idx)) 228 #define sk_ACCESS_DESCRIPTION_set(sk, idx, ptr) ((ACCESS_DESCRIPTION *)OPENSSL_sk_set(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), (idx), ossl_check_ACCESS_DESCRIPTION_type(ptr))) 229 #define sk_ACCESS_DESCRIPTION_find(sk, ptr) OPENSSL_sk_find(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) 230 #define sk_ACCESS_DESCRIPTION_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr)) 231 #define sk_ACCESS_DESCRIPTION_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_type(ptr), pnum) 232 #define sk_ACCESS_DESCRIPTION_sort(sk) OPENSSL_sk_sort(ossl_check_ACCESS_DESCRIPTION_sk_type(sk)) 233 #define sk_ACCESS_DESCRIPTION_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk)) 234 #define sk_ACCESS_DESCRIPTION_dup(sk) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_dup(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk))) 235 #define sk_ACCESS_DESCRIPTION_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ACCESS_DESCRIPTION) *)OPENSSL_sk_deep_copy(ossl_check_const_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_copyfunc_type(copyfunc), ossl_check_ACCESS_DESCRIPTION_freefunc_type(freefunc))) 236 #define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, cmp) ((sk_ACCESS_DESCRIPTION_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ACCESS_DESCRIPTION_sk_type(sk), ossl_check_ACCESS_DESCRIPTION_compfunc_type(cmp))) 237 SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAME, GENERAL_NAME, GENERAL_NAME) 238 #define sk_GENERAL_NAME_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAME_sk_type(sk)) 239 #define sk_GENERAL_NAME_value(sk, idx) ((GENERAL_NAME *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAME_sk_type(sk), (idx))) 240 #define sk_GENERAL_NAME_new(cmp) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new(ossl_check_GENERAL_NAME_compfunc_type(cmp))) 241 #define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_null()) 242 #define sk_GENERAL_NAME_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAME_compfunc_type(cmp), (n))) 243 #define sk_GENERAL_NAME_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAME_sk_type(sk), (n)) 244 #define sk_GENERAL_NAME_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAME_sk_type(sk)) 245 #define sk_GENERAL_NAME_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAME_sk_type(sk)) 246 #define sk_GENERAL_NAME_delete(sk, i) ((GENERAL_NAME *)OPENSSL_sk_delete(ossl_check_GENERAL_NAME_sk_type(sk), (i))) 247 #define sk_GENERAL_NAME_delete_ptr(sk, ptr) ((GENERAL_NAME *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr))) 248 #define sk_GENERAL_NAME_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) 249 #define sk_GENERAL_NAME_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) 250 #define sk_GENERAL_NAME_pop(sk) ((GENERAL_NAME *)OPENSSL_sk_pop(ossl_check_GENERAL_NAME_sk_type(sk))) 251 #define sk_GENERAL_NAME_shift(sk) ((GENERAL_NAME *)OPENSSL_sk_shift(ossl_check_GENERAL_NAME_sk_type(sk))) 252 #define sk_GENERAL_NAME_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAME_sk_type(sk),ossl_check_GENERAL_NAME_freefunc_type(freefunc)) 253 #define sk_GENERAL_NAME_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), (idx)) 254 #define sk_GENERAL_NAME_set(sk, idx, ptr) ((GENERAL_NAME *)OPENSSL_sk_set(ossl_check_GENERAL_NAME_sk_type(sk), (idx), ossl_check_GENERAL_NAME_type(ptr))) 255 #define sk_GENERAL_NAME_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) 256 #define sk_GENERAL_NAME_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr)) 257 #define sk_GENERAL_NAME_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_type(ptr), pnum) 258 #define sk_GENERAL_NAME_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAME_sk_type(sk)) 259 #define sk_GENERAL_NAME_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAME_sk_type(sk)) 260 #define sk_GENERAL_NAME_dup(sk) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAME_sk_type(sk))) 261 #define sk_GENERAL_NAME_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAME) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_copyfunc_type(copyfunc), ossl_check_GENERAL_NAME_freefunc_type(freefunc))) 262 #define sk_GENERAL_NAME_set_cmp_func(sk, cmp) ((sk_GENERAL_NAME_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAME_sk_type(sk), ossl_check_GENERAL_NAME_compfunc_type(cmp))) 263 264 265 typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; 266 typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; 267 typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; 268 typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; 269 270 SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_NAMES, GENERAL_NAMES, GENERAL_NAMES) 271 #define sk_GENERAL_NAMES_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_NAMES_sk_type(sk)) 272 #define sk_GENERAL_NAMES_value(sk, idx) ((GENERAL_NAMES *)OPENSSL_sk_value(ossl_check_const_GENERAL_NAMES_sk_type(sk), (idx))) 273 #define sk_GENERAL_NAMES_new(cmp) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new(ossl_check_GENERAL_NAMES_compfunc_type(cmp))) 274 #define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_null()) 275 #define sk_GENERAL_NAMES_new_reserve(cmp, n) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_NAMES_compfunc_type(cmp), (n))) 276 #define sk_GENERAL_NAMES_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_NAMES_sk_type(sk), (n)) 277 #define sk_GENERAL_NAMES_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_NAMES_sk_type(sk)) 278 #define sk_GENERAL_NAMES_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_NAMES_sk_type(sk)) 279 #define sk_GENERAL_NAMES_delete(sk, i) ((GENERAL_NAMES *)OPENSSL_sk_delete(ossl_check_GENERAL_NAMES_sk_type(sk), (i))) 280 #define sk_GENERAL_NAMES_delete_ptr(sk, ptr) ((GENERAL_NAMES *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr))) 281 #define sk_GENERAL_NAMES_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) 282 #define sk_GENERAL_NAMES_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) 283 #define sk_GENERAL_NAMES_pop(sk) ((GENERAL_NAMES *)OPENSSL_sk_pop(ossl_check_GENERAL_NAMES_sk_type(sk))) 284 #define sk_GENERAL_NAMES_shift(sk) ((GENERAL_NAMES *)OPENSSL_sk_shift(ossl_check_GENERAL_NAMES_sk_type(sk))) 285 #define sk_GENERAL_NAMES_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_NAMES_sk_type(sk),ossl_check_GENERAL_NAMES_freefunc_type(freefunc)) 286 #define sk_GENERAL_NAMES_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), (idx)) 287 #define sk_GENERAL_NAMES_set(sk, idx, ptr) ((GENERAL_NAMES *)OPENSSL_sk_set(ossl_check_GENERAL_NAMES_sk_type(sk), (idx), ossl_check_GENERAL_NAMES_type(ptr))) 288 #define sk_GENERAL_NAMES_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) 289 #define sk_GENERAL_NAMES_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr)) 290 #define sk_GENERAL_NAMES_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_type(ptr), pnum) 291 #define sk_GENERAL_NAMES_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_NAMES_sk_type(sk)) 292 #define sk_GENERAL_NAMES_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_NAMES_sk_type(sk)) 293 #define sk_GENERAL_NAMES_dup(sk) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_NAMES_sk_type(sk))) 294 #define sk_GENERAL_NAMES_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_NAMES) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_copyfunc_type(copyfunc), ossl_check_GENERAL_NAMES_freefunc_type(freefunc))) 295 #define sk_GENERAL_NAMES_set_cmp_func(sk, cmp) ((sk_GENERAL_NAMES_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_NAMES_sk_type(sk), ossl_check_GENERAL_NAMES_compfunc_type(cmp))) 296 297 298 typedef struct DIST_POINT_NAME_st { 299 int type; 300 union { 301 GENERAL_NAMES *fullname; 302 STACK_OF(X509_NAME_ENTRY) *relativename; 303 } name; 304 /* If relativename then this contains the full distribution point name */ 305 X509_NAME *dpname; 306 } DIST_POINT_NAME; 307 DECLARE_ASN1_DUP_FUNCTION(DIST_POINT_NAME) 308 /* All existing reasons */ 309 # define CRLDP_ALL_REASONS 0x807f 310 311 # define CRL_REASON_NONE -1 312 # define CRL_REASON_UNSPECIFIED 0 313 # define CRL_REASON_KEY_COMPROMISE 1 314 # define CRL_REASON_CA_COMPROMISE 2 315 # define CRL_REASON_AFFILIATION_CHANGED 3 316 # define CRL_REASON_SUPERSEDED 4 317 # define CRL_REASON_CESSATION_OF_OPERATION 5 318 # define CRL_REASON_CERTIFICATE_HOLD 6 319 # define CRL_REASON_REMOVE_FROM_CRL 8 320 # define CRL_REASON_PRIVILEGE_WITHDRAWN 9 321 # define CRL_REASON_AA_COMPROMISE 10 322 323 struct DIST_POINT_st { 324 DIST_POINT_NAME *distpoint; 325 ASN1_BIT_STRING *reasons; 326 GENERAL_NAMES *CRLissuer; 327 int dp_reasons; 328 }; 329 330 SKM_DEFINE_STACK_OF_INTERNAL(DIST_POINT, DIST_POINT, DIST_POINT) 331 #define sk_DIST_POINT_num(sk) OPENSSL_sk_num(ossl_check_const_DIST_POINT_sk_type(sk)) 332 #define sk_DIST_POINT_value(sk, idx) ((DIST_POINT *)OPENSSL_sk_value(ossl_check_const_DIST_POINT_sk_type(sk), (idx))) 333 #define sk_DIST_POINT_new(cmp) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new(ossl_check_DIST_POINT_compfunc_type(cmp))) 334 #define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_null()) 335 #define sk_DIST_POINT_new_reserve(cmp, n) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_new_reserve(ossl_check_DIST_POINT_compfunc_type(cmp), (n))) 336 #define sk_DIST_POINT_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_DIST_POINT_sk_type(sk), (n)) 337 #define sk_DIST_POINT_free(sk) OPENSSL_sk_free(ossl_check_DIST_POINT_sk_type(sk)) 338 #define sk_DIST_POINT_zero(sk) OPENSSL_sk_zero(ossl_check_DIST_POINT_sk_type(sk)) 339 #define sk_DIST_POINT_delete(sk, i) ((DIST_POINT *)OPENSSL_sk_delete(ossl_check_DIST_POINT_sk_type(sk), (i))) 340 #define sk_DIST_POINT_delete_ptr(sk, ptr) ((DIST_POINT *)OPENSSL_sk_delete_ptr(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr))) 341 #define sk_DIST_POINT_push(sk, ptr) OPENSSL_sk_push(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) 342 #define sk_DIST_POINT_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) 343 #define sk_DIST_POINT_pop(sk) ((DIST_POINT *)OPENSSL_sk_pop(ossl_check_DIST_POINT_sk_type(sk))) 344 #define sk_DIST_POINT_shift(sk) ((DIST_POINT *)OPENSSL_sk_shift(ossl_check_DIST_POINT_sk_type(sk))) 345 #define sk_DIST_POINT_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_DIST_POINT_sk_type(sk),ossl_check_DIST_POINT_freefunc_type(freefunc)) 346 #define sk_DIST_POINT_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), (idx)) 347 #define sk_DIST_POINT_set(sk, idx, ptr) ((DIST_POINT *)OPENSSL_sk_set(ossl_check_DIST_POINT_sk_type(sk), (idx), ossl_check_DIST_POINT_type(ptr))) 348 #define sk_DIST_POINT_find(sk, ptr) OPENSSL_sk_find(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) 349 #define sk_DIST_POINT_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr)) 350 #define sk_DIST_POINT_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_type(ptr), pnum) 351 #define sk_DIST_POINT_sort(sk) OPENSSL_sk_sort(ossl_check_DIST_POINT_sk_type(sk)) 352 #define sk_DIST_POINT_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_DIST_POINT_sk_type(sk)) 353 #define sk_DIST_POINT_dup(sk) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_dup(ossl_check_const_DIST_POINT_sk_type(sk))) 354 #define sk_DIST_POINT_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(DIST_POINT) *)OPENSSL_sk_deep_copy(ossl_check_const_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_copyfunc_type(copyfunc), ossl_check_DIST_POINT_freefunc_type(freefunc))) 355 #define sk_DIST_POINT_set_cmp_func(sk, cmp) ((sk_DIST_POINT_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_DIST_POINT_sk_type(sk), ossl_check_DIST_POINT_compfunc_type(cmp))) 356 357 358 typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; 359 360 struct AUTHORITY_KEYID_st { 361 ASN1_OCTET_STRING *keyid; 362 GENERAL_NAMES *issuer; 363 ASN1_INTEGER *serial; 364 }; 365 366 /* Strong extranet structures */ 367 368 typedef struct SXNET_ID_st { 369 ASN1_INTEGER *zone; 370 ASN1_OCTET_STRING *user; 371 } SXNETID; 372 373 SKM_DEFINE_STACK_OF_INTERNAL(SXNETID, SXNETID, SXNETID) 374 #define sk_SXNETID_num(sk) OPENSSL_sk_num(ossl_check_const_SXNETID_sk_type(sk)) 375 #define sk_SXNETID_value(sk, idx) ((SXNETID *)OPENSSL_sk_value(ossl_check_const_SXNETID_sk_type(sk), (idx))) 376 #define sk_SXNETID_new(cmp) ((STACK_OF(SXNETID) *)OPENSSL_sk_new(ossl_check_SXNETID_compfunc_type(cmp))) 377 #define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)OPENSSL_sk_new_null()) 378 #define sk_SXNETID_new_reserve(cmp, n) ((STACK_OF(SXNETID) *)OPENSSL_sk_new_reserve(ossl_check_SXNETID_compfunc_type(cmp), (n))) 379 #define sk_SXNETID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_SXNETID_sk_type(sk), (n)) 380 #define sk_SXNETID_free(sk) OPENSSL_sk_free(ossl_check_SXNETID_sk_type(sk)) 381 #define sk_SXNETID_zero(sk) OPENSSL_sk_zero(ossl_check_SXNETID_sk_type(sk)) 382 #define sk_SXNETID_delete(sk, i) ((SXNETID *)OPENSSL_sk_delete(ossl_check_SXNETID_sk_type(sk), (i))) 383 #define sk_SXNETID_delete_ptr(sk, ptr) ((SXNETID *)OPENSSL_sk_delete_ptr(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr))) 384 #define sk_SXNETID_push(sk, ptr) OPENSSL_sk_push(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) 385 #define sk_SXNETID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) 386 #define sk_SXNETID_pop(sk) ((SXNETID *)OPENSSL_sk_pop(ossl_check_SXNETID_sk_type(sk))) 387 #define sk_SXNETID_shift(sk) ((SXNETID *)OPENSSL_sk_shift(ossl_check_SXNETID_sk_type(sk))) 388 #define sk_SXNETID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_SXNETID_sk_type(sk),ossl_check_SXNETID_freefunc_type(freefunc)) 389 #define sk_SXNETID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), (idx)) 390 #define sk_SXNETID_set(sk, idx, ptr) ((SXNETID *)OPENSSL_sk_set(ossl_check_SXNETID_sk_type(sk), (idx), ossl_check_SXNETID_type(ptr))) 391 #define sk_SXNETID_find(sk, ptr) OPENSSL_sk_find(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) 392 #define sk_SXNETID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr)) 393 #define sk_SXNETID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_type(ptr), pnum) 394 #define sk_SXNETID_sort(sk) OPENSSL_sk_sort(ossl_check_SXNETID_sk_type(sk)) 395 #define sk_SXNETID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_SXNETID_sk_type(sk)) 396 #define sk_SXNETID_dup(sk) ((STACK_OF(SXNETID) *)OPENSSL_sk_dup(ossl_check_const_SXNETID_sk_type(sk))) 397 #define sk_SXNETID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(SXNETID) *)OPENSSL_sk_deep_copy(ossl_check_const_SXNETID_sk_type(sk), ossl_check_SXNETID_copyfunc_type(copyfunc), ossl_check_SXNETID_freefunc_type(freefunc))) 398 #define sk_SXNETID_set_cmp_func(sk, cmp) ((sk_SXNETID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_SXNETID_sk_type(sk), ossl_check_SXNETID_compfunc_type(cmp))) 399 400 401 402 typedef struct SXNET_st { 403 ASN1_INTEGER *version; 404 STACK_OF(SXNETID) *ids; 405 } SXNET; 406 407 typedef struct ISSUER_SIGN_TOOL_st { 408 ASN1_UTF8STRING *signTool; 409 ASN1_UTF8STRING *cATool; 410 ASN1_UTF8STRING *signToolCert; 411 ASN1_UTF8STRING *cAToolCert; 412 } ISSUER_SIGN_TOOL; 413 414 typedef struct NOTICEREF_st { 415 ASN1_STRING *organization; 416 STACK_OF(ASN1_INTEGER) *noticenos; 417 } NOTICEREF; 418 419 typedef struct USERNOTICE_st { 420 NOTICEREF *noticeref; 421 ASN1_STRING *exptext; 422 } USERNOTICE; 423 424 typedef struct POLICYQUALINFO_st { 425 ASN1_OBJECT *pqualid; 426 union { 427 ASN1_IA5STRING *cpsuri; 428 USERNOTICE *usernotice; 429 ASN1_TYPE *other; 430 } d; 431 } POLICYQUALINFO; 432 433 SKM_DEFINE_STACK_OF_INTERNAL(POLICYQUALINFO, POLICYQUALINFO, POLICYQUALINFO) 434 #define sk_POLICYQUALINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYQUALINFO_sk_type(sk)) 435 #define sk_POLICYQUALINFO_value(sk, idx) ((POLICYQUALINFO *)OPENSSL_sk_value(ossl_check_const_POLICYQUALINFO_sk_type(sk), (idx))) 436 #define sk_POLICYQUALINFO_new(cmp) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new(ossl_check_POLICYQUALINFO_compfunc_type(cmp))) 437 #define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_null()) 438 #define sk_POLICYQUALINFO_new_reserve(cmp, n) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYQUALINFO_compfunc_type(cmp), (n))) 439 #define sk_POLICYQUALINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYQUALINFO_sk_type(sk), (n)) 440 #define sk_POLICYQUALINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYQUALINFO_sk_type(sk)) 441 #define sk_POLICYQUALINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYQUALINFO_sk_type(sk)) 442 #define sk_POLICYQUALINFO_delete(sk, i) ((POLICYQUALINFO *)OPENSSL_sk_delete(ossl_check_POLICYQUALINFO_sk_type(sk), (i))) 443 #define sk_POLICYQUALINFO_delete_ptr(sk, ptr) ((POLICYQUALINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr))) 444 #define sk_POLICYQUALINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) 445 #define sk_POLICYQUALINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) 446 #define sk_POLICYQUALINFO_pop(sk) ((POLICYQUALINFO *)OPENSSL_sk_pop(ossl_check_POLICYQUALINFO_sk_type(sk))) 447 #define sk_POLICYQUALINFO_shift(sk) ((POLICYQUALINFO *)OPENSSL_sk_shift(ossl_check_POLICYQUALINFO_sk_type(sk))) 448 #define sk_POLICYQUALINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYQUALINFO_sk_type(sk),ossl_check_POLICYQUALINFO_freefunc_type(freefunc)) 449 #define sk_POLICYQUALINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), (idx)) 450 #define sk_POLICYQUALINFO_set(sk, idx, ptr) ((POLICYQUALINFO *)OPENSSL_sk_set(ossl_check_POLICYQUALINFO_sk_type(sk), (idx), ossl_check_POLICYQUALINFO_type(ptr))) 451 #define sk_POLICYQUALINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) 452 #define sk_POLICYQUALINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr)) 453 #define sk_POLICYQUALINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_type(ptr), pnum) 454 #define sk_POLICYQUALINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYQUALINFO_sk_type(sk)) 455 #define sk_POLICYQUALINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYQUALINFO_sk_type(sk)) 456 #define sk_POLICYQUALINFO_dup(sk) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYQUALINFO_sk_type(sk))) 457 #define sk_POLICYQUALINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYQUALINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_copyfunc_type(copyfunc), ossl_check_POLICYQUALINFO_freefunc_type(freefunc))) 458 #define sk_POLICYQUALINFO_set_cmp_func(sk, cmp) ((sk_POLICYQUALINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYQUALINFO_sk_type(sk), ossl_check_POLICYQUALINFO_compfunc_type(cmp))) 459 460 461 462 typedef struct POLICYINFO_st { 463 ASN1_OBJECT *policyid; 464 STACK_OF(POLICYQUALINFO) *qualifiers; 465 } POLICYINFO; 466 467 SKM_DEFINE_STACK_OF_INTERNAL(POLICYINFO, POLICYINFO, POLICYINFO) 468 #define sk_POLICYINFO_num(sk) OPENSSL_sk_num(ossl_check_const_POLICYINFO_sk_type(sk)) 469 #define sk_POLICYINFO_value(sk, idx) ((POLICYINFO *)OPENSSL_sk_value(ossl_check_const_POLICYINFO_sk_type(sk), (idx))) 470 #define sk_POLICYINFO_new(cmp) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new(ossl_check_POLICYINFO_compfunc_type(cmp))) 471 #define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_null()) 472 #define sk_POLICYINFO_new_reserve(cmp, n) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_new_reserve(ossl_check_POLICYINFO_compfunc_type(cmp), (n))) 473 #define sk_POLICYINFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICYINFO_sk_type(sk), (n)) 474 #define sk_POLICYINFO_free(sk) OPENSSL_sk_free(ossl_check_POLICYINFO_sk_type(sk)) 475 #define sk_POLICYINFO_zero(sk) OPENSSL_sk_zero(ossl_check_POLICYINFO_sk_type(sk)) 476 #define sk_POLICYINFO_delete(sk, i) ((POLICYINFO *)OPENSSL_sk_delete(ossl_check_POLICYINFO_sk_type(sk), (i))) 477 #define sk_POLICYINFO_delete_ptr(sk, ptr) ((POLICYINFO *)OPENSSL_sk_delete_ptr(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr))) 478 #define sk_POLICYINFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) 479 #define sk_POLICYINFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) 480 #define sk_POLICYINFO_pop(sk) ((POLICYINFO *)OPENSSL_sk_pop(ossl_check_POLICYINFO_sk_type(sk))) 481 #define sk_POLICYINFO_shift(sk) ((POLICYINFO *)OPENSSL_sk_shift(ossl_check_POLICYINFO_sk_type(sk))) 482 #define sk_POLICYINFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICYINFO_sk_type(sk),ossl_check_POLICYINFO_freefunc_type(freefunc)) 483 #define sk_POLICYINFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), (idx)) 484 #define sk_POLICYINFO_set(sk, idx, ptr) ((POLICYINFO *)OPENSSL_sk_set(ossl_check_POLICYINFO_sk_type(sk), (idx), ossl_check_POLICYINFO_type(ptr))) 485 #define sk_POLICYINFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) 486 #define sk_POLICYINFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr)) 487 #define sk_POLICYINFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_type(ptr), pnum) 488 #define sk_POLICYINFO_sort(sk) OPENSSL_sk_sort(ossl_check_POLICYINFO_sk_type(sk)) 489 #define sk_POLICYINFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICYINFO_sk_type(sk)) 490 #define sk_POLICYINFO_dup(sk) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_dup(ossl_check_const_POLICYINFO_sk_type(sk))) 491 #define sk_POLICYINFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICYINFO) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_copyfunc_type(copyfunc), ossl_check_POLICYINFO_freefunc_type(freefunc))) 492 #define sk_POLICYINFO_set_cmp_func(sk, cmp) ((sk_POLICYINFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICYINFO_sk_type(sk), ossl_check_POLICYINFO_compfunc_type(cmp))) 493 494 495 typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; 496 497 typedef struct POLICY_MAPPING_st { 498 ASN1_OBJECT *issuerDomainPolicy; 499 ASN1_OBJECT *subjectDomainPolicy; 500 } POLICY_MAPPING; 501 502 SKM_DEFINE_STACK_OF_INTERNAL(POLICY_MAPPING, POLICY_MAPPING, POLICY_MAPPING) 503 #define sk_POLICY_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_POLICY_MAPPING_sk_type(sk)) 504 #define sk_POLICY_MAPPING_value(sk, idx) ((POLICY_MAPPING *)OPENSSL_sk_value(ossl_check_const_POLICY_MAPPING_sk_type(sk), (idx))) 505 #define sk_POLICY_MAPPING_new(cmp) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new(ossl_check_POLICY_MAPPING_compfunc_type(cmp))) 506 #define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_null()) 507 #define sk_POLICY_MAPPING_new_reserve(cmp, n) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_POLICY_MAPPING_compfunc_type(cmp), (n))) 508 #define sk_POLICY_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_POLICY_MAPPING_sk_type(sk), (n)) 509 #define sk_POLICY_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_POLICY_MAPPING_sk_type(sk)) 510 #define sk_POLICY_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_POLICY_MAPPING_sk_type(sk)) 511 #define sk_POLICY_MAPPING_delete(sk, i) ((POLICY_MAPPING *)OPENSSL_sk_delete(ossl_check_POLICY_MAPPING_sk_type(sk), (i))) 512 #define sk_POLICY_MAPPING_delete_ptr(sk, ptr) ((POLICY_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr))) 513 #define sk_POLICY_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) 514 #define sk_POLICY_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) 515 #define sk_POLICY_MAPPING_pop(sk) ((POLICY_MAPPING *)OPENSSL_sk_pop(ossl_check_POLICY_MAPPING_sk_type(sk))) 516 #define sk_POLICY_MAPPING_shift(sk) ((POLICY_MAPPING *)OPENSSL_sk_shift(ossl_check_POLICY_MAPPING_sk_type(sk))) 517 #define sk_POLICY_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_POLICY_MAPPING_sk_type(sk),ossl_check_POLICY_MAPPING_freefunc_type(freefunc)) 518 #define sk_POLICY_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), (idx)) 519 #define sk_POLICY_MAPPING_set(sk, idx, ptr) ((POLICY_MAPPING *)OPENSSL_sk_set(ossl_check_POLICY_MAPPING_sk_type(sk), (idx), ossl_check_POLICY_MAPPING_type(ptr))) 520 #define sk_POLICY_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) 521 #define sk_POLICY_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr)) 522 #define sk_POLICY_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_type(ptr), pnum) 523 #define sk_POLICY_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_POLICY_MAPPING_sk_type(sk)) 524 #define sk_POLICY_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_POLICY_MAPPING_sk_type(sk)) 525 #define sk_POLICY_MAPPING_dup(sk) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_POLICY_MAPPING_sk_type(sk))) 526 #define sk_POLICY_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(POLICY_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_copyfunc_type(copyfunc), ossl_check_POLICY_MAPPING_freefunc_type(freefunc))) 527 #define sk_POLICY_MAPPING_set_cmp_func(sk, cmp) ((sk_POLICY_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_POLICY_MAPPING_sk_type(sk), ossl_check_POLICY_MAPPING_compfunc_type(cmp))) 528 529 530 typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; 531 532 typedef struct GENERAL_SUBTREE_st { 533 GENERAL_NAME *base; 534 ASN1_INTEGER *minimum; 535 ASN1_INTEGER *maximum; 536 } GENERAL_SUBTREE; 537 538 SKM_DEFINE_STACK_OF_INTERNAL(GENERAL_SUBTREE, GENERAL_SUBTREE, GENERAL_SUBTREE) 539 #define sk_GENERAL_SUBTREE_num(sk) OPENSSL_sk_num(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) 540 #define sk_GENERAL_SUBTREE_value(sk, idx) ((GENERAL_SUBTREE *)OPENSSL_sk_value(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), (idx))) 541 #define sk_GENERAL_SUBTREE_new(cmp) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) 542 #define sk_GENERAL_SUBTREE_new_null() ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_null()) 543 #define sk_GENERAL_SUBTREE_new_reserve(cmp, n) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_new_reserve(ossl_check_GENERAL_SUBTREE_compfunc_type(cmp), (n))) 544 #define sk_GENERAL_SUBTREE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_GENERAL_SUBTREE_sk_type(sk), (n)) 545 #define sk_GENERAL_SUBTREE_free(sk) OPENSSL_sk_free(ossl_check_GENERAL_SUBTREE_sk_type(sk)) 546 #define sk_GENERAL_SUBTREE_zero(sk) OPENSSL_sk_zero(ossl_check_GENERAL_SUBTREE_sk_type(sk)) 547 #define sk_GENERAL_SUBTREE_delete(sk, i) ((GENERAL_SUBTREE *)OPENSSL_sk_delete(ossl_check_GENERAL_SUBTREE_sk_type(sk), (i))) 548 #define sk_GENERAL_SUBTREE_delete_ptr(sk, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_delete_ptr(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr))) 549 #define sk_GENERAL_SUBTREE_push(sk, ptr) OPENSSL_sk_push(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) 550 #define sk_GENERAL_SUBTREE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) 551 #define sk_GENERAL_SUBTREE_pop(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_pop(ossl_check_GENERAL_SUBTREE_sk_type(sk))) 552 #define sk_GENERAL_SUBTREE_shift(sk) ((GENERAL_SUBTREE *)OPENSSL_sk_shift(ossl_check_GENERAL_SUBTREE_sk_type(sk))) 553 #define sk_GENERAL_SUBTREE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_GENERAL_SUBTREE_sk_type(sk),ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc)) 554 #define sk_GENERAL_SUBTREE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), (idx)) 555 #define sk_GENERAL_SUBTREE_set(sk, idx, ptr) ((GENERAL_SUBTREE *)OPENSSL_sk_set(ossl_check_GENERAL_SUBTREE_sk_type(sk), (idx), ossl_check_GENERAL_SUBTREE_type(ptr))) 556 #define sk_GENERAL_SUBTREE_find(sk, ptr) OPENSSL_sk_find(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) 557 #define sk_GENERAL_SUBTREE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr)) 558 #define sk_GENERAL_SUBTREE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_type(ptr), pnum) 559 #define sk_GENERAL_SUBTREE_sort(sk) OPENSSL_sk_sort(ossl_check_GENERAL_SUBTREE_sk_type(sk)) 560 #define sk_GENERAL_SUBTREE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_GENERAL_SUBTREE_sk_type(sk)) 561 #define sk_GENERAL_SUBTREE_dup(sk) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_dup(ossl_check_const_GENERAL_SUBTREE_sk_type(sk))) 562 #define sk_GENERAL_SUBTREE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(GENERAL_SUBTREE) *)OPENSSL_sk_deep_copy(ossl_check_const_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_copyfunc_type(copyfunc), ossl_check_GENERAL_SUBTREE_freefunc_type(freefunc))) 563 #define sk_GENERAL_SUBTREE_set_cmp_func(sk, cmp) ((sk_GENERAL_SUBTREE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_GENERAL_SUBTREE_sk_type(sk), ossl_check_GENERAL_SUBTREE_compfunc_type(cmp))) 564 565 566 struct NAME_CONSTRAINTS_st { 567 STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; 568 STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; 569 }; 570 571 typedef struct POLICY_CONSTRAINTS_st { 572 ASN1_INTEGER *requireExplicitPolicy; 573 ASN1_INTEGER *inhibitPolicyMapping; 574 } POLICY_CONSTRAINTS; 575 576 /* Proxy certificate structures, see RFC 3820 */ 577 typedef struct PROXY_POLICY_st { 578 ASN1_OBJECT *policyLanguage; 579 ASN1_OCTET_STRING *policy; 580 } PROXY_POLICY; 581 582 typedef struct PROXY_CERT_INFO_EXTENSION_st { 583 ASN1_INTEGER *pcPathLengthConstraint; 584 PROXY_POLICY *proxyPolicy; 585 } PROXY_CERT_INFO_EXTENSION; 586 587 DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) 588 DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) 589 590 struct ISSUING_DIST_POINT_st { 591 DIST_POINT_NAME *distpoint; 592 int onlyuser; 593 int onlyCA; 594 ASN1_BIT_STRING *onlysomereasons; 595 int indirectCRL; 596 int onlyattr; 597 }; 598 599 /* Values in idp_flags field */ 600 /* IDP present */ 601 # define IDP_PRESENT 0x1 602 /* IDP values inconsistent */ 603 # define IDP_INVALID 0x2 604 /* onlyuser true */ 605 # define IDP_ONLYUSER 0x4 606 /* onlyCA true */ 607 # define IDP_ONLYCA 0x8 608 /* onlyattr true */ 609 # define IDP_ONLYATTR 0x10 610 /* indirectCRL true */ 611 # define IDP_INDIRECT 0x20 612 /* onlysomereasons present */ 613 # define IDP_REASONS 0x40 614 615 # define X509V3_conf_err(val) ERR_add_error_data(6, \ 616 "section:", (val)->section, \ 617 ",name:", (val)->name, ",value:", (val)->value) 618 619 # define X509V3_set_ctx_test(ctx) \ 620 X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, X509V3_CTX_TEST) 621 # define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; 622 623 # define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ 624 0,0,0,0, \ 625 0,0, \ 626 (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ 627 (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ 628 NULL, NULL, \ 629 table} 630 631 # define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ 632 0,0,0,0, \ 633 (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ 634 (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ 635 0,0,0,0, \ 636 NULL} 637 638 #define EXT_UTF8STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_UTF8STRING), \ 639 0,0,0,0, \ 640 (X509V3_EXT_I2S)i2s_ASN1_UTF8STRING, \ 641 (X509V3_EXT_S2I)s2i_ASN1_UTF8STRING, \ 642 0,0,0,0, \ 643 NULL} 644 645 # define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} 646 647 /* X509_PURPOSE stuff */ 648 649 # define EXFLAG_BCONS 0x1 650 # define EXFLAG_KUSAGE 0x2 651 # define EXFLAG_XKUSAGE 0x4 652 # define EXFLAG_NSCERT 0x8 653 654 # define EXFLAG_CA 0x10 655 # define EXFLAG_SI 0x20 /* self-issued, maybe not self-signed */ 656 # define EXFLAG_V1 0x40 657 # define EXFLAG_INVALID 0x80 658 /* EXFLAG_SET is set to indicate that some values have been precomputed */ 659 # define EXFLAG_SET 0x100 660 # define EXFLAG_CRITICAL 0x200 661 # define EXFLAG_PROXY 0x400 662 663 # define EXFLAG_INVALID_POLICY 0x800 664 # define EXFLAG_FRESHEST 0x1000 665 # define EXFLAG_SS 0x2000 /* cert is apparently self-signed */ 666 667 # define EXFLAG_BCONS_CRITICAL 0x10000 668 # define EXFLAG_AKID_CRITICAL 0x20000 669 # define EXFLAG_SKID_CRITICAL 0x40000 670 # define EXFLAG_SAN_CRITICAL 0x80000 671 # define EXFLAG_NO_FINGERPRINT 0x100000 672 673 /* https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.3 */ 674 # define KU_DIGITAL_SIGNATURE X509v3_KU_DIGITAL_SIGNATURE 675 # define KU_NON_REPUDIATION X509v3_KU_NON_REPUDIATION 676 # define KU_KEY_ENCIPHERMENT X509v3_KU_KEY_ENCIPHERMENT 677 # define KU_DATA_ENCIPHERMENT X509v3_KU_DATA_ENCIPHERMENT 678 # define KU_KEY_AGREEMENT X509v3_KU_KEY_AGREEMENT 679 # define KU_KEY_CERT_SIGN X509v3_KU_KEY_CERT_SIGN 680 # define KU_CRL_SIGN X509v3_KU_CRL_SIGN 681 # define KU_ENCIPHER_ONLY X509v3_KU_ENCIPHER_ONLY 682 # define KU_DECIPHER_ONLY X509v3_KU_DECIPHER_ONLY 683 684 # define NS_SSL_CLIENT 0x80 685 # define NS_SSL_SERVER 0x40 686 # define NS_SMIME 0x20 687 # define NS_OBJSIGN 0x10 688 # define NS_SSL_CA 0x04 689 # define NS_SMIME_CA 0x02 690 # define NS_OBJSIGN_CA 0x01 691 # define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) 692 693 # define XKU_SSL_SERVER 0x1 694 # define XKU_SSL_CLIENT 0x2 695 # define XKU_SMIME 0x4 696 # define XKU_CODE_SIGN 0x8 697 # define XKU_SGC 0x10 /* Netscape or MS Server-Gated Crypto */ 698 # define XKU_OCSP_SIGN 0x20 699 # define XKU_TIMESTAMP 0x40 700 # define XKU_DVCS 0x80 701 # define XKU_ANYEKU 0x100 702 703 # define X509_PURPOSE_DYNAMIC 0x1 704 # define X509_PURPOSE_DYNAMIC_NAME 0x2 705 706 typedef struct x509_purpose_st { 707 int purpose; 708 int trust; /* Default trust ID */ 709 int flags; 710 int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); 711 char *name; 712 char *sname; 713 void *usr_data; 714 } X509_PURPOSE; 715 716 SKM_DEFINE_STACK_OF_INTERNAL(X509_PURPOSE, X509_PURPOSE, X509_PURPOSE) 717 #define sk_X509_PURPOSE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_PURPOSE_sk_type(sk)) 718 #define sk_X509_PURPOSE_value(sk, idx) ((X509_PURPOSE *)OPENSSL_sk_value(ossl_check_const_X509_PURPOSE_sk_type(sk), (idx))) 719 #define sk_X509_PURPOSE_new(cmp) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new(ossl_check_X509_PURPOSE_compfunc_type(cmp))) 720 #define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_null()) 721 #define sk_X509_PURPOSE_new_reserve(cmp, n) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_new_reserve(ossl_check_X509_PURPOSE_compfunc_type(cmp), (n))) 722 #define sk_X509_PURPOSE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_PURPOSE_sk_type(sk), (n)) 723 #define sk_X509_PURPOSE_free(sk) OPENSSL_sk_free(ossl_check_X509_PURPOSE_sk_type(sk)) 724 #define sk_X509_PURPOSE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_PURPOSE_sk_type(sk)) 725 #define sk_X509_PURPOSE_delete(sk, i) ((X509_PURPOSE *)OPENSSL_sk_delete(ossl_check_X509_PURPOSE_sk_type(sk), (i))) 726 #define sk_X509_PURPOSE_delete_ptr(sk, ptr) ((X509_PURPOSE *)OPENSSL_sk_delete_ptr(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr))) 727 #define sk_X509_PURPOSE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) 728 #define sk_X509_PURPOSE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) 729 #define sk_X509_PURPOSE_pop(sk) ((X509_PURPOSE *)OPENSSL_sk_pop(ossl_check_X509_PURPOSE_sk_type(sk))) 730 #define sk_X509_PURPOSE_shift(sk) ((X509_PURPOSE *)OPENSSL_sk_shift(ossl_check_X509_PURPOSE_sk_type(sk))) 731 #define sk_X509_PURPOSE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_PURPOSE_sk_type(sk),ossl_check_X509_PURPOSE_freefunc_type(freefunc)) 732 #define sk_X509_PURPOSE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), (idx)) 733 #define sk_X509_PURPOSE_set(sk, idx, ptr) ((X509_PURPOSE *)OPENSSL_sk_set(ossl_check_X509_PURPOSE_sk_type(sk), (idx), ossl_check_X509_PURPOSE_type(ptr))) 734 #define sk_X509_PURPOSE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) 735 #define sk_X509_PURPOSE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr)) 736 #define sk_X509_PURPOSE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_type(ptr), pnum) 737 #define sk_X509_PURPOSE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_PURPOSE_sk_type(sk)) 738 #define sk_X509_PURPOSE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_PURPOSE_sk_type(sk)) 739 #define sk_X509_PURPOSE_dup(sk) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_dup(ossl_check_const_X509_PURPOSE_sk_type(sk))) 740 #define sk_X509_PURPOSE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_PURPOSE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_copyfunc_type(copyfunc), ossl_check_X509_PURPOSE_freefunc_type(freefunc))) 741 #define sk_X509_PURPOSE_set_cmp_func(sk, cmp) ((sk_X509_PURPOSE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_PURPOSE_sk_type(sk), ossl_check_X509_PURPOSE_compfunc_type(cmp))) 742 743 744 # define X509_PURPOSE_DEFAULT_ANY 0 745 # define X509_PURPOSE_SSL_CLIENT 1 746 # define X509_PURPOSE_SSL_SERVER 2 747 # define X509_PURPOSE_NS_SSL_SERVER 3 748 # define X509_PURPOSE_SMIME_SIGN 4 749 # define X509_PURPOSE_SMIME_ENCRYPT 5 750 # define X509_PURPOSE_CRL_SIGN 6 751 # define X509_PURPOSE_ANY 7 752 # define X509_PURPOSE_OCSP_HELPER 8 753 # define X509_PURPOSE_TIMESTAMP_SIGN 9 754 # define X509_PURPOSE_CODE_SIGN 10 755 756 # define X509_PURPOSE_MIN 1 757 # define X509_PURPOSE_MAX 10 758 759 /* Flags for X509V3_EXT_print() */ 760 761 # define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) 762 /* Return error for unknown extensions */ 763 # define X509V3_EXT_DEFAULT 0 764 /* Print error for unknown extensions */ 765 # define X509V3_EXT_ERROR_UNKNOWN (1L << 16) 766 /* ASN1 parse unknown extensions */ 767 # define X509V3_EXT_PARSE_UNKNOWN (2L << 16) 768 /* BIO_dump unknown extensions */ 769 # define X509V3_EXT_DUMP_UNKNOWN (3L << 16) 770 771 /* Flags for X509V3_add1_i2d */ 772 773 # define X509V3_ADD_OP_MASK 0xfL 774 # define X509V3_ADD_DEFAULT 0L 775 # define X509V3_ADD_APPEND 1L 776 # define X509V3_ADD_REPLACE 2L 777 # define X509V3_ADD_REPLACE_EXISTING 3L 778 # define X509V3_ADD_KEEP_EXISTING 4L 779 # define X509V3_ADD_DELETE 5L 780 # define X509V3_ADD_SILENT 0x10 781 782 DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) 783 DECLARE_ASN1_FUNCTIONS(OSSL_BASIC_ATTR_CONSTRAINTS) 784 785 DECLARE_ASN1_FUNCTIONS(SXNET) 786 DECLARE_ASN1_FUNCTIONS(SXNETID) 787 788 DECLARE_ASN1_FUNCTIONS(ISSUER_SIGN_TOOL) 789 790 int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); 791 int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, 792 int userlen); 793 int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, 794 int userlen); 795 796 ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); 797 ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); 798 ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); 799 800 DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) 801 802 DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) 803 804 DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) 805 DECLARE_ASN1_DUP_FUNCTION(GENERAL_NAME) 806 int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); 807 808 ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, 809 X509V3_CTX *ctx, 810 STACK_OF(CONF_VALUE) *nval); 811 STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, 812 ASN1_BIT_STRING *bits, 813 STACK_OF(CONF_VALUE) *extlist); 814 char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); 815 ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, 816 X509V3_CTX *ctx, const char *str); 817 char *i2s_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, ASN1_UTF8STRING *utf8); 818 ASN1_UTF8STRING *s2i_ASN1_UTF8STRING(X509V3_EXT_METHOD *method, 819 X509V3_CTX *ctx, const char *str); 820 821 STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, 822 GENERAL_NAME *gen, 823 STACK_OF(CONF_VALUE) *ret); 824 int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); 825 826 DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) 827 828 STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, 829 GENERAL_NAMES *gen, 830 STACK_OF(CONF_VALUE) *extlist); 831 GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, 832 X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); 833 834 DECLARE_ASN1_FUNCTIONS(OTHERNAME) 835 DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) 836 int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); 837 void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); 838 void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); 839 int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, 840 ASN1_OBJECT *oid, ASN1_TYPE *value); 841 int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, 842 ASN1_OBJECT **poid, ASN1_TYPE **pvalue); 843 844 char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, 845 const ASN1_OCTET_STRING *ia5); 846 ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, 847 X509V3_CTX *ctx, const char *str); 848 849 DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) 850 int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); 851 852 DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) 853 854 DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) 855 DECLARE_ASN1_FUNCTIONS(POLICYINFO) 856 DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) 857 DECLARE_ASN1_FUNCTIONS(USERNOTICE) 858 DECLARE_ASN1_FUNCTIONS(NOTICEREF) 859 860 DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) 861 DECLARE_ASN1_FUNCTIONS(DIST_POINT) 862 DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) 863 DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) 864 865 int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, const X509_NAME *iname); 866 867 int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); 868 int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); 869 870 DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) 871 DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) 872 873 DECLARE_ASN1_ITEM(POLICY_MAPPING) 874 DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) 875 DECLARE_ASN1_ITEM(POLICY_MAPPINGS) 876 877 DECLARE_ASN1_ITEM(GENERAL_SUBTREE) 878 DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) 879 880 DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) 881 DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) 882 883 DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) 884 DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) 885 886 GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, 887 const X509V3_EXT_METHOD *method, 888 X509V3_CTX *ctx, int gen_type, 889 const char *value, int is_nc); 890 891 # ifdef OPENSSL_CONF_H 892 GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, 893 X509V3_CTX *ctx, CONF_VALUE *cnf); 894 GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, 895 const X509V3_EXT_METHOD *method, 896 X509V3_CTX *ctx, CONF_VALUE *cnf, 897 int is_nc); 898 899 void X509V3_conf_free(CONF_VALUE *val); 900 901 X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, 902 const char *value); 903 X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, 904 const char *value); 905 int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, 906 STACK_OF(X509_EXTENSION) **sk); 907 int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, 908 X509 *cert); 909 int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, 910 X509_REQ *req); 911 int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, 912 X509_CRL *crl); 913 914 X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, 915 X509V3_CTX *ctx, int ext_nid, 916 const char *value); 917 X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, 918 const char *name, const char *value); 919 int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, 920 const char *section, X509 *cert); 921 int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, 922 const char *section, X509_REQ *req); 923 int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, 924 const char *section, X509_CRL *crl); 925 926 int X509V3_add_value_bool_nf(const char *name, int asn1_bool, 927 STACK_OF(CONF_VALUE) **extlist); 928 int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); 929 int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); 930 void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); 931 void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); 932 # endif 933 934 char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); 935 STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); 936 void X509V3_string_free(X509V3_CTX *ctx, char *str); 937 void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); 938 void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, 939 X509_REQ *req, X509_CRL *crl, int flags); 940 /* For API backward compatibility, this is separate from X509V3_set_ctx(): */ 941 int X509V3_set_issuer_pkey(X509V3_CTX *ctx, EVP_PKEY *pkey); 942 943 int X509V3_add_value(const char *name, const char *value, 944 STACK_OF(CONF_VALUE) **extlist); 945 int X509V3_add_value_uchar(const char *name, const unsigned char *value, 946 STACK_OF(CONF_VALUE) **extlist); 947 int X509V3_add_value_bool(const char *name, int asn1_bool, 948 STACK_OF(CONF_VALUE) **extlist); 949 int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, 950 STACK_OF(CONF_VALUE) **extlist); 951 char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); 952 ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); 953 char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); 954 char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, 955 const ASN1_ENUMERATED *aint); 956 int X509V3_EXT_add(X509V3_EXT_METHOD *ext); 957 int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); 958 int X509V3_EXT_add_alias(int nid_to, int nid_from); 959 void X509V3_EXT_cleanup(void); 960 961 const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); 962 const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); 963 int X509V3_add_standard_extensions(void); 964 STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); 965 void *X509V3_EXT_d2i(X509_EXTENSION *ext); 966 void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, 967 int *idx); 968 969 X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); 970 int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, 971 int crit, unsigned long flags); 972 973 #ifndef OPENSSL_NO_DEPRECATED_1_1_0 974 /* The new declarations are in crypto.h, but the old ones were here. */ 975 # define hex_to_string OPENSSL_buf2hexstr 976 # define string_to_hex OPENSSL_hexstr2buf 977 #endif 978 979 void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, 980 int ml); 981 int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, 982 int indent); 983 #ifndef OPENSSL_NO_STDIO 984 int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); 985 #endif 986 int X509V3_extensions_print(BIO *out, const char *title, 987 const STACK_OF(X509_EXTENSION) *exts, 988 unsigned long flag, int indent); 989 990 int X509_check_ca(X509 *x); 991 int X509_check_purpose(X509 *x, int id, int ca); 992 int X509_supported_extension(X509_EXTENSION *ex); 993 int X509_check_issued(X509 *issuer, X509 *subject); 994 int X509_check_akid(const X509 *issuer, const AUTHORITY_KEYID *akid); 995 void X509_set_proxy_flag(X509 *x); 996 void X509_set_proxy_pathlen(X509 *x, long l); 997 long X509_get_proxy_pathlen(X509 *x); 998 999 uint32_t X509_get_extension_flags(X509 *x); 1000 uint32_t X509_get_key_usage(X509 *x); 1001 uint32_t X509_get_extended_key_usage(X509 *x); 1002 const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); 1003 const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); 1004 const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); 1005 const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); 1006 1007 int X509_PURPOSE_get_count(void); 1008 int X509_PURPOSE_get_unused_id(OSSL_LIB_CTX *libctx); 1009 int X509_PURPOSE_get_by_sname(const char *sname); 1010 int X509_PURPOSE_get_by_id(int id); 1011 int X509_PURPOSE_add(int id, int trust, int flags, 1012 int (*ck) (const X509_PURPOSE *, const X509 *, int), 1013 const char *name, const char *sname, void *arg); 1014 void X509_PURPOSE_cleanup(void); 1015 1016 X509_PURPOSE *X509_PURPOSE_get0(int idx); 1017 int X509_PURPOSE_get_id(const X509_PURPOSE *); 1018 char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); 1019 char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); 1020 int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); 1021 int X509_PURPOSE_set(int *p, int purpose); 1022 1023 STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); 1024 STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); 1025 void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); 1026 STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); 1027 1028 /* Flags for X509_check_* functions */ 1029 1030 /* 1031 * Always check subject name for host match even if subject alt names present 1032 */ 1033 # define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 1034 /* Disable wildcard matching for dnsName fields and common name. */ 1035 # define X509_CHECK_FLAG_NO_WILDCARDS 0x2 1036 /* Wildcards must not match a partial label. */ 1037 # define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 1038 /* Allow (non-partial) wildcards to match multiple labels. */ 1039 # define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 1040 /* Constraint verifier subdomain patterns to match a single labels. */ 1041 # define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 1042 /* Never check the subject CN */ 1043 # define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 1044 /* 1045 * Match reference identifiers starting with "." to any sub-domain. 1046 * This is a non-public flag, turned on implicitly when the subject 1047 * reference identity is a DNS name. 1048 */ 1049 # define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 1050 1051 int X509_check_host(X509 *x, const char *chk, size_t chklen, 1052 unsigned int flags, char **peername); 1053 int X509_check_email(X509 *x, const char *chk, size_t chklen, 1054 unsigned int flags); 1055 int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, 1056 unsigned int flags); 1057 int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); 1058 1059 ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); 1060 ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); 1061 int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, 1062 unsigned long chtype); 1063 1064 void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); 1065 SKM_DEFINE_STACK_OF_INTERNAL(X509_POLICY_NODE, X509_POLICY_NODE, X509_POLICY_NODE) 1066 #define sk_X509_POLICY_NODE_num(sk) OPENSSL_sk_num(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) 1067 #define sk_X509_POLICY_NODE_value(sk, idx) ((X509_POLICY_NODE *)OPENSSL_sk_value(ossl_check_const_X509_POLICY_NODE_sk_type(sk), (idx))) 1068 #define sk_X509_POLICY_NODE_new(cmp) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new(ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) 1069 #define sk_X509_POLICY_NODE_new_null() ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_null()) 1070 #define sk_X509_POLICY_NODE_new_reserve(cmp, n) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_new_reserve(ossl_check_X509_POLICY_NODE_compfunc_type(cmp), (n))) 1071 #define sk_X509_POLICY_NODE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_X509_POLICY_NODE_sk_type(sk), (n)) 1072 #define sk_X509_POLICY_NODE_free(sk) OPENSSL_sk_free(ossl_check_X509_POLICY_NODE_sk_type(sk)) 1073 #define sk_X509_POLICY_NODE_zero(sk) OPENSSL_sk_zero(ossl_check_X509_POLICY_NODE_sk_type(sk)) 1074 #define sk_X509_POLICY_NODE_delete(sk, i) ((X509_POLICY_NODE *)OPENSSL_sk_delete(ossl_check_X509_POLICY_NODE_sk_type(sk), (i))) 1075 #define sk_X509_POLICY_NODE_delete_ptr(sk, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_delete_ptr(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr))) 1076 #define sk_X509_POLICY_NODE_push(sk, ptr) OPENSSL_sk_push(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) 1077 #define sk_X509_POLICY_NODE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) 1078 #define sk_X509_POLICY_NODE_pop(sk) ((X509_POLICY_NODE *)OPENSSL_sk_pop(ossl_check_X509_POLICY_NODE_sk_type(sk))) 1079 #define sk_X509_POLICY_NODE_shift(sk) ((X509_POLICY_NODE *)OPENSSL_sk_shift(ossl_check_X509_POLICY_NODE_sk_type(sk))) 1080 #define sk_X509_POLICY_NODE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_X509_POLICY_NODE_sk_type(sk),ossl_check_X509_POLICY_NODE_freefunc_type(freefunc)) 1081 #define sk_X509_POLICY_NODE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), (idx)) 1082 #define sk_X509_POLICY_NODE_set(sk, idx, ptr) ((X509_POLICY_NODE *)OPENSSL_sk_set(ossl_check_X509_POLICY_NODE_sk_type(sk), (idx), ossl_check_X509_POLICY_NODE_type(ptr))) 1083 #define sk_X509_POLICY_NODE_find(sk, ptr) OPENSSL_sk_find(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) 1084 #define sk_X509_POLICY_NODE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr)) 1085 #define sk_X509_POLICY_NODE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_type(ptr), pnum) 1086 #define sk_X509_POLICY_NODE_sort(sk) OPENSSL_sk_sort(ossl_check_X509_POLICY_NODE_sk_type(sk)) 1087 #define sk_X509_POLICY_NODE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_X509_POLICY_NODE_sk_type(sk)) 1088 #define sk_X509_POLICY_NODE_dup(sk) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_dup(ossl_check_const_X509_POLICY_NODE_sk_type(sk))) 1089 #define sk_X509_POLICY_NODE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(X509_POLICY_NODE) *)OPENSSL_sk_deep_copy(ossl_check_const_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_copyfunc_type(copyfunc), ossl_check_X509_POLICY_NODE_freefunc_type(freefunc))) 1090 #define sk_X509_POLICY_NODE_set_cmp_func(sk, cmp) ((sk_X509_POLICY_NODE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_X509_POLICY_NODE_sk_type(sk), ossl_check_X509_POLICY_NODE_compfunc_type(cmp))) 1091 1092 1093 1094 #ifndef OPENSSL_NO_RFC3779 1095 typedef struct ASRange_st { 1096 ASN1_INTEGER *min, *max; 1097 } ASRange; 1098 1099 # define ASIdOrRange_id 0 1100 # define ASIdOrRange_range 1 1101 1102 typedef struct ASIdOrRange_st { 1103 int type; 1104 union { 1105 ASN1_INTEGER *id; 1106 ASRange *range; 1107 } u; 1108 } ASIdOrRange; 1109 1110 SKM_DEFINE_STACK_OF_INTERNAL(ASIdOrRange, ASIdOrRange, ASIdOrRange) 1111 #define sk_ASIdOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_ASIdOrRange_sk_type(sk)) 1112 #define sk_ASIdOrRange_value(sk, idx) ((ASIdOrRange *)OPENSSL_sk_value(ossl_check_const_ASIdOrRange_sk_type(sk), (idx))) 1113 #define sk_ASIdOrRange_new(cmp) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new(ossl_check_ASIdOrRange_compfunc_type(cmp))) 1114 #define sk_ASIdOrRange_new_null() ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_null()) 1115 #define sk_ASIdOrRange_new_reserve(cmp, n) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_new_reserve(ossl_check_ASIdOrRange_compfunc_type(cmp), (n))) 1116 #define sk_ASIdOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASIdOrRange_sk_type(sk), (n)) 1117 #define sk_ASIdOrRange_free(sk) OPENSSL_sk_free(ossl_check_ASIdOrRange_sk_type(sk)) 1118 #define sk_ASIdOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_ASIdOrRange_sk_type(sk)) 1119 #define sk_ASIdOrRange_delete(sk, i) ((ASIdOrRange *)OPENSSL_sk_delete(ossl_check_ASIdOrRange_sk_type(sk), (i))) 1120 #define sk_ASIdOrRange_delete_ptr(sk, ptr) ((ASIdOrRange *)OPENSSL_sk_delete_ptr(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr))) 1121 #define sk_ASIdOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) 1122 #define sk_ASIdOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) 1123 #define sk_ASIdOrRange_pop(sk) ((ASIdOrRange *)OPENSSL_sk_pop(ossl_check_ASIdOrRange_sk_type(sk))) 1124 #define sk_ASIdOrRange_shift(sk) ((ASIdOrRange *)OPENSSL_sk_shift(ossl_check_ASIdOrRange_sk_type(sk))) 1125 #define sk_ASIdOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASIdOrRange_sk_type(sk),ossl_check_ASIdOrRange_freefunc_type(freefunc)) 1126 #define sk_ASIdOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), (idx)) 1127 #define sk_ASIdOrRange_set(sk, idx, ptr) ((ASIdOrRange *)OPENSSL_sk_set(ossl_check_ASIdOrRange_sk_type(sk), (idx), ossl_check_ASIdOrRange_type(ptr))) 1128 #define sk_ASIdOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) 1129 #define sk_ASIdOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr)) 1130 #define sk_ASIdOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_type(ptr), pnum) 1131 #define sk_ASIdOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_ASIdOrRange_sk_type(sk)) 1132 #define sk_ASIdOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASIdOrRange_sk_type(sk)) 1133 #define sk_ASIdOrRange_dup(sk) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_dup(ossl_check_const_ASIdOrRange_sk_type(sk))) 1134 #define sk_ASIdOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASIdOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_copyfunc_type(copyfunc), ossl_check_ASIdOrRange_freefunc_type(freefunc))) 1135 #define sk_ASIdOrRange_set_cmp_func(sk, cmp) ((sk_ASIdOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASIdOrRange_sk_type(sk), ossl_check_ASIdOrRange_compfunc_type(cmp))) 1136 1137 1138 typedef STACK_OF(ASIdOrRange) ASIdOrRanges; 1139 1140 # define ASIdentifierChoice_inherit 0 1141 # define ASIdentifierChoice_asIdsOrRanges 1 1142 1143 typedef struct ASIdentifierChoice_st { 1144 int type; 1145 union { 1146 ASN1_NULL *inherit; 1147 ASIdOrRanges *asIdsOrRanges; 1148 } u; 1149 } ASIdentifierChoice; 1150 1151 typedef struct ASIdentifiers_st { 1152 ASIdentifierChoice *asnum, *rdi; 1153 } ASIdentifiers; 1154 1155 DECLARE_ASN1_FUNCTIONS(ASRange) 1156 DECLARE_ASN1_FUNCTIONS(ASIdOrRange) 1157 DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) 1158 DECLARE_ASN1_FUNCTIONS(ASIdentifiers) 1159 1160 typedef struct IPAddressRange_st { 1161 ASN1_BIT_STRING *min, *max; 1162 } IPAddressRange; 1163 1164 # define IPAddressOrRange_addressPrefix 0 1165 # define IPAddressOrRange_addressRange 1 1166 1167 typedef struct IPAddressOrRange_st { 1168 int type; 1169 union { 1170 ASN1_BIT_STRING *addressPrefix; 1171 IPAddressRange *addressRange; 1172 } u; 1173 } IPAddressOrRange; 1174 1175 SKM_DEFINE_STACK_OF_INTERNAL(IPAddressOrRange, IPAddressOrRange, IPAddressOrRange) 1176 #define sk_IPAddressOrRange_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressOrRange_sk_type(sk)) 1177 #define sk_IPAddressOrRange_value(sk, idx) ((IPAddressOrRange *)OPENSSL_sk_value(ossl_check_const_IPAddressOrRange_sk_type(sk), (idx))) 1178 #define sk_IPAddressOrRange_new(cmp) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new(ossl_check_IPAddressOrRange_compfunc_type(cmp))) 1179 #define sk_IPAddressOrRange_new_null() ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_null()) 1180 #define sk_IPAddressOrRange_new_reserve(cmp, n) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressOrRange_compfunc_type(cmp), (n))) 1181 #define sk_IPAddressOrRange_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressOrRange_sk_type(sk), (n)) 1182 #define sk_IPAddressOrRange_free(sk) OPENSSL_sk_free(ossl_check_IPAddressOrRange_sk_type(sk)) 1183 #define sk_IPAddressOrRange_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressOrRange_sk_type(sk)) 1184 #define sk_IPAddressOrRange_delete(sk, i) ((IPAddressOrRange *)OPENSSL_sk_delete(ossl_check_IPAddressOrRange_sk_type(sk), (i))) 1185 #define sk_IPAddressOrRange_delete_ptr(sk, ptr) ((IPAddressOrRange *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr))) 1186 #define sk_IPAddressOrRange_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) 1187 #define sk_IPAddressOrRange_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) 1188 #define sk_IPAddressOrRange_pop(sk) ((IPAddressOrRange *)OPENSSL_sk_pop(ossl_check_IPAddressOrRange_sk_type(sk))) 1189 #define sk_IPAddressOrRange_shift(sk) ((IPAddressOrRange *)OPENSSL_sk_shift(ossl_check_IPAddressOrRange_sk_type(sk))) 1190 #define sk_IPAddressOrRange_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressOrRange_sk_type(sk),ossl_check_IPAddressOrRange_freefunc_type(freefunc)) 1191 #define sk_IPAddressOrRange_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), (idx)) 1192 #define sk_IPAddressOrRange_set(sk, idx, ptr) ((IPAddressOrRange *)OPENSSL_sk_set(ossl_check_IPAddressOrRange_sk_type(sk), (idx), ossl_check_IPAddressOrRange_type(ptr))) 1193 #define sk_IPAddressOrRange_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) 1194 #define sk_IPAddressOrRange_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr)) 1195 #define sk_IPAddressOrRange_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_type(ptr), pnum) 1196 #define sk_IPAddressOrRange_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressOrRange_sk_type(sk)) 1197 #define sk_IPAddressOrRange_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressOrRange_sk_type(sk)) 1198 #define sk_IPAddressOrRange_dup(sk) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_dup(ossl_check_const_IPAddressOrRange_sk_type(sk))) 1199 #define sk_IPAddressOrRange_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressOrRange) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_copyfunc_type(copyfunc), ossl_check_IPAddressOrRange_freefunc_type(freefunc))) 1200 #define sk_IPAddressOrRange_set_cmp_func(sk, cmp) ((sk_IPAddressOrRange_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressOrRange_sk_type(sk), ossl_check_IPAddressOrRange_compfunc_type(cmp))) 1201 1202 1203 typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; 1204 1205 # define IPAddressChoice_inherit 0 1206 # define IPAddressChoice_addressesOrRanges 1 1207 1208 typedef struct IPAddressChoice_st { 1209 int type; 1210 union { 1211 ASN1_NULL *inherit; 1212 IPAddressOrRanges *addressesOrRanges; 1213 } u; 1214 } IPAddressChoice; 1215 1216 typedef struct IPAddressFamily_st { 1217 ASN1_OCTET_STRING *addressFamily; 1218 IPAddressChoice *ipAddressChoice; 1219 } IPAddressFamily; 1220 1221 SKM_DEFINE_STACK_OF_INTERNAL(IPAddressFamily, IPAddressFamily, IPAddressFamily) 1222 #define sk_IPAddressFamily_num(sk) OPENSSL_sk_num(ossl_check_const_IPAddressFamily_sk_type(sk)) 1223 #define sk_IPAddressFamily_value(sk, idx) ((IPAddressFamily *)OPENSSL_sk_value(ossl_check_const_IPAddressFamily_sk_type(sk), (idx))) 1224 #define sk_IPAddressFamily_new(cmp) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new(ossl_check_IPAddressFamily_compfunc_type(cmp))) 1225 #define sk_IPAddressFamily_new_null() ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_null()) 1226 #define sk_IPAddressFamily_new_reserve(cmp, n) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_new_reserve(ossl_check_IPAddressFamily_compfunc_type(cmp), (n))) 1227 #define sk_IPAddressFamily_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_IPAddressFamily_sk_type(sk), (n)) 1228 #define sk_IPAddressFamily_free(sk) OPENSSL_sk_free(ossl_check_IPAddressFamily_sk_type(sk)) 1229 #define sk_IPAddressFamily_zero(sk) OPENSSL_sk_zero(ossl_check_IPAddressFamily_sk_type(sk)) 1230 #define sk_IPAddressFamily_delete(sk, i) ((IPAddressFamily *)OPENSSL_sk_delete(ossl_check_IPAddressFamily_sk_type(sk), (i))) 1231 #define sk_IPAddressFamily_delete_ptr(sk, ptr) ((IPAddressFamily *)OPENSSL_sk_delete_ptr(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr))) 1232 #define sk_IPAddressFamily_push(sk, ptr) OPENSSL_sk_push(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) 1233 #define sk_IPAddressFamily_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) 1234 #define sk_IPAddressFamily_pop(sk) ((IPAddressFamily *)OPENSSL_sk_pop(ossl_check_IPAddressFamily_sk_type(sk))) 1235 #define sk_IPAddressFamily_shift(sk) ((IPAddressFamily *)OPENSSL_sk_shift(ossl_check_IPAddressFamily_sk_type(sk))) 1236 #define sk_IPAddressFamily_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_IPAddressFamily_sk_type(sk),ossl_check_IPAddressFamily_freefunc_type(freefunc)) 1237 #define sk_IPAddressFamily_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), (idx)) 1238 #define sk_IPAddressFamily_set(sk, idx, ptr) ((IPAddressFamily *)OPENSSL_sk_set(ossl_check_IPAddressFamily_sk_type(sk), (idx), ossl_check_IPAddressFamily_type(ptr))) 1239 #define sk_IPAddressFamily_find(sk, ptr) OPENSSL_sk_find(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) 1240 #define sk_IPAddressFamily_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr)) 1241 #define sk_IPAddressFamily_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_type(ptr), pnum) 1242 #define sk_IPAddressFamily_sort(sk) OPENSSL_sk_sort(ossl_check_IPAddressFamily_sk_type(sk)) 1243 #define sk_IPAddressFamily_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_IPAddressFamily_sk_type(sk)) 1244 #define sk_IPAddressFamily_dup(sk) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_dup(ossl_check_const_IPAddressFamily_sk_type(sk))) 1245 #define sk_IPAddressFamily_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(IPAddressFamily) *)OPENSSL_sk_deep_copy(ossl_check_const_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_copyfunc_type(copyfunc), ossl_check_IPAddressFamily_freefunc_type(freefunc))) 1246 #define sk_IPAddressFamily_set_cmp_func(sk, cmp) ((sk_IPAddressFamily_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_IPAddressFamily_sk_type(sk), ossl_check_IPAddressFamily_compfunc_type(cmp))) 1247 1248 1249 1250 typedef STACK_OF(IPAddressFamily) IPAddrBlocks; 1251 1252 DECLARE_ASN1_FUNCTIONS(IPAddressRange) 1253 DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) 1254 DECLARE_ASN1_FUNCTIONS(IPAddressChoice) 1255 DECLARE_ASN1_FUNCTIONS(IPAddressFamily) 1256 1257 /* 1258 * API tag for elements of the ASIdentifer SEQUENCE. 1259 */ 1260 # define V3_ASID_ASNUM 0 1261 # define V3_ASID_RDI 1 1262 1263 /* 1264 * AFI values, assigned by IANA. It'd be nice to make the AFI 1265 * handling code totally generic, but there are too many little things 1266 * that would need to be defined for other address families for it to 1267 * be worth the trouble. 1268 */ 1269 # define IANA_AFI_IPV4 1 1270 # define IANA_AFI_IPV6 2 1271 1272 /* 1273 * Utilities to construct and extract values from RFC3779 extensions, 1274 * since some of the encodings (particularly for IP address prefixes 1275 * and ranges) are a bit tedious to work with directly. 1276 */ 1277 int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); 1278 int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, 1279 ASN1_INTEGER *min, ASN1_INTEGER *max); 1280 int X509v3_addr_add_inherit(IPAddrBlocks *addr, 1281 const unsigned afi, const unsigned *safi); 1282 int X509v3_addr_add_prefix(IPAddrBlocks *addr, 1283 const unsigned afi, const unsigned *safi, 1284 unsigned char *a, const int prefixlen); 1285 int X509v3_addr_add_range(IPAddrBlocks *addr, 1286 const unsigned afi, const unsigned *safi, 1287 unsigned char *min, unsigned char *max); 1288 unsigned X509v3_addr_get_afi(const IPAddressFamily *f); 1289 int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, 1290 unsigned char *min, unsigned char *max, 1291 const int length); 1292 1293 /* 1294 * Canonical forms. 1295 */ 1296 int X509v3_asid_is_canonical(ASIdentifiers *asid); 1297 int X509v3_addr_is_canonical(IPAddrBlocks *addr); 1298 int X509v3_asid_canonize(ASIdentifiers *asid); 1299 int X509v3_addr_canonize(IPAddrBlocks *addr); 1300 1301 /* 1302 * Tests for inheritance and containment. 1303 */ 1304 int X509v3_asid_inherits(ASIdentifiers *asid); 1305 int X509v3_addr_inherits(IPAddrBlocks *addr); 1306 int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); 1307 int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); 1308 1309 /* 1310 * Check whether RFC 3779 extensions nest properly in chains. 1311 */ 1312 int X509v3_asid_validate_path(X509_STORE_CTX *); 1313 int X509v3_addr_validate_path(X509_STORE_CTX *); 1314 int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, 1315 ASIdentifiers *ext, 1316 int allow_inheritance); 1317 int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, 1318 IPAddrBlocks *ext, int allow_inheritance); 1319 1320 #endif /* OPENSSL_NO_RFC3779 */ 1321 1322 SKM_DEFINE_STACK_OF_INTERNAL(ASN1_STRING, ASN1_STRING, ASN1_STRING) 1323 #define sk_ASN1_STRING_num(sk) OPENSSL_sk_num(ossl_check_const_ASN1_STRING_sk_type(sk)) 1324 #define sk_ASN1_STRING_value(sk, idx) ((ASN1_STRING *)OPENSSL_sk_value(ossl_check_const_ASN1_STRING_sk_type(sk), (idx))) 1325 #define sk_ASN1_STRING_new(cmp) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new(ossl_check_ASN1_STRING_compfunc_type(cmp))) 1326 #define sk_ASN1_STRING_new_null() ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_null()) 1327 #define sk_ASN1_STRING_new_reserve(cmp, n) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_new_reserve(ossl_check_ASN1_STRING_compfunc_type(cmp), (n))) 1328 #define sk_ASN1_STRING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ASN1_STRING_sk_type(sk), (n)) 1329 #define sk_ASN1_STRING_free(sk) OPENSSL_sk_free(ossl_check_ASN1_STRING_sk_type(sk)) 1330 #define sk_ASN1_STRING_zero(sk) OPENSSL_sk_zero(ossl_check_ASN1_STRING_sk_type(sk)) 1331 #define sk_ASN1_STRING_delete(sk, i) ((ASN1_STRING *)OPENSSL_sk_delete(ossl_check_ASN1_STRING_sk_type(sk), (i))) 1332 #define sk_ASN1_STRING_delete_ptr(sk, ptr) ((ASN1_STRING *)OPENSSL_sk_delete_ptr(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr))) 1333 #define sk_ASN1_STRING_push(sk, ptr) OPENSSL_sk_push(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) 1334 #define sk_ASN1_STRING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) 1335 #define sk_ASN1_STRING_pop(sk) ((ASN1_STRING *)OPENSSL_sk_pop(ossl_check_ASN1_STRING_sk_type(sk))) 1336 #define sk_ASN1_STRING_shift(sk) ((ASN1_STRING *)OPENSSL_sk_shift(ossl_check_ASN1_STRING_sk_type(sk))) 1337 #define sk_ASN1_STRING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ASN1_STRING_sk_type(sk),ossl_check_ASN1_STRING_freefunc_type(freefunc)) 1338 #define sk_ASN1_STRING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), (idx)) 1339 #define sk_ASN1_STRING_set(sk, idx, ptr) ((ASN1_STRING *)OPENSSL_sk_set(ossl_check_ASN1_STRING_sk_type(sk), (idx), ossl_check_ASN1_STRING_type(ptr))) 1340 #define sk_ASN1_STRING_find(sk, ptr) OPENSSL_sk_find(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) 1341 #define sk_ASN1_STRING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr)) 1342 #define sk_ASN1_STRING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_type(ptr), pnum) 1343 #define sk_ASN1_STRING_sort(sk) OPENSSL_sk_sort(ossl_check_ASN1_STRING_sk_type(sk)) 1344 #define sk_ASN1_STRING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ASN1_STRING_sk_type(sk)) 1345 #define sk_ASN1_STRING_dup(sk) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_dup(ossl_check_const_ASN1_STRING_sk_type(sk))) 1346 #define sk_ASN1_STRING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ASN1_STRING) *)OPENSSL_sk_deep_copy(ossl_check_const_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_copyfunc_type(copyfunc), ossl_check_ASN1_STRING_freefunc_type(freefunc))) 1347 #define sk_ASN1_STRING_set_cmp_func(sk, cmp) ((sk_ASN1_STRING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ASN1_STRING_sk_type(sk), ossl_check_ASN1_STRING_compfunc_type(cmp))) 1348 1349 1350 /* 1351 * Admission Syntax 1352 */ 1353 typedef struct NamingAuthority_st NAMING_AUTHORITY; 1354 typedef struct ProfessionInfo_st PROFESSION_INFO; 1355 typedef struct Admissions_st ADMISSIONS; 1356 typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; 1357 DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) 1358 DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) 1359 DECLARE_ASN1_FUNCTIONS(ADMISSIONS) 1360 DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) 1361 SKM_DEFINE_STACK_OF_INTERNAL(PROFESSION_INFO, PROFESSION_INFO, PROFESSION_INFO) 1362 #define sk_PROFESSION_INFO_num(sk) OPENSSL_sk_num(ossl_check_const_PROFESSION_INFO_sk_type(sk)) 1363 #define sk_PROFESSION_INFO_value(sk, idx) ((PROFESSION_INFO *)OPENSSL_sk_value(ossl_check_const_PROFESSION_INFO_sk_type(sk), (idx))) 1364 #define sk_PROFESSION_INFO_new(cmp) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new(ossl_check_PROFESSION_INFO_compfunc_type(cmp))) 1365 #define sk_PROFESSION_INFO_new_null() ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_null()) 1366 #define sk_PROFESSION_INFO_new_reserve(cmp, n) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_new_reserve(ossl_check_PROFESSION_INFO_compfunc_type(cmp), (n))) 1367 #define sk_PROFESSION_INFO_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_PROFESSION_INFO_sk_type(sk), (n)) 1368 #define sk_PROFESSION_INFO_free(sk) OPENSSL_sk_free(ossl_check_PROFESSION_INFO_sk_type(sk)) 1369 #define sk_PROFESSION_INFO_zero(sk) OPENSSL_sk_zero(ossl_check_PROFESSION_INFO_sk_type(sk)) 1370 #define sk_PROFESSION_INFO_delete(sk, i) ((PROFESSION_INFO *)OPENSSL_sk_delete(ossl_check_PROFESSION_INFO_sk_type(sk), (i))) 1371 #define sk_PROFESSION_INFO_delete_ptr(sk, ptr) ((PROFESSION_INFO *)OPENSSL_sk_delete_ptr(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr))) 1372 #define sk_PROFESSION_INFO_push(sk, ptr) OPENSSL_sk_push(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) 1373 #define sk_PROFESSION_INFO_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) 1374 #define sk_PROFESSION_INFO_pop(sk) ((PROFESSION_INFO *)OPENSSL_sk_pop(ossl_check_PROFESSION_INFO_sk_type(sk))) 1375 #define sk_PROFESSION_INFO_shift(sk) ((PROFESSION_INFO *)OPENSSL_sk_shift(ossl_check_PROFESSION_INFO_sk_type(sk))) 1376 #define sk_PROFESSION_INFO_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_PROFESSION_INFO_sk_type(sk),ossl_check_PROFESSION_INFO_freefunc_type(freefunc)) 1377 #define sk_PROFESSION_INFO_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), (idx)) 1378 #define sk_PROFESSION_INFO_set(sk, idx, ptr) ((PROFESSION_INFO *)OPENSSL_sk_set(ossl_check_PROFESSION_INFO_sk_type(sk), (idx), ossl_check_PROFESSION_INFO_type(ptr))) 1379 #define sk_PROFESSION_INFO_find(sk, ptr) OPENSSL_sk_find(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) 1380 #define sk_PROFESSION_INFO_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr)) 1381 #define sk_PROFESSION_INFO_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_type(ptr), pnum) 1382 #define sk_PROFESSION_INFO_sort(sk) OPENSSL_sk_sort(ossl_check_PROFESSION_INFO_sk_type(sk)) 1383 #define sk_PROFESSION_INFO_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_PROFESSION_INFO_sk_type(sk)) 1384 #define sk_PROFESSION_INFO_dup(sk) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_dup(ossl_check_const_PROFESSION_INFO_sk_type(sk))) 1385 #define sk_PROFESSION_INFO_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(PROFESSION_INFO) *)OPENSSL_sk_deep_copy(ossl_check_const_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_copyfunc_type(copyfunc), ossl_check_PROFESSION_INFO_freefunc_type(freefunc))) 1386 #define sk_PROFESSION_INFO_set_cmp_func(sk, cmp) ((sk_PROFESSION_INFO_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_PROFESSION_INFO_sk_type(sk), ossl_check_PROFESSION_INFO_compfunc_type(cmp))) 1387 SKM_DEFINE_STACK_OF_INTERNAL(ADMISSIONS, ADMISSIONS, ADMISSIONS) 1388 #define sk_ADMISSIONS_num(sk) OPENSSL_sk_num(ossl_check_const_ADMISSIONS_sk_type(sk)) 1389 #define sk_ADMISSIONS_value(sk, idx) ((ADMISSIONS *)OPENSSL_sk_value(ossl_check_const_ADMISSIONS_sk_type(sk), (idx))) 1390 #define sk_ADMISSIONS_new(cmp) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new(ossl_check_ADMISSIONS_compfunc_type(cmp))) 1391 #define sk_ADMISSIONS_new_null() ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_null()) 1392 #define sk_ADMISSIONS_new_reserve(cmp, n) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_new_reserve(ossl_check_ADMISSIONS_compfunc_type(cmp), (n))) 1393 #define sk_ADMISSIONS_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_ADMISSIONS_sk_type(sk), (n)) 1394 #define sk_ADMISSIONS_free(sk) OPENSSL_sk_free(ossl_check_ADMISSIONS_sk_type(sk)) 1395 #define sk_ADMISSIONS_zero(sk) OPENSSL_sk_zero(ossl_check_ADMISSIONS_sk_type(sk)) 1396 #define sk_ADMISSIONS_delete(sk, i) ((ADMISSIONS *)OPENSSL_sk_delete(ossl_check_ADMISSIONS_sk_type(sk), (i))) 1397 #define sk_ADMISSIONS_delete_ptr(sk, ptr) ((ADMISSIONS *)OPENSSL_sk_delete_ptr(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr))) 1398 #define sk_ADMISSIONS_push(sk, ptr) OPENSSL_sk_push(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) 1399 #define sk_ADMISSIONS_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) 1400 #define sk_ADMISSIONS_pop(sk) ((ADMISSIONS *)OPENSSL_sk_pop(ossl_check_ADMISSIONS_sk_type(sk))) 1401 #define sk_ADMISSIONS_shift(sk) ((ADMISSIONS *)OPENSSL_sk_shift(ossl_check_ADMISSIONS_sk_type(sk))) 1402 #define sk_ADMISSIONS_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_ADMISSIONS_sk_type(sk),ossl_check_ADMISSIONS_freefunc_type(freefunc)) 1403 #define sk_ADMISSIONS_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), (idx)) 1404 #define sk_ADMISSIONS_set(sk, idx, ptr) ((ADMISSIONS *)OPENSSL_sk_set(ossl_check_ADMISSIONS_sk_type(sk), (idx), ossl_check_ADMISSIONS_type(ptr))) 1405 #define sk_ADMISSIONS_find(sk, ptr) OPENSSL_sk_find(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) 1406 #define sk_ADMISSIONS_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr)) 1407 #define sk_ADMISSIONS_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_type(ptr), pnum) 1408 #define sk_ADMISSIONS_sort(sk) OPENSSL_sk_sort(ossl_check_ADMISSIONS_sk_type(sk)) 1409 #define sk_ADMISSIONS_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_ADMISSIONS_sk_type(sk)) 1410 #define sk_ADMISSIONS_dup(sk) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_dup(ossl_check_const_ADMISSIONS_sk_type(sk))) 1411 #define sk_ADMISSIONS_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(ADMISSIONS) *)OPENSSL_sk_deep_copy(ossl_check_const_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_copyfunc_type(copyfunc), ossl_check_ADMISSIONS_freefunc_type(freefunc))) 1412 #define sk_ADMISSIONS_set_cmp_func(sk, cmp) ((sk_ADMISSIONS_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_ADMISSIONS_sk_type(sk), ossl_check_ADMISSIONS_compfunc_type(cmp))) 1413 1414 typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; 1415 1416 const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( 1417 const NAMING_AUTHORITY *n); 1418 const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( 1419 const NAMING_AUTHORITY *n); 1420 const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( 1421 const NAMING_AUTHORITY *n); 1422 void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, 1423 ASN1_OBJECT* namingAuthorityId); 1424 void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, 1425 ASN1_IA5STRING* namingAuthorityUrl); 1426 void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, 1427 ASN1_STRING* namingAuthorityText); 1428 1429 const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( 1430 const ADMISSION_SYNTAX *as); 1431 void ADMISSION_SYNTAX_set0_admissionAuthority( 1432 ADMISSION_SYNTAX *as, GENERAL_NAME *aa); 1433 const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( 1434 const ADMISSION_SYNTAX *as); 1435 void ADMISSION_SYNTAX_set0_contentsOfAdmissions( 1436 ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); 1437 const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); 1438 void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); 1439 const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); 1440 void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); 1441 const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); 1442 void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); 1443 const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( 1444 const PROFESSION_INFO *pi); 1445 void PROFESSION_INFO_set0_addProfessionInfo( 1446 PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); 1447 const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( 1448 const PROFESSION_INFO *pi); 1449 void PROFESSION_INFO_set0_namingAuthority( 1450 PROFESSION_INFO *pi, NAMING_AUTHORITY *na); 1451 const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( 1452 const PROFESSION_INFO *pi); 1453 void PROFESSION_INFO_set0_professionItems( 1454 PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); 1455 const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( 1456 const PROFESSION_INFO *pi); 1457 void PROFESSION_INFO_set0_professionOIDs( 1458 PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); 1459 const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( 1460 const PROFESSION_INFO *pi); 1461 void PROFESSION_INFO_set0_registrationNumber( 1462 PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); 1463 1464 int OSSL_GENERAL_NAMES_print(BIO *out, GENERAL_NAMES *gens, int indent); 1465 1466 typedef STACK_OF(X509_ATTRIBUTE) OSSL_ATTRIBUTES_SYNTAX; 1467 DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTES_SYNTAX) 1468 1469 typedef STACK_OF(USERNOTICE) OSSL_USER_NOTICE_SYNTAX; 1470 DECLARE_ASN1_FUNCTIONS(OSSL_USER_NOTICE_SYNTAX) 1471 1472 SKM_DEFINE_STACK_OF_INTERNAL(USERNOTICE, USERNOTICE, USERNOTICE) 1473 #define sk_USERNOTICE_num(sk) OPENSSL_sk_num(ossl_check_const_USERNOTICE_sk_type(sk)) 1474 #define sk_USERNOTICE_value(sk, idx) ((USERNOTICE *)OPENSSL_sk_value(ossl_check_const_USERNOTICE_sk_type(sk), (idx))) 1475 #define sk_USERNOTICE_new(cmp) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new(ossl_check_USERNOTICE_compfunc_type(cmp))) 1476 #define sk_USERNOTICE_new_null() ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_null()) 1477 #define sk_USERNOTICE_new_reserve(cmp, n) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_new_reserve(ossl_check_USERNOTICE_compfunc_type(cmp), (n))) 1478 #define sk_USERNOTICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_USERNOTICE_sk_type(sk), (n)) 1479 #define sk_USERNOTICE_free(sk) OPENSSL_sk_free(ossl_check_USERNOTICE_sk_type(sk)) 1480 #define sk_USERNOTICE_zero(sk) OPENSSL_sk_zero(ossl_check_USERNOTICE_sk_type(sk)) 1481 #define sk_USERNOTICE_delete(sk, i) ((USERNOTICE *)OPENSSL_sk_delete(ossl_check_USERNOTICE_sk_type(sk), (i))) 1482 #define sk_USERNOTICE_delete_ptr(sk, ptr) ((USERNOTICE *)OPENSSL_sk_delete_ptr(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr))) 1483 #define sk_USERNOTICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) 1484 #define sk_USERNOTICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) 1485 #define sk_USERNOTICE_pop(sk) ((USERNOTICE *)OPENSSL_sk_pop(ossl_check_USERNOTICE_sk_type(sk))) 1486 #define sk_USERNOTICE_shift(sk) ((USERNOTICE *)OPENSSL_sk_shift(ossl_check_USERNOTICE_sk_type(sk))) 1487 #define sk_USERNOTICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_USERNOTICE_sk_type(sk),ossl_check_USERNOTICE_freefunc_type(freefunc)) 1488 #define sk_USERNOTICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), (idx)) 1489 #define sk_USERNOTICE_set(sk, idx, ptr) ((USERNOTICE *)OPENSSL_sk_set(ossl_check_USERNOTICE_sk_type(sk), (idx), ossl_check_USERNOTICE_type(ptr))) 1490 #define sk_USERNOTICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) 1491 #define sk_USERNOTICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr)) 1492 #define sk_USERNOTICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_type(ptr), pnum) 1493 #define sk_USERNOTICE_sort(sk) OPENSSL_sk_sort(ossl_check_USERNOTICE_sk_type(sk)) 1494 #define sk_USERNOTICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_USERNOTICE_sk_type(sk)) 1495 #define sk_USERNOTICE_dup(sk) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_dup(ossl_check_const_USERNOTICE_sk_type(sk))) 1496 #define sk_USERNOTICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(USERNOTICE) *)OPENSSL_sk_deep_copy(ossl_check_const_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_copyfunc_type(copyfunc), ossl_check_USERNOTICE_freefunc_type(freefunc))) 1497 #define sk_USERNOTICE_set_cmp_func(sk, cmp) ((sk_USERNOTICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_USERNOTICE_sk_type(sk), ossl_check_USERNOTICE_compfunc_type(cmp))) 1498 1499 1500 typedef struct OSSL_ROLE_SPEC_CERT_ID_st { 1501 GENERAL_NAME *roleName; 1502 GENERAL_NAME *roleCertIssuer; 1503 ASN1_INTEGER *roleCertSerialNumber; 1504 GENERAL_NAMES *roleCertLocator; 1505 } OSSL_ROLE_SPEC_CERT_ID; 1506 1507 DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID) 1508 1509 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID, OSSL_ROLE_SPEC_CERT_ID) 1510 #define sk_OSSL_ROLE_SPEC_CERT_ID_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) 1511 #define sk_OSSL_ROLE_SPEC_CERT_ID_value(sk, idx) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_value(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx))) 1512 #define sk_OSSL_ROLE_SPEC_CERT_ID_new(cmp) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) 1513 #define sk_OSSL_ROLE_SPEC_CERT_ID_new_null() ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_null()) 1514 #define sk_OSSL_ROLE_SPEC_CERT_ID_new_reserve(cmp, n) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp), (n))) 1515 #define sk_OSSL_ROLE_SPEC_CERT_ID_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (n)) 1516 #define sk_OSSL_ROLE_SPEC_CERT_ID_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) 1517 #define sk_OSSL_ROLE_SPEC_CERT_ID_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) 1518 #define sk_OSSL_ROLE_SPEC_CERT_ID_delete(sk, i) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (i))) 1519 #define sk_OSSL_ROLE_SPEC_CERT_ID_delete_ptr(sk, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) 1520 #define sk_OSSL_ROLE_SPEC_CERT_ID_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) 1521 #define sk_OSSL_ROLE_SPEC_CERT_ID_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) 1522 #define sk_OSSL_ROLE_SPEC_CERT_ID_pop(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_pop(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) 1523 #define sk_OSSL_ROLE_SPEC_CERT_ID_shift(sk) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_shift(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) 1524 #define sk_OSSL_ROLE_SPEC_CERT_ID_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk),ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc)) 1525 #define sk_OSSL_ROLE_SPEC_CERT_ID_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), (idx)) 1526 #define sk_OSSL_ROLE_SPEC_CERT_ID_set(sk, idx, ptr) ((OSSL_ROLE_SPEC_CERT_ID *)OPENSSL_sk_set(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), (idx), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr))) 1527 #define sk_OSSL_ROLE_SPEC_CERT_ID_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) 1528 #define sk_OSSL_ROLE_SPEC_CERT_ID_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr)) 1529 #define sk_OSSL_ROLE_SPEC_CERT_ID_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_type(ptr), pnum) 1530 #define sk_OSSL_ROLE_SPEC_CERT_ID_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) 1531 #define sk_OSSL_ROLE_SPEC_CERT_ID_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk)) 1532 #define sk_OSSL_ROLE_SPEC_CERT_ID_dup(sk) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk))) 1533 #define sk_OSSL_ROLE_SPEC_CERT_ID_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ROLE_SPEC_CERT_ID) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_copyfunc_type(copyfunc), ossl_check_OSSL_ROLE_SPEC_CERT_ID_freefunc_type(freefunc))) 1534 #define sk_OSSL_ROLE_SPEC_CERT_ID_set_cmp_func(sk, cmp) ((sk_OSSL_ROLE_SPEC_CERT_ID_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ROLE_SPEC_CERT_ID_sk_type(sk), ossl_check_OSSL_ROLE_SPEC_CERT_ID_compfunc_type(cmp))) 1535 1536 1537 typedef STACK_OF(OSSL_ROLE_SPEC_CERT_ID) OSSL_ROLE_SPEC_CERT_ID_SYNTAX; 1538 1539 DECLARE_ASN1_FUNCTIONS(OSSL_ROLE_SPEC_CERT_ID_SYNTAX) 1540 typedef struct OSSL_HASH_st { 1541 X509_ALGOR *algorithmIdentifier; 1542 ASN1_BIT_STRING *hashValue; 1543 } OSSL_HASH; 1544 1545 typedef struct OSSL_INFO_SYNTAX_POINTER_st { 1546 GENERAL_NAMES *name; 1547 OSSL_HASH *hash; 1548 } OSSL_INFO_SYNTAX_POINTER; 1549 1550 # define OSSL_INFO_SYNTAX_TYPE_CONTENT 0 1551 # define OSSL_INFO_SYNTAX_TYPE_POINTER 1 1552 1553 typedef struct OSSL_INFO_SYNTAX_st { 1554 int type; 1555 union { 1556 ASN1_STRING *content; 1557 OSSL_INFO_SYNTAX_POINTER *pointer; 1558 } choice; 1559 } OSSL_INFO_SYNTAX; 1560 1561 typedef struct OSSL_PRIVILEGE_POLICY_ID_st { 1562 ASN1_OBJECT *privilegePolicy; 1563 OSSL_INFO_SYNTAX *privPolSyntax; 1564 } OSSL_PRIVILEGE_POLICY_ID; 1565 1566 typedef struct OSSL_ATTRIBUTE_DESCRIPTOR_st { 1567 ASN1_OBJECT *identifier; 1568 ASN1_STRING *attributeSyntax; 1569 ASN1_UTF8STRING *name; 1570 ASN1_UTF8STRING *description; 1571 OSSL_PRIVILEGE_POLICY_ID *dominationRule; 1572 } OSSL_ATTRIBUTE_DESCRIPTOR; 1573 1574 DECLARE_ASN1_FUNCTIONS(OSSL_HASH) 1575 DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX) 1576 DECLARE_ASN1_FUNCTIONS(OSSL_INFO_SYNTAX_POINTER) 1577 DECLARE_ASN1_FUNCTIONS(OSSL_PRIVILEGE_POLICY_ID) 1578 DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_DESCRIPTOR) 1579 1580 typedef struct OSSL_TIME_SPEC_ABSOLUTE_st { 1581 ASN1_GENERALIZEDTIME *startTime; 1582 ASN1_GENERALIZEDTIME *endTime; 1583 } OSSL_TIME_SPEC_ABSOLUTE; 1584 1585 typedef struct OSSL_DAY_TIME_st { 1586 ASN1_INTEGER *hour; 1587 ASN1_INTEGER *minute; 1588 ASN1_INTEGER *second; 1589 } OSSL_DAY_TIME; 1590 1591 typedef struct OSSL_DAY_TIME_BAND_st { 1592 OSSL_DAY_TIME *startDayTime; 1593 OSSL_DAY_TIME *endDayTime; 1594 } OSSL_DAY_TIME_BAND; 1595 1596 # define OSSL_NAMED_DAY_TYPE_INT 0 1597 # define OSSL_NAMED_DAY_TYPE_BIT 1 1598 # define OSSL_NAMED_DAY_INT_SUN 1 1599 # define OSSL_NAMED_DAY_INT_MON 2 1600 # define OSSL_NAMED_DAY_INT_TUE 3 1601 # define OSSL_NAMED_DAY_INT_WED 4 1602 # define OSSL_NAMED_DAY_INT_THU 5 1603 # define OSSL_NAMED_DAY_INT_FRI 6 1604 # define OSSL_NAMED_DAY_INT_SAT 7 1605 # define OSSL_NAMED_DAY_BIT_SUN 0 1606 # define OSSL_NAMED_DAY_BIT_MON 1 1607 # define OSSL_NAMED_DAY_BIT_TUE 2 1608 # define OSSL_NAMED_DAY_BIT_WED 3 1609 # define OSSL_NAMED_DAY_BIT_THU 4 1610 # define OSSL_NAMED_DAY_BIT_FRI 5 1611 # define OSSL_NAMED_DAY_BIT_SAT 6 1612 1613 typedef struct OSSL_NAMED_DAY_st { 1614 int type; 1615 union { 1616 ASN1_INTEGER *intNamedDays; 1617 ASN1_BIT_STRING *bitNamedDays; 1618 } choice; 1619 } OSSL_NAMED_DAY; 1620 1621 # define OSSL_TIME_SPEC_X_DAY_OF_FIRST 0 1622 # define OSSL_TIME_SPEC_X_DAY_OF_SECOND 1 1623 # define OSSL_TIME_SPEC_X_DAY_OF_THIRD 2 1624 # define OSSL_TIME_SPEC_X_DAY_OF_FOURTH 3 1625 # define OSSL_TIME_SPEC_X_DAY_OF_FIFTH 4 1626 1627 typedef struct OSSL_TIME_SPEC_X_DAY_OF_st { 1628 int type; 1629 union { 1630 OSSL_NAMED_DAY *first; 1631 OSSL_NAMED_DAY *second; 1632 OSSL_NAMED_DAY *third; 1633 OSSL_NAMED_DAY *fourth; 1634 OSSL_NAMED_DAY *fifth; 1635 } choice; 1636 } OSSL_TIME_SPEC_X_DAY_OF; 1637 1638 # define OSSL_TIME_SPEC_DAY_TYPE_INT 0 1639 # define OSSL_TIME_SPEC_DAY_TYPE_BIT 1 1640 # define OSSL_TIME_SPEC_DAY_TYPE_DAY_OF 2 1641 # define OSSL_TIME_SPEC_DAY_BIT_SUN 0 1642 # define OSSL_TIME_SPEC_DAY_BIT_MON 1 1643 # define OSSL_TIME_SPEC_DAY_BIT_TUE 2 1644 # define OSSL_TIME_SPEC_DAY_BIT_WED 3 1645 # define OSSL_TIME_SPEC_DAY_BIT_THU 4 1646 # define OSSL_TIME_SPEC_DAY_BIT_FRI 5 1647 # define OSSL_TIME_SPEC_DAY_BIT_SAT 6 1648 # define OSSL_TIME_SPEC_DAY_INT_SUN 1 1649 # define OSSL_TIME_SPEC_DAY_INT_MON 2 1650 # define OSSL_TIME_SPEC_DAY_INT_TUE 3 1651 # define OSSL_TIME_SPEC_DAY_INT_WED 4 1652 # define OSSL_TIME_SPEC_DAY_INT_THU 5 1653 # define OSSL_TIME_SPEC_DAY_INT_FRI 6 1654 # define OSSL_TIME_SPEC_DAY_INT_SAT 7 1655 1656 typedef struct OSSL_TIME_SPEC_DAY_st { 1657 int type; 1658 union { 1659 STACK_OF(ASN1_INTEGER) *intDay; 1660 ASN1_BIT_STRING *bitDay; 1661 OSSL_TIME_SPEC_X_DAY_OF *dayOf; 1662 } choice; 1663 } OSSL_TIME_SPEC_DAY; 1664 1665 # define OSSL_TIME_SPEC_WEEKS_TYPE_ALL 0 1666 # define OSSL_TIME_SPEC_WEEKS_TYPE_INT 1 1667 # define OSSL_TIME_SPEC_WEEKS_TYPE_BIT 2 1668 # define OSSL_TIME_SPEC_BIT_WEEKS_1 0 1669 # define OSSL_TIME_SPEC_BIT_WEEKS_2 1 1670 # define OSSL_TIME_SPEC_BIT_WEEKS_3 2 1671 # define OSSL_TIME_SPEC_BIT_WEEKS_4 3 1672 # define OSSL_TIME_SPEC_BIT_WEEKS_5 4 1673 1674 typedef struct OSSL_TIME_SPEC_WEEKS_st { 1675 int type; 1676 union { 1677 ASN1_NULL *allWeeks; 1678 STACK_OF(ASN1_INTEGER) *intWeek; 1679 ASN1_BIT_STRING *bitWeek; 1680 } choice; 1681 } OSSL_TIME_SPEC_WEEKS; 1682 1683 # define OSSL_TIME_SPEC_MONTH_TYPE_ALL 0 1684 # define OSSL_TIME_SPEC_MONTH_TYPE_INT 1 1685 # define OSSL_TIME_SPEC_MONTH_TYPE_BIT 2 1686 # define OSSL_TIME_SPEC_INT_MONTH_JAN 1 1687 # define OSSL_TIME_SPEC_INT_MONTH_FEB 2 1688 # define OSSL_TIME_SPEC_INT_MONTH_MAR 3 1689 # define OSSL_TIME_SPEC_INT_MONTH_APR 4 1690 # define OSSL_TIME_SPEC_INT_MONTH_MAY 5 1691 # define OSSL_TIME_SPEC_INT_MONTH_JUN 6 1692 # define OSSL_TIME_SPEC_INT_MONTH_JUL 7 1693 # define OSSL_TIME_SPEC_INT_MONTH_AUG 8 1694 # define OSSL_TIME_SPEC_INT_MONTH_SEP 9 1695 # define OSSL_TIME_SPEC_INT_MONTH_OCT 10 1696 # define OSSL_TIME_SPEC_INT_MONTH_NOV 11 1697 # define OSSL_TIME_SPEC_INT_MONTH_DEC 12 1698 # define OSSL_TIME_SPEC_BIT_MONTH_JAN 0 1699 # define OSSL_TIME_SPEC_BIT_MONTH_FEB 1 1700 # define OSSL_TIME_SPEC_BIT_MONTH_MAR 2 1701 # define OSSL_TIME_SPEC_BIT_MONTH_APR 3 1702 # define OSSL_TIME_SPEC_BIT_MONTH_MAY 4 1703 # define OSSL_TIME_SPEC_BIT_MONTH_JUN 5 1704 # define OSSL_TIME_SPEC_BIT_MONTH_JUL 6 1705 # define OSSL_TIME_SPEC_BIT_MONTH_AUG 7 1706 # define OSSL_TIME_SPEC_BIT_MONTH_SEP 8 1707 # define OSSL_TIME_SPEC_BIT_MONTH_OCT 9 1708 # define OSSL_TIME_SPEC_BIT_MONTH_NOV 10 1709 # define OSSL_TIME_SPEC_BIT_MONTH_DEC 11 1710 1711 typedef struct OSSL_TIME_SPEC_MONTH_st { 1712 int type; 1713 union { 1714 ASN1_NULL *allMonths; 1715 STACK_OF(ASN1_INTEGER) *intMonth; 1716 ASN1_BIT_STRING *bitMonth; 1717 } choice; 1718 } OSSL_TIME_SPEC_MONTH; 1719 1720 typedef struct OSSL_TIME_PERIOD_st { 1721 STACK_OF(OSSL_DAY_TIME_BAND) *timesOfDay; 1722 OSSL_TIME_SPEC_DAY *days; 1723 OSSL_TIME_SPEC_WEEKS *weeks; 1724 OSSL_TIME_SPEC_MONTH *months; 1725 STACK_OF(ASN1_INTEGER) *years; 1726 } OSSL_TIME_PERIOD; 1727 1728 # define OSSL_TIME_SPEC_TIME_TYPE_ABSOLUTE 0 1729 # define OSSL_TIME_SPEC_TIME_TYPE_PERIODIC 1 1730 1731 typedef struct OSSL_TIME_SPEC_TIME_st { 1732 int type; 1733 union { 1734 OSSL_TIME_SPEC_ABSOLUTE *absolute; 1735 STACK_OF(OSSL_TIME_PERIOD) *periodic; 1736 } choice; 1737 } OSSL_TIME_SPEC_TIME; 1738 1739 typedef struct OSSL_TIME_SPEC_st { 1740 OSSL_TIME_SPEC_TIME *time; 1741 ASN1_BOOLEAN notThisTime; 1742 ASN1_INTEGER *timeZone; 1743 } OSSL_TIME_SPEC; 1744 1745 DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME) 1746 DECLARE_ASN1_FUNCTIONS(OSSL_DAY_TIME_BAND) 1747 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_DAY) 1748 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_WEEKS) 1749 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_MONTH) 1750 DECLARE_ASN1_FUNCTIONS(OSSL_NAMED_DAY) 1751 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_X_DAY_OF) 1752 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_ABSOLUTE) 1753 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC_TIME) 1754 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_SPEC) 1755 DECLARE_ASN1_FUNCTIONS(OSSL_TIME_PERIOD) 1756 1757 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_TIME_PERIOD, OSSL_TIME_PERIOD, OSSL_TIME_PERIOD) 1758 #define sk_OSSL_TIME_PERIOD_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) 1759 #define sk_OSSL_TIME_PERIOD_value(sk, idx) ((OSSL_TIME_PERIOD *)OPENSSL_sk_value(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), (idx))) 1760 #define sk_OSSL_TIME_PERIOD_new(cmp) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) 1761 #define sk_OSSL_TIME_PERIOD_new_null() ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_null()) 1762 #define sk_OSSL_TIME_PERIOD_new_reserve(cmp, n) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp), (n))) 1763 #define sk_OSSL_TIME_PERIOD_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (n)) 1764 #define sk_OSSL_TIME_PERIOD_free(sk) OPENSSL_sk_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) 1765 #define sk_OSSL_TIME_PERIOD_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) 1766 #define sk_OSSL_TIME_PERIOD_delete(sk, i) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (i))) 1767 #define sk_OSSL_TIME_PERIOD_delete_ptr(sk, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr))) 1768 #define sk_OSSL_TIME_PERIOD_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) 1769 #define sk_OSSL_TIME_PERIOD_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) 1770 #define sk_OSSL_TIME_PERIOD_pop(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_pop(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) 1771 #define sk_OSSL_TIME_PERIOD_shift(sk) ((OSSL_TIME_PERIOD *)OPENSSL_sk_shift(ossl_check_OSSL_TIME_PERIOD_sk_type(sk))) 1772 #define sk_OSSL_TIME_PERIOD_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_TIME_PERIOD_sk_type(sk),ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc)) 1773 #define sk_OSSL_TIME_PERIOD_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), (idx)) 1774 #define sk_OSSL_TIME_PERIOD_set(sk, idx, ptr) ((OSSL_TIME_PERIOD *)OPENSSL_sk_set(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), (idx), ossl_check_OSSL_TIME_PERIOD_type(ptr))) 1775 #define sk_OSSL_TIME_PERIOD_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) 1776 #define sk_OSSL_TIME_PERIOD_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr)) 1777 #define sk_OSSL_TIME_PERIOD_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_type(ptr), pnum) 1778 #define sk_OSSL_TIME_PERIOD_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_TIME_PERIOD_sk_type(sk)) 1779 #define sk_OSSL_TIME_PERIOD_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk)) 1780 #define sk_OSSL_TIME_PERIOD_dup(sk) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_dup(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk))) 1781 #define sk_OSSL_TIME_PERIOD_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_TIME_PERIOD) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_copyfunc_type(copyfunc), ossl_check_OSSL_TIME_PERIOD_freefunc_type(freefunc))) 1782 #define sk_OSSL_TIME_PERIOD_set_cmp_func(sk, cmp) ((sk_OSSL_TIME_PERIOD_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_TIME_PERIOD_sk_type(sk), ossl_check_OSSL_TIME_PERIOD_compfunc_type(cmp))) 1783 1784 1785 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND, OSSL_DAY_TIME_BAND) 1786 #define sk_OSSL_DAY_TIME_BAND_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) 1787 #define sk_OSSL_DAY_TIME_BAND_value(sk, idx) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_value(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), (idx))) 1788 #define sk_OSSL_DAY_TIME_BAND_new(cmp) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) 1789 #define sk_OSSL_DAY_TIME_BAND_new_null() ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_null()) 1790 #define sk_OSSL_DAY_TIME_BAND_new_reserve(cmp, n) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp), (n))) 1791 #define sk_OSSL_DAY_TIME_BAND_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (n)) 1792 #define sk_OSSL_DAY_TIME_BAND_free(sk) OPENSSL_sk_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) 1793 #define sk_OSSL_DAY_TIME_BAND_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) 1794 #define sk_OSSL_DAY_TIME_BAND_delete(sk, i) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (i))) 1795 #define sk_OSSL_DAY_TIME_BAND_delete_ptr(sk, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) 1796 #define sk_OSSL_DAY_TIME_BAND_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) 1797 #define sk_OSSL_DAY_TIME_BAND_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) 1798 #define sk_OSSL_DAY_TIME_BAND_pop(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_pop(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) 1799 #define sk_OSSL_DAY_TIME_BAND_shift(sk) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_shift(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk))) 1800 #define sk_OSSL_DAY_TIME_BAND_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk),ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc)) 1801 #define sk_OSSL_DAY_TIME_BAND_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), (idx)) 1802 #define sk_OSSL_DAY_TIME_BAND_set(sk, idx, ptr) ((OSSL_DAY_TIME_BAND *)OPENSSL_sk_set(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), (idx), ossl_check_OSSL_DAY_TIME_BAND_type(ptr))) 1803 #define sk_OSSL_DAY_TIME_BAND_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) 1804 #define sk_OSSL_DAY_TIME_BAND_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr)) 1805 #define sk_OSSL_DAY_TIME_BAND_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_type(ptr), pnum) 1806 #define sk_OSSL_DAY_TIME_BAND_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk)) 1807 #define sk_OSSL_DAY_TIME_BAND_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk)) 1808 #define sk_OSSL_DAY_TIME_BAND_dup(sk) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_dup(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk))) 1809 #define sk_OSSL_DAY_TIME_BAND_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_DAY_TIME_BAND) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_copyfunc_type(copyfunc), ossl_check_OSSL_DAY_TIME_BAND_freefunc_type(freefunc))) 1810 #define sk_OSSL_DAY_TIME_BAND_set_cmp_func(sk, cmp) ((sk_OSSL_DAY_TIME_BAND_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_DAY_TIME_BAND_sk_type(sk), ossl_check_OSSL_DAY_TIME_BAND_compfunc_type(cmp))) 1811 1812 1813 /* Attribute Type and Value */ 1814 typedef struct atav_st { 1815 ASN1_OBJECT *type; 1816 ASN1_TYPE *value; 1817 } OSSL_ATAV; 1818 1819 typedef struct ATTRIBUTE_TYPE_MAPPING_st { 1820 ASN1_OBJECT *local; 1821 ASN1_OBJECT *remote; 1822 } OSSL_ATTRIBUTE_TYPE_MAPPING; 1823 1824 typedef struct ATTRIBUTE_VALUE_MAPPING_st { 1825 OSSL_ATAV *local; 1826 OSSL_ATAV *remote; 1827 } OSSL_ATTRIBUTE_VALUE_MAPPING; 1828 1829 # define OSSL_ATTR_MAP_TYPE 0 1830 # define OSSL_ATTR_MAP_VALUE 1 1831 1832 typedef struct ATTRIBUTE_MAPPING_st { 1833 int type; 1834 union { 1835 OSSL_ATTRIBUTE_TYPE_MAPPING *typeMappings; 1836 OSSL_ATTRIBUTE_VALUE_MAPPING *typeValueMappings; 1837 } choice; 1838 } OSSL_ATTRIBUTE_MAPPING; 1839 1840 typedef STACK_OF(OSSL_ATTRIBUTE_MAPPING) OSSL_ATTRIBUTE_MAPPINGS; 1841 DECLARE_ASN1_FUNCTIONS(OSSL_ATAV) 1842 DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_TYPE_MAPPING) 1843 DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_VALUE_MAPPING) 1844 DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPING) 1845 DECLARE_ASN1_FUNCTIONS(OSSL_ATTRIBUTE_MAPPINGS) 1846 1847 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING, OSSL_ATTRIBUTE_MAPPING) 1848 #define sk_OSSL_ATTRIBUTE_MAPPING_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) 1849 #define sk_OSSL_ATTRIBUTE_MAPPING_value(sk, idx) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_value(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx))) 1850 #define sk_OSSL_ATTRIBUTE_MAPPING_new(cmp) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) 1851 #define sk_OSSL_ATTRIBUTE_MAPPING_new_null() ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_null()) 1852 #define sk_OSSL_ATTRIBUTE_MAPPING_new_reserve(cmp, n) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp), (n))) 1853 #define sk_OSSL_ATTRIBUTE_MAPPING_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (n)) 1854 #define sk_OSSL_ATTRIBUTE_MAPPING_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) 1855 #define sk_OSSL_ATTRIBUTE_MAPPING_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) 1856 #define sk_OSSL_ATTRIBUTE_MAPPING_delete(sk, i) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (i))) 1857 #define sk_OSSL_ATTRIBUTE_MAPPING_delete_ptr(sk, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) 1858 #define sk_OSSL_ATTRIBUTE_MAPPING_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) 1859 #define sk_OSSL_ATTRIBUTE_MAPPING_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) 1860 #define sk_OSSL_ATTRIBUTE_MAPPING_pop(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_pop(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) 1861 #define sk_OSSL_ATTRIBUTE_MAPPING_shift(sk) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_shift(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) 1862 #define sk_OSSL_ATTRIBUTE_MAPPING_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk),ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc)) 1863 #define sk_OSSL_ATTRIBUTE_MAPPING_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), (idx)) 1864 #define sk_OSSL_ATTRIBUTE_MAPPING_set(sk, idx, ptr) ((OSSL_ATTRIBUTE_MAPPING *)OPENSSL_sk_set(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), (idx), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr))) 1865 #define sk_OSSL_ATTRIBUTE_MAPPING_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) 1866 #define sk_OSSL_ATTRIBUTE_MAPPING_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr)) 1867 #define sk_OSSL_ATTRIBUTE_MAPPING_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_type(ptr), pnum) 1868 #define sk_OSSL_ATTRIBUTE_MAPPING_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) 1869 #define sk_OSSL_ATTRIBUTE_MAPPING_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk)) 1870 #define sk_OSSL_ATTRIBUTE_MAPPING_dup(sk) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk))) 1871 #define sk_OSSL_ATTRIBUTE_MAPPING_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ATTRIBUTE_MAPPING) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_copyfunc_type(copyfunc), ossl_check_OSSL_ATTRIBUTE_MAPPING_freefunc_type(freefunc))) 1872 #define sk_OSSL_ATTRIBUTE_MAPPING_set_cmp_func(sk, cmp) ((sk_OSSL_ATTRIBUTE_MAPPING_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ATTRIBUTE_MAPPING_sk_type(sk), ossl_check_OSSL_ATTRIBUTE_MAPPING_compfunc_type(cmp))) 1873 1874 1875 # define OSSL_AAA_ATTRIBUTE_TYPE 0 1876 # define OSSL_AAA_ATTRIBUTE_VALUES 1 1877 1878 typedef struct ALLOWED_ATTRIBUTES_CHOICE_st { 1879 int type; 1880 union { 1881 ASN1_OBJECT *attributeType; 1882 X509_ATTRIBUTE *attributeTypeandValues; 1883 } choice; 1884 } OSSL_ALLOWED_ATTRIBUTES_CHOICE; 1885 1886 typedef struct ALLOWED_ATTRIBUTES_ITEM_st { 1887 STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *attributes; 1888 GENERAL_NAME *holderDomain; 1889 } OSSL_ALLOWED_ATTRIBUTES_ITEM; 1890 1891 typedef STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) OSSL_ALLOWED_ATTRIBUTES_SYNTAX; 1892 1893 DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_CHOICE) 1894 DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_ITEM) 1895 DECLARE_ASN1_FUNCTIONS(OSSL_ALLOWED_ATTRIBUTES_SYNTAX) 1896 1897 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE, OSSL_ALLOWED_ATTRIBUTES_CHOICE) 1898 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) 1899 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx))) 1900 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) 1901 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_null()) 1902 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp), (n))) 1903 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (n)) 1904 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) 1905 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) 1906 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (i))) 1907 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) 1908 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) 1909 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) 1910 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) 1911 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) 1912 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc)) 1913 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), (idx)) 1914 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_CHOICE *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr))) 1915 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) 1916 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr)) 1917 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_type(ptr), pnum) 1918 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) 1919 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk)) 1920 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk))) 1921 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_CHOICE) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_freefunc_type(freefunc))) 1922 #define sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_CHOICE_compfunc_type(cmp))) 1923 1924 1925 SKM_DEFINE_STACK_OF_INTERNAL(OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM, OSSL_ALLOWED_ATTRIBUTES_ITEM) 1926 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_num(sk) OPENSSL_sk_num(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) 1927 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_value(sk, idx) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_value(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx))) 1928 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new(cmp) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) 1929 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_null() ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_null()) 1930 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_new_reserve(cmp, n) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_new_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp), (n))) 1931 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (n)) 1932 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_free(sk) OPENSSL_sk_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) 1933 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_zero(sk) OPENSSL_sk_zero(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) 1934 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete(sk, i) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (i))) 1935 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_delete_ptr(sk, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_delete_ptr(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) 1936 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_push(sk, ptr) OPENSSL_sk_push(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) 1937 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) 1938 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_pop(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) 1939 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_shift(sk) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_shift(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) 1940 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk),ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc)) 1941 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), (idx)) 1942 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set(sk, idx, ptr) ((OSSL_ALLOWED_ATTRIBUTES_ITEM *)OPENSSL_sk_set(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), (idx), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr))) 1943 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find(sk, ptr) OPENSSL_sk_find(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) 1944 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr)) 1945 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_type(ptr), pnum) 1946 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_sort(sk) OPENSSL_sk_sort(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) 1947 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk)) 1948 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_dup(sk) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_dup(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk))) 1949 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(OSSL_ALLOWED_ATTRIBUTES_ITEM) *)OPENSSL_sk_deep_copy(ossl_check_const_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_copyfunc_type(copyfunc), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_freefunc_type(freefunc))) 1950 #define sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_set_cmp_func(sk, cmp) ((sk_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_sk_type(sk), ossl_check_OSSL_ALLOWED_ATTRIBUTES_ITEM_compfunc_type(cmp))) 1951 1952 1953 typedef struct AA_DIST_POINT_st { 1954 DIST_POINT_NAME *distpoint; 1955 ASN1_BIT_STRING *reasons; 1956 int dp_reasons; 1957 ASN1_BOOLEAN indirectCRL; 1958 ASN1_BOOLEAN containsUserAttributeCerts; 1959 ASN1_BOOLEAN containsAACerts; 1960 ASN1_BOOLEAN containsSOAPublicKeyCerts; 1961 } OSSL_AA_DIST_POINT; 1962 1963 DECLARE_ASN1_FUNCTIONS(OSSL_AA_DIST_POINT) 1964 1965 # ifdef __cplusplus 1966 } 1967 # endif 1968 #endif 1969