14c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* Copyright (c) 2014, Google Inc. 24c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * 34c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * Permission to use, copy, modify, and/or distribute this software for any 44c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * purpose with or without fee is hereby granted, provided that the above 54c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * copyright notice and this permission notice appear in all copies. 64c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * 74c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 84c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 94c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ 144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#if !defined(IN_STACK_H) 164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#error "Don't include this file directly. Include stack.h." 174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#endif 184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ACCESS_DESCRIPTION */ 204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_new(comp) \ 214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ACCESS_DESCRIPTION) *)sk_new(CHECKED_CAST( \ 224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b), \ 244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_new_null() \ 274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ACCESS_DESCRIPTION) *)sk_new_null()) 284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_num(sk) \ 304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)) 314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_zero(sk) \ 334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)); 344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_value(sk, i) \ 364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ACCESS_DESCRIPTION *)sk_value( \ 374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk), (i))) 384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_set(sk, i, p) \ 404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ACCESS_DESCRIPTION *)sk_set( \ 414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (i), \ 424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))) 434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_free(sk) \ 454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)) 464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_pop_free(sk, free_func) \ 484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ACCESS_DESCRIPTION *), \ 504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_insert(sk, p, where) \ 534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p), (where)) 554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_delete(sk, where) \ 574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ACCESS_DESCRIPTION *)sk_delete( \ 584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (where))) 594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_delete_ptr(sk, p) \ 614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ACCESS_DESCRIPTION *)sk_delete_ptr( \ 624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))) 644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_find(sk, out_index, p) \ 664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)) 684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_shift(sk) \ 704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ACCESS_DESCRIPTION *)sk_shift( \ 714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))) 724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_push(sk, p) \ 744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)) 764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_pop(sk) \ 784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ACCESS_DESCRIPTION *)sk_pop( \ 794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))) 804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_dup(sk) \ 824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ACCESS_DESCRIPTION) *)sk_dup( \ 834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk))) 844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_sort(sk) \ 864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)) 874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_is_sorted(sk) \ 894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk)) 904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, comp) \ 924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b)) \ 934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \ 954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const ACCESS_DESCRIPTION **a, \ 964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const ACCESS_DESCRIPTION **b), \ 974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 996f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 1004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ASN1_ADB_TABLE */ 1014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_new(comp) \ 1024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_ADB_TABLE) *)sk_new(CHECKED_CAST( \ 1034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 1044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b), comp))) 1054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_new_null() ((STACK_OF(ASN1_ADB_TABLE) *)sk_new_null()) 1074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_num(sk) \ 1094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)) 1104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_zero(sk) \ 1124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)); 1134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_value(sk, i) \ 1154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_ADB_TABLE *)sk_value( \ 1164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk), (i))) 1174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_set(sk, i, p) \ 1194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_ADB_TABLE *)sk_set( \ 1204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (i), \ 1214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_ADB_TABLE *, p))) 1224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_free(sk) \ 1244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)) 1254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_pop_free(sk, free_func) \ 1274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 1284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 1294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ASN1_ADB_TABLE *), free_func)) 1304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_insert(sk, p, where) \ 1324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 1334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_ADB_TABLE *, p), (where)) 1344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_delete(sk, where) \ 1364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_ADB_TABLE *)sk_delete( \ 1374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (where))) 1384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_delete_ptr(sk, p) \ 1404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_ADB_TABLE *)sk_delete_ptr( \ 1414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 1424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_ADB_TABLE *, p))) 1434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_find(sk, out_index, p) \ 1454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (out_index), \ 1464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_ADB_TABLE *, p)) 1474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_shift(sk) \ 1494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_ADB_TABLE *)sk_shift( \ 1504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))) 1514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_push(sk, p) \ 1534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 1544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_ADB_TABLE *, p)) 1554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_pop(sk) \ 1574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_ADB_TABLE *)sk_pop( \ 1584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))) 1594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_dup(sk) \ 1614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_ADB_TABLE) *)sk_dup( \ 1624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk))) 1634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_sort(sk) \ 1654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)) 1664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_is_sorted(sk) \ 1684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk)) 1694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_ADB_TABLE_set_cmp_func(sk, comp) \ 1714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b)) \ 1724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 1734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \ 1744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_ADB_TABLE **a, \ 1754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const ASN1_ADB_TABLE **b), \ 1764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 1774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1786f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 1794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ASN1_GENERALSTRING */ 1804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_new(comp) \ 1814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_GENERALSTRING) *)sk_new(CHECKED_CAST( \ 1824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 1834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b), \ 1844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 1854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_new_null() \ 1874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_GENERALSTRING) *)sk_new_null()) 1884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_num(sk) \ 1904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)) 1914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_zero(sk) \ 1934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)); 1944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_value(sk, i) \ 1964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_GENERALSTRING *)sk_value( \ 1974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk), (i))) 1984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 1994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_set(sk, i, p) \ 2004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_GENERALSTRING *)sk_set( \ 2014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), (i), \ 2024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_GENERALSTRING *, p))) 2034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_free(sk) \ 2054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)) 2064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_pop_free(sk, free_func) \ 2084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 2094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ASN1_GENERALSTRING *), \ 2104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 2114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_insert(sk, p, where) \ 2134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 2144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_GENERALSTRING *, p), (where)) 2154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_delete(sk, where) \ 2174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_GENERALSTRING *)sk_delete( \ 2184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), (where))) 2194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_delete_ptr(sk, p) \ 2214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_GENERALSTRING *)sk_delete_ptr( \ 2224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 2234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_GENERALSTRING *, p))) 2244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_find(sk, out_index, p) \ 2264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 2274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, ASN1_GENERALSTRING *, p)) 2284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_shift(sk) \ 2304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_GENERALSTRING *)sk_shift( \ 2314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))) 2324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_push(sk, p) \ 2344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 2354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_GENERALSTRING *, p)) 2364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_pop(sk) \ 2384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_GENERALSTRING *)sk_pop( \ 2394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))) 2404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_dup(sk) \ 2424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_GENERALSTRING) *)sk_dup( \ 2434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk))) 2444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_sort(sk) \ 2464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)) 2474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_is_sorted(sk) \ 2494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk)) 2504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_GENERALSTRING_set_cmp_func(sk, comp) \ 2524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b)) \ 2534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 2544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \ 2554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_GENERALSTRING **a, \ 2564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const ASN1_GENERALSTRING **b), \ 2574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 2584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2596f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 2604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ASN1_INTEGER */ 2614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_new(comp) \ 2624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_INTEGER) *)sk_new(CHECKED_CAST( \ 2634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b), \ 2644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 2654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_new_null() ((STACK_OF(ASN1_INTEGER) *)sk_new_null()) 2674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_num(sk) \ 2694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)) 2704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_zero(sk) \ 2724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)); 2734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_value(sk, i) \ 2754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_INTEGER *)sk_value( \ 2764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk), (i))) 2774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_set(sk, i, p) \ 2794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_INTEGER *)sk_set( \ 2804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (i), \ 2814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_INTEGER *, p))) 2824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_free(sk) \ 2844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)) 2854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_pop_free(sk, free_func) \ 2874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 2884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 2894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ASN1_INTEGER *), free_func)) 2904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_insert(sk, p, where) \ 2924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 2934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_INTEGER *, p), (where)) 2944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_delete(sk, where) \ 2964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_INTEGER *)sk_delete( \ 2974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (where))) 2984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 2994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_delete_ptr(sk, p) \ 3004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_INTEGER *)sk_delete_ptr( \ 3014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 3024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_INTEGER *, p))) 3034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_find(sk, out_index, p) \ 3054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (out_index), \ 3064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_INTEGER *, p)) 3074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_shift(sk) \ 3094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_INTEGER *)sk_shift( \ 3104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))) 3114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_push(sk, p) \ 3134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 3144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_INTEGER *, p)) 3154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_pop(sk) \ 3174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_INTEGER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))) 3184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_dup(sk) \ 3204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_INTEGER) *)sk_dup( \ 3214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk))) 3224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_sort(sk) \ 3244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)) 3254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_is_sorted(sk) \ 3274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk)) 3284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_INTEGER_set_cmp_func(sk, comp) \ 3304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b))sk_set_cmp_func( \ 3314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \ 3324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 3334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b), \ 3344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 3354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3366f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 3374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ASN1_OBJECT */ 3384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_new(comp) \ 3394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_OBJECT) *)sk_new(CHECKED_CAST( \ 3404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b), \ 3414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 3424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_new_null() ((STACK_OF(ASN1_OBJECT) *)sk_new_null()) 3444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_num(sk) \ 3464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)) 3474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_zero(sk) \ 3494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)); 3504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_value(sk, i) \ 3524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_OBJECT *)sk_value( \ 3534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk), (i))) 3544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_set(sk, i, p) \ 3564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_OBJECT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 3574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, ASN1_OBJECT *, p))) 3584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_free(sk) \ 3604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)) 3614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_pop_free(sk, free_func) \ 3634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 3644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 3654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ASN1_OBJECT *), free_func)) 3664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_insert(sk, p, where) \ 3684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 3694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_OBJECT *, p), (where)) 3704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_delete(sk, where) \ 3724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_OBJECT *)sk_delete( \ 3734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), (where))) 3744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_delete_ptr(sk, p) \ 3764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_OBJECT *)sk_delete_ptr( \ 3774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 3784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_OBJECT *, p))) 3794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_find(sk, out_index, p) \ 3814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), (out_index), \ 3824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_OBJECT *, p)) 3834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_shift(sk) \ 3854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))) 3864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_push(sk, p) \ 3884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 3894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_OBJECT *, p)) 3904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_pop(sk) \ 3924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))) 3934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_dup(sk) \ 3954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_OBJECT) *)sk_dup( \ 3964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk))) 3974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 3984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_sort(sk) \ 3994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)) 4004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_is_sorted(sk) \ 4024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk)) 4034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_OBJECT_set_cmp_func(sk, comp) \ 4054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b))sk_set_cmp_func( \ 4064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \ 4074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 4084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b), \ 4094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 4104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4116f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 4124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ASN1_STRING_TABLE */ 4134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_new(comp) \ 4144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_STRING_TABLE) *)sk_new(CHECKED_CAST( \ 4154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 4164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b), \ 4174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 4184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_new_null() \ 4204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_STRING_TABLE) *)sk_new_null()) 4214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_num(sk) \ 4234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)) 4244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_zero(sk) \ 4264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)); 4274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_value(sk, i) \ 4294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_STRING_TABLE *)sk_value( \ 4304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk), (i))) 4314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_set(sk, i, p) \ 4334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_STRING_TABLE *)sk_set( \ 4344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), (i), \ 4354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_STRING_TABLE *, p))) 4364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_free(sk) \ 4384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)) 4394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_pop_free(sk, free_func) \ 4414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 4424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ASN1_STRING_TABLE *), \ 4434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 4444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_insert(sk, p, where) \ 4464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 4474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_STRING_TABLE *, p), (where)) 4484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_delete(sk, where) \ 4504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_STRING_TABLE *)sk_delete( \ 4514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), (where))) 4524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_delete_ptr(sk, p) \ 4544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_STRING_TABLE *)sk_delete_ptr( \ 4554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 4564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_STRING_TABLE *, p))) 4574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_find(sk, out_index, p) \ 4594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 4604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, ASN1_STRING_TABLE *, p)) 4614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_shift(sk) \ 4634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_STRING_TABLE *)sk_shift( \ 4644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))) 4654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_push(sk, p) \ 4674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 4684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_STRING_TABLE *, p)) 4694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_pop(sk) \ 4714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_STRING_TABLE *)sk_pop( \ 4724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))) 4734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_dup(sk) \ 4754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_STRING_TABLE) *)sk_dup( \ 4764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk))) 4774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_sort(sk) \ 4794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)) 4804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_is_sorted(sk) \ 4824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk)) 4834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_STRING_TABLE_set_cmp_func(sk, comp) \ 4854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b)) \ 4864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 4874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \ 4884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_STRING_TABLE **a, \ 4894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const ASN1_STRING_TABLE **b), \ 4904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 4914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4926f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 4934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ASN1_TYPE */ 4944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_new(comp) \ 4954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_TYPE) *)sk_new( \ 4964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 4974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b), comp))) 4984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 4994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_new_null() ((STACK_OF(ASN1_TYPE) *)sk_new_null()) 5004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_num(sk) \ 5024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)) 5034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_zero(sk) \ 5054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)); 5064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_value(sk, i) \ 5084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_TYPE *)sk_value( \ 5094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk), (i))) 5104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_set(sk, i, p) \ 5124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_TYPE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), (i), \ 5134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_TYPE *, p))) 5144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_free(sk) \ 5164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)) 5174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_pop_free(sk, free_func) \ 5194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 5204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 5214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ASN1_TYPE *), free_func)) 5224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_insert(sk, p, where) \ 5244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 5254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_TYPE *, p), (where)) 5264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_delete(sk, where) \ 5284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_TYPE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 5294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 5304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_delete_ptr(sk, p) \ 5324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_TYPE *)sk_delete_ptr( \ 5334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 5344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_TYPE *, p))) 5354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_find(sk, out_index, p) \ 5374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), (out_index), \ 5384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_TYPE *, p)) 5394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_shift(sk) \ 5414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_TYPE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))) 5424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_push(sk, p) \ 5444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 5454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_TYPE *, p)) 5464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_pop(sk) \ 5484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_TYPE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))) 5494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_dup(sk) \ 5514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_TYPE) *)sk_dup( \ 5524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk))) 5534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_sort(sk) \ 5554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)) 5564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_is_sorted(sk) \ 5584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk)) 5594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_TYPE_set_cmp_func(sk, comp) \ 5614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b))sk_set_cmp_func( \ 5624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \ 5634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 5644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b), comp))) 5654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5666f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 5674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* ASN1_VALUE */ 5684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_new(comp) \ 5694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_VALUE) *)sk_new(CHECKED_CAST( \ 5704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b), \ 5714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 5724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_new_null() ((STACK_OF(ASN1_VALUE) *)sk_new_null()) 5744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_num(sk) \ 5764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)) 5774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_zero(sk) \ 5794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)); 5804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_value(sk, i) \ 5824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_VALUE *)sk_value( \ 5834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk), (i))) 5844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_set(sk, i, p) \ 5864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_VALUE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 5874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, ASN1_VALUE *, p))) 5884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_free(sk) \ 5904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)) 5914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_pop_free(sk, free_func) \ 5934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 5944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 5954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(ASN1_VALUE *), free_func)) 5964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 5974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_insert(sk, p, where) \ 5984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 5994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_VALUE *, p), (where)) 6004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_delete(sk, where) \ 6024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 6034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 6044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_delete_ptr(sk, p) \ 6064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_VALUE *)sk_delete_ptr( \ 6074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 6084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_VALUE *, p))) 6094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_find(sk, out_index, p) \ 6114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), (out_index), \ 6124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_VALUE *, p)) 6134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_shift(sk) \ 6154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))) 6164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_push(sk, p) \ 6184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 6194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, ASN1_VALUE *, p)) 6204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_pop(sk) \ 6224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((ASN1_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))) 6234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_dup(sk) \ 6254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(ASN1_VALUE) *)sk_dup( \ 6264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk))) 6274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_sort(sk) \ 6294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)) 6304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_is_sorted(sk) \ 6324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk)) 6334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_ASN1_VALUE_set_cmp_func(sk, comp) \ 6354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b))sk_set_cmp_func( \ 6364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \ 6374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 6384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b), \ 6394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 6404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6416f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 6424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* BIO */ 6434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_new(comp) \ 6444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(BIO) *)sk_new(CHECKED_CAST( \ 6454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const BIO **a, const BIO **b), comp))) 6464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_new_null() ((STACK_OF(BIO) *)sk_new_null()) 6484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)) 6504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)); 6524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_value(sk, i) \ 6544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BIO *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk), (i))) 6554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_set(sk, i, p) \ 6574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BIO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (i), \ 6584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BIO *, p))) 6594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)) 6614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_pop_free(sk, free_func) \ 6634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 6644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(BIO *), free_func)) 6654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_insert(sk, p, where) \ 6674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 6684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BIO *, p), (where)) 6694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_delete(sk, where) \ 6714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BIO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (where))) 6724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_delete_ptr(sk, p) \ 6744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BIO *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 6754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BIO *, p))) 6764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_find(sk, out_index, p) \ 6784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (out_index), \ 6794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BIO *, p)) 6804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_shift(sk) \ 6824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BIO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))) 6834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_push(sk, p) \ 6854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 6864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BIO *, p)) 6874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_pop(sk) \ 6894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BIO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))) 6904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_dup(sk) \ 6924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(BIO) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk))) 6934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)) 6954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_is_sorted(sk) \ 6974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk)) 6984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 6994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BIO_set_cmp_func(sk, comp) \ 7004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const BIO **a, const BIO **b))sk_set_cmp_func( \ 7014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \ 7024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const BIO **a, const BIO **b), \ 7034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 7044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7056f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 7064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* BY_DIR_ENTRY */ 7074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_new(comp) \ 7084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(BY_DIR_ENTRY) *)sk_new(CHECKED_CAST( \ 7094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b), \ 7104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 7114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_new_null() ((STACK_OF(BY_DIR_ENTRY) *)sk_new_null()) 7134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_num(sk) \ 7154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)) 7164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_zero(sk) \ 7184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)); 7194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_value(sk, i) \ 7214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_ENTRY *)sk_value( \ 7224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk), (i))) 7234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_set(sk, i, p) \ 7254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_ENTRY *)sk_set( \ 7264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (i), \ 7274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_ENTRY *, p))) 7284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_free(sk) \ 7304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)) 7314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_pop_free(sk, free_func) \ 7334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 7344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 7354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_ENTRY *), free_func)) 7364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_insert(sk, p, where) \ 7384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 7394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_ENTRY *, p), (where)) 7404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_delete(sk, where) \ 7424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_ENTRY *)sk_delete( \ 7434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (where))) 7444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_delete_ptr(sk, p) \ 7464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_ENTRY *)sk_delete_ptr( \ 7474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 7484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_ENTRY *, p))) 7494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_find(sk, out_index, p) \ 7514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (out_index), \ 7524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_ENTRY *, p)) 7534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_shift(sk) \ 7554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_ENTRY *)sk_shift( \ 7564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))) 7574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_push(sk, p) \ 7594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 7604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_ENTRY *, p)) 7614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_pop(sk) \ 7634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_ENTRY *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))) 7644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_dup(sk) \ 7664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(BY_DIR_ENTRY) *)sk_dup( \ 7674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk))) 7684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_sort(sk) \ 7704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)) 7714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_is_sorted(sk) \ 7734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk)) 7744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_ENTRY_set_cmp_func(sk, comp) \ 7764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b))sk_set_cmp_func( \ 7774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \ 7784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 7794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b), \ 7804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 7814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7826f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 7834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* BY_DIR_HASH */ 7844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_new(comp) \ 7854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(BY_DIR_HASH) *)sk_new(CHECKED_CAST( \ 7864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b), \ 7874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 7884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_new_null() ((STACK_OF(BY_DIR_HASH) *)sk_new_null()) 7904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_num(sk) \ 7924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)) 7934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_zero(sk) \ 7954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)); 7964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 7974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_value(sk, i) \ 7984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_HASH *)sk_value( \ 7994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk), (i))) 8004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_set(sk, i, p) \ 8024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_HASH *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 8034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, BY_DIR_HASH *, p))) 8044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_free(sk) \ 8064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)) 8074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_pop_free(sk, free_func) \ 8094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 8104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 8114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_HASH *), free_func)) 8124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_insert(sk, p, where) \ 8144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 8154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_HASH *, p), (where)) 8164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_delete(sk, where) \ 8184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_HASH *)sk_delete( \ 8194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), (where))) 8204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_delete_ptr(sk, p) \ 8224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_HASH *)sk_delete_ptr( \ 8234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 8244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_HASH *, p))) 8254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_find(sk, out_index, p) \ 8274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), (out_index), \ 8284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_HASH *, p)) 8294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_shift(sk) \ 8314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_HASH *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))) 8324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_push(sk, p) \ 8344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 8354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, BY_DIR_HASH *, p)) 8364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_pop(sk) \ 8384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((BY_DIR_HASH *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))) 8394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_dup(sk) \ 8414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(BY_DIR_HASH) *)sk_dup( \ 8424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk))) 8434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_sort(sk) \ 8454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)) 8464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_is_sorted(sk) \ 8484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk)) 8494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_BY_DIR_HASH_set_cmp_func(sk, comp) \ 8514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b))sk_set_cmp_func( \ 8524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \ 8534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 8544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b), \ 8554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 8564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8576f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 8584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* CONF_VALUE */ 8594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_new(comp) \ 8604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(CONF_VALUE) *)sk_new(CHECKED_CAST( \ 8614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const CONF_VALUE **a, const CONF_VALUE **b), \ 8624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 8634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_new_null() ((STACK_OF(CONF_VALUE) *)sk_new_null()) 8654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_num(sk) \ 8674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)) 8684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_zero(sk) \ 8704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)); 8714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_value(sk, i) \ 8734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CONF_VALUE *)sk_value( \ 8744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk), (i))) 8754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_set(sk, i, p) \ 8774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CONF_VALUE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 8784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, CONF_VALUE *, p))) 8794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_free(sk) \ 8814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)) 8824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_pop_free(sk, free_func) \ 8844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 8854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 8864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(CONF_VALUE *), free_func)) 8874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_insert(sk, p, where) \ 8894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 8904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CONF_VALUE *, p), (where)) 8914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_delete(sk, where) \ 8934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CONF_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 8944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 8954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 8964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_delete_ptr(sk, p) \ 8974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CONF_VALUE *)sk_delete_ptr( \ 8984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 8994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CONF_VALUE *, p))) 9004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_find(sk, out_index, p) \ 9024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), (out_index), \ 9034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CONF_VALUE *, p)) 9044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_shift(sk) \ 9064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CONF_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))) 9074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_push(sk, p) \ 9094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 9104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CONF_VALUE *, p)) 9114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_pop(sk) \ 9134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CONF_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))) 9144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_dup(sk) \ 9164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(CONF_VALUE) *)sk_dup( \ 9174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk))) 9184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_sort(sk) \ 9204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)) 9214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_is_sorted(sk) \ 9234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk)) 9244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CONF_VALUE_set_cmp_func(sk, comp) \ 9264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const CONF_VALUE **a, const CONF_VALUE **b))sk_set_cmp_func( \ 9274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \ 9284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 9294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const CONF_VALUE **a, const CONF_VALUE **b), \ 9304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 9314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9326f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 9334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* CRYPTO_EX_DATA_FUNCS */ 9344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_new(comp) \ 9354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_new(CHECKED_CAST( \ 9364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 9374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const CRYPTO_EX_DATA_FUNCS **a, const CRYPTO_EX_DATA_FUNCS **b), \ 9384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 9394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_new_null() \ 9414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_new_null()) 9424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_num(sk) \ 9444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 9454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_zero(sk) \ 9474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)); 9484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_value(sk, i) \ 9504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CRYPTO_EX_DATA_FUNCS *)sk_value( \ 9514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 9524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i))) 9534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_set(sk, i, p) \ 9554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CRYPTO_EX_DATA_FUNCS *)sk_set( \ 9564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), (i), \ 9574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p))) 9584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_free(sk) \ 9604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 9614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_pop_free(sk, free_func) \ 9634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 9644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(CRYPTO_EX_DATA_FUNCS *), \ 9654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 9664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_insert(sk, p, where) \ 9684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 9694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p), (where)) 9704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_delete(sk, where) \ 9724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CRYPTO_EX_DATA_FUNCS *)sk_delete( \ 9734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), (where))) 9744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(sk, p) \ 9764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CRYPTO_EX_DATA_FUNCS *)sk_delete_ptr( \ 9774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 9784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p))) 9794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_find(sk, out_index, p) \ 9814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 9824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p)) 9834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_shift(sk) \ 9854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CRYPTO_EX_DATA_FUNCS *)sk_shift( \ 9864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))) 9874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_push(sk, p) \ 9894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 9904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p)) 9914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_pop(sk) \ 9934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((CRYPTO_EX_DATA_FUNCS *)sk_pop( \ 9944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))) 9954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 9964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_dup(sk) \ 9974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_dup( \ 9984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))) 9994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_sort(sk) \ 10014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 10024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(sk) \ 10044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted( \ 10054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)) 10064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(sk, comp) \ 10084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const CRYPTO_EX_DATA_FUNCS **a, const CRYPTO_EX_DATA_FUNCS **b)) \ 10094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 10104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \ 10114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const CRYPTO_EX_DATA_FUNCS **a, \ 10124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const CRYPTO_EX_DATA_FUNCS **b), \ 10134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 10144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10156f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 10164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* DIST_POINT */ 10174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_new(comp) \ 10184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(DIST_POINT) *)sk_new(CHECKED_CAST( \ 10194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const DIST_POINT **a, const DIST_POINT **b), \ 10204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 10214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)sk_new_null()) 10234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_num(sk) \ 10254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)) 10264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_zero(sk) \ 10284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)); 10294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_value(sk, i) \ 10314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((DIST_POINT *)sk_value( \ 10324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk), (i))) 10334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_set(sk, i, p) \ 10354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((DIST_POINT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 10364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, DIST_POINT *, p))) 10374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_free(sk) \ 10394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)) 10404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_pop_free(sk, free_func) \ 10424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 10434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 10444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(DIST_POINT *), free_func)) 10454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_insert(sk, p, where) \ 10474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 10484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, DIST_POINT *, p), (where)) 10494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_delete(sk, where) \ 10514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((DIST_POINT *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 10524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 10534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_delete_ptr(sk, p) \ 10554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((DIST_POINT *)sk_delete_ptr( \ 10564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 10574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, DIST_POINT *, p))) 10584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_find(sk, out_index, p) \ 10604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), (out_index), \ 10614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, DIST_POINT *, p)) 10624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_shift(sk) \ 10644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((DIST_POINT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))) 10654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_push(sk, p) \ 10674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 10684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, DIST_POINT *, p)) 10694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_pop(sk) \ 10714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((DIST_POINT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))) 10724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_dup(sk) \ 10744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(DIST_POINT) *)sk_dup( \ 10754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk))) 10764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_sort(sk) \ 10784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)) 10794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_is_sorted(sk) \ 10814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk)) 10824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_DIST_POINT_set_cmp_func(sk, comp) \ 10844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const DIST_POINT **a, const DIST_POINT **b))sk_set_cmp_func( \ 10854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \ 10864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 10874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const DIST_POINT **a, const DIST_POINT **b), \ 10884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 10894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10906f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 10914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* GENERAL_NAME */ 10924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_new(comp) \ 10934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(GENERAL_NAME) *)sk_new(CHECKED_CAST( \ 10944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b), \ 10954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 10964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)sk_new_null()) 10984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 10994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_num(sk) \ 11004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)) 11014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_zero(sk) \ 11034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)); 11044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_value(sk, i) \ 11064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAME *)sk_value( \ 11074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk), (i))) 11084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_set(sk, i, p) \ 11104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAME *)sk_set( \ 11114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (i), \ 11124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAME *, p))) 11134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_free(sk) \ 11154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)) 11164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_pop_free(sk, free_func) \ 11184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 11194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 11204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAME *), free_func)) 11214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_insert(sk, p, where) \ 11234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 11244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAME *, p), (where)) 11254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_delete(sk, where) \ 11274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAME *)sk_delete( \ 11284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (where))) 11294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_delete_ptr(sk, p) \ 11314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAME *)sk_delete_ptr( \ 11324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 11334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAME *, p))) 11344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_find(sk, out_index, p) \ 11364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (out_index), \ 11374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAME *, p)) 11384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_shift(sk) \ 11404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAME *)sk_shift( \ 11414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))) 11424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_push(sk, p) \ 11444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 11454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAME *, p)) 11464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_pop(sk) \ 11484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))) 11494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_dup(sk) \ 11514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(GENERAL_NAME) *)sk_dup( \ 11524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk))) 11534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_sort(sk) \ 11554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)) 11564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_is_sorted(sk) \ 11584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk)) 11594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAME_set_cmp_func(sk, comp) \ 11614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b))sk_set_cmp_func( \ 11624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \ 11634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 11644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b), \ 11654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 11664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11676f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 11684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* GENERAL_NAMES */ 11694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_new(comp) \ 11704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(GENERAL_NAMES) *)sk_new(CHECKED_CAST( \ 11714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 11724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b), comp))) 11734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)sk_new_null()) 11754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_num(sk) \ 11774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)) 11784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_zero(sk) \ 11804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)); 11814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_value(sk, i) \ 11834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAMES *)sk_value( \ 11844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk), (i))) 11854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_set(sk, i, p) \ 11874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAMES *)sk_set( \ 11884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (i), \ 11894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAMES *, p))) 11904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_free(sk) \ 11924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)) 11934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_pop_free(sk, free_func) \ 11954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 11964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 11974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAMES *), free_func)) 11984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 11994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_insert(sk, p, where) \ 12004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 12014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAMES *, p), (where)) 12024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_delete(sk, where) \ 12044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAMES *)sk_delete( \ 12054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (where))) 12064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_delete_ptr(sk, p) \ 12084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAMES *)sk_delete_ptr( \ 12094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 12104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAMES *, p))) 12114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_find(sk, out_index, p) \ 12134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (out_index), \ 12144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAMES *, p)) 12154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_shift(sk) \ 12174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAMES *)sk_shift( \ 12184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))) 12194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_push(sk, p) \ 12214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 12224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_NAMES *, p)) 12234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_pop(sk) \ 12254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_NAMES *)sk_pop( \ 12264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))) 12274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_dup(sk) \ 12294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(GENERAL_NAMES) *)sk_dup( \ 12304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk))) 12314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_sort(sk) \ 12334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)) 12344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_is_sorted(sk) \ 12364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk)) 12374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_NAMES_set_cmp_func(sk, comp) \ 12394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b))sk_set_cmp_func( \ 12404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \ 12414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 12424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b), \ 12434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 12444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12456f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 12464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* GENERAL_SUBTREE */ 12474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_new(comp) \ 12484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(GENERAL_SUBTREE) *)sk_new(CHECKED_CAST( \ 12494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 12504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b), comp))) 12514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_new_null() \ 12534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(GENERAL_SUBTREE) *)sk_new_null()) 12544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_num(sk) \ 12564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)) 12574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_zero(sk) \ 12594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)); 12604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_value(sk, i) \ 12624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_SUBTREE *)sk_value( \ 12634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk), (i))) 12644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_set(sk, i, p) \ 12664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_SUBTREE *)sk_set( \ 12674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), (i), \ 12684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_SUBTREE *, p))) 12694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_free(sk) \ 12714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)) 12724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_pop_free(sk, free_func) \ 12744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 12754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 12764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func)) 12774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_insert(sk, p, where) \ 12794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 12804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_SUBTREE *, p), (where)) 12814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_delete(sk, where) \ 12834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_SUBTREE *)sk_delete( \ 12844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), (where))) 12854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_delete_ptr(sk, p) \ 12874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_SUBTREE *)sk_delete_ptr( \ 12884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 12894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_SUBTREE *, p))) 12904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_find(sk, out_index, p) \ 12924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 12934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, GENERAL_SUBTREE *, p)) 12944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_shift(sk) \ 12964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_SUBTREE *)sk_shift( \ 12974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))) 12984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 12994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_push(sk, p) \ 13004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 13014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, GENERAL_SUBTREE *, p)) 13024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_pop(sk) \ 13044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((GENERAL_SUBTREE *)sk_pop( \ 13054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))) 13064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_dup(sk) \ 13084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(GENERAL_SUBTREE) *)sk_dup( \ 13094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk))) 13104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_sort(sk) \ 13124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)) 13134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_is_sorted(sk) \ 13154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk)) 13164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_GENERAL_SUBTREE_set_cmp_func(sk, comp) \ 13184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b)) \ 13194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 13204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \ 13214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const GENERAL_SUBTREE **a, \ 13224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const GENERAL_SUBTREE **b), \ 13234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 13244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13256f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 13264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* MIME_HEADER */ 13274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_new(comp) \ 13284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(MIME_HEADER) *)sk_new(CHECKED_CAST( \ 13294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \ 13304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 13314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_new_null() ((STACK_OF(MIME_HEADER) *)sk_new_null()) 13334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_num(sk) \ 13354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)) 13364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_zero(sk) \ 13384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)); 13394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_value(sk, i) \ 13414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((MIME_HEADER *)sk_value( \ 13424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk), (i))) 13434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_set(sk, i, p) \ 13454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((MIME_HEADER *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \ 13464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, MIME_HEADER *, p))) 13474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_free(sk) \ 13494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)) 13504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_pop_free(sk, free_func) \ 13524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 13534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \ 13544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func)) 13554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_insert(sk, p, where) \ 13574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \ 13584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, MIME_HEADER *, p), (where)) 13594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_delete(sk, where) \ 13614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((MIME_HEADER *)sk_delete( \ 13624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (where))) 13634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_delete_ptr(sk, p) \ 13654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((MIME_HEADER *)sk_delete_ptr( \ 13664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \ 13674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, MIME_HEADER *, p))) 13684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_find(sk, out_index, p) \ 13704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (out_index), \ 13714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, MIME_HEADER *, p)) 13724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_shift(sk) \ 13744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((MIME_HEADER *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))) 13754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_push(sk, p) \ 13774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \ 13784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, MIME_HEADER *, p)) 13794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_pop(sk) \ 13814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((MIME_HEADER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))) 13824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_dup(sk) \ 13844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(MIME_HEADER) *)sk_dup( \ 13854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk))) 13864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_sort(sk) \ 13884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)) 13894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_is_sorted(sk) \ 13914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk)) 13924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 13934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_MIME_HEADER_set_cmp_func(sk, comp) \ 13944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const MIME_HEADER **a, const MIME_HEADER **b))sk_set_cmp_func( \ 13954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \ 13964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 13974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \ 13984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 13994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14006f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 14014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* PKCS7_SIGNER_INFO */ 14024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_new(comp) \ 14034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new(CHECKED_CAST( \ 14044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 14054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b), \ 14064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 14074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_new_null() \ 14094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new_null()) 14104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_num(sk) \ 14124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)) 14134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_zero(sk) \ 14154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)); 14164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_value(sk, i) \ 14184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_SIGNER_INFO *)sk_value( \ 14194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i))) 14204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_set(sk, i, p) \ 14224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_SIGNER_INFO *)sk_set( \ 14234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i), \ 14244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))) 14254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_free(sk) \ 14274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)) 14284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_pop_free(sk, free_func) \ 14304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \ 14314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(PKCS7_SIGNER_INFO *), \ 14324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 14334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_insert(sk, p, where) \ 14354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \ 14364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p), (where)) 14374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_delete(sk, where) \ 14394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_SIGNER_INFO *)sk_delete( \ 14404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (where))) 14414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_delete_ptr(sk, p) \ 14434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_SIGNER_INFO *)sk_delete_ptr( \ 14444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \ 14454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))) 14464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_find(sk, out_index, p) \ 14484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \ 14494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)) 14504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_shift(sk) \ 14524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_SIGNER_INFO *)sk_shift( \ 14534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))) 14544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_push(sk, p) \ 14564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \ 14574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)) 14584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_pop(sk) \ 14604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_SIGNER_INFO *)sk_pop( \ 14614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))) 14624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_dup(sk) \ 14644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_dup( \ 14654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk))) 14664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_sort(sk) \ 14684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)) 14694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_is_sorted(sk) \ 14714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk)) 14724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, comp) \ 14744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b)) \ 14754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 14764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \ 14774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_SIGNER_INFO **a, \ 14784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const PKCS7_SIGNER_INFO **b), \ 14794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 14804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14816f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 14824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* PKCS7_RECIP_INFO */ 14834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_new(comp) \ 14844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(PKCS7_RECIP_INFO) *)sk_new(CHECKED_CAST( \ 14854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 14864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b), comp))) 14874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_new_null() \ 14894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(PKCS7_RECIP_INFO) *)sk_new_null()) 14904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_num(sk) \ 14924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)) 14934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_zero(sk) \ 14954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)); 14964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 14974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_value(sk, i) \ 14984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_RECIP_INFO *)sk_value( \ 14994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk), (i))) 15004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_set(sk, i, p) \ 15024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_RECIP_INFO *)sk_set( \ 15034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (i), \ 15044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))) 15054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_free(sk) \ 15074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)) 15084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_pop_free(sk, free_func) \ 15104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 15114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \ 15124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), free_func)) 15134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_insert(sk, p, where) \ 15154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \ 15164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p), (where)) 15174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_delete(sk, where) \ 15194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_RECIP_INFO *)sk_delete( \ 15204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (where))) 15214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_delete_ptr(sk, p) \ 15234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_RECIP_INFO *)sk_delete_ptr( \ 15244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \ 15254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))) 15264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_find(sk, out_index, p) \ 15284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \ 15294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)) 15304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_shift(sk) \ 15324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_RECIP_INFO *)sk_shift( \ 15334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))) 15344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_push(sk, p) \ 15364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \ 15374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)) 15384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_pop(sk) \ 15404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((PKCS7_RECIP_INFO *)sk_pop( \ 15414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))) 15424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_dup(sk) \ 15444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(PKCS7_RECIP_INFO) *)sk_dup( \ 15454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk))) 15464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_sort(sk) \ 15484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)) 15494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_is_sorted(sk) \ 15514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk)) 15524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, comp) \ 15544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b)) \ 15554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 15564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \ 15574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_RECIP_INFO **a, \ 15584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const PKCS7_RECIP_INFO **b), \ 15594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 15604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15616f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 15624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* POLICYINFO */ 15634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_new(comp) \ 15644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(POLICYINFO) *)sk_new(CHECKED_CAST( \ 15654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const POLICYINFO **a, const POLICYINFO **b), \ 15664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 15674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)sk_new_null()) 15694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_num(sk) \ 15714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)) 15724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_zero(sk) \ 15744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)); 15754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_value(sk, i) \ 15774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYINFO *)sk_value( \ 15784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk), (i))) 15794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_set(sk, i, p) \ 15814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYINFO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 15824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, POLICYINFO *, p))) 15834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_free(sk) \ 15854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)) 15864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_pop_free(sk, free_func) \ 15884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 15894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 15904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(POLICYINFO *), free_func)) 15914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_insert(sk, p, where) \ 15934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 15944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYINFO *, p), (where)) 15954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 15964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_delete(sk, where) \ 15974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYINFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 15984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 15994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_delete_ptr(sk, p) \ 16014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYINFO *)sk_delete_ptr( \ 16024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 16034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYINFO *, p))) 16044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_find(sk, out_index, p) \ 16064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), (out_index), \ 16074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYINFO *, p)) 16084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_shift(sk) \ 16104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYINFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))) 16114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_push(sk, p) \ 16134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 16144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYINFO *, p)) 16154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_pop(sk) \ 16174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYINFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))) 16184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_dup(sk) \ 16204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(POLICYINFO) *)sk_dup( \ 16214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk))) 16224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_sort(sk) \ 16244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)) 16254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_is_sorted(sk) \ 16274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk)) 16284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYINFO_set_cmp_func(sk, comp) \ 16304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const POLICYINFO **a, const POLICYINFO **b))sk_set_cmp_func( \ 16314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \ 16324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 16334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const POLICYINFO **a, const POLICYINFO **b), \ 16344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 16354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16366f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 16374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* POLICYQUALINFO */ 16384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_new(comp) \ 16394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(POLICYQUALINFO) *)sk_new(CHECKED_CAST( \ 16404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 16414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b), comp))) 16424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)sk_new_null()) 16444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_num(sk) \ 16464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)) 16474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_zero(sk) \ 16494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)); 16504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_value(sk, i) \ 16524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYQUALINFO *)sk_value( \ 16534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk), (i))) 16544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_set(sk, i, p) \ 16564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYQUALINFO *)sk_set( \ 16574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (i), \ 16584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYQUALINFO *, p))) 16594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_free(sk) \ 16614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)) 16624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_pop_free(sk, free_func) \ 16644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 16654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 16664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(POLICYQUALINFO *), free_func)) 16674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_insert(sk, p, where) \ 16694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 16704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYQUALINFO *, p), (where)) 16714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_delete(sk, where) \ 16734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYQUALINFO *)sk_delete( \ 16744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (where))) 16754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_delete_ptr(sk, p) \ 16774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYQUALINFO *)sk_delete_ptr( \ 16784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 16794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYQUALINFO *, p))) 16804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_find(sk, out_index, p) \ 16824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (out_index), \ 16834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYQUALINFO *, p)) 16844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_shift(sk) \ 16864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYQUALINFO *)sk_shift( \ 16874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))) 16884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_push(sk, p) \ 16904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 16914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICYQUALINFO *, p)) 16924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_pop(sk) \ 16944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICYQUALINFO *)sk_pop( \ 16954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))) 16964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 16974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_dup(sk) \ 16984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(POLICYQUALINFO) *)sk_dup( \ 16994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk))) 17004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_sort(sk) \ 17024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)) 17034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_is_sorted(sk) \ 17054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk)) 17064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICYQUALINFO_set_cmp_func(sk, comp) \ 17084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b)) \ 17094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 17104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \ 17114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const POLICYQUALINFO **a, \ 17124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const POLICYQUALINFO **b), \ 17134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 17144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17156f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 17164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* POLICY_MAPPING */ 17174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_new(comp) \ 17184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(POLICY_MAPPING) *)sk_new(CHECKED_CAST( \ 17194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 17204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b), comp))) 17214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)sk_new_null()) 17234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_num(sk) \ 17254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)) 17264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_zero(sk) \ 17284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)); 17294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_value(sk, i) \ 17314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICY_MAPPING *)sk_value( \ 17324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk), (i))) 17334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_set(sk, i, p) \ 17354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICY_MAPPING *)sk_set( \ 17364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (i), \ 17374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICY_MAPPING *, p))) 17384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_free(sk) \ 17404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)) 17414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_pop_free(sk, free_func) \ 17434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 17444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 17454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(POLICY_MAPPING *), free_func)) 17464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_insert(sk, p, where) \ 17484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 17494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICY_MAPPING *, p), (where)) 17504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_delete(sk, where) \ 17524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICY_MAPPING *)sk_delete( \ 17534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (where))) 17544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_delete_ptr(sk, p) \ 17564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICY_MAPPING *)sk_delete_ptr( \ 17574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 17584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICY_MAPPING *, p))) 17594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_find(sk, out_index, p) \ 17614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (out_index), \ 17624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICY_MAPPING *, p)) 17634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_shift(sk) \ 17654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICY_MAPPING *)sk_shift( \ 17664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))) 17674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_push(sk, p) \ 17694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 17704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, POLICY_MAPPING *, p)) 17714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_pop(sk) \ 17734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((POLICY_MAPPING *)sk_pop( \ 17744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))) 17754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_dup(sk) \ 17774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(POLICY_MAPPING) *)sk_dup( \ 17784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk))) 17794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_sort(sk) \ 17814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)) 17824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_is_sorted(sk) \ 17844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk)) 17854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_POLICY_MAPPING_set_cmp_func(sk, comp) \ 17874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b)) \ 17884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 17894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \ 17904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const POLICY_MAPPING **a, \ 17914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const POLICY_MAPPING **b), \ 17924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 17934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 17946f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 17954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* SRTP_PROTECTION_PROFILE */ 17964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_new(comp) \ 17974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_new( \ 17984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const SRTP_PROTECTION_PROFILE **a, \ 17994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const SRTP_PROTECTION_PROFILE **b), \ 18004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 18014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_new_null() \ 18034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_new_null()) 18044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_num(sk) \ 18064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 18074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_zero(sk) \ 18094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)); 18104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_value(sk, i) \ 18124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SRTP_PROTECTION_PROFILE *)sk_value( \ 18134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i))) 18154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_set(sk, i, p) \ 18174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SRTP_PROTECTION_PROFILE *)sk_set( \ 18184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), (i), \ 18194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SRTP_PROTECTION_PROFILE *, p))) 18204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_free(sk) \ 18224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 18234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, free_func) \ 18254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), \ 18274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley void (*)(SRTP_PROTECTION_PROFILE *), free_func)) 18284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_insert(sk, p, where) \ 18304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SRTP_PROTECTION_PROFILE *, p), (where)) 18324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_delete(sk, where) \ 18344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SRTP_PROTECTION_PROFILE *)sk_delete( \ 18354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 18374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, p) \ 18394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SRTP_PROTECTION_PROFILE *)sk_delete_ptr( \ 18404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SRTP_PROTECTION_PROFILE *, p))) 18424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_find(sk, out_index, p) \ 18444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, SRTP_PROTECTION_PROFILE *, p)) 18464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_shift(sk) \ 18484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SRTP_PROTECTION_PROFILE *)sk_shift( \ 18494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))) 18504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_push(sk, p) \ 18524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SRTP_PROTECTION_PROFILE *, p)) 18544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_pop(sk) \ 18564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SRTP_PROTECTION_PROFILE *)sk_pop( \ 18574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))) 18584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_dup(sk) \ 18604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_dup( \ 18614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))) 18624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_sort(sk) \ 18644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 18654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) \ 18674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted( \ 18684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)) 18694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, comp) \ 18714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const SRTP_PROTECTION_PROFILE **a, \ 18724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const SRTP_PROTECTION_PROFILE **b)) \ 18734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 18744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \ 18754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 18764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const SRTP_PROTECTION_PROFILE **a, \ 18774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const SRTP_PROTECTION_PROFILE **b), \ 18784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 18794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* SSL_COMP */ 18824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_new(comp) \ 18834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(SSL_COMP) *)sk_new(CHECKED_CAST( \ 18844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const SSL_COMP **a, const SSL_COMP **b), comp))) 18854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)sk_new_null()) 18874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_num(sk) \ 18894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)) 18904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_zero(sk) \ 18924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)); 18934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_value(sk, i) \ 18954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SSL_COMP *)sk_value( \ 18964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk), (i))) 18974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 18984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_set(sk, i, p) \ 18994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SSL_COMP *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), (i), \ 19004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SSL_COMP *, p))) 19014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_free(sk) \ 19034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)) 19044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_pop_free(sk, free_func) \ 19064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 19074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(SSL_COMP *), free_func)) 19084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_insert(sk, p, where) \ 19104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 19114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SSL_COMP *, p), (where)) 19124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_delete(sk, where) \ 19144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SSL_COMP *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 19154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 19164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_delete_ptr(sk, p) \ 19184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SSL_COMP *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 19194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SSL_COMP *, p))) 19204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_find(sk, out_index, p) \ 19224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), (out_index), \ 19234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SSL_COMP *, p)) 19244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_shift(sk) \ 19264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SSL_COMP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))) 19274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_push(sk, p) \ 19294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 19304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SSL_COMP *, p)) 19314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_pop(sk) \ 19334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SSL_COMP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))) 19344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_dup(sk) \ 19364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(SSL_COMP) *)sk_dup( \ 19374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk))) 19384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_sort(sk) \ 19404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)) 19414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_is_sorted(sk) \ 19434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk)) 19444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SSL_COMP_set_cmp_func(sk, comp) \ 19464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const SSL_COMP **a, const SSL_COMP **b))sk_set_cmp_func( \ 19474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \ 19484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 19494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const SSL_COMP **a, const SSL_COMP **b), comp))) 19504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19516f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 19524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* STACK_OF_X509_NAME_ENTRY */ 19534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_new(comp) \ 19544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_new(CHECKED_CAST( \ 19554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const STACK_OF_X509_NAME_ENTRY **a, \ 19564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const STACK_OF_X509_NAME_ENTRY **b), \ 19574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 19584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_new_null() \ 19604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_new_null()) 19614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_num(sk) \ 19634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 19644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_zero(sk) \ 19664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)); 19674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_value(sk, i) \ 19694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF_X509_NAME_ENTRY *)sk_value( \ 19704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 19714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i))) 19724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_set(sk, i, p) \ 19744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF_X509_NAME_ENTRY *)sk_set( \ 19754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), (i), \ 19764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p))) 19774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_free(sk) \ 19794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 19804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_pop_free(sk, free_func) \ 19824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 19834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 19844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(STACK_OF_X509_NAME_ENTRY *), \ 19854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 19864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_insert(sk, p, where) \ 19884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 19894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p), (where)) 19904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_delete(sk, where) \ 19924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF_X509_NAME_ENTRY *)sk_delete( \ 19934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 19944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 19954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 19964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(sk, p) \ 19974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF_X509_NAME_ENTRY *)sk_delete_ptr( \ 19984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 19994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p))) 20004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_find(sk, out_index, p) \ 20024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 20034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p)) 20044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_shift(sk) \ 20064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF_X509_NAME_ENTRY *)sk_shift( \ 20074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))) 20084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_push(sk, p) \ 20104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 20114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p)) 20124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_pop(sk) \ 20144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF_X509_NAME_ENTRY *)sk_pop( \ 20154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))) 20164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_dup(sk) \ 20184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_dup( \ 20194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))) 20204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_sort(sk) \ 20224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 20234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(sk) \ 20254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted( \ 20264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)) 20274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(sk, comp) \ 20294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const STACK_OF_X509_NAME_ENTRY **a, \ 20304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const STACK_OF_X509_NAME_ENTRY **b)) \ 20314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 20324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \ 20334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 20344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const STACK_OF_X509_NAME_ENTRY **a, \ 20354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const STACK_OF_X509_NAME_ENTRY **b), \ 20364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 20374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20386f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 20394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* SXNETID */ 20404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_new(comp) \ 20414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(SXNETID) *)sk_new(CHECKED_CAST( \ 20424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const SXNETID **a, const SXNETID **b), comp))) 20434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)sk_new_null()) 20454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_num(sk) \ 20474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)) 20484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_zero(sk) \ 20504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)); 20514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_value(sk, i) \ 20534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SXNETID *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk), \ 20544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i))) 20554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_set(sk, i, p) \ 20574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SXNETID *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), (i), \ 20584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SXNETID *, p))) 20594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_free(sk) \ 20614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)) 20624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_pop_free(sk, free_func) \ 20644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 20654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(SXNETID *), free_func)) 20664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_insert(sk, p, where) \ 20684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 20694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SXNETID *, p), (where)) 20704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_delete(sk, where) \ 20724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SXNETID *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 20734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 20744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_delete_ptr(sk, p) \ 20764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SXNETID *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 20774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SXNETID *, p))) 20784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_find(sk, out_index, p) \ 20804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), (out_index), \ 20814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SXNETID *, p)) 20824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_shift(sk) \ 20844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SXNETID *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))) 20854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_push(sk, p) \ 20874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 20884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, SXNETID *, p)) 20894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_pop(sk) \ 20914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((SXNETID *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))) 20924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_dup(sk) \ 20944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(SXNETID) *)sk_dup( \ 20954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk))) 20964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 20974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_sort(sk) \ 20984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)) 20994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_is_sorted(sk) \ 21014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk)) 21024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_SXNETID_set_cmp_func(sk, comp) \ 21044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const SXNETID **a, const SXNETID **b))sk_set_cmp_func( \ 21054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \ 21064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 21074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const SXNETID **a, const SXNETID **b), comp))) 21084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21096f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 21104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509 */ 21114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_new(comp) \ 21124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509) *)sk_new(CHECKED_CAST( \ 21134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509 **a, const X509 **b), comp))) 21144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_new_null() ((STACK_OF(X509) *)sk_new_null()) 21164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)) 21184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)); 21204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_value(sk, i) \ 21224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509 *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk), (i))) 21234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_set(sk, i, p) \ 21254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509 *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (i), \ 21264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509 *, p))) 21274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)) 21294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_pop_free(sk, free_func) \ 21314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 21324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509 *), free_func)) 21334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_insert(sk, p, where) \ 21354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 21364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509 *, p), (where)) 21374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_delete(sk, where) \ 21394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509 *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (where))) 21404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_delete_ptr(sk, p) \ 21424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509 *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 21434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509 *, p))) 21444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_find(sk, out_index, p) \ 21464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (out_index), \ 21474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509 *, p)) 21484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_shift(sk) \ 21504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509 *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))) 21514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_push(sk, p) \ 21534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 21544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509 *, p)) 21554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_pop(sk) \ 21574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509 *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))) 21584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_dup(sk) \ 21604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk))) 21614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)) 21634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_is_sorted(sk) \ 21654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk)) 21664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_set_cmp_func(sk, comp) \ 21684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509 **a, const X509 **b))sk_set_cmp_func( \ 21694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \ 21704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509 **a, const X509 **b), \ 21714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 21724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21736f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 21744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509V3_EXT_METHOD */ 21754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_new(comp) \ 21764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509V3_EXT_METHOD) *)sk_new(CHECKED_CAST( \ 21774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 21784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b), \ 21794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 21804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_new_null() \ 21824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509V3_EXT_METHOD) *)sk_new_null()) 21834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_num(sk) \ 21854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)) 21864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_zero(sk) \ 21884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)); 21894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_value(sk, i) \ 21914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509V3_EXT_METHOD *)sk_value( \ 21924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk), (i))) 21934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_set(sk, i, p) \ 21954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509V3_EXT_METHOD *)sk_set( \ 21964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), (i), \ 21974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509V3_EXT_METHOD *, p))) 21984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 21994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_free(sk) \ 22004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)) 22014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_pop_free(sk, free_func) \ 22034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 22044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509V3_EXT_METHOD *), \ 22054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 22064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_insert(sk, p, where) \ 22084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 22094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509V3_EXT_METHOD *, p), (where)) 22104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_delete(sk, where) \ 22124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509V3_EXT_METHOD *)sk_delete( \ 22134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), (where))) 22144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_delete_ptr(sk, p) \ 22164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509V3_EXT_METHOD *)sk_delete_ptr( \ 22174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 22184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509V3_EXT_METHOD *, p))) 22194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_find(sk, out_index, p) \ 22214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 22224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, X509V3_EXT_METHOD *, p)) 22234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_shift(sk) \ 22254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509V3_EXT_METHOD *)sk_shift( \ 22264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))) 22274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_push(sk, p) \ 22294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 22304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509V3_EXT_METHOD *, p)) 22314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_pop(sk) \ 22334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509V3_EXT_METHOD *)sk_pop( \ 22344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))) 22354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_dup(sk) \ 22374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509V3_EXT_METHOD) *)sk_dup( \ 22384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk))) 22394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_sort(sk) \ 22414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)) 22424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_is_sorted(sk) \ 22444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk)) 22454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509V3_EXT_METHOD_set_cmp_func(sk, comp) \ 22474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b)) \ 22484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 22494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \ 22504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509V3_EXT_METHOD **a, \ 22514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const X509V3_EXT_METHOD **b), \ 22524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 22534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22546f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 22554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_ALGOR */ 22564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_new(comp) \ 22574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_ALGOR) *)sk_new(CHECKED_CAST( \ 22584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509_ALGOR **a, const X509_ALGOR **b), \ 22594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 22604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_new_null() ((STACK_OF(X509_ALGOR) *)sk_new_null()) 22624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_num(sk) \ 22644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)) 22654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_zero(sk) \ 22674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)); 22684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_value(sk, i) \ 22704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ALGOR *)sk_value( \ 22714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk), (i))) 22724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_set(sk, i, p) \ 22744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ALGOR *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 22754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, X509_ALGOR *, p))) 22764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_free(sk) \ 22784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)) 22794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_pop_free(sk, free_func) \ 22814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 22824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 22834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_ALGOR *), free_func)) 22844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_insert(sk, p, where) \ 22864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 22874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ALGOR *, p), (where)) 22884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_delete(sk, where) \ 22904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ALGOR *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 22914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 22924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_delete_ptr(sk, p) \ 22944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ALGOR *)sk_delete_ptr( \ 22954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 22964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ALGOR *, p))) 22974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 22984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_find(sk, out_index, p) \ 22994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), (out_index), \ 23004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ALGOR *, p)) 23014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_shift(sk) \ 23034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ALGOR *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))) 23044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_push(sk, p) \ 23064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 23074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ALGOR *, p)) 23084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_pop(sk) \ 23104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ALGOR *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))) 23114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_dup(sk) \ 23134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_ALGOR) *)sk_dup( \ 23144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk))) 23154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_sort(sk) \ 23174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)) 23184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_is_sorted(sk) \ 23204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk)) 23214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ALGOR_set_cmp_func(sk, comp) \ 23234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_ALGOR **a, const X509_ALGOR **b))sk_set_cmp_func( \ 23244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \ 23254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 23264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_ALGOR **a, const X509_ALGOR **b), \ 23274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 23284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23296f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 23304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_ATTRIBUTE */ 23314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_new(comp) \ 23324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_ATTRIBUTE) *)sk_new(CHECKED_CAST( \ 23334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 23344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b), comp))) 23354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_new_null() ((STACK_OF(X509_ATTRIBUTE) *)sk_new_null()) 23374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_num(sk) \ 23394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)) 23404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_zero(sk) \ 23424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)); 23434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_value(sk, i) \ 23454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ATTRIBUTE *)sk_value( \ 23464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk), (i))) 23474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_set(sk, i, p) \ 23494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ATTRIBUTE *)sk_set( \ 23504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (i), \ 23514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ATTRIBUTE *, p))) 23524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_free(sk) \ 23544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)) 23554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_pop_free(sk, free_func) \ 23574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 23584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 23594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_ATTRIBUTE *), free_func)) 23604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_insert(sk, p, where) \ 23624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 23634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ATTRIBUTE *, p), (where)) 23644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_delete(sk, where) \ 23664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ATTRIBUTE *)sk_delete( \ 23674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (where))) 23684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_delete_ptr(sk, p) \ 23704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ATTRIBUTE *)sk_delete_ptr( \ 23714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 23724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ATTRIBUTE *, p))) 23734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_find(sk, out_index, p) \ 23754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (out_index), \ 23764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ATTRIBUTE *, p)) 23774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_shift(sk) \ 23794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ATTRIBUTE *)sk_shift( \ 23804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))) 23814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_push(sk, p) \ 23834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 23844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_ATTRIBUTE *, p)) 23854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_pop(sk) \ 23874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_ATTRIBUTE *)sk_pop( \ 23884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))) 23894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_dup(sk) \ 23914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_ATTRIBUTE) *)sk_dup( \ 23924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk))) 23934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_sort(sk) \ 23954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)) 23964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 23974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_is_sorted(sk) \ 23984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk)) 23994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_ATTRIBUTE_set_cmp_func(sk, comp) \ 24014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b)) \ 24024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 24034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \ 24044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509_ATTRIBUTE **a, \ 24054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const X509_ATTRIBUTE **b), \ 24064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 24074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24086f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 24094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_CRL */ 24104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_new(comp) \ 24114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_CRL) *)sk_new(CHECKED_CAST( \ 24124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509_CRL **a, const X509_CRL **b), comp))) 24134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_new_null() ((STACK_OF(X509_CRL) *)sk_new_null()) 24154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_num(sk) \ 24174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)) 24184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_zero(sk) \ 24204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)); 24214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_value(sk, i) \ 24234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_CRL *)sk_value( \ 24244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk), (i))) 24254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_set(sk, i, p) \ 24274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_CRL *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), (i), \ 24284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_CRL *, p))) 24294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_free(sk) \ 24314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)) 24324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_pop_free(sk, free_func) \ 24344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 24354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_CRL *), free_func)) 24364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_insert(sk, p, where) \ 24384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 24394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_CRL *, p), (where)) 24404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_delete(sk, where) \ 24424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_CRL *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 24434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 24444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_delete_ptr(sk, p) \ 24464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_CRL *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 24474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_CRL *, p))) 24484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_find(sk, out_index, p) \ 24504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), (out_index), \ 24514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_CRL *, p)) 24524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_shift(sk) \ 24544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_CRL *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))) 24554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_push(sk, p) \ 24574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 24584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_CRL *, p)) 24594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_pop(sk) \ 24614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_CRL *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))) 24624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_dup(sk) \ 24644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_CRL) *)sk_dup( \ 24654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk))) 24664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_sort(sk) \ 24684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)) 24694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_is_sorted(sk) \ 24714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk)) 24724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_CRL_set_cmp_func(sk, comp) \ 24744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_CRL **a, const X509_CRL **b))sk_set_cmp_func( \ 24754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \ 24764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 24774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_CRL **a, const X509_CRL **b), comp))) 24784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24796f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 24804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_EXTENSION */ 24814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_new(comp) \ 24824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_EXTENSION) *)sk_new(CHECKED_CAST( \ 24834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 24844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b), comp))) 24854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_new_null() ((STACK_OF(X509_EXTENSION) *)sk_new_null()) 24874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_num(sk) \ 24894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)) 24904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_zero(sk) \ 24924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)); 24934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_value(sk, i) \ 24954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_EXTENSION *)sk_value( \ 24964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk), (i))) 24974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 24984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_set(sk, i, p) \ 24994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_EXTENSION *)sk_set( \ 25004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (i), \ 25014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_EXTENSION *, p))) 25024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_free(sk) \ 25044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)) 25054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_pop_free(sk, free_func) \ 25074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 25084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 25094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_EXTENSION *), free_func)) 25104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_insert(sk, p, where) \ 25124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 25134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_EXTENSION *, p), (where)) 25144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_delete(sk, where) \ 25164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_EXTENSION *)sk_delete( \ 25174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (where))) 25184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_delete_ptr(sk, p) \ 25204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_EXTENSION *)sk_delete_ptr( \ 25214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 25224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_EXTENSION *, p))) 25234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_find(sk, out_index, p) \ 25254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (out_index), \ 25264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_EXTENSION *, p)) 25274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_shift(sk) \ 25294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_EXTENSION *)sk_shift( \ 25304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))) 25314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_push(sk, p) \ 25334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 25344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_EXTENSION *, p)) 25354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_pop(sk) \ 25374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_EXTENSION *)sk_pop( \ 25384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))) 25394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_dup(sk) \ 25414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_EXTENSION) *)sk_dup( \ 25424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk))) 25434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_sort(sk) \ 25454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)) 25464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_is_sorted(sk) \ 25484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk)) 25494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_EXTENSION_set_cmp_func(sk, comp) \ 25514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b)) \ 25524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 25534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \ 25544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509_EXTENSION **a, \ 25554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const X509_EXTENSION **b), \ 25564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 25574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25586f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 25594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_INFO */ 25604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_new(comp) \ 25614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_INFO) *)sk_new( \ 25624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 25634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_INFO **a, const X509_INFO **b), comp))) 25644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_new_null() ((STACK_OF(X509_INFO) *)sk_new_null()) 25664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_num(sk) \ 25684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)) 25694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_zero(sk) \ 25714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)); 25724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_value(sk, i) \ 25744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_INFO *)sk_value( \ 25754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk), (i))) 25764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_set(sk, i, p) \ 25784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_INFO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), (i), \ 25794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_INFO *, p))) 25804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_free(sk) \ 25824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)) 25834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_pop_free(sk, free_func) \ 25854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 25864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 25874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_INFO *), free_func)) 25884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_insert(sk, p, where) \ 25904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 25914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_INFO *, p), (where)) 25924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_delete(sk, where) \ 25944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_INFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 25954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 25964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 25974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_delete_ptr(sk, p) \ 25984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_INFO *)sk_delete_ptr( \ 25994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 26004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_INFO *, p))) 26014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_find(sk, out_index, p) \ 26034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), (out_index), \ 26044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_INFO *, p)) 26054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_shift(sk) \ 26074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_INFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))) 26084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_push(sk, p) \ 26104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 26114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_INFO *, p)) 26124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_pop(sk) \ 26144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_INFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))) 26154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_dup(sk) \ 26174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_INFO) *)sk_dup( \ 26184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk))) 26194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_sort(sk) \ 26214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)) 26224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_is_sorted(sk) \ 26244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk)) 26254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_INFO_set_cmp_func(sk, comp) \ 26274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_INFO **a, const X509_INFO **b))sk_set_cmp_func( \ 26284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \ 26294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 26304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_INFO **a, const X509_INFO **b), comp))) 26314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26326f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 26334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_LOOKUP */ 26344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_new(comp) \ 26354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_LOOKUP) *)sk_new(CHECKED_CAST( \ 26364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b), \ 26374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 26384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_new_null() ((STACK_OF(X509_LOOKUP) *)sk_new_null()) 26404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_num(sk) \ 26424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)) 26434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_zero(sk) \ 26454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)); 26464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_value(sk, i) \ 26484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_LOOKUP *)sk_value( \ 26494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk), (i))) 26504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_set(sk, i, p) \ 26524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_LOOKUP *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 26534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, X509_LOOKUP *, p))) 26544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_free(sk) \ 26564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)) 26574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_pop_free(sk, free_func) \ 26594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 26604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 26614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_LOOKUP *), free_func)) 26624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_insert(sk, p, where) \ 26644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 26654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_LOOKUP *, p), (where)) 26664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_delete(sk, where) \ 26684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_LOOKUP *)sk_delete( \ 26694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), (where))) 26704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_delete_ptr(sk, p) \ 26724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_LOOKUP *)sk_delete_ptr( \ 26734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 26744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_LOOKUP *, p))) 26754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_find(sk, out_index, p) \ 26774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), (out_index), \ 26784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_LOOKUP *, p)) 26794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_shift(sk) \ 26814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_LOOKUP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))) 26824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_push(sk, p) \ 26844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 26854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_LOOKUP *, p)) 26864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_pop(sk) \ 26884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_LOOKUP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))) 26894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_dup(sk) \ 26914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_LOOKUP) *)sk_dup( \ 26924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk))) 26934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_sort(sk) \ 26954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)) 26964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 26974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_is_sorted(sk) \ 26984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk)) 26994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_LOOKUP_set_cmp_func(sk, comp) \ 27014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b))sk_set_cmp_func( \ 27024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \ 27034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 27044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b), \ 27054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 27064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27076f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 27084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_NAME */ 27094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_new(comp) \ 27104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_NAME) *)sk_new( \ 27114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 27124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_NAME **a, const X509_NAME **b), comp))) 27134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_new_null() ((STACK_OF(X509_NAME) *)sk_new_null()) 27154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_num(sk) \ 27174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)) 27184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_zero(sk) \ 27204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)); 27214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_value(sk, i) \ 27234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME *)sk_value( \ 27244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk), (i))) 27254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_set(sk, i, p) \ 27274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), (i), \ 27284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME *, p))) 27294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_free(sk) \ 27314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)) 27324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_pop_free(sk, free_func) \ 27344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 27354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 27364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_NAME *), free_func)) 27374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_insert(sk, p, where) \ 27394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 27404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME *, p), (where)) 27414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_delete(sk, where) \ 27434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 27444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 27454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_delete_ptr(sk, p) \ 27474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME *)sk_delete_ptr( \ 27484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 27494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME *, p))) 27504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_find(sk, out_index, p) \ 27524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), (out_index), \ 27534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME *, p)) 27544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_shift(sk) \ 27564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))) 27574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_push(sk, p) \ 27594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 27604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME *, p)) 27614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_pop(sk) \ 27634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))) 27644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_dup(sk) \ 27664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_NAME) *)sk_dup( \ 27674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk))) 27684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_sort(sk) \ 27704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)) 27714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_is_sorted(sk) \ 27734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk)) 27744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_set_cmp_func(sk, comp) \ 27764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_NAME **a, const X509_NAME **b))sk_set_cmp_func( \ 27774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \ 27784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 27794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_NAME **a, const X509_NAME **b), comp))) 27804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_NAME_ENTRY */ 27834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_new(comp) \ 27844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_NAME_ENTRY) *)sk_new(CHECKED_CAST( \ 27854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 27864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b), comp))) 27874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_new_null() \ 27894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_NAME_ENTRY) *)sk_new_null()) 27904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_num(sk) \ 27924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)) 27934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_zero(sk) \ 27954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)); 27964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 27974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_value(sk, i) \ 27984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME_ENTRY *)sk_value( \ 27994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk), (i))) 28004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_set(sk, i, p) \ 28024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME_ENTRY *)sk_set( \ 28034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), (i), \ 28044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME_ENTRY *, p))) 28054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_free(sk) \ 28074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)) 28084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_pop_free(sk, free_func) \ 28104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 28114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 28124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_NAME_ENTRY *), free_func)) 28134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_insert(sk, p, where) \ 28154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 28164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME_ENTRY *, p), (where)) 28174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_delete(sk, where) \ 28194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME_ENTRY *)sk_delete( \ 28204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), (where))) 28214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_delete_ptr(sk, p) \ 28234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME_ENTRY *)sk_delete_ptr( \ 28244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 28254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME_ENTRY *, p))) 28264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_find(sk, out_index, p) \ 28284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 28294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, X509_NAME_ENTRY *, p)) 28304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_shift(sk) \ 28324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME_ENTRY *)sk_shift( \ 28334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))) 28344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_push(sk, p) \ 28364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 28374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_NAME_ENTRY *, p)) 28384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_pop(sk) \ 28404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_NAME_ENTRY *)sk_pop( \ 28414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))) 28424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_dup(sk) \ 28444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_NAME_ENTRY) *)sk_dup( \ 28454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk))) 28464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_sort(sk) \ 28484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)) 28494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_is_sorted(sk) \ 28514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk)) 28524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_NAME_ENTRY_set_cmp_func(sk, comp) \ 28544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b)) \ 28554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 28564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \ 28574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509_NAME_ENTRY **a, \ 28584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const X509_NAME_ENTRY **b), \ 28594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 28604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28616f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 28624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_OBJECT */ 28634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_new(comp) \ 28644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_OBJECT) *)sk_new(CHECKED_CAST( \ 28654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509_OBJECT **a, const X509_OBJECT **b), \ 28664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 28674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_new_null() ((STACK_OF(X509_OBJECT) *)sk_new_null()) 28694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_num(sk) \ 28714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)) 28724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_zero(sk) \ 28744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)); 28754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_value(sk, i) \ 28774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_OBJECT *)sk_value( \ 28784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk), (i))) 28794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_set(sk, i, p) \ 28814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_OBJECT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 28824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, X509_OBJECT *, p))) 28834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_free(sk) \ 28854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)) 28864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_pop_free(sk, free_func) \ 28884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 28894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 28904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_OBJECT *), free_func)) 28914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_insert(sk, p, where) \ 28934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 28944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_OBJECT *, p), (where)) 28954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 28964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_delete(sk, where) \ 28974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_OBJECT *)sk_delete( \ 28984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), (where))) 28994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_delete_ptr(sk, p) \ 29014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_OBJECT *)sk_delete_ptr( \ 29024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 29034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_OBJECT *, p))) 29044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_find(sk, out_index, p) \ 29064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), (out_index), \ 29074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_OBJECT *, p)) 29084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_shift(sk) \ 29104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))) 29114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_push(sk, p) \ 29134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 29144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_OBJECT *, p)) 29154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_pop(sk) \ 29174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))) 29184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_dup(sk) \ 29204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_OBJECT) *)sk_dup( \ 29214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk))) 29224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_sort(sk) \ 29244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)) 29254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_is_sorted(sk) \ 29274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk)) 29284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_OBJECT_set_cmp_func(sk, comp) \ 29304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_OBJECT **a, const X509_OBJECT **b))sk_set_cmp_func( \ 29314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \ 29324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 29334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_OBJECT **a, const X509_OBJECT **b), \ 29344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 29354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29366f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 29374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_POLICY_DATA */ 29384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_new(comp) \ 29394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_POLICY_DATA) *)sk_new(CHECKED_CAST( \ 29404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 29414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b), comp))) 29424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_new_null() \ 29444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_POLICY_DATA) *)sk_new_null()) 29454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_num(sk) \ 29474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)) 29484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_zero(sk) \ 29504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)); 29514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_value(sk, i) \ 29534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_DATA *)sk_value( \ 29544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk), (i))) 29554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_set(sk, i, p) \ 29574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_DATA *)sk_set( \ 29584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), (i), \ 29594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_DATA *, p))) 29604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_free(sk) \ 29624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)) 29634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_pop_free(sk, free_func) \ 29654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 29664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 29674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_DATA *), free_func)) 29684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_insert(sk, p, where) \ 29704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 29714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_DATA *, p), (where)) 29724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_delete(sk, where) \ 29744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_DATA *)sk_delete( \ 29754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), (where))) 29764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_delete_ptr(sk, p) \ 29784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_DATA *)sk_delete_ptr( \ 29794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 29804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_DATA *, p))) 29814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_find(sk, out_index, p) \ 29834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 29844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, X509_POLICY_DATA *, p)) 29854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_shift(sk) \ 29874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_DATA *)sk_shift( \ 29884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))) 29894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_push(sk, p) \ 29914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 29924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_DATA *, p)) 29934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_pop(sk) \ 29954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_DATA *)sk_pop( \ 29964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))) 29974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 29984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_dup(sk) \ 29994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_POLICY_DATA) *)sk_dup( \ 30004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk))) 30014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_sort(sk) \ 30034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)) 30044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_is_sorted(sk) \ 30064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk)) 30074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_DATA_set_cmp_func(sk, comp) \ 30094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b)) \ 30104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 30114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \ 30124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509_POLICY_DATA **a, \ 30134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const X509_POLICY_DATA **b), \ 30144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 30154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30166f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 30174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_POLICY_NODE */ 30184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_new(comp) \ 30194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_POLICY_NODE) *)sk_new(CHECKED_CAST( \ 30204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 30214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b), comp))) 30224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_new_null() \ 30244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_POLICY_NODE) *)sk_new_null()) 30254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_num(sk) \ 30274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)) 30284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_zero(sk) \ 30304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)); 30314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_value(sk, i) \ 30334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_NODE *)sk_value( \ 30344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk), (i))) 30354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_set(sk, i, p) \ 30374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_NODE *)sk_set( \ 30384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), (i), \ 30394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_NODE *, p))) 30404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_free(sk) \ 30424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)) 30434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_pop_free(sk, free_func) \ 30454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 30464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 30474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_NODE *), free_func)) 30484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_insert(sk, p, where) \ 30504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 30514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_NODE *, p), (where)) 30524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_delete(sk, where) \ 30544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_NODE *)sk_delete( \ 30554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), (where))) 30564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_delete_ptr(sk, p) \ 30584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_NODE *)sk_delete_ptr( \ 30594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 30604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_NODE *, p))) 30614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_find(sk, out_index, p) \ 30634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 30644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, X509_POLICY_NODE *, p)) 30654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_shift(sk) \ 30674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_NODE *)sk_shift( \ 30684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))) 30694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_push(sk, p) \ 30714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 30724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_POLICY_NODE *, p)) 30734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_pop(sk) \ 30754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_POLICY_NODE *)sk_pop( \ 30764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))) 30774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_dup(sk) \ 30794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_POLICY_NODE) *)sk_dup( \ 30804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk))) 30814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_sort(sk) \ 30834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)) 30844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_is_sorted(sk) \ 30864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk)) 30874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_POLICY_NODE_set_cmp_func(sk, comp) \ 30894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b)) \ 30904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 30914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \ 30924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509_POLICY_NODE **a, \ 30934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const X509_POLICY_NODE **b), \ 30944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 30954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 30966f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 30974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_PURPOSE */ 30984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_new(comp) \ 30994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_PURPOSE) *)sk_new(CHECKED_CAST( \ 31004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b), \ 31014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 31024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)sk_new_null()) 31044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_num(sk) \ 31064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)) 31074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_zero(sk) \ 31094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)); 31104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_value(sk, i) \ 31124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_PURPOSE *)sk_value( \ 31134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk), (i))) 31144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_set(sk, i, p) \ 31164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_PURPOSE *)sk_set( \ 31174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (i), \ 31184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_PURPOSE *, p))) 31194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_free(sk) \ 31214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)) 31224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_pop_free(sk, free_func) \ 31244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 31254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 31264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_PURPOSE *), free_func)) 31274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_insert(sk, p, where) \ 31294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 31304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_PURPOSE *, p), (where)) 31314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_delete(sk, where) \ 31334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_PURPOSE *)sk_delete( \ 31344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (where))) 31354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_delete_ptr(sk, p) \ 31374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_PURPOSE *)sk_delete_ptr( \ 31384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 31394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_PURPOSE *, p))) 31404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_find(sk, out_index, p) \ 31424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (out_index), \ 31434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_PURPOSE *, p)) 31444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_shift(sk) \ 31464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_PURPOSE *)sk_shift( \ 31474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))) 31484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_push(sk, p) \ 31504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 31514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_PURPOSE *, p)) 31524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_pop(sk) \ 31544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_PURPOSE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))) 31554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_dup(sk) \ 31574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_PURPOSE) *)sk_dup( \ 31584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk))) 31594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_sort(sk) \ 31614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)) 31624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_is_sorted(sk) \ 31644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk)) 31654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_PURPOSE_set_cmp_func(sk, comp) \ 31674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b))sk_set_cmp_func( \ 31684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \ 31694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 31704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b), \ 31714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 31724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31736f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 31744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_REVOKED */ 31754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_new(comp) \ 31764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_REVOKED) *)sk_new(CHECKED_CAST( \ 31774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509_REVOKED **a, const X509_REVOKED **b), \ 31784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 31794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_new_null() ((STACK_OF(X509_REVOKED) *)sk_new_null()) 31814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_num(sk) \ 31834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)) 31844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_zero(sk) \ 31864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)); 31874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_value(sk, i) \ 31894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_REVOKED *)sk_value( \ 31904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk), (i))) 31914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_set(sk, i, p) \ 31934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_REVOKED *)sk_set( \ 31944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (i), \ 31954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_REVOKED *, p))) 31964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 31974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_free(sk) \ 31984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)) 31994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_pop_free(sk, free_func) \ 32014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 32024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 32034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_REVOKED *), free_func)) 32044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_insert(sk, p, where) \ 32064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 32074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_REVOKED *, p), (where)) 32084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_delete(sk, where) \ 32104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_REVOKED *)sk_delete( \ 32114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (where))) 32124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_delete_ptr(sk, p) \ 32144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_REVOKED *)sk_delete_ptr( \ 32154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 32164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_REVOKED *, p))) 32174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_find(sk, out_index, p) \ 32194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (out_index), \ 32204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_REVOKED *, p)) 32214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_shift(sk) \ 32234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_REVOKED *)sk_shift( \ 32244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))) 32254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_push(sk, p) \ 32274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 32284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_REVOKED *, p)) 32294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_pop(sk) \ 32314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_REVOKED *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))) 32324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_dup(sk) \ 32344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_REVOKED) *)sk_dup( \ 32354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk))) 32364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_sort(sk) \ 32384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)) 32394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_is_sorted(sk) \ 32414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk)) 32424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_REVOKED_set_cmp_func(sk, comp) \ 32444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_REVOKED **a, const X509_REVOKED **b))sk_set_cmp_func( \ 32454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \ 32464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 32474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_REVOKED **a, const X509_REVOKED **b), \ 32484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 32494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32506f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 32514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_TRUST */ 32524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_new(comp) \ 32534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_TRUST) *)sk_new(CHECKED_CAST( \ 32544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const X509_TRUST **a, const X509_TRUST **b), \ 32554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 32564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_new_null() ((STACK_OF(X509_TRUST) *)sk_new_null()) 32584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_num(sk) \ 32604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)) 32614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_zero(sk) \ 32634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)); 32644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_value(sk, i) \ 32664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_TRUST *)sk_value( \ 32674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk), (i))) 32684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_set(sk, i, p) \ 32704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_TRUST *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 32714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (i), CHECKED_CAST(void *, X509_TRUST *, p))) 32724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_free(sk) \ 32744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)) 32754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_pop_free(sk, free_func) \ 32774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 32784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 32794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_TRUST *), free_func)) 32804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_insert(sk, p, where) \ 32824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 32834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_TRUST *, p), (where)) 32844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_delete(sk, where) \ 32864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_TRUST *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 32874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (where))) 32884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_delete_ptr(sk, p) \ 32904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_TRUST *)sk_delete_ptr( \ 32914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 32924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_TRUST *, p))) 32934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_find(sk, out_index, p) \ 32954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), (out_index), \ 32964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_TRUST *, p)) 32974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 32984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_shift(sk) \ 32994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_TRUST *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))) 33004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_push(sk, p) \ 33024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 33034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_TRUST *, p)) 33044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_pop(sk) \ 33064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_TRUST *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))) 33074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_dup(sk) \ 33094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_TRUST) *)sk_dup( \ 33104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk))) 33114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_sort(sk) \ 33134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)) 33144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_is_sorted(sk) \ 33164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk)) 33174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_TRUST_set_cmp_func(sk, comp) \ 33194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_TRUST **a, const X509_TRUST **b))sk_set_cmp_func( \ 33204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \ 33214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 33224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_TRUST **a, const X509_TRUST **b), \ 33234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 33244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33256f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 33264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* X509_VERIFY_PARAM */ 33274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_new(comp) \ 33284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_VERIFY_PARAM) *)sk_new(CHECKED_CAST( \ 33294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 33304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b), \ 33314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 33324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_new_null() \ 33344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_VERIFY_PARAM) *)sk_new_null()) 33354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_num(sk) \ 33374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)) 33384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_zero(sk) \ 33404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)); 33414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_value(sk, i) \ 33434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_VERIFY_PARAM *)sk_value( \ 33444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk), (i))) 33454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_set(sk, i, p) \ 33474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_VERIFY_PARAM *)sk_set( \ 33484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), (i), \ 33494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_VERIFY_PARAM *, p))) 33504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_free(sk) \ 33524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)) 33534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_pop_free(sk, free_func) \ 33554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 33564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(X509_VERIFY_PARAM *), \ 33574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley free_func)) 33584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_insert(sk, p, where) \ 33604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 33614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_VERIFY_PARAM *, p), (where)) 33624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_delete(sk, where) \ 33644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_VERIFY_PARAM *)sk_delete( \ 33654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), (where))) 33664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_delete_ptr(sk, p) \ 33684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_VERIFY_PARAM *)sk_delete_ptr( \ 33694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 33704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_VERIFY_PARAM *, p))) 33714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_find(sk, out_index, p) \ 33734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 33744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley (out_index), CHECKED_CAST(void *, X509_VERIFY_PARAM *, p)) 33754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_shift(sk) \ 33774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_VERIFY_PARAM *)sk_shift( \ 33784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))) 33794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_push(sk, p) \ 33814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 33824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, X509_VERIFY_PARAM *, p)) 33834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_pop(sk) \ 33854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((X509_VERIFY_PARAM *)sk_pop( \ 33864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))) 33874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_dup(sk) \ 33894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(X509_VERIFY_PARAM) *)sk_dup( \ 33904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk))) 33914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_sort(sk) \ 33934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)) 33944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_is_sorted(sk) \ 33964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk)) 33974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 33984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_X509_VERIFY_PARAM_set_cmp_func(sk, comp) \ 33994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b)) \ 34004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 34014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \ 34024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const X509_VERIFY_PARAM **a, \ 34034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const X509_VERIFY_PARAM **b), \ 34044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 34054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34066f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* void */ 34084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_new(comp) \ 34094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(void)*)sk_new(CHECKED_CAST( \ 34104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const void **a, const void **b), comp))) 34114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_new_null() ((STACK_OF(void)*)sk_new_null()) 34134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)) 34154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)); 34174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_value(sk, i) \ 34194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((void *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk), (i))) 34204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_set(sk, i, p) \ 34224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((void *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (i), \ 34234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, void *, p))) 34244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)) 34264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34274c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_pop_free(sk, free_func) \ 34284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \ 34294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(void *), free_func)) 34304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_insert(sk, p, where) \ 34324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \ 34334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, void *, p), (where)) 34344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_delete(sk, where) \ 34364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((void *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (where))) 34374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_delete_ptr(sk, p) \ 34394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((void *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \ 34404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, void *, p))) 34414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_find(sk, out_index, p) \ 34434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (out_index), \ 34444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, void *, p)) 34454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_shift(sk) \ 34474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((void *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))) 34484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_push(sk, p) \ 34504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \ 34514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, void *, p)) 34524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_pop(sk) \ 34544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((void *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))) 34554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_dup(sk) \ 34574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(void)*)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk))) 34584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)) 34604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_is_sorted(sk) \ 34624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk)) 34634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_void_set_cmp_func(sk, comp) \ 34654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const void **a, const void **b))sk_set_cmp_func( \ 34664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \ 34674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const void **a, const void **b), \ 34684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 34694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 34706f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34716f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin/* SSL_CIPHER */ 34726f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_new(comp) \ 34736f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((STACK_OF(SSL_CIPHER) *)sk_new(CHECKED_CAST( \ 34746f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin stack_cmp_func, \ 34756f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin int (*)(const const SSL_CIPHER **a, const const SSL_CIPHER **b), comp))) 34766f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34776f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)sk_new_null()) 34786f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34796f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_num(sk) \ 34806f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)) 34816f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34826f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_zero(sk) \ 34836f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)); 34846f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34856f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_value(sk, i) \ 34866f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((const SSL_CIPHER *)sk_value( \ 34876f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk), (i))) 34886f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34896f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_set(sk, i, p) \ 34906f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((const SSL_CIPHER *)sk_set( \ 34916f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (i), \ 34926f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(void *, const SSL_CIPHER *, p))) 34936f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34946f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_free(sk) \ 34956f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)) 34966f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 34976f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_pop_free(sk, free_func) \ 34986f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_pop_free( \ 34996f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 35006f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(void (*)(void *), void (*)(const SSL_CIPHER *), free_func)) 35016f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35026f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_insert(sk, p, where) \ 35036f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 35046f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(void *, const SSL_CIPHER *, p), (where)) 35056f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35066f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_delete(sk, where) \ 35076f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((const SSL_CIPHER *)sk_delete( \ 35086f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (where))) 35096f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35106f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_delete_ptr(sk, p) \ 35116f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((const SSL_CIPHER *)sk_delete_ptr( \ 35126f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 35136f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(void *, const SSL_CIPHER *, p))) 35146f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35156f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_find(sk, out_index, p) \ 35166f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_find(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (out_index), \ 35176f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(void *, const SSL_CIPHER *, p)) 35186f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35196f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_shift(sk) \ 35206f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((const SSL_CIPHER *)sk_shift( \ 35216f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))) 35226f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35236f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_push(sk, p) \ 35246f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_push(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 35256f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(void *, const SSL_CIPHER *, p)) 35266f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35276f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_pop(sk) \ 35286f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((const SSL_CIPHER *)sk_pop( \ 35296f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))) 35306f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35316f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_dup(sk) \ 35326f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((STACK_OF(SSL_CIPHER) *)sk_dup( \ 35336f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk))) 35346f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35356f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_sort(sk) \ 35366f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)) 35376f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35386f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_is_sorted(sk) \ 35396f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk)) 35406f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35416f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin#define sk_SSL_CIPHER_set_cmp_func(sk, comp) \ 35426f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin ((int (*)(const SSL_CIPHER **a, const SSL_CIPHER **b))sk_set_cmp_func( \ 35436f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \ 35446f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin CHECKED_CAST(stack_cmp_func, \ 35456f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin int (*)(const SSL_CIPHER **a, const SSL_CIPHER **b), \ 35466f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin comp))) 35476f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35486f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 35494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* OPENSSL_STRING */ 35504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_new(comp) \ 35514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_CAST( \ 35524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, \ 35534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const OPENSSL_STRING *a, const OPENSSL_STRING *b), comp))) 35544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null()) 35564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_num(sk) \ 35584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)) 35594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_zero(sk) \ 35614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)); 35624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_value(sk, i) \ 35644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_STRING)sk_value( \ 35654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk), (i))) 35664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_set(sk, i, p) \ 35684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_STRING)sk_set( \ 35694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (i), \ 35704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_STRING, p))) 35714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_free(sk) \ 35734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)) 35744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_pop_free(sk, free_func) \ 35764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 35774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 35784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_STRING), free_func)) 35794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_insert(sk, p, where) \ 35814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 35824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_STRING, p), (where)) 35834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_delete(sk, where) \ 35854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_STRING)sk_delete( \ 35864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (where))) 35874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_delete_ptr(sk, p) \ 35894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_STRING)sk_delete_ptr( \ 35904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 35914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_STRING, p))) 35924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_find(sk, out_index, p) \ 35944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (out_index), \ 35954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_STRING, p)) 35964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 35974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_shift(sk) \ 35984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_STRING)sk_shift( \ 35994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))) 36004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_push(sk, p) \ 36024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 36034c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_STRING, p)) 36044c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36054c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_pop(sk) \ 36064c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_STRING)sk_pop( \ 36074c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))) 36084c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36094c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_dup(sk) \ 36104c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(OPENSSL_STRING) *)sk_dup( \ 36114c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk))) 36124c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36134c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_sort(sk) \ 36144c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)) 36154c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36164c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_is_sorted(sk) \ 36174c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk)) 36184c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36194c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_STRING_set_cmp_func(sk, comp) \ 36204c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const OPENSSL_STRING **a, const OPENSSL_STRING **b)) \ 36214c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_set_cmp_func( \ 36224c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \ 36234c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, int (*)(const OPENSSL_STRING **a, \ 36244c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley const OPENSSL_STRING **b), \ 36254c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 36264c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36276f2600199c82330240de9a7f65a801b6f606b7b3David Benjamin 36284c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley/* OPENSSL_BLOCK */ 36294c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_new(comp) \ 36304c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(OPENSSL_BLOCK) *)sk_new(CHECKED_CAST( \ 36314c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley stack_cmp_func, int (*)(const OPENSSL_BLOCK *a, const OPENSSL_BLOCK *b), \ 36324c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 36334c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36344c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null()) 36354c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36364c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_num(sk) \ 36374c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)) 36384c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36394c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_zero(sk) \ 36404c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)); 36414c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36424c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_value(sk, i) \ 36434c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_BLOCK)sk_value( \ 36444c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk), (i))) 36454c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36464c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_set(sk, i, p) \ 36474c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_BLOCK)sk_set( \ 36484c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (i), \ 36494c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_BLOCK, p))) 36504c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36514c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_free(sk) \ 36524c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)) 36534c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36544c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_pop_free(sk, free_func) \ 36554c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_pop_free( \ 36564c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 36574c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_BLOCK), free_func)) 36584c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36594c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_insert(sk, p, where) \ 36604c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_insert(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 36614c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_BLOCK, p), (where)) 36624c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36634c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_delete(sk, where) \ 36644c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_BLOCK)sk_delete( \ 36654c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (where))) 36664c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36674c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_delete_ptr(sk, p) \ 36684c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_BLOCK)sk_delete_ptr( \ 36694c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 36704c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_BLOCK, p))) 36714c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36724c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_find(sk, out_index, p) \ 36734c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_find(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (out_index), \ 36744c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_BLOCK, p)) 36754c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36764c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_shift(sk) \ 36774c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_BLOCK)sk_shift( \ 36784c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))) 36794c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36804c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_push(sk, p) \ 36814c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_push(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 36824c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(void *, OPENSSL_BLOCK, p)) 36834c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36844c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_pop(sk) \ 36854c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((OPENSSL_BLOCK)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))) 36864c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36874c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_dup(sk) \ 36884c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((STACK_OF(OPENSSL_BLOCK) *)sk_dup( \ 36894c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk))) 36904c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36914c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_sort(sk) \ 36924c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)) 36934c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36944c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_is_sorted(sk) \ 36954c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk)) 36964c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley 36974c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley#define sk_OPENSSL_BLOCK_set_cmp_func(sk, comp) \ 36984c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley ((int (*)(const OPENSSL_BLOCK **a, const OPENSSL_BLOCK **b))sk_set_cmp_func( \ 36994c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \ 37004c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley CHECKED_CAST(stack_cmp_func, \ 37014c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley int (*)(const OPENSSL_BLOCK **a, const OPENSSL_BLOCK **b), \ 37024c921e1bbcc1d1cd23848e3b11ab2c9f85ee37eaAdam Langley comp))) 3703