1
/* Copyright (c) 2014, Google Inc.
3
* Permission to use, copy, modify, and/or distribute this software for any
4
* purpose with or without fee is hereby granted, provided that the above
5
* copyright notice and this permission notice appear in all copies.
7
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
15
#if !defined(IN_STACK_H)
16
#error "Don't include this file directly. Include stack.h."
19
/* ACCESS_DESCRIPTION */
20
#define sk_ACCESS_DESCRIPTION_new(comp) \
21
((STACK_OF(ACCESS_DESCRIPTION) *)sk_new(CHECKED_CAST( \
23
int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b), \
26
#define sk_ACCESS_DESCRIPTION_new_null() \
27
((STACK_OF(ACCESS_DESCRIPTION) *)sk_new_null())
29
#define sk_ACCESS_DESCRIPTION_num(sk) \
30
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))
32
#define sk_ACCESS_DESCRIPTION_zero(sk) \
33
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk));
35
#define sk_ACCESS_DESCRIPTION_value(sk, i) \
36
((ACCESS_DESCRIPTION *)sk_value( \
37
CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk), (i)))
39
#define sk_ACCESS_DESCRIPTION_set(sk, i, p) \
40
((ACCESS_DESCRIPTION *)sk_set( \
41
CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (i), \
42
CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)))
44
#define sk_ACCESS_DESCRIPTION_free(sk) \
45
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))
47
#define sk_ACCESS_DESCRIPTION_pop_free(sk, free_func) \
48
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
49
CHECKED_CAST(void (*)(void *), void (*)(ACCESS_DESCRIPTION *), \
52
#define sk_ACCESS_DESCRIPTION_insert(sk, p, where) \
53
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
54
CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p), (where))
56
#define sk_ACCESS_DESCRIPTION_delete(sk, where) \
57
((ACCESS_DESCRIPTION *)sk_delete( \
58
CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (where)))
60
#define sk_ACCESS_DESCRIPTION_delete_ptr(sk, p) \
61
((ACCESS_DESCRIPTION *)sk_delete_ptr( \
62
CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
63
CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)))
65
#define sk_ACCESS_DESCRIPTION_find(sk, out_index, p) \
66
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
67
(out_index), CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))
69
#define sk_ACCESS_DESCRIPTION_shift(sk) \
70
((ACCESS_DESCRIPTION *)sk_shift( \
71
CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)))
73
#define sk_ACCESS_DESCRIPTION_push(sk, p) \
74
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
75
CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))
77
#define sk_ACCESS_DESCRIPTION_pop(sk) \
78
((ACCESS_DESCRIPTION *)sk_pop( \
79
CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)))
81
#define sk_ACCESS_DESCRIPTION_dup(sk) \
82
((STACK_OF(ACCESS_DESCRIPTION) *)sk_dup( \
83
CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk)))
85
#define sk_ACCESS_DESCRIPTION_sort(sk) \
86
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))
88
#define sk_ACCESS_DESCRIPTION_is_sorted(sk) \
89
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk))
91
#define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, comp) \
92
((int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b)) \
94
CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
95
CHECKED_CAST(stack_cmp_func, int (*)(const ACCESS_DESCRIPTION **a, \
96
const ACCESS_DESCRIPTION **b), \
99
#define sk_ACCESS_DESCRIPTION_deep_copy(sk, copy_func, free_func) \
100
((STACK_OF(ACCESS_DESCRIPTION) *)sk_deep_copy( \
101
CHECKED_CAST(const _STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk), \
102
CHECKED_CAST(void *(*)(void *), \
103
ACCESS_DESCRIPTION *(*)(ACCESS_DESCRIPTION *), copy_func), \
104
CHECKED_CAST(void (*)(void *), void (*)(ACCESS_DESCRIPTION *), \
109
#define sk_ASN1_ADB_TABLE_new(comp) \
110
((STACK_OF(ASN1_ADB_TABLE) *)sk_new(CHECKED_CAST( \
112
int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b), comp)))
114
#define sk_ASN1_ADB_TABLE_new_null() ((STACK_OF(ASN1_ADB_TABLE) *)sk_new_null())
116
#define sk_ASN1_ADB_TABLE_num(sk) \
117
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))
119
#define sk_ASN1_ADB_TABLE_zero(sk) \
120
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk));
122
#define sk_ASN1_ADB_TABLE_value(sk, i) \
123
((ASN1_ADB_TABLE *)sk_value( \
124
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk), (i)))
126
#define sk_ASN1_ADB_TABLE_set(sk, i, p) \
127
((ASN1_ADB_TABLE *)sk_set( \
128
CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (i), \
129
CHECKED_CAST(void *, ASN1_ADB_TABLE *, p)))
131
#define sk_ASN1_ADB_TABLE_free(sk) \
132
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))
134
#define sk_ASN1_ADB_TABLE_pop_free(sk, free_func) \
136
CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \
137
CHECKED_CAST(void (*)(void *), void (*)(ASN1_ADB_TABLE *), free_func))
139
#define sk_ASN1_ADB_TABLE_insert(sk, p, where) \
140
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \
141
CHECKED_CAST(void *, ASN1_ADB_TABLE *, p), (where))
143
#define sk_ASN1_ADB_TABLE_delete(sk, where) \
144
((ASN1_ADB_TABLE *)sk_delete( \
145
CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (where)))
147
#define sk_ASN1_ADB_TABLE_delete_ptr(sk, p) \
148
((ASN1_ADB_TABLE *)sk_delete_ptr( \
149
CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \
150
CHECKED_CAST(void *, ASN1_ADB_TABLE *, p)))
152
#define sk_ASN1_ADB_TABLE_find(sk, out_index, p) \
153
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), (out_index), \
154
CHECKED_CAST(void *, ASN1_ADB_TABLE *, p))
156
#define sk_ASN1_ADB_TABLE_shift(sk) \
157
((ASN1_ADB_TABLE *)sk_shift( \
158
CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)))
160
#define sk_ASN1_ADB_TABLE_push(sk, p) \
161
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \
162
CHECKED_CAST(void *, ASN1_ADB_TABLE *, p))
164
#define sk_ASN1_ADB_TABLE_pop(sk) \
165
((ASN1_ADB_TABLE *)sk_pop( \
166
CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)))
168
#define sk_ASN1_ADB_TABLE_dup(sk) \
169
((STACK_OF(ASN1_ADB_TABLE) *)sk_dup( \
170
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk)))
172
#define sk_ASN1_ADB_TABLE_sort(sk) \
173
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))
175
#define sk_ASN1_ADB_TABLE_is_sorted(sk) \
176
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk))
178
#define sk_ASN1_ADB_TABLE_set_cmp_func(sk, comp) \
179
((int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b)) \
181
CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \
182
CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_ADB_TABLE **a, \
183
const ASN1_ADB_TABLE **b), \
186
#define sk_ASN1_ADB_TABLE_deep_copy(sk, copy_func, free_func) \
187
((STACK_OF(ASN1_ADB_TABLE) *)sk_deep_copy( \
188
CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk), \
189
CHECKED_CAST(void *(*)(void *), ASN1_ADB_TABLE *(*)(ASN1_ADB_TABLE *), \
191
CHECKED_CAST(void (*)(void *), void (*)(ASN1_ADB_TABLE *), free_func)))
194
/* ASN1_GENERALSTRING */
195
#define sk_ASN1_GENERALSTRING_new(comp) \
196
((STACK_OF(ASN1_GENERALSTRING) *)sk_new(CHECKED_CAST( \
198
int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b), \
201
#define sk_ASN1_GENERALSTRING_new_null() \
202
((STACK_OF(ASN1_GENERALSTRING) *)sk_new_null())
204
#define sk_ASN1_GENERALSTRING_num(sk) \
205
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))
207
#define sk_ASN1_GENERALSTRING_zero(sk) \
208
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk));
210
#define sk_ASN1_GENERALSTRING_value(sk, i) \
211
((ASN1_GENERALSTRING *)sk_value( \
212
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk), (i)))
214
#define sk_ASN1_GENERALSTRING_set(sk, i, p) \
215
((ASN1_GENERALSTRING *)sk_set( \
216
CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), (i), \
217
CHECKED_CAST(void *, ASN1_GENERALSTRING *, p)))
219
#define sk_ASN1_GENERALSTRING_free(sk) \
220
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))
222
#define sk_ASN1_GENERALSTRING_pop_free(sk, free_func) \
223
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \
224
CHECKED_CAST(void (*)(void *), void (*)(ASN1_GENERALSTRING *), \
227
#define sk_ASN1_GENERALSTRING_insert(sk, p, where) \
228
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \
229
CHECKED_CAST(void *, ASN1_GENERALSTRING *, p), (where))
231
#define sk_ASN1_GENERALSTRING_delete(sk, where) \
232
((ASN1_GENERALSTRING *)sk_delete( \
233
CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), (where)))
235
#define sk_ASN1_GENERALSTRING_delete_ptr(sk, p) \
236
((ASN1_GENERALSTRING *)sk_delete_ptr( \
237
CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \
238
CHECKED_CAST(void *, ASN1_GENERALSTRING *, p)))
240
#define sk_ASN1_GENERALSTRING_find(sk, out_index, p) \
241
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \
242
(out_index), CHECKED_CAST(void *, ASN1_GENERALSTRING *, p))
244
#define sk_ASN1_GENERALSTRING_shift(sk) \
245
((ASN1_GENERALSTRING *)sk_shift( \
246
CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)))
248
#define sk_ASN1_GENERALSTRING_push(sk, p) \
249
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \
250
CHECKED_CAST(void *, ASN1_GENERALSTRING *, p))
252
#define sk_ASN1_GENERALSTRING_pop(sk) \
253
((ASN1_GENERALSTRING *)sk_pop( \
254
CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)))
256
#define sk_ASN1_GENERALSTRING_dup(sk) \
257
((STACK_OF(ASN1_GENERALSTRING) *)sk_dup( \
258
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk)))
260
#define sk_ASN1_GENERALSTRING_sort(sk) \
261
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))
263
#define sk_ASN1_GENERALSTRING_is_sorted(sk) \
264
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk))
266
#define sk_ASN1_GENERALSTRING_set_cmp_func(sk, comp) \
267
((int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b)) \
269
CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), \
270
CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_GENERALSTRING **a, \
271
const ASN1_GENERALSTRING **b), \
274
#define sk_ASN1_GENERALSTRING_deep_copy(sk, copy_func, free_func) \
275
((STACK_OF(ASN1_GENERALSTRING) *)sk_deep_copy( \
276
CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk), \
277
CHECKED_CAST(void *(*)(void *), \
278
ASN1_GENERALSTRING *(*)(ASN1_GENERALSTRING *), copy_func), \
279
CHECKED_CAST(void (*)(void *), void (*)(ASN1_GENERALSTRING *), \
284
#define sk_ASN1_INTEGER_new(comp) \
285
((STACK_OF(ASN1_INTEGER) *)sk_new(CHECKED_CAST( \
286
stack_cmp_func, int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b), \
289
#define sk_ASN1_INTEGER_new_null() ((STACK_OF(ASN1_INTEGER) *)sk_new_null())
291
#define sk_ASN1_INTEGER_num(sk) \
292
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))
294
#define sk_ASN1_INTEGER_zero(sk) \
295
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk));
297
#define sk_ASN1_INTEGER_value(sk, i) \
298
((ASN1_INTEGER *)sk_value( \
299
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk), (i)))
301
#define sk_ASN1_INTEGER_set(sk, i, p) \
302
((ASN1_INTEGER *)sk_set( \
303
CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (i), \
304
CHECKED_CAST(void *, ASN1_INTEGER *, p)))
306
#define sk_ASN1_INTEGER_free(sk) \
307
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))
309
#define sk_ASN1_INTEGER_pop_free(sk, free_func) \
311
CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \
312
CHECKED_CAST(void (*)(void *), void (*)(ASN1_INTEGER *), free_func))
314
#define sk_ASN1_INTEGER_insert(sk, p, where) \
315
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \
316
CHECKED_CAST(void *, ASN1_INTEGER *, p), (where))
318
#define sk_ASN1_INTEGER_delete(sk, where) \
319
((ASN1_INTEGER *)sk_delete( \
320
CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (where)))
322
#define sk_ASN1_INTEGER_delete_ptr(sk, p) \
323
((ASN1_INTEGER *)sk_delete_ptr( \
324
CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \
325
CHECKED_CAST(void *, ASN1_INTEGER *, p)))
327
#define sk_ASN1_INTEGER_find(sk, out_index, p) \
328
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (out_index), \
329
CHECKED_CAST(void *, ASN1_INTEGER *, p))
331
#define sk_ASN1_INTEGER_shift(sk) \
332
((ASN1_INTEGER *)sk_shift( \
333
CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)))
335
#define sk_ASN1_INTEGER_push(sk, p) \
336
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \
337
CHECKED_CAST(void *, ASN1_INTEGER *, p))
339
#define sk_ASN1_INTEGER_pop(sk) \
340
((ASN1_INTEGER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)))
342
#define sk_ASN1_INTEGER_dup(sk) \
343
((STACK_OF(ASN1_INTEGER) *)sk_dup( \
344
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk)))
346
#define sk_ASN1_INTEGER_sort(sk) \
347
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))
349
#define sk_ASN1_INTEGER_is_sorted(sk) \
350
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk))
352
#define sk_ASN1_INTEGER_set_cmp_func(sk, comp) \
353
((int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b))sk_set_cmp_func( \
354
CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \
355
CHECKED_CAST(stack_cmp_func, \
356
int (*)(const ASN1_INTEGER **a, const ASN1_INTEGER **b), \
359
#define sk_ASN1_INTEGER_deep_copy(sk, copy_func, free_func) \
360
((STACK_OF(ASN1_INTEGER) *)sk_deep_copy( \
361
CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_INTEGER) *, sk), \
362
CHECKED_CAST(void *(*)(void *), ASN1_INTEGER *(*)(ASN1_INTEGER *), \
364
CHECKED_CAST(void (*)(void *), void (*)(ASN1_INTEGER *), free_func)))
368
#define sk_ASN1_OBJECT_new(comp) \
369
((STACK_OF(ASN1_OBJECT) *)sk_new(CHECKED_CAST( \
370
stack_cmp_func, int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b), \
373
#define sk_ASN1_OBJECT_new_null() ((STACK_OF(ASN1_OBJECT) *)sk_new_null())
375
#define sk_ASN1_OBJECT_num(sk) \
376
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))
378
#define sk_ASN1_OBJECT_zero(sk) \
379
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk));
381
#define sk_ASN1_OBJECT_value(sk, i) \
382
((ASN1_OBJECT *)sk_value( \
383
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk), (i)))
385
#define sk_ASN1_OBJECT_set(sk, i, p) \
386
((ASN1_OBJECT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \
387
(i), CHECKED_CAST(void *, ASN1_OBJECT *, p)))
389
#define sk_ASN1_OBJECT_free(sk) \
390
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))
392
#define sk_ASN1_OBJECT_pop_free(sk, free_func) \
394
CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \
395
CHECKED_CAST(void (*)(void *), void (*)(ASN1_OBJECT *), free_func))
397
#define sk_ASN1_OBJECT_insert(sk, p, where) \
398
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \
399
CHECKED_CAST(void *, ASN1_OBJECT *, p), (where))
401
#define sk_ASN1_OBJECT_delete(sk, where) \
402
((ASN1_OBJECT *)sk_delete( \
403
CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), (where)))
405
#define sk_ASN1_OBJECT_delete_ptr(sk, p) \
406
((ASN1_OBJECT *)sk_delete_ptr( \
407
CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \
408
CHECKED_CAST(void *, ASN1_OBJECT *, p)))
410
#define sk_ASN1_OBJECT_find(sk, out_index, p) \
411
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), (out_index), \
412
CHECKED_CAST(void *, ASN1_OBJECT *, p))
414
#define sk_ASN1_OBJECT_shift(sk) \
415
((ASN1_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)))
417
#define sk_ASN1_OBJECT_push(sk, p) \
418
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \
419
CHECKED_CAST(void *, ASN1_OBJECT *, p))
421
#define sk_ASN1_OBJECT_pop(sk) \
422
((ASN1_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)))
424
#define sk_ASN1_OBJECT_dup(sk) \
425
((STACK_OF(ASN1_OBJECT) *)sk_dup( \
426
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk)))
428
#define sk_ASN1_OBJECT_sort(sk) \
429
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))
431
#define sk_ASN1_OBJECT_is_sorted(sk) \
432
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk))
434
#define sk_ASN1_OBJECT_set_cmp_func(sk, comp) \
435
((int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b))sk_set_cmp_func( \
436
CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \
437
CHECKED_CAST(stack_cmp_func, \
438
int (*)(const ASN1_OBJECT **a, const ASN1_OBJECT **b), \
441
#define sk_ASN1_OBJECT_deep_copy(sk, copy_func, free_func) \
442
((STACK_OF(ASN1_OBJECT) *)sk_deep_copy( \
443
CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_OBJECT) *, sk), \
444
CHECKED_CAST(void *(*)(void *), ASN1_OBJECT *(*)(ASN1_OBJECT *), \
446
CHECKED_CAST(void (*)(void *), void (*)(ASN1_OBJECT *), free_func)))
449
/* ASN1_STRING_TABLE */
450
#define sk_ASN1_STRING_TABLE_new(comp) \
451
((STACK_OF(ASN1_STRING_TABLE) *)sk_new(CHECKED_CAST( \
453
int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b), \
456
#define sk_ASN1_STRING_TABLE_new_null() \
457
((STACK_OF(ASN1_STRING_TABLE) *)sk_new_null())
459
#define sk_ASN1_STRING_TABLE_num(sk) \
460
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))
462
#define sk_ASN1_STRING_TABLE_zero(sk) \
463
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk));
465
#define sk_ASN1_STRING_TABLE_value(sk, i) \
466
((ASN1_STRING_TABLE *)sk_value( \
467
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk), (i)))
469
#define sk_ASN1_STRING_TABLE_set(sk, i, p) \
470
((ASN1_STRING_TABLE *)sk_set( \
471
CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), (i), \
472
CHECKED_CAST(void *, ASN1_STRING_TABLE *, p)))
474
#define sk_ASN1_STRING_TABLE_free(sk) \
475
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))
477
#define sk_ASN1_STRING_TABLE_pop_free(sk, free_func) \
478
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \
479
CHECKED_CAST(void (*)(void *), void (*)(ASN1_STRING_TABLE *), \
482
#define sk_ASN1_STRING_TABLE_insert(sk, p, where) \
483
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \
484
CHECKED_CAST(void *, ASN1_STRING_TABLE *, p), (where))
486
#define sk_ASN1_STRING_TABLE_delete(sk, where) \
487
((ASN1_STRING_TABLE *)sk_delete( \
488
CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), (where)))
490
#define sk_ASN1_STRING_TABLE_delete_ptr(sk, p) \
491
((ASN1_STRING_TABLE *)sk_delete_ptr( \
492
CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \
493
CHECKED_CAST(void *, ASN1_STRING_TABLE *, p)))
495
#define sk_ASN1_STRING_TABLE_find(sk, out_index, p) \
496
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \
497
(out_index), CHECKED_CAST(void *, ASN1_STRING_TABLE *, p))
499
#define sk_ASN1_STRING_TABLE_shift(sk) \
500
((ASN1_STRING_TABLE *)sk_shift( \
501
CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)))
503
#define sk_ASN1_STRING_TABLE_push(sk, p) \
504
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \
505
CHECKED_CAST(void *, ASN1_STRING_TABLE *, p))
507
#define sk_ASN1_STRING_TABLE_pop(sk) \
508
((ASN1_STRING_TABLE *)sk_pop( \
509
CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)))
511
#define sk_ASN1_STRING_TABLE_dup(sk) \
512
((STACK_OF(ASN1_STRING_TABLE) *)sk_dup( \
513
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk)))
515
#define sk_ASN1_STRING_TABLE_sort(sk) \
516
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))
518
#define sk_ASN1_STRING_TABLE_is_sorted(sk) \
519
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk))
521
#define sk_ASN1_STRING_TABLE_set_cmp_func(sk, comp) \
522
((int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b)) \
524
CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk), \
525
CHECKED_CAST(stack_cmp_func, int (*)(const ASN1_STRING_TABLE **a, \
526
const ASN1_STRING_TABLE **b), \
529
#define sk_ASN1_STRING_TABLE_deep_copy(sk, copy_func, free_func) \
530
((STACK_OF(ASN1_STRING_TABLE) *)sk_deep_copy( \
531
CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk), \
532
CHECKED_CAST(void *(*)(void *), \
533
ASN1_STRING_TABLE *(*)(ASN1_STRING_TABLE *), copy_func), \
534
CHECKED_CAST(void (*)(void *), void (*)(ASN1_STRING_TABLE *), \
539
#define sk_ASN1_TYPE_new(comp) \
540
((STACK_OF(ASN1_TYPE) *)sk_new( \
541
CHECKED_CAST(stack_cmp_func, \
542
int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b), comp)))
544
#define sk_ASN1_TYPE_new_null() ((STACK_OF(ASN1_TYPE) *)sk_new_null())
546
#define sk_ASN1_TYPE_num(sk) \
547
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))
549
#define sk_ASN1_TYPE_zero(sk) \
550
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk));
552
#define sk_ASN1_TYPE_value(sk, i) \
553
((ASN1_TYPE *)sk_value( \
554
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk), (i)))
556
#define sk_ASN1_TYPE_set(sk, i, p) \
557
((ASN1_TYPE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), (i), \
558
CHECKED_CAST(void *, ASN1_TYPE *, p)))
560
#define sk_ASN1_TYPE_free(sk) \
561
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))
563
#define sk_ASN1_TYPE_pop_free(sk, free_func) \
565
CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
566
CHECKED_CAST(void (*)(void *), void (*)(ASN1_TYPE *), free_func))
568
#define sk_ASN1_TYPE_insert(sk, p, where) \
569
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
570
CHECKED_CAST(void *, ASN1_TYPE *, p), (where))
572
#define sk_ASN1_TYPE_delete(sk, where) \
573
((ASN1_TYPE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
576
#define sk_ASN1_TYPE_delete_ptr(sk, p) \
577
((ASN1_TYPE *)sk_delete_ptr( \
578
CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
579
CHECKED_CAST(void *, ASN1_TYPE *, p)))
581
#define sk_ASN1_TYPE_find(sk, out_index, p) \
582
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), (out_index), \
583
CHECKED_CAST(void *, ASN1_TYPE *, p))
585
#define sk_ASN1_TYPE_shift(sk) \
586
((ASN1_TYPE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)))
588
#define sk_ASN1_TYPE_push(sk, p) \
589
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
590
CHECKED_CAST(void *, ASN1_TYPE *, p))
592
#define sk_ASN1_TYPE_pop(sk) \
593
((ASN1_TYPE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)))
595
#define sk_ASN1_TYPE_dup(sk) \
596
((STACK_OF(ASN1_TYPE) *)sk_dup( \
597
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk)))
599
#define sk_ASN1_TYPE_sort(sk) \
600
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))
602
#define sk_ASN1_TYPE_is_sorted(sk) \
603
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk))
605
#define sk_ASN1_TYPE_set_cmp_func(sk, comp) \
606
((int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b))sk_set_cmp_func( \
607
CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
608
CHECKED_CAST(stack_cmp_func, \
609
int (*)(const ASN1_TYPE **a, const ASN1_TYPE **b), comp)))
611
#define sk_ASN1_TYPE_deep_copy(sk, copy_func, free_func) \
612
((STACK_OF(ASN1_TYPE) *)sk_deep_copy( \
613
CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_TYPE) *, sk), \
614
CHECKED_CAST(void *(*)(void *), ASN1_TYPE *(*)(ASN1_TYPE *), copy_func), \
615
CHECKED_CAST(void (*)(void *), void (*)(ASN1_TYPE *), free_func)))
619
#define sk_ASN1_VALUE_new(comp) \
620
((STACK_OF(ASN1_VALUE) *)sk_new(CHECKED_CAST( \
621
stack_cmp_func, int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b), \
624
#define sk_ASN1_VALUE_new_null() ((STACK_OF(ASN1_VALUE) *)sk_new_null())
626
#define sk_ASN1_VALUE_num(sk) \
627
sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))
629
#define sk_ASN1_VALUE_zero(sk) \
630
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk));
632
#define sk_ASN1_VALUE_value(sk, i) \
633
((ASN1_VALUE *)sk_value( \
634
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk), (i)))
636
#define sk_ASN1_VALUE_set(sk, i, p) \
637
((ASN1_VALUE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
638
(i), CHECKED_CAST(void *, ASN1_VALUE *, p)))
640
#define sk_ASN1_VALUE_free(sk) \
641
sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))
643
#define sk_ASN1_VALUE_pop_free(sk, free_func) \
645
CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
646
CHECKED_CAST(void (*)(void *), void (*)(ASN1_VALUE *), free_func))
648
#define sk_ASN1_VALUE_insert(sk, p, where) \
649
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
650
CHECKED_CAST(void *, ASN1_VALUE *, p), (where))
652
#define sk_ASN1_VALUE_delete(sk, where) \
653
((ASN1_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
656
#define sk_ASN1_VALUE_delete_ptr(sk, p) \
657
((ASN1_VALUE *)sk_delete_ptr( \
658
CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
659
CHECKED_CAST(void *, ASN1_VALUE *, p)))
661
#define sk_ASN1_VALUE_find(sk, out_index, p) \
662
sk_find(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), (out_index), \
663
CHECKED_CAST(void *, ASN1_VALUE *, p))
665
#define sk_ASN1_VALUE_shift(sk) \
666
((ASN1_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)))
668
#define sk_ASN1_VALUE_push(sk, p) \
669
sk_push(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
670
CHECKED_CAST(void *, ASN1_VALUE *, p))
672
#define sk_ASN1_VALUE_pop(sk) \
673
((ASN1_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)))
675
#define sk_ASN1_VALUE_dup(sk) \
676
((STACK_OF(ASN1_VALUE) *)sk_dup( \
677
CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk)))
679
#define sk_ASN1_VALUE_sort(sk) \
680
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))
682
#define sk_ASN1_VALUE_is_sorted(sk) \
683
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk))
685
#define sk_ASN1_VALUE_set_cmp_func(sk, comp) \
686
((int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b))sk_set_cmp_func( \
687
CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
688
CHECKED_CAST(stack_cmp_func, \
689
int (*)(const ASN1_VALUE **a, const ASN1_VALUE **b), \
692
#define sk_ASN1_VALUE_deep_copy(sk, copy_func, free_func) \
693
((STACK_OF(ASN1_VALUE) *)sk_deep_copy( \
694
CHECKED_CAST(const _STACK *, const STACK_OF(ASN1_VALUE) *, sk), \
695
CHECKED_CAST(void *(*)(void *), ASN1_VALUE *(*)(ASN1_VALUE *), \
697
CHECKED_CAST(void (*)(void *), void (*)(ASN1_VALUE *), free_func)))
701
#define sk_BIO_new(comp) \
702
((STACK_OF(BIO) *)sk_new(CHECKED_CAST( \
703
stack_cmp_func, int (*)(const BIO **a, const BIO **b), comp)))
705
#define sk_BIO_new_null() ((STACK_OF(BIO) *)sk_new_null())
707
#define sk_BIO_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))
709
#define sk_BIO_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk));
711
#define sk_BIO_value(sk, i) \
712
((BIO *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk), (i)))
714
#define sk_BIO_set(sk, i, p) \
715
((BIO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (i), \
716
CHECKED_CAST(void *, BIO *, p)))
718
#define sk_BIO_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))
720
#define sk_BIO_pop_free(sk, free_func) \
721
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \
722
CHECKED_CAST(void (*)(void *), void (*)(BIO *), free_func))
724
#define sk_BIO_insert(sk, p, where) \
725
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \
726
CHECKED_CAST(void *, BIO *, p), (where))
728
#define sk_BIO_delete(sk, where) \
729
((BIO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (where)))
731
#define sk_BIO_delete_ptr(sk, p) \
732
((BIO *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \
733
CHECKED_CAST(void *, BIO *, p)))
735
#define sk_BIO_find(sk, out_index, p) \
736
sk_find(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (out_index), \
737
CHECKED_CAST(void *, BIO *, p))
739
#define sk_BIO_shift(sk) \
740
((BIO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)))
742
#define sk_BIO_push(sk, p) \
743
sk_push(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \
744
CHECKED_CAST(void *, BIO *, p))
746
#define sk_BIO_pop(sk) \
747
((BIO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)))
749
#define sk_BIO_dup(sk) \
750
((STACK_OF(BIO) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk)))
752
#define sk_BIO_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))
754
#define sk_BIO_is_sorted(sk) \
755
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk))
757
#define sk_BIO_set_cmp_func(sk, comp) \
758
((int (*)(const BIO **a, const BIO **b))sk_set_cmp_func( \
759
CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \
760
CHECKED_CAST(stack_cmp_func, int (*)(const BIO **a, const BIO **b), \
763
#define sk_BIO_deep_copy(sk, copy_func, free_func) \
764
((STACK_OF(BIO) *)sk_deep_copy( \
765
CHECKED_CAST(const _STACK *, const STACK_OF(BIO) *, sk), \
766
CHECKED_CAST(void *(*)(void *), BIO *(*)(BIO *), copy_func), \
767
CHECKED_CAST(void (*)(void *), void (*)(BIO *), free_func)))
771
#define sk_BY_DIR_ENTRY_new(comp) \
772
((STACK_OF(BY_DIR_ENTRY) *)sk_new(CHECKED_CAST( \
773
stack_cmp_func, int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b), \
776
#define sk_BY_DIR_ENTRY_new_null() ((STACK_OF(BY_DIR_ENTRY) *)sk_new_null())
778
#define sk_BY_DIR_ENTRY_num(sk) \
779
sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))
781
#define sk_BY_DIR_ENTRY_zero(sk) \
782
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk));
784
#define sk_BY_DIR_ENTRY_value(sk, i) \
785
((BY_DIR_ENTRY *)sk_value( \
786
CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk), (i)))
788
#define sk_BY_DIR_ENTRY_set(sk, i, p) \
789
((BY_DIR_ENTRY *)sk_set( \
790
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (i), \
791
CHECKED_CAST(void *, BY_DIR_ENTRY *, p)))
793
#define sk_BY_DIR_ENTRY_free(sk) \
794
sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))
796
#define sk_BY_DIR_ENTRY_pop_free(sk, free_func) \
798
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \
799
CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_ENTRY *), free_func))
801
#define sk_BY_DIR_ENTRY_insert(sk, p, where) \
802
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \
803
CHECKED_CAST(void *, BY_DIR_ENTRY *, p), (where))
805
#define sk_BY_DIR_ENTRY_delete(sk, where) \
806
((BY_DIR_ENTRY *)sk_delete( \
807
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (where)))
809
#define sk_BY_DIR_ENTRY_delete_ptr(sk, p) \
810
((BY_DIR_ENTRY *)sk_delete_ptr( \
811
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \
812
CHECKED_CAST(void *, BY_DIR_ENTRY *, p)))
814
#define sk_BY_DIR_ENTRY_find(sk, out_index, p) \
815
sk_find(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), (out_index), \
816
CHECKED_CAST(void *, BY_DIR_ENTRY *, p))
818
#define sk_BY_DIR_ENTRY_shift(sk) \
819
((BY_DIR_ENTRY *)sk_shift( \
820
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)))
822
#define sk_BY_DIR_ENTRY_push(sk, p) \
823
sk_push(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \
824
CHECKED_CAST(void *, BY_DIR_ENTRY *, p))
826
#define sk_BY_DIR_ENTRY_pop(sk) \
827
((BY_DIR_ENTRY *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)))
829
#define sk_BY_DIR_ENTRY_dup(sk) \
830
((STACK_OF(BY_DIR_ENTRY) *)sk_dup( \
831
CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk)))
833
#define sk_BY_DIR_ENTRY_sort(sk) \
834
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))
836
#define sk_BY_DIR_ENTRY_is_sorted(sk) \
837
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk))
839
#define sk_BY_DIR_ENTRY_set_cmp_func(sk, comp) \
840
((int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b))sk_set_cmp_func( \
841
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \
842
CHECKED_CAST(stack_cmp_func, \
843
int (*)(const BY_DIR_ENTRY **a, const BY_DIR_ENTRY **b), \
846
#define sk_BY_DIR_ENTRY_deep_copy(sk, copy_func, free_func) \
847
((STACK_OF(BY_DIR_ENTRY) *)sk_deep_copy( \
848
CHECKED_CAST(const _STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk), \
849
CHECKED_CAST(void *(*)(void *), BY_DIR_ENTRY *(*)(BY_DIR_ENTRY *), \
851
CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_ENTRY *), free_func)))
855
#define sk_BY_DIR_HASH_new(comp) \
856
((STACK_OF(BY_DIR_HASH) *)sk_new(CHECKED_CAST( \
857
stack_cmp_func, int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b), \
860
#define sk_BY_DIR_HASH_new_null() ((STACK_OF(BY_DIR_HASH) *)sk_new_null())
862
#define sk_BY_DIR_HASH_num(sk) \
863
sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))
865
#define sk_BY_DIR_HASH_zero(sk) \
866
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk));
868
#define sk_BY_DIR_HASH_value(sk, i) \
869
((BY_DIR_HASH *)sk_value( \
870
CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk), (i)))
872
#define sk_BY_DIR_HASH_set(sk, i, p) \
873
((BY_DIR_HASH *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \
874
(i), CHECKED_CAST(void *, BY_DIR_HASH *, p)))
876
#define sk_BY_DIR_HASH_free(sk) \
877
sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))
879
#define sk_BY_DIR_HASH_pop_free(sk, free_func) \
881
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \
882
CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_HASH *), free_func))
884
#define sk_BY_DIR_HASH_insert(sk, p, where) \
885
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \
886
CHECKED_CAST(void *, BY_DIR_HASH *, p), (where))
888
#define sk_BY_DIR_HASH_delete(sk, where) \
889
((BY_DIR_HASH *)sk_delete( \
890
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), (where)))
892
#define sk_BY_DIR_HASH_delete_ptr(sk, p) \
893
((BY_DIR_HASH *)sk_delete_ptr( \
894
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \
895
CHECKED_CAST(void *, BY_DIR_HASH *, p)))
897
#define sk_BY_DIR_HASH_find(sk, out_index, p) \
898
sk_find(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), (out_index), \
899
CHECKED_CAST(void *, BY_DIR_HASH *, p))
901
#define sk_BY_DIR_HASH_shift(sk) \
902
((BY_DIR_HASH *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)))
904
#define sk_BY_DIR_HASH_push(sk, p) \
905
sk_push(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \
906
CHECKED_CAST(void *, BY_DIR_HASH *, p))
908
#define sk_BY_DIR_HASH_pop(sk) \
909
((BY_DIR_HASH *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)))
911
#define sk_BY_DIR_HASH_dup(sk) \
912
((STACK_OF(BY_DIR_HASH) *)sk_dup( \
913
CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk)))
915
#define sk_BY_DIR_HASH_sort(sk) \
916
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))
918
#define sk_BY_DIR_HASH_is_sorted(sk) \
919
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk))
921
#define sk_BY_DIR_HASH_set_cmp_func(sk, comp) \
922
((int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b))sk_set_cmp_func( \
923
CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \
924
CHECKED_CAST(stack_cmp_func, \
925
int (*)(const BY_DIR_HASH **a, const BY_DIR_HASH **b), \
928
#define sk_BY_DIR_HASH_deep_copy(sk, copy_func, free_func) \
929
((STACK_OF(BY_DIR_HASH) *)sk_deep_copy( \
930
CHECKED_CAST(const _STACK *, const STACK_OF(BY_DIR_HASH) *, sk), \
931
CHECKED_CAST(void *(*)(void *), BY_DIR_HASH *(*)(BY_DIR_HASH *), \
933
CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_HASH *), free_func)))
937
#define sk_CONF_VALUE_new(comp) \
938
((STACK_OF(CONF_VALUE) *)sk_new(CHECKED_CAST( \
939
stack_cmp_func, int (*)(const CONF_VALUE **a, const CONF_VALUE **b), \
942
#define sk_CONF_VALUE_new_null() ((STACK_OF(CONF_VALUE) *)sk_new_null())
944
#define sk_CONF_VALUE_num(sk) \
945
sk_num(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))
947
#define sk_CONF_VALUE_zero(sk) \
948
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk));
950
#define sk_CONF_VALUE_value(sk, i) \
951
((CONF_VALUE *)sk_value( \
952
CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk), (i)))
954
#define sk_CONF_VALUE_set(sk, i, p) \
955
((CONF_VALUE *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
956
(i), CHECKED_CAST(void *, CONF_VALUE *, p)))
958
#define sk_CONF_VALUE_free(sk) \
959
sk_free(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))
961
#define sk_CONF_VALUE_pop_free(sk, free_func) \
963
CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
964
CHECKED_CAST(void (*)(void *), void (*)(CONF_VALUE *), free_func))
966
#define sk_CONF_VALUE_insert(sk, p, where) \
967
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
968
CHECKED_CAST(void *, CONF_VALUE *, p), (where))
970
#define sk_CONF_VALUE_delete(sk, where) \
971
((CONF_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
974
#define sk_CONF_VALUE_delete_ptr(sk, p) \
975
((CONF_VALUE *)sk_delete_ptr( \
976
CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
977
CHECKED_CAST(void *, CONF_VALUE *, p)))
979
#define sk_CONF_VALUE_find(sk, out_index, p) \
980
sk_find(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), (out_index), \
981
CHECKED_CAST(void *, CONF_VALUE *, p))
983
#define sk_CONF_VALUE_shift(sk) \
984
((CONF_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)))
986
#define sk_CONF_VALUE_push(sk, p) \
987
sk_push(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
988
CHECKED_CAST(void *, CONF_VALUE *, p))
990
#define sk_CONF_VALUE_pop(sk) \
991
((CONF_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)))
993
#define sk_CONF_VALUE_dup(sk) \
994
((STACK_OF(CONF_VALUE) *)sk_dup( \
995
CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk)))
997
#define sk_CONF_VALUE_sort(sk) \
998
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))
1000
#define sk_CONF_VALUE_is_sorted(sk) \
1001
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk))
1003
#define sk_CONF_VALUE_set_cmp_func(sk, comp) \
1004
((int (*)(const CONF_VALUE **a, const CONF_VALUE **b))sk_set_cmp_func( \
1005
CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
1006
CHECKED_CAST(stack_cmp_func, \
1007
int (*)(const CONF_VALUE **a, const CONF_VALUE **b), \
1010
#define sk_CONF_VALUE_deep_copy(sk, copy_func, free_func) \
1011
((STACK_OF(CONF_VALUE) *)sk_deep_copy( \
1012
CHECKED_CAST(const _STACK *, const STACK_OF(CONF_VALUE) *, sk), \
1013
CHECKED_CAST(void *(*)(void *), CONF_VALUE *(*)(CONF_VALUE *), \
1015
CHECKED_CAST(void (*)(void *), void (*)(CONF_VALUE *), free_func)))
1018
/* CRYPTO_EX_DATA_FUNCS */
1019
#define sk_CRYPTO_EX_DATA_FUNCS_new(comp) \
1020
((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_new(CHECKED_CAST( \
1022
int (*)(const CRYPTO_EX_DATA_FUNCS **a, const CRYPTO_EX_DATA_FUNCS **b), \
1025
#define sk_CRYPTO_EX_DATA_FUNCS_new_null() \
1026
((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_new_null())
1028
#define sk_CRYPTO_EX_DATA_FUNCS_num(sk) \
1029
sk_num(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1031
#define sk_CRYPTO_EX_DATA_FUNCS_zero(sk) \
1032
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk));
1034
#define sk_CRYPTO_EX_DATA_FUNCS_value(sk, i) \
1035
((CRYPTO_EX_DATA_FUNCS *)sk_value( \
1036
CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \
1039
#define sk_CRYPTO_EX_DATA_FUNCS_set(sk, i, p) \
1040
((CRYPTO_EX_DATA_FUNCS *)sk_set( \
1041
CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), (i), \
1042
CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p)))
1044
#define sk_CRYPTO_EX_DATA_FUNCS_free(sk) \
1045
sk_free(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1047
#define sk_CRYPTO_EX_DATA_FUNCS_pop_free(sk, free_func) \
1048
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \
1049
CHECKED_CAST(void (*)(void *), void (*)(CRYPTO_EX_DATA_FUNCS *), \
1052
#define sk_CRYPTO_EX_DATA_FUNCS_insert(sk, p, where) \
1053
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \
1054
CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p), (where))
1056
#define sk_CRYPTO_EX_DATA_FUNCS_delete(sk, where) \
1057
((CRYPTO_EX_DATA_FUNCS *)sk_delete( \
1058
CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), (where)))
1060
#define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(sk, p) \
1061
((CRYPTO_EX_DATA_FUNCS *)sk_delete_ptr( \
1062
CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \
1063
CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p)))
1065
#define sk_CRYPTO_EX_DATA_FUNCS_find(sk, out_index, p) \
1066
sk_find(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \
1067
(out_index), CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p))
1069
#define sk_CRYPTO_EX_DATA_FUNCS_shift(sk) \
1070
((CRYPTO_EX_DATA_FUNCS *)sk_shift( \
1071
CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)))
1073
#define sk_CRYPTO_EX_DATA_FUNCS_push(sk, p) \
1074
sk_push(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \
1075
CHECKED_CAST(void *, CRYPTO_EX_DATA_FUNCS *, p))
1077
#define sk_CRYPTO_EX_DATA_FUNCS_pop(sk) \
1078
((CRYPTO_EX_DATA_FUNCS *)sk_pop( \
1079
CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)))
1081
#define sk_CRYPTO_EX_DATA_FUNCS_dup(sk) \
1082
((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_dup( \
1083
CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk)))
1085
#define sk_CRYPTO_EX_DATA_FUNCS_sort(sk) \
1086
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1088
#define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(sk) \
1090
CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1092
#define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(sk, comp) \
1093
((int (*)(const CRYPTO_EX_DATA_FUNCS **a, const CRYPTO_EX_DATA_FUNCS **b)) \
1095
CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk), \
1096
CHECKED_CAST(stack_cmp_func, \
1097
int (*)(const CRYPTO_EX_DATA_FUNCS **a, \
1098
const CRYPTO_EX_DATA_FUNCS **b), \
1101
#define sk_CRYPTO_EX_DATA_FUNCS_deep_copy(sk, copy_func, free_func) \
1102
((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_deep_copy( \
1103
CHECKED_CAST(const _STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, \
1105
CHECKED_CAST(void *(*)(void *), \
1106
CRYPTO_EX_DATA_FUNCS *(*)(CRYPTO_EX_DATA_FUNCS *), \
1108
CHECKED_CAST(void (*)(void *), void (*)(CRYPTO_EX_DATA_FUNCS *), \
1113
#define sk_DIST_POINT_new(comp) \
1114
((STACK_OF(DIST_POINT) *)sk_new(CHECKED_CAST( \
1115
stack_cmp_func, int (*)(const DIST_POINT **a, const DIST_POINT **b), \
1118
#define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)sk_new_null())
1120
#define sk_DIST_POINT_num(sk) \
1121
sk_num(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))
1123
#define sk_DIST_POINT_zero(sk) \
1124
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk));
1126
#define sk_DIST_POINT_value(sk, i) \
1127
((DIST_POINT *)sk_value( \
1128
CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk), (i)))
1130
#define sk_DIST_POINT_set(sk, i, p) \
1131
((DIST_POINT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1132
(i), CHECKED_CAST(void *, DIST_POINT *, p)))
1134
#define sk_DIST_POINT_free(sk) \
1135
sk_free(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))
1137
#define sk_DIST_POINT_pop_free(sk, free_func) \
1139
CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1140
CHECKED_CAST(void (*)(void *), void (*)(DIST_POINT *), free_func))
1142
#define sk_DIST_POINT_insert(sk, p, where) \
1143
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1144
CHECKED_CAST(void *, DIST_POINT *, p), (where))
1146
#define sk_DIST_POINT_delete(sk, where) \
1147
((DIST_POINT *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1150
#define sk_DIST_POINT_delete_ptr(sk, p) \
1151
((DIST_POINT *)sk_delete_ptr( \
1152
CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1153
CHECKED_CAST(void *, DIST_POINT *, p)))
1155
#define sk_DIST_POINT_find(sk, out_index, p) \
1156
sk_find(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), (out_index), \
1157
CHECKED_CAST(void *, DIST_POINT *, p))
1159
#define sk_DIST_POINT_shift(sk) \
1160
((DIST_POINT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)))
1162
#define sk_DIST_POINT_push(sk, p) \
1163
sk_push(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1164
CHECKED_CAST(void *, DIST_POINT *, p))
1166
#define sk_DIST_POINT_pop(sk) \
1167
((DIST_POINT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)))
1169
#define sk_DIST_POINT_dup(sk) \
1170
((STACK_OF(DIST_POINT) *)sk_dup( \
1171
CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk)))
1173
#define sk_DIST_POINT_sort(sk) \
1174
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))
1176
#define sk_DIST_POINT_is_sorted(sk) \
1177
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk))
1179
#define sk_DIST_POINT_set_cmp_func(sk, comp) \
1180
((int (*)(const DIST_POINT **a, const DIST_POINT **b))sk_set_cmp_func( \
1181
CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1182
CHECKED_CAST(stack_cmp_func, \
1183
int (*)(const DIST_POINT **a, const DIST_POINT **b), \
1186
#define sk_DIST_POINT_deep_copy(sk, copy_func, free_func) \
1187
((STACK_OF(DIST_POINT) *)sk_deep_copy( \
1188
CHECKED_CAST(const _STACK *, const STACK_OF(DIST_POINT) *, sk), \
1189
CHECKED_CAST(void *(*)(void *), DIST_POINT *(*)(DIST_POINT *), \
1191
CHECKED_CAST(void (*)(void *), void (*)(DIST_POINT *), free_func)))
1195
#define sk_GENERAL_NAME_new(comp) \
1196
((STACK_OF(GENERAL_NAME) *)sk_new(CHECKED_CAST( \
1197
stack_cmp_func, int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b), \
1200
#define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)sk_new_null())
1202
#define sk_GENERAL_NAME_num(sk) \
1203
sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))
1205
#define sk_GENERAL_NAME_zero(sk) \
1206
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk));
1208
#define sk_GENERAL_NAME_value(sk, i) \
1209
((GENERAL_NAME *)sk_value( \
1210
CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk), (i)))
1212
#define sk_GENERAL_NAME_set(sk, i, p) \
1213
((GENERAL_NAME *)sk_set( \
1214
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (i), \
1215
CHECKED_CAST(void *, GENERAL_NAME *, p)))
1217
#define sk_GENERAL_NAME_free(sk) \
1218
sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))
1220
#define sk_GENERAL_NAME_pop_free(sk, free_func) \
1222
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \
1223
CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAME *), free_func))
1225
#define sk_GENERAL_NAME_insert(sk, p, where) \
1226
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \
1227
CHECKED_CAST(void *, GENERAL_NAME *, p), (where))
1229
#define sk_GENERAL_NAME_delete(sk, where) \
1230
((GENERAL_NAME *)sk_delete( \
1231
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (where)))
1233
#define sk_GENERAL_NAME_delete_ptr(sk, p) \
1234
((GENERAL_NAME *)sk_delete_ptr( \
1235
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \
1236
CHECKED_CAST(void *, GENERAL_NAME *, p)))
1238
#define sk_GENERAL_NAME_find(sk, out_index, p) \
1239
sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (out_index), \
1240
CHECKED_CAST(void *, GENERAL_NAME *, p))
1242
#define sk_GENERAL_NAME_shift(sk) \
1243
((GENERAL_NAME *)sk_shift( \
1244
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)))
1246
#define sk_GENERAL_NAME_push(sk, p) \
1247
sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \
1248
CHECKED_CAST(void *, GENERAL_NAME *, p))
1250
#define sk_GENERAL_NAME_pop(sk) \
1251
((GENERAL_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)))
1253
#define sk_GENERAL_NAME_dup(sk) \
1254
((STACK_OF(GENERAL_NAME) *)sk_dup( \
1255
CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk)))
1257
#define sk_GENERAL_NAME_sort(sk) \
1258
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))
1260
#define sk_GENERAL_NAME_is_sorted(sk) \
1261
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk))
1263
#define sk_GENERAL_NAME_set_cmp_func(sk, comp) \
1264
((int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b))sk_set_cmp_func( \
1265
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \
1266
CHECKED_CAST(stack_cmp_func, \
1267
int (*)(const GENERAL_NAME **a, const GENERAL_NAME **b), \
1270
#define sk_GENERAL_NAME_deep_copy(sk, copy_func, free_func) \
1271
((STACK_OF(GENERAL_NAME) *)sk_deep_copy( \
1272
CHECKED_CAST(const _STACK *, const STACK_OF(GENERAL_NAME) *, sk), \
1273
CHECKED_CAST(void *(*)(void *), GENERAL_NAME *(*)(GENERAL_NAME *), \
1275
CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAME *), free_func)))
1279
#define sk_GENERAL_NAMES_new(comp) \
1280
((STACK_OF(GENERAL_NAMES) *)sk_new(CHECKED_CAST( \
1282
int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b), comp)))
1284
#define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)sk_new_null())
1286
#define sk_GENERAL_NAMES_num(sk) \
1287
sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))
1289
#define sk_GENERAL_NAMES_zero(sk) \
1290
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk));
1292
#define sk_GENERAL_NAMES_value(sk, i) \
1293
((GENERAL_NAMES *)sk_value( \
1294
CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk), (i)))
1296
#define sk_GENERAL_NAMES_set(sk, i, p) \
1297
((GENERAL_NAMES *)sk_set( \
1298
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (i), \
1299
CHECKED_CAST(void *, GENERAL_NAMES *, p)))
1301
#define sk_GENERAL_NAMES_free(sk) \
1302
sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))
1304
#define sk_GENERAL_NAMES_pop_free(sk, free_func) \
1306
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \
1307
CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAMES *), free_func))
1309
#define sk_GENERAL_NAMES_insert(sk, p, where) \
1310
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \
1311
CHECKED_CAST(void *, GENERAL_NAMES *, p), (where))
1313
#define sk_GENERAL_NAMES_delete(sk, where) \
1314
((GENERAL_NAMES *)sk_delete( \
1315
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (where)))
1317
#define sk_GENERAL_NAMES_delete_ptr(sk, p) \
1318
((GENERAL_NAMES *)sk_delete_ptr( \
1319
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \
1320
CHECKED_CAST(void *, GENERAL_NAMES *, p)))
1322
#define sk_GENERAL_NAMES_find(sk, out_index, p) \
1323
sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (out_index), \
1324
CHECKED_CAST(void *, GENERAL_NAMES *, p))
1326
#define sk_GENERAL_NAMES_shift(sk) \
1327
((GENERAL_NAMES *)sk_shift( \
1328
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)))
1330
#define sk_GENERAL_NAMES_push(sk, p) \
1331
sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \
1332
CHECKED_CAST(void *, GENERAL_NAMES *, p))
1334
#define sk_GENERAL_NAMES_pop(sk) \
1335
((GENERAL_NAMES *)sk_pop( \
1336
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)))
1338
#define sk_GENERAL_NAMES_dup(sk) \
1339
((STACK_OF(GENERAL_NAMES) *)sk_dup( \
1340
CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk)))
1342
#define sk_GENERAL_NAMES_sort(sk) \
1343
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))
1345
#define sk_GENERAL_NAMES_is_sorted(sk) \
1346
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk))
1348
#define sk_GENERAL_NAMES_set_cmp_func(sk, comp) \
1349
((int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b))sk_set_cmp_func( \
1350
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \
1351
CHECKED_CAST(stack_cmp_func, \
1352
int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b), \
1355
#define sk_GENERAL_NAMES_deep_copy(sk, copy_func, free_func) \
1356
((STACK_OF(GENERAL_NAMES) *)sk_deep_copy( \
1357
CHECKED_CAST(const _STACK *, const STACK_OF(GENERAL_NAMES) *, sk), \
1358
CHECKED_CAST(void *(*)(void *), GENERAL_NAMES *(*)(GENERAL_NAMES *), \
1360
CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAMES *), free_func)))
1363
/* GENERAL_SUBTREE */
1364
#define sk_GENERAL_SUBTREE_new(comp) \
1365
((STACK_OF(GENERAL_SUBTREE) *)sk_new(CHECKED_CAST( \
1367
int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b), comp)))
1369
#define sk_GENERAL_SUBTREE_new_null() \
1370
((STACK_OF(GENERAL_SUBTREE) *)sk_new_null())
1372
#define sk_GENERAL_SUBTREE_num(sk) \
1373
sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))
1375
#define sk_GENERAL_SUBTREE_zero(sk) \
1376
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk));
1378
#define sk_GENERAL_SUBTREE_value(sk, i) \
1379
((GENERAL_SUBTREE *)sk_value( \
1380
CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk), (i)))
1382
#define sk_GENERAL_SUBTREE_set(sk, i, p) \
1383
((GENERAL_SUBTREE *)sk_set( \
1384
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), (i), \
1385
CHECKED_CAST(void *, GENERAL_SUBTREE *, p)))
1387
#define sk_GENERAL_SUBTREE_free(sk) \
1388
sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))
1390
#define sk_GENERAL_SUBTREE_pop_free(sk, free_func) \
1392
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \
1393
CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func))
1395
#define sk_GENERAL_SUBTREE_insert(sk, p, where) \
1396
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \
1397
CHECKED_CAST(void *, GENERAL_SUBTREE *, p), (where))
1399
#define sk_GENERAL_SUBTREE_delete(sk, where) \
1400
((GENERAL_SUBTREE *)sk_delete( \
1401
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), (where)))
1403
#define sk_GENERAL_SUBTREE_delete_ptr(sk, p) \
1404
((GENERAL_SUBTREE *)sk_delete_ptr( \
1405
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \
1406
CHECKED_CAST(void *, GENERAL_SUBTREE *, p)))
1408
#define sk_GENERAL_SUBTREE_find(sk, out_index, p) \
1409
sk_find(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \
1410
(out_index), CHECKED_CAST(void *, GENERAL_SUBTREE *, p))
1412
#define sk_GENERAL_SUBTREE_shift(sk) \
1413
((GENERAL_SUBTREE *)sk_shift( \
1414
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)))
1416
#define sk_GENERAL_SUBTREE_push(sk, p) \
1417
sk_push(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \
1418
CHECKED_CAST(void *, GENERAL_SUBTREE *, p))
1420
#define sk_GENERAL_SUBTREE_pop(sk) \
1421
((GENERAL_SUBTREE *)sk_pop( \
1422
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)))
1424
#define sk_GENERAL_SUBTREE_dup(sk) \
1425
((STACK_OF(GENERAL_SUBTREE) *)sk_dup( \
1426
CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk)))
1428
#define sk_GENERAL_SUBTREE_sort(sk) \
1429
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))
1431
#define sk_GENERAL_SUBTREE_is_sorted(sk) \
1432
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk))
1434
#define sk_GENERAL_SUBTREE_set_cmp_func(sk, comp) \
1435
((int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b)) \
1437
CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \
1438
CHECKED_CAST(stack_cmp_func, int (*)(const GENERAL_SUBTREE **a, \
1439
const GENERAL_SUBTREE **b), \
1442
#define sk_GENERAL_SUBTREE_deep_copy(sk, copy_func, free_func) \
1443
((STACK_OF(GENERAL_SUBTREE) *)sk_deep_copy( \
1444
CHECKED_CAST(const _STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk), \
1445
CHECKED_CAST(void *(*)(void *), GENERAL_SUBTREE *(*)(GENERAL_SUBTREE *), \
1447
CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func)))
1451
#define sk_MIME_HEADER_new(comp) \
1452
((STACK_OF(MIME_HEADER) *)sk_new(CHECKED_CAST( \
1453
stack_cmp_func, int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \
1456
#define sk_MIME_HEADER_new_null() ((STACK_OF(MIME_HEADER) *)sk_new_null())
1458
#define sk_MIME_HEADER_num(sk) \
1459
sk_num(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1461
#define sk_MIME_HEADER_zero(sk) \
1462
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk));
1464
#define sk_MIME_HEADER_value(sk, i) \
1465
((MIME_HEADER *)sk_value( \
1466
CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk), (i)))
1468
#define sk_MIME_HEADER_set(sk, i, p) \
1469
((MIME_HEADER *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1470
(i), CHECKED_CAST(void *, MIME_HEADER *, p)))
1472
#define sk_MIME_HEADER_free(sk) \
1473
sk_free(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1475
#define sk_MIME_HEADER_pop_free(sk, free_func) \
1477
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1478
CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func))
1480
#define sk_MIME_HEADER_insert(sk, p, where) \
1481
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1482
CHECKED_CAST(void *, MIME_HEADER *, p), (where))
1484
#define sk_MIME_HEADER_delete(sk, where) \
1485
((MIME_HEADER *)sk_delete( \
1486
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (where)))
1488
#define sk_MIME_HEADER_delete_ptr(sk, p) \
1489
((MIME_HEADER *)sk_delete_ptr( \
1490
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1491
CHECKED_CAST(void *, MIME_HEADER *, p)))
1493
#define sk_MIME_HEADER_find(sk, out_index, p) \
1494
sk_find(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (out_index), \
1495
CHECKED_CAST(void *, MIME_HEADER *, p))
1497
#define sk_MIME_HEADER_shift(sk) \
1498
((MIME_HEADER *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
1500
#define sk_MIME_HEADER_push(sk, p) \
1501
sk_push(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1502
CHECKED_CAST(void *, MIME_HEADER *, p))
1504
#define sk_MIME_HEADER_pop(sk) \
1505
((MIME_HEADER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
1507
#define sk_MIME_HEADER_dup(sk) \
1508
((STACK_OF(MIME_HEADER) *)sk_dup( \
1509
CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk)))
1511
#define sk_MIME_HEADER_sort(sk) \
1512
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1514
#define sk_MIME_HEADER_is_sorted(sk) \
1515
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk))
1517
#define sk_MIME_HEADER_set_cmp_func(sk, comp) \
1518
((int (*)(const MIME_HEADER **a, const MIME_HEADER **b))sk_set_cmp_func( \
1519
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1520
CHECKED_CAST(stack_cmp_func, \
1521
int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \
1524
#define sk_MIME_HEADER_deep_copy(sk, copy_func, free_func) \
1525
((STACK_OF(MIME_HEADER) *)sk_deep_copy( \
1526
CHECKED_CAST(const _STACK *, const STACK_OF(MIME_HEADER) *, sk), \
1527
CHECKED_CAST(void *(*)(void *), MIME_HEADER *(*)(MIME_HEADER *), \
1529
CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func)))
1532
/* PKCS7_RECIP_INFO */
1533
#define sk_PKCS7_RECIP_INFO_new(comp) \
1534
((STACK_OF(PKCS7_RECIP_INFO) *)sk_new(CHECKED_CAST( \
1536
int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b), comp)))
1538
#define sk_PKCS7_RECIP_INFO_new_null() \
1539
((STACK_OF(PKCS7_RECIP_INFO) *)sk_new_null())
1541
#define sk_PKCS7_RECIP_INFO_num(sk) \
1542
sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1544
#define sk_PKCS7_RECIP_INFO_zero(sk) \
1545
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk));
1547
#define sk_PKCS7_RECIP_INFO_value(sk, i) \
1548
((PKCS7_RECIP_INFO *)sk_value( \
1549
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk), (i)))
1551
#define sk_PKCS7_RECIP_INFO_set(sk, i, p) \
1552
((PKCS7_RECIP_INFO *)sk_set( \
1553
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (i), \
1554
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)))
1556
#define sk_PKCS7_RECIP_INFO_free(sk) \
1557
sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1559
#define sk_PKCS7_RECIP_INFO_pop_free(sk, free_func) \
1561
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1562
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), free_func))
1564
#define sk_PKCS7_RECIP_INFO_insert(sk, p, where) \
1565
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1566
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p), (where))
1568
#define sk_PKCS7_RECIP_INFO_delete(sk, where) \
1569
((PKCS7_RECIP_INFO *)sk_delete( \
1570
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (where)))
1572
#define sk_PKCS7_RECIP_INFO_delete_ptr(sk, p) \
1573
((PKCS7_RECIP_INFO *)sk_delete_ptr( \
1574
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1575
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)))
1577
#define sk_PKCS7_RECIP_INFO_find(sk, out_index, p) \
1578
sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1579
(out_index), CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))
1581
#define sk_PKCS7_RECIP_INFO_shift(sk) \
1582
((PKCS7_RECIP_INFO *)sk_shift( \
1583
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1585
#define sk_PKCS7_RECIP_INFO_push(sk, p) \
1586
sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1587
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))
1589
#define sk_PKCS7_RECIP_INFO_pop(sk) \
1590
((PKCS7_RECIP_INFO *)sk_pop( \
1591
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1593
#define sk_PKCS7_RECIP_INFO_dup(sk) \
1594
((STACK_OF(PKCS7_RECIP_INFO) *)sk_dup( \
1595
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1597
#define sk_PKCS7_RECIP_INFO_sort(sk) \
1598
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1600
#define sk_PKCS7_RECIP_INFO_is_sorted(sk) \
1601
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk))
1603
#define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, comp) \
1604
((int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b)) \
1606
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1607
CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_RECIP_INFO **a, \
1608
const PKCS7_RECIP_INFO **b), \
1611
#define sk_PKCS7_RECIP_INFO_deep_copy(sk, copy_func, free_func) \
1612
((STACK_OF(PKCS7_RECIP_INFO) *)sk_deep_copy( \
1613
CHECKED_CAST(const _STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1614
CHECKED_CAST(void *(*)(void *), \
1615
PKCS7_RECIP_INFO *(*)(PKCS7_RECIP_INFO *), copy_func), \
1616
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), \
1620
/* PKCS7_SIGNER_INFO */
1621
#define sk_PKCS7_SIGNER_INFO_new(comp) \
1622
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new(CHECKED_CAST( \
1624
int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b), \
1627
#define sk_PKCS7_SIGNER_INFO_new_null() \
1628
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new_null())
1630
#define sk_PKCS7_SIGNER_INFO_num(sk) \
1631
sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1633
#define sk_PKCS7_SIGNER_INFO_zero(sk) \
1634
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk));
1636
#define sk_PKCS7_SIGNER_INFO_value(sk, i) \
1637
((PKCS7_SIGNER_INFO *)sk_value( \
1638
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i)))
1640
#define sk_PKCS7_SIGNER_INFO_set(sk, i, p) \
1641
((PKCS7_SIGNER_INFO *)sk_set( \
1642
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i), \
1643
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)))
1645
#define sk_PKCS7_SIGNER_INFO_free(sk) \
1646
sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1648
#define sk_PKCS7_SIGNER_INFO_pop_free(sk, free_func) \
1649
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1650
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_SIGNER_INFO *), \
1653
#define sk_PKCS7_SIGNER_INFO_insert(sk, p, where) \
1654
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1655
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p), (where))
1657
#define sk_PKCS7_SIGNER_INFO_delete(sk, where) \
1658
((PKCS7_SIGNER_INFO *)sk_delete( \
1659
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (where)))
1661
#define sk_PKCS7_SIGNER_INFO_delete_ptr(sk, p) \
1662
((PKCS7_SIGNER_INFO *)sk_delete_ptr( \
1663
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1664
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)))
1666
#define sk_PKCS7_SIGNER_INFO_find(sk, out_index, p) \
1667
sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1668
(out_index), CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))
1670
#define sk_PKCS7_SIGNER_INFO_shift(sk) \
1671
((PKCS7_SIGNER_INFO *)sk_shift( \
1672
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1674
#define sk_PKCS7_SIGNER_INFO_push(sk, p) \
1675
sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1676
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))
1678
#define sk_PKCS7_SIGNER_INFO_pop(sk) \
1679
((PKCS7_SIGNER_INFO *)sk_pop( \
1680
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1682
#define sk_PKCS7_SIGNER_INFO_dup(sk) \
1683
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_dup( \
1684
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1686
#define sk_PKCS7_SIGNER_INFO_sort(sk) \
1687
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1689
#define sk_PKCS7_SIGNER_INFO_is_sorted(sk) \
1690
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1692
#define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, comp) \
1693
((int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b)) \
1695
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1696
CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_SIGNER_INFO **a, \
1697
const PKCS7_SIGNER_INFO **b), \
1700
#define sk_PKCS7_SIGNER_INFO_deep_copy(sk, copy_func, free_func) \
1701
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_deep_copy( \
1702
CHECKED_CAST(const _STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1703
CHECKED_CAST(void *(*)(void *), \
1704
PKCS7_SIGNER_INFO *(*)(PKCS7_SIGNER_INFO *), copy_func), \
1705
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_SIGNER_INFO *), \
1710
#define sk_POLICYINFO_new(comp) \
1711
((STACK_OF(POLICYINFO) *)sk_new(CHECKED_CAST( \
1712
stack_cmp_func, int (*)(const POLICYINFO **a, const POLICYINFO **b), \
1715
#define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)sk_new_null())
1717
#define sk_POLICYINFO_num(sk) \
1718
sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))
1720
#define sk_POLICYINFO_zero(sk) \
1721
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk));
1723
#define sk_POLICYINFO_value(sk, i) \
1724
((POLICYINFO *)sk_value( \
1725
CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk), (i)))
1727
#define sk_POLICYINFO_set(sk, i, p) \
1728
((POLICYINFO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1729
(i), CHECKED_CAST(void *, POLICYINFO *, p)))
1731
#define sk_POLICYINFO_free(sk) \
1732
sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))
1734
#define sk_POLICYINFO_pop_free(sk, free_func) \
1736
CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1737
CHECKED_CAST(void (*)(void *), void (*)(POLICYINFO *), free_func))
1739
#define sk_POLICYINFO_insert(sk, p, where) \
1740
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1741
CHECKED_CAST(void *, POLICYINFO *, p), (where))
1743
#define sk_POLICYINFO_delete(sk, where) \
1744
((POLICYINFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1747
#define sk_POLICYINFO_delete_ptr(sk, p) \
1748
((POLICYINFO *)sk_delete_ptr( \
1749
CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1750
CHECKED_CAST(void *, POLICYINFO *, p)))
1752
#define sk_POLICYINFO_find(sk, out_index, p) \
1753
sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), (out_index), \
1754
CHECKED_CAST(void *, POLICYINFO *, p))
1756
#define sk_POLICYINFO_shift(sk) \
1757
((POLICYINFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)))
1759
#define sk_POLICYINFO_push(sk, p) \
1760
sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1761
CHECKED_CAST(void *, POLICYINFO *, p))
1763
#define sk_POLICYINFO_pop(sk) \
1764
((POLICYINFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)))
1766
#define sk_POLICYINFO_dup(sk) \
1767
((STACK_OF(POLICYINFO) *)sk_dup( \
1768
CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk)))
1770
#define sk_POLICYINFO_sort(sk) \
1771
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))
1773
#define sk_POLICYINFO_is_sorted(sk) \
1774
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk))
1776
#define sk_POLICYINFO_set_cmp_func(sk, comp) \
1777
((int (*)(const POLICYINFO **a, const POLICYINFO **b))sk_set_cmp_func( \
1778
CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1779
CHECKED_CAST(stack_cmp_func, \
1780
int (*)(const POLICYINFO **a, const POLICYINFO **b), \
1783
#define sk_POLICYINFO_deep_copy(sk, copy_func, free_func) \
1784
((STACK_OF(POLICYINFO) *)sk_deep_copy( \
1785
CHECKED_CAST(const _STACK *, const STACK_OF(POLICYINFO) *, sk), \
1786
CHECKED_CAST(void *(*)(void *), POLICYINFO *(*)(POLICYINFO *), \
1788
CHECKED_CAST(void (*)(void *), void (*)(POLICYINFO *), free_func)))
1791
/* POLICY_MAPPING */
1792
#define sk_POLICY_MAPPING_new(comp) \
1793
((STACK_OF(POLICY_MAPPING) *)sk_new(CHECKED_CAST( \
1795
int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b), comp)))
1797
#define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)sk_new_null())
1799
#define sk_POLICY_MAPPING_num(sk) \
1800
sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))
1802
#define sk_POLICY_MAPPING_zero(sk) \
1803
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk));
1805
#define sk_POLICY_MAPPING_value(sk, i) \
1806
((POLICY_MAPPING *)sk_value( \
1807
CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk), (i)))
1809
#define sk_POLICY_MAPPING_set(sk, i, p) \
1810
((POLICY_MAPPING *)sk_set( \
1811
CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (i), \
1812
CHECKED_CAST(void *, POLICY_MAPPING *, p)))
1814
#define sk_POLICY_MAPPING_free(sk) \
1815
sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))
1817
#define sk_POLICY_MAPPING_pop_free(sk, free_func) \
1819
CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \
1820
CHECKED_CAST(void (*)(void *), void (*)(POLICY_MAPPING *), free_func))
1822
#define sk_POLICY_MAPPING_insert(sk, p, where) \
1823
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \
1824
CHECKED_CAST(void *, POLICY_MAPPING *, p), (where))
1826
#define sk_POLICY_MAPPING_delete(sk, where) \
1827
((POLICY_MAPPING *)sk_delete( \
1828
CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (where)))
1830
#define sk_POLICY_MAPPING_delete_ptr(sk, p) \
1831
((POLICY_MAPPING *)sk_delete_ptr( \
1832
CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \
1833
CHECKED_CAST(void *, POLICY_MAPPING *, p)))
1835
#define sk_POLICY_MAPPING_find(sk, out_index, p) \
1836
sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (out_index), \
1837
CHECKED_CAST(void *, POLICY_MAPPING *, p))
1839
#define sk_POLICY_MAPPING_shift(sk) \
1840
((POLICY_MAPPING *)sk_shift( \
1841
CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)))
1843
#define sk_POLICY_MAPPING_push(sk, p) \
1844
sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \
1845
CHECKED_CAST(void *, POLICY_MAPPING *, p))
1847
#define sk_POLICY_MAPPING_pop(sk) \
1848
((POLICY_MAPPING *)sk_pop( \
1849
CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)))
1851
#define sk_POLICY_MAPPING_dup(sk) \
1852
((STACK_OF(POLICY_MAPPING) *)sk_dup( \
1853
CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk)))
1855
#define sk_POLICY_MAPPING_sort(sk) \
1856
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))
1858
#define sk_POLICY_MAPPING_is_sorted(sk) \
1859
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk))
1861
#define sk_POLICY_MAPPING_set_cmp_func(sk, comp) \
1862
((int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b)) \
1864
CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \
1865
CHECKED_CAST(stack_cmp_func, int (*)(const POLICY_MAPPING **a, \
1866
const POLICY_MAPPING **b), \
1869
#define sk_POLICY_MAPPING_deep_copy(sk, copy_func, free_func) \
1870
((STACK_OF(POLICY_MAPPING) *)sk_deep_copy( \
1871
CHECKED_CAST(const _STACK *, const STACK_OF(POLICY_MAPPING) *, sk), \
1872
CHECKED_CAST(void *(*)(void *), POLICY_MAPPING *(*)(POLICY_MAPPING *), \
1874
CHECKED_CAST(void (*)(void *), void (*)(POLICY_MAPPING *), free_func)))
1877
/* POLICYQUALINFO */
1878
#define sk_POLICYQUALINFO_new(comp) \
1879
((STACK_OF(POLICYQUALINFO) *)sk_new(CHECKED_CAST( \
1881
int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b), comp)))
1883
#define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)sk_new_null())
1885
#define sk_POLICYQUALINFO_num(sk) \
1886
sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))
1888
#define sk_POLICYQUALINFO_zero(sk) \
1889
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk));
1891
#define sk_POLICYQUALINFO_value(sk, i) \
1892
((POLICYQUALINFO *)sk_value( \
1893
CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk), (i)))
1895
#define sk_POLICYQUALINFO_set(sk, i, p) \
1896
((POLICYQUALINFO *)sk_set( \
1897
CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (i), \
1898
CHECKED_CAST(void *, POLICYQUALINFO *, p)))
1900
#define sk_POLICYQUALINFO_free(sk) \
1901
sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))
1903
#define sk_POLICYQUALINFO_pop_free(sk, free_func) \
1905
CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \
1906
CHECKED_CAST(void (*)(void *), void (*)(POLICYQUALINFO *), free_func))
1908
#define sk_POLICYQUALINFO_insert(sk, p, where) \
1909
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \
1910
CHECKED_CAST(void *, POLICYQUALINFO *, p), (where))
1912
#define sk_POLICYQUALINFO_delete(sk, where) \
1913
((POLICYQUALINFO *)sk_delete( \
1914
CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (where)))
1916
#define sk_POLICYQUALINFO_delete_ptr(sk, p) \
1917
((POLICYQUALINFO *)sk_delete_ptr( \
1918
CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \
1919
CHECKED_CAST(void *, POLICYQUALINFO *, p)))
1921
#define sk_POLICYQUALINFO_find(sk, out_index, p) \
1922
sk_find(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (out_index), \
1923
CHECKED_CAST(void *, POLICYQUALINFO *, p))
1925
#define sk_POLICYQUALINFO_shift(sk) \
1926
((POLICYQUALINFO *)sk_shift( \
1927
CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)))
1929
#define sk_POLICYQUALINFO_push(sk, p) \
1930
sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \
1931
CHECKED_CAST(void *, POLICYQUALINFO *, p))
1933
#define sk_POLICYQUALINFO_pop(sk) \
1934
((POLICYQUALINFO *)sk_pop( \
1935
CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)))
1937
#define sk_POLICYQUALINFO_dup(sk) \
1938
((STACK_OF(POLICYQUALINFO) *)sk_dup( \
1939
CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk)))
1941
#define sk_POLICYQUALINFO_sort(sk) \
1942
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))
1944
#define sk_POLICYQUALINFO_is_sorted(sk) \
1945
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk))
1947
#define sk_POLICYQUALINFO_set_cmp_func(sk, comp) \
1948
((int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b)) \
1950
CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \
1951
CHECKED_CAST(stack_cmp_func, int (*)(const POLICYQUALINFO **a, \
1952
const POLICYQUALINFO **b), \
1955
#define sk_POLICYQUALINFO_deep_copy(sk, copy_func, free_func) \
1956
((STACK_OF(POLICYQUALINFO) *)sk_deep_copy( \
1957
CHECKED_CAST(const _STACK *, const STACK_OF(POLICYQUALINFO) *, sk), \
1958
CHECKED_CAST(void *(*)(void *), POLICYQUALINFO *(*)(POLICYQUALINFO *), \
1960
CHECKED_CAST(void (*)(void *), void (*)(POLICYQUALINFO *), free_func)))
1963
/* RSA_additional_prime */
1964
#define sk_RSA_additional_prime_new(comp) \
1965
((STACK_OF(RSA_additional_prime) *)sk_new(CHECKED_CAST( \
1967
int (*)(const RSA_additional_prime **a, const RSA_additional_prime **b), \
1970
#define sk_RSA_additional_prime_new_null() \
1971
((STACK_OF(RSA_additional_prime) *)sk_new_null())
1973
#define sk_RSA_additional_prime_num(sk) \
1974
sk_num(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))
1976
#define sk_RSA_additional_prime_zero(sk) \
1977
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk));
1979
#define sk_RSA_additional_prime_value(sk, i) \
1980
((RSA_additional_prime *)sk_value( \
1981
CHECKED_CAST(_STACK *, const STACK_OF(RSA_additional_prime) *, sk), \
1984
#define sk_RSA_additional_prime_set(sk, i, p) \
1985
((RSA_additional_prime *)sk_set( \
1986
CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), (i), \
1987
CHECKED_CAST(void *, RSA_additional_prime *, p)))
1989
#define sk_RSA_additional_prime_free(sk) \
1990
sk_free(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))
1992
#define sk_RSA_additional_prime_pop_free(sk, free_func) \
1993
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \
1994
CHECKED_CAST(void (*)(void *), void (*)(RSA_additional_prime *), \
1997
#define sk_RSA_additional_prime_insert(sk, p, where) \
1998
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \
1999
CHECKED_CAST(void *, RSA_additional_prime *, p), (where))
2001
#define sk_RSA_additional_prime_delete(sk, where) \
2002
((RSA_additional_prime *)sk_delete( \
2003
CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), (where)))
2005
#define sk_RSA_additional_prime_delete_ptr(sk, p) \
2006
((RSA_additional_prime *)sk_delete_ptr( \
2007
CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \
2008
CHECKED_CAST(void *, RSA_additional_prime *, p)))
2010
#define sk_RSA_additional_prime_find(sk, out_index, p) \
2011
sk_find(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \
2012
(out_index), CHECKED_CAST(void *, RSA_additional_prime *, p))
2014
#define sk_RSA_additional_prime_shift(sk) \
2015
((RSA_additional_prime *)sk_shift( \
2016
CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)))
2018
#define sk_RSA_additional_prime_push(sk, p) \
2019
sk_push(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \
2020
CHECKED_CAST(void *, RSA_additional_prime *, p))
2022
#define sk_RSA_additional_prime_pop(sk) \
2023
((RSA_additional_prime *)sk_pop( \
2024
CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)))
2026
#define sk_RSA_additional_prime_dup(sk) \
2027
((STACK_OF(RSA_additional_prime) *)sk_dup( \
2028
CHECKED_CAST(_STACK *, const STACK_OF(RSA_additional_prime) *, sk)))
2030
#define sk_RSA_additional_prime_sort(sk) \
2031
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))
2033
#define sk_RSA_additional_prime_is_sorted(sk) \
2035
CHECKED_CAST(_STACK *, const STACK_OF(RSA_additional_prime) *, sk))
2037
#define sk_RSA_additional_prime_set_cmp_func(sk, comp) \
2038
((int (*)(const RSA_additional_prime **a, const RSA_additional_prime **b)) \
2040
CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk), \
2041
CHECKED_CAST(stack_cmp_func, \
2042
int (*)(const RSA_additional_prime **a, \
2043
const RSA_additional_prime **b), \
2046
#define sk_RSA_additional_prime_deep_copy(sk, copy_func, free_func) \
2047
((STACK_OF(RSA_additional_prime) *)sk_deep_copy( \
2048
CHECKED_CAST(const _STACK *, const STACK_OF(RSA_additional_prime) *, \
2050
CHECKED_CAST(void *(*)(void *), \
2051
RSA_additional_prime *(*)(RSA_additional_prime *), \
2053
CHECKED_CAST(void (*)(void *), void (*)(RSA_additional_prime *), \
2058
#define sk_SSL_COMP_new(comp) \
2059
((STACK_OF(SSL_COMP) *)sk_new(CHECKED_CAST( \
2060
stack_cmp_func, int (*)(const SSL_COMP **a, const SSL_COMP **b), comp)))
2062
#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)sk_new_null())
2064
#define sk_SSL_COMP_num(sk) \
2065
sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))
2067
#define sk_SSL_COMP_zero(sk) \
2068
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk));
2070
#define sk_SSL_COMP_value(sk, i) \
2071
((SSL_COMP *)sk_value( \
2072
CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk), (i)))
2074
#define sk_SSL_COMP_set(sk, i, p) \
2075
((SSL_COMP *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), (i), \
2076
CHECKED_CAST(void *, SSL_COMP *, p)))
2078
#define sk_SSL_COMP_free(sk) \
2079
sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))
2081
#define sk_SSL_COMP_pop_free(sk, free_func) \
2082
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \
2083
CHECKED_CAST(void (*)(void *), void (*)(SSL_COMP *), free_func))
2085
#define sk_SSL_COMP_insert(sk, p, where) \
2086
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \
2087
CHECKED_CAST(void *, SSL_COMP *, p), (where))
2089
#define sk_SSL_COMP_delete(sk, where) \
2090
((SSL_COMP *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \
2093
#define sk_SSL_COMP_delete_ptr(sk, p) \
2094
((SSL_COMP *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \
2095
CHECKED_CAST(void *, SSL_COMP *, p)))
2097
#define sk_SSL_COMP_find(sk, out_index, p) \
2098
sk_find(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), (out_index), \
2099
CHECKED_CAST(void *, SSL_COMP *, p))
2101
#define sk_SSL_COMP_shift(sk) \
2102
((SSL_COMP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)))
2104
#define sk_SSL_COMP_push(sk, p) \
2105
sk_push(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \
2106
CHECKED_CAST(void *, SSL_COMP *, p))
2108
#define sk_SSL_COMP_pop(sk) \
2109
((SSL_COMP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)))
2111
#define sk_SSL_COMP_dup(sk) \
2112
((STACK_OF(SSL_COMP) *)sk_dup( \
2113
CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk)))
2115
#define sk_SSL_COMP_sort(sk) \
2116
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))
2118
#define sk_SSL_COMP_is_sorted(sk) \
2119
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk))
2121
#define sk_SSL_COMP_set_cmp_func(sk, comp) \
2122
((int (*)(const SSL_COMP **a, const SSL_COMP **b))sk_set_cmp_func( \
2123
CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \
2124
CHECKED_CAST(stack_cmp_func, \
2125
int (*)(const SSL_COMP **a, const SSL_COMP **b), comp)))
2127
#define sk_SSL_COMP_deep_copy(sk, copy_func, free_func) \
2128
((STACK_OF(SSL_COMP) *)sk_deep_copy( \
2129
CHECKED_CAST(const _STACK *, const STACK_OF(SSL_COMP) *, sk), \
2130
CHECKED_CAST(void *(*)(void *), SSL_COMP *(*)(SSL_COMP *), copy_func), \
2131
CHECKED_CAST(void (*)(void *), void (*)(SSL_COMP *), free_func)))
2134
/* STACK_OF_X509_NAME_ENTRY */
2135
#define sk_STACK_OF_X509_NAME_ENTRY_new(comp) \
2136
((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_new(CHECKED_CAST( \
2137
stack_cmp_func, int (*)(const STACK_OF_X509_NAME_ENTRY **a, \
2138
const STACK_OF_X509_NAME_ENTRY **b), \
2141
#define sk_STACK_OF_X509_NAME_ENTRY_new_null() \
2142
((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_new_null())
2144
#define sk_STACK_OF_X509_NAME_ENTRY_num(sk) \
2145
sk_num(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2147
#define sk_STACK_OF_X509_NAME_ENTRY_zero(sk) \
2148
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk));
2150
#define sk_STACK_OF_X509_NAME_ENTRY_value(sk, i) \
2151
((STACK_OF_X509_NAME_ENTRY *)sk_value( \
2152
CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2155
#define sk_STACK_OF_X509_NAME_ENTRY_set(sk, i, p) \
2156
((STACK_OF_X509_NAME_ENTRY *)sk_set( \
2157
CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), (i), \
2158
CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p)))
2160
#define sk_STACK_OF_X509_NAME_ENTRY_free(sk) \
2161
sk_free(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2163
#define sk_STACK_OF_X509_NAME_ENTRY_pop_free(sk, free_func) \
2165
CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2166
CHECKED_CAST(void (*)(void *), void (*)(STACK_OF_X509_NAME_ENTRY *), \
2169
#define sk_STACK_OF_X509_NAME_ENTRY_insert(sk, p, where) \
2170
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2171
CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p), (where))
2173
#define sk_STACK_OF_X509_NAME_ENTRY_delete(sk, where) \
2174
((STACK_OF_X509_NAME_ENTRY *)sk_delete( \
2175
CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2178
#define sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(sk, p) \
2179
((STACK_OF_X509_NAME_ENTRY *)sk_delete_ptr( \
2180
CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2181
CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p)))
2183
#define sk_STACK_OF_X509_NAME_ENTRY_find(sk, out_index, p) \
2184
sk_find(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2185
(out_index), CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p))
2187
#define sk_STACK_OF_X509_NAME_ENTRY_shift(sk) \
2188
((STACK_OF_X509_NAME_ENTRY *)sk_shift( \
2189
CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)))
2191
#define sk_STACK_OF_X509_NAME_ENTRY_push(sk, p) \
2192
sk_push(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2193
CHECKED_CAST(void *, STACK_OF_X509_NAME_ENTRY *, p))
2195
#define sk_STACK_OF_X509_NAME_ENTRY_pop(sk) \
2196
((STACK_OF_X509_NAME_ENTRY *)sk_pop( \
2197
CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)))
2199
#define sk_STACK_OF_X509_NAME_ENTRY_dup(sk) \
2200
((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_dup( \
2201
CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk)))
2203
#define sk_STACK_OF_X509_NAME_ENTRY_sort(sk) \
2204
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2206
#define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(sk) \
2208
CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2210
#define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(sk, comp) \
2211
((int (*)(const STACK_OF_X509_NAME_ENTRY **a, \
2212
const STACK_OF_X509_NAME_ENTRY **b)) \
2214
CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk), \
2215
CHECKED_CAST(stack_cmp_func, \
2216
int (*)(const STACK_OF_X509_NAME_ENTRY **a, \
2217
const STACK_OF_X509_NAME_ENTRY **b), \
2220
#define sk_STACK_OF_X509_NAME_ENTRY_deep_copy(sk, copy_func, free_func) \
2221
((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_deep_copy( \
2222
CHECKED_CAST(const _STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, \
2224
CHECKED_CAST(void *(*)(void *), \
2225
STACK_OF_X509_NAME_ENTRY *(*)(STACK_OF_X509_NAME_ENTRY *), \
2227
CHECKED_CAST(void (*)(void *), void (*)(STACK_OF_X509_NAME_ENTRY *), \
2232
#define sk_SXNETID_new(comp) \
2233
((STACK_OF(SXNETID) *)sk_new(CHECKED_CAST( \
2234
stack_cmp_func, int (*)(const SXNETID **a, const SXNETID **b), comp)))
2236
#define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)sk_new_null())
2238
#define sk_SXNETID_num(sk) \
2239
sk_num(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))
2241
#define sk_SXNETID_zero(sk) \
2242
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk));
2244
#define sk_SXNETID_value(sk, i) \
2245
((SXNETID *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk), \
2248
#define sk_SXNETID_set(sk, i, p) \
2249
((SXNETID *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), (i), \
2250
CHECKED_CAST(void *, SXNETID *, p)))
2252
#define sk_SXNETID_free(sk) \
2253
sk_free(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))
2255
#define sk_SXNETID_pop_free(sk, free_func) \
2256
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2257
CHECKED_CAST(void (*)(void *), void (*)(SXNETID *), free_func))
2259
#define sk_SXNETID_insert(sk, p, where) \
2260
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2261
CHECKED_CAST(void *, SXNETID *, p), (where))
2263
#define sk_SXNETID_delete(sk, where) \
2264
((SXNETID *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2267
#define sk_SXNETID_delete_ptr(sk, p) \
2268
((SXNETID *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2269
CHECKED_CAST(void *, SXNETID *, p)))
2271
#define sk_SXNETID_find(sk, out_index, p) \
2272
sk_find(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), (out_index), \
2273
CHECKED_CAST(void *, SXNETID *, p))
2275
#define sk_SXNETID_shift(sk) \
2276
((SXNETID *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)))
2278
#define sk_SXNETID_push(sk, p) \
2279
sk_push(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2280
CHECKED_CAST(void *, SXNETID *, p))
2282
#define sk_SXNETID_pop(sk) \
2283
((SXNETID *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)))
2285
#define sk_SXNETID_dup(sk) \
2286
((STACK_OF(SXNETID) *)sk_dup( \
2287
CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk)))
2289
#define sk_SXNETID_sort(sk) \
2290
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))
2292
#define sk_SXNETID_is_sorted(sk) \
2293
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk))
2295
#define sk_SXNETID_set_cmp_func(sk, comp) \
2296
((int (*)(const SXNETID **a, const SXNETID **b))sk_set_cmp_func( \
2297
CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2298
CHECKED_CAST(stack_cmp_func, \
2299
int (*)(const SXNETID **a, const SXNETID **b), comp)))
2301
#define sk_SXNETID_deep_copy(sk, copy_func, free_func) \
2302
((STACK_OF(SXNETID) *)sk_deep_copy( \
2303
CHECKED_CAST(const _STACK *, const STACK_OF(SXNETID) *, sk), \
2304
CHECKED_CAST(void *(*)(void *), SXNETID *(*)(SXNETID *), copy_func), \
2305
CHECKED_CAST(void (*)(void *), void (*)(SXNETID *), free_func)))
2309
#define sk_void_new(comp) \
2310
((STACK_OF(void)*)sk_new(CHECKED_CAST( \
2311
stack_cmp_func, int (*)(const void **a, const void **b), comp)))
2313
#define sk_void_new_null() ((STACK_OF(void)*)sk_new_null())
2315
#define sk_void_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))
2317
#define sk_void_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk));
2319
#define sk_void_value(sk, i) \
2320
((void *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk), (i)))
2322
#define sk_void_set(sk, i, p) \
2323
((void *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (i), \
2324
CHECKED_CAST(void *, void *, p)))
2326
#define sk_void_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))
2328
#define sk_void_pop_free(sk, free_func) \
2329
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \
2330
CHECKED_CAST(void (*)(void *), void (*)(void *), free_func))
2332
#define sk_void_insert(sk, p, where) \
2333
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \
2334
CHECKED_CAST(void *, void *, p), (where))
2336
#define sk_void_delete(sk, where) \
2337
((void *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (where)))
2339
#define sk_void_delete_ptr(sk, p) \
2340
((void *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \
2341
CHECKED_CAST(void *, void *, p)))
2343
#define sk_void_find(sk, out_index, p) \
2344
sk_find(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (out_index), \
2345
CHECKED_CAST(void *, void *, p))
2347
#define sk_void_shift(sk) \
2348
((void *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)))
2350
#define sk_void_push(sk, p) \
2351
sk_push(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \
2352
CHECKED_CAST(void *, void *, p))
2354
#define sk_void_pop(sk) \
2355
((void *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)))
2357
#define sk_void_dup(sk) \
2358
((STACK_OF(void)*)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk)))
2360
#define sk_void_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))
2362
#define sk_void_is_sorted(sk) \
2363
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk))
2365
#define sk_void_set_cmp_func(sk, comp) \
2366
((int (*)(const void **a, const void **b))sk_set_cmp_func( \
2367
CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \
2368
CHECKED_CAST(stack_cmp_func, int (*)(const void **a, const void **b), \
2371
#define sk_void_deep_copy(sk, copy_func, free_func) \
2372
((STACK_OF(void)*)sk_deep_copy( \
2373
CHECKED_CAST(const _STACK *, const STACK_OF(void)*, sk), \
2374
CHECKED_CAST(void *(*)(void *), void *(*)(void *), copy_func), \
2375
CHECKED_CAST(void (*)(void *), void (*)(void *), free_func)))
2379
#define sk_X509_new(comp) \
2380
((STACK_OF(X509) *)sk_new(CHECKED_CAST( \
2381
stack_cmp_func, int (*)(const X509 **a, const X509 **b), comp)))
2383
#define sk_X509_new_null() ((STACK_OF(X509) *)sk_new_null())
2385
#define sk_X509_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))
2387
#define sk_X509_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk));
2389
#define sk_X509_value(sk, i) \
2390
((X509 *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk), (i)))
2392
#define sk_X509_set(sk, i, p) \
2393
((X509 *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (i), \
2394
CHECKED_CAST(void *, X509 *, p)))
2396
#define sk_X509_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))
2398
#define sk_X509_pop_free(sk, free_func) \
2399
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \
2400
CHECKED_CAST(void (*)(void *), void (*)(X509 *), free_func))
2402
#define sk_X509_insert(sk, p, where) \
2403
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \
2404
CHECKED_CAST(void *, X509 *, p), (where))
2406
#define sk_X509_delete(sk, where) \
2407
((X509 *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (where)))
2409
#define sk_X509_delete_ptr(sk, p) \
2410
((X509 *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \
2411
CHECKED_CAST(void *, X509 *, p)))
2413
#define sk_X509_find(sk, out_index, p) \
2414
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (out_index), \
2415
CHECKED_CAST(void *, X509 *, p))
2417
#define sk_X509_shift(sk) \
2418
((X509 *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)))
2420
#define sk_X509_push(sk, p) \
2421
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \
2422
CHECKED_CAST(void *, X509 *, p))
2424
#define sk_X509_pop(sk) \
2425
((X509 *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)))
2427
#define sk_X509_dup(sk) \
2428
((STACK_OF(X509) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk)))
2430
#define sk_X509_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))
2432
#define sk_X509_is_sorted(sk) \
2433
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk))
2435
#define sk_X509_set_cmp_func(sk, comp) \
2436
((int (*)(const X509 **a, const X509 **b))sk_set_cmp_func( \
2437
CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \
2438
CHECKED_CAST(stack_cmp_func, int (*)(const X509 **a, const X509 **b), \
2441
#define sk_X509_deep_copy(sk, copy_func, free_func) \
2442
((STACK_OF(X509) *)sk_deep_copy( \
2443
CHECKED_CAST(const _STACK *, const STACK_OF(X509) *, sk), \
2444
CHECKED_CAST(void *(*)(void *), X509 *(*)(X509 *), copy_func), \
2445
CHECKED_CAST(void (*)(void *), void (*)(X509 *), free_func)))
2449
#define sk_X509_ALGOR_new(comp) \
2450
((STACK_OF(X509_ALGOR) *)sk_new(CHECKED_CAST( \
2451
stack_cmp_func, int (*)(const X509_ALGOR **a, const X509_ALGOR **b), \
2454
#define sk_X509_ALGOR_new_null() ((STACK_OF(X509_ALGOR) *)sk_new_null())
2456
#define sk_X509_ALGOR_num(sk) \
2457
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))
2459
#define sk_X509_ALGOR_zero(sk) \
2460
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk));
2462
#define sk_X509_ALGOR_value(sk, i) \
2463
((X509_ALGOR *)sk_value( \
2464
CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk), (i)))
2466
#define sk_X509_ALGOR_set(sk, i, p) \
2467
((X509_ALGOR *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2468
(i), CHECKED_CAST(void *, X509_ALGOR *, p)))
2470
#define sk_X509_ALGOR_free(sk) \
2471
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))
2473
#define sk_X509_ALGOR_pop_free(sk, free_func) \
2475
CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2476
CHECKED_CAST(void (*)(void *), void (*)(X509_ALGOR *), free_func))
2478
#define sk_X509_ALGOR_insert(sk, p, where) \
2479
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2480
CHECKED_CAST(void *, X509_ALGOR *, p), (where))
2482
#define sk_X509_ALGOR_delete(sk, where) \
2483
((X509_ALGOR *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2486
#define sk_X509_ALGOR_delete_ptr(sk, p) \
2487
((X509_ALGOR *)sk_delete_ptr( \
2488
CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2489
CHECKED_CAST(void *, X509_ALGOR *, p)))
2491
#define sk_X509_ALGOR_find(sk, out_index, p) \
2492
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), (out_index), \
2493
CHECKED_CAST(void *, X509_ALGOR *, p))
2495
#define sk_X509_ALGOR_shift(sk) \
2496
((X509_ALGOR *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)))
2498
#define sk_X509_ALGOR_push(sk, p) \
2499
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2500
CHECKED_CAST(void *, X509_ALGOR *, p))
2502
#define sk_X509_ALGOR_pop(sk) \
2503
((X509_ALGOR *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)))
2505
#define sk_X509_ALGOR_dup(sk) \
2506
((STACK_OF(X509_ALGOR) *)sk_dup( \
2507
CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk)))
2509
#define sk_X509_ALGOR_sort(sk) \
2510
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))
2512
#define sk_X509_ALGOR_is_sorted(sk) \
2513
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk))
2515
#define sk_X509_ALGOR_set_cmp_func(sk, comp) \
2516
((int (*)(const X509_ALGOR **a, const X509_ALGOR **b))sk_set_cmp_func( \
2517
CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2518
CHECKED_CAST(stack_cmp_func, \
2519
int (*)(const X509_ALGOR **a, const X509_ALGOR **b), \
2522
#define sk_X509_ALGOR_deep_copy(sk, copy_func, free_func) \
2523
((STACK_OF(X509_ALGOR) *)sk_deep_copy( \
2524
CHECKED_CAST(const _STACK *, const STACK_OF(X509_ALGOR) *, sk), \
2525
CHECKED_CAST(void *(*)(void *), X509_ALGOR *(*)(X509_ALGOR *), \
2527
CHECKED_CAST(void (*)(void *), void (*)(X509_ALGOR *), free_func)))
2530
/* X509_ATTRIBUTE */
2531
#define sk_X509_ATTRIBUTE_new(comp) \
2532
((STACK_OF(X509_ATTRIBUTE) *)sk_new(CHECKED_CAST( \
2534
int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b), comp)))
2536
#define sk_X509_ATTRIBUTE_new_null() ((STACK_OF(X509_ATTRIBUTE) *)sk_new_null())
2538
#define sk_X509_ATTRIBUTE_num(sk) \
2539
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))
2541
#define sk_X509_ATTRIBUTE_zero(sk) \
2542
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk));
2544
#define sk_X509_ATTRIBUTE_value(sk, i) \
2545
((X509_ATTRIBUTE *)sk_value( \
2546
CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk), (i)))
2548
#define sk_X509_ATTRIBUTE_set(sk, i, p) \
2549
((X509_ATTRIBUTE *)sk_set( \
2550
CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (i), \
2551
CHECKED_CAST(void *, X509_ATTRIBUTE *, p)))
2553
#define sk_X509_ATTRIBUTE_free(sk) \
2554
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))
2556
#define sk_X509_ATTRIBUTE_pop_free(sk, free_func) \
2558
CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \
2559
CHECKED_CAST(void (*)(void *), void (*)(X509_ATTRIBUTE *), free_func))
2561
#define sk_X509_ATTRIBUTE_insert(sk, p, where) \
2562
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \
2563
CHECKED_CAST(void *, X509_ATTRIBUTE *, p), (where))
2565
#define sk_X509_ATTRIBUTE_delete(sk, where) \
2566
((X509_ATTRIBUTE *)sk_delete( \
2567
CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (where)))
2569
#define sk_X509_ATTRIBUTE_delete_ptr(sk, p) \
2570
((X509_ATTRIBUTE *)sk_delete_ptr( \
2571
CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \
2572
CHECKED_CAST(void *, X509_ATTRIBUTE *, p)))
2574
#define sk_X509_ATTRIBUTE_find(sk, out_index, p) \
2575
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (out_index), \
2576
CHECKED_CAST(void *, X509_ATTRIBUTE *, p))
2578
#define sk_X509_ATTRIBUTE_shift(sk) \
2579
((X509_ATTRIBUTE *)sk_shift( \
2580
CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)))
2582
#define sk_X509_ATTRIBUTE_push(sk, p) \
2583
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \
2584
CHECKED_CAST(void *, X509_ATTRIBUTE *, p))
2586
#define sk_X509_ATTRIBUTE_pop(sk) \
2587
((X509_ATTRIBUTE *)sk_pop( \
2588
CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)))
2590
#define sk_X509_ATTRIBUTE_dup(sk) \
2591
((STACK_OF(X509_ATTRIBUTE) *)sk_dup( \
2592
CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk)))
2594
#define sk_X509_ATTRIBUTE_sort(sk) \
2595
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))
2597
#define sk_X509_ATTRIBUTE_is_sorted(sk) \
2598
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk))
2600
#define sk_X509_ATTRIBUTE_set_cmp_func(sk, comp) \
2601
((int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b)) \
2603
CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \
2604
CHECKED_CAST(stack_cmp_func, int (*)(const X509_ATTRIBUTE **a, \
2605
const X509_ATTRIBUTE **b), \
2608
#define sk_X509_ATTRIBUTE_deep_copy(sk, copy_func, free_func) \
2609
((STACK_OF(X509_ATTRIBUTE) *)sk_deep_copy( \
2610
CHECKED_CAST(const _STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk), \
2611
CHECKED_CAST(void *(*)(void *), X509_ATTRIBUTE *(*)(X509_ATTRIBUTE *), \
2613
CHECKED_CAST(void (*)(void *), void (*)(X509_ATTRIBUTE *), free_func)))
2617
#define sk_X509_CRL_new(comp) \
2618
((STACK_OF(X509_CRL) *)sk_new(CHECKED_CAST( \
2619
stack_cmp_func, int (*)(const X509_CRL **a, const X509_CRL **b), comp)))
2621
#define sk_X509_CRL_new_null() ((STACK_OF(X509_CRL) *)sk_new_null())
2623
#define sk_X509_CRL_num(sk) \
2624
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))
2626
#define sk_X509_CRL_zero(sk) \
2627
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk));
2629
#define sk_X509_CRL_value(sk, i) \
2630
((X509_CRL *)sk_value( \
2631
CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk), (i)))
2633
#define sk_X509_CRL_set(sk, i, p) \
2634
((X509_CRL *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), (i), \
2635
CHECKED_CAST(void *, X509_CRL *, p)))
2637
#define sk_X509_CRL_free(sk) \
2638
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))
2640
#define sk_X509_CRL_pop_free(sk, free_func) \
2641
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \
2642
CHECKED_CAST(void (*)(void *), void (*)(X509_CRL *), free_func))
2644
#define sk_X509_CRL_insert(sk, p, where) \
2645
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \
2646
CHECKED_CAST(void *, X509_CRL *, p), (where))
2648
#define sk_X509_CRL_delete(sk, where) \
2649
((X509_CRL *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \
2652
#define sk_X509_CRL_delete_ptr(sk, p) \
2653
((X509_CRL *)sk_delete_ptr(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \
2654
CHECKED_CAST(void *, X509_CRL *, p)))
2656
#define sk_X509_CRL_find(sk, out_index, p) \
2657
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), (out_index), \
2658
CHECKED_CAST(void *, X509_CRL *, p))
2660
#define sk_X509_CRL_shift(sk) \
2661
((X509_CRL *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)))
2663
#define sk_X509_CRL_push(sk, p) \
2664
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \
2665
CHECKED_CAST(void *, X509_CRL *, p))
2667
#define sk_X509_CRL_pop(sk) \
2668
((X509_CRL *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)))
2670
#define sk_X509_CRL_dup(sk) \
2671
((STACK_OF(X509_CRL) *)sk_dup( \
2672
CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk)))
2674
#define sk_X509_CRL_sort(sk) \
2675
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))
2677
#define sk_X509_CRL_is_sorted(sk) \
2678
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk))
2680
#define sk_X509_CRL_set_cmp_func(sk, comp) \
2681
((int (*)(const X509_CRL **a, const X509_CRL **b))sk_set_cmp_func( \
2682
CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \
2683
CHECKED_CAST(stack_cmp_func, \
2684
int (*)(const X509_CRL **a, const X509_CRL **b), comp)))
2686
#define sk_X509_CRL_deep_copy(sk, copy_func, free_func) \
2687
((STACK_OF(X509_CRL) *)sk_deep_copy( \
2688
CHECKED_CAST(const _STACK *, const STACK_OF(X509_CRL) *, sk), \
2689
CHECKED_CAST(void *(*)(void *), X509_CRL *(*)(X509_CRL *), copy_func), \
2690
CHECKED_CAST(void (*)(void *), void (*)(X509_CRL *), free_func)))
2693
/* X509_EXTENSION */
2694
#define sk_X509_EXTENSION_new(comp) \
2695
((STACK_OF(X509_EXTENSION) *)sk_new(CHECKED_CAST( \
2697
int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b), comp)))
2699
#define sk_X509_EXTENSION_new_null() ((STACK_OF(X509_EXTENSION) *)sk_new_null())
2701
#define sk_X509_EXTENSION_num(sk) \
2702
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))
2704
#define sk_X509_EXTENSION_zero(sk) \
2705
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk));
2707
#define sk_X509_EXTENSION_value(sk, i) \
2708
((X509_EXTENSION *)sk_value( \
2709
CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk), (i)))
2711
#define sk_X509_EXTENSION_set(sk, i, p) \
2712
((X509_EXTENSION *)sk_set( \
2713
CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (i), \
2714
CHECKED_CAST(void *, X509_EXTENSION *, p)))
2716
#define sk_X509_EXTENSION_free(sk) \
2717
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))
2719
#define sk_X509_EXTENSION_pop_free(sk, free_func) \
2721
CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \
2722
CHECKED_CAST(void (*)(void *), void (*)(X509_EXTENSION *), free_func))
2724
#define sk_X509_EXTENSION_insert(sk, p, where) \
2725
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \
2726
CHECKED_CAST(void *, X509_EXTENSION *, p), (where))
2728
#define sk_X509_EXTENSION_delete(sk, where) \
2729
((X509_EXTENSION *)sk_delete( \
2730
CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (where)))
2732
#define sk_X509_EXTENSION_delete_ptr(sk, p) \
2733
((X509_EXTENSION *)sk_delete_ptr( \
2734
CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \
2735
CHECKED_CAST(void *, X509_EXTENSION *, p)))
2737
#define sk_X509_EXTENSION_find(sk, out_index, p) \
2738
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (out_index), \
2739
CHECKED_CAST(void *, X509_EXTENSION *, p))
2741
#define sk_X509_EXTENSION_shift(sk) \
2742
((X509_EXTENSION *)sk_shift( \
2743
CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)))
2745
#define sk_X509_EXTENSION_push(sk, p) \
2746
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \
2747
CHECKED_CAST(void *, X509_EXTENSION *, p))
2749
#define sk_X509_EXTENSION_pop(sk) \
2750
((X509_EXTENSION *)sk_pop( \
2751
CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)))
2753
#define sk_X509_EXTENSION_dup(sk) \
2754
((STACK_OF(X509_EXTENSION) *)sk_dup( \
2755
CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk)))
2757
#define sk_X509_EXTENSION_sort(sk) \
2758
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))
2760
#define sk_X509_EXTENSION_is_sorted(sk) \
2761
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk))
2763
#define sk_X509_EXTENSION_set_cmp_func(sk, comp) \
2764
((int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b)) \
2766
CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \
2767
CHECKED_CAST(stack_cmp_func, int (*)(const X509_EXTENSION **a, \
2768
const X509_EXTENSION **b), \
2771
#define sk_X509_EXTENSION_deep_copy(sk, copy_func, free_func) \
2772
((STACK_OF(X509_EXTENSION) *)sk_deep_copy( \
2773
CHECKED_CAST(const _STACK *, const STACK_OF(X509_EXTENSION) *, sk), \
2774
CHECKED_CAST(void *(*)(void *), X509_EXTENSION *(*)(X509_EXTENSION *), \
2776
CHECKED_CAST(void (*)(void *), void (*)(X509_EXTENSION *), free_func)))
2780
#define sk_X509_INFO_new(comp) \
2781
((STACK_OF(X509_INFO) *)sk_new( \
2782
CHECKED_CAST(stack_cmp_func, \
2783
int (*)(const X509_INFO **a, const X509_INFO **b), comp)))
2785
#define sk_X509_INFO_new_null() ((STACK_OF(X509_INFO) *)sk_new_null())
2787
#define sk_X509_INFO_num(sk) \
2788
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))
2790
#define sk_X509_INFO_zero(sk) \
2791
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk));
2793
#define sk_X509_INFO_value(sk, i) \
2794
((X509_INFO *)sk_value( \
2795
CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk), (i)))
2797
#define sk_X509_INFO_set(sk, i, p) \
2798
((X509_INFO *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), (i), \
2799
CHECKED_CAST(void *, X509_INFO *, p)))
2801
#define sk_X509_INFO_free(sk) \
2802
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))
2804
#define sk_X509_INFO_pop_free(sk, free_func) \
2806
CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2807
CHECKED_CAST(void (*)(void *), void (*)(X509_INFO *), free_func))
2809
#define sk_X509_INFO_insert(sk, p, where) \
2810
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2811
CHECKED_CAST(void *, X509_INFO *, p), (where))
2813
#define sk_X509_INFO_delete(sk, where) \
2814
((X509_INFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2817
#define sk_X509_INFO_delete_ptr(sk, p) \
2818
((X509_INFO *)sk_delete_ptr( \
2819
CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2820
CHECKED_CAST(void *, X509_INFO *, p)))
2822
#define sk_X509_INFO_find(sk, out_index, p) \
2823
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), (out_index), \
2824
CHECKED_CAST(void *, X509_INFO *, p))
2826
#define sk_X509_INFO_shift(sk) \
2827
((X509_INFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)))
2829
#define sk_X509_INFO_push(sk, p) \
2830
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2831
CHECKED_CAST(void *, X509_INFO *, p))
2833
#define sk_X509_INFO_pop(sk) \
2834
((X509_INFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)))
2836
#define sk_X509_INFO_dup(sk) \
2837
((STACK_OF(X509_INFO) *)sk_dup( \
2838
CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk)))
2840
#define sk_X509_INFO_sort(sk) \
2841
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))
2843
#define sk_X509_INFO_is_sorted(sk) \
2844
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk))
2846
#define sk_X509_INFO_set_cmp_func(sk, comp) \
2847
((int (*)(const X509_INFO **a, const X509_INFO **b))sk_set_cmp_func( \
2848
CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2849
CHECKED_CAST(stack_cmp_func, \
2850
int (*)(const X509_INFO **a, const X509_INFO **b), comp)))
2852
#define sk_X509_INFO_deep_copy(sk, copy_func, free_func) \
2853
((STACK_OF(X509_INFO) *)sk_deep_copy( \
2854
CHECKED_CAST(const _STACK *, const STACK_OF(X509_INFO) *, sk), \
2855
CHECKED_CAST(void *(*)(void *), X509_INFO *(*)(X509_INFO *), copy_func), \
2856
CHECKED_CAST(void (*)(void *), void (*)(X509_INFO *), free_func)))
2860
#define sk_X509_LOOKUP_new(comp) \
2861
((STACK_OF(X509_LOOKUP) *)sk_new(CHECKED_CAST( \
2862
stack_cmp_func, int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b), \
2865
#define sk_X509_LOOKUP_new_null() ((STACK_OF(X509_LOOKUP) *)sk_new_null())
2867
#define sk_X509_LOOKUP_num(sk) \
2868
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))
2870
#define sk_X509_LOOKUP_zero(sk) \
2871
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk));
2873
#define sk_X509_LOOKUP_value(sk, i) \
2874
((X509_LOOKUP *)sk_value( \
2875
CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk), (i)))
2877
#define sk_X509_LOOKUP_set(sk, i, p) \
2878
((X509_LOOKUP *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \
2879
(i), CHECKED_CAST(void *, X509_LOOKUP *, p)))
2881
#define sk_X509_LOOKUP_free(sk) \
2882
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))
2884
#define sk_X509_LOOKUP_pop_free(sk, free_func) \
2886
CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \
2887
CHECKED_CAST(void (*)(void *), void (*)(X509_LOOKUP *), free_func))
2889
#define sk_X509_LOOKUP_insert(sk, p, where) \
2890
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \
2891
CHECKED_CAST(void *, X509_LOOKUP *, p), (where))
2893
#define sk_X509_LOOKUP_delete(sk, where) \
2894
((X509_LOOKUP *)sk_delete( \
2895
CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), (where)))
2897
#define sk_X509_LOOKUP_delete_ptr(sk, p) \
2898
((X509_LOOKUP *)sk_delete_ptr( \
2899
CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \
2900
CHECKED_CAST(void *, X509_LOOKUP *, p)))
2902
#define sk_X509_LOOKUP_find(sk, out_index, p) \
2903
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), (out_index), \
2904
CHECKED_CAST(void *, X509_LOOKUP *, p))
2906
#define sk_X509_LOOKUP_shift(sk) \
2907
((X509_LOOKUP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)))
2909
#define sk_X509_LOOKUP_push(sk, p) \
2910
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \
2911
CHECKED_CAST(void *, X509_LOOKUP *, p))
2913
#define sk_X509_LOOKUP_pop(sk) \
2914
((X509_LOOKUP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)))
2916
#define sk_X509_LOOKUP_dup(sk) \
2917
((STACK_OF(X509_LOOKUP) *)sk_dup( \
2918
CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk)))
2920
#define sk_X509_LOOKUP_sort(sk) \
2921
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))
2923
#define sk_X509_LOOKUP_is_sorted(sk) \
2924
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk))
2926
#define sk_X509_LOOKUP_set_cmp_func(sk, comp) \
2927
((int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b))sk_set_cmp_func( \
2928
CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \
2929
CHECKED_CAST(stack_cmp_func, \
2930
int (*)(const X509_LOOKUP **a, const X509_LOOKUP **b), \
2933
#define sk_X509_LOOKUP_deep_copy(sk, copy_func, free_func) \
2934
((STACK_OF(X509_LOOKUP) *)sk_deep_copy( \
2935
CHECKED_CAST(const _STACK *, const STACK_OF(X509_LOOKUP) *, sk), \
2936
CHECKED_CAST(void *(*)(void *), X509_LOOKUP *(*)(X509_LOOKUP *), \
2938
CHECKED_CAST(void (*)(void *), void (*)(X509_LOOKUP *), free_func)))
2942
#define sk_X509_NAME_new(comp) \
2943
((STACK_OF(X509_NAME) *)sk_new( \
2944
CHECKED_CAST(stack_cmp_func, \
2945
int (*)(const X509_NAME **a, const X509_NAME **b), comp)))
2947
#define sk_X509_NAME_new_null() ((STACK_OF(X509_NAME) *)sk_new_null())
2949
#define sk_X509_NAME_num(sk) \
2950
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))
2952
#define sk_X509_NAME_zero(sk) \
2953
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk));
2955
#define sk_X509_NAME_value(sk, i) \
2956
((X509_NAME *)sk_value( \
2957
CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk), (i)))
2959
#define sk_X509_NAME_set(sk, i, p) \
2960
((X509_NAME *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), (i), \
2961
CHECKED_CAST(void *, X509_NAME *, p)))
2963
#define sk_X509_NAME_free(sk) \
2964
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))
2966
#define sk_X509_NAME_pop_free(sk, free_func) \
2968
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
2969
CHECKED_CAST(void (*)(void *), void (*)(X509_NAME *), free_func))
2971
#define sk_X509_NAME_insert(sk, p, where) \
2972
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
2973
CHECKED_CAST(void *, X509_NAME *, p), (where))
2975
#define sk_X509_NAME_delete(sk, where) \
2976
((X509_NAME *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
2979
#define sk_X509_NAME_delete_ptr(sk, p) \
2980
((X509_NAME *)sk_delete_ptr( \
2981
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
2982
CHECKED_CAST(void *, X509_NAME *, p)))
2984
#define sk_X509_NAME_find(sk, out_index, p) \
2985
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), (out_index), \
2986
CHECKED_CAST(void *, X509_NAME *, p))
2988
#define sk_X509_NAME_shift(sk) \
2989
((X509_NAME *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)))
2991
#define sk_X509_NAME_push(sk, p) \
2992
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
2993
CHECKED_CAST(void *, X509_NAME *, p))
2995
#define sk_X509_NAME_pop(sk) \
2996
((X509_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)))
2998
#define sk_X509_NAME_dup(sk) \
2999
((STACK_OF(X509_NAME) *)sk_dup( \
3000
CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk)))
3002
#define sk_X509_NAME_sort(sk) \
3003
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))
3005
#define sk_X509_NAME_is_sorted(sk) \
3006
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk))
3008
#define sk_X509_NAME_set_cmp_func(sk, comp) \
3009
((int (*)(const X509_NAME **a, const X509_NAME **b))sk_set_cmp_func( \
3010
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
3011
CHECKED_CAST(stack_cmp_func, \
3012
int (*)(const X509_NAME **a, const X509_NAME **b), comp)))
3014
#define sk_X509_NAME_deep_copy(sk, copy_func, free_func) \
3015
((STACK_OF(X509_NAME) *)sk_deep_copy( \
3016
CHECKED_CAST(const _STACK *, const STACK_OF(X509_NAME) *, sk), \
3017
CHECKED_CAST(void *(*)(void *), X509_NAME *(*)(X509_NAME *), copy_func), \
3018
CHECKED_CAST(void (*)(void *), void (*)(X509_NAME *), free_func)))
3021
/* X509_NAME_ENTRY */
3022
#define sk_X509_NAME_ENTRY_new(comp) \
3023
((STACK_OF(X509_NAME_ENTRY) *)sk_new(CHECKED_CAST( \
3025
int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b), comp)))
3027
#define sk_X509_NAME_ENTRY_new_null() \
3028
((STACK_OF(X509_NAME_ENTRY) *)sk_new_null())
3030
#define sk_X509_NAME_ENTRY_num(sk) \
3031
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))
3033
#define sk_X509_NAME_ENTRY_zero(sk) \
3034
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk));
3036
#define sk_X509_NAME_ENTRY_value(sk, i) \
3037
((X509_NAME_ENTRY *)sk_value( \
3038
CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk), (i)))
3040
#define sk_X509_NAME_ENTRY_set(sk, i, p) \
3041
((X509_NAME_ENTRY *)sk_set( \
3042
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), (i), \
3043
CHECKED_CAST(void *, X509_NAME_ENTRY *, p)))
3045
#define sk_X509_NAME_ENTRY_free(sk) \
3046
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))
3048
#define sk_X509_NAME_ENTRY_pop_free(sk, free_func) \
3050
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \
3051
CHECKED_CAST(void (*)(void *), void (*)(X509_NAME_ENTRY *), free_func))
3053
#define sk_X509_NAME_ENTRY_insert(sk, p, where) \
3054
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \
3055
CHECKED_CAST(void *, X509_NAME_ENTRY *, p), (where))
3057
#define sk_X509_NAME_ENTRY_delete(sk, where) \
3058
((X509_NAME_ENTRY *)sk_delete( \
3059
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), (where)))
3061
#define sk_X509_NAME_ENTRY_delete_ptr(sk, p) \
3062
((X509_NAME_ENTRY *)sk_delete_ptr( \
3063
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \
3064
CHECKED_CAST(void *, X509_NAME_ENTRY *, p)))
3066
#define sk_X509_NAME_ENTRY_find(sk, out_index, p) \
3067
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \
3068
(out_index), CHECKED_CAST(void *, X509_NAME_ENTRY *, p))
3070
#define sk_X509_NAME_ENTRY_shift(sk) \
3071
((X509_NAME_ENTRY *)sk_shift( \
3072
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)))
3074
#define sk_X509_NAME_ENTRY_push(sk, p) \
3075
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \
3076
CHECKED_CAST(void *, X509_NAME_ENTRY *, p))
3078
#define sk_X509_NAME_ENTRY_pop(sk) \
3079
((X509_NAME_ENTRY *)sk_pop( \
3080
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)))
3082
#define sk_X509_NAME_ENTRY_dup(sk) \
3083
((STACK_OF(X509_NAME_ENTRY) *)sk_dup( \
3084
CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk)))
3086
#define sk_X509_NAME_ENTRY_sort(sk) \
3087
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))
3089
#define sk_X509_NAME_ENTRY_is_sorted(sk) \
3090
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk))
3092
#define sk_X509_NAME_ENTRY_set_cmp_func(sk, comp) \
3093
((int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b)) \
3095
CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \
3096
CHECKED_CAST(stack_cmp_func, int (*)(const X509_NAME_ENTRY **a, \
3097
const X509_NAME_ENTRY **b), \
3100
#define sk_X509_NAME_ENTRY_deep_copy(sk, copy_func, free_func) \
3101
((STACK_OF(X509_NAME_ENTRY) *)sk_deep_copy( \
3102
CHECKED_CAST(const _STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk), \
3103
CHECKED_CAST(void *(*)(void *), X509_NAME_ENTRY *(*)(X509_NAME_ENTRY *), \
3105
CHECKED_CAST(void (*)(void *), void (*)(X509_NAME_ENTRY *), free_func)))
3109
#define sk_X509_OBJECT_new(comp) \
3110
((STACK_OF(X509_OBJECT) *)sk_new(CHECKED_CAST( \
3111
stack_cmp_func, int (*)(const X509_OBJECT **a, const X509_OBJECT **b), \
3114
#define sk_X509_OBJECT_new_null() ((STACK_OF(X509_OBJECT) *)sk_new_null())
3116
#define sk_X509_OBJECT_num(sk) \
3117
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))
3119
#define sk_X509_OBJECT_zero(sk) \
3120
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk));
3122
#define sk_X509_OBJECT_value(sk, i) \
3123
((X509_OBJECT *)sk_value( \
3124
CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk), (i)))
3126
#define sk_X509_OBJECT_set(sk, i, p) \
3127
((X509_OBJECT *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \
3128
(i), CHECKED_CAST(void *, X509_OBJECT *, p)))
3130
#define sk_X509_OBJECT_free(sk) \
3131
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))
3133
#define sk_X509_OBJECT_pop_free(sk, free_func) \
3135
CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \
3136
CHECKED_CAST(void (*)(void *), void (*)(X509_OBJECT *), free_func))
3138
#define sk_X509_OBJECT_insert(sk, p, where) \
3139
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \
3140
CHECKED_CAST(void *, X509_OBJECT *, p), (where))
3142
#define sk_X509_OBJECT_delete(sk, where) \
3143
((X509_OBJECT *)sk_delete( \
3144
CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), (where)))
3146
#define sk_X509_OBJECT_delete_ptr(sk, p) \
3147
((X509_OBJECT *)sk_delete_ptr( \
3148
CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \
3149
CHECKED_CAST(void *, X509_OBJECT *, p)))
3151
#define sk_X509_OBJECT_find(sk, out_index, p) \
3152
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), (out_index), \
3153
CHECKED_CAST(void *, X509_OBJECT *, p))
3155
#define sk_X509_OBJECT_shift(sk) \
3156
((X509_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)))
3158
#define sk_X509_OBJECT_push(sk, p) \
3159
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \
3160
CHECKED_CAST(void *, X509_OBJECT *, p))
3162
#define sk_X509_OBJECT_pop(sk) \
3163
((X509_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)))
3165
#define sk_X509_OBJECT_dup(sk) \
3166
((STACK_OF(X509_OBJECT) *)sk_dup( \
3167
CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk)))
3169
#define sk_X509_OBJECT_sort(sk) \
3170
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))
3172
#define sk_X509_OBJECT_is_sorted(sk) \
3173
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk))
3175
#define sk_X509_OBJECT_set_cmp_func(sk, comp) \
3176
((int (*)(const X509_OBJECT **a, const X509_OBJECT **b))sk_set_cmp_func( \
3177
CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \
3178
CHECKED_CAST(stack_cmp_func, \
3179
int (*)(const X509_OBJECT **a, const X509_OBJECT **b), \
3182
#define sk_X509_OBJECT_deep_copy(sk, copy_func, free_func) \
3183
((STACK_OF(X509_OBJECT) *)sk_deep_copy( \
3184
CHECKED_CAST(const _STACK *, const STACK_OF(X509_OBJECT) *, sk), \
3185
CHECKED_CAST(void *(*)(void *), X509_OBJECT *(*)(X509_OBJECT *), \
3187
CHECKED_CAST(void (*)(void *), void (*)(X509_OBJECT *), free_func)))
3190
/* X509_POLICY_DATA */
3191
#define sk_X509_POLICY_DATA_new(comp) \
3192
((STACK_OF(X509_POLICY_DATA) *)sk_new(CHECKED_CAST( \
3194
int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b), comp)))
3196
#define sk_X509_POLICY_DATA_new_null() \
3197
((STACK_OF(X509_POLICY_DATA) *)sk_new_null())
3199
#define sk_X509_POLICY_DATA_num(sk) \
3200
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))
3202
#define sk_X509_POLICY_DATA_zero(sk) \
3203
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk));
3205
#define sk_X509_POLICY_DATA_value(sk, i) \
3206
((X509_POLICY_DATA *)sk_value( \
3207
CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk), (i)))
3209
#define sk_X509_POLICY_DATA_set(sk, i, p) \
3210
((X509_POLICY_DATA *)sk_set( \
3211
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), (i), \
3212
CHECKED_CAST(void *, X509_POLICY_DATA *, p)))
3214
#define sk_X509_POLICY_DATA_free(sk) \
3215
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))
3217
#define sk_X509_POLICY_DATA_pop_free(sk, free_func) \
3219
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \
3220
CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_DATA *), free_func))
3222
#define sk_X509_POLICY_DATA_insert(sk, p, where) \
3223
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \
3224
CHECKED_CAST(void *, X509_POLICY_DATA *, p), (where))
3226
#define sk_X509_POLICY_DATA_delete(sk, where) \
3227
((X509_POLICY_DATA *)sk_delete( \
3228
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), (where)))
3230
#define sk_X509_POLICY_DATA_delete_ptr(sk, p) \
3231
((X509_POLICY_DATA *)sk_delete_ptr( \
3232
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \
3233
CHECKED_CAST(void *, X509_POLICY_DATA *, p)))
3235
#define sk_X509_POLICY_DATA_find(sk, out_index, p) \
3236
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \
3237
(out_index), CHECKED_CAST(void *, X509_POLICY_DATA *, p))
3239
#define sk_X509_POLICY_DATA_shift(sk) \
3240
((X509_POLICY_DATA *)sk_shift( \
3241
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)))
3243
#define sk_X509_POLICY_DATA_push(sk, p) \
3244
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \
3245
CHECKED_CAST(void *, X509_POLICY_DATA *, p))
3247
#define sk_X509_POLICY_DATA_pop(sk) \
3248
((X509_POLICY_DATA *)sk_pop( \
3249
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)))
3251
#define sk_X509_POLICY_DATA_dup(sk) \
3252
((STACK_OF(X509_POLICY_DATA) *)sk_dup( \
3253
CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk)))
3255
#define sk_X509_POLICY_DATA_sort(sk) \
3256
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))
3258
#define sk_X509_POLICY_DATA_is_sorted(sk) \
3259
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk))
3261
#define sk_X509_POLICY_DATA_set_cmp_func(sk, comp) \
3262
((int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b)) \
3264
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \
3265
CHECKED_CAST(stack_cmp_func, int (*)(const X509_POLICY_DATA **a, \
3266
const X509_POLICY_DATA **b), \
3269
#define sk_X509_POLICY_DATA_deep_copy(sk, copy_func, free_func) \
3270
((STACK_OF(X509_POLICY_DATA) *)sk_deep_copy( \
3271
CHECKED_CAST(const _STACK *, const STACK_OF(X509_POLICY_DATA) *, sk), \
3272
CHECKED_CAST(void *(*)(void *), \
3273
X509_POLICY_DATA *(*)(X509_POLICY_DATA *), copy_func), \
3274
CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_DATA *), \
3278
/* X509_POLICY_NODE */
3279
#define sk_X509_POLICY_NODE_new(comp) \
3280
((STACK_OF(X509_POLICY_NODE) *)sk_new(CHECKED_CAST( \
3282
int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b), comp)))
3284
#define sk_X509_POLICY_NODE_new_null() \
3285
((STACK_OF(X509_POLICY_NODE) *)sk_new_null())
3287
#define sk_X509_POLICY_NODE_num(sk) \
3288
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))
3290
#define sk_X509_POLICY_NODE_zero(sk) \
3291
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk));
3293
#define sk_X509_POLICY_NODE_value(sk, i) \
3294
((X509_POLICY_NODE *)sk_value( \
3295
CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk), (i)))
3297
#define sk_X509_POLICY_NODE_set(sk, i, p) \
3298
((X509_POLICY_NODE *)sk_set( \
3299
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), (i), \
3300
CHECKED_CAST(void *, X509_POLICY_NODE *, p)))
3302
#define sk_X509_POLICY_NODE_free(sk) \
3303
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))
3305
#define sk_X509_POLICY_NODE_pop_free(sk, free_func) \
3307
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \
3308
CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_NODE *), free_func))
3310
#define sk_X509_POLICY_NODE_insert(sk, p, where) \
3311
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \
3312
CHECKED_CAST(void *, X509_POLICY_NODE *, p), (where))
3314
#define sk_X509_POLICY_NODE_delete(sk, where) \
3315
((X509_POLICY_NODE *)sk_delete( \
3316
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), (where)))
3318
#define sk_X509_POLICY_NODE_delete_ptr(sk, p) \
3319
((X509_POLICY_NODE *)sk_delete_ptr( \
3320
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \
3321
CHECKED_CAST(void *, X509_POLICY_NODE *, p)))
3323
#define sk_X509_POLICY_NODE_find(sk, out_index, p) \
3324
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \
3325
(out_index), CHECKED_CAST(void *, X509_POLICY_NODE *, p))
3327
#define sk_X509_POLICY_NODE_shift(sk) \
3328
((X509_POLICY_NODE *)sk_shift( \
3329
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)))
3331
#define sk_X509_POLICY_NODE_push(sk, p) \
3332
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \
3333
CHECKED_CAST(void *, X509_POLICY_NODE *, p))
3335
#define sk_X509_POLICY_NODE_pop(sk) \
3336
((X509_POLICY_NODE *)sk_pop( \
3337
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)))
3339
#define sk_X509_POLICY_NODE_dup(sk) \
3340
((STACK_OF(X509_POLICY_NODE) *)sk_dup( \
3341
CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk)))
3343
#define sk_X509_POLICY_NODE_sort(sk) \
3344
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))
3346
#define sk_X509_POLICY_NODE_is_sorted(sk) \
3347
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk))
3349
#define sk_X509_POLICY_NODE_set_cmp_func(sk, comp) \
3350
((int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b)) \
3352
CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \
3353
CHECKED_CAST(stack_cmp_func, int (*)(const X509_POLICY_NODE **a, \
3354
const X509_POLICY_NODE **b), \
3357
#define sk_X509_POLICY_NODE_deep_copy(sk, copy_func, free_func) \
3358
((STACK_OF(X509_POLICY_NODE) *)sk_deep_copy( \
3359
CHECKED_CAST(const _STACK *, const STACK_OF(X509_POLICY_NODE) *, sk), \
3360
CHECKED_CAST(void *(*)(void *), \
3361
X509_POLICY_NODE *(*)(X509_POLICY_NODE *), copy_func), \
3362
CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_NODE *), \
3367
#define sk_X509_PURPOSE_new(comp) \
3368
((STACK_OF(X509_PURPOSE) *)sk_new(CHECKED_CAST( \
3369
stack_cmp_func, int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b), \
3372
#define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)sk_new_null())
3374
#define sk_X509_PURPOSE_num(sk) \
3375
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))
3377
#define sk_X509_PURPOSE_zero(sk) \
3378
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk));
3380
#define sk_X509_PURPOSE_value(sk, i) \
3381
((X509_PURPOSE *)sk_value( \
3382
CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk), (i)))
3384
#define sk_X509_PURPOSE_set(sk, i, p) \
3385
((X509_PURPOSE *)sk_set( \
3386
CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (i), \
3387
CHECKED_CAST(void *, X509_PURPOSE *, p)))
3389
#define sk_X509_PURPOSE_free(sk) \
3390
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))
3392
#define sk_X509_PURPOSE_pop_free(sk, free_func) \
3394
CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \
3395
CHECKED_CAST(void (*)(void *), void (*)(X509_PURPOSE *), free_func))
3397
#define sk_X509_PURPOSE_insert(sk, p, where) \
3398
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \
3399
CHECKED_CAST(void *, X509_PURPOSE *, p), (where))
3401
#define sk_X509_PURPOSE_delete(sk, where) \
3402
((X509_PURPOSE *)sk_delete( \
3403
CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (where)))
3405
#define sk_X509_PURPOSE_delete_ptr(sk, p) \
3406
((X509_PURPOSE *)sk_delete_ptr( \
3407
CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \
3408
CHECKED_CAST(void *, X509_PURPOSE *, p)))
3410
#define sk_X509_PURPOSE_find(sk, out_index, p) \
3411
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (out_index), \
3412
CHECKED_CAST(void *, X509_PURPOSE *, p))
3414
#define sk_X509_PURPOSE_shift(sk) \
3415
((X509_PURPOSE *)sk_shift( \
3416
CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)))
3418
#define sk_X509_PURPOSE_push(sk, p) \
3419
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \
3420
CHECKED_CAST(void *, X509_PURPOSE *, p))
3422
#define sk_X509_PURPOSE_pop(sk) \
3423
((X509_PURPOSE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)))
3425
#define sk_X509_PURPOSE_dup(sk) \
3426
((STACK_OF(X509_PURPOSE) *)sk_dup( \
3427
CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk)))
3429
#define sk_X509_PURPOSE_sort(sk) \
3430
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))
3432
#define sk_X509_PURPOSE_is_sorted(sk) \
3433
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk))
3435
#define sk_X509_PURPOSE_set_cmp_func(sk, comp) \
3436
((int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b))sk_set_cmp_func( \
3437
CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \
3438
CHECKED_CAST(stack_cmp_func, \
3439
int (*)(const X509_PURPOSE **a, const X509_PURPOSE **b), \
3442
#define sk_X509_PURPOSE_deep_copy(sk, copy_func, free_func) \
3443
((STACK_OF(X509_PURPOSE) *)sk_deep_copy( \
3444
CHECKED_CAST(const _STACK *, const STACK_OF(X509_PURPOSE) *, sk), \
3445
CHECKED_CAST(void *(*)(void *), X509_PURPOSE *(*)(X509_PURPOSE *), \
3447
CHECKED_CAST(void (*)(void *), void (*)(X509_PURPOSE *), free_func)))
3451
#define sk_X509_REVOKED_new(comp) \
3452
((STACK_OF(X509_REVOKED) *)sk_new(CHECKED_CAST( \
3453
stack_cmp_func, int (*)(const X509_REVOKED **a, const X509_REVOKED **b), \
3456
#define sk_X509_REVOKED_new_null() ((STACK_OF(X509_REVOKED) *)sk_new_null())
3458
#define sk_X509_REVOKED_num(sk) \
3459
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))
3461
#define sk_X509_REVOKED_zero(sk) \
3462
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk));
3464
#define sk_X509_REVOKED_value(sk, i) \
3465
((X509_REVOKED *)sk_value( \
3466
CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk), (i)))
3468
#define sk_X509_REVOKED_set(sk, i, p) \
3469
((X509_REVOKED *)sk_set( \
3470
CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (i), \
3471
CHECKED_CAST(void *, X509_REVOKED *, p)))
3473
#define sk_X509_REVOKED_free(sk) \
3474
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))
3476
#define sk_X509_REVOKED_pop_free(sk, free_func) \
3478
CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \
3479
CHECKED_CAST(void (*)(void *), void (*)(X509_REVOKED *), free_func))
3481
#define sk_X509_REVOKED_insert(sk, p, where) \
3482
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \
3483
CHECKED_CAST(void *, X509_REVOKED *, p), (where))
3485
#define sk_X509_REVOKED_delete(sk, where) \
3486
((X509_REVOKED *)sk_delete( \
3487
CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (where)))
3489
#define sk_X509_REVOKED_delete_ptr(sk, p) \
3490
((X509_REVOKED *)sk_delete_ptr( \
3491
CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \
3492
CHECKED_CAST(void *, X509_REVOKED *, p)))
3494
#define sk_X509_REVOKED_find(sk, out_index, p) \
3495
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (out_index), \
3496
CHECKED_CAST(void *, X509_REVOKED *, p))
3498
#define sk_X509_REVOKED_shift(sk) \
3499
((X509_REVOKED *)sk_shift( \
3500
CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)))
3502
#define sk_X509_REVOKED_push(sk, p) \
3503
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \
3504
CHECKED_CAST(void *, X509_REVOKED *, p))
3506
#define sk_X509_REVOKED_pop(sk) \
3507
((X509_REVOKED *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)))
3509
#define sk_X509_REVOKED_dup(sk) \
3510
((STACK_OF(X509_REVOKED) *)sk_dup( \
3511
CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk)))
3513
#define sk_X509_REVOKED_sort(sk) \
3514
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))
3516
#define sk_X509_REVOKED_is_sorted(sk) \
3517
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk))
3519
#define sk_X509_REVOKED_set_cmp_func(sk, comp) \
3520
((int (*)(const X509_REVOKED **a, const X509_REVOKED **b))sk_set_cmp_func( \
3521
CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \
3522
CHECKED_CAST(stack_cmp_func, \
3523
int (*)(const X509_REVOKED **a, const X509_REVOKED **b), \
3526
#define sk_X509_REVOKED_deep_copy(sk, copy_func, free_func) \
3527
((STACK_OF(X509_REVOKED) *)sk_deep_copy( \
3528
CHECKED_CAST(const _STACK *, const STACK_OF(X509_REVOKED) *, sk), \
3529
CHECKED_CAST(void *(*)(void *), X509_REVOKED *(*)(X509_REVOKED *), \
3531
CHECKED_CAST(void (*)(void *), void (*)(X509_REVOKED *), free_func)))
3535
#define sk_X509_TRUST_new(comp) \
3536
((STACK_OF(X509_TRUST) *)sk_new(CHECKED_CAST( \
3537
stack_cmp_func, int (*)(const X509_TRUST **a, const X509_TRUST **b), \
3540
#define sk_X509_TRUST_new_null() ((STACK_OF(X509_TRUST) *)sk_new_null())
3542
#define sk_X509_TRUST_num(sk) \
3543
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))
3545
#define sk_X509_TRUST_zero(sk) \
3546
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk));
3548
#define sk_X509_TRUST_value(sk, i) \
3549
((X509_TRUST *)sk_value( \
3550
CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk), (i)))
3552
#define sk_X509_TRUST_set(sk, i, p) \
3553
((X509_TRUST *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3554
(i), CHECKED_CAST(void *, X509_TRUST *, p)))
3556
#define sk_X509_TRUST_free(sk) \
3557
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))
3559
#define sk_X509_TRUST_pop_free(sk, free_func) \
3561
CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3562
CHECKED_CAST(void (*)(void *), void (*)(X509_TRUST *), free_func))
3564
#define sk_X509_TRUST_insert(sk, p, where) \
3565
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3566
CHECKED_CAST(void *, X509_TRUST *, p), (where))
3568
#define sk_X509_TRUST_delete(sk, where) \
3569
((X509_TRUST *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3572
#define sk_X509_TRUST_delete_ptr(sk, p) \
3573
((X509_TRUST *)sk_delete_ptr( \
3574
CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3575
CHECKED_CAST(void *, X509_TRUST *, p)))
3577
#define sk_X509_TRUST_find(sk, out_index, p) \
3578
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), (out_index), \
3579
CHECKED_CAST(void *, X509_TRUST *, p))
3581
#define sk_X509_TRUST_shift(sk) \
3582
((X509_TRUST *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)))
3584
#define sk_X509_TRUST_push(sk, p) \
3585
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3586
CHECKED_CAST(void *, X509_TRUST *, p))
3588
#define sk_X509_TRUST_pop(sk) \
3589
((X509_TRUST *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)))
3591
#define sk_X509_TRUST_dup(sk) \
3592
((STACK_OF(X509_TRUST) *)sk_dup( \
3593
CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk)))
3595
#define sk_X509_TRUST_sort(sk) \
3596
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))
3598
#define sk_X509_TRUST_is_sorted(sk) \
3599
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk))
3601
#define sk_X509_TRUST_set_cmp_func(sk, comp) \
3602
((int (*)(const X509_TRUST **a, const X509_TRUST **b))sk_set_cmp_func( \
3603
CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3604
CHECKED_CAST(stack_cmp_func, \
3605
int (*)(const X509_TRUST **a, const X509_TRUST **b), \
3608
#define sk_X509_TRUST_deep_copy(sk, copy_func, free_func) \
3609
((STACK_OF(X509_TRUST) *)sk_deep_copy( \
3610
CHECKED_CAST(const _STACK *, const STACK_OF(X509_TRUST) *, sk), \
3611
CHECKED_CAST(void *(*)(void *), X509_TRUST *(*)(X509_TRUST *), \
3613
CHECKED_CAST(void (*)(void *), void (*)(X509_TRUST *), free_func)))
3616
/* X509V3_EXT_METHOD */
3617
#define sk_X509V3_EXT_METHOD_new(comp) \
3618
((STACK_OF(X509V3_EXT_METHOD) *)sk_new(CHECKED_CAST( \
3620
int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b), \
3623
#define sk_X509V3_EXT_METHOD_new_null() \
3624
((STACK_OF(X509V3_EXT_METHOD) *)sk_new_null())
3626
#define sk_X509V3_EXT_METHOD_num(sk) \
3627
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))
3629
#define sk_X509V3_EXT_METHOD_zero(sk) \
3630
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk));
3632
#define sk_X509V3_EXT_METHOD_value(sk, i) \
3633
((X509V3_EXT_METHOD *)sk_value( \
3634
CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk), (i)))
3636
#define sk_X509V3_EXT_METHOD_set(sk, i, p) \
3637
((X509V3_EXT_METHOD *)sk_set( \
3638
CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), (i), \
3639
CHECKED_CAST(void *, X509V3_EXT_METHOD *, p)))
3641
#define sk_X509V3_EXT_METHOD_free(sk) \
3642
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))
3644
#define sk_X509V3_EXT_METHOD_pop_free(sk, free_func) \
3645
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \
3646
CHECKED_CAST(void (*)(void *), void (*)(X509V3_EXT_METHOD *), \
3649
#define sk_X509V3_EXT_METHOD_insert(sk, p, where) \
3650
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \
3651
CHECKED_CAST(void *, X509V3_EXT_METHOD *, p), (where))
3653
#define sk_X509V3_EXT_METHOD_delete(sk, where) \
3654
((X509V3_EXT_METHOD *)sk_delete( \
3655
CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), (where)))
3657
#define sk_X509V3_EXT_METHOD_delete_ptr(sk, p) \
3658
((X509V3_EXT_METHOD *)sk_delete_ptr( \
3659
CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \
3660
CHECKED_CAST(void *, X509V3_EXT_METHOD *, p)))
3662
#define sk_X509V3_EXT_METHOD_find(sk, out_index, p) \
3663
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \
3664
(out_index), CHECKED_CAST(void *, X509V3_EXT_METHOD *, p))
3666
#define sk_X509V3_EXT_METHOD_shift(sk) \
3667
((X509V3_EXT_METHOD *)sk_shift( \
3668
CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)))
3670
#define sk_X509V3_EXT_METHOD_push(sk, p) \
3671
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \
3672
CHECKED_CAST(void *, X509V3_EXT_METHOD *, p))
3674
#define sk_X509V3_EXT_METHOD_pop(sk) \
3675
((X509V3_EXT_METHOD *)sk_pop( \
3676
CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)))
3678
#define sk_X509V3_EXT_METHOD_dup(sk) \
3679
((STACK_OF(X509V3_EXT_METHOD) *)sk_dup( \
3680
CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk)))
3682
#define sk_X509V3_EXT_METHOD_sort(sk) \
3683
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))
3685
#define sk_X509V3_EXT_METHOD_is_sorted(sk) \
3686
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk))
3688
#define sk_X509V3_EXT_METHOD_set_cmp_func(sk, comp) \
3689
((int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b)) \
3691
CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk), \
3692
CHECKED_CAST(stack_cmp_func, int (*)(const X509V3_EXT_METHOD **a, \
3693
const X509V3_EXT_METHOD **b), \
3696
#define sk_X509V3_EXT_METHOD_deep_copy(sk, copy_func, free_func) \
3697
((STACK_OF(X509V3_EXT_METHOD) *)sk_deep_copy( \
3698
CHECKED_CAST(const _STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk), \
3699
CHECKED_CAST(void *(*)(void *), \
3700
X509V3_EXT_METHOD *(*)(X509V3_EXT_METHOD *), copy_func), \
3701
CHECKED_CAST(void (*)(void *), void (*)(X509V3_EXT_METHOD *), \
3705
/* X509_VERIFY_PARAM */
3706
#define sk_X509_VERIFY_PARAM_new(comp) \
3707
((STACK_OF(X509_VERIFY_PARAM) *)sk_new(CHECKED_CAST( \
3709
int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b), \
3712
#define sk_X509_VERIFY_PARAM_new_null() \
3713
((STACK_OF(X509_VERIFY_PARAM) *)sk_new_null())
3715
#define sk_X509_VERIFY_PARAM_num(sk) \
3716
sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))
3718
#define sk_X509_VERIFY_PARAM_zero(sk) \
3719
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk));
3721
#define sk_X509_VERIFY_PARAM_value(sk, i) \
3722
((X509_VERIFY_PARAM *)sk_value( \
3723
CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk), (i)))
3725
#define sk_X509_VERIFY_PARAM_set(sk, i, p) \
3726
((X509_VERIFY_PARAM *)sk_set( \
3727
CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), (i), \
3728
CHECKED_CAST(void *, X509_VERIFY_PARAM *, p)))
3730
#define sk_X509_VERIFY_PARAM_free(sk) \
3731
sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))
3733
#define sk_X509_VERIFY_PARAM_pop_free(sk, free_func) \
3734
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \
3735
CHECKED_CAST(void (*)(void *), void (*)(X509_VERIFY_PARAM *), \
3738
#define sk_X509_VERIFY_PARAM_insert(sk, p, where) \
3739
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \
3740
CHECKED_CAST(void *, X509_VERIFY_PARAM *, p), (where))
3742
#define sk_X509_VERIFY_PARAM_delete(sk, where) \
3743
((X509_VERIFY_PARAM *)sk_delete( \
3744
CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), (where)))
3746
#define sk_X509_VERIFY_PARAM_delete_ptr(sk, p) \
3747
((X509_VERIFY_PARAM *)sk_delete_ptr( \
3748
CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \
3749
CHECKED_CAST(void *, X509_VERIFY_PARAM *, p)))
3751
#define sk_X509_VERIFY_PARAM_find(sk, out_index, p) \
3752
sk_find(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \
3753
(out_index), CHECKED_CAST(void *, X509_VERIFY_PARAM *, p))
3755
#define sk_X509_VERIFY_PARAM_shift(sk) \
3756
((X509_VERIFY_PARAM *)sk_shift( \
3757
CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)))
3759
#define sk_X509_VERIFY_PARAM_push(sk, p) \
3760
sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \
3761
CHECKED_CAST(void *, X509_VERIFY_PARAM *, p))
3763
#define sk_X509_VERIFY_PARAM_pop(sk) \
3764
((X509_VERIFY_PARAM *)sk_pop( \
3765
CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)))
3767
#define sk_X509_VERIFY_PARAM_dup(sk) \
3768
((STACK_OF(X509_VERIFY_PARAM) *)sk_dup( \
3769
CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk)))
3771
#define sk_X509_VERIFY_PARAM_sort(sk) \
3772
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))
3774
#define sk_X509_VERIFY_PARAM_is_sorted(sk) \
3775
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk))
3777
#define sk_X509_VERIFY_PARAM_set_cmp_func(sk, comp) \
3778
((int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b)) \
3780
CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk), \
3781
CHECKED_CAST(stack_cmp_func, int (*)(const X509_VERIFY_PARAM **a, \
3782
const X509_VERIFY_PARAM **b), \
3785
#define sk_X509_VERIFY_PARAM_deep_copy(sk, copy_func, free_func) \
3786
((STACK_OF(X509_VERIFY_PARAM) *)sk_deep_copy( \
3787
CHECKED_CAST(const _STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk), \
3788
CHECKED_CAST(void *(*)(void *), \
3789
X509_VERIFY_PARAM *(*)(X509_VERIFY_PARAM *), copy_func), \
3790
CHECKED_CAST(void (*)(void *), void (*)(X509_VERIFY_PARAM *), \
3794
/* SRTP_PROTECTION_PROFILE */
3795
#define sk_SRTP_PROTECTION_PROFILE_new(comp) \
3796
((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_new(CHECKED_CAST( \
3797
stack_cmp_func, int (*)(const const SRTP_PROTECTION_PROFILE **a, \
3798
const const SRTP_PROTECTION_PROFILE **b), \
3801
#define sk_SRTP_PROTECTION_PROFILE_new_null() \
3802
((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_new_null())
3804
#define sk_SRTP_PROTECTION_PROFILE_num(sk) \
3805
sk_num(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3807
#define sk_SRTP_PROTECTION_PROFILE_zero(sk) \
3808
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk));
3810
#define sk_SRTP_PROTECTION_PROFILE_value(sk, i) \
3811
((const SRTP_PROTECTION_PROFILE *)sk_value( \
3812
CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3815
#define sk_SRTP_PROTECTION_PROFILE_set(sk, i, p) \
3816
((const SRTP_PROTECTION_PROFILE *)sk_set( \
3817
CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), (i), \
3818
CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p)))
3820
#define sk_SRTP_PROTECTION_PROFILE_free(sk) \
3821
sk_free(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3823
#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, free_func) \
3825
CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3826
CHECKED_CAST(void (*)(void *), \
3827
void (*)(const SRTP_PROTECTION_PROFILE *), free_func))
3829
#define sk_SRTP_PROTECTION_PROFILE_insert(sk, p, where) \
3830
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3831
CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p), (where))
3833
#define sk_SRTP_PROTECTION_PROFILE_delete(sk, where) \
3834
((const SRTP_PROTECTION_PROFILE *)sk_delete( \
3835
CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3838
#define sk_SRTP_PROTECTION_PROFILE_delete_ptr(sk, p) \
3839
((const SRTP_PROTECTION_PROFILE *)sk_delete_ptr( \
3840
CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3841
CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p)))
3843
#define sk_SRTP_PROTECTION_PROFILE_find(sk, out_index, p) \
3844
sk_find(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3846
CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p))
3848
#define sk_SRTP_PROTECTION_PROFILE_shift(sk) \
3849
((const SRTP_PROTECTION_PROFILE *)sk_shift( \
3850
CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)))
3852
#define sk_SRTP_PROTECTION_PROFILE_push(sk, p) \
3853
sk_push(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3854
CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p))
3856
#define sk_SRTP_PROTECTION_PROFILE_pop(sk) \
3857
((const SRTP_PROTECTION_PROFILE *)sk_pop( \
3858
CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)))
3860
#define sk_SRTP_PROTECTION_PROFILE_dup(sk) \
3861
((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_dup( \
3862
CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk)))
3864
#define sk_SRTP_PROTECTION_PROFILE_sort(sk) \
3865
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3867
#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) \
3869
CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3871
#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, comp) \
3872
((int (*)(const SRTP_PROTECTION_PROFILE **a, \
3873
const SRTP_PROTECTION_PROFILE **b)) \
3875
CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3876
CHECKED_CAST(stack_cmp_func, \
3877
int (*)(const SRTP_PROTECTION_PROFILE **a, \
3878
const SRTP_PROTECTION_PROFILE **b), \
3881
#define sk_SRTP_PROTECTION_PROFILE_deep_copy(sk, copy_func, free_func) \
3882
((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_deep_copy( \
3883
CHECKED_CAST(const _STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, \
3885
CHECKED_CAST(void *(*)(void *), const SRTP_PROTECTION_PROFILE *(*)( \
3886
const SRTP_PROTECTION_PROFILE *), \
3888
CHECKED_CAST(void (*)(void *), \
3889
void (*)(const SRTP_PROTECTION_PROFILE *), free_func)))
3893
#define sk_SSL_CIPHER_new(comp) \
3894
((STACK_OF(SSL_CIPHER) *)sk_new(CHECKED_CAST( \
3896
int (*)(const const SSL_CIPHER **a, const const SSL_CIPHER **b), comp)))
3898
#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)sk_new_null())
3900
#define sk_SSL_CIPHER_num(sk) \
3901
sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))
3903
#define sk_SSL_CIPHER_zero(sk) \
3904
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk));
3906
#define sk_SSL_CIPHER_value(sk, i) \
3907
((const SSL_CIPHER *)sk_value( \
3908
CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk), (i)))
3910
#define sk_SSL_CIPHER_set(sk, i, p) \
3911
((const SSL_CIPHER *)sk_set( \
3912
CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (i), \
3913
CHECKED_CAST(void *, const SSL_CIPHER *, p)))
3915
#define sk_SSL_CIPHER_free(sk) \
3916
sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))
3918
#define sk_SSL_CIPHER_pop_free(sk, free_func) \
3920
CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \
3921
CHECKED_CAST(void (*)(void *), void (*)(const SSL_CIPHER *), free_func))
3923
#define sk_SSL_CIPHER_insert(sk, p, where) \
3924
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \
3925
CHECKED_CAST(void *, const SSL_CIPHER *, p), (where))
3927
#define sk_SSL_CIPHER_delete(sk, where) \
3928
((const SSL_CIPHER *)sk_delete( \
3929
CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (where)))
3931
#define sk_SSL_CIPHER_delete_ptr(sk, p) \
3932
((const SSL_CIPHER *)sk_delete_ptr( \
3933
CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \
3934
CHECKED_CAST(void *, const SSL_CIPHER *, p)))
3936
#define sk_SSL_CIPHER_find(sk, out_index, p) \
3937
sk_find(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (out_index), \
3938
CHECKED_CAST(void *, const SSL_CIPHER *, p))
3940
#define sk_SSL_CIPHER_shift(sk) \
3941
((const SSL_CIPHER *)sk_shift( \
3942
CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)))
3944
#define sk_SSL_CIPHER_push(sk, p) \
3945
sk_push(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \
3946
CHECKED_CAST(void *, const SSL_CIPHER *, p))
3948
#define sk_SSL_CIPHER_pop(sk) \
3949
((const SSL_CIPHER *)sk_pop( \
3950
CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)))
3952
#define sk_SSL_CIPHER_dup(sk) \
3953
((STACK_OF(SSL_CIPHER) *)sk_dup( \
3954
CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk)))
3956
#define sk_SSL_CIPHER_sort(sk) \
3957
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))
3959
#define sk_SSL_CIPHER_is_sorted(sk) \
3960
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk))
3962
#define sk_SSL_CIPHER_set_cmp_func(sk, comp) \
3963
((int (*)(const SSL_CIPHER **a, const SSL_CIPHER **b))sk_set_cmp_func( \
3964
CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \
3965
CHECKED_CAST(stack_cmp_func, \
3966
int (*)(const SSL_CIPHER **a, const SSL_CIPHER **b), \
3969
#define sk_SSL_CIPHER_deep_copy(sk, copy_func, free_func) \
3970
((STACK_OF(SSL_CIPHER) *)sk_deep_copy( \
3971
CHECKED_CAST(const _STACK *, const STACK_OF(SSL_CIPHER) *, sk), \
3972
CHECKED_CAST(void *(*)(void *), \
3973
const SSL_CIPHER *(*)(const SSL_CIPHER *), copy_func), \
3974
CHECKED_CAST(void (*)(void *), void (*)(const SSL_CIPHER *), \
3978
/* OPENSSL_STRING */
3979
#define sk_OPENSSL_STRING_new(comp) \
3980
((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_CAST( \
3982
int (*)(const OPENSSL_STRING *a, const OPENSSL_STRING *b), comp)))
3984
#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null())
3986
#define sk_OPENSSL_STRING_num(sk) \
3987
sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))
3989
#define sk_OPENSSL_STRING_zero(sk) \
3990
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk));
3992
#define sk_OPENSSL_STRING_value(sk, i) \
3993
((OPENSSL_STRING)sk_value( \
3994
CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk), (i)))
3996
#define sk_OPENSSL_STRING_set(sk, i, p) \
3997
((OPENSSL_STRING)sk_set( \
3998
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (i), \
3999
CHECKED_CAST(void *, OPENSSL_STRING, p)))
4001
#define sk_OPENSSL_STRING_free(sk) \
4002
sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))
4004
#define sk_OPENSSL_STRING_pop_free(sk, free_func) \
4006
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \
4007
CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_STRING), free_func))
4009
#define sk_OPENSSL_STRING_insert(sk, p, where) \
4010
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \
4011
CHECKED_CAST(void *, OPENSSL_STRING, p), (where))
4013
#define sk_OPENSSL_STRING_delete(sk, where) \
4014
((OPENSSL_STRING)sk_delete( \
4015
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (where)))
4017
#define sk_OPENSSL_STRING_delete_ptr(sk, p) \
4018
((OPENSSL_STRING)sk_delete_ptr( \
4019
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \
4020
CHECKED_CAST(void *, OPENSSL_STRING, p)))
4022
#define sk_OPENSSL_STRING_find(sk, out_index, p) \
4023
sk_find(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (out_index), \
4024
CHECKED_CAST(void *, OPENSSL_STRING, p))
4026
#define sk_OPENSSL_STRING_shift(sk) \
4027
((OPENSSL_STRING)sk_shift( \
4028
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)))
4030
#define sk_OPENSSL_STRING_push(sk, p) \
4031
sk_push(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \
4032
CHECKED_CAST(void *, OPENSSL_STRING, p))
4034
#define sk_OPENSSL_STRING_pop(sk) \
4035
((OPENSSL_STRING)sk_pop( \
4036
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)))
4038
#define sk_OPENSSL_STRING_dup(sk) \
4039
((STACK_OF(OPENSSL_STRING) *)sk_dup( \
4040
CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk)))
4042
#define sk_OPENSSL_STRING_sort(sk) \
4043
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))
4045
#define sk_OPENSSL_STRING_is_sorted(sk) \
4046
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk))
4048
#define sk_OPENSSL_STRING_set_cmp_func(sk, comp) \
4049
((int (*)(const OPENSSL_STRING **a, const OPENSSL_STRING **b)) \
4051
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \
4052
CHECKED_CAST(stack_cmp_func, int (*)(const OPENSSL_STRING **a, \
4053
const OPENSSL_STRING **b), \
4056
#define sk_OPENSSL_STRING_deep_copy(sk, copy_func, free_func) \
4057
((STACK_OF(OPENSSL_STRING) *)sk_deep_copy( \
4058
CHECKED_CAST(const _STACK *, const STACK_OF(OPENSSL_STRING) *, sk), \
4059
CHECKED_CAST(void *(*)(void *), OPENSSL_STRING (*)(OPENSSL_STRING), \
4061
CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_STRING), free_func)))
4065
#define sk_OPENSSL_BLOCK_new(comp) \
4066
((STACK_OF(OPENSSL_BLOCK) *)sk_new(CHECKED_CAST( \
4067
stack_cmp_func, int (*)(const OPENSSL_BLOCK *a, const OPENSSL_BLOCK *b), \
4070
#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null())
4072
#define sk_OPENSSL_BLOCK_num(sk) \
4073
sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))
4075
#define sk_OPENSSL_BLOCK_zero(sk) \
4076
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk));
4078
#define sk_OPENSSL_BLOCK_value(sk, i) \
4079
((OPENSSL_BLOCK)sk_value( \
4080
CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk), (i)))
4082
#define sk_OPENSSL_BLOCK_set(sk, i, p) \
4083
((OPENSSL_BLOCK)sk_set( \
4084
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (i), \
4085
CHECKED_CAST(void *, OPENSSL_BLOCK, p)))
4087
#define sk_OPENSSL_BLOCK_free(sk) \
4088
sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))
4090
#define sk_OPENSSL_BLOCK_pop_free(sk, free_func) \
4092
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \
4093
CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_BLOCK), free_func))
4095
#define sk_OPENSSL_BLOCK_insert(sk, p, where) \
4096
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \
4097
CHECKED_CAST(void *, OPENSSL_BLOCK, p), (where))
4099
#define sk_OPENSSL_BLOCK_delete(sk, where) \
4100
((OPENSSL_BLOCK)sk_delete( \
4101
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (where)))
4103
#define sk_OPENSSL_BLOCK_delete_ptr(sk, p) \
4104
((OPENSSL_BLOCK)sk_delete_ptr( \
4105
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \
4106
CHECKED_CAST(void *, OPENSSL_BLOCK, p)))
4108
#define sk_OPENSSL_BLOCK_find(sk, out_index, p) \
4109
sk_find(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (out_index), \
4110
CHECKED_CAST(void *, OPENSSL_BLOCK, p))
4112
#define sk_OPENSSL_BLOCK_shift(sk) \
4113
((OPENSSL_BLOCK)sk_shift( \
4114
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)))
4116
#define sk_OPENSSL_BLOCK_push(sk, p) \
4117
sk_push(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \
4118
CHECKED_CAST(void *, OPENSSL_BLOCK, p))
4120
#define sk_OPENSSL_BLOCK_pop(sk) \
4121
((OPENSSL_BLOCK)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)))
4123
#define sk_OPENSSL_BLOCK_dup(sk) \
4124
((STACK_OF(OPENSSL_BLOCK) *)sk_dup( \
4125
CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk)))
4127
#define sk_OPENSSL_BLOCK_sort(sk) \
4128
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))
4130
#define sk_OPENSSL_BLOCK_is_sorted(sk) \
4131
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk))
4133
#define sk_OPENSSL_BLOCK_set_cmp_func(sk, comp) \
4134
((int (*)(const OPENSSL_BLOCK **a, const OPENSSL_BLOCK **b))sk_set_cmp_func( \
4135
CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \
4136
CHECKED_CAST(stack_cmp_func, \
4137
int (*)(const OPENSSL_BLOCK **a, const OPENSSL_BLOCK **b), \
4140
#define sk_OPENSSL_BLOCK_deep_copy(sk, copy_func, free_func) \
4141
((STACK_OF(OPENSSL_BLOCK) *)sk_deep_copy( \
4142
CHECKED_CAST(const _STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk), \
4143
CHECKED_CAST(void *(*)(void *), OPENSSL_BLOCK (*)(OPENSSL_BLOCK), \
4145
CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_BLOCK), free_func)))