1/* Copyright (c) 2014, Google Inc. 2 * 3 * Permission to use, copy, modify, and/or distribute this software for any 4 * purpose with or without fee is hereby granted, provided that the above 5 * copyright notice and this permission notice appear in all copies. 6 * 7 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ 14 15#if !defined(IN_STACK_H) 16#error "Don't include this file directly. Include stack.h." 17#endif 18 19/* ACCESS_DESCRIPTION */ 20#define sk_ACCESS_DESCRIPTION_new(comp) \ 21 ((STACK_OF(ACCESS_DESCRIPTION) *)sk_new(CHECKED_CAST( \ 22 stack_cmp_func, \ 23 int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b), \ 24 comp))) 25 26#define sk_ACCESS_DESCRIPTION_new_null() \ 27 ((STACK_OF(ACCESS_DESCRIPTION) *)sk_new_null()) 28 29#define sk_ACCESS_DESCRIPTION_num(sk) \ 30 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)) 31 32#define sk_ACCESS_DESCRIPTION_zero(sk) \ 33 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)); 34 35#define sk_ACCESS_DESCRIPTION_value(sk, i) \ 36 ((ACCESS_DESCRIPTION *)sk_value( \ 37 CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk), (i))) 38 39#define sk_ACCESS_DESCRIPTION_set(sk, i, p) \ 40 ((ACCESS_DESCRIPTION *)sk_set( \ 41 CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (i), \ 42 CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))) 43 44#define sk_ACCESS_DESCRIPTION_free(sk) \ 45 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)) 46 47#define sk_ACCESS_DESCRIPTION_pop_free(sk, free_func) \ 48 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 49 CHECKED_CAST(void (*)(void *), void (*)(ACCESS_DESCRIPTION *), \ 50 free_func)) 51 52#define sk_ACCESS_DESCRIPTION_insert(sk, p, where) \ 53 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 54 CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p), (where)) 55 56#define sk_ACCESS_DESCRIPTION_delete(sk, where) \ 57 ((ACCESS_DESCRIPTION *)sk_delete( \ 58 CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (where))) 59 60#define sk_ACCESS_DESCRIPTION_delete_ptr(sk, p) \ 61 ((ACCESS_DESCRIPTION *)sk_delete_ptr( \ 62 CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 63 CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))) 64 65#define sk_ACCESS_DESCRIPTION_find(sk, out_index, p) \ 66 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 67 (out_index), CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)) 68 69#define sk_ACCESS_DESCRIPTION_shift(sk) \ 70 ((ACCESS_DESCRIPTION *)sk_shift( \ 71 CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))) 72 73#define sk_ACCESS_DESCRIPTION_push(sk, p) \ 74 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 75 CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)) 76 77#define sk_ACCESS_DESCRIPTION_pop(sk) \ 78 ((ACCESS_DESCRIPTION *)sk_pop( \ 79 CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))) 80 81#define sk_ACCESS_DESCRIPTION_dup(sk) \ 82 ((STACK_OF(ACCESS_DESCRIPTION) *)sk_dup( \ 83 CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk))) 84 85#define sk_ACCESS_DESCRIPTION_sort(sk) \ 86 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)) 87 88#define sk_ACCESS_DESCRIPTION_is_sorted(sk) \ 89 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk)) 90 91#define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, comp) \ 92 ((int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b)) \ 93 sk_set_cmp_func( \ 94 CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 95 CHECKED_CAST(stack_cmp_func, int (*)(const ACCESS_DESCRIPTION **a, \ 96 const ACCESS_DESCRIPTION **b), \ 97 comp))) 98 99#define sk_ACCESS_DESCRIPTION_deep_copy(sk, copy_func, free_func) \ 100 ((STACK_OF(ACCESS_DESCRIPTION) *)sk_deep_copy( \ 101 CHECKED_CAST(const _STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 102 CHECKED_CAST(void *(*)(void *), \ 103 ACCESS_DESCRIPTION *(*)(ACCESS_DESCRIPTION *), copy_func), \ 104 CHECKED_CAST(void (*)(void *), void (*)(ACCESS_DESCRIPTION *), \ 105 free_func))) 106 107/* ASN1_ADB_TABLE */ 108#define sk_ASN1_ADB_TABLE_new(comp) \ 109 ((STACK_OF(ASN1_ADB_TABLE) *)sk_new(CHECKED_CAST( \ 110 stack_cmp_func, \ 111 int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b), comp))) 112 113#define sk_ASN1_ADB_TABLE_new_null() ((STACK_OF(ASN1_ADB_TABLE) *)sk_new_null()) 114 115#define sk_ASN1_ADB_TABLE_num(sk) \ 116 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)) 117 118#define sk_ASN1_ADB_TABLE_zero(sk) \ 119 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)); 120 121#define sk_ASN1_ADB_TABLE_value(sk, i) \ 122 ((ASN1_ADB_TABLE *)sk_value( \ 123 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk), (i))) 124 125#define sk_ASN1_ADB_TABLE_set(sk, i, p) \ 126 ((ASN1_ADB_TABLE *)sk_set( \ 127 CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (i), \ 128 CHECKED_CAST(void *, ASN1_ADB_TABLE *, p))) 129 130#define sk_ASN1_ADB_TABLE_free(sk) \ 131 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)) 132 133#define sk_ASN1_ADB_TABLE_pop_free(sk, free_func) \ 134 sk_pop_free( \ 135 CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 136 CHECKED_CAST(void (*)(void *), void (*)(ASN1_ADB_TABLE *), free_func)) 137 138#define sk_ASN1_ADB_TABLE_insert(sk, p, where) \ 139 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 140 CHECKED_CAST(void *, ASN1_ADB_TABLE *, p), (where)) 141 142#define sk_ASN1_ADB_TABLE_delete(sk, where) \ 143 ((ASN1_ADB_TABLE *)sk_delete( \ 144 CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (where))) 145 146#define sk_ASN1_ADB_TABLE_delete_ptr(sk, p) \ 147 ((ASN1_ADB_TABLE *)sk_delete_ptr( \ 148 CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 149 CHECKED_CAST(void *, ASN1_ADB_TABLE *, p))) 150 151#define sk_ASN1_ADB_TABLE_find(sk, out_index, p) \ 152 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (out_index), \ 153 CHECKED_CAST(void *, ASN1_ADB_TABLE *, p)) 154 155#define sk_ASN1_ADB_TABLE_shift(sk) \ 156 ((ASN1_ADB_TABLE *)sk_shift( \ 157 CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))) 158 159#define sk_ASN1_ADB_TABLE_push(sk, p) \ 160 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 161 CHECKED_CAST(void *, ASN1_ADB_TABLE *, p)) 162 163#define sk_ASN1_ADB_TABLE_pop(sk) \ 164 ((ASN1_ADB_TABLE *)sk_pop( \ 165 CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))) 166 167#define sk_ASN1_ADB_TABLE_dup(sk) \ 168 ((STACK_OF(ASN1_ADB_TABLE) *)sk_dup( \ 169 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk))) 170 171#define sk_ASN1_ADB_TABLE_sort(sk) \ 172 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)) 173 174#define sk_ASN1_ADB_TABLE_is_sorted(sk) \ 175 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk)) 176 177#define sk_ASN1_ADB_TABLE_set_cmp_func(sk, comp) \ 178 ((int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b)) \ 179 sk_set_cmp_func( \ 180 CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 181 CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_ADB_TABLE **a, \ 182 const ASN1_ADB_TABLE **b), \ 183 comp))) 184 185#define sk_ASN1_ADB_TABLE_deep_copy(sk, copy_func, free_func) \ 186 ((STACK_OF(ASN1_ADB_TABLE) *)sk_deep_copy( \ 187 CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk), \ 188 CHECKED_CAST(void *(*)(void *), ASN1_ADB_TABLE *(*)(ASN1_ADB_TABLE *), \ 189 copy_func), \ 190 CHECKED_CAST(void (*)(void *), void (*)(ASN1_ADB_TABLE *), free_func))) 191 192/* ASN1_GENERALSTRING */ 193#define sk_ASN1_GENERALSTRING_new(comp) \ 194 ((STACK_OF(ASN1_GENERALSTRING) *)sk_new(CHECKED_CAST( \ 195 stack_cmp_func, \ 196 int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b), \ 197 comp))) 198 199#define sk_ASN1_GENERALSTRING_new_null() \ 200 ((STACK_OF(ASN1_GENERALSTRING) *)sk_new_null()) 201 202#define sk_ASN1_GENERALSTRING_num(sk) \ 203 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)) 204 205#define sk_ASN1_GENERALSTRING_zero(sk) \ 206 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)); 207 208#define sk_ASN1_GENERALSTRING_value(sk, i) \ 209 ((ASN1_GENERALSTRING *)sk_value( \ 210 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk), (i))) 211 212#define sk_ASN1_GENERALSTRING_set(sk, i, p) \ 213 ((ASN1_GENERALSTRING *)sk_set( \ 214 CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), (i), \ 215 CHECKED_CAST(void *, ASN1_GENERALSTRING *, p))) 216 217#define sk_ASN1_GENERALSTRING_free(sk) \ 218 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)) 219 220#define sk_ASN1_GENERALSTRING_pop_free(sk, free_func) \ 221 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 222 CHECKED_CAST(void (*)(void *), void (*)(ASN1_GENERALSTRING *), \ 223 free_func)) 224 225#define sk_ASN1_GENERALSTRING_insert(sk, p, where) \ 226 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 227 CHECKED_CAST(void *, ASN1_GENERALSTRING *, p), (where)) 228 229#define sk_ASN1_GENERALSTRING_delete(sk, where) \ 230 ((ASN1_GENERALSTRING *)sk_delete( \ 231 CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), (where))) 232 233#define sk_ASN1_GENERALSTRING_delete_ptr(sk, p) \ 234 ((ASN1_GENERALSTRING *)sk_delete_ptr( \ 235 CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 236 CHECKED_CAST(void *, ASN1_GENERALSTRING *, p))) 237 238#define sk_ASN1_GENERALSTRING_find(sk, out_index, p) \ 239 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 240 (out_index), CHECKED_CAST(void *, ASN1_GENERALSTRING *, p)) 241 242#define sk_ASN1_GENERALSTRING_shift(sk) \ 243 ((ASN1_GENERALSTRING *)sk_shift( \ 244 CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))) 245 246#define sk_ASN1_GENERALSTRING_push(sk, p) \ 247 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 248 CHECKED_CAST(void *, ASN1_GENERALSTRING *, p)) 249 250#define sk_ASN1_GENERALSTRING_pop(sk) \ 251 ((ASN1_GENERALSTRING *)sk_pop( \ 252 CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))) 253 254#define sk_ASN1_GENERALSTRING_dup(sk) \ 255 ((STACK_OF(ASN1_GENERALSTRING) *)sk_dup( \ 256 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk))) 257 258#define sk_ASN1_GENERALSTRING_sort(sk) \ 259 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)) 260 261#define sk_ASN1_GENERALSTRING_is_sorted(sk) \ 262 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk)) 263 264#define sk_ASN1_GENERALSTRING_set_cmp_func(sk, comp) \ 265 ((int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b)) \ 266 sk_set_cmp_func( \ 267 CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 268 CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_GENERALSTRING **a, \ 269 const ASN1_GENERALSTRING **b), \ 270 comp))) 271 272#define sk_ASN1_GENERALSTRING_deep_copy(sk, copy_func, free_func) \ 273 ((STACK_OF(ASN1_GENERALSTRING) *)sk_deep_copy( \ 274 CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk), \ 275 CHECKED_CAST(void *(*)(void *), \ 276 ASN1_GENERALSTRING *(*)(ASN1_GENERALSTRING *), copy_func), \ 277 CHECKED_CAST(void (*)(void *), void (*)(ASN1_GENERALSTRING *), \ 278 free_func))) 279 280/* ASN1_INTEGER */ 281#define sk_ASN1_INTEGER_new(comp) \ 282 ((STACK_OF(ASN1_INTEGER) *)sk_new(CHECKED_CAST( \ 283 stack_cmp_func, int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b), \ 284 comp))) 285 286#define sk_ASN1_INTEGER_new_null() ((STACK_OF(ASN1_INTEGER) *)sk_new_null()) 287 288#define sk_ASN1_INTEGER_num(sk) \ 289 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)) 290 291#define sk_ASN1_INTEGER_zero(sk) \ 292 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)); 293 294#define sk_ASN1_INTEGER_value(sk, i) \ 295 ((ASN1_INTEGER *)sk_value( \ 296 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk), (i))) 297 298#define sk_ASN1_INTEGER_set(sk, i, p) \ 299 ((ASN1_INTEGER *)sk_set( \ 300 CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (i), \ 301 CHECKED_CAST(void *, ASN1_INTEGER *, p))) 302 303#define sk_ASN1_INTEGER_free(sk) \ 304 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)) 305 306#define sk_ASN1_INTEGER_pop_free(sk, free_func) \ 307 sk_pop_free( \ 308 CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 309 CHECKED_CAST(void (*)(void *), void (*)(ASN1_INTEGER *), free_func)) 310 311#define sk_ASN1_INTEGER_insert(sk, p, where) \ 312 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 313 CHECKED_CAST(void *, ASN1_INTEGER *, p), (where)) 314 315#define sk_ASN1_INTEGER_delete(sk, where) \ 316 ((ASN1_INTEGER *)sk_delete( \ 317 CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (where))) 318 319#define sk_ASN1_INTEGER_delete_ptr(sk, p) \ 320 ((ASN1_INTEGER *)sk_delete_ptr( \ 321 CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 322 CHECKED_CAST(void *, ASN1_INTEGER *, p))) 323 324#define sk_ASN1_INTEGER_find(sk, out_index, p) \ 325 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (out_index), \ 326 CHECKED_CAST(void *, ASN1_INTEGER *, p)) 327 328#define sk_ASN1_INTEGER_shift(sk) \ 329 ((ASN1_INTEGER *)sk_shift( \ 330 CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))) 331 332#define sk_ASN1_INTEGER_push(sk, p) \ 333 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 334 CHECKED_CAST(void *, ASN1_INTEGER *, p)) 335 336#define sk_ASN1_INTEGER_pop(sk) \ 337 ((ASN1_INTEGER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))) 338 339#define sk_ASN1_INTEGER_dup(sk) \ 340 ((STACK_OF(ASN1_INTEGER) *)sk_dup( \ 341 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk))) 342 343#define sk_ASN1_INTEGER_sort(sk) \ 344 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)) 345 346#define sk_ASN1_INTEGER_is_sorted(sk) \ 347 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk)) 348 349#define sk_ASN1_INTEGER_set_cmp_func(sk, comp) \ 350 ((int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b))sk_set_cmp_func( \ 351 CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 352 CHECKED_CAST(stack_cmp_func, \ 353 int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b), \ 354 comp))) 355 356#define sk_ASN1_INTEGER_deep_copy(sk, copy_func, free_func) \ 357 ((STACK_OF(ASN1_INTEGER) *)sk_deep_copy( \ 358 CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_INTEGER) *, sk), \ 359 CHECKED_CAST(void *(*)(void *), ASN1_INTEGER *(*)(ASN1_INTEGER *), \ 360 copy_func), \ 361 CHECKED_CAST(void (*)(void *), void (*)(ASN1_INTEGER *), free_func))) 362 363/* ASN1_OBJECT */ 364#define sk_ASN1_OBJECT_new(comp) \ 365 ((STACK_OF(ASN1_OBJECT) *)sk_new(CHECKED_CAST( \ 366 stack_cmp_func, int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b), \ 367 comp))) 368 369#define sk_ASN1_OBJECT_new_null() ((STACK_OF(ASN1_OBJECT) *)sk_new_null()) 370 371#define sk_ASN1_OBJECT_num(sk) \ 372 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)) 373 374#define sk_ASN1_OBJECT_zero(sk) \ 375 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)); 376 377#define sk_ASN1_OBJECT_value(sk, i) \ 378 ((ASN1_OBJECT *)sk_value( \ 379 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk), (i))) 380 381#define sk_ASN1_OBJECT_set(sk, i, p) \ 382 ((ASN1_OBJECT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 383 (i), CHECKED_CAST(void *, ASN1_OBJECT *, p))) 384 385#define sk_ASN1_OBJECT_free(sk) \ 386 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)) 387 388#define sk_ASN1_OBJECT_pop_free(sk, free_func) \ 389 sk_pop_free( \ 390 CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 391 CHECKED_CAST(void (*)(void *), void (*)(ASN1_OBJECT *), free_func)) 392 393#define sk_ASN1_OBJECT_insert(sk, p, where) \ 394 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 395 CHECKED_CAST(void *, ASN1_OBJECT *, p), (where)) 396 397#define sk_ASN1_OBJECT_delete(sk, where) \ 398 ((ASN1_OBJECT *)sk_delete( \ 399 CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), (where))) 400 401#define sk_ASN1_OBJECT_delete_ptr(sk, p) \ 402 ((ASN1_OBJECT *)sk_delete_ptr( \ 403 CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 404 CHECKED_CAST(void *, ASN1_OBJECT *, p))) 405 406#define sk_ASN1_OBJECT_find(sk, out_index, p) \ 407 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), (out_index), \ 408 CHECKED_CAST(void *, ASN1_OBJECT *, p)) 409 410#define sk_ASN1_OBJECT_shift(sk) \ 411 ((ASN1_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))) 412 413#define sk_ASN1_OBJECT_push(sk, p) \ 414 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 415 CHECKED_CAST(void *, ASN1_OBJECT *, p)) 416 417#define sk_ASN1_OBJECT_pop(sk) \ 418 ((ASN1_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))) 419 420#define sk_ASN1_OBJECT_dup(sk) \ 421 ((STACK_OF(ASN1_OBJECT) *)sk_dup( \ 422 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk))) 423 424#define sk_ASN1_OBJECT_sort(sk) \ 425 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)) 426 427#define sk_ASN1_OBJECT_is_sorted(sk) \ 428 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk)) 429 430#define sk_ASN1_OBJECT_set_cmp_func(sk, comp) \ 431 ((int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b))sk_set_cmp_func( \ 432 CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 433 CHECKED_CAST(stack_cmp_func, \ 434 int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b), \ 435 comp))) 436 437#define sk_ASN1_OBJECT_deep_copy(sk, copy_func, free_func) \ 438 ((STACK_OF(ASN1_OBJECT) *)sk_deep_copy( \ 439 CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_OBJECT) *, sk), \ 440 CHECKED_CAST(void *(*)(void *), ASN1_OBJECT *(*)(ASN1_OBJECT *), \ 441 copy_func), \ 442 CHECKED_CAST(void (*)(void *), void (*)(ASN1_OBJECT *), free_func))) 443 444/* ASN1_STRING_TABLE */ 445#define sk_ASN1_STRING_TABLE_new(comp) \ 446 ((STACK_OF(ASN1_STRING_TABLE) *)sk_new(CHECKED_CAST( \ 447 stack_cmp_func, \ 448 int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b), \ 449 comp))) 450 451#define sk_ASN1_STRING_TABLE_new_null() \ 452 ((STACK_OF(ASN1_STRING_TABLE) *)sk_new_null()) 453 454#define sk_ASN1_STRING_TABLE_num(sk) \ 455 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)) 456 457#define sk_ASN1_STRING_TABLE_zero(sk) \ 458 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)); 459 460#define sk_ASN1_STRING_TABLE_value(sk, i) \ 461 ((ASN1_STRING_TABLE *)sk_value( \ 462 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk), (i))) 463 464#define sk_ASN1_STRING_TABLE_set(sk, i, p) \ 465 ((ASN1_STRING_TABLE *)sk_set( \ 466 CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), (i), \ 467 CHECKED_CAST(void *, ASN1_STRING_TABLE *, p))) 468 469#define sk_ASN1_STRING_TABLE_free(sk) \ 470 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)) 471 472#define sk_ASN1_STRING_TABLE_pop_free(sk, free_func) \ 473 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 474 CHECKED_CAST(void (*)(void *), void (*)(ASN1_STRING_TABLE *), \ 475 free_func)) 476 477#define sk_ASN1_STRING_TABLE_insert(sk, p, where) \ 478 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 479 CHECKED_CAST(void *, ASN1_STRING_TABLE *, p), (where)) 480 481#define sk_ASN1_STRING_TABLE_delete(sk, where) \ 482 ((ASN1_STRING_TABLE *)sk_delete( \ 483 CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), (where))) 484 485#define sk_ASN1_STRING_TABLE_delete_ptr(sk, p) \ 486 ((ASN1_STRING_TABLE *)sk_delete_ptr( \ 487 CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 488 CHECKED_CAST(void *, ASN1_STRING_TABLE *, p))) 489 490#define sk_ASN1_STRING_TABLE_find(sk, out_index, p) \ 491 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 492 (out_index), CHECKED_CAST(void *, ASN1_STRING_TABLE *, p)) 493 494#define sk_ASN1_STRING_TABLE_shift(sk) \ 495 ((ASN1_STRING_TABLE *)sk_shift( \ 496 CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))) 497 498#define sk_ASN1_STRING_TABLE_push(sk, p) \ 499 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 500 CHECKED_CAST(void *, ASN1_STRING_TABLE *, p)) 501 502#define sk_ASN1_STRING_TABLE_pop(sk) \ 503 ((ASN1_STRING_TABLE *)sk_pop( \ 504 CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))) 505 506#define sk_ASN1_STRING_TABLE_dup(sk) \ 507 ((STACK_OF(ASN1_STRING_TABLE) *)sk_dup( \ 508 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk))) 509 510#define sk_ASN1_STRING_TABLE_sort(sk) \ 511 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)) 512 513#define sk_ASN1_STRING_TABLE_is_sorted(sk) \ 514 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk)) 515 516#define sk_ASN1_STRING_TABLE_set_cmp_func(sk, comp) \ 517 ((int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b)) \ 518 sk_set_cmp_func( \ 519 CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 520 CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_STRING_TABLE **a, \ 521 const ASN1_STRING_TABLE **b), \ 522 comp))) 523 524#define sk_ASN1_STRING_TABLE_deep_copy(sk, copy_func, free_func) \ 525 ((STACK_OF(ASN1_STRING_TABLE) *)sk_deep_copy( \ 526 CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk), \ 527 CHECKED_CAST(void *(*)(void *), \ 528 ASN1_STRING_TABLE *(*)(ASN1_STRING_TABLE *), copy_func), \ 529 CHECKED_CAST(void (*)(void *), void (*)(ASN1_STRING_TABLE *), \ 530 free_func))) 531 532/* ASN1_TYPE */ 533#define sk_ASN1_TYPE_new(comp) \ 534 ((STACK_OF(ASN1_TYPE) *)sk_new( \ 535 CHECKED_CAST(stack_cmp_func, \ 536 int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b), comp))) 537 538#define sk_ASN1_TYPE_new_null() ((STACK_OF(ASN1_TYPE) *)sk_new_null()) 539 540#define sk_ASN1_TYPE_num(sk) \ 541 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)) 542 543#define sk_ASN1_TYPE_zero(sk) \ 544 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)); 545 546#define sk_ASN1_TYPE_value(sk, i) \ 547 ((ASN1_TYPE *)sk_value( \ 548 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk), (i))) 549 550#define sk_ASN1_TYPE_set(sk, i, p) \ 551 ((ASN1_TYPE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), (i), \ 552 CHECKED_CAST(void *, ASN1_TYPE *, p))) 553 554#define sk_ASN1_TYPE_free(sk) \ 555 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)) 556 557#define sk_ASN1_TYPE_pop_free(sk, free_func) \ 558 sk_pop_free( \ 559 CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 560 CHECKED_CAST(void (*)(void *), void (*)(ASN1_TYPE *), free_func)) 561 562#define sk_ASN1_TYPE_insert(sk, p, where) \ 563 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 564 CHECKED_CAST(void *, ASN1_TYPE *, p), (where)) 565 566#define sk_ASN1_TYPE_delete(sk, where) \ 567 ((ASN1_TYPE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 568 (where))) 569 570#define sk_ASN1_TYPE_delete_ptr(sk, p) \ 571 ((ASN1_TYPE *)sk_delete_ptr( \ 572 CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 573 CHECKED_CAST(void *, ASN1_TYPE *, p))) 574 575#define sk_ASN1_TYPE_find(sk, out_index, p) \ 576 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), (out_index), \ 577 CHECKED_CAST(void *, ASN1_TYPE *, p)) 578 579#define sk_ASN1_TYPE_shift(sk) \ 580 ((ASN1_TYPE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))) 581 582#define sk_ASN1_TYPE_push(sk, p) \ 583 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 584 CHECKED_CAST(void *, ASN1_TYPE *, p)) 585 586#define sk_ASN1_TYPE_pop(sk) \ 587 ((ASN1_TYPE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))) 588 589#define sk_ASN1_TYPE_dup(sk) \ 590 ((STACK_OF(ASN1_TYPE) *)sk_dup( \ 591 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk))) 592 593#define sk_ASN1_TYPE_sort(sk) \ 594 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)) 595 596#define sk_ASN1_TYPE_is_sorted(sk) \ 597 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk)) 598 599#define sk_ASN1_TYPE_set_cmp_func(sk, comp) \ 600 ((int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b))sk_set_cmp_func( \ 601 CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 602 CHECKED_CAST(stack_cmp_func, \ 603 int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b), comp))) 604 605#define sk_ASN1_TYPE_deep_copy(sk, copy_func, free_func) \ 606 ((STACK_OF(ASN1_TYPE) *)sk_deep_copy( \ 607 CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_TYPE) *, sk), \ 608 CHECKED_CAST(void *(*)(void *), ASN1_TYPE *(*)(ASN1_TYPE *), copy_func), \ 609 CHECKED_CAST(void (*)(void *), void (*)(ASN1_TYPE *), free_func))) 610 611/* ASN1_VALUE */ 612#define sk_ASN1_VALUE_new(comp) \ 613 ((STACK_OF(ASN1_VALUE) *)sk_new(CHECKED_CAST( \ 614 stack_cmp_func, int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b), \ 615 comp))) 616 617#define sk_ASN1_VALUE_new_null() ((STACK_OF(ASN1_VALUE) *)sk_new_null()) 618 619#define sk_ASN1_VALUE_num(sk) \ 620 sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)) 621 622#define sk_ASN1_VALUE_zero(sk) \ 623 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)); 624 625#define sk_ASN1_VALUE_value(sk, i) \ 626 ((ASN1_VALUE *)sk_value( \ 627 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk), (i))) 628 629#define sk_ASN1_VALUE_set(sk, i, p) \ 630 ((ASN1_VALUE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 631 (i), CHECKED_CAST(void *, ASN1_VALUE *, p))) 632 633#define sk_ASN1_VALUE_free(sk) \ 634 sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)) 635 636#define sk_ASN1_VALUE_pop_free(sk, free_func) \ 637 sk_pop_free( \ 638 CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 639 CHECKED_CAST(void (*)(void *), void (*)(ASN1_VALUE *), free_func)) 640 641#define sk_ASN1_VALUE_insert(sk, p, where) \ 642 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 643 CHECKED_CAST(void *, ASN1_VALUE *, p), (where)) 644 645#define sk_ASN1_VALUE_delete(sk, where) \ 646 ((ASN1_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 647 (where))) 648 649#define sk_ASN1_VALUE_delete_ptr(sk, p) \ 650 ((ASN1_VALUE *)sk_delete_ptr( \ 651 CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 652 CHECKED_CAST(void *, ASN1_VALUE *, p))) 653 654#define sk_ASN1_VALUE_find(sk, out_index, p) \ 655 sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), (out_index), \ 656 CHECKED_CAST(void *, ASN1_VALUE *, p)) 657 658#define sk_ASN1_VALUE_shift(sk) \ 659 ((ASN1_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))) 660 661#define sk_ASN1_VALUE_push(sk, p) \ 662 sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 663 CHECKED_CAST(void *, ASN1_VALUE *, p)) 664 665#define sk_ASN1_VALUE_pop(sk) \ 666 ((ASN1_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))) 667 668#define sk_ASN1_VALUE_dup(sk) \ 669 ((STACK_OF(ASN1_VALUE) *)sk_dup( \ 670 CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk))) 671 672#define sk_ASN1_VALUE_sort(sk) \ 673 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)) 674 675#define sk_ASN1_VALUE_is_sorted(sk) \ 676 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk)) 677 678#define sk_ASN1_VALUE_set_cmp_func(sk, comp) \ 679 ((int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b))sk_set_cmp_func( \ 680 CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 681 CHECKED_CAST(stack_cmp_func, \ 682 int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b), \ 683 comp))) 684 685#define sk_ASN1_VALUE_deep_copy(sk, copy_func, free_func) \ 686 ((STACK_OF(ASN1_VALUE) *)sk_deep_copy( \ 687 CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_VALUE) *, sk), \ 688 CHECKED_CAST(void *(*)(void *), ASN1_VALUE *(*)(ASN1_VALUE *), \ 689 copy_func), \ 690 CHECKED_CAST(void (*)(void *), void (*)(ASN1_VALUE *), free_func))) 691 692/* BIO */ 693#define sk_BIO_new(comp) \ 694 ((STACK_OF(BIO) *)sk_new(CHECKED_CAST( \ 695 stack_cmp_func, int (*)(const BIO **a, const BIO **b), comp))) 696 697#define sk_BIO_new_null() ((STACK_OF(BIO) *)sk_new_null()) 698 699#define sk_BIO_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)) 700 701#define sk_BIO_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)); 702 703#define sk_BIO_value(sk, i) \ 704 ((BIO *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk), (i))) 705 706#define sk_BIO_set(sk, i, p) \ 707 ((BIO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (i), \ 708 CHECKED_CAST(void *, BIO *, p))) 709 710#define sk_BIO_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)) 711 712#define sk_BIO_pop_free(sk, free_func) \ 713 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 714 CHECKED_CAST(void (*)(void *), void (*)(BIO *), free_func)) 715 716#define sk_BIO_insert(sk, p, where) \ 717 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 718 CHECKED_CAST(void *, BIO *, p), (where)) 719 720#define sk_BIO_delete(sk, where) \ 721 ((BIO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (where))) 722 723#define sk_BIO_delete_ptr(sk, p) \ 724 ((BIO *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 725 CHECKED_CAST(void *, BIO *, p))) 726 727#define sk_BIO_find(sk, out_index, p) \ 728 sk_find(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (out_index), \ 729 CHECKED_CAST(void *, BIO *, p)) 730 731#define sk_BIO_shift(sk) \ 732 ((BIO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))) 733 734#define sk_BIO_push(sk, p) \ 735 sk_push(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 736 CHECKED_CAST(void *, BIO *, p)) 737 738#define sk_BIO_pop(sk) \ 739 ((BIO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))) 740 741#define sk_BIO_dup(sk) \ 742 ((STACK_OF(BIO) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk))) 743 744#define sk_BIO_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)) 745 746#define sk_BIO_is_sorted(sk) \ 747 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk)) 748 749#define sk_BIO_set_cmp_func(sk, comp) \ 750 ((int (*)(const BIO **a, const BIO **b))sk_set_cmp_func( \ 751 CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 752 CHECKED_CAST(stack_cmp_func, int (*)(const BIO **a, const BIO **b), \ 753 comp))) 754 755#define sk_BIO_deep_copy(sk, copy_func, free_func) \ 756 ((STACK_OF(BIO) *)sk_deep_copy( \ 757 CHECKED_CAST(const _STACK *, const STACK_OF(BIO) *, sk), \ 758 CHECKED_CAST(void *(*)(void *), BIO *(*)(BIO *), copy_func), \ 759 CHECKED_CAST(void (*)(void *), void (*)(BIO *), free_func))) 760 761/* BY_DIR_ENTRY */ 762#define sk_BY_DIR_ENTRY_new(comp) \ 763 ((STACK_OF(BY_DIR_ENTRY) *)sk_new(CHECKED_CAST( \ 764 stack_cmp_func, int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b), \ 765 comp))) 766 767#define sk_BY_DIR_ENTRY_new_null() ((STACK_OF(BY_DIR_ENTRY) *)sk_new_null()) 768 769#define sk_BY_DIR_ENTRY_num(sk) \ 770 sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)) 771 772#define sk_BY_DIR_ENTRY_zero(sk) \ 773 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)); 774 775#define sk_BY_DIR_ENTRY_value(sk, i) \ 776 ((BY_DIR_ENTRY *)sk_value( \ 777 CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk), (i))) 778 779#define sk_BY_DIR_ENTRY_set(sk, i, p) \ 780 ((BY_DIR_ENTRY *)sk_set( \ 781 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (i), \ 782 CHECKED_CAST(void *, BY_DIR_ENTRY *, p))) 783 784#define sk_BY_DIR_ENTRY_free(sk) \ 785 sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)) 786 787#define sk_BY_DIR_ENTRY_pop_free(sk, free_func) \ 788 sk_pop_free( \ 789 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 790 CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_ENTRY *), free_func)) 791 792#define sk_BY_DIR_ENTRY_insert(sk, p, where) \ 793 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 794 CHECKED_CAST(void *, BY_DIR_ENTRY *, p), (where)) 795 796#define sk_BY_DIR_ENTRY_delete(sk, where) \ 797 ((BY_DIR_ENTRY *)sk_delete( \ 798 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (where))) 799 800#define sk_BY_DIR_ENTRY_delete_ptr(sk, p) \ 801 ((BY_DIR_ENTRY *)sk_delete_ptr( \ 802 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 803 CHECKED_CAST(void *, BY_DIR_ENTRY *, p))) 804 805#define sk_BY_DIR_ENTRY_find(sk, out_index, p) \ 806 sk_find(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (out_index), \ 807 CHECKED_CAST(void *, BY_DIR_ENTRY *, p)) 808 809#define sk_BY_DIR_ENTRY_shift(sk) \ 810 ((BY_DIR_ENTRY *)sk_shift( \ 811 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))) 812 813#define sk_BY_DIR_ENTRY_push(sk, p) \ 814 sk_push(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 815 CHECKED_CAST(void *, BY_DIR_ENTRY *, p)) 816 817#define sk_BY_DIR_ENTRY_pop(sk) \ 818 ((BY_DIR_ENTRY *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))) 819 820#define sk_BY_DIR_ENTRY_dup(sk) \ 821 ((STACK_OF(BY_DIR_ENTRY) *)sk_dup( \ 822 CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk))) 823 824#define sk_BY_DIR_ENTRY_sort(sk) \ 825 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)) 826 827#define sk_BY_DIR_ENTRY_is_sorted(sk) \ 828 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk)) 829 830#define sk_BY_DIR_ENTRY_set_cmp_func(sk, comp) \ 831 ((int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b))sk_set_cmp_func( \ 832 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 833 CHECKED_CAST(stack_cmp_func, \ 834 int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b), \ 835 comp))) 836 837#define sk_BY_DIR_ENTRY_deep_copy(sk, copy_func, free_func) \ 838 ((STACK_OF(BY_DIR_ENTRY) *)sk_deep_copy( \ 839 CHECKED_CAST(const _STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk), \ 840 CHECKED_CAST(void *(*)(void *), BY_DIR_ENTRY *(*)(BY_DIR_ENTRY *), \ 841 copy_func), \ 842 CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_ENTRY *), free_func))) 843 844/* BY_DIR_HASH */ 845#define sk_BY_DIR_HASH_new(comp) \ 846 ((STACK_OF(BY_DIR_HASH) *)sk_new(CHECKED_CAST( \ 847 stack_cmp_func, int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b), \ 848 comp))) 849 850#define sk_BY_DIR_HASH_new_null() ((STACK_OF(BY_DIR_HASH) *)sk_new_null()) 851 852#define sk_BY_DIR_HASH_num(sk) \ 853 sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)) 854 855#define sk_BY_DIR_HASH_zero(sk) \ 856 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)); 857 858#define sk_BY_DIR_HASH_value(sk, i) \ 859 ((BY_DIR_HASH *)sk_value( \ 860 CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk), (i))) 861 862#define sk_BY_DIR_HASH_set(sk, i, p) \ 863 ((BY_DIR_HASH *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 864 (i), CHECKED_CAST(void *, BY_DIR_HASH *, p))) 865 866#define sk_BY_DIR_HASH_free(sk) \ 867 sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)) 868 869#define sk_BY_DIR_HASH_pop_free(sk, free_func) \ 870 sk_pop_free( \ 871 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 872 CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_HASH *), free_func)) 873 874#define sk_BY_DIR_HASH_insert(sk, p, where) \ 875 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 876 CHECKED_CAST(void *, BY_DIR_HASH *, p), (where)) 877 878#define sk_BY_DIR_HASH_delete(sk, where) \ 879 ((BY_DIR_HASH *)sk_delete( \ 880 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), (where))) 881 882#define sk_BY_DIR_HASH_delete_ptr(sk, p) \ 883 ((BY_DIR_HASH *)sk_delete_ptr( \ 884 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 885 CHECKED_CAST(void *, BY_DIR_HASH *, p))) 886 887#define sk_BY_DIR_HASH_find(sk, out_index, p) \ 888 sk_find(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), (out_index), \ 889 CHECKED_CAST(void *, BY_DIR_HASH *, p)) 890 891#define sk_BY_DIR_HASH_shift(sk) \ 892 ((BY_DIR_HASH *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))) 893 894#define sk_BY_DIR_HASH_push(sk, p) \ 895 sk_push(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 896 CHECKED_CAST(void *, BY_DIR_HASH *, p)) 897 898#define sk_BY_DIR_HASH_pop(sk) \ 899 ((BY_DIR_HASH *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))) 900 901#define sk_BY_DIR_HASH_dup(sk) \ 902 ((STACK_OF(BY_DIR_HASH) *)sk_dup( \ 903 CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk))) 904 905#define sk_BY_DIR_HASH_sort(sk) \ 906 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)) 907 908#define sk_BY_DIR_HASH_is_sorted(sk) \ 909 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk)) 910 911#define sk_BY_DIR_HASH_set_cmp_func(sk, comp) \ 912 ((int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b))sk_set_cmp_func( \ 913 CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 914 CHECKED_CAST(stack_cmp_func, \ 915 int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b), \ 916 comp))) 917 918#define sk_BY_DIR_HASH_deep_copy(sk, copy_func, free_func) \ 919 ((STACK_OF(BY_DIR_HASH) *)sk_deep_copy( \ 920 CHECKED_CAST(const _STACK *, const STACK_OF(BY_DIR_HASH) *, sk), \ 921 CHECKED_CAST(void *(*)(void *), BY_DIR_HASH *(*)(BY_DIR_HASH *), \ 922 copy_func), \ 923 CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_HASH *), free_func))) 924 925/* CONF_VALUE */ 926#define sk_CONF_VALUE_new(comp) \ 927 ((STACK_OF(CONF_VALUE) *)sk_new(CHECKED_CAST( \ 928 stack_cmp_func, int (*)(const CONF_VALUE **a, const CONF_VALUE **b), \ 929 comp))) 930 931#define sk_CONF_VALUE_new_null() ((STACK_OF(CONF_VALUE) *)sk_new_null()) 932 933#define sk_CONF_VALUE_num(sk) \ 934 sk_num(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)) 935 936#define sk_CONF_VALUE_zero(sk) \ 937 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)); 938 939#define sk_CONF_VALUE_value(sk, i) \ 940 ((CONF_VALUE *)sk_value( \ 941 CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk), (i))) 942 943#define sk_CONF_VALUE_set(sk, i, p) \ 944 ((CONF_VALUE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 945 (i), CHECKED_CAST(void *, CONF_VALUE *, p))) 946 947#define sk_CONF_VALUE_free(sk) \ 948 sk_free(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)) 949 950#define sk_CONF_VALUE_pop_free(sk, free_func) \ 951 sk_pop_free( \ 952 CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 953 CHECKED_CAST(void (*)(void *), void (*)(CONF_VALUE *), free_func)) 954 955#define sk_CONF_VALUE_insert(sk, p, where) \ 956 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 957 CHECKED_CAST(void *, CONF_VALUE *, p), (where)) 958 959#define sk_CONF_VALUE_delete(sk, where) \ 960 ((CONF_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 961 (where))) 962 963#define sk_CONF_VALUE_delete_ptr(sk, p) \ 964 ((CONF_VALUE *)sk_delete_ptr( \ 965 CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 966 CHECKED_CAST(void *, CONF_VALUE *, p))) 967 968#define sk_CONF_VALUE_find(sk, out_index, p) \ 969 sk_find(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), (out_index), \ 970 CHECKED_CAST(void *, CONF_VALUE *, p)) 971 972#define sk_CONF_VALUE_shift(sk) \ 973 ((CONF_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))) 974 975#define sk_CONF_VALUE_push(sk, p) \ 976 sk_push(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 977 CHECKED_CAST(void *, CONF_VALUE *, p)) 978 979#define sk_CONF_VALUE_pop(sk) \ 980 ((CONF_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))) 981 982#define sk_CONF_VALUE_dup(sk) \ 983 ((STACK_OF(CONF_VALUE) *)sk_dup( \ 984 CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk))) 985 986#define sk_CONF_VALUE_sort(sk) \ 987 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)) 988 989#define sk_CONF_VALUE_is_sorted(sk) \ 990 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk)) 991 992#define sk_CONF_VALUE_set_cmp_func(sk, comp) \ 993 ((int (*)(const CONF_VALUE **a, const CONF_VALUE **b))sk_set_cmp_func( \ 994 CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 995 CHECKED_CAST(stack_cmp_func, \ 996 int (*)(const CONF_VALUE **a, const CONF_VALUE **b), \ 997 comp))) 998 999#define sk_CONF_VALUE_deep_copy(sk, copy_func, free_func) \ 1000 ((STACK_OF(CONF_VALUE) *)sk_deep_copy( \ 1001 CHECKED_CAST(const _STACK *, const STACK_OF(CONF_VALUE) *, sk), \ 1002 CHECKED_CAST(void *(*)(void *), CONF_VALUE *(*)(CONF_VALUE *), \ 1003 copy_func), \ 1004 CHECKED_CAST(void (*)(void *), void (*)(CONF_VALUE *), free_func))) 1005 1006/* CRYPTO_EX_DATA_FUNCS */ 1007#define sk_CRYPTO_EX_DATA_FUNCS_new(comp) \ 1008 ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_new(CHECKED_CAST( \ 1009 stack_cmp_func, \ 1010 int (*)(const CRYPTO_EX_DATA_FUNCS **a, const CRYPTO_EX_DATA_FUNCS **b), \ 1011 comp))) 1012 1013#define sk_CRYPTO_EX_DATA_FUNCS_new_null() \ 1014 ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_new_null()) 1015 1016#define sk_CRYPTO_EX_DATA_FUNCS_num(sk) \ 1017 sk_num(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 1018 1019#define sk_CRYPTO_EX_DATA_FUNCS_zero(sk) \ 1020 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)); 1021 1022#define sk_CRYPTO_EX_DATA_FUNCS_value(sk, i) \ 1023 ((CRYPTO_EX_DATA_FUNCS *)sk_value( \ 1024 CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 1025 (i))) 1026 1027#define sk_CRYPTO_EX_DATA_FUNCS_set(sk, i, p) \ 1028 ((CRYPTO_EX_DATA_FUNCS *)sk_set( \ 1029 CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), (i), \ 1030 CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p))) 1031 1032#define sk_CRYPTO_EX_DATA_FUNCS_free(sk) \ 1033 sk_free(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 1034 1035#define sk_CRYPTO_EX_DATA_FUNCS_pop_free(sk, free_func) \ 1036 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 1037 CHECKED_CAST(void (*)(void *), void (*)(CRYPTO_EX_DATA_FUNCS *), \ 1038 free_func)) 1039 1040#define sk_CRYPTO_EX_DATA_FUNCS_insert(sk, p, where) \ 1041 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 1042 CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p), (where)) 1043 1044#define sk_CRYPTO_EX_DATA_FUNCS_delete(sk, where) \ 1045 ((CRYPTO_EX_DATA_FUNCS *)sk_delete( \ 1046 CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), (where))) 1047 1048#define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(sk, p) \ 1049 ((CRYPTO_EX_DATA_FUNCS *)sk_delete_ptr( \ 1050 CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 1051 CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p))) 1052 1053#define sk_CRYPTO_EX_DATA_FUNCS_find(sk, out_index, p) \ 1054 sk_find(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 1055 (out_index), CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p)) 1056 1057#define sk_CRYPTO_EX_DATA_FUNCS_shift(sk) \ 1058 ((CRYPTO_EX_DATA_FUNCS *)sk_shift( \ 1059 CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))) 1060 1061#define sk_CRYPTO_EX_DATA_FUNCS_push(sk, p) \ 1062 sk_push(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 1063 CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p)) 1064 1065#define sk_CRYPTO_EX_DATA_FUNCS_pop(sk) \ 1066 ((CRYPTO_EX_DATA_FUNCS *)sk_pop( \ 1067 CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))) 1068 1069#define sk_CRYPTO_EX_DATA_FUNCS_dup(sk) \ 1070 ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_dup( \ 1071 CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))) 1072 1073#define sk_CRYPTO_EX_DATA_FUNCS_sort(sk) \ 1074 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 1075 1076#define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(sk) \ 1077 sk_is_sorted( \ 1078 CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 1079 1080#define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(sk, comp) \ 1081 ((int (*)(const CRYPTO_EX_DATA_FUNCS **a, const CRYPTO_EX_DATA_FUNCS **b)) \ 1082 sk_set_cmp_func( \ 1083 CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 1084 CHECKED_CAST(stack_cmp_func, \ 1085 int (*)(const CRYPTO_EX_DATA_FUNCS **a, \ 1086 const CRYPTO_EX_DATA_FUNCS **b), \ 1087 comp))) 1088 1089#define sk_CRYPTO_EX_DATA_FUNCS_deep_copy(sk, copy_func, free_func) \ 1090 ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_deep_copy( \ 1091 CHECKED_CAST(const _STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, \ 1092 sk), \ 1093 CHECKED_CAST(void *(*)(void *), \ 1094 CRYPTO_EX_DATA_FUNCS *(*)(CRYPTO_EX_DATA_FUNCS *), \ 1095 copy_func), \ 1096 CHECKED_CAST(void (*)(void *), void (*)(CRYPTO_EX_DATA_FUNCS *), \ 1097 free_func))) 1098 1099/* DIST_POINT */ 1100#define sk_DIST_POINT_new(comp) \ 1101 ((STACK_OF(DIST_POINT) *)sk_new(CHECKED_CAST( \ 1102 stack_cmp_func, int (*)(const DIST_POINT **a, const DIST_POINT **b), \ 1103 comp))) 1104 1105#define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)sk_new_null()) 1106 1107#define sk_DIST_POINT_num(sk) \ 1108 sk_num(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)) 1109 1110#define sk_DIST_POINT_zero(sk) \ 1111 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)); 1112 1113#define sk_DIST_POINT_value(sk, i) \ 1114 ((DIST_POINT *)sk_value( \ 1115 CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk), (i))) 1116 1117#define sk_DIST_POINT_set(sk, i, p) \ 1118 ((DIST_POINT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 1119 (i), CHECKED_CAST(void *, DIST_POINT *, p))) 1120 1121#define sk_DIST_POINT_free(sk) \ 1122 sk_free(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)) 1123 1124#define sk_DIST_POINT_pop_free(sk, free_func) \ 1125 sk_pop_free( \ 1126 CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 1127 CHECKED_CAST(void (*)(void *), void (*)(DIST_POINT *), free_func)) 1128 1129#define sk_DIST_POINT_insert(sk, p, where) \ 1130 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 1131 CHECKED_CAST(void *, DIST_POINT *, p), (where)) 1132 1133#define sk_DIST_POINT_delete(sk, where) \ 1134 ((DIST_POINT *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 1135 (where))) 1136 1137#define sk_DIST_POINT_delete_ptr(sk, p) \ 1138 ((DIST_POINT *)sk_delete_ptr( \ 1139 CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 1140 CHECKED_CAST(void *, DIST_POINT *, p))) 1141 1142#define sk_DIST_POINT_find(sk, out_index, p) \ 1143 sk_find(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), (out_index), \ 1144 CHECKED_CAST(void *, DIST_POINT *, p)) 1145 1146#define sk_DIST_POINT_shift(sk) \ 1147 ((DIST_POINT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))) 1148 1149#define sk_DIST_POINT_push(sk, p) \ 1150 sk_push(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 1151 CHECKED_CAST(void *, DIST_POINT *, p)) 1152 1153#define sk_DIST_POINT_pop(sk) \ 1154 ((DIST_POINT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))) 1155 1156#define sk_DIST_POINT_dup(sk) \ 1157 ((STACK_OF(DIST_POINT) *)sk_dup( \ 1158 CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk))) 1159 1160#define sk_DIST_POINT_sort(sk) \ 1161 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)) 1162 1163#define sk_DIST_POINT_is_sorted(sk) \ 1164 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk)) 1165 1166#define sk_DIST_POINT_set_cmp_func(sk, comp) \ 1167 ((int (*)(const DIST_POINT **a, const DIST_POINT **b))sk_set_cmp_func( \ 1168 CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 1169 CHECKED_CAST(stack_cmp_func, \ 1170 int (*)(const DIST_POINT **a, const DIST_POINT **b), \ 1171 comp))) 1172 1173#define sk_DIST_POINT_deep_copy(sk, copy_func, free_func) \ 1174 ((STACK_OF(DIST_POINT) *)sk_deep_copy( \ 1175 CHECKED_CAST(const _STACK *, const STACK_OF(DIST_POINT) *, sk), \ 1176 CHECKED_CAST(void *(*)(void *), DIST_POINT *(*)(DIST_POINT *), \ 1177 copy_func), \ 1178 CHECKED_CAST(void (*)(void *), void (*)(DIST_POINT *), free_func))) 1179 1180/* GENERAL_NAME */ 1181#define sk_GENERAL_NAME_new(comp) \ 1182 ((STACK_OF(GENERAL_NAME) *)sk_new(CHECKED_CAST( \ 1183 stack_cmp_func, int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b), \ 1184 comp))) 1185 1186#define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)sk_new_null()) 1187 1188#define sk_GENERAL_NAME_num(sk) \ 1189 sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)) 1190 1191#define sk_GENERAL_NAME_zero(sk) \ 1192 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)); 1193 1194#define sk_GENERAL_NAME_value(sk, i) \ 1195 ((GENERAL_NAME *)sk_value( \ 1196 CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk), (i))) 1197 1198#define sk_GENERAL_NAME_set(sk, i, p) \ 1199 ((GENERAL_NAME *)sk_set( \ 1200 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (i), \ 1201 CHECKED_CAST(void *, GENERAL_NAME *, p))) 1202 1203#define sk_GENERAL_NAME_free(sk) \ 1204 sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)) 1205 1206#define sk_GENERAL_NAME_pop_free(sk, free_func) \ 1207 sk_pop_free( \ 1208 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 1209 CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAME *), free_func)) 1210 1211#define sk_GENERAL_NAME_insert(sk, p, where) \ 1212 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 1213 CHECKED_CAST(void *, GENERAL_NAME *, p), (where)) 1214 1215#define sk_GENERAL_NAME_delete(sk, where) \ 1216 ((GENERAL_NAME *)sk_delete( \ 1217 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (where))) 1218 1219#define sk_GENERAL_NAME_delete_ptr(sk, p) \ 1220 ((GENERAL_NAME *)sk_delete_ptr( \ 1221 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 1222 CHECKED_CAST(void *, GENERAL_NAME *, p))) 1223 1224#define sk_GENERAL_NAME_find(sk, out_index, p) \ 1225 sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (out_index), \ 1226 CHECKED_CAST(void *, GENERAL_NAME *, p)) 1227 1228#define sk_GENERAL_NAME_shift(sk) \ 1229 ((GENERAL_NAME *)sk_shift( \ 1230 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))) 1231 1232#define sk_GENERAL_NAME_push(sk, p) \ 1233 sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 1234 CHECKED_CAST(void *, GENERAL_NAME *, p)) 1235 1236#define sk_GENERAL_NAME_pop(sk) \ 1237 ((GENERAL_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))) 1238 1239#define sk_GENERAL_NAME_dup(sk) \ 1240 ((STACK_OF(GENERAL_NAME) *)sk_dup( \ 1241 CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk))) 1242 1243#define sk_GENERAL_NAME_sort(sk) \ 1244 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)) 1245 1246#define sk_GENERAL_NAME_is_sorted(sk) \ 1247 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk)) 1248 1249#define sk_GENERAL_NAME_set_cmp_func(sk, comp) \ 1250 ((int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b))sk_set_cmp_func( \ 1251 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 1252 CHECKED_CAST(stack_cmp_func, \ 1253 int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b), \ 1254 comp))) 1255 1256#define sk_GENERAL_NAME_deep_copy(sk, copy_func, free_func) \ 1257 ((STACK_OF(GENERAL_NAME) *)sk_deep_copy( \ 1258 CHECKED_CAST(const _STACK *, const STACK_OF(GENERAL_NAME) *, sk), \ 1259 CHECKED_CAST(void *(*)(void *), GENERAL_NAME *(*)(GENERAL_NAME *), \ 1260 copy_func), \ 1261 CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAME *), free_func))) 1262 1263/* GENERAL_NAMES */ 1264#define sk_GENERAL_NAMES_new(comp) \ 1265 ((STACK_OF(GENERAL_NAMES) *)sk_new(CHECKED_CAST( \ 1266 stack_cmp_func, \ 1267 int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b), comp))) 1268 1269#define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)sk_new_null()) 1270 1271#define sk_GENERAL_NAMES_num(sk) \ 1272 sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)) 1273 1274#define sk_GENERAL_NAMES_zero(sk) \ 1275 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)); 1276 1277#define sk_GENERAL_NAMES_value(sk, i) \ 1278 ((GENERAL_NAMES *)sk_value( \ 1279 CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk), (i))) 1280 1281#define sk_GENERAL_NAMES_set(sk, i, p) \ 1282 ((GENERAL_NAMES *)sk_set( \ 1283 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (i), \ 1284 CHECKED_CAST(void *, GENERAL_NAMES *, p))) 1285 1286#define sk_GENERAL_NAMES_free(sk) \ 1287 sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)) 1288 1289#define sk_GENERAL_NAMES_pop_free(sk, free_func) \ 1290 sk_pop_free( \ 1291 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 1292 CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAMES *), free_func)) 1293 1294#define sk_GENERAL_NAMES_insert(sk, p, where) \ 1295 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 1296 CHECKED_CAST(void *, GENERAL_NAMES *, p), (where)) 1297 1298#define sk_GENERAL_NAMES_delete(sk, where) \ 1299 ((GENERAL_NAMES *)sk_delete( \ 1300 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (where))) 1301 1302#define sk_GENERAL_NAMES_delete_ptr(sk, p) \ 1303 ((GENERAL_NAMES *)sk_delete_ptr( \ 1304 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 1305 CHECKED_CAST(void *, GENERAL_NAMES *, p))) 1306 1307#define sk_GENERAL_NAMES_find(sk, out_index, p) \ 1308 sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (out_index), \ 1309 CHECKED_CAST(void *, GENERAL_NAMES *, p)) 1310 1311#define sk_GENERAL_NAMES_shift(sk) \ 1312 ((GENERAL_NAMES *)sk_shift( \ 1313 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))) 1314 1315#define sk_GENERAL_NAMES_push(sk, p) \ 1316 sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 1317 CHECKED_CAST(void *, GENERAL_NAMES *, p)) 1318 1319#define sk_GENERAL_NAMES_pop(sk) \ 1320 ((GENERAL_NAMES *)sk_pop( \ 1321 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))) 1322 1323#define sk_GENERAL_NAMES_dup(sk) \ 1324 ((STACK_OF(GENERAL_NAMES) *)sk_dup( \ 1325 CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk))) 1326 1327#define sk_GENERAL_NAMES_sort(sk) \ 1328 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)) 1329 1330#define sk_GENERAL_NAMES_is_sorted(sk) \ 1331 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk)) 1332 1333#define sk_GENERAL_NAMES_set_cmp_func(sk, comp) \ 1334 ((int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b))sk_set_cmp_func( \ 1335 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 1336 CHECKED_CAST(stack_cmp_func, \ 1337 int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b), \ 1338 comp))) 1339 1340#define sk_GENERAL_NAMES_deep_copy(sk, copy_func, free_func) \ 1341 ((STACK_OF(GENERAL_NAMES) *)sk_deep_copy( \ 1342 CHECKED_CAST(const _STACK *, const STACK_OF(GENERAL_NAMES) *, sk), \ 1343 CHECKED_CAST(void *(*)(void *), GENERAL_NAMES *(*)(GENERAL_NAMES *), \ 1344 copy_func), \ 1345 CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAMES *), free_func))) 1346 1347/* GENERAL_SUBTREE */ 1348#define sk_GENERAL_SUBTREE_new(comp) \ 1349 ((STACK_OF(GENERAL_SUBTREE) *)sk_new(CHECKED_CAST( \ 1350 stack_cmp_func, \ 1351 int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b), comp))) 1352 1353#define sk_GENERAL_SUBTREE_new_null() \ 1354 ((STACK_OF(GENERAL_SUBTREE) *)sk_new_null()) 1355 1356#define sk_GENERAL_SUBTREE_num(sk) \ 1357 sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)) 1358 1359#define sk_GENERAL_SUBTREE_zero(sk) \ 1360 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)); 1361 1362#define sk_GENERAL_SUBTREE_value(sk, i) \ 1363 ((GENERAL_SUBTREE *)sk_value( \ 1364 CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk), (i))) 1365 1366#define sk_GENERAL_SUBTREE_set(sk, i, p) \ 1367 ((GENERAL_SUBTREE *)sk_set( \ 1368 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), (i), \ 1369 CHECKED_CAST(void *, GENERAL_SUBTREE *, p))) 1370 1371#define sk_GENERAL_SUBTREE_free(sk) \ 1372 sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)) 1373 1374#define sk_GENERAL_SUBTREE_pop_free(sk, free_func) \ 1375 sk_pop_free( \ 1376 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 1377 CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func)) 1378 1379#define sk_GENERAL_SUBTREE_insert(sk, p, where) \ 1380 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 1381 CHECKED_CAST(void *, GENERAL_SUBTREE *, p), (where)) 1382 1383#define sk_GENERAL_SUBTREE_delete(sk, where) \ 1384 ((GENERAL_SUBTREE *)sk_delete( \ 1385 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), (where))) 1386 1387#define sk_GENERAL_SUBTREE_delete_ptr(sk, p) \ 1388 ((GENERAL_SUBTREE *)sk_delete_ptr( \ 1389 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 1390 CHECKED_CAST(void *, GENERAL_SUBTREE *, p))) 1391 1392#define sk_GENERAL_SUBTREE_find(sk, out_index, p) \ 1393 sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 1394 (out_index), CHECKED_CAST(void *, GENERAL_SUBTREE *, p)) 1395 1396#define sk_GENERAL_SUBTREE_shift(sk) \ 1397 ((GENERAL_SUBTREE *)sk_shift( \ 1398 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))) 1399 1400#define sk_GENERAL_SUBTREE_push(sk, p) \ 1401 sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 1402 CHECKED_CAST(void *, GENERAL_SUBTREE *, p)) 1403 1404#define sk_GENERAL_SUBTREE_pop(sk) \ 1405 ((GENERAL_SUBTREE *)sk_pop( \ 1406 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))) 1407 1408#define sk_GENERAL_SUBTREE_dup(sk) \ 1409 ((STACK_OF(GENERAL_SUBTREE) *)sk_dup( \ 1410 CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk))) 1411 1412#define sk_GENERAL_SUBTREE_sort(sk) \ 1413 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)) 1414 1415#define sk_GENERAL_SUBTREE_is_sorted(sk) \ 1416 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk)) 1417 1418#define sk_GENERAL_SUBTREE_set_cmp_func(sk, comp) \ 1419 ((int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b)) \ 1420 sk_set_cmp_func( \ 1421 CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 1422 CHECKED_CAST(stack_cmp_func, int (*)(const GENERAL_SUBTREE **a, \ 1423 const GENERAL_SUBTREE **b), \ 1424 comp))) 1425 1426#define sk_GENERAL_SUBTREE_deep_copy(sk, copy_func, free_func) \ 1427 ((STACK_OF(GENERAL_SUBTREE) *)sk_deep_copy( \ 1428 CHECKED_CAST(const _STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk), \ 1429 CHECKED_CAST(void *(*)(void *), GENERAL_SUBTREE *(*)(GENERAL_SUBTREE *), \ 1430 copy_func), \ 1431 CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func))) 1432 1433/* POLICYINFO */ 1434#define sk_POLICYINFO_new(comp) \ 1435 ((STACK_OF(POLICYINFO) *)sk_new(CHECKED_CAST( \ 1436 stack_cmp_func, int (*)(const POLICYINFO **a, const POLICYINFO **b), \ 1437 comp))) 1438 1439#define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)sk_new_null()) 1440 1441#define sk_POLICYINFO_num(sk) \ 1442 sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)) 1443 1444#define sk_POLICYINFO_zero(sk) \ 1445 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)); 1446 1447#define sk_POLICYINFO_value(sk, i) \ 1448 ((POLICYINFO *)sk_value( \ 1449 CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk), (i))) 1450 1451#define sk_POLICYINFO_set(sk, i, p) \ 1452 ((POLICYINFO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 1453 (i), CHECKED_CAST(void *, POLICYINFO *, p))) 1454 1455#define sk_POLICYINFO_free(sk) \ 1456 sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)) 1457 1458#define sk_POLICYINFO_pop_free(sk, free_func) \ 1459 sk_pop_free( \ 1460 CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 1461 CHECKED_CAST(void (*)(void *), void (*)(POLICYINFO *), free_func)) 1462 1463#define sk_POLICYINFO_insert(sk, p, where) \ 1464 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 1465 CHECKED_CAST(void *, POLICYINFO *, p), (where)) 1466 1467#define sk_POLICYINFO_delete(sk, where) \ 1468 ((POLICYINFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 1469 (where))) 1470 1471#define sk_POLICYINFO_delete_ptr(sk, p) \ 1472 ((POLICYINFO *)sk_delete_ptr( \ 1473 CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 1474 CHECKED_CAST(void *, POLICYINFO *, p))) 1475 1476#define sk_POLICYINFO_find(sk, out_index, p) \ 1477 sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), (out_index), \ 1478 CHECKED_CAST(void *, POLICYINFO *, p)) 1479 1480#define sk_POLICYINFO_shift(sk) \ 1481 ((POLICYINFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))) 1482 1483#define sk_POLICYINFO_push(sk, p) \ 1484 sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 1485 CHECKED_CAST(void *, POLICYINFO *, p)) 1486 1487#define sk_POLICYINFO_pop(sk) \ 1488 ((POLICYINFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))) 1489 1490#define sk_POLICYINFO_dup(sk) \ 1491 ((STACK_OF(POLICYINFO) *)sk_dup( \ 1492 CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk))) 1493 1494#define sk_POLICYINFO_sort(sk) \ 1495 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)) 1496 1497#define sk_POLICYINFO_is_sorted(sk) \ 1498 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk)) 1499 1500#define sk_POLICYINFO_set_cmp_func(sk, comp) \ 1501 ((int (*)(const POLICYINFO **a, const POLICYINFO **b))sk_set_cmp_func( \ 1502 CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 1503 CHECKED_CAST(stack_cmp_func, \ 1504 int (*)(const POLICYINFO **a, const POLICYINFO **b), \ 1505 comp))) 1506 1507#define sk_POLICYINFO_deep_copy(sk, copy_func, free_func) \ 1508 ((STACK_OF(POLICYINFO) *)sk_deep_copy( \ 1509 CHECKED_CAST(const _STACK *, const STACK_OF(POLICYINFO) *, sk), \ 1510 CHECKED_CAST(void *(*)(void *), POLICYINFO *(*)(POLICYINFO *), \ 1511 copy_func), \ 1512 CHECKED_CAST(void (*)(void *), void (*)(POLICYINFO *), free_func))) 1513 1514/* POLICYQUALINFO */ 1515#define sk_POLICYQUALINFO_new(comp) \ 1516 ((STACK_OF(POLICYQUALINFO) *)sk_new(CHECKED_CAST( \ 1517 stack_cmp_func, \ 1518 int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b), comp))) 1519 1520#define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)sk_new_null()) 1521 1522#define sk_POLICYQUALINFO_num(sk) \ 1523 sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)) 1524 1525#define sk_POLICYQUALINFO_zero(sk) \ 1526 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)); 1527 1528#define sk_POLICYQUALINFO_value(sk, i) \ 1529 ((POLICYQUALINFO *)sk_value( \ 1530 CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk), (i))) 1531 1532#define sk_POLICYQUALINFO_set(sk, i, p) \ 1533 ((POLICYQUALINFO *)sk_set( \ 1534 CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (i), \ 1535 CHECKED_CAST(void *, POLICYQUALINFO *, p))) 1536 1537#define sk_POLICYQUALINFO_free(sk) \ 1538 sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)) 1539 1540#define sk_POLICYQUALINFO_pop_free(sk, free_func) \ 1541 sk_pop_free( \ 1542 CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 1543 CHECKED_CAST(void (*)(void *), void (*)(POLICYQUALINFO *), free_func)) 1544 1545#define sk_POLICYQUALINFO_insert(sk, p, where) \ 1546 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 1547 CHECKED_CAST(void *, POLICYQUALINFO *, p), (where)) 1548 1549#define sk_POLICYQUALINFO_delete(sk, where) \ 1550 ((POLICYQUALINFO *)sk_delete( \ 1551 CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (where))) 1552 1553#define sk_POLICYQUALINFO_delete_ptr(sk, p) \ 1554 ((POLICYQUALINFO *)sk_delete_ptr( \ 1555 CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 1556 CHECKED_CAST(void *, POLICYQUALINFO *, p))) 1557 1558#define sk_POLICYQUALINFO_find(sk, out_index, p) \ 1559 sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (out_index), \ 1560 CHECKED_CAST(void *, POLICYQUALINFO *, p)) 1561 1562#define sk_POLICYQUALINFO_shift(sk) \ 1563 ((POLICYQUALINFO *)sk_shift( \ 1564 CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))) 1565 1566#define sk_POLICYQUALINFO_push(sk, p) \ 1567 sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 1568 CHECKED_CAST(void *, POLICYQUALINFO *, p)) 1569 1570#define sk_POLICYQUALINFO_pop(sk) \ 1571 ((POLICYQUALINFO *)sk_pop( \ 1572 CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))) 1573 1574#define sk_POLICYQUALINFO_dup(sk) \ 1575 ((STACK_OF(POLICYQUALINFO) *)sk_dup( \ 1576 CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk))) 1577 1578#define sk_POLICYQUALINFO_sort(sk) \ 1579 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)) 1580 1581#define sk_POLICYQUALINFO_is_sorted(sk) \ 1582 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk)) 1583 1584#define sk_POLICYQUALINFO_set_cmp_func(sk, comp) \ 1585 ((int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b)) \ 1586 sk_set_cmp_func( \ 1587 CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 1588 CHECKED_CAST(stack_cmp_func, int (*)(const POLICYQUALINFO **a, \ 1589 const POLICYQUALINFO **b), \ 1590 comp))) 1591 1592#define sk_POLICYQUALINFO_deep_copy(sk, copy_func, free_func) \ 1593 ((STACK_OF(POLICYQUALINFO) *)sk_deep_copy( \ 1594 CHECKED_CAST(const _STACK *, const STACK_OF(POLICYQUALINFO) *, sk), \ 1595 CHECKED_CAST(void *(*)(void *), POLICYQUALINFO *(*)(POLICYQUALINFO *), \ 1596 copy_func), \ 1597 CHECKED_CAST(void (*)(void *), void (*)(POLICYQUALINFO *), free_func))) 1598 1599/* POLICY_MAPPING */ 1600#define sk_POLICY_MAPPING_new(comp) \ 1601 ((STACK_OF(POLICY_MAPPING) *)sk_new(CHECKED_CAST( \ 1602 stack_cmp_func, \ 1603 int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b), comp))) 1604 1605#define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)sk_new_null()) 1606 1607#define sk_POLICY_MAPPING_num(sk) \ 1608 sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)) 1609 1610#define sk_POLICY_MAPPING_zero(sk) \ 1611 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)); 1612 1613#define sk_POLICY_MAPPING_value(sk, i) \ 1614 ((POLICY_MAPPING *)sk_value( \ 1615 CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk), (i))) 1616 1617#define sk_POLICY_MAPPING_set(sk, i, p) \ 1618 ((POLICY_MAPPING *)sk_set( \ 1619 CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (i), \ 1620 CHECKED_CAST(void *, POLICY_MAPPING *, p))) 1621 1622#define sk_POLICY_MAPPING_free(sk) \ 1623 sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)) 1624 1625#define sk_POLICY_MAPPING_pop_free(sk, free_func) \ 1626 sk_pop_free( \ 1627 CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 1628 CHECKED_CAST(void (*)(void *), void (*)(POLICY_MAPPING *), free_func)) 1629 1630#define sk_POLICY_MAPPING_insert(sk, p, where) \ 1631 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 1632 CHECKED_CAST(void *, POLICY_MAPPING *, p), (where)) 1633 1634#define sk_POLICY_MAPPING_delete(sk, where) \ 1635 ((POLICY_MAPPING *)sk_delete( \ 1636 CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (where))) 1637 1638#define sk_POLICY_MAPPING_delete_ptr(sk, p) \ 1639 ((POLICY_MAPPING *)sk_delete_ptr( \ 1640 CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 1641 CHECKED_CAST(void *, POLICY_MAPPING *, p))) 1642 1643#define sk_POLICY_MAPPING_find(sk, out_index, p) \ 1644 sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (out_index), \ 1645 CHECKED_CAST(void *, POLICY_MAPPING *, p)) 1646 1647#define sk_POLICY_MAPPING_shift(sk) \ 1648 ((POLICY_MAPPING *)sk_shift( \ 1649 CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))) 1650 1651#define sk_POLICY_MAPPING_push(sk, p) \ 1652 sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 1653 CHECKED_CAST(void *, POLICY_MAPPING *, p)) 1654 1655#define sk_POLICY_MAPPING_pop(sk) \ 1656 ((POLICY_MAPPING *)sk_pop( \ 1657 CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))) 1658 1659#define sk_POLICY_MAPPING_dup(sk) \ 1660 ((STACK_OF(POLICY_MAPPING) *)sk_dup( \ 1661 CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk))) 1662 1663#define sk_POLICY_MAPPING_sort(sk) \ 1664 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)) 1665 1666#define sk_POLICY_MAPPING_is_sorted(sk) \ 1667 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk)) 1668 1669#define sk_POLICY_MAPPING_set_cmp_func(sk, comp) \ 1670 ((int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b)) \ 1671 sk_set_cmp_func( \ 1672 CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 1673 CHECKED_CAST(stack_cmp_func, int (*)(const POLICY_MAPPING **a, \ 1674 const POLICY_MAPPING **b), \ 1675 comp))) 1676 1677#define sk_POLICY_MAPPING_deep_copy(sk, copy_func, free_func) \ 1678 ((STACK_OF(POLICY_MAPPING) *)sk_deep_copy( \ 1679 CHECKED_CAST(const _STACK *, const STACK_OF(POLICY_MAPPING) *, sk), \ 1680 CHECKED_CAST(void *(*)(void *), POLICY_MAPPING *(*)(POLICY_MAPPING *), \ 1681 copy_func), \ 1682 CHECKED_CAST(void (*)(void *), void (*)(POLICY_MAPPING *), free_func))) 1683 1684/* RSA_additional_prime */ 1685#define sk_RSA_additional_prime_new(comp) \ 1686 ((STACK_OF(RSA_additional_prime) *)sk_new(CHECKED_CAST( \ 1687 stack_cmp_func, \ 1688 int (*)(const RSA_additional_prime **a, const RSA_additional_prime **b), \ 1689 comp))) 1690 1691#define sk_RSA_additional_prime_new_null() \ 1692 ((STACK_OF(RSA_additional_prime) *)sk_new_null()) 1693 1694#define sk_RSA_additional_prime_num(sk) \ 1695 sk_num(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)) 1696 1697#define sk_RSA_additional_prime_zero(sk) \ 1698 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)); 1699 1700#define sk_RSA_additional_prime_value(sk, i) \ 1701 ((RSA_additional_prime *)sk_value( \ 1702 CHECKED_CAST(_STACK *, const STACK_OF(RSA_additional_prime) *, sk), \ 1703 (i))) 1704 1705#define sk_RSA_additional_prime_set(sk, i, p) \ 1706 ((RSA_additional_prime *)sk_set( \ 1707 CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), (i), \ 1708 CHECKED_CAST(void *, RSA_additional_prime *, p))) 1709 1710#define sk_RSA_additional_prime_free(sk) \ 1711 sk_free(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)) 1712 1713#define sk_RSA_additional_prime_pop_free(sk, free_func) \ 1714 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \ 1715 CHECKED_CAST(void (*)(void *), void (*)(RSA_additional_prime *), \ 1716 free_func)) 1717 1718#define sk_RSA_additional_prime_insert(sk, p, where) \ 1719 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \ 1720 CHECKED_CAST(void *, RSA_additional_prime *, p), (where)) 1721 1722#define sk_RSA_additional_prime_delete(sk, where) \ 1723 ((RSA_additional_prime *)sk_delete( \ 1724 CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), (where))) 1725 1726#define sk_RSA_additional_prime_delete_ptr(sk, p) \ 1727 ((RSA_additional_prime *)sk_delete_ptr( \ 1728 CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \ 1729 CHECKED_CAST(void *, RSA_additional_prime *, p))) 1730 1731#define sk_RSA_additional_prime_find(sk, out_index, p) \ 1732 sk_find(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \ 1733 (out_index), CHECKED_CAST(void *, RSA_additional_prime *, p)) 1734 1735#define sk_RSA_additional_prime_shift(sk) \ 1736 ((RSA_additional_prime *)sk_shift( \ 1737 CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))) 1738 1739#define sk_RSA_additional_prime_push(sk, p) \ 1740 sk_push(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \ 1741 CHECKED_CAST(void *, RSA_additional_prime *, p)) 1742 1743#define sk_RSA_additional_prime_pop(sk) \ 1744 ((RSA_additional_prime *)sk_pop( \ 1745 CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))) 1746 1747#define sk_RSA_additional_prime_dup(sk) \ 1748 ((STACK_OF(RSA_additional_prime) *)sk_dup( \ 1749 CHECKED_CAST(_STACK *, const STACK_OF(RSA_additional_prime) *, sk))) 1750 1751#define sk_RSA_additional_prime_sort(sk) \ 1752 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)) 1753 1754#define sk_RSA_additional_prime_is_sorted(sk) \ 1755 sk_is_sorted( \ 1756 CHECKED_CAST(_STACK *, const STACK_OF(RSA_additional_prime) *, sk)) 1757 1758#define sk_RSA_additional_prime_set_cmp_func(sk, comp) \ 1759 ((int (*)(const RSA_additional_prime **a, const RSA_additional_prime **b)) \ 1760 sk_set_cmp_func( \ 1761 CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \ 1762 CHECKED_CAST(stack_cmp_func, \ 1763 int (*)(const RSA_additional_prime **a, \ 1764 const RSA_additional_prime **b), \ 1765 comp))) 1766 1767#define sk_RSA_additional_prime_deep_copy(sk, copy_func, free_func) \ 1768 ((STACK_OF(RSA_additional_prime) *)sk_deep_copy( \ 1769 CHECKED_CAST(const _STACK *, const STACK_OF(RSA_additional_prime) *, \ 1770 sk), \ 1771 CHECKED_CAST(void *(*)(void *), \ 1772 RSA_additional_prime *(*)(RSA_additional_prime *), \ 1773 copy_func), \ 1774 CHECKED_CAST(void (*)(void *), void (*)(RSA_additional_prime *), \ 1775 free_func))) 1776 1777/* SSL_COMP */ 1778#define sk_SSL_COMP_new(comp) \ 1779 ((STACK_OF(SSL_COMP) *)sk_new(CHECKED_CAST( \ 1780 stack_cmp_func, int (*)(const SSL_COMP **a, const SSL_COMP **b), comp))) 1781 1782#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)sk_new_null()) 1783 1784#define sk_SSL_COMP_num(sk) \ 1785 sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)) 1786 1787#define sk_SSL_COMP_zero(sk) \ 1788 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)); 1789 1790#define sk_SSL_COMP_value(sk, i) \ 1791 ((SSL_COMP *)sk_value( \ 1792 CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk), (i))) 1793 1794#define sk_SSL_COMP_set(sk, i, p) \ 1795 ((SSL_COMP *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), (i), \ 1796 CHECKED_CAST(void *, SSL_COMP *, p))) 1797 1798#define sk_SSL_COMP_free(sk) \ 1799 sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)) 1800 1801#define sk_SSL_COMP_pop_free(sk, free_func) \ 1802 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 1803 CHECKED_CAST(void (*)(void *), void (*)(SSL_COMP *), free_func)) 1804 1805#define sk_SSL_COMP_insert(sk, p, where) \ 1806 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 1807 CHECKED_CAST(void *, SSL_COMP *, p), (where)) 1808 1809#define sk_SSL_COMP_delete(sk, where) \ 1810 ((SSL_COMP *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 1811 (where))) 1812 1813#define sk_SSL_COMP_delete_ptr(sk, p) \ 1814 ((SSL_COMP *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 1815 CHECKED_CAST(void *, SSL_COMP *, p))) 1816 1817#define sk_SSL_COMP_find(sk, out_index, p) \ 1818 sk_find(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), (out_index), \ 1819 CHECKED_CAST(void *, SSL_COMP *, p)) 1820 1821#define sk_SSL_COMP_shift(sk) \ 1822 ((SSL_COMP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))) 1823 1824#define sk_SSL_COMP_push(sk, p) \ 1825 sk_push(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 1826 CHECKED_CAST(void *, SSL_COMP *, p)) 1827 1828#define sk_SSL_COMP_pop(sk) \ 1829 ((SSL_COMP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))) 1830 1831#define sk_SSL_COMP_dup(sk) \ 1832 ((STACK_OF(SSL_COMP) *)sk_dup( \ 1833 CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk))) 1834 1835#define sk_SSL_COMP_sort(sk) \ 1836 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)) 1837 1838#define sk_SSL_COMP_is_sorted(sk) \ 1839 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk)) 1840 1841#define sk_SSL_COMP_set_cmp_func(sk, comp) \ 1842 ((int (*)(const SSL_COMP **a, const SSL_COMP **b))sk_set_cmp_func( \ 1843 CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 1844 CHECKED_CAST(stack_cmp_func, \ 1845 int (*)(const SSL_COMP **a, const SSL_COMP **b), comp))) 1846 1847#define sk_SSL_COMP_deep_copy(sk, copy_func, free_func) \ 1848 ((STACK_OF(SSL_COMP) *)sk_deep_copy( \ 1849 CHECKED_CAST(const _STACK *, const STACK_OF(SSL_COMP) *, sk), \ 1850 CHECKED_CAST(void *(*)(void *), SSL_COMP *(*)(SSL_COMP *), copy_func), \ 1851 CHECKED_CAST(void (*)(void *), void (*)(SSL_COMP *), free_func))) 1852 1853/* SSL_CUSTOM_EXTENSION */ 1854#define sk_SSL_CUSTOM_EXTENSION_new(comp) \ 1855 ((STACK_OF(SSL_CUSTOM_EXTENSION) *)sk_new(CHECKED_CAST( \ 1856 stack_cmp_func, \ 1857 int (*)(const SSL_CUSTOM_EXTENSION **a, const SSL_CUSTOM_EXTENSION **b), \ 1858 comp))) 1859 1860#define sk_SSL_CUSTOM_EXTENSION_new_null() \ 1861 ((STACK_OF(SSL_CUSTOM_EXTENSION) *)sk_new_null()) 1862 1863#define sk_SSL_CUSTOM_EXTENSION_num(sk) \ 1864 sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk)) 1865 1866#define sk_SSL_CUSTOM_EXTENSION_zero(sk) \ 1867 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk)); 1868 1869#define sk_SSL_CUSTOM_EXTENSION_value(sk, i) \ 1870 ((SSL_CUSTOM_EXTENSION *)sk_value( \ 1871 CHECKED_CAST(_STACK *, const STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), \ 1872 (i))) 1873 1874#define sk_SSL_CUSTOM_EXTENSION_set(sk, i, p) \ 1875 ((SSL_CUSTOM_EXTENSION *)sk_set( \ 1876 CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), (i), \ 1877 CHECKED_CAST(void *, SSL_CUSTOM_EXTENSION *, p))) 1878 1879#define sk_SSL_CUSTOM_EXTENSION_free(sk) \ 1880 sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk)) 1881 1882#define sk_SSL_CUSTOM_EXTENSION_pop_free(sk, free_func) \ 1883 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), \ 1884 CHECKED_CAST(void (*)(void *), void (*)(SSL_CUSTOM_EXTENSION *), \ 1885 free_func)) 1886 1887#define sk_SSL_CUSTOM_EXTENSION_insert(sk, p, where) \ 1888 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), \ 1889 CHECKED_CAST(void *, SSL_CUSTOM_EXTENSION *, p), (where)) 1890 1891#define sk_SSL_CUSTOM_EXTENSION_delete(sk, where) \ 1892 ((SSL_CUSTOM_EXTENSION *)sk_delete( \ 1893 CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), (where))) 1894 1895#define sk_SSL_CUSTOM_EXTENSION_delete_ptr(sk, p) \ 1896 ((SSL_CUSTOM_EXTENSION *)sk_delete_ptr( \ 1897 CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), \ 1898 CHECKED_CAST(void *, SSL_CUSTOM_EXTENSION *, p))) 1899 1900#define sk_SSL_CUSTOM_EXTENSION_find(sk, out_index, p) \ 1901 sk_find(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), \ 1902 (out_index), CHECKED_CAST(void *, SSL_CUSTOM_EXTENSION *, p)) 1903 1904#define sk_SSL_CUSTOM_EXTENSION_shift(sk) \ 1905 ((SSL_CUSTOM_EXTENSION *)sk_shift( \ 1906 CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk))) 1907 1908#define sk_SSL_CUSTOM_EXTENSION_push(sk, p) \ 1909 sk_push(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), \ 1910 CHECKED_CAST(void *, SSL_CUSTOM_EXTENSION *, p)) 1911 1912#define sk_SSL_CUSTOM_EXTENSION_pop(sk) \ 1913 ((SSL_CUSTOM_EXTENSION *)sk_pop( \ 1914 CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk))) 1915 1916#define sk_SSL_CUSTOM_EXTENSION_dup(sk) \ 1917 ((STACK_OF(SSL_CUSTOM_EXTENSION) *)sk_dup( \ 1918 CHECKED_CAST(_STACK *, const STACK_OF(SSL_CUSTOM_EXTENSION) *, sk))) 1919 1920#define sk_SSL_CUSTOM_EXTENSION_sort(sk) \ 1921 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk)) 1922 1923#define sk_SSL_CUSTOM_EXTENSION_is_sorted(sk) \ 1924 sk_is_sorted( \ 1925 CHECKED_CAST(_STACK *, const STACK_OF(SSL_CUSTOM_EXTENSION) *, sk)) 1926 1927#define sk_SSL_CUSTOM_EXTENSION_set_cmp_func(sk, comp) \ 1928 ((int (*)(const SSL_CUSTOM_EXTENSION **a, const SSL_CUSTOM_EXTENSION **b)) \ 1929 sk_set_cmp_func( \ 1930 CHECKED_CAST(_STACK *, STACK_OF(SSL_CUSTOM_EXTENSION) *, sk), \ 1931 CHECKED_CAST(stack_cmp_func, \ 1932 int (*)(const SSL_CUSTOM_EXTENSION **a, \ 1933 const SSL_CUSTOM_EXTENSION **b), \ 1934 comp))) 1935 1936#define sk_SSL_CUSTOM_EXTENSION_deep_copy(sk, copy_func, free_func) \ 1937 ((STACK_OF(SSL_CUSTOM_EXTENSION) *)sk_deep_copy( \ 1938 CHECKED_CAST(const _STACK *, const STACK_OF(SSL_CUSTOM_EXTENSION) *, \ 1939 sk), \ 1940 CHECKED_CAST(void *(*)(void *), \ 1941 SSL_CUSTOM_EXTENSION *(*)(SSL_CUSTOM_EXTENSION *), \ 1942 copy_func), \ 1943 CHECKED_CAST(void (*)(void *), void (*)(SSL_CUSTOM_EXTENSION *), \ 1944 free_func))) 1945 1946/* STACK_OF_X509_NAME_ENTRY */ 1947#define sk_STACK_OF_X509_NAME_ENTRY_new(comp) \ 1948 ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_new(CHECKED_CAST( \ 1949 stack_cmp_func, int (*)(const STACK_OF_X509_NAME_ENTRY **a, \ 1950 const STACK_OF_X509_NAME_ENTRY **b), \ 1951 comp))) 1952 1953#define sk_STACK_OF_X509_NAME_ENTRY_new_null() \ 1954 ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_new_null()) 1955 1956#define sk_STACK_OF_X509_NAME_ENTRY_num(sk) \ 1957 sk_num(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 1958 1959#define sk_STACK_OF_X509_NAME_ENTRY_zero(sk) \ 1960 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)); 1961 1962#define sk_STACK_OF_X509_NAME_ENTRY_value(sk, i) \ 1963 ((STACK_OF_X509_NAME_ENTRY *)sk_value( \ 1964 CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 1965 (i))) 1966 1967#define sk_STACK_OF_X509_NAME_ENTRY_set(sk, i, p) \ 1968 ((STACK_OF_X509_NAME_ENTRY *)sk_set( \ 1969 CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), (i), \ 1970 CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p))) 1971 1972#define sk_STACK_OF_X509_NAME_ENTRY_free(sk) \ 1973 sk_free(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 1974 1975#define sk_STACK_OF_X509_NAME_ENTRY_pop_free(sk, free_func) \ 1976 sk_pop_free( \ 1977 CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 1978 CHECKED_CAST(void (*)(void *), void (*)(STACK_OF_X509_NAME_ENTRY *), \ 1979 free_func)) 1980 1981#define sk_STACK_OF_X509_NAME_ENTRY_insert(sk, p, where) \ 1982 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 1983 CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p), (where)) 1984 1985#define sk_STACK_OF_X509_NAME_ENTRY_delete(sk, where) \ 1986 ((STACK_OF_X509_NAME_ENTRY *)sk_delete( \ 1987 CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 1988 (where))) 1989 1990#define sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(sk, p) \ 1991 ((STACK_OF_X509_NAME_ENTRY *)sk_delete_ptr( \ 1992 CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 1993 CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p))) 1994 1995#define sk_STACK_OF_X509_NAME_ENTRY_find(sk, out_index, p) \ 1996 sk_find(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 1997 (out_index), CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p)) 1998 1999#define sk_STACK_OF_X509_NAME_ENTRY_shift(sk) \ 2000 ((STACK_OF_X509_NAME_ENTRY *)sk_shift( \ 2001 CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))) 2002 2003#define sk_STACK_OF_X509_NAME_ENTRY_push(sk, p) \ 2004 sk_push(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 2005 CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p)) 2006 2007#define sk_STACK_OF_X509_NAME_ENTRY_pop(sk) \ 2008 ((STACK_OF_X509_NAME_ENTRY *)sk_pop( \ 2009 CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))) 2010 2011#define sk_STACK_OF_X509_NAME_ENTRY_dup(sk) \ 2012 ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_dup( \ 2013 CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))) 2014 2015#define sk_STACK_OF_X509_NAME_ENTRY_sort(sk) \ 2016 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 2017 2018#define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(sk) \ 2019 sk_is_sorted( \ 2020 CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 2021 2022#define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(sk, comp) \ 2023 ((int (*)(const STACK_OF_X509_NAME_ENTRY **a, \ 2024 const STACK_OF_X509_NAME_ENTRY **b)) \ 2025 sk_set_cmp_func( \ 2026 CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 2027 CHECKED_CAST(stack_cmp_func, \ 2028 int (*)(const STACK_OF_X509_NAME_ENTRY **a, \ 2029 const STACK_OF_X509_NAME_ENTRY **b), \ 2030 comp))) 2031 2032#define sk_STACK_OF_X509_NAME_ENTRY_deep_copy(sk, copy_func, free_func) \ 2033 ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_deep_copy( \ 2034 CHECKED_CAST(const _STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, \ 2035 sk), \ 2036 CHECKED_CAST(void *(*)(void *), \ 2037 STACK_OF_X509_NAME_ENTRY *(*)(STACK_OF_X509_NAME_ENTRY *), \ 2038 copy_func), \ 2039 CHECKED_CAST(void (*)(void *), void (*)(STACK_OF_X509_NAME_ENTRY *), \ 2040 free_func))) 2041 2042/* SXNETID */ 2043#define sk_SXNETID_new(comp) \ 2044 ((STACK_OF(SXNETID) *)sk_new(CHECKED_CAST( \ 2045 stack_cmp_func, int (*)(const SXNETID **a, const SXNETID **b), comp))) 2046 2047#define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)sk_new_null()) 2048 2049#define sk_SXNETID_num(sk) \ 2050 sk_num(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)) 2051 2052#define sk_SXNETID_zero(sk) \ 2053 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)); 2054 2055#define sk_SXNETID_value(sk, i) \ 2056 ((SXNETID *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk), \ 2057 (i))) 2058 2059#define sk_SXNETID_set(sk, i, p) \ 2060 ((SXNETID *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), (i), \ 2061 CHECKED_CAST(void *, SXNETID *, p))) 2062 2063#define sk_SXNETID_free(sk) \ 2064 sk_free(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)) 2065 2066#define sk_SXNETID_pop_free(sk, free_func) \ 2067 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 2068 CHECKED_CAST(void (*)(void *), void (*)(SXNETID *), free_func)) 2069 2070#define sk_SXNETID_insert(sk, p, where) \ 2071 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 2072 CHECKED_CAST(void *, SXNETID *, p), (where)) 2073 2074#define sk_SXNETID_delete(sk, where) \ 2075 ((SXNETID *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 2076 (where))) 2077 2078#define sk_SXNETID_delete_ptr(sk, p) \ 2079 ((SXNETID *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 2080 CHECKED_CAST(void *, SXNETID *, p))) 2081 2082#define sk_SXNETID_find(sk, out_index, p) \ 2083 sk_find(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), (out_index), \ 2084 CHECKED_CAST(void *, SXNETID *, p)) 2085 2086#define sk_SXNETID_shift(sk) \ 2087 ((SXNETID *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))) 2088 2089#define sk_SXNETID_push(sk, p) \ 2090 sk_push(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 2091 CHECKED_CAST(void *, SXNETID *, p)) 2092 2093#define sk_SXNETID_pop(sk) \ 2094 ((SXNETID *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))) 2095 2096#define sk_SXNETID_dup(sk) \ 2097 ((STACK_OF(SXNETID) *)sk_dup( \ 2098 CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk))) 2099 2100#define sk_SXNETID_sort(sk) \ 2101 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)) 2102 2103#define sk_SXNETID_is_sorted(sk) \ 2104 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk)) 2105 2106#define sk_SXNETID_set_cmp_func(sk, comp) \ 2107 ((int (*)(const SXNETID **a, const SXNETID **b))sk_set_cmp_func( \ 2108 CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 2109 CHECKED_CAST(stack_cmp_func, \ 2110 int (*)(const SXNETID **a, const SXNETID **b), comp))) 2111 2112#define sk_SXNETID_deep_copy(sk, copy_func, free_func) \ 2113 ((STACK_OF(SXNETID) *)sk_deep_copy( \ 2114 CHECKED_CAST(const _STACK *, const STACK_OF(SXNETID) *, sk), \ 2115 CHECKED_CAST(void *(*)(void *), SXNETID *(*)(SXNETID *), copy_func), \ 2116 CHECKED_CAST(void (*)(void *), void (*)(SXNETID *), free_func))) 2117 2118/* X509 */ 2119#define sk_X509_new(comp) \ 2120 ((STACK_OF(X509) *)sk_new(CHECKED_CAST( \ 2121 stack_cmp_func, int (*)(const X509 **a, const X509 **b), comp))) 2122 2123#define sk_X509_new_null() ((STACK_OF(X509) *)sk_new_null()) 2124 2125#define sk_X509_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)) 2126 2127#define sk_X509_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)); 2128 2129#define sk_X509_value(sk, i) \ 2130 ((X509 *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk), (i))) 2131 2132#define sk_X509_set(sk, i, p) \ 2133 ((X509 *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (i), \ 2134 CHECKED_CAST(void *, X509 *, p))) 2135 2136#define sk_X509_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)) 2137 2138#define sk_X509_pop_free(sk, free_func) \ 2139 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 2140 CHECKED_CAST(void (*)(void *), void (*)(X509 *), free_func)) 2141 2142#define sk_X509_insert(sk, p, where) \ 2143 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 2144 CHECKED_CAST(void *, X509 *, p), (where)) 2145 2146#define sk_X509_delete(sk, where) \ 2147 ((X509 *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (where))) 2148 2149#define sk_X509_delete_ptr(sk, p) \ 2150 ((X509 *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 2151 CHECKED_CAST(void *, X509 *, p))) 2152 2153#define sk_X509_find(sk, out_index, p) \ 2154 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (out_index), \ 2155 CHECKED_CAST(void *, X509 *, p)) 2156 2157#define sk_X509_shift(sk) \ 2158 ((X509 *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))) 2159 2160#define sk_X509_push(sk, p) \ 2161 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 2162 CHECKED_CAST(void *, X509 *, p)) 2163 2164#define sk_X509_pop(sk) \ 2165 ((X509 *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))) 2166 2167#define sk_X509_dup(sk) \ 2168 ((STACK_OF(X509) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk))) 2169 2170#define sk_X509_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)) 2171 2172#define sk_X509_is_sorted(sk) \ 2173 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk)) 2174 2175#define sk_X509_set_cmp_func(sk, comp) \ 2176 ((int (*)(const X509 **a, const X509 **b))sk_set_cmp_func( \ 2177 CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 2178 CHECKED_CAST(stack_cmp_func, int (*)(const X509 **a, const X509 **b), \ 2179 comp))) 2180 2181#define sk_X509_deep_copy(sk, copy_func, free_func) \ 2182 ((STACK_OF(X509) *)sk_deep_copy( \ 2183 CHECKED_CAST(const _STACK *, const STACK_OF(X509) *, sk), \ 2184 CHECKED_CAST(void *(*)(void *), X509 *(*)(X509 *), copy_func), \ 2185 CHECKED_CAST(void (*)(void *), void (*)(X509 *), free_func))) 2186 2187/* X509V3_EXT_METHOD */ 2188#define sk_X509V3_EXT_METHOD_new(comp) \ 2189 ((STACK_OF(X509V3_EXT_METHOD) *)sk_new(CHECKED_CAST( \ 2190 stack_cmp_func, \ 2191 int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b), \ 2192 comp))) 2193 2194#define sk_X509V3_EXT_METHOD_new_null() \ 2195 ((STACK_OF(X509V3_EXT_METHOD) *)sk_new_null()) 2196 2197#define sk_X509V3_EXT_METHOD_num(sk) \ 2198 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)) 2199 2200#define sk_X509V3_EXT_METHOD_zero(sk) \ 2201 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)); 2202 2203#define sk_X509V3_EXT_METHOD_value(sk, i) \ 2204 ((X509V3_EXT_METHOD *)sk_value( \ 2205 CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk), (i))) 2206 2207#define sk_X509V3_EXT_METHOD_set(sk, i, p) \ 2208 ((X509V3_EXT_METHOD *)sk_set( \ 2209 CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), (i), \ 2210 CHECKED_CAST(void *, X509V3_EXT_METHOD *, p))) 2211 2212#define sk_X509V3_EXT_METHOD_free(sk) \ 2213 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)) 2214 2215#define sk_X509V3_EXT_METHOD_pop_free(sk, free_func) \ 2216 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 2217 CHECKED_CAST(void (*)(void *), void (*)(X509V3_EXT_METHOD *), \ 2218 free_func)) 2219 2220#define sk_X509V3_EXT_METHOD_insert(sk, p, where) \ 2221 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 2222 CHECKED_CAST(void *, X509V3_EXT_METHOD *, p), (where)) 2223 2224#define sk_X509V3_EXT_METHOD_delete(sk, where) \ 2225 ((X509V3_EXT_METHOD *)sk_delete( \ 2226 CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), (where))) 2227 2228#define sk_X509V3_EXT_METHOD_delete_ptr(sk, p) \ 2229 ((X509V3_EXT_METHOD *)sk_delete_ptr( \ 2230 CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 2231 CHECKED_CAST(void *, X509V3_EXT_METHOD *, p))) 2232 2233#define sk_X509V3_EXT_METHOD_find(sk, out_index, p) \ 2234 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 2235 (out_index), CHECKED_CAST(void *, X509V3_EXT_METHOD *, p)) 2236 2237#define sk_X509V3_EXT_METHOD_shift(sk) \ 2238 ((X509V3_EXT_METHOD *)sk_shift( \ 2239 CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))) 2240 2241#define sk_X509V3_EXT_METHOD_push(sk, p) \ 2242 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 2243 CHECKED_CAST(void *, X509V3_EXT_METHOD *, p)) 2244 2245#define sk_X509V3_EXT_METHOD_pop(sk) \ 2246 ((X509V3_EXT_METHOD *)sk_pop( \ 2247 CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))) 2248 2249#define sk_X509V3_EXT_METHOD_dup(sk) \ 2250 ((STACK_OF(X509V3_EXT_METHOD) *)sk_dup( \ 2251 CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk))) 2252 2253#define sk_X509V3_EXT_METHOD_sort(sk) \ 2254 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)) 2255 2256#define sk_X509V3_EXT_METHOD_is_sorted(sk) \ 2257 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk)) 2258 2259#define sk_X509V3_EXT_METHOD_set_cmp_func(sk, comp) \ 2260 ((int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b)) \ 2261 sk_set_cmp_func( \ 2262 CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 2263 CHECKED_CAST(stack_cmp_func, int (*)(const X509V3_EXT_METHOD **a, \ 2264 const X509V3_EXT_METHOD **b), \ 2265 comp))) 2266 2267#define sk_X509V3_EXT_METHOD_deep_copy(sk, copy_func, free_func) \ 2268 ((STACK_OF(X509V3_EXT_METHOD) *)sk_deep_copy( \ 2269 CHECKED_CAST(const _STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk), \ 2270 CHECKED_CAST(void *(*)(void *), \ 2271 X509V3_EXT_METHOD *(*)(X509V3_EXT_METHOD *), copy_func), \ 2272 CHECKED_CAST(void (*)(void *), void (*)(X509V3_EXT_METHOD *), \ 2273 free_func))) 2274 2275/* X509_ALGOR */ 2276#define sk_X509_ALGOR_new(comp) \ 2277 ((STACK_OF(X509_ALGOR) *)sk_new(CHECKED_CAST( \ 2278 stack_cmp_func, int (*)(const X509_ALGOR **a, const X509_ALGOR **b), \ 2279 comp))) 2280 2281#define sk_X509_ALGOR_new_null() ((STACK_OF(X509_ALGOR) *)sk_new_null()) 2282 2283#define sk_X509_ALGOR_num(sk) \ 2284 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)) 2285 2286#define sk_X509_ALGOR_zero(sk) \ 2287 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)); 2288 2289#define sk_X509_ALGOR_value(sk, i) \ 2290 ((X509_ALGOR *)sk_value( \ 2291 CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk), (i))) 2292 2293#define sk_X509_ALGOR_set(sk, i, p) \ 2294 ((X509_ALGOR *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 2295 (i), CHECKED_CAST(void *, X509_ALGOR *, p))) 2296 2297#define sk_X509_ALGOR_free(sk) \ 2298 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)) 2299 2300#define sk_X509_ALGOR_pop_free(sk, free_func) \ 2301 sk_pop_free( \ 2302 CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 2303 CHECKED_CAST(void (*)(void *), void (*)(X509_ALGOR *), free_func)) 2304 2305#define sk_X509_ALGOR_insert(sk, p, where) \ 2306 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 2307 CHECKED_CAST(void *, X509_ALGOR *, p), (where)) 2308 2309#define sk_X509_ALGOR_delete(sk, where) \ 2310 ((X509_ALGOR *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 2311 (where))) 2312 2313#define sk_X509_ALGOR_delete_ptr(sk, p) \ 2314 ((X509_ALGOR *)sk_delete_ptr( \ 2315 CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 2316 CHECKED_CAST(void *, X509_ALGOR *, p))) 2317 2318#define sk_X509_ALGOR_find(sk, out_index, p) \ 2319 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), (out_index), \ 2320 CHECKED_CAST(void *, X509_ALGOR *, p)) 2321 2322#define sk_X509_ALGOR_shift(sk) \ 2323 ((X509_ALGOR *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))) 2324 2325#define sk_X509_ALGOR_push(sk, p) \ 2326 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 2327 CHECKED_CAST(void *, X509_ALGOR *, p)) 2328 2329#define sk_X509_ALGOR_pop(sk) \ 2330 ((X509_ALGOR *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))) 2331 2332#define sk_X509_ALGOR_dup(sk) \ 2333 ((STACK_OF(X509_ALGOR) *)sk_dup( \ 2334 CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk))) 2335 2336#define sk_X509_ALGOR_sort(sk) \ 2337 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)) 2338 2339#define sk_X509_ALGOR_is_sorted(sk) \ 2340 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk)) 2341 2342#define sk_X509_ALGOR_set_cmp_func(sk, comp) \ 2343 ((int (*)(const X509_ALGOR **a, const X509_ALGOR **b))sk_set_cmp_func( \ 2344 CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 2345 CHECKED_CAST(stack_cmp_func, \ 2346 int (*)(const X509_ALGOR **a, const X509_ALGOR **b), \ 2347 comp))) 2348 2349#define sk_X509_ALGOR_deep_copy(sk, copy_func, free_func) \ 2350 ((STACK_OF(X509_ALGOR) *)sk_deep_copy( \ 2351 CHECKED_CAST(const _STACK *, const STACK_OF(X509_ALGOR) *, sk), \ 2352 CHECKED_CAST(void *(*)(void *), X509_ALGOR *(*)(X509_ALGOR *), \ 2353 copy_func), \ 2354 CHECKED_CAST(void (*)(void *), void (*)(X509_ALGOR *), free_func))) 2355 2356/* X509_ATTRIBUTE */ 2357#define sk_X509_ATTRIBUTE_new(comp) \ 2358 ((STACK_OF(X509_ATTRIBUTE) *)sk_new(CHECKED_CAST( \ 2359 stack_cmp_func, \ 2360 int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b), comp))) 2361 2362#define sk_X509_ATTRIBUTE_new_null() ((STACK_OF(X509_ATTRIBUTE) *)sk_new_null()) 2363 2364#define sk_X509_ATTRIBUTE_num(sk) \ 2365 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)) 2366 2367#define sk_X509_ATTRIBUTE_zero(sk) \ 2368 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)); 2369 2370#define sk_X509_ATTRIBUTE_value(sk, i) \ 2371 ((X509_ATTRIBUTE *)sk_value( \ 2372 CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk), (i))) 2373 2374#define sk_X509_ATTRIBUTE_set(sk, i, p) \ 2375 ((X509_ATTRIBUTE *)sk_set( \ 2376 CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (i), \ 2377 CHECKED_CAST(void *, X509_ATTRIBUTE *, p))) 2378 2379#define sk_X509_ATTRIBUTE_free(sk) \ 2380 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)) 2381 2382#define sk_X509_ATTRIBUTE_pop_free(sk, free_func) \ 2383 sk_pop_free( \ 2384 CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 2385 CHECKED_CAST(void (*)(void *), void (*)(X509_ATTRIBUTE *), free_func)) 2386 2387#define sk_X509_ATTRIBUTE_insert(sk, p, where) \ 2388 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 2389 CHECKED_CAST(void *, X509_ATTRIBUTE *, p), (where)) 2390 2391#define sk_X509_ATTRIBUTE_delete(sk, where) \ 2392 ((X509_ATTRIBUTE *)sk_delete( \ 2393 CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (where))) 2394 2395#define sk_X509_ATTRIBUTE_delete_ptr(sk, p) \ 2396 ((X509_ATTRIBUTE *)sk_delete_ptr( \ 2397 CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 2398 CHECKED_CAST(void *, X509_ATTRIBUTE *, p))) 2399 2400#define sk_X509_ATTRIBUTE_find(sk, out_index, p) \ 2401 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (out_index), \ 2402 CHECKED_CAST(void *, X509_ATTRIBUTE *, p)) 2403 2404#define sk_X509_ATTRIBUTE_shift(sk) \ 2405 ((X509_ATTRIBUTE *)sk_shift( \ 2406 CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))) 2407 2408#define sk_X509_ATTRIBUTE_push(sk, p) \ 2409 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 2410 CHECKED_CAST(void *, X509_ATTRIBUTE *, p)) 2411 2412#define sk_X509_ATTRIBUTE_pop(sk) \ 2413 ((X509_ATTRIBUTE *)sk_pop( \ 2414 CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))) 2415 2416#define sk_X509_ATTRIBUTE_dup(sk) \ 2417 ((STACK_OF(X509_ATTRIBUTE) *)sk_dup( \ 2418 CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk))) 2419 2420#define sk_X509_ATTRIBUTE_sort(sk) \ 2421 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)) 2422 2423#define sk_X509_ATTRIBUTE_is_sorted(sk) \ 2424 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk)) 2425 2426#define sk_X509_ATTRIBUTE_set_cmp_func(sk, comp) \ 2427 ((int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b)) \ 2428 sk_set_cmp_func( \ 2429 CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 2430 CHECKED_CAST(stack_cmp_func, int (*)(const X509_ATTRIBUTE **a, \ 2431 const X509_ATTRIBUTE **b), \ 2432 comp))) 2433 2434#define sk_X509_ATTRIBUTE_deep_copy(sk, copy_func, free_func) \ 2435 ((STACK_OF(X509_ATTRIBUTE) *)sk_deep_copy( \ 2436 CHECKED_CAST(const _STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk), \ 2437 CHECKED_CAST(void *(*)(void *), X509_ATTRIBUTE *(*)(X509_ATTRIBUTE *), \ 2438 copy_func), \ 2439 CHECKED_CAST(void (*)(void *), void (*)(X509_ATTRIBUTE *), free_func))) 2440 2441/* X509_CRL */ 2442#define sk_X509_CRL_new(comp) \ 2443 ((STACK_OF(X509_CRL) *)sk_new(CHECKED_CAST( \ 2444 stack_cmp_func, int (*)(const X509_CRL **a, const X509_CRL **b), comp))) 2445 2446#define sk_X509_CRL_new_null() ((STACK_OF(X509_CRL) *)sk_new_null()) 2447 2448#define sk_X509_CRL_num(sk) \ 2449 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)) 2450 2451#define sk_X509_CRL_zero(sk) \ 2452 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)); 2453 2454#define sk_X509_CRL_value(sk, i) \ 2455 ((X509_CRL *)sk_value( \ 2456 CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk), (i))) 2457 2458#define sk_X509_CRL_set(sk, i, p) \ 2459 ((X509_CRL *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), (i), \ 2460 CHECKED_CAST(void *, X509_CRL *, p))) 2461 2462#define sk_X509_CRL_free(sk) \ 2463 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)) 2464 2465#define sk_X509_CRL_pop_free(sk, free_func) \ 2466 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 2467 CHECKED_CAST(void (*)(void *), void (*)(X509_CRL *), free_func)) 2468 2469#define sk_X509_CRL_insert(sk, p, where) \ 2470 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 2471 CHECKED_CAST(void *, X509_CRL *, p), (where)) 2472 2473#define sk_X509_CRL_delete(sk, where) \ 2474 ((X509_CRL *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 2475 (where))) 2476 2477#define sk_X509_CRL_delete_ptr(sk, p) \ 2478 ((X509_CRL *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 2479 CHECKED_CAST(void *, X509_CRL *, p))) 2480 2481#define sk_X509_CRL_find(sk, out_index, p) \ 2482 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), (out_index), \ 2483 CHECKED_CAST(void *, X509_CRL *, p)) 2484 2485#define sk_X509_CRL_shift(sk) \ 2486 ((X509_CRL *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))) 2487 2488#define sk_X509_CRL_push(sk, p) \ 2489 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 2490 CHECKED_CAST(void *, X509_CRL *, p)) 2491 2492#define sk_X509_CRL_pop(sk) \ 2493 ((X509_CRL *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))) 2494 2495#define sk_X509_CRL_dup(sk) \ 2496 ((STACK_OF(X509_CRL) *)sk_dup( \ 2497 CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk))) 2498 2499#define sk_X509_CRL_sort(sk) \ 2500 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)) 2501 2502#define sk_X509_CRL_is_sorted(sk) \ 2503 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk)) 2504 2505#define sk_X509_CRL_set_cmp_func(sk, comp) \ 2506 ((int (*)(const X509_CRL **a, const X509_CRL **b))sk_set_cmp_func( \ 2507 CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 2508 CHECKED_CAST(stack_cmp_func, \ 2509 int (*)(const X509_CRL **a, const X509_CRL **b), comp))) 2510 2511#define sk_X509_CRL_deep_copy(sk, copy_func, free_func) \ 2512 ((STACK_OF(X509_CRL) *)sk_deep_copy( \ 2513 CHECKED_CAST(const _STACK *, const STACK_OF(X509_CRL) *, sk), \ 2514 CHECKED_CAST(void *(*)(void *), X509_CRL *(*)(X509_CRL *), copy_func), \ 2515 CHECKED_CAST(void (*)(void *), void (*)(X509_CRL *), free_func))) 2516 2517/* X509_EXTENSION */ 2518#define sk_X509_EXTENSION_new(comp) \ 2519 ((STACK_OF(X509_EXTENSION) *)sk_new(CHECKED_CAST( \ 2520 stack_cmp_func, \ 2521 int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b), comp))) 2522 2523#define sk_X509_EXTENSION_new_null() ((STACK_OF(X509_EXTENSION) *)sk_new_null()) 2524 2525#define sk_X509_EXTENSION_num(sk) \ 2526 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)) 2527 2528#define sk_X509_EXTENSION_zero(sk) \ 2529 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)); 2530 2531#define sk_X509_EXTENSION_value(sk, i) \ 2532 ((X509_EXTENSION *)sk_value( \ 2533 CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk), (i))) 2534 2535#define sk_X509_EXTENSION_set(sk, i, p) \ 2536 ((X509_EXTENSION *)sk_set( \ 2537 CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (i), \ 2538 CHECKED_CAST(void *, X509_EXTENSION *, p))) 2539 2540#define sk_X509_EXTENSION_free(sk) \ 2541 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)) 2542 2543#define sk_X509_EXTENSION_pop_free(sk, free_func) \ 2544 sk_pop_free( \ 2545 CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 2546 CHECKED_CAST(void (*)(void *), void (*)(X509_EXTENSION *), free_func)) 2547 2548#define sk_X509_EXTENSION_insert(sk, p, where) \ 2549 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 2550 CHECKED_CAST(void *, X509_EXTENSION *, p), (where)) 2551 2552#define sk_X509_EXTENSION_delete(sk, where) \ 2553 ((X509_EXTENSION *)sk_delete( \ 2554 CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (where))) 2555 2556#define sk_X509_EXTENSION_delete_ptr(sk, p) \ 2557 ((X509_EXTENSION *)sk_delete_ptr( \ 2558 CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 2559 CHECKED_CAST(void *, X509_EXTENSION *, p))) 2560 2561#define sk_X509_EXTENSION_find(sk, out_index, p) \ 2562 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (out_index), \ 2563 CHECKED_CAST(void *, X509_EXTENSION *, p)) 2564 2565#define sk_X509_EXTENSION_shift(sk) \ 2566 ((X509_EXTENSION *)sk_shift( \ 2567 CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))) 2568 2569#define sk_X509_EXTENSION_push(sk, p) \ 2570 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 2571 CHECKED_CAST(void *, X509_EXTENSION *, p)) 2572 2573#define sk_X509_EXTENSION_pop(sk) \ 2574 ((X509_EXTENSION *)sk_pop( \ 2575 CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))) 2576 2577#define sk_X509_EXTENSION_dup(sk) \ 2578 ((STACK_OF(X509_EXTENSION) *)sk_dup( \ 2579 CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk))) 2580 2581#define sk_X509_EXTENSION_sort(sk) \ 2582 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)) 2583 2584#define sk_X509_EXTENSION_is_sorted(sk) \ 2585 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk)) 2586 2587#define sk_X509_EXTENSION_set_cmp_func(sk, comp) \ 2588 ((int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b)) \ 2589 sk_set_cmp_func( \ 2590 CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 2591 CHECKED_CAST(stack_cmp_func, int (*)(const X509_EXTENSION **a, \ 2592 const X509_EXTENSION **b), \ 2593 comp))) 2594 2595#define sk_X509_EXTENSION_deep_copy(sk, copy_func, free_func) \ 2596 ((STACK_OF(X509_EXTENSION) *)sk_deep_copy( \ 2597 CHECKED_CAST(const _STACK *, const STACK_OF(X509_EXTENSION) *, sk), \ 2598 CHECKED_CAST(void *(*)(void *), X509_EXTENSION *(*)(X509_EXTENSION *), \ 2599 copy_func), \ 2600 CHECKED_CAST(void (*)(void *), void (*)(X509_EXTENSION *), free_func))) 2601 2602/* X509_INFO */ 2603#define sk_X509_INFO_new(comp) \ 2604 ((STACK_OF(X509_INFO) *)sk_new( \ 2605 CHECKED_CAST(stack_cmp_func, \ 2606 int (*)(const X509_INFO **a, const X509_INFO **b), comp))) 2607 2608#define sk_X509_INFO_new_null() ((STACK_OF(X509_INFO) *)sk_new_null()) 2609 2610#define sk_X509_INFO_num(sk) \ 2611 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)) 2612 2613#define sk_X509_INFO_zero(sk) \ 2614 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)); 2615 2616#define sk_X509_INFO_value(sk, i) \ 2617 ((X509_INFO *)sk_value( \ 2618 CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk), (i))) 2619 2620#define sk_X509_INFO_set(sk, i, p) \ 2621 ((X509_INFO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), (i), \ 2622 CHECKED_CAST(void *, X509_INFO *, p))) 2623 2624#define sk_X509_INFO_free(sk) \ 2625 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)) 2626 2627#define sk_X509_INFO_pop_free(sk, free_func) \ 2628 sk_pop_free( \ 2629 CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 2630 CHECKED_CAST(void (*)(void *), void (*)(X509_INFO *), free_func)) 2631 2632#define sk_X509_INFO_insert(sk, p, where) \ 2633 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 2634 CHECKED_CAST(void *, X509_INFO *, p), (where)) 2635 2636#define sk_X509_INFO_delete(sk, where) \ 2637 ((X509_INFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 2638 (where))) 2639 2640#define sk_X509_INFO_delete_ptr(sk, p) \ 2641 ((X509_INFO *)sk_delete_ptr( \ 2642 CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 2643 CHECKED_CAST(void *, X509_INFO *, p))) 2644 2645#define sk_X509_INFO_find(sk, out_index, p) \ 2646 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), (out_index), \ 2647 CHECKED_CAST(void *, X509_INFO *, p)) 2648 2649#define sk_X509_INFO_shift(sk) \ 2650 ((X509_INFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))) 2651 2652#define sk_X509_INFO_push(sk, p) \ 2653 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 2654 CHECKED_CAST(void *, X509_INFO *, p)) 2655 2656#define sk_X509_INFO_pop(sk) \ 2657 ((X509_INFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))) 2658 2659#define sk_X509_INFO_dup(sk) \ 2660 ((STACK_OF(X509_INFO) *)sk_dup( \ 2661 CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk))) 2662 2663#define sk_X509_INFO_sort(sk) \ 2664 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)) 2665 2666#define sk_X509_INFO_is_sorted(sk) \ 2667 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk)) 2668 2669#define sk_X509_INFO_set_cmp_func(sk, comp) \ 2670 ((int (*)(const X509_INFO **a, const X509_INFO **b))sk_set_cmp_func( \ 2671 CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 2672 CHECKED_CAST(stack_cmp_func, \ 2673 int (*)(const X509_INFO **a, const X509_INFO **b), comp))) 2674 2675#define sk_X509_INFO_deep_copy(sk, copy_func, free_func) \ 2676 ((STACK_OF(X509_INFO) *)sk_deep_copy( \ 2677 CHECKED_CAST(const _STACK *, const STACK_OF(X509_INFO) *, sk), \ 2678 CHECKED_CAST(void *(*)(void *), X509_INFO *(*)(X509_INFO *), copy_func), \ 2679 CHECKED_CAST(void (*)(void *), void (*)(X509_INFO *), free_func))) 2680 2681/* X509_LOOKUP */ 2682#define sk_X509_LOOKUP_new(comp) \ 2683 ((STACK_OF(X509_LOOKUP) *)sk_new(CHECKED_CAST( \ 2684 stack_cmp_func, int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b), \ 2685 comp))) 2686 2687#define sk_X509_LOOKUP_new_null() ((STACK_OF(X509_LOOKUP) *)sk_new_null()) 2688 2689#define sk_X509_LOOKUP_num(sk) \ 2690 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)) 2691 2692#define sk_X509_LOOKUP_zero(sk) \ 2693 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)); 2694 2695#define sk_X509_LOOKUP_value(sk, i) \ 2696 ((X509_LOOKUP *)sk_value( \ 2697 CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk), (i))) 2698 2699#define sk_X509_LOOKUP_set(sk, i, p) \ 2700 ((X509_LOOKUP *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 2701 (i), CHECKED_CAST(void *, X509_LOOKUP *, p))) 2702 2703#define sk_X509_LOOKUP_free(sk) \ 2704 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)) 2705 2706#define sk_X509_LOOKUP_pop_free(sk, free_func) \ 2707 sk_pop_free( \ 2708 CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 2709 CHECKED_CAST(void (*)(void *), void (*)(X509_LOOKUP *), free_func)) 2710 2711#define sk_X509_LOOKUP_insert(sk, p, where) \ 2712 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 2713 CHECKED_CAST(void *, X509_LOOKUP *, p), (where)) 2714 2715#define sk_X509_LOOKUP_delete(sk, where) \ 2716 ((X509_LOOKUP *)sk_delete( \ 2717 CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), (where))) 2718 2719#define sk_X509_LOOKUP_delete_ptr(sk, p) \ 2720 ((X509_LOOKUP *)sk_delete_ptr( \ 2721 CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 2722 CHECKED_CAST(void *, X509_LOOKUP *, p))) 2723 2724#define sk_X509_LOOKUP_find(sk, out_index, p) \ 2725 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), (out_index), \ 2726 CHECKED_CAST(void *, X509_LOOKUP *, p)) 2727 2728#define sk_X509_LOOKUP_shift(sk) \ 2729 ((X509_LOOKUP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))) 2730 2731#define sk_X509_LOOKUP_push(sk, p) \ 2732 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 2733 CHECKED_CAST(void *, X509_LOOKUP *, p)) 2734 2735#define sk_X509_LOOKUP_pop(sk) \ 2736 ((X509_LOOKUP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))) 2737 2738#define sk_X509_LOOKUP_dup(sk) \ 2739 ((STACK_OF(X509_LOOKUP) *)sk_dup( \ 2740 CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk))) 2741 2742#define sk_X509_LOOKUP_sort(sk) \ 2743 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)) 2744 2745#define sk_X509_LOOKUP_is_sorted(sk) \ 2746 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk)) 2747 2748#define sk_X509_LOOKUP_set_cmp_func(sk, comp) \ 2749 ((int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b))sk_set_cmp_func( \ 2750 CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 2751 CHECKED_CAST(stack_cmp_func, \ 2752 int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b), \ 2753 comp))) 2754 2755#define sk_X509_LOOKUP_deep_copy(sk, copy_func, free_func) \ 2756 ((STACK_OF(X509_LOOKUP) *)sk_deep_copy( \ 2757 CHECKED_CAST(const _STACK *, const STACK_OF(X509_LOOKUP) *, sk), \ 2758 CHECKED_CAST(void *(*)(void *), X509_LOOKUP *(*)(X509_LOOKUP *), \ 2759 copy_func), \ 2760 CHECKED_CAST(void (*)(void *), void (*)(X509_LOOKUP *), free_func))) 2761 2762/* X509_NAME */ 2763#define sk_X509_NAME_new(comp) \ 2764 ((STACK_OF(X509_NAME) *)sk_new( \ 2765 CHECKED_CAST(stack_cmp_func, \ 2766 int (*)(const X509_NAME **a, const X509_NAME **b), comp))) 2767 2768#define sk_X509_NAME_new_null() ((STACK_OF(X509_NAME) *)sk_new_null()) 2769 2770#define sk_X509_NAME_num(sk) \ 2771 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)) 2772 2773#define sk_X509_NAME_zero(sk) \ 2774 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)); 2775 2776#define sk_X509_NAME_value(sk, i) \ 2777 ((X509_NAME *)sk_value( \ 2778 CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk), (i))) 2779 2780#define sk_X509_NAME_set(sk, i, p) \ 2781 ((X509_NAME *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), (i), \ 2782 CHECKED_CAST(void *, X509_NAME *, p))) 2783 2784#define sk_X509_NAME_free(sk) \ 2785 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)) 2786 2787#define sk_X509_NAME_pop_free(sk, free_func) \ 2788 sk_pop_free( \ 2789 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 2790 CHECKED_CAST(void (*)(void *), void (*)(X509_NAME *), free_func)) 2791 2792#define sk_X509_NAME_insert(sk, p, where) \ 2793 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 2794 CHECKED_CAST(void *, X509_NAME *, p), (where)) 2795 2796#define sk_X509_NAME_delete(sk, where) \ 2797 ((X509_NAME *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 2798 (where))) 2799 2800#define sk_X509_NAME_delete_ptr(sk, p) \ 2801 ((X509_NAME *)sk_delete_ptr( \ 2802 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 2803 CHECKED_CAST(void *, X509_NAME *, p))) 2804 2805#define sk_X509_NAME_find(sk, out_index, p) \ 2806 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), (out_index), \ 2807 CHECKED_CAST(void *, X509_NAME *, p)) 2808 2809#define sk_X509_NAME_shift(sk) \ 2810 ((X509_NAME *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))) 2811 2812#define sk_X509_NAME_push(sk, p) \ 2813 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 2814 CHECKED_CAST(void *, X509_NAME *, p)) 2815 2816#define sk_X509_NAME_pop(sk) \ 2817 ((X509_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))) 2818 2819#define sk_X509_NAME_dup(sk) \ 2820 ((STACK_OF(X509_NAME) *)sk_dup( \ 2821 CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk))) 2822 2823#define sk_X509_NAME_sort(sk) \ 2824 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)) 2825 2826#define sk_X509_NAME_is_sorted(sk) \ 2827 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk)) 2828 2829#define sk_X509_NAME_set_cmp_func(sk, comp) \ 2830 ((int (*)(const X509_NAME **a, const X509_NAME **b))sk_set_cmp_func( \ 2831 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 2832 CHECKED_CAST(stack_cmp_func, \ 2833 int (*)(const X509_NAME **a, const X509_NAME **b), comp))) 2834 2835#define sk_X509_NAME_deep_copy(sk, copy_func, free_func) \ 2836 ((STACK_OF(X509_NAME) *)sk_deep_copy( \ 2837 CHECKED_CAST(const _STACK *, const STACK_OF(X509_NAME) *, sk), \ 2838 CHECKED_CAST(void *(*)(void *), X509_NAME *(*)(X509_NAME *), copy_func), \ 2839 CHECKED_CAST(void (*)(void *), void (*)(X509_NAME *), free_func))) 2840 2841/* X509_NAME_ENTRY */ 2842#define sk_X509_NAME_ENTRY_new(comp) \ 2843 ((STACK_OF(X509_NAME_ENTRY) *)sk_new(CHECKED_CAST( \ 2844 stack_cmp_func, \ 2845 int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b), comp))) 2846 2847#define sk_X509_NAME_ENTRY_new_null() \ 2848 ((STACK_OF(X509_NAME_ENTRY) *)sk_new_null()) 2849 2850#define sk_X509_NAME_ENTRY_num(sk) \ 2851 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)) 2852 2853#define sk_X509_NAME_ENTRY_zero(sk) \ 2854 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)); 2855 2856#define sk_X509_NAME_ENTRY_value(sk, i) \ 2857 ((X509_NAME_ENTRY *)sk_value( \ 2858 CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk), (i))) 2859 2860#define sk_X509_NAME_ENTRY_set(sk, i, p) \ 2861 ((X509_NAME_ENTRY *)sk_set( \ 2862 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), (i), \ 2863 CHECKED_CAST(void *, X509_NAME_ENTRY *, p))) 2864 2865#define sk_X509_NAME_ENTRY_free(sk) \ 2866 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)) 2867 2868#define sk_X509_NAME_ENTRY_pop_free(sk, free_func) \ 2869 sk_pop_free( \ 2870 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 2871 CHECKED_CAST(void (*)(void *), void (*)(X509_NAME_ENTRY *), free_func)) 2872 2873#define sk_X509_NAME_ENTRY_insert(sk, p, where) \ 2874 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 2875 CHECKED_CAST(void *, X509_NAME_ENTRY *, p), (where)) 2876 2877#define sk_X509_NAME_ENTRY_delete(sk, where) \ 2878 ((X509_NAME_ENTRY *)sk_delete( \ 2879 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), (where))) 2880 2881#define sk_X509_NAME_ENTRY_delete_ptr(sk, p) \ 2882 ((X509_NAME_ENTRY *)sk_delete_ptr( \ 2883 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 2884 CHECKED_CAST(void *, X509_NAME_ENTRY *, p))) 2885 2886#define sk_X509_NAME_ENTRY_find(sk, out_index, p) \ 2887 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 2888 (out_index), CHECKED_CAST(void *, X509_NAME_ENTRY *, p)) 2889 2890#define sk_X509_NAME_ENTRY_shift(sk) \ 2891 ((X509_NAME_ENTRY *)sk_shift( \ 2892 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))) 2893 2894#define sk_X509_NAME_ENTRY_push(sk, p) \ 2895 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 2896 CHECKED_CAST(void *, X509_NAME_ENTRY *, p)) 2897 2898#define sk_X509_NAME_ENTRY_pop(sk) \ 2899 ((X509_NAME_ENTRY *)sk_pop( \ 2900 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))) 2901 2902#define sk_X509_NAME_ENTRY_dup(sk) \ 2903 ((STACK_OF(X509_NAME_ENTRY) *)sk_dup( \ 2904 CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk))) 2905 2906#define sk_X509_NAME_ENTRY_sort(sk) \ 2907 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)) 2908 2909#define sk_X509_NAME_ENTRY_is_sorted(sk) \ 2910 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk)) 2911 2912#define sk_X509_NAME_ENTRY_set_cmp_func(sk, comp) \ 2913 ((int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b)) \ 2914 sk_set_cmp_func( \ 2915 CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 2916 CHECKED_CAST(stack_cmp_func, int (*)(const X509_NAME_ENTRY **a, \ 2917 const X509_NAME_ENTRY **b), \ 2918 comp))) 2919 2920#define sk_X509_NAME_ENTRY_deep_copy(sk, copy_func, free_func) \ 2921 ((STACK_OF(X509_NAME_ENTRY) *)sk_deep_copy( \ 2922 CHECKED_CAST(const _STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk), \ 2923 CHECKED_CAST(void *(*)(void *), X509_NAME_ENTRY *(*)(X509_NAME_ENTRY *), \ 2924 copy_func), \ 2925 CHECKED_CAST(void (*)(void *), void (*)(X509_NAME_ENTRY *), free_func))) 2926 2927/* X509_OBJECT */ 2928#define sk_X509_OBJECT_new(comp) \ 2929 ((STACK_OF(X509_OBJECT) *)sk_new(CHECKED_CAST( \ 2930 stack_cmp_func, int (*)(const X509_OBJECT **a, const X509_OBJECT **b), \ 2931 comp))) 2932 2933#define sk_X509_OBJECT_new_null() ((STACK_OF(X509_OBJECT) *)sk_new_null()) 2934 2935#define sk_X509_OBJECT_num(sk) \ 2936 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)) 2937 2938#define sk_X509_OBJECT_zero(sk) \ 2939 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)); 2940 2941#define sk_X509_OBJECT_value(sk, i) \ 2942 ((X509_OBJECT *)sk_value( \ 2943 CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk), (i))) 2944 2945#define sk_X509_OBJECT_set(sk, i, p) \ 2946 ((X509_OBJECT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 2947 (i), CHECKED_CAST(void *, X509_OBJECT *, p))) 2948 2949#define sk_X509_OBJECT_free(sk) \ 2950 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)) 2951 2952#define sk_X509_OBJECT_pop_free(sk, free_func) \ 2953 sk_pop_free( \ 2954 CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 2955 CHECKED_CAST(void (*)(void *), void (*)(X509_OBJECT *), free_func)) 2956 2957#define sk_X509_OBJECT_insert(sk, p, where) \ 2958 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 2959 CHECKED_CAST(void *, X509_OBJECT *, p), (where)) 2960 2961#define sk_X509_OBJECT_delete(sk, where) \ 2962 ((X509_OBJECT *)sk_delete( \ 2963 CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), (where))) 2964 2965#define sk_X509_OBJECT_delete_ptr(sk, p) \ 2966 ((X509_OBJECT *)sk_delete_ptr( \ 2967 CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 2968 CHECKED_CAST(void *, X509_OBJECT *, p))) 2969 2970#define sk_X509_OBJECT_find(sk, out_index, p) \ 2971 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), (out_index), \ 2972 CHECKED_CAST(void *, X509_OBJECT *, p)) 2973 2974#define sk_X509_OBJECT_shift(sk) \ 2975 ((X509_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))) 2976 2977#define sk_X509_OBJECT_push(sk, p) \ 2978 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 2979 CHECKED_CAST(void *, X509_OBJECT *, p)) 2980 2981#define sk_X509_OBJECT_pop(sk) \ 2982 ((X509_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))) 2983 2984#define sk_X509_OBJECT_dup(sk) \ 2985 ((STACK_OF(X509_OBJECT) *)sk_dup( \ 2986 CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk))) 2987 2988#define sk_X509_OBJECT_sort(sk) \ 2989 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)) 2990 2991#define sk_X509_OBJECT_is_sorted(sk) \ 2992 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk)) 2993 2994#define sk_X509_OBJECT_set_cmp_func(sk, comp) \ 2995 ((int (*)(const X509_OBJECT **a, const X509_OBJECT **b))sk_set_cmp_func( \ 2996 CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 2997 CHECKED_CAST(stack_cmp_func, \ 2998 int (*)(const X509_OBJECT **a, const X509_OBJECT **b), \ 2999 comp))) 3000 3001#define sk_X509_OBJECT_deep_copy(sk, copy_func, free_func) \ 3002 ((STACK_OF(X509_OBJECT) *)sk_deep_copy( \ 3003 CHECKED_CAST(const _STACK *, const STACK_OF(X509_OBJECT) *, sk), \ 3004 CHECKED_CAST(void *(*)(void *), X509_OBJECT *(*)(X509_OBJECT *), \ 3005 copy_func), \ 3006 CHECKED_CAST(void (*)(void *), void (*)(X509_OBJECT *), free_func))) 3007 3008/* X509_POLICY_DATA */ 3009#define sk_X509_POLICY_DATA_new(comp) \ 3010 ((STACK_OF(X509_POLICY_DATA) *)sk_new(CHECKED_CAST( \ 3011 stack_cmp_func, \ 3012 int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b), comp))) 3013 3014#define sk_X509_POLICY_DATA_new_null() \ 3015 ((STACK_OF(X509_POLICY_DATA) *)sk_new_null()) 3016 3017#define sk_X509_POLICY_DATA_num(sk) \ 3018 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)) 3019 3020#define sk_X509_POLICY_DATA_zero(sk) \ 3021 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)); 3022 3023#define sk_X509_POLICY_DATA_value(sk, i) \ 3024 ((X509_POLICY_DATA *)sk_value( \ 3025 CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk), (i))) 3026 3027#define sk_X509_POLICY_DATA_set(sk, i, p) \ 3028 ((X509_POLICY_DATA *)sk_set( \ 3029 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), (i), \ 3030 CHECKED_CAST(void *, X509_POLICY_DATA *, p))) 3031 3032#define sk_X509_POLICY_DATA_free(sk) \ 3033 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)) 3034 3035#define sk_X509_POLICY_DATA_pop_free(sk, free_func) \ 3036 sk_pop_free( \ 3037 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 3038 CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_DATA *), free_func)) 3039 3040#define sk_X509_POLICY_DATA_insert(sk, p, where) \ 3041 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 3042 CHECKED_CAST(void *, X509_POLICY_DATA *, p), (where)) 3043 3044#define sk_X509_POLICY_DATA_delete(sk, where) \ 3045 ((X509_POLICY_DATA *)sk_delete( \ 3046 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), (where))) 3047 3048#define sk_X509_POLICY_DATA_delete_ptr(sk, p) \ 3049 ((X509_POLICY_DATA *)sk_delete_ptr( \ 3050 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 3051 CHECKED_CAST(void *, X509_POLICY_DATA *, p))) 3052 3053#define sk_X509_POLICY_DATA_find(sk, out_index, p) \ 3054 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 3055 (out_index), CHECKED_CAST(void *, X509_POLICY_DATA *, p)) 3056 3057#define sk_X509_POLICY_DATA_shift(sk) \ 3058 ((X509_POLICY_DATA *)sk_shift( \ 3059 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))) 3060 3061#define sk_X509_POLICY_DATA_push(sk, p) \ 3062 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 3063 CHECKED_CAST(void *, X509_POLICY_DATA *, p)) 3064 3065#define sk_X509_POLICY_DATA_pop(sk) \ 3066 ((X509_POLICY_DATA *)sk_pop( \ 3067 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))) 3068 3069#define sk_X509_POLICY_DATA_dup(sk) \ 3070 ((STACK_OF(X509_POLICY_DATA) *)sk_dup( \ 3071 CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk))) 3072 3073#define sk_X509_POLICY_DATA_sort(sk) \ 3074 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)) 3075 3076#define sk_X509_POLICY_DATA_is_sorted(sk) \ 3077 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk)) 3078 3079#define sk_X509_POLICY_DATA_set_cmp_func(sk, comp) \ 3080 ((int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b)) \ 3081 sk_set_cmp_func( \ 3082 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 3083 CHECKED_CAST(stack_cmp_func, int (*)(const X509_POLICY_DATA **a, \ 3084 const X509_POLICY_DATA **b), \ 3085 comp))) 3086 3087#define sk_X509_POLICY_DATA_deep_copy(sk, copy_func, free_func) \ 3088 ((STACK_OF(X509_POLICY_DATA) *)sk_deep_copy( \ 3089 CHECKED_CAST(const _STACK *, const STACK_OF(X509_POLICY_DATA) *, sk), \ 3090 CHECKED_CAST(void *(*)(void *), \ 3091 X509_POLICY_DATA *(*)(X509_POLICY_DATA *), copy_func), \ 3092 CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_DATA *), \ 3093 free_func))) 3094 3095/* X509_POLICY_NODE */ 3096#define sk_X509_POLICY_NODE_new(comp) \ 3097 ((STACK_OF(X509_POLICY_NODE) *)sk_new(CHECKED_CAST( \ 3098 stack_cmp_func, \ 3099 int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b), comp))) 3100 3101#define sk_X509_POLICY_NODE_new_null() \ 3102 ((STACK_OF(X509_POLICY_NODE) *)sk_new_null()) 3103 3104#define sk_X509_POLICY_NODE_num(sk) \ 3105 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)) 3106 3107#define sk_X509_POLICY_NODE_zero(sk) \ 3108 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)); 3109 3110#define sk_X509_POLICY_NODE_value(sk, i) \ 3111 ((X509_POLICY_NODE *)sk_value( \ 3112 CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk), (i))) 3113 3114#define sk_X509_POLICY_NODE_set(sk, i, p) \ 3115 ((X509_POLICY_NODE *)sk_set( \ 3116 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), (i), \ 3117 CHECKED_CAST(void *, X509_POLICY_NODE *, p))) 3118 3119#define sk_X509_POLICY_NODE_free(sk) \ 3120 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)) 3121 3122#define sk_X509_POLICY_NODE_pop_free(sk, free_func) \ 3123 sk_pop_free( \ 3124 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 3125 CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_NODE *), free_func)) 3126 3127#define sk_X509_POLICY_NODE_insert(sk, p, where) \ 3128 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 3129 CHECKED_CAST(void *, X509_POLICY_NODE *, p), (where)) 3130 3131#define sk_X509_POLICY_NODE_delete(sk, where) \ 3132 ((X509_POLICY_NODE *)sk_delete( \ 3133 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), (where))) 3134 3135#define sk_X509_POLICY_NODE_delete_ptr(sk, p) \ 3136 ((X509_POLICY_NODE *)sk_delete_ptr( \ 3137 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 3138 CHECKED_CAST(void *, X509_POLICY_NODE *, p))) 3139 3140#define sk_X509_POLICY_NODE_find(sk, out_index, p) \ 3141 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 3142 (out_index), CHECKED_CAST(void *, X509_POLICY_NODE *, p)) 3143 3144#define sk_X509_POLICY_NODE_shift(sk) \ 3145 ((X509_POLICY_NODE *)sk_shift( \ 3146 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))) 3147 3148#define sk_X509_POLICY_NODE_push(sk, p) \ 3149 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 3150 CHECKED_CAST(void *, X509_POLICY_NODE *, p)) 3151 3152#define sk_X509_POLICY_NODE_pop(sk) \ 3153 ((X509_POLICY_NODE *)sk_pop( \ 3154 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))) 3155 3156#define sk_X509_POLICY_NODE_dup(sk) \ 3157 ((STACK_OF(X509_POLICY_NODE) *)sk_dup( \ 3158 CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk))) 3159 3160#define sk_X509_POLICY_NODE_sort(sk) \ 3161 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)) 3162 3163#define sk_X509_POLICY_NODE_is_sorted(sk) \ 3164 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk)) 3165 3166#define sk_X509_POLICY_NODE_set_cmp_func(sk, comp) \ 3167 ((int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b)) \ 3168 sk_set_cmp_func( \ 3169 CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 3170 CHECKED_CAST(stack_cmp_func, int (*)(const X509_POLICY_NODE **a, \ 3171 const X509_POLICY_NODE **b), \ 3172 comp))) 3173 3174#define sk_X509_POLICY_NODE_deep_copy(sk, copy_func, free_func) \ 3175 ((STACK_OF(X509_POLICY_NODE) *)sk_deep_copy( \ 3176 CHECKED_CAST(const _STACK *, const STACK_OF(X509_POLICY_NODE) *, sk), \ 3177 CHECKED_CAST(void *(*)(void *), \ 3178 X509_POLICY_NODE *(*)(X509_POLICY_NODE *), copy_func), \ 3179 CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_NODE *), \ 3180 free_func))) 3181 3182/* X509_PURPOSE */ 3183#define sk_X509_PURPOSE_new(comp) \ 3184 ((STACK_OF(X509_PURPOSE) *)sk_new(CHECKED_CAST( \ 3185 stack_cmp_func, int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b), \ 3186 comp))) 3187 3188#define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)sk_new_null()) 3189 3190#define sk_X509_PURPOSE_num(sk) \ 3191 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)) 3192 3193#define sk_X509_PURPOSE_zero(sk) \ 3194 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)); 3195 3196#define sk_X509_PURPOSE_value(sk, i) \ 3197 ((X509_PURPOSE *)sk_value( \ 3198 CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk), (i))) 3199 3200#define sk_X509_PURPOSE_set(sk, i, p) \ 3201 ((X509_PURPOSE *)sk_set( \ 3202 CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (i), \ 3203 CHECKED_CAST(void *, X509_PURPOSE *, p))) 3204 3205#define sk_X509_PURPOSE_free(sk) \ 3206 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)) 3207 3208#define sk_X509_PURPOSE_pop_free(sk, free_func) \ 3209 sk_pop_free( \ 3210 CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 3211 CHECKED_CAST(void (*)(void *), void (*)(X509_PURPOSE *), free_func)) 3212 3213#define sk_X509_PURPOSE_insert(sk, p, where) \ 3214 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 3215 CHECKED_CAST(void *, X509_PURPOSE *, p), (where)) 3216 3217#define sk_X509_PURPOSE_delete(sk, where) \ 3218 ((X509_PURPOSE *)sk_delete( \ 3219 CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (where))) 3220 3221#define sk_X509_PURPOSE_delete_ptr(sk, p) \ 3222 ((X509_PURPOSE *)sk_delete_ptr( \ 3223 CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 3224 CHECKED_CAST(void *, X509_PURPOSE *, p))) 3225 3226#define sk_X509_PURPOSE_find(sk, out_index, p) \ 3227 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (out_index), \ 3228 CHECKED_CAST(void *, X509_PURPOSE *, p)) 3229 3230#define sk_X509_PURPOSE_shift(sk) \ 3231 ((X509_PURPOSE *)sk_shift( \ 3232 CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))) 3233 3234#define sk_X509_PURPOSE_push(sk, p) \ 3235 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 3236 CHECKED_CAST(void *, X509_PURPOSE *, p)) 3237 3238#define sk_X509_PURPOSE_pop(sk) \ 3239 ((X509_PURPOSE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))) 3240 3241#define sk_X509_PURPOSE_dup(sk) \ 3242 ((STACK_OF(X509_PURPOSE) *)sk_dup( \ 3243 CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk))) 3244 3245#define sk_X509_PURPOSE_sort(sk) \ 3246 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)) 3247 3248#define sk_X509_PURPOSE_is_sorted(sk) \ 3249 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk)) 3250 3251#define sk_X509_PURPOSE_set_cmp_func(sk, comp) \ 3252 ((int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b))sk_set_cmp_func( \ 3253 CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 3254 CHECKED_CAST(stack_cmp_func, \ 3255 int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b), \ 3256 comp))) 3257 3258#define sk_X509_PURPOSE_deep_copy(sk, copy_func, free_func) \ 3259 ((STACK_OF(X509_PURPOSE) *)sk_deep_copy( \ 3260 CHECKED_CAST(const _STACK *, const STACK_OF(X509_PURPOSE) *, sk), \ 3261 CHECKED_CAST(void *(*)(void *), X509_PURPOSE *(*)(X509_PURPOSE *), \ 3262 copy_func), \ 3263 CHECKED_CAST(void (*)(void *), void (*)(X509_PURPOSE *), free_func))) 3264 3265/* X509_REVOKED */ 3266#define sk_X509_REVOKED_new(comp) \ 3267 ((STACK_OF(X509_REVOKED) *)sk_new(CHECKED_CAST( \ 3268 stack_cmp_func, int (*)(const X509_REVOKED **a, const X509_REVOKED **b), \ 3269 comp))) 3270 3271#define sk_X509_REVOKED_new_null() ((STACK_OF(X509_REVOKED) *)sk_new_null()) 3272 3273#define sk_X509_REVOKED_num(sk) \ 3274 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)) 3275 3276#define sk_X509_REVOKED_zero(sk) \ 3277 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)); 3278 3279#define sk_X509_REVOKED_value(sk, i) \ 3280 ((X509_REVOKED *)sk_value( \ 3281 CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk), (i))) 3282 3283#define sk_X509_REVOKED_set(sk, i, p) \ 3284 ((X509_REVOKED *)sk_set( \ 3285 CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (i), \ 3286 CHECKED_CAST(void *, X509_REVOKED *, p))) 3287 3288#define sk_X509_REVOKED_free(sk) \ 3289 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)) 3290 3291#define sk_X509_REVOKED_pop_free(sk, free_func) \ 3292 sk_pop_free( \ 3293 CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 3294 CHECKED_CAST(void (*)(void *), void (*)(X509_REVOKED *), free_func)) 3295 3296#define sk_X509_REVOKED_insert(sk, p, where) \ 3297 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 3298 CHECKED_CAST(void *, X509_REVOKED *, p), (where)) 3299 3300#define sk_X509_REVOKED_delete(sk, where) \ 3301 ((X509_REVOKED *)sk_delete( \ 3302 CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (where))) 3303 3304#define sk_X509_REVOKED_delete_ptr(sk, p) \ 3305 ((X509_REVOKED *)sk_delete_ptr( \ 3306 CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 3307 CHECKED_CAST(void *, X509_REVOKED *, p))) 3308 3309#define sk_X509_REVOKED_find(sk, out_index, p) \ 3310 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (out_index), \ 3311 CHECKED_CAST(void *, X509_REVOKED *, p)) 3312 3313#define sk_X509_REVOKED_shift(sk) \ 3314 ((X509_REVOKED *)sk_shift( \ 3315 CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))) 3316 3317#define sk_X509_REVOKED_push(sk, p) \ 3318 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 3319 CHECKED_CAST(void *, X509_REVOKED *, p)) 3320 3321#define sk_X509_REVOKED_pop(sk) \ 3322 ((X509_REVOKED *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))) 3323 3324#define sk_X509_REVOKED_dup(sk) \ 3325 ((STACK_OF(X509_REVOKED) *)sk_dup( \ 3326 CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk))) 3327 3328#define sk_X509_REVOKED_sort(sk) \ 3329 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)) 3330 3331#define sk_X509_REVOKED_is_sorted(sk) \ 3332 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk)) 3333 3334#define sk_X509_REVOKED_set_cmp_func(sk, comp) \ 3335 ((int (*)(const X509_REVOKED **a, const X509_REVOKED **b))sk_set_cmp_func( \ 3336 CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 3337 CHECKED_CAST(stack_cmp_func, \ 3338 int (*)(const X509_REVOKED **a, const X509_REVOKED **b), \ 3339 comp))) 3340 3341#define sk_X509_REVOKED_deep_copy(sk, copy_func, free_func) \ 3342 ((STACK_OF(X509_REVOKED) *)sk_deep_copy( \ 3343 CHECKED_CAST(const _STACK *, const STACK_OF(X509_REVOKED) *, sk), \ 3344 CHECKED_CAST(void *(*)(void *), X509_REVOKED *(*)(X509_REVOKED *), \ 3345 copy_func), \ 3346 CHECKED_CAST(void (*)(void *), void (*)(X509_REVOKED *), free_func))) 3347 3348/* X509_TRUST */ 3349#define sk_X509_TRUST_new(comp) \ 3350 ((STACK_OF(X509_TRUST) *)sk_new(CHECKED_CAST( \ 3351 stack_cmp_func, int (*)(const X509_TRUST **a, const X509_TRUST **b), \ 3352 comp))) 3353 3354#define sk_X509_TRUST_new_null() ((STACK_OF(X509_TRUST) *)sk_new_null()) 3355 3356#define sk_X509_TRUST_num(sk) \ 3357 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)) 3358 3359#define sk_X509_TRUST_zero(sk) \ 3360 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)); 3361 3362#define sk_X509_TRUST_value(sk, i) \ 3363 ((X509_TRUST *)sk_value( \ 3364 CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk), (i))) 3365 3366#define sk_X509_TRUST_set(sk, i, p) \ 3367 ((X509_TRUST *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 3368 (i), CHECKED_CAST(void *, X509_TRUST *, p))) 3369 3370#define sk_X509_TRUST_free(sk) \ 3371 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)) 3372 3373#define sk_X509_TRUST_pop_free(sk, free_func) \ 3374 sk_pop_free( \ 3375 CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 3376 CHECKED_CAST(void (*)(void *), void (*)(X509_TRUST *), free_func)) 3377 3378#define sk_X509_TRUST_insert(sk, p, where) \ 3379 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 3380 CHECKED_CAST(void *, X509_TRUST *, p), (where)) 3381 3382#define sk_X509_TRUST_delete(sk, where) \ 3383 ((X509_TRUST *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 3384 (where))) 3385 3386#define sk_X509_TRUST_delete_ptr(sk, p) \ 3387 ((X509_TRUST *)sk_delete_ptr( \ 3388 CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 3389 CHECKED_CAST(void *, X509_TRUST *, p))) 3390 3391#define sk_X509_TRUST_find(sk, out_index, p) \ 3392 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), (out_index), \ 3393 CHECKED_CAST(void *, X509_TRUST *, p)) 3394 3395#define sk_X509_TRUST_shift(sk) \ 3396 ((X509_TRUST *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))) 3397 3398#define sk_X509_TRUST_push(sk, p) \ 3399 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 3400 CHECKED_CAST(void *, X509_TRUST *, p)) 3401 3402#define sk_X509_TRUST_pop(sk) \ 3403 ((X509_TRUST *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))) 3404 3405#define sk_X509_TRUST_dup(sk) \ 3406 ((STACK_OF(X509_TRUST) *)sk_dup( \ 3407 CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk))) 3408 3409#define sk_X509_TRUST_sort(sk) \ 3410 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)) 3411 3412#define sk_X509_TRUST_is_sorted(sk) \ 3413 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk)) 3414 3415#define sk_X509_TRUST_set_cmp_func(sk, comp) \ 3416 ((int (*)(const X509_TRUST **a, const X509_TRUST **b))sk_set_cmp_func( \ 3417 CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 3418 CHECKED_CAST(stack_cmp_func, \ 3419 int (*)(const X509_TRUST **a, const X509_TRUST **b), \ 3420 comp))) 3421 3422#define sk_X509_TRUST_deep_copy(sk, copy_func, free_func) \ 3423 ((STACK_OF(X509_TRUST) *)sk_deep_copy( \ 3424 CHECKED_CAST(const _STACK *, const STACK_OF(X509_TRUST) *, sk), \ 3425 CHECKED_CAST(void *(*)(void *), X509_TRUST *(*)(X509_TRUST *), \ 3426 copy_func), \ 3427 CHECKED_CAST(void (*)(void *), void (*)(X509_TRUST *), free_func))) 3428 3429/* X509_VERIFY_PARAM */ 3430#define sk_X509_VERIFY_PARAM_new(comp) \ 3431 ((STACK_OF(X509_VERIFY_PARAM) *)sk_new(CHECKED_CAST( \ 3432 stack_cmp_func, \ 3433 int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b), \ 3434 comp))) 3435 3436#define sk_X509_VERIFY_PARAM_new_null() \ 3437 ((STACK_OF(X509_VERIFY_PARAM) *)sk_new_null()) 3438 3439#define sk_X509_VERIFY_PARAM_num(sk) \ 3440 sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)) 3441 3442#define sk_X509_VERIFY_PARAM_zero(sk) \ 3443 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)); 3444 3445#define sk_X509_VERIFY_PARAM_value(sk, i) \ 3446 ((X509_VERIFY_PARAM *)sk_value( \ 3447 CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk), (i))) 3448 3449#define sk_X509_VERIFY_PARAM_set(sk, i, p) \ 3450 ((X509_VERIFY_PARAM *)sk_set( \ 3451 CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), (i), \ 3452 CHECKED_CAST(void *, X509_VERIFY_PARAM *, p))) 3453 3454#define sk_X509_VERIFY_PARAM_free(sk) \ 3455 sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)) 3456 3457#define sk_X509_VERIFY_PARAM_pop_free(sk, free_func) \ 3458 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 3459 CHECKED_CAST(void (*)(void *), void (*)(X509_VERIFY_PARAM *), \ 3460 free_func)) 3461 3462#define sk_X509_VERIFY_PARAM_insert(sk, p, where) \ 3463 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 3464 CHECKED_CAST(void *, X509_VERIFY_PARAM *, p), (where)) 3465 3466#define sk_X509_VERIFY_PARAM_delete(sk, where) \ 3467 ((X509_VERIFY_PARAM *)sk_delete( \ 3468 CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), (where))) 3469 3470#define sk_X509_VERIFY_PARAM_delete_ptr(sk, p) \ 3471 ((X509_VERIFY_PARAM *)sk_delete_ptr( \ 3472 CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 3473 CHECKED_CAST(void *, X509_VERIFY_PARAM *, p))) 3474 3475#define sk_X509_VERIFY_PARAM_find(sk, out_index, p) \ 3476 sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 3477 (out_index), CHECKED_CAST(void *, X509_VERIFY_PARAM *, p)) 3478 3479#define sk_X509_VERIFY_PARAM_shift(sk) \ 3480 ((X509_VERIFY_PARAM *)sk_shift( \ 3481 CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))) 3482 3483#define sk_X509_VERIFY_PARAM_push(sk, p) \ 3484 sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 3485 CHECKED_CAST(void *, X509_VERIFY_PARAM *, p)) 3486 3487#define sk_X509_VERIFY_PARAM_pop(sk) \ 3488 ((X509_VERIFY_PARAM *)sk_pop( \ 3489 CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))) 3490 3491#define sk_X509_VERIFY_PARAM_dup(sk) \ 3492 ((STACK_OF(X509_VERIFY_PARAM) *)sk_dup( \ 3493 CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk))) 3494 3495#define sk_X509_VERIFY_PARAM_sort(sk) \ 3496 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)) 3497 3498#define sk_X509_VERIFY_PARAM_is_sorted(sk) \ 3499 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk)) 3500 3501#define sk_X509_VERIFY_PARAM_set_cmp_func(sk, comp) \ 3502 ((int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b)) \ 3503 sk_set_cmp_func( \ 3504 CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 3505 CHECKED_CAST(stack_cmp_func, int (*)(const X509_VERIFY_PARAM **a, \ 3506 const X509_VERIFY_PARAM **b), \ 3507 comp))) 3508 3509#define sk_X509_VERIFY_PARAM_deep_copy(sk, copy_func, free_func) \ 3510 ((STACK_OF(X509_VERIFY_PARAM) *)sk_deep_copy( \ 3511 CHECKED_CAST(const _STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk), \ 3512 CHECKED_CAST(void *(*)(void *), \ 3513 X509_VERIFY_PARAM *(*)(X509_VERIFY_PARAM *), copy_func), \ 3514 CHECKED_CAST(void (*)(void *), void (*)(X509_VERIFY_PARAM *), \ 3515 free_func))) 3516 3517/* void */ 3518#define sk_void_new(comp) \ 3519 ((STACK_OF(void)*)sk_new(CHECKED_CAST( \ 3520 stack_cmp_func, int (*)(const void **a, const void **b), comp))) 3521 3522#define sk_void_new_null() ((STACK_OF(void)*)sk_new_null()) 3523 3524#define sk_void_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk)) 3525 3526#define sk_void_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk)); 3527 3528#define sk_void_value(sk, i) \ 3529 ((void *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(void) *, sk), (i))) 3530 3531#define sk_void_set(sk, i, p) \ 3532 ((void *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (i), \ 3533 CHECKED_CAST(void *, void *, p))) 3534 3535#define sk_void_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk)) 3536 3537#define sk_void_pop_free(sk, free_func) \ 3538 sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk), \ 3539 CHECKED_CAST(void (*)(void *), void (*)(void *), free_func)) 3540 3541#define sk_void_insert(sk, p, where) \ 3542 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk), \ 3543 CHECKED_CAST(void *, void *, p), (where)) 3544 3545#define sk_void_delete(sk, where) \ 3546 ((void *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (where))) 3547 3548#define sk_void_delete_ptr(sk, p) \ 3549 ((void *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \ 3550 CHECKED_CAST(void *, void *, p))) 3551 3552#define sk_void_find(sk, out_index, p) \ 3553 sk_find(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk), (out_index), \ 3554 CHECKED_CAST(void *, void *, p)) 3555 3556#define sk_void_shift(sk) \ 3557 ((void *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))) 3558 3559#define sk_void_push(sk, p) \ 3560 sk_push(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk), \ 3561 CHECKED_CAST(void *, void *, p)) 3562 3563#define sk_void_pop(sk) \ 3564 ((void *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))) 3565 3566#define sk_void_dup(sk) \ 3567 ((STACK_OF(void)*)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(void) *, sk))) 3568 3569#define sk_void_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(void) *, sk)) 3570 3571#define sk_void_is_sorted(sk) \ 3572 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(void) *, sk)) 3573 3574#define sk_void_set_cmp_func(sk, comp) \ 3575 ((int (*)(const void **a, const void **b))sk_set_cmp_func( \ 3576 CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \ 3577 CHECKED_CAST(stack_cmp_func, int (*)(const void **a, const void **b), \ 3578 comp))) 3579 3580#define sk_void_deep_copy(sk, copy_func, free_func) \ 3581 ((STACK_OF(void)*)sk_deep_copy( \ 3582 CHECKED_CAST(const _STACK *, const STACK_OF(void) *, sk), \ 3583 CHECKED_CAST(void *(*)(void *), void *(*)(void *), copy_func), \ 3584 CHECKED_CAST(void (*)(void *), void (*)(void *), free_func))) 3585 3586/* SRTP_PROTECTION_PROFILE */ 3587#define sk_SRTP_PROTECTION_PROFILE_new(comp) \ 3588 ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_new(CHECKED_CAST( \ 3589 stack_cmp_func, int (*)(const const SRTP_PROTECTION_PROFILE **a, \ 3590 const const SRTP_PROTECTION_PROFILE **b), \ 3591 comp))) 3592 3593#define sk_SRTP_PROTECTION_PROFILE_new_null() \ 3594 ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_new_null()) 3595 3596#define sk_SRTP_PROTECTION_PROFILE_num(sk) \ 3597 sk_num(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 3598 3599#define sk_SRTP_PROTECTION_PROFILE_zero(sk) \ 3600 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)); 3601 3602#define sk_SRTP_PROTECTION_PROFILE_value(sk, i) \ 3603 ((const SRTP_PROTECTION_PROFILE *)sk_value( \ 3604 CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3605 (i))) 3606 3607#define sk_SRTP_PROTECTION_PROFILE_set(sk, i, p) \ 3608 ((const SRTP_PROTECTION_PROFILE *)sk_set( \ 3609 CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), (i), \ 3610 CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p))) 3611 3612#define sk_SRTP_PROTECTION_PROFILE_free(sk) \ 3613 sk_free(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 3614 3615#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, free_func) \ 3616 sk_pop_free( \ 3617 CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3618 CHECKED_CAST(void (*)(void *), \ 3619 void (*)(const SRTP_PROTECTION_PROFILE *), free_func)) 3620 3621#define sk_SRTP_PROTECTION_PROFILE_insert(sk, p, where) \ 3622 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3623 CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p), (where)) 3624 3625#define sk_SRTP_PROTECTION_PROFILE_delete(sk, where) \ 3626 ((const SRTP_PROTECTION_PROFILE *)sk_delete( \ 3627 CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3628 (where))) 3629 3630#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, p) \ 3631 ((const SRTP_PROTECTION_PROFILE *)sk_delete_ptr( \ 3632 CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3633 CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p))) 3634 3635#define sk_SRTP_PROTECTION_PROFILE_find(sk, out_index, p) \ 3636 sk_find(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3637 (out_index), \ 3638 CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p)) 3639 3640#define sk_SRTP_PROTECTION_PROFILE_shift(sk) \ 3641 ((const SRTP_PROTECTION_PROFILE *)sk_shift( \ 3642 CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))) 3643 3644#define sk_SRTP_PROTECTION_PROFILE_push(sk, p) \ 3645 sk_push(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3646 CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p)) 3647 3648#define sk_SRTP_PROTECTION_PROFILE_pop(sk) \ 3649 ((const SRTP_PROTECTION_PROFILE *)sk_pop( \ 3650 CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))) 3651 3652#define sk_SRTP_PROTECTION_PROFILE_dup(sk) \ 3653 ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_dup( \ 3654 CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))) 3655 3656#define sk_SRTP_PROTECTION_PROFILE_sort(sk) \ 3657 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 3658 3659#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) \ 3660 sk_is_sorted( \ 3661 CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 3662 3663#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, comp) \ 3664 ((int (*)(const SRTP_PROTECTION_PROFILE **a, \ 3665 const SRTP_PROTECTION_PROFILE **b)) \ 3666 sk_set_cmp_func( \ 3667 CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 3668 CHECKED_CAST(stack_cmp_func, \ 3669 int (*)(const SRTP_PROTECTION_PROFILE **a, \ 3670 const SRTP_PROTECTION_PROFILE **b), \ 3671 comp))) 3672 3673#define sk_SRTP_PROTECTION_PROFILE_deep_copy(sk, copy_func, free_func) \ 3674 ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_deep_copy( \ 3675 CHECKED_CAST(const _STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, \ 3676 sk), \ 3677 CHECKED_CAST(void *(*)(void *), const SRTP_PROTECTION_PROFILE *(*)( \ 3678 const SRTP_PROTECTION_PROFILE *), \ 3679 copy_func), \ 3680 CHECKED_CAST(void (*)(void *), \ 3681 void (*)(const SRTP_PROTECTION_PROFILE *), free_func))) 3682 3683/* SSL_CIPHER */ 3684#define sk_SSL_CIPHER_new(comp) \ 3685 ((STACK_OF(SSL_CIPHER) *)sk_new(CHECKED_CAST( \ 3686 stack_cmp_func, \ 3687 int (*)(const const SSL_CIPHER **a, const const SSL_CIPHER **b), comp))) 3688 3689#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)sk_new_null()) 3690 3691#define sk_SSL_CIPHER_num(sk) \ 3692 sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)) 3693 3694#define sk_SSL_CIPHER_zero(sk) \ 3695 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)); 3696 3697#define sk_SSL_CIPHER_value(sk, i) \ 3698 ((const SSL_CIPHER *)sk_value( \ 3699 CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk), (i))) 3700 3701#define sk_SSL_CIPHER_set(sk, i, p) \ 3702 ((const SSL_CIPHER *)sk_set( \ 3703 CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (i), \ 3704 CHECKED_CAST(void *, const SSL_CIPHER *, p))) 3705 3706#define sk_SSL_CIPHER_free(sk) \ 3707 sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)) 3708 3709#define sk_SSL_CIPHER_pop_free(sk, free_func) \ 3710 sk_pop_free( \ 3711 CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 3712 CHECKED_CAST(void (*)(void *), void (*)(const SSL_CIPHER *), free_func)) 3713 3714#define sk_SSL_CIPHER_insert(sk, p, where) \ 3715 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 3716 CHECKED_CAST(void *, const SSL_CIPHER *, p), (where)) 3717 3718#define sk_SSL_CIPHER_delete(sk, where) \ 3719 ((const SSL_CIPHER *)sk_delete( \ 3720 CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (where))) 3721 3722#define sk_SSL_CIPHER_delete_ptr(sk, p) \ 3723 ((const SSL_CIPHER *)sk_delete_ptr( \ 3724 CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 3725 CHECKED_CAST(void *, const SSL_CIPHER *, p))) 3726 3727#define sk_SSL_CIPHER_find(sk, out_index, p) \ 3728 sk_find(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (out_index), \ 3729 CHECKED_CAST(void *, const SSL_CIPHER *, p)) 3730 3731#define sk_SSL_CIPHER_shift(sk) \ 3732 ((const SSL_CIPHER *)sk_shift( \ 3733 CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))) 3734 3735#define sk_SSL_CIPHER_push(sk, p) \ 3736 sk_push(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 3737 CHECKED_CAST(void *, const SSL_CIPHER *, p)) 3738 3739#define sk_SSL_CIPHER_pop(sk) \ 3740 ((const SSL_CIPHER *)sk_pop( \ 3741 CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))) 3742 3743#define sk_SSL_CIPHER_dup(sk) \ 3744 ((STACK_OF(SSL_CIPHER) *)sk_dup( \ 3745 CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk))) 3746 3747#define sk_SSL_CIPHER_sort(sk) \ 3748 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)) 3749 3750#define sk_SSL_CIPHER_is_sorted(sk) \ 3751 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk)) 3752 3753#define sk_SSL_CIPHER_set_cmp_func(sk, comp) \ 3754 ((int (*)(const SSL_CIPHER **a, const SSL_CIPHER **b))sk_set_cmp_func( \ 3755 CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 3756 CHECKED_CAST(stack_cmp_func, \ 3757 int (*)(const SSL_CIPHER **a, const SSL_CIPHER **b), \ 3758 comp))) 3759 3760#define sk_SSL_CIPHER_deep_copy(sk, copy_func, free_func) \ 3761 ((STACK_OF(SSL_CIPHER) *)sk_deep_copy( \ 3762 CHECKED_CAST(const _STACK *, const STACK_OF(SSL_CIPHER) *, sk), \ 3763 CHECKED_CAST(void *(*)(void *), \ 3764 const SSL_CIPHER *(*)(const SSL_CIPHER *), copy_func), \ 3765 CHECKED_CAST(void (*)(void *), void (*)(const SSL_CIPHER *), \ 3766 free_func))) 3767 3768/* OPENSSL_STRING */ 3769#define sk_OPENSSL_STRING_new(comp) \ 3770 ((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_CAST( \ 3771 stack_cmp_func, \ 3772 int (*)(const OPENSSL_STRING *a, const OPENSSL_STRING *b), comp))) 3773 3774#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null()) 3775 3776#define sk_OPENSSL_STRING_num(sk) \ 3777 sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)) 3778 3779#define sk_OPENSSL_STRING_zero(sk) \ 3780 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)); 3781 3782#define sk_OPENSSL_STRING_value(sk, i) \ 3783 ((OPENSSL_STRING)sk_value( \ 3784 CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk), (i))) 3785 3786#define sk_OPENSSL_STRING_set(sk, i, p) \ 3787 ((OPENSSL_STRING)sk_set( \ 3788 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (i), \ 3789 CHECKED_CAST(void *, OPENSSL_STRING, p))) 3790 3791#define sk_OPENSSL_STRING_free(sk) \ 3792 sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)) 3793 3794#define sk_OPENSSL_STRING_pop_free(sk, free_func) \ 3795 sk_pop_free( \ 3796 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 3797 CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_STRING), free_func)) 3798 3799#define sk_OPENSSL_STRING_insert(sk, p, where) \ 3800 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 3801 CHECKED_CAST(void *, OPENSSL_STRING, p), (where)) 3802 3803#define sk_OPENSSL_STRING_delete(sk, where) \ 3804 ((OPENSSL_STRING)sk_delete( \ 3805 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (where))) 3806 3807#define sk_OPENSSL_STRING_delete_ptr(sk, p) \ 3808 ((OPENSSL_STRING)sk_delete_ptr( \ 3809 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 3810 CHECKED_CAST(void *, OPENSSL_STRING, p))) 3811 3812#define sk_OPENSSL_STRING_find(sk, out_index, p) \ 3813 sk_find(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (out_index), \ 3814 CHECKED_CAST(void *, OPENSSL_STRING, p)) 3815 3816#define sk_OPENSSL_STRING_shift(sk) \ 3817 ((OPENSSL_STRING)sk_shift( \ 3818 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))) 3819 3820#define sk_OPENSSL_STRING_push(sk, p) \ 3821 sk_push(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 3822 CHECKED_CAST(void *, OPENSSL_STRING, p)) 3823 3824#define sk_OPENSSL_STRING_pop(sk) \ 3825 ((OPENSSL_STRING)sk_pop( \ 3826 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))) 3827 3828#define sk_OPENSSL_STRING_dup(sk) \ 3829 ((STACK_OF(OPENSSL_STRING) *)sk_dup( \ 3830 CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk))) 3831 3832#define sk_OPENSSL_STRING_sort(sk) \ 3833 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)) 3834 3835#define sk_OPENSSL_STRING_is_sorted(sk) \ 3836 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk)) 3837 3838#define sk_OPENSSL_STRING_set_cmp_func(sk, comp) \ 3839 ((int (*)(const OPENSSL_STRING **a, const OPENSSL_STRING **b)) \ 3840 sk_set_cmp_func( \ 3841 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 3842 CHECKED_CAST(stack_cmp_func, int (*)(const OPENSSL_STRING **a, \ 3843 const OPENSSL_STRING **b), \ 3844 comp))) 3845 3846#define sk_OPENSSL_STRING_deep_copy(sk, copy_func, free_func) \ 3847 ((STACK_OF(OPENSSL_STRING) *)sk_deep_copy( \ 3848 CHECKED_CAST(const _STACK *, const STACK_OF(OPENSSL_STRING) *, sk), \ 3849 CHECKED_CAST(void *(*)(void *), OPENSSL_STRING (*)(OPENSSL_STRING), \ 3850 copy_func), \ 3851 CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_STRING), free_func))) 3852 3853/* OPENSSL_BLOCK */ 3854#define sk_OPENSSL_BLOCK_new(comp) \ 3855 ((STACK_OF(OPENSSL_BLOCK) *)sk_new(CHECKED_CAST( \ 3856 stack_cmp_func, int (*)(const OPENSSL_BLOCK *a, const OPENSSL_BLOCK *b), \ 3857 comp))) 3858 3859#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null()) 3860 3861#define sk_OPENSSL_BLOCK_num(sk) \ 3862 sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)) 3863 3864#define sk_OPENSSL_BLOCK_zero(sk) \ 3865 sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)); 3866 3867#define sk_OPENSSL_BLOCK_value(sk, i) \ 3868 ((OPENSSL_BLOCK)sk_value( \ 3869 CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk), (i))) 3870 3871#define sk_OPENSSL_BLOCK_set(sk, i, p) \ 3872 ((OPENSSL_BLOCK)sk_set( \ 3873 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (i), \ 3874 CHECKED_CAST(void *, OPENSSL_BLOCK, p))) 3875 3876#define sk_OPENSSL_BLOCK_free(sk) \ 3877 sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)) 3878 3879#define sk_OPENSSL_BLOCK_pop_free(sk, free_func) \ 3880 sk_pop_free( \ 3881 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 3882 CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_BLOCK), free_func)) 3883 3884#define sk_OPENSSL_BLOCK_insert(sk, p, where) \ 3885 sk_insert(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 3886 CHECKED_CAST(void *, OPENSSL_BLOCK, p), (where)) 3887 3888#define sk_OPENSSL_BLOCK_delete(sk, where) \ 3889 ((OPENSSL_BLOCK)sk_delete( \ 3890 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (where))) 3891 3892#define sk_OPENSSL_BLOCK_delete_ptr(sk, p) \ 3893 ((OPENSSL_BLOCK)sk_delete_ptr( \ 3894 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 3895 CHECKED_CAST(void *, OPENSSL_BLOCK, p))) 3896 3897#define sk_OPENSSL_BLOCK_find(sk, out_index, p) \ 3898 sk_find(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (out_index), \ 3899 CHECKED_CAST(void *, OPENSSL_BLOCK, p)) 3900 3901#define sk_OPENSSL_BLOCK_shift(sk) \ 3902 ((OPENSSL_BLOCK)sk_shift( \ 3903 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))) 3904 3905#define sk_OPENSSL_BLOCK_push(sk, p) \ 3906 sk_push(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 3907 CHECKED_CAST(void *, OPENSSL_BLOCK, p)) 3908 3909#define sk_OPENSSL_BLOCK_pop(sk) \ 3910 ((OPENSSL_BLOCK)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))) 3911 3912#define sk_OPENSSL_BLOCK_dup(sk) \ 3913 ((STACK_OF(OPENSSL_BLOCK) *)sk_dup( \ 3914 CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk))) 3915 3916#define sk_OPENSSL_BLOCK_sort(sk) \ 3917 sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)) 3918 3919#define sk_OPENSSL_BLOCK_is_sorted(sk) \ 3920 sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk)) 3921 3922#define sk_OPENSSL_BLOCK_set_cmp_func(sk, comp) \ 3923 ((int (*)(const OPENSSL_BLOCK **a, const OPENSSL_BLOCK **b))sk_set_cmp_func( \ 3924 CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 3925 CHECKED_CAST(stack_cmp_func, \ 3926 int (*)(const OPENSSL_BLOCK **a, const OPENSSL_BLOCK **b), \ 3927 comp))) 3928 3929#define sk_OPENSSL_BLOCK_deep_copy(sk, copy_func, free_func) \ 3930 ((STACK_OF(OPENSSL_BLOCK) *)sk_deep_copy( \ 3931 CHECKED_CAST(const _STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk), \ 3932 CHECKED_CAST(void *(*)(void *), OPENSSL_BLOCK (*)(OPENSSL_BLOCK), \ 3933 copy_func), \ 3934 CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_BLOCK), free_func))) 3935