~alinuxninja/nginx-edge/trunk

« back to all changes in this revision

Viewing changes to debian/modules/ngx_pagespeed/psol/include/third_party/boringssl/src/include/openssl/stack_macros.h

  • Committer: Vivian
  • Date: 2015-12-04 18:20:11 UTC
  • Revision ID: git-v1:a36f2bc32e884f7473b3a47040e5411306144d7d
* Do not extract psol.tar.gz

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (c) 2014, Google Inc.
2
 
 *
3
 
 * Permission to use, copy, modify, and/or distribute this software for any
4
 
 * purpose with or without fee is hereby granted, provided that the above
5
 
 * copyright notice and this permission notice appear in all copies.
6
 
 *
7
 
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
 
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
 
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
 
 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
 
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
 
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
 
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
 
 
15
 
#if !defined(IN_STACK_H)
16
 
#error "Don't include this file directly. Include stack.h."
17
 
#endif
18
 
 
19
 
/* ACCESS_DESCRIPTION */
20
 
#define sk_ACCESS_DESCRIPTION_new(comp)                                    \
21
 
  ((STACK_OF(ACCESS_DESCRIPTION) *)sk_new(CHECKED_CAST(                    \
22
 
      stack_cmp_func,                                                      \
23
 
      int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b), \
24
 
      comp)))
25
 
 
26
 
#define sk_ACCESS_DESCRIPTION_new_null() \
27
 
  ((STACK_OF(ACCESS_DESCRIPTION) *)sk_new_null())
28
 
 
29
 
#define sk_ACCESS_DESCRIPTION_num(sk) \
30
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))
31
 
 
32
 
#define sk_ACCESS_DESCRIPTION_zero(sk) \
33
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk));
34
 
 
35
 
#define sk_ACCESS_DESCRIPTION_value(sk, i) \
36
 
  ((ACCESS_DESCRIPTION *)sk_value(         \
37
 
      CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk), (i)))
38
 
 
39
 
#define sk_ACCESS_DESCRIPTION_set(sk, i, p)                            \
40
 
  ((ACCESS_DESCRIPTION *)sk_set(                                       \
41
 
      CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (i), \
42
 
      CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)))
43
 
 
44
 
#define sk_ACCESS_DESCRIPTION_free(sk) \
45
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))
46
 
 
47
 
#define sk_ACCESS_DESCRIPTION_pop_free(sk, free_func)                        \
48
 
  sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk),    \
49
 
              CHECKED_CAST(void (*)(void *), void (*)(ACCESS_DESCRIPTION *), \
50
 
                           free_func))
51
 
 
52
 
#define sk_ACCESS_DESCRIPTION_insert(sk, p, where)                      \
53
 
  sk_insert(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
54
 
            CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p), (where))
55
 
 
56
 
#define sk_ACCESS_DESCRIPTION_delete(sk, where) \
57
 
  ((ACCESS_DESCRIPTION *)sk_delete(             \
58
 
      CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), (where)))
59
 
 
60
 
#define sk_ACCESS_DESCRIPTION_delete_ptr(sk, p)                   \
61
 
  ((ACCESS_DESCRIPTION *)sk_delete_ptr(                           \
62
 
      CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
63
 
      CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p)))
64
 
 
65
 
#define sk_ACCESS_DESCRIPTION_find(sk, out_index, p)                  \
66
 
  sk_find(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
67
 
          (out_index), CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))
68
 
 
69
 
#define sk_ACCESS_DESCRIPTION_shift(sk) \
70
 
  ((ACCESS_DESCRIPTION *)sk_shift(      \
71
 
      CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)))
72
 
 
73
 
#define sk_ACCESS_DESCRIPTION_push(sk, p)                             \
74
 
  sk_push(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk), \
75
 
          CHECKED_CAST(void *, ACCESS_DESCRIPTION *, p))
76
 
 
77
 
#define sk_ACCESS_DESCRIPTION_pop(sk) \
78
 
  ((ACCESS_DESCRIPTION *)sk_pop(      \
79
 
      CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk)))
80
 
 
81
 
#define sk_ACCESS_DESCRIPTION_dup(sk)      \
82
 
  ((STACK_OF(ACCESS_DESCRIPTION) *)sk_dup( \
83
 
      CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk)))
84
 
 
85
 
#define sk_ACCESS_DESCRIPTION_sort(sk) \
86
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk))
87
 
 
88
 
#define sk_ACCESS_DESCRIPTION_is_sorted(sk) \
89
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk))
90
 
 
91
 
#define sk_ACCESS_DESCRIPTION_set_cmp_func(sk, comp)                           \
92
 
  ((int (*)(const ACCESS_DESCRIPTION **a, const ACCESS_DESCRIPTION **b))       \
93
 
       sk_set_cmp_func(                                                        \
94
 
           CHECKED_CAST(_STACK *, STACK_OF(ACCESS_DESCRIPTION) *, sk),         \
95
 
           CHECKED_CAST(stack_cmp_func, int (*)(const ACCESS_DESCRIPTION **a,  \
96
 
                                                const ACCESS_DESCRIPTION **b), \
97
 
                        comp)))
98
 
 
99
 
#define sk_ACCESS_DESCRIPTION_deep_copy(sk, copy_func, free_func)             \
100
 
  ((STACK_OF(ACCESS_DESCRIPTION) *)sk_deep_copy(                              \
101
 
      CHECKED_CAST(const _STACK *, const STACK_OF(ACCESS_DESCRIPTION) *, sk), \
102
 
      CHECKED_CAST(void *(*)(void *),                                         \
103
 
                   ACCESS_DESCRIPTION *(*)(ACCESS_DESCRIPTION *), copy_func), \
104
 
      CHECKED_CAST(void (*)(void *), void (*)(ACCESS_DESCRIPTION *),          \
105
 
                   free_func)))
106
 
 
107
 
 
108
 
/* ASN1_ADB_TABLE */
109
 
#define sk_ASN1_ADB_TABLE_new(comp)                 \
110
 
  ((STACK_OF(ASN1_ADB_TABLE) *)sk_new(CHECKED_CAST( \
111
 
      stack_cmp_func,                               \
112
 
      int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b), comp)))
113
 
 
114
 
#define sk_ASN1_ADB_TABLE_new_null() ((STACK_OF(ASN1_ADB_TABLE) *)sk_new_null())
115
 
 
116
 
#define sk_ASN1_ADB_TABLE_num(sk) \
117
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))
118
 
 
119
 
#define sk_ASN1_ADB_TABLE_zero(sk) \
120
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk));
121
 
 
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)))
125
 
 
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)))
130
 
 
131
 
#define sk_ASN1_ADB_TABLE_free(sk) \
132
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))
133
 
 
134
 
#define sk_ASN1_ADB_TABLE_pop_free(sk, free_func)             \
135
 
  sk_pop_free(                                                \
136
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk), \
137
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_ADB_TABLE *), free_func))
138
 
 
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))
142
 
 
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)))
146
 
 
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)))
151
 
 
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))
155
 
 
156
 
#define sk_ASN1_ADB_TABLE_shift(sk) \
157
 
  ((ASN1_ADB_TABLE *)sk_shift(      \
158
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)))
159
 
 
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))
163
 
 
164
 
#define sk_ASN1_ADB_TABLE_pop(sk) \
165
 
  ((ASN1_ADB_TABLE *)sk_pop(      \
166
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk)))
167
 
 
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)))
171
 
 
172
 
#define sk_ASN1_ADB_TABLE_sort(sk) \
173
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_ADB_TABLE) *, sk))
174
 
 
175
 
#define sk_ASN1_ADB_TABLE_is_sorted(sk) \
176
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_ADB_TABLE) *, sk))
177
 
 
178
 
#define sk_ASN1_ADB_TABLE_set_cmp_func(sk, comp)                           \
179
 
  ((int (*)(const ASN1_ADB_TABLE **a, const ASN1_ADB_TABLE **b))           \
180
 
       sk_set_cmp_func(                                                    \
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), \
184
 
                        comp)))
185
 
 
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 *), \
190
 
                   copy_func),                                               \
191
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_ADB_TABLE *), free_func)))
192
 
 
193
 
 
194
 
/* ASN1_GENERALSTRING */
195
 
#define sk_ASN1_GENERALSTRING_new(comp)                                    \
196
 
  ((STACK_OF(ASN1_GENERALSTRING) *)sk_new(CHECKED_CAST(                    \
197
 
      stack_cmp_func,                                                      \
198
 
      int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b), \
199
 
      comp)))
200
 
 
201
 
#define sk_ASN1_GENERALSTRING_new_null() \
202
 
  ((STACK_OF(ASN1_GENERALSTRING) *)sk_new_null())
203
 
 
204
 
#define sk_ASN1_GENERALSTRING_num(sk) \
205
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))
206
 
 
207
 
#define sk_ASN1_GENERALSTRING_zero(sk) \
208
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk));
209
 
 
210
 
#define sk_ASN1_GENERALSTRING_value(sk, i) \
211
 
  ((ASN1_GENERALSTRING *)sk_value(         \
212
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk), (i)))
213
 
 
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)))
218
 
 
219
 
#define sk_ASN1_GENERALSTRING_free(sk) \
220
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))
221
 
 
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 *), \
225
 
                           free_func))
226
 
 
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))
230
 
 
231
 
#define sk_ASN1_GENERALSTRING_delete(sk, where) \
232
 
  ((ASN1_GENERALSTRING *)sk_delete(             \
233
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk), (where)))
234
 
 
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)))
239
 
 
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))
243
 
 
244
 
#define sk_ASN1_GENERALSTRING_shift(sk) \
245
 
  ((ASN1_GENERALSTRING *)sk_shift(      \
246
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)))
247
 
 
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))
251
 
 
252
 
#define sk_ASN1_GENERALSTRING_pop(sk) \
253
 
  ((ASN1_GENERALSTRING *)sk_pop(      \
254
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk)))
255
 
 
256
 
#define sk_ASN1_GENERALSTRING_dup(sk)      \
257
 
  ((STACK_OF(ASN1_GENERALSTRING) *)sk_dup( \
258
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk)))
259
 
 
260
 
#define sk_ASN1_GENERALSTRING_sort(sk) \
261
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_GENERALSTRING) *, sk))
262
 
 
263
 
#define sk_ASN1_GENERALSTRING_is_sorted(sk) \
264
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_GENERALSTRING) *, sk))
265
 
 
266
 
#define sk_ASN1_GENERALSTRING_set_cmp_func(sk, comp)                           \
267
 
  ((int (*)(const ASN1_GENERALSTRING **a, const ASN1_GENERALSTRING **b))       \
268
 
       sk_set_cmp_func(                                                        \
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), \
272
 
                        comp)))
273
 
 
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 *),          \
280
 
                   free_func)))
281
 
 
282
 
 
283
 
/* ASN1_INTEGER */
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), \
287
 
      comp)))
288
 
 
289
 
#define sk_ASN1_INTEGER_new_null() ((STACK_OF(ASN1_INTEGER) *)sk_new_null())
290
 
 
291
 
#define sk_ASN1_INTEGER_num(sk) \
292
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))
293
 
 
294
 
#define sk_ASN1_INTEGER_zero(sk) \
295
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk));
296
 
 
297
 
#define sk_ASN1_INTEGER_value(sk, i) \
298
 
  ((ASN1_INTEGER *)sk_value(         \
299
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk), (i)))
300
 
 
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)))
305
 
 
306
 
#define sk_ASN1_INTEGER_free(sk) \
307
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))
308
 
 
309
 
#define sk_ASN1_INTEGER_pop_free(sk, free_func)             \
310
 
  sk_pop_free(                                              \
311
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), \
312
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_INTEGER *), free_func))
313
 
 
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))
317
 
 
318
 
#define sk_ASN1_INTEGER_delete(sk, where) \
319
 
  ((ASN1_INTEGER *)sk_delete(             \
320
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk), (where)))
321
 
 
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)))
326
 
 
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))
330
 
 
331
 
#define sk_ASN1_INTEGER_shift(sk) \
332
 
  ((ASN1_INTEGER *)sk_shift(      \
333
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)))
334
 
 
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))
338
 
 
339
 
#define sk_ASN1_INTEGER_pop(sk) \
340
 
  ((ASN1_INTEGER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk)))
341
 
 
342
 
#define sk_ASN1_INTEGER_dup(sk)      \
343
 
  ((STACK_OF(ASN1_INTEGER) *)sk_dup( \
344
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk)))
345
 
 
346
 
#define sk_ASN1_INTEGER_sort(sk) \
347
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_INTEGER) *, sk))
348
 
 
349
 
#define sk_ASN1_INTEGER_is_sorted(sk) \
350
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_INTEGER) *, sk))
351
 
 
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),  \
357
 
                   comp)))
358
 
 
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 *), \
363
 
                   copy_func),                                           \
364
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_INTEGER *), free_func)))
365
 
 
366
 
 
367
 
/* ASN1_OBJECT */
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), \
371
 
      comp)))
372
 
 
373
 
#define sk_ASN1_OBJECT_new_null() ((STACK_OF(ASN1_OBJECT) *)sk_new_null())
374
 
 
375
 
#define sk_ASN1_OBJECT_num(sk) \
376
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))
377
 
 
378
 
#define sk_ASN1_OBJECT_zero(sk) \
379
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk));
380
 
 
381
 
#define sk_ASN1_OBJECT_value(sk, i) \
382
 
  ((ASN1_OBJECT *)sk_value(         \
383
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk), (i)))
384
 
 
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)))
388
 
 
389
 
#define sk_ASN1_OBJECT_free(sk) \
390
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))
391
 
 
392
 
#define sk_ASN1_OBJECT_pop_free(sk, free_func)             \
393
 
  sk_pop_free(                                             \
394
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), \
395
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_OBJECT *), free_func))
396
 
 
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))
400
 
 
401
 
#define sk_ASN1_OBJECT_delete(sk, where) \
402
 
  ((ASN1_OBJECT *)sk_delete(             \
403
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk), (where)))
404
 
 
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)))
409
 
 
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))
413
 
 
414
 
#define sk_ASN1_OBJECT_shift(sk) \
415
 
  ((ASN1_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)))
416
 
 
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))
420
 
 
421
 
#define sk_ASN1_OBJECT_pop(sk) \
422
 
  ((ASN1_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk)))
423
 
 
424
 
#define sk_ASN1_OBJECT_dup(sk)      \
425
 
  ((STACK_OF(ASN1_OBJECT) *)sk_dup( \
426
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk)))
427
 
 
428
 
#define sk_ASN1_OBJECT_sort(sk) \
429
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_OBJECT) *, sk))
430
 
 
431
 
#define sk_ASN1_OBJECT_is_sorted(sk) \
432
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_OBJECT) *, sk))
433
 
 
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),  \
439
 
                   comp)))
440
 
 
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 *), \
445
 
                   copy_func),                                         \
446
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_OBJECT *), free_func)))
447
 
 
448
 
 
449
 
/* ASN1_STRING_TABLE */
450
 
#define sk_ASN1_STRING_TABLE_new(comp)                                   \
451
 
  ((STACK_OF(ASN1_STRING_TABLE) *)sk_new(CHECKED_CAST(                   \
452
 
      stack_cmp_func,                                                    \
453
 
      int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b), \
454
 
      comp)))
455
 
 
456
 
#define sk_ASN1_STRING_TABLE_new_null() \
457
 
  ((STACK_OF(ASN1_STRING_TABLE) *)sk_new_null())
458
 
 
459
 
#define sk_ASN1_STRING_TABLE_num(sk) \
460
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))
461
 
 
462
 
#define sk_ASN1_STRING_TABLE_zero(sk) \
463
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk));
464
 
 
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)))
468
 
 
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)))
473
 
 
474
 
#define sk_ASN1_STRING_TABLE_free(sk) \
475
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))
476
 
 
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 *), \
480
 
                           free_func))
481
 
 
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))
485
 
 
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)))
489
 
 
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)))
494
 
 
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))
498
 
 
499
 
#define sk_ASN1_STRING_TABLE_shift(sk) \
500
 
  ((ASN1_STRING_TABLE *)sk_shift(      \
501
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)))
502
 
 
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))
506
 
 
507
 
#define sk_ASN1_STRING_TABLE_pop(sk) \
508
 
  ((ASN1_STRING_TABLE *)sk_pop(      \
509
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk)))
510
 
 
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)))
514
 
 
515
 
#define sk_ASN1_STRING_TABLE_sort(sk) \
516
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_STRING_TABLE) *, sk))
517
 
 
518
 
#define sk_ASN1_STRING_TABLE_is_sorted(sk) \
519
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_STRING_TABLE) *, sk))
520
 
 
521
 
#define sk_ASN1_STRING_TABLE_set_cmp_func(sk, comp)                           \
522
 
  ((int (*)(const ASN1_STRING_TABLE **a, const ASN1_STRING_TABLE **b))        \
523
 
       sk_set_cmp_func(                                                       \
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), \
527
 
                        comp)))
528
 
 
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 *),          \
535
 
                   free_func)))
536
 
 
537
 
 
538
 
/* ASN1_TYPE */
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)))
543
 
 
544
 
#define sk_ASN1_TYPE_new_null() ((STACK_OF(ASN1_TYPE) *)sk_new_null())
545
 
 
546
 
#define sk_ASN1_TYPE_num(sk) \
547
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))
548
 
 
549
 
#define sk_ASN1_TYPE_zero(sk) \
550
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk));
551
 
 
552
 
#define sk_ASN1_TYPE_value(sk, i) \
553
 
  ((ASN1_TYPE *)sk_value(         \
554
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk), (i)))
555
 
 
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)))
559
 
 
560
 
#define sk_ASN1_TYPE_free(sk) \
561
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))
562
 
 
563
 
#define sk_ASN1_TYPE_pop_free(sk, free_func)             \
564
 
  sk_pop_free(                                           \
565
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
566
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_TYPE *), free_func))
567
 
 
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))
571
 
 
572
 
#define sk_ASN1_TYPE_delete(sk, where)                                       \
573
 
  ((ASN1_TYPE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk), \
574
 
                          (where)))
575
 
 
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)))
580
 
 
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))
584
 
 
585
 
#define sk_ASN1_TYPE_shift(sk) \
586
 
  ((ASN1_TYPE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)))
587
 
 
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))
591
 
 
592
 
#define sk_ASN1_TYPE_pop(sk) \
593
 
  ((ASN1_TYPE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk)))
594
 
 
595
 
#define sk_ASN1_TYPE_dup(sk)      \
596
 
  ((STACK_OF(ASN1_TYPE) *)sk_dup( \
597
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk)))
598
 
 
599
 
#define sk_ASN1_TYPE_sort(sk) \
600
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_TYPE) *, sk))
601
 
 
602
 
#define sk_ASN1_TYPE_is_sorted(sk) \
603
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_TYPE) *, sk))
604
 
 
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)))
610
 
 
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)))
616
 
 
617
 
 
618
 
/* ASN1_VALUE */
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), \
622
 
      comp)))
623
 
 
624
 
#define sk_ASN1_VALUE_new_null() ((STACK_OF(ASN1_VALUE) *)sk_new_null())
625
 
 
626
 
#define sk_ASN1_VALUE_num(sk) \
627
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))
628
 
 
629
 
#define sk_ASN1_VALUE_zero(sk) \
630
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk));
631
 
 
632
 
#define sk_ASN1_VALUE_value(sk, i) \
633
 
  ((ASN1_VALUE *)sk_value(         \
634
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk), (i)))
635
 
 
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)))
639
 
 
640
 
#define sk_ASN1_VALUE_free(sk) \
641
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))
642
 
 
643
 
#define sk_ASN1_VALUE_pop_free(sk, free_func)             \
644
 
  sk_pop_free(                                            \
645
 
      CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
646
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_VALUE *), free_func))
647
 
 
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))
651
 
 
652
 
#define sk_ASN1_VALUE_delete(sk, where)                                        \
653
 
  ((ASN1_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk), \
654
 
                           (where)))
655
 
 
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)))
660
 
 
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))
664
 
 
665
 
#define sk_ASN1_VALUE_shift(sk) \
666
 
  ((ASN1_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)))
667
 
 
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))
671
 
 
672
 
#define sk_ASN1_VALUE_pop(sk) \
673
 
  ((ASN1_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk)))
674
 
 
675
 
#define sk_ASN1_VALUE_dup(sk)      \
676
 
  ((STACK_OF(ASN1_VALUE) *)sk_dup( \
677
 
      CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk)))
678
 
 
679
 
#define sk_ASN1_VALUE_sort(sk) \
680
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(ASN1_VALUE) *, sk))
681
 
 
682
 
#define sk_ASN1_VALUE_is_sorted(sk) \
683
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(ASN1_VALUE) *, sk))
684
 
 
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),  \
690
 
                   comp)))
691
 
 
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 *),  \
696
 
                   copy_func),                                        \
697
 
      CHECKED_CAST(void (*)(void *), void (*)(ASN1_VALUE *), free_func)))
698
 
 
699
 
 
700
 
/* BIO */
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)))
704
 
 
705
 
#define sk_BIO_new_null() ((STACK_OF(BIO) *)sk_new_null())
706
 
 
707
 
#define sk_BIO_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))
708
 
 
709
 
#define sk_BIO_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk));
710
 
 
711
 
#define sk_BIO_value(sk, i) \
712
 
  ((BIO *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk), (i)))
713
 
 
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)))
717
 
 
718
 
#define sk_BIO_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))
719
 
 
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))
723
 
 
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))
727
 
 
728
 
#define sk_BIO_delete(sk, where) \
729
 
  ((BIO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), (where)))
730
 
 
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)))
734
 
 
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))
738
 
 
739
 
#define sk_BIO_shift(sk) \
740
 
  ((BIO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)))
741
 
 
742
 
#define sk_BIO_push(sk, p)                             \
743
 
  sk_push(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk), \
744
 
          CHECKED_CAST(void *, BIO *, p))
745
 
 
746
 
#define sk_BIO_pop(sk) \
747
 
  ((BIO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk)))
748
 
 
749
 
#define sk_BIO_dup(sk) \
750
 
  ((STACK_OF(BIO) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk)))
751
 
 
752
 
#define sk_BIO_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BIO) *, sk))
753
 
 
754
 
#define sk_BIO_is_sorted(sk) \
755
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BIO) *, sk))
756
 
 
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), \
761
 
                   comp)))
762
 
 
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)))
768
 
 
769
 
 
770
 
/* BY_DIR_ENTRY */
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), \
774
 
      comp)))
775
 
 
776
 
#define sk_BY_DIR_ENTRY_new_null() ((STACK_OF(BY_DIR_ENTRY) *)sk_new_null())
777
 
 
778
 
#define sk_BY_DIR_ENTRY_num(sk) \
779
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))
780
 
 
781
 
#define sk_BY_DIR_ENTRY_zero(sk) \
782
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk));
783
 
 
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)))
787
 
 
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)))
792
 
 
793
 
#define sk_BY_DIR_ENTRY_free(sk) \
794
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))
795
 
 
796
 
#define sk_BY_DIR_ENTRY_pop_free(sk, free_func)             \
797
 
  sk_pop_free(                                              \
798
 
      CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk), \
799
 
      CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_ENTRY *), free_func))
800
 
 
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))
804
 
 
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)))
808
 
 
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)))
813
 
 
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))
817
 
 
818
 
#define sk_BY_DIR_ENTRY_shift(sk) \
819
 
  ((BY_DIR_ENTRY *)sk_shift(      \
820
 
      CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)))
821
 
 
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))
825
 
 
826
 
#define sk_BY_DIR_ENTRY_pop(sk) \
827
 
  ((BY_DIR_ENTRY *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk)))
828
 
 
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)))
832
 
 
833
 
#define sk_BY_DIR_ENTRY_sort(sk) \
834
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_ENTRY) *, sk))
835
 
 
836
 
#define sk_BY_DIR_ENTRY_is_sorted(sk) \
837
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_ENTRY) *, sk))
838
 
 
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),  \
844
 
                   comp)))
845
 
 
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 *), \
850
 
                   copy_func),                                           \
851
 
      CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_ENTRY *), free_func)))
852
 
 
853
 
 
854
 
/* BY_DIR_HASH */
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), \
858
 
      comp)))
859
 
 
860
 
#define sk_BY_DIR_HASH_new_null() ((STACK_OF(BY_DIR_HASH) *)sk_new_null())
861
 
 
862
 
#define sk_BY_DIR_HASH_num(sk) \
863
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))
864
 
 
865
 
#define sk_BY_DIR_HASH_zero(sk) \
866
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk));
867
 
 
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)))
871
 
 
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)))
875
 
 
876
 
#define sk_BY_DIR_HASH_free(sk) \
877
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))
878
 
 
879
 
#define sk_BY_DIR_HASH_pop_free(sk, free_func)             \
880
 
  sk_pop_free(                                             \
881
 
      CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk), \
882
 
      CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_HASH *), free_func))
883
 
 
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))
887
 
 
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)))
891
 
 
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)))
896
 
 
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))
900
 
 
901
 
#define sk_BY_DIR_HASH_shift(sk) \
902
 
  ((BY_DIR_HASH *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)))
903
 
 
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))
907
 
 
908
 
#define sk_BY_DIR_HASH_pop(sk) \
909
 
  ((BY_DIR_HASH *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk)))
910
 
 
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)))
914
 
 
915
 
#define sk_BY_DIR_HASH_sort(sk) \
916
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(BY_DIR_HASH) *, sk))
917
 
 
918
 
#define sk_BY_DIR_HASH_is_sorted(sk) \
919
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(BY_DIR_HASH) *, sk))
920
 
 
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),  \
926
 
                   comp)))
927
 
 
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 *), \
932
 
                   copy_func),                                         \
933
 
      CHECKED_CAST(void (*)(void *), void (*)(BY_DIR_HASH *), free_func)))
934
 
 
935
 
 
936
 
/* CONF_VALUE */
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), \
940
 
      comp)))
941
 
 
942
 
#define sk_CONF_VALUE_new_null() ((STACK_OF(CONF_VALUE) *)sk_new_null())
943
 
 
944
 
#define sk_CONF_VALUE_num(sk) \
945
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))
946
 
 
947
 
#define sk_CONF_VALUE_zero(sk) \
948
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk));
949
 
 
950
 
#define sk_CONF_VALUE_value(sk, i) \
951
 
  ((CONF_VALUE *)sk_value(         \
952
 
      CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk), (i)))
953
 
 
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)))
957
 
 
958
 
#define sk_CONF_VALUE_free(sk) \
959
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))
960
 
 
961
 
#define sk_CONF_VALUE_pop_free(sk, free_func)             \
962
 
  sk_pop_free(                                            \
963
 
      CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
964
 
      CHECKED_CAST(void (*)(void *), void (*)(CONF_VALUE *), free_func))
965
 
 
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))
969
 
 
970
 
#define sk_CONF_VALUE_delete(sk, where)                                        \
971
 
  ((CONF_VALUE *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk), \
972
 
                           (where)))
973
 
 
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)))
978
 
 
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))
982
 
 
983
 
#define sk_CONF_VALUE_shift(sk) \
984
 
  ((CONF_VALUE *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)))
985
 
 
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))
989
 
 
990
 
#define sk_CONF_VALUE_pop(sk) \
991
 
  ((CONF_VALUE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk)))
992
 
 
993
 
#define sk_CONF_VALUE_dup(sk)      \
994
 
  ((STACK_OF(CONF_VALUE) *)sk_dup( \
995
 
      CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk)))
996
 
 
997
 
#define sk_CONF_VALUE_sort(sk) \
998
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CONF_VALUE) *, sk))
999
 
 
1000
 
#define sk_CONF_VALUE_is_sorted(sk) \
1001
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(CONF_VALUE) *, sk))
1002
 
 
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),  \
1008
 
                   comp)))
1009
 
 
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 *),  \
1014
 
                   copy_func),                                        \
1015
 
      CHECKED_CAST(void (*)(void *), void (*)(CONF_VALUE *), free_func)))
1016
 
 
1017
 
 
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(                      \
1021
 
      stack_cmp_func,                                                          \
1022
 
      int (*)(const CRYPTO_EX_DATA_FUNCS **a, const CRYPTO_EX_DATA_FUNCS **b), \
1023
 
      comp)))
1024
 
 
1025
 
#define sk_CRYPTO_EX_DATA_FUNCS_new_null() \
1026
 
  ((STACK_OF(CRYPTO_EX_DATA_FUNCS) *)sk_new_null())
1027
 
 
1028
 
#define sk_CRYPTO_EX_DATA_FUNCS_num(sk) \
1029
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1030
 
 
1031
 
#define sk_CRYPTO_EX_DATA_FUNCS_zero(sk) \
1032
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk));
1033
 
 
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), \
1037
 
      (i)))
1038
 
 
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)))
1043
 
 
1044
 
#define sk_CRYPTO_EX_DATA_FUNCS_free(sk) \
1045
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1046
 
 
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 *), \
1050
 
                           free_func))
1051
 
 
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))
1055
 
 
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)))
1059
 
 
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)))
1064
 
 
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))
1068
 
 
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)))
1072
 
 
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))
1076
 
 
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)))
1080
 
 
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)))
1084
 
 
1085
 
#define sk_CRYPTO_EX_DATA_FUNCS_sort(sk) \
1086
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1087
 
 
1088
 
#define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(sk) \
1089
 
  sk_is_sorted(                               \
1090
 
      CHECKED_CAST(_STACK *, const STACK_OF(CRYPTO_EX_DATA_FUNCS) *, sk))
1091
 
 
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)) \
1094
 
       sk_set_cmp_func(                                                      \
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),             \
1099
 
                        comp)))
1100
 
 
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) *, \
1104
 
                   sk),                                                    \
1105
 
      CHECKED_CAST(void *(*)(void *),                                      \
1106
 
                   CRYPTO_EX_DATA_FUNCS *(*)(CRYPTO_EX_DATA_FUNCS *),      \
1107
 
                   copy_func),                                             \
1108
 
      CHECKED_CAST(void (*)(void *), void (*)(CRYPTO_EX_DATA_FUNCS *),     \
1109
 
                   free_func)))
1110
 
 
1111
 
 
1112
 
/* DIST_POINT */
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), \
1116
 
      comp)))
1117
 
 
1118
 
#define sk_DIST_POINT_new_null() ((STACK_OF(DIST_POINT) *)sk_new_null())
1119
 
 
1120
 
#define sk_DIST_POINT_num(sk) \
1121
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))
1122
 
 
1123
 
#define sk_DIST_POINT_zero(sk) \
1124
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk));
1125
 
 
1126
 
#define sk_DIST_POINT_value(sk, i) \
1127
 
  ((DIST_POINT *)sk_value(         \
1128
 
      CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk), (i)))
1129
 
 
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)))
1133
 
 
1134
 
#define sk_DIST_POINT_free(sk) \
1135
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))
1136
 
 
1137
 
#define sk_DIST_POINT_pop_free(sk, free_func)             \
1138
 
  sk_pop_free(                                            \
1139
 
      CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1140
 
      CHECKED_CAST(void (*)(void *), void (*)(DIST_POINT *), free_func))
1141
 
 
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))
1145
 
 
1146
 
#define sk_DIST_POINT_delete(sk, where)                                        \
1147
 
  ((DIST_POINT *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk), \
1148
 
                           (where)))
1149
 
 
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)))
1154
 
 
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))
1158
 
 
1159
 
#define sk_DIST_POINT_shift(sk) \
1160
 
  ((DIST_POINT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)))
1161
 
 
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))
1165
 
 
1166
 
#define sk_DIST_POINT_pop(sk) \
1167
 
  ((DIST_POINT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk)))
1168
 
 
1169
 
#define sk_DIST_POINT_dup(sk)      \
1170
 
  ((STACK_OF(DIST_POINT) *)sk_dup( \
1171
 
      CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk)))
1172
 
 
1173
 
#define sk_DIST_POINT_sort(sk) \
1174
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(DIST_POINT) *, sk))
1175
 
 
1176
 
#define sk_DIST_POINT_is_sorted(sk) \
1177
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(DIST_POINT) *, sk))
1178
 
 
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),  \
1184
 
                   comp)))
1185
 
 
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 *),  \
1190
 
                   copy_func),                                        \
1191
 
      CHECKED_CAST(void (*)(void *), void (*)(DIST_POINT *), free_func)))
1192
 
 
1193
 
 
1194
 
/* GENERAL_NAME */
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), \
1198
 
      comp)))
1199
 
 
1200
 
#define sk_GENERAL_NAME_new_null() ((STACK_OF(GENERAL_NAME) *)sk_new_null())
1201
 
 
1202
 
#define sk_GENERAL_NAME_num(sk) \
1203
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))
1204
 
 
1205
 
#define sk_GENERAL_NAME_zero(sk) \
1206
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk));
1207
 
 
1208
 
#define sk_GENERAL_NAME_value(sk, i) \
1209
 
  ((GENERAL_NAME *)sk_value(         \
1210
 
      CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk), (i)))
1211
 
 
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)))
1216
 
 
1217
 
#define sk_GENERAL_NAME_free(sk) \
1218
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))
1219
 
 
1220
 
#define sk_GENERAL_NAME_pop_free(sk, free_func)             \
1221
 
  sk_pop_free(                                              \
1222
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), \
1223
 
      CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAME *), free_func))
1224
 
 
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))
1228
 
 
1229
 
#define sk_GENERAL_NAME_delete(sk, where) \
1230
 
  ((GENERAL_NAME *)sk_delete(             \
1231
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk), (where)))
1232
 
 
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)))
1237
 
 
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))
1241
 
 
1242
 
#define sk_GENERAL_NAME_shift(sk) \
1243
 
  ((GENERAL_NAME *)sk_shift(      \
1244
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)))
1245
 
 
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))
1249
 
 
1250
 
#define sk_GENERAL_NAME_pop(sk) \
1251
 
  ((GENERAL_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk)))
1252
 
 
1253
 
#define sk_GENERAL_NAME_dup(sk)      \
1254
 
  ((STACK_OF(GENERAL_NAME) *)sk_dup( \
1255
 
      CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk)))
1256
 
 
1257
 
#define sk_GENERAL_NAME_sort(sk) \
1258
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAME) *, sk))
1259
 
 
1260
 
#define sk_GENERAL_NAME_is_sorted(sk) \
1261
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAME) *, sk))
1262
 
 
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),  \
1268
 
                   comp)))
1269
 
 
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 *), \
1274
 
                   copy_func),                                           \
1275
 
      CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAME *), free_func)))
1276
 
 
1277
 
 
1278
 
/* GENERAL_NAMES */
1279
 
#define sk_GENERAL_NAMES_new(comp)                 \
1280
 
  ((STACK_OF(GENERAL_NAMES) *)sk_new(CHECKED_CAST( \
1281
 
      stack_cmp_func,                              \
1282
 
      int (*)(const GENERAL_NAMES **a, const GENERAL_NAMES **b), comp)))
1283
 
 
1284
 
#define sk_GENERAL_NAMES_new_null() ((STACK_OF(GENERAL_NAMES) *)sk_new_null())
1285
 
 
1286
 
#define sk_GENERAL_NAMES_num(sk) \
1287
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))
1288
 
 
1289
 
#define sk_GENERAL_NAMES_zero(sk) \
1290
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk));
1291
 
 
1292
 
#define sk_GENERAL_NAMES_value(sk, i) \
1293
 
  ((GENERAL_NAMES *)sk_value(         \
1294
 
      CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk), (i)))
1295
 
 
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)))
1300
 
 
1301
 
#define sk_GENERAL_NAMES_free(sk) \
1302
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))
1303
 
 
1304
 
#define sk_GENERAL_NAMES_pop_free(sk, free_func)             \
1305
 
  sk_pop_free(                                               \
1306
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), \
1307
 
      CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAMES *), free_func))
1308
 
 
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))
1312
 
 
1313
 
#define sk_GENERAL_NAMES_delete(sk, where) \
1314
 
  ((GENERAL_NAMES *)sk_delete(             \
1315
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk), (where)))
1316
 
 
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)))
1321
 
 
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))
1325
 
 
1326
 
#define sk_GENERAL_NAMES_shift(sk) \
1327
 
  ((GENERAL_NAMES *)sk_shift(      \
1328
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)))
1329
 
 
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))
1333
 
 
1334
 
#define sk_GENERAL_NAMES_pop(sk) \
1335
 
  ((GENERAL_NAMES *)sk_pop(      \
1336
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk)))
1337
 
 
1338
 
#define sk_GENERAL_NAMES_dup(sk)      \
1339
 
  ((STACK_OF(GENERAL_NAMES) *)sk_dup( \
1340
 
      CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk)))
1341
 
 
1342
 
#define sk_GENERAL_NAMES_sort(sk) \
1343
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_NAMES) *, sk))
1344
 
 
1345
 
#define sk_GENERAL_NAMES_is_sorted(sk) \
1346
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_NAMES) *, sk))
1347
 
 
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),  \
1353
 
                   comp)))
1354
 
 
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 *), \
1359
 
                   copy_func),                                             \
1360
 
      CHECKED_CAST(void (*)(void *), void (*)(GENERAL_NAMES *), free_func)))
1361
 
 
1362
 
 
1363
 
/* GENERAL_SUBTREE */
1364
 
#define sk_GENERAL_SUBTREE_new(comp)                 \
1365
 
  ((STACK_OF(GENERAL_SUBTREE) *)sk_new(CHECKED_CAST( \
1366
 
      stack_cmp_func,                                \
1367
 
      int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b), comp)))
1368
 
 
1369
 
#define sk_GENERAL_SUBTREE_new_null() \
1370
 
  ((STACK_OF(GENERAL_SUBTREE) *)sk_new_null())
1371
 
 
1372
 
#define sk_GENERAL_SUBTREE_num(sk) \
1373
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))
1374
 
 
1375
 
#define sk_GENERAL_SUBTREE_zero(sk) \
1376
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk));
1377
 
 
1378
 
#define sk_GENERAL_SUBTREE_value(sk, i) \
1379
 
  ((GENERAL_SUBTREE *)sk_value(         \
1380
 
      CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk), (i)))
1381
 
 
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)))
1386
 
 
1387
 
#define sk_GENERAL_SUBTREE_free(sk) \
1388
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))
1389
 
 
1390
 
#define sk_GENERAL_SUBTREE_pop_free(sk, free_func)             \
1391
 
  sk_pop_free(                                                 \
1392
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), \
1393
 
      CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func))
1394
 
 
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))
1398
 
 
1399
 
#define sk_GENERAL_SUBTREE_delete(sk, where) \
1400
 
  ((GENERAL_SUBTREE *)sk_delete(             \
1401
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk), (where)))
1402
 
 
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)))
1407
 
 
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))
1411
 
 
1412
 
#define sk_GENERAL_SUBTREE_shift(sk) \
1413
 
  ((GENERAL_SUBTREE *)sk_shift(      \
1414
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)))
1415
 
 
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))
1419
 
 
1420
 
#define sk_GENERAL_SUBTREE_pop(sk) \
1421
 
  ((GENERAL_SUBTREE *)sk_pop(      \
1422
 
      CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk)))
1423
 
 
1424
 
#define sk_GENERAL_SUBTREE_dup(sk)      \
1425
 
  ((STACK_OF(GENERAL_SUBTREE) *)sk_dup( \
1426
 
      CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk)))
1427
 
 
1428
 
#define sk_GENERAL_SUBTREE_sort(sk) \
1429
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(GENERAL_SUBTREE) *, sk))
1430
 
 
1431
 
#define sk_GENERAL_SUBTREE_is_sorted(sk) \
1432
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(GENERAL_SUBTREE) *, sk))
1433
 
 
1434
 
#define sk_GENERAL_SUBTREE_set_cmp_func(sk, comp)                           \
1435
 
  ((int (*)(const GENERAL_SUBTREE **a, const GENERAL_SUBTREE **b))          \
1436
 
       sk_set_cmp_func(                                                     \
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), \
1440
 
                        comp)))
1441
 
 
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 *), \
1446
 
                   copy_func),                                                 \
1447
 
      CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func)))
1448
 
 
1449
 
 
1450
 
/* MIME_HEADER */
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), \
1454
 
      comp)))
1455
 
 
1456
 
#define sk_MIME_HEADER_new_null() ((STACK_OF(MIME_HEADER) *)sk_new_null())
1457
 
 
1458
 
#define sk_MIME_HEADER_num(sk) \
1459
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1460
 
 
1461
 
#define sk_MIME_HEADER_zero(sk) \
1462
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk));
1463
 
 
1464
 
#define sk_MIME_HEADER_value(sk, i) \
1465
 
  ((MIME_HEADER *)sk_value(         \
1466
 
      CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk), (i)))
1467
 
 
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)))
1471
 
 
1472
 
#define sk_MIME_HEADER_free(sk) \
1473
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1474
 
 
1475
 
#define sk_MIME_HEADER_pop_free(sk, free_func)             \
1476
 
  sk_pop_free(                                             \
1477
 
      CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1478
 
      CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func))
1479
 
 
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))
1483
 
 
1484
 
#define sk_MIME_HEADER_delete(sk, where) \
1485
 
  ((MIME_HEADER *)sk_delete(             \
1486
 
      CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (where)))
1487
 
 
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)))
1492
 
 
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))
1496
 
 
1497
 
#define sk_MIME_HEADER_shift(sk) \
1498
 
  ((MIME_HEADER *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
1499
 
 
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))
1503
 
 
1504
 
#define sk_MIME_HEADER_pop(sk) \
1505
 
  ((MIME_HEADER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
1506
 
 
1507
 
#define sk_MIME_HEADER_dup(sk)      \
1508
 
  ((STACK_OF(MIME_HEADER) *)sk_dup( \
1509
 
      CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk)))
1510
 
 
1511
 
#define sk_MIME_HEADER_sort(sk) \
1512
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1513
 
 
1514
 
#define sk_MIME_HEADER_is_sorted(sk) \
1515
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk))
1516
 
 
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),  \
1522
 
                   comp)))
1523
 
 
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 *), \
1528
 
                   copy_func),                                         \
1529
 
      CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func)))
1530
 
 
1531
 
 
1532
 
/* PKCS7_RECIP_INFO */
1533
 
#define sk_PKCS7_RECIP_INFO_new(comp)                 \
1534
 
  ((STACK_OF(PKCS7_RECIP_INFO) *)sk_new(CHECKED_CAST( \
1535
 
      stack_cmp_func,                                 \
1536
 
      int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b), comp)))
1537
 
 
1538
 
#define sk_PKCS7_RECIP_INFO_new_null() \
1539
 
  ((STACK_OF(PKCS7_RECIP_INFO) *)sk_new_null())
1540
 
 
1541
 
#define sk_PKCS7_RECIP_INFO_num(sk) \
1542
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1543
 
 
1544
 
#define sk_PKCS7_RECIP_INFO_zero(sk) \
1545
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk));
1546
 
 
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)))
1550
 
 
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)))
1555
 
 
1556
 
#define sk_PKCS7_RECIP_INFO_free(sk) \
1557
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1558
 
 
1559
 
#define sk_PKCS7_RECIP_INFO_pop_free(sk, free_func)             \
1560
 
  sk_pop_free(                                                  \
1561
 
      CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1562
 
      CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), free_func))
1563
 
 
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))
1567
 
 
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)))
1571
 
 
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)))
1576
 
 
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))
1580
 
 
1581
 
#define sk_PKCS7_RECIP_INFO_shift(sk) \
1582
 
  ((PKCS7_RECIP_INFO *)sk_shift(      \
1583
 
      CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1584
 
 
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))
1588
 
 
1589
 
#define sk_PKCS7_RECIP_INFO_pop(sk) \
1590
 
  ((PKCS7_RECIP_INFO *)sk_pop(      \
1591
 
      CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1592
 
 
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)))
1596
 
 
1597
 
#define sk_PKCS7_RECIP_INFO_sort(sk) \
1598
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1599
 
 
1600
 
#define sk_PKCS7_RECIP_INFO_is_sorted(sk) \
1601
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk))
1602
 
 
1603
 
#define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, comp)                           \
1604
 
  ((int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b))         \
1605
 
       sk_set_cmp_func(                                                      \
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), \
1609
 
                        comp)))
1610
 
 
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 *),          \
1617
 
                   free_func)))
1618
 
 
1619
 
 
1620
 
/* PKCS7_SIGNER_INFO */
1621
 
#define sk_PKCS7_SIGNER_INFO_new(comp)                                   \
1622
 
  ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new(CHECKED_CAST(                   \
1623
 
      stack_cmp_func,                                                    \
1624
 
      int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b), \
1625
 
      comp)))
1626
 
 
1627
 
#define sk_PKCS7_SIGNER_INFO_new_null() \
1628
 
  ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new_null())
1629
 
 
1630
 
#define sk_PKCS7_SIGNER_INFO_num(sk) \
1631
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1632
 
 
1633
 
#define sk_PKCS7_SIGNER_INFO_zero(sk) \
1634
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk));
1635
 
 
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)))
1639
 
 
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)))
1644
 
 
1645
 
#define sk_PKCS7_SIGNER_INFO_free(sk) \
1646
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1647
 
 
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 *), \
1651
 
                           free_func))
1652
 
 
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))
1656
 
 
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)))
1660
 
 
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)))
1665
 
 
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))
1669
 
 
1670
 
#define sk_PKCS7_SIGNER_INFO_shift(sk) \
1671
 
  ((PKCS7_SIGNER_INFO *)sk_shift(      \
1672
 
      CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1673
 
 
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))
1677
 
 
1678
 
#define sk_PKCS7_SIGNER_INFO_pop(sk) \
1679
 
  ((PKCS7_SIGNER_INFO *)sk_pop(      \
1680
 
      CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1681
 
 
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)))
1685
 
 
1686
 
#define sk_PKCS7_SIGNER_INFO_sort(sk) \
1687
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1688
 
 
1689
 
#define sk_PKCS7_SIGNER_INFO_is_sorted(sk) \
1690
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1691
 
 
1692
 
#define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, comp)                           \
1693
 
  ((int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b))        \
1694
 
       sk_set_cmp_func(                                                       \
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), \
1698
 
                        comp)))
1699
 
 
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 *),          \
1706
 
                   free_func)))
1707
 
 
1708
 
 
1709
 
/* POLICYINFO */
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), \
1713
 
      comp)))
1714
 
 
1715
 
#define sk_POLICYINFO_new_null() ((STACK_OF(POLICYINFO) *)sk_new_null())
1716
 
 
1717
 
#define sk_POLICYINFO_num(sk) \
1718
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))
1719
 
 
1720
 
#define sk_POLICYINFO_zero(sk) \
1721
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk));
1722
 
 
1723
 
#define sk_POLICYINFO_value(sk, i) \
1724
 
  ((POLICYINFO *)sk_value(         \
1725
 
      CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk), (i)))
1726
 
 
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)))
1730
 
 
1731
 
#define sk_POLICYINFO_free(sk) \
1732
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))
1733
 
 
1734
 
#define sk_POLICYINFO_pop_free(sk, free_func)             \
1735
 
  sk_pop_free(                                            \
1736
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1737
 
      CHECKED_CAST(void (*)(void *), void (*)(POLICYINFO *), free_func))
1738
 
 
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))
1742
 
 
1743
 
#define sk_POLICYINFO_delete(sk, where)                                        \
1744
 
  ((POLICYINFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1745
 
                           (where)))
1746
 
 
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)))
1751
 
 
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))
1755
 
 
1756
 
#define sk_POLICYINFO_shift(sk) \
1757
 
  ((POLICYINFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)))
1758
 
 
1759
 
#define sk_POLICYINFO_push(sk, p)                             \
1760
 
  sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk), \
1761
 
          CHECKED_CAST(void *, POLICYINFO *, p))
1762
 
 
1763
 
#define sk_POLICYINFO_pop(sk) \
1764
 
  ((POLICYINFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk)))
1765
 
 
1766
 
#define sk_POLICYINFO_dup(sk)      \
1767
 
  ((STACK_OF(POLICYINFO) *)sk_dup( \
1768
 
      CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk)))
1769
 
 
1770
 
#define sk_POLICYINFO_sort(sk) \
1771
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYINFO) *, sk))
1772
 
 
1773
 
#define sk_POLICYINFO_is_sorted(sk) \
1774
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYINFO) *, sk))
1775
 
 
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),  \
1781
 
                   comp)))
1782
 
 
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 *),  \
1787
 
                   copy_func),                                        \
1788
 
      CHECKED_CAST(void (*)(void *), void (*)(POLICYINFO *), free_func)))
1789
 
 
1790
 
 
1791
 
/* POLICY_MAPPING */
1792
 
#define sk_POLICY_MAPPING_new(comp)                 \
1793
 
  ((STACK_OF(POLICY_MAPPING) *)sk_new(CHECKED_CAST( \
1794
 
      stack_cmp_func,                               \
1795
 
      int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b), comp)))
1796
 
 
1797
 
#define sk_POLICY_MAPPING_new_null() ((STACK_OF(POLICY_MAPPING) *)sk_new_null())
1798
 
 
1799
 
#define sk_POLICY_MAPPING_num(sk) \
1800
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))
1801
 
 
1802
 
#define sk_POLICY_MAPPING_zero(sk) \
1803
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk));
1804
 
 
1805
 
#define sk_POLICY_MAPPING_value(sk, i) \
1806
 
  ((POLICY_MAPPING *)sk_value(         \
1807
 
      CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk), (i)))
1808
 
 
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)))
1813
 
 
1814
 
#define sk_POLICY_MAPPING_free(sk) \
1815
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))
1816
 
 
1817
 
#define sk_POLICY_MAPPING_pop_free(sk, free_func)             \
1818
 
  sk_pop_free(                                                \
1819
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), \
1820
 
      CHECKED_CAST(void (*)(void *), void (*)(POLICY_MAPPING *), free_func))
1821
 
 
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))
1825
 
 
1826
 
#define sk_POLICY_MAPPING_delete(sk, where) \
1827
 
  ((POLICY_MAPPING *)sk_delete(             \
1828
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk), (where)))
1829
 
 
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)))
1834
 
 
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))
1838
 
 
1839
 
#define sk_POLICY_MAPPING_shift(sk) \
1840
 
  ((POLICY_MAPPING *)sk_shift(      \
1841
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)))
1842
 
 
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))
1846
 
 
1847
 
#define sk_POLICY_MAPPING_pop(sk) \
1848
 
  ((POLICY_MAPPING *)sk_pop(      \
1849
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk)))
1850
 
 
1851
 
#define sk_POLICY_MAPPING_dup(sk)      \
1852
 
  ((STACK_OF(POLICY_MAPPING) *)sk_dup( \
1853
 
      CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk)))
1854
 
 
1855
 
#define sk_POLICY_MAPPING_sort(sk) \
1856
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICY_MAPPING) *, sk))
1857
 
 
1858
 
#define sk_POLICY_MAPPING_is_sorted(sk) \
1859
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICY_MAPPING) *, sk))
1860
 
 
1861
 
#define sk_POLICY_MAPPING_set_cmp_func(sk, comp)                           \
1862
 
  ((int (*)(const POLICY_MAPPING **a, const POLICY_MAPPING **b))           \
1863
 
       sk_set_cmp_func(                                                    \
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), \
1867
 
                        comp)))
1868
 
 
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 *), \
1873
 
                   copy_func),                                               \
1874
 
      CHECKED_CAST(void (*)(void *), void (*)(POLICY_MAPPING *), free_func)))
1875
 
 
1876
 
 
1877
 
/* POLICYQUALINFO */
1878
 
#define sk_POLICYQUALINFO_new(comp)                 \
1879
 
  ((STACK_OF(POLICYQUALINFO) *)sk_new(CHECKED_CAST( \
1880
 
      stack_cmp_func,                               \
1881
 
      int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b), comp)))
1882
 
 
1883
 
#define sk_POLICYQUALINFO_new_null() ((STACK_OF(POLICYQUALINFO) *)sk_new_null())
1884
 
 
1885
 
#define sk_POLICYQUALINFO_num(sk) \
1886
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))
1887
 
 
1888
 
#define sk_POLICYQUALINFO_zero(sk) \
1889
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk));
1890
 
 
1891
 
#define sk_POLICYQUALINFO_value(sk, i) \
1892
 
  ((POLICYQUALINFO *)sk_value(         \
1893
 
      CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk), (i)))
1894
 
 
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)))
1899
 
 
1900
 
#define sk_POLICYQUALINFO_free(sk) \
1901
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))
1902
 
 
1903
 
#define sk_POLICYQUALINFO_pop_free(sk, free_func)             \
1904
 
  sk_pop_free(                                                \
1905
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \
1906
 
      CHECKED_CAST(void (*)(void *), void (*)(POLICYQUALINFO *), free_func))
1907
 
 
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))
1911
 
 
1912
 
#define sk_POLICYQUALINFO_delete(sk, where) \
1913
 
  ((POLICYQUALINFO *)sk_delete(             \
1914
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), (where)))
1915
 
 
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)))
1920
 
 
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))
1924
 
 
1925
 
#define sk_POLICYQUALINFO_shift(sk) \
1926
 
  ((POLICYQUALINFO *)sk_shift(      \
1927
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)))
1928
 
 
1929
 
#define sk_POLICYQUALINFO_push(sk, p)                             \
1930
 
  sk_push(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk), \
1931
 
          CHECKED_CAST(void *, POLICYQUALINFO *, p))
1932
 
 
1933
 
#define sk_POLICYQUALINFO_pop(sk) \
1934
 
  ((POLICYQUALINFO *)sk_pop(      \
1935
 
      CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk)))
1936
 
 
1937
 
#define sk_POLICYQUALINFO_dup(sk)      \
1938
 
  ((STACK_OF(POLICYQUALINFO) *)sk_dup( \
1939
 
      CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk)))
1940
 
 
1941
 
#define sk_POLICYQUALINFO_sort(sk) \
1942
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk))
1943
 
 
1944
 
#define sk_POLICYQUALINFO_is_sorted(sk) \
1945
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(POLICYQUALINFO) *, sk))
1946
 
 
1947
 
#define sk_POLICYQUALINFO_set_cmp_func(sk, comp)                           \
1948
 
  ((int (*)(const POLICYQUALINFO **a, const POLICYQUALINFO **b))           \
1949
 
       sk_set_cmp_func(                                                    \
1950
 
           CHECKED_CAST(_STACK *, STACK_OF(POLICYQUALINFO) *, sk),         \
1951
 
           CHECKED_CAST(stack_cmp_func, int (*)(const POLICYQUALINFO **a,  \
1952
 
                                                const POLICYQUALINFO **b), \
1953
 
                        comp)))
1954
 
 
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 *), \
1959
 
                   copy_func),                                               \
1960
 
      CHECKED_CAST(void (*)(void *), void (*)(POLICYQUALINFO *), free_func)))
1961
 
 
1962
 
 
1963
 
/* RSA_additional_prime */
1964
 
#define sk_RSA_additional_prime_new(comp)                                      \
1965
 
  ((STACK_OF(RSA_additional_prime) *)sk_new(CHECKED_CAST(                      \
1966
 
      stack_cmp_func,                                                          \
1967
 
      int (*)(const RSA_additional_prime **a, const RSA_additional_prime **b), \
1968
 
      comp)))
1969
 
 
1970
 
#define sk_RSA_additional_prime_new_null() \
1971
 
  ((STACK_OF(RSA_additional_prime) *)sk_new_null())
1972
 
 
1973
 
#define sk_RSA_additional_prime_num(sk) \
1974
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))
1975
 
 
1976
 
#define sk_RSA_additional_prime_zero(sk) \
1977
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk));
1978
 
 
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), \
1982
 
      (i)))
1983
 
 
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)))
1988
 
 
1989
 
#define sk_RSA_additional_prime_free(sk) \
1990
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))
1991
 
 
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 *), \
1995
 
                           free_func))
1996
 
 
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))
2000
 
 
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)))
2004
 
 
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)))
2009
 
 
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))
2013
 
 
2014
 
#define sk_RSA_additional_prime_shift(sk) \
2015
 
  ((RSA_additional_prime *)sk_shift(      \
2016
 
      CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)))
2017
 
 
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))
2021
 
 
2022
 
#define sk_RSA_additional_prime_pop(sk) \
2023
 
  ((RSA_additional_prime *)sk_pop(      \
2024
 
      CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk)))
2025
 
 
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)))
2029
 
 
2030
 
#define sk_RSA_additional_prime_sort(sk) \
2031
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(RSA_additional_prime) *, sk))
2032
 
 
2033
 
#define sk_RSA_additional_prime_is_sorted(sk) \
2034
 
  sk_is_sorted(                               \
2035
 
      CHECKED_CAST(_STACK *, const STACK_OF(RSA_additional_prime) *, sk))
2036
 
 
2037
 
#define sk_RSA_additional_prime_set_cmp_func(sk, comp)                       \
2038
 
  ((int (*)(const RSA_additional_prime **a, const RSA_additional_prime **b)) \
2039
 
       sk_set_cmp_func(                                                      \
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),             \
2044
 
                        comp)))
2045
 
 
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) *, \
2049
 
                   sk),                                                    \
2050
 
      CHECKED_CAST(void *(*)(void *),                                      \
2051
 
                   RSA_additional_prime *(*)(RSA_additional_prime *),      \
2052
 
                   copy_func),                                             \
2053
 
      CHECKED_CAST(void (*)(void *), void (*)(RSA_additional_prime *),     \
2054
 
                   free_func)))
2055
 
 
2056
 
 
2057
 
/* SSL_COMP */
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)))
2061
 
 
2062
 
#define sk_SSL_COMP_new_null() ((STACK_OF(SSL_COMP) *)sk_new_null())
2063
 
 
2064
 
#define sk_SSL_COMP_num(sk) \
2065
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))
2066
 
 
2067
 
#define sk_SSL_COMP_zero(sk) \
2068
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk));
2069
 
 
2070
 
#define sk_SSL_COMP_value(sk, i) \
2071
 
  ((SSL_COMP *)sk_value(         \
2072
 
      CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk), (i)))
2073
 
 
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)))
2077
 
 
2078
 
#define sk_SSL_COMP_free(sk) \
2079
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))
2080
 
 
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))
2084
 
 
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))
2088
 
 
2089
 
#define sk_SSL_COMP_delete(sk, where)                                      \
2090
 
  ((SSL_COMP *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk), \
2091
 
                         (where)))
2092
 
 
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)))
2096
 
 
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))
2100
 
 
2101
 
#define sk_SSL_COMP_shift(sk) \
2102
 
  ((SSL_COMP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)))
2103
 
 
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))
2107
 
 
2108
 
#define sk_SSL_COMP_pop(sk) \
2109
 
  ((SSL_COMP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk)))
2110
 
 
2111
 
#define sk_SSL_COMP_dup(sk)      \
2112
 
  ((STACK_OF(SSL_COMP) *)sk_dup( \
2113
 
      CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk)))
2114
 
 
2115
 
#define sk_SSL_COMP_sort(sk) \
2116
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_COMP) *, sk))
2117
 
 
2118
 
#define sk_SSL_COMP_is_sorted(sk) \
2119
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_COMP) *, sk))
2120
 
 
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)))
2126
 
 
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)))
2132
 
 
2133
 
 
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), \
2139
 
      comp)))
2140
 
 
2141
 
#define sk_STACK_OF_X509_NAME_ENTRY_new_null() \
2142
 
  ((STACK_OF(STACK_OF_X509_NAME_ENTRY) *)sk_new_null())
2143
 
 
2144
 
#define sk_STACK_OF_X509_NAME_ENTRY_num(sk) \
2145
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2146
 
 
2147
 
#define sk_STACK_OF_X509_NAME_ENTRY_zero(sk) \
2148
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk));
2149
 
 
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), \
2153
 
      (i)))
2154
 
 
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)))
2159
 
 
2160
 
#define sk_STACK_OF_X509_NAME_ENTRY_free(sk) \
2161
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2162
 
 
2163
 
#define sk_STACK_OF_X509_NAME_ENTRY_pop_free(sk, free_func)                \
2164
 
  sk_pop_free(                                                             \
2165
 
      CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk),    \
2166
 
      CHECKED_CAST(void (*)(void *), void (*)(STACK_OF_X509_NAME_ENTRY *), \
2167
 
                   free_func))
2168
 
 
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))
2172
 
 
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), \
2176
 
      (where)))
2177
 
 
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)))
2182
 
 
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))
2186
 
 
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)))
2190
 
 
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))
2194
 
 
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)))
2198
 
 
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)))
2202
 
 
2203
 
#define sk_STACK_OF_X509_NAME_ENTRY_sort(sk) \
2204
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2205
 
 
2206
 
#define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(sk) \
2207
 
  sk_is_sorted(                                   \
2208
 
      CHECKED_CAST(_STACK *, const STACK_OF(STACK_OF_X509_NAME_ENTRY) *, sk))
2209
 
 
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))                             \
2213
 
       sk_set_cmp_func(                                                      \
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),         \
2218
 
                        comp)))
2219
 
 
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) *, \
2223
 
                   sk),                                                        \
2224
 
      CHECKED_CAST(void *(*)(void *),                                          \
2225
 
                   STACK_OF_X509_NAME_ENTRY *(*)(STACK_OF_X509_NAME_ENTRY *),  \
2226
 
                   copy_func),                                                 \
2227
 
      CHECKED_CAST(void (*)(void *), void (*)(STACK_OF_X509_NAME_ENTRY *),     \
2228
 
                   free_func)))
2229
 
 
2230
 
 
2231
 
/* SXNETID */
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)))
2235
 
 
2236
 
#define sk_SXNETID_new_null() ((STACK_OF(SXNETID) *)sk_new_null())
2237
 
 
2238
 
#define sk_SXNETID_num(sk) \
2239
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))
2240
 
 
2241
 
#define sk_SXNETID_zero(sk) \
2242
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk));
2243
 
 
2244
 
#define sk_SXNETID_value(sk, i)                                               \
2245
 
  ((SXNETID *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk), \
2246
 
                       (i)))
2247
 
 
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)))
2251
 
 
2252
 
#define sk_SXNETID_free(sk) \
2253
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))
2254
 
 
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))
2258
 
 
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))
2262
 
 
2263
 
#define sk_SXNETID_delete(sk, where)                                     \
2264
 
  ((SXNETID *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2265
 
                        (where)))
2266
 
 
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)))
2270
 
 
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))
2274
 
 
2275
 
#define sk_SXNETID_shift(sk) \
2276
 
  ((SXNETID *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)))
2277
 
 
2278
 
#define sk_SXNETID_push(sk, p)                             \
2279
 
  sk_push(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk), \
2280
 
          CHECKED_CAST(void *, SXNETID *, p))
2281
 
 
2282
 
#define sk_SXNETID_pop(sk) \
2283
 
  ((SXNETID *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk)))
2284
 
 
2285
 
#define sk_SXNETID_dup(sk)      \
2286
 
  ((STACK_OF(SXNETID) *)sk_dup( \
2287
 
      CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk)))
2288
 
 
2289
 
#define sk_SXNETID_sort(sk) \
2290
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SXNETID) *, sk))
2291
 
 
2292
 
#define sk_SXNETID_is_sorted(sk) \
2293
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SXNETID) *, sk))
2294
 
 
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)))
2300
 
 
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)))
2306
 
 
2307
 
 
2308
 
/* void */
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)))
2312
 
 
2313
 
#define sk_void_new_null() ((STACK_OF(void)*)sk_new_null())
2314
 
 
2315
 
#define sk_void_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))
2316
 
 
2317
 
#define sk_void_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk));
2318
 
 
2319
 
#define sk_void_value(sk, i) \
2320
 
  ((void *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk), (i)))
2321
 
 
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)))
2325
 
 
2326
 
#define sk_void_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))
2327
 
 
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))
2331
 
 
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))
2335
 
 
2336
 
#define sk_void_delete(sk, where) \
2337
 
  ((void *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), (where)))
2338
 
 
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)))
2342
 
 
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))
2346
 
 
2347
 
#define sk_void_shift(sk) \
2348
 
  ((void *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)))
2349
 
 
2350
 
#define sk_void_push(sk, p)                            \
2351
 
  sk_push(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk), \
2352
 
          CHECKED_CAST(void *, void *, p))
2353
 
 
2354
 
#define sk_void_pop(sk) \
2355
 
  ((void *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk)))
2356
 
 
2357
 
#define sk_void_dup(sk) \
2358
 
  ((STACK_OF(void)*)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk)))
2359
 
 
2360
 
#define sk_void_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(void)*, sk))
2361
 
 
2362
 
#define sk_void_is_sorted(sk) \
2363
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(void)*, sk))
2364
 
 
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), \
2369
 
                   comp)))
2370
 
 
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)))
2376
 
 
2377
 
 
2378
 
/* X509 */
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)))
2382
 
 
2383
 
#define sk_X509_new_null() ((STACK_OF(X509) *)sk_new_null())
2384
 
 
2385
 
#define sk_X509_num(sk) sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))
2386
 
 
2387
 
#define sk_X509_zero(sk) sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk));
2388
 
 
2389
 
#define sk_X509_value(sk, i) \
2390
 
  ((X509 *)sk_value(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk), (i)))
2391
 
 
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)))
2395
 
 
2396
 
#define sk_X509_free(sk) sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))
2397
 
 
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))
2401
 
 
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))
2405
 
 
2406
 
#define sk_X509_delete(sk, where) \
2407
 
  ((X509 *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), (where)))
2408
 
 
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)))
2412
 
 
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))
2416
 
 
2417
 
#define sk_X509_shift(sk) \
2418
 
  ((X509 *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)))
2419
 
 
2420
 
#define sk_X509_push(sk, p)                             \
2421
 
  sk_push(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk), \
2422
 
          CHECKED_CAST(void *, X509 *, p))
2423
 
 
2424
 
#define sk_X509_pop(sk) \
2425
 
  ((X509 *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk)))
2426
 
 
2427
 
#define sk_X509_dup(sk) \
2428
 
  ((STACK_OF(X509) *)sk_dup(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk)))
2429
 
 
2430
 
#define sk_X509_sort(sk) sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509) *, sk))
2431
 
 
2432
 
#define sk_X509_is_sorted(sk) \
2433
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509) *, sk))
2434
 
 
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), \
2439
 
                   comp)))
2440
 
 
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)))
2446
 
 
2447
 
 
2448
 
/* X509_ALGOR */
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), \
2452
 
      comp)))
2453
 
 
2454
 
#define sk_X509_ALGOR_new_null() ((STACK_OF(X509_ALGOR) *)sk_new_null())
2455
 
 
2456
 
#define sk_X509_ALGOR_num(sk) \
2457
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))
2458
 
 
2459
 
#define sk_X509_ALGOR_zero(sk) \
2460
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk));
2461
 
 
2462
 
#define sk_X509_ALGOR_value(sk, i) \
2463
 
  ((X509_ALGOR *)sk_value(         \
2464
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk), (i)))
2465
 
 
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)))
2469
 
 
2470
 
#define sk_X509_ALGOR_free(sk) \
2471
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))
2472
 
 
2473
 
#define sk_X509_ALGOR_pop_free(sk, free_func)             \
2474
 
  sk_pop_free(                                            \
2475
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2476
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_ALGOR *), free_func))
2477
 
 
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))
2481
 
 
2482
 
#define sk_X509_ALGOR_delete(sk, where)                                        \
2483
 
  ((X509_ALGOR *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk), \
2484
 
                           (where)))
2485
 
 
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)))
2490
 
 
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))
2494
 
 
2495
 
#define sk_X509_ALGOR_shift(sk) \
2496
 
  ((X509_ALGOR *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)))
2497
 
 
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))
2501
 
 
2502
 
#define sk_X509_ALGOR_pop(sk) \
2503
 
  ((X509_ALGOR *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk)))
2504
 
 
2505
 
#define sk_X509_ALGOR_dup(sk)      \
2506
 
  ((STACK_OF(X509_ALGOR) *)sk_dup( \
2507
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk)))
2508
 
 
2509
 
#define sk_X509_ALGOR_sort(sk) \
2510
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ALGOR) *, sk))
2511
 
 
2512
 
#define sk_X509_ALGOR_is_sorted(sk) \
2513
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ALGOR) *, sk))
2514
 
 
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),  \
2520
 
                   comp)))
2521
 
 
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 *),  \
2526
 
                   copy_func),                                        \
2527
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_ALGOR *), free_func)))
2528
 
 
2529
 
 
2530
 
/* X509_ATTRIBUTE */
2531
 
#define sk_X509_ATTRIBUTE_new(comp)                 \
2532
 
  ((STACK_OF(X509_ATTRIBUTE) *)sk_new(CHECKED_CAST( \
2533
 
      stack_cmp_func,                               \
2534
 
      int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b), comp)))
2535
 
 
2536
 
#define sk_X509_ATTRIBUTE_new_null() ((STACK_OF(X509_ATTRIBUTE) *)sk_new_null())
2537
 
 
2538
 
#define sk_X509_ATTRIBUTE_num(sk) \
2539
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))
2540
 
 
2541
 
#define sk_X509_ATTRIBUTE_zero(sk) \
2542
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk));
2543
 
 
2544
 
#define sk_X509_ATTRIBUTE_value(sk, i) \
2545
 
  ((X509_ATTRIBUTE *)sk_value(         \
2546
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk), (i)))
2547
 
 
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)))
2552
 
 
2553
 
#define sk_X509_ATTRIBUTE_free(sk) \
2554
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))
2555
 
 
2556
 
#define sk_X509_ATTRIBUTE_pop_free(sk, free_func)             \
2557
 
  sk_pop_free(                                                \
2558
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), \
2559
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_ATTRIBUTE *), free_func))
2560
 
 
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))
2564
 
 
2565
 
#define sk_X509_ATTRIBUTE_delete(sk, where) \
2566
 
  ((X509_ATTRIBUTE *)sk_delete(             \
2567
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk), (where)))
2568
 
 
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)))
2573
 
 
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))
2577
 
 
2578
 
#define sk_X509_ATTRIBUTE_shift(sk) \
2579
 
  ((X509_ATTRIBUTE *)sk_shift(      \
2580
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)))
2581
 
 
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))
2585
 
 
2586
 
#define sk_X509_ATTRIBUTE_pop(sk) \
2587
 
  ((X509_ATTRIBUTE *)sk_pop(      \
2588
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk)))
2589
 
 
2590
 
#define sk_X509_ATTRIBUTE_dup(sk)      \
2591
 
  ((STACK_OF(X509_ATTRIBUTE) *)sk_dup( \
2592
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk)))
2593
 
 
2594
 
#define sk_X509_ATTRIBUTE_sort(sk) \
2595
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_ATTRIBUTE) *, sk))
2596
 
 
2597
 
#define sk_X509_ATTRIBUTE_is_sorted(sk) \
2598
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_ATTRIBUTE) *, sk))
2599
 
 
2600
 
#define sk_X509_ATTRIBUTE_set_cmp_func(sk, comp)                           \
2601
 
  ((int (*)(const X509_ATTRIBUTE **a, const X509_ATTRIBUTE **b))           \
2602
 
       sk_set_cmp_func(                                                    \
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), \
2606
 
                        comp)))
2607
 
 
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 *), \
2612
 
                   copy_func),                                               \
2613
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_ATTRIBUTE *), free_func)))
2614
 
 
2615
 
 
2616
 
/* X509_CRL */
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)))
2620
 
 
2621
 
#define sk_X509_CRL_new_null() ((STACK_OF(X509_CRL) *)sk_new_null())
2622
 
 
2623
 
#define sk_X509_CRL_num(sk) \
2624
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))
2625
 
 
2626
 
#define sk_X509_CRL_zero(sk) \
2627
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk));
2628
 
 
2629
 
#define sk_X509_CRL_value(sk, i) \
2630
 
  ((X509_CRL *)sk_value(         \
2631
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk), (i)))
2632
 
 
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)))
2636
 
 
2637
 
#define sk_X509_CRL_free(sk) \
2638
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))
2639
 
 
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))
2643
 
 
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))
2647
 
 
2648
 
#define sk_X509_CRL_delete(sk, where)                                      \
2649
 
  ((X509_CRL *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk), \
2650
 
                         (where)))
2651
 
 
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)))
2655
 
 
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))
2659
 
 
2660
 
#define sk_X509_CRL_shift(sk) \
2661
 
  ((X509_CRL *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)))
2662
 
 
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))
2666
 
 
2667
 
#define sk_X509_CRL_pop(sk) \
2668
 
  ((X509_CRL *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk)))
2669
 
 
2670
 
#define sk_X509_CRL_dup(sk)      \
2671
 
  ((STACK_OF(X509_CRL) *)sk_dup( \
2672
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk)))
2673
 
 
2674
 
#define sk_X509_CRL_sort(sk) \
2675
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_CRL) *, sk))
2676
 
 
2677
 
#define sk_X509_CRL_is_sorted(sk) \
2678
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_CRL) *, sk))
2679
 
 
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)))
2685
 
 
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)))
2691
 
 
2692
 
 
2693
 
/* X509_EXTENSION */
2694
 
#define sk_X509_EXTENSION_new(comp)                 \
2695
 
  ((STACK_OF(X509_EXTENSION) *)sk_new(CHECKED_CAST( \
2696
 
      stack_cmp_func,                               \
2697
 
      int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b), comp)))
2698
 
 
2699
 
#define sk_X509_EXTENSION_new_null() ((STACK_OF(X509_EXTENSION) *)sk_new_null())
2700
 
 
2701
 
#define sk_X509_EXTENSION_num(sk) \
2702
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))
2703
 
 
2704
 
#define sk_X509_EXTENSION_zero(sk) \
2705
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk));
2706
 
 
2707
 
#define sk_X509_EXTENSION_value(sk, i) \
2708
 
  ((X509_EXTENSION *)sk_value(         \
2709
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk), (i)))
2710
 
 
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)))
2715
 
 
2716
 
#define sk_X509_EXTENSION_free(sk) \
2717
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))
2718
 
 
2719
 
#define sk_X509_EXTENSION_pop_free(sk, free_func)             \
2720
 
  sk_pop_free(                                                \
2721
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), \
2722
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_EXTENSION *), free_func))
2723
 
 
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))
2727
 
 
2728
 
#define sk_X509_EXTENSION_delete(sk, where) \
2729
 
  ((X509_EXTENSION *)sk_delete(             \
2730
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk), (where)))
2731
 
 
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)))
2736
 
 
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))
2740
 
 
2741
 
#define sk_X509_EXTENSION_shift(sk) \
2742
 
  ((X509_EXTENSION *)sk_shift(      \
2743
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)))
2744
 
 
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))
2748
 
 
2749
 
#define sk_X509_EXTENSION_pop(sk) \
2750
 
  ((X509_EXTENSION *)sk_pop(      \
2751
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk)))
2752
 
 
2753
 
#define sk_X509_EXTENSION_dup(sk)      \
2754
 
  ((STACK_OF(X509_EXTENSION) *)sk_dup( \
2755
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk)))
2756
 
 
2757
 
#define sk_X509_EXTENSION_sort(sk) \
2758
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_EXTENSION) *, sk))
2759
 
 
2760
 
#define sk_X509_EXTENSION_is_sorted(sk) \
2761
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_EXTENSION) *, sk))
2762
 
 
2763
 
#define sk_X509_EXTENSION_set_cmp_func(sk, comp)                           \
2764
 
  ((int (*)(const X509_EXTENSION **a, const X509_EXTENSION **b))           \
2765
 
       sk_set_cmp_func(                                                    \
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), \
2769
 
                        comp)))
2770
 
 
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 *), \
2775
 
                   copy_func),                                               \
2776
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_EXTENSION *), free_func)))
2777
 
 
2778
 
 
2779
 
/* X509_INFO */
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)))
2784
 
 
2785
 
#define sk_X509_INFO_new_null() ((STACK_OF(X509_INFO) *)sk_new_null())
2786
 
 
2787
 
#define sk_X509_INFO_num(sk) \
2788
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))
2789
 
 
2790
 
#define sk_X509_INFO_zero(sk) \
2791
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk));
2792
 
 
2793
 
#define sk_X509_INFO_value(sk, i) \
2794
 
  ((X509_INFO *)sk_value(         \
2795
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk), (i)))
2796
 
 
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)))
2800
 
 
2801
 
#define sk_X509_INFO_free(sk) \
2802
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))
2803
 
 
2804
 
#define sk_X509_INFO_pop_free(sk, free_func)             \
2805
 
  sk_pop_free(                                           \
2806
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2807
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_INFO *), free_func))
2808
 
 
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))
2812
 
 
2813
 
#define sk_X509_INFO_delete(sk, where)                                       \
2814
 
  ((X509_INFO *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk), \
2815
 
                          (where)))
2816
 
 
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)))
2821
 
 
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))
2825
 
 
2826
 
#define sk_X509_INFO_shift(sk) \
2827
 
  ((X509_INFO *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)))
2828
 
 
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))
2832
 
 
2833
 
#define sk_X509_INFO_pop(sk) \
2834
 
  ((X509_INFO *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk)))
2835
 
 
2836
 
#define sk_X509_INFO_dup(sk)      \
2837
 
  ((STACK_OF(X509_INFO) *)sk_dup( \
2838
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk)))
2839
 
 
2840
 
#define sk_X509_INFO_sort(sk) \
2841
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_INFO) *, sk))
2842
 
 
2843
 
#define sk_X509_INFO_is_sorted(sk) \
2844
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_INFO) *, sk))
2845
 
 
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)))
2851
 
 
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)))
2857
 
 
2858
 
 
2859
 
/* X509_LOOKUP */
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), \
2863
 
      comp)))
2864
 
 
2865
 
#define sk_X509_LOOKUP_new_null() ((STACK_OF(X509_LOOKUP) *)sk_new_null())
2866
 
 
2867
 
#define sk_X509_LOOKUP_num(sk) \
2868
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))
2869
 
 
2870
 
#define sk_X509_LOOKUP_zero(sk) \
2871
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk));
2872
 
 
2873
 
#define sk_X509_LOOKUP_value(sk, i) \
2874
 
  ((X509_LOOKUP *)sk_value(         \
2875
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk), (i)))
2876
 
 
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)))
2880
 
 
2881
 
#define sk_X509_LOOKUP_free(sk) \
2882
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))
2883
 
 
2884
 
#define sk_X509_LOOKUP_pop_free(sk, free_func)             \
2885
 
  sk_pop_free(                                             \
2886
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), \
2887
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_LOOKUP *), free_func))
2888
 
 
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))
2892
 
 
2893
 
#define sk_X509_LOOKUP_delete(sk, where) \
2894
 
  ((X509_LOOKUP *)sk_delete(             \
2895
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk), (where)))
2896
 
 
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)))
2901
 
 
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))
2905
 
 
2906
 
#define sk_X509_LOOKUP_shift(sk) \
2907
 
  ((X509_LOOKUP *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)))
2908
 
 
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))
2912
 
 
2913
 
#define sk_X509_LOOKUP_pop(sk) \
2914
 
  ((X509_LOOKUP *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk)))
2915
 
 
2916
 
#define sk_X509_LOOKUP_dup(sk)      \
2917
 
  ((STACK_OF(X509_LOOKUP) *)sk_dup( \
2918
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk)))
2919
 
 
2920
 
#define sk_X509_LOOKUP_sort(sk) \
2921
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_LOOKUP) *, sk))
2922
 
 
2923
 
#define sk_X509_LOOKUP_is_sorted(sk) \
2924
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_LOOKUP) *, sk))
2925
 
 
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),  \
2931
 
                   comp)))
2932
 
 
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 *), \
2937
 
                   copy_func),                                         \
2938
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_LOOKUP *), free_func)))
2939
 
 
2940
 
 
2941
 
/* X509_NAME */
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)))
2946
 
 
2947
 
#define sk_X509_NAME_new_null() ((STACK_OF(X509_NAME) *)sk_new_null())
2948
 
 
2949
 
#define sk_X509_NAME_num(sk) \
2950
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))
2951
 
 
2952
 
#define sk_X509_NAME_zero(sk) \
2953
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk));
2954
 
 
2955
 
#define sk_X509_NAME_value(sk, i) \
2956
 
  ((X509_NAME *)sk_value(         \
2957
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk), (i)))
2958
 
 
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)))
2962
 
 
2963
 
#define sk_X509_NAME_free(sk) \
2964
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))
2965
 
 
2966
 
#define sk_X509_NAME_pop_free(sk, free_func)             \
2967
 
  sk_pop_free(                                           \
2968
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
2969
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_NAME *), free_func))
2970
 
 
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))
2974
 
 
2975
 
#define sk_X509_NAME_delete(sk, where)                                       \
2976
 
  ((X509_NAME *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk), \
2977
 
                          (where)))
2978
 
 
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)))
2983
 
 
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))
2987
 
 
2988
 
#define sk_X509_NAME_shift(sk) \
2989
 
  ((X509_NAME *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)))
2990
 
 
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))
2994
 
 
2995
 
#define sk_X509_NAME_pop(sk) \
2996
 
  ((X509_NAME *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk)))
2997
 
 
2998
 
#define sk_X509_NAME_dup(sk)      \
2999
 
  ((STACK_OF(X509_NAME) *)sk_dup( \
3000
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk)))
3001
 
 
3002
 
#define sk_X509_NAME_sort(sk) \
3003
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME) *, sk))
3004
 
 
3005
 
#define sk_X509_NAME_is_sorted(sk) \
3006
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME) *, sk))
3007
 
 
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)))
3013
 
 
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)))
3019
 
 
3020
 
 
3021
 
/* X509_NAME_ENTRY */
3022
 
#define sk_X509_NAME_ENTRY_new(comp)                 \
3023
 
  ((STACK_OF(X509_NAME_ENTRY) *)sk_new(CHECKED_CAST( \
3024
 
      stack_cmp_func,                                \
3025
 
      int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b), comp)))
3026
 
 
3027
 
#define sk_X509_NAME_ENTRY_new_null() \
3028
 
  ((STACK_OF(X509_NAME_ENTRY) *)sk_new_null())
3029
 
 
3030
 
#define sk_X509_NAME_ENTRY_num(sk) \
3031
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))
3032
 
 
3033
 
#define sk_X509_NAME_ENTRY_zero(sk) \
3034
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk));
3035
 
 
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)))
3039
 
 
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)))
3044
 
 
3045
 
#define sk_X509_NAME_ENTRY_free(sk) \
3046
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))
3047
 
 
3048
 
#define sk_X509_NAME_ENTRY_pop_free(sk, free_func)             \
3049
 
  sk_pop_free(                                                 \
3050
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk), \
3051
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_NAME_ENTRY *), free_func))
3052
 
 
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))
3056
 
 
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)))
3060
 
 
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)))
3065
 
 
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))
3069
 
 
3070
 
#define sk_X509_NAME_ENTRY_shift(sk) \
3071
 
  ((X509_NAME_ENTRY *)sk_shift(      \
3072
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)))
3073
 
 
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))
3077
 
 
3078
 
#define sk_X509_NAME_ENTRY_pop(sk) \
3079
 
  ((X509_NAME_ENTRY *)sk_pop(      \
3080
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk)))
3081
 
 
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)))
3085
 
 
3086
 
#define sk_X509_NAME_ENTRY_sort(sk) \
3087
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_NAME_ENTRY) *, sk))
3088
 
 
3089
 
#define sk_X509_NAME_ENTRY_is_sorted(sk) \
3090
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_NAME_ENTRY) *, sk))
3091
 
 
3092
 
#define sk_X509_NAME_ENTRY_set_cmp_func(sk, comp)                           \
3093
 
  ((int (*)(const X509_NAME_ENTRY **a, const X509_NAME_ENTRY **b))          \
3094
 
       sk_set_cmp_func(                                                     \
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), \
3098
 
                        comp)))
3099
 
 
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 *), \
3104
 
                   copy_func),                                                 \
3105
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_NAME_ENTRY *), free_func)))
3106
 
 
3107
 
 
3108
 
/* X509_OBJECT */
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), \
3112
 
      comp)))
3113
 
 
3114
 
#define sk_X509_OBJECT_new_null() ((STACK_OF(X509_OBJECT) *)sk_new_null())
3115
 
 
3116
 
#define sk_X509_OBJECT_num(sk) \
3117
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))
3118
 
 
3119
 
#define sk_X509_OBJECT_zero(sk) \
3120
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk));
3121
 
 
3122
 
#define sk_X509_OBJECT_value(sk, i) \
3123
 
  ((X509_OBJECT *)sk_value(         \
3124
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk), (i)))
3125
 
 
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)))
3129
 
 
3130
 
#define sk_X509_OBJECT_free(sk) \
3131
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))
3132
 
 
3133
 
#define sk_X509_OBJECT_pop_free(sk, free_func)             \
3134
 
  sk_pop_free(                                             \
3135
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), \
3136
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_OBJECT *), free_func))
3137
 
 
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))
3141
 
 
3142
 
#define sk_X509_OBJECT_delete(sk, where) \
3143
 
  ((X509_OBJECT *)sk_delete(             \
3144
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk), (where)))
3145
 
 
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)))
3150
 
 
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))
3154
 
 
3155
 
#define sk_X509_OBJECT_shift(sk) \
3156
 
  ((X509_OBJECT *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)))
3157
 
 
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))
3161
 
 
3162
 
#define sk_X509_OBJECT_pop(sk) \
3163
 
  ((X509_OBJECT *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk)))
3164
 
 
3165
 
#define sk_X509_OBJECT_dup(sk)      \
3166
 
  ((STACK_OF(X509_OBJECT) *)sk_dup( \
3167
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk)))
3168
 
 
3169
 
#define sk_X509_OBJECT_sort(sk) \
3170
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_OBJECT) *, sk))
3171
 
 
3172
 
#define sk_X509_OBJECT_is_sorted(sk) \
3173
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_OBJECT) *, sk))
3174
 
 
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),  \
3180
 
                   comp)))
3181
 
 
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 *), \
3186
 
                   copy_func),                                         \
3187
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_OBJECT *), free_func)))
3188
 
 
3189
 
 
3190
 
/* X509_POLICY_DATA */
3191
 
#define sk_X509_POLICY_DATA_new(comp)                 \
3192
 
  ((STACK_OF(X509_POLICY_DATA) *)sk_new(CHECKED_CAST( \
3193
 
      stack_cmp_func,                                 \
3194
 
      int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b), comp)))
3195
 
 
3196
 
#define sk_X509_POLICY_DATA_new_null() \
3197
 
  ((STACK_OF(X509_POLICY_DATA) *)sk_new_null())
3198
 
 
3199
 
#define sk_X509_POLICY_DATA_num(sk) \
3200
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))
3201
 
 
3202
 
#define sk_X509_POLICY_DATA_zero(sk) \
3203
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk));
3204
 
 
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)))
3208
 
 
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)))
3213
 
 
3214
 
#define sk_X509_POLICY_DATA_free(sk) \
3215
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))
3216
 
 
3217
 
#define sk_X509_POLICY_DATA_pop_free(sk, free_func)             \
3218
 
  sk_pop_free(                                                  \
3219
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk), \
3220
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_DATA *), free_func))
3221
 
 
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))
3225
 
 
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)))
3229
 
 
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)))
3234
 
 
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))
3238
 
 
3239
 
#define sk_X509_POLICY_DATA_shift(sk) \
3240
 
  ((X509_POLICY_DATA *)sk_shift(      \
3241
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)))
3242
 
 
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))
3246
 
 
3247
 
#define sk_X509_POLICY_DATA_pop(sk) \
3248
 
  ((X509_POLICY_DATA *)sk_pop(      \
3249
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk)))
3250
 
 
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)))
3254
 
 
3255
 
#define sk_X509_POLICY_DATA_sort(sk) \
3256
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_DATA) *, sk))
3257
 
 
3258
 
#define sk_X509_POLICY_DATA_is_sorted(sk) \
3259
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_DATA) *, sk))
3260
 
 
3261
 
#define sk_X509_POLICY_DATA_set_cmp_func(sk, comp)                           \
3262
 
  ((int (*)(const X509_POLICY_DATA **a, const X509_POLICY_DATA **b))         \
3263
 
       sk_set_cmp_func(                                                      \
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), \
3267
 
                        comp)))
3268
 
 
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 *),          \
3275
 
                   free_func)))
3276
 
 
3277
 
 
3278
 
/* X509_POLICY_NODE */
3279
 
#define sk_X509_POLICY_NODE_new(comp)                 \
3280
 
  ((STACK_OF(X509_POLICY_NODE) *)sk_new(CHECKED_CAST( \
3281
 
      stack_cmp_func,                                 \
3282
 
      int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b), comp)))
3283
 
 
3284
 
#define sk_X509_POLICY_NODE_new_null() \
3285
 
  ((STACK_OF(X509_POLICY_NODE) *)sk_new_null())
3286
 
 
3287
 
#define sk_X509_POLICY_NODE_num(sk) \
3288
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))
3289
 
 
3290
 
#define sk_X509_POLICY_NODE_zero(sk) \
3291
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk));
3292
 
 
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)))
3296
 
 
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)))
3301
 
 
3302
 
#define sk_X509_POLICY_NODE_free(sk) \
3303
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))
3304
 
 
3305
 
#define sk_X509_POLICY_NODE_pop_free(sk, free_func)             \
3306
 
  sk_pop_free(                                                  \
3307
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk), \
3308
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_POLICY_NODE *), free_func))
3309
 
 
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))
3313
 
 
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)))
3317
 
 
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)))
3322
 
 
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))
3326
 
 
3327
 
#define sk_X509_POLICY_NODE_shift(sk) \
3328
 
  ((X509_POLICY_NODE *)sk_shift(      \
3329
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)))
3330
 
 
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))
3334
 
 
3335
 
#define sk_X509_POLICY_NODE_pop(sk) \
3336
 
  ((X509_POLICY_NODE *)sk_pop(      \
3337
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk)))
3338
 
 
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)))
3342
 
 
3343
 
#define sk_X509_POLICY_NODE_sort(sk) \
3344
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_POLICY_NODE) *, sk))
3345
 
 
3346
 
#define sk_X509_POLICY_NODE_is_sorted(sk) \
3347
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_POLICY_NODE) *, sk))
3348
 
 
3349
 
#define sk_X509_POLICY_NODE_set_cmp_func(sk, comp)                           \
3350
 
  ((int (*)(const X509_POLICY_NODE **a, const X509_POLICY_NODE **b))         \
3351
 
       sk_set_cmp_func(                                                      \
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), \
3355
 
                        comp)))
3356
 
 
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 *),          \
3363
 
                   free_func)))
3364
 
 
3365
 
 
3366
 
/* X509_PURPOSE */
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), \
3370
 
      comp)))
3371
 
 
3372
 
#define sk_X509_PURPOSE_new_null() ((STACK_OF(X509_PURPOSE) *)sk_new_null())
3373
 
 
3374
 
#define sk_X509_PURPOSE_num(sk) \
3375
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))
3376
 
 
3377
 
#define sk_X509_PURPOSE_zero(sk) \
3378
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk));
3379
 
 
3380
 
#define sk_X509_PURPOSE_value(sk, i) \
3381
 
  ((X509_PURPOSE *)sk_value(         \
3382
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk), (i)))
3383
 
 
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)))
3388
 
 
3389
 
#define sk_X509_PURPOSE_free(sk) \
3390
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))
3391
 
 
3392
 
#define sk_X509_PURPOSE_pop_free(sk, free_func)             \
3393
 
  sk_pop_free(                                              \
3394
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), \
3395
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_PURPOSE *), free_func))
3396
 
 
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))
3400
 
 
3401
 
#define sk_X509_PURPOSE_delete(sk, where) \
3402
 
  ((X509_PURPOSE *)sk_delete(             \
3403
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk), (where)))
3404
 
 
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)))
3409
 
 
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))
3413
 
 
3414
 
#define sk_X509_PURPOSE_shift(sk) \
3415
 
  ((X509_PURPOSE *)sk_shift(      \
3416
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)))
3417
 
 
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))
3421
 
 
3422
 
#define sk_X509_PURPOSE_pop(sk) \
3423
 
  ((X509_PURPOSE *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk)))
3424
 
 
3425
 
#define sk_X509_PURPOSE_dup(sk)      \
3426
 
  ((STACK_OF(X509_PURPOSE) *)sk_dup( \
3427
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk)))
3428
 
 
3429
 
#define sk_X509_PURPOSE_sort(sk) \
3430
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_PURPOSE) *, sk))
3431
 
 
3432
 
#define sk_X509_PURPOSE_is_sorted(sk) \
3433
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_PURPOSE) *, sk))
3434
 
 
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),  \
3440
 
                   comp)))
3441
 
 
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 *), \
3446
 
                   copy_func),                                           \
3447
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_PURPOSE *), free_func)))
3448
 
 
3449
 
 
3450
 
/* X509_REVOKED */
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), \
3454
 
      comp)))
3455
 
 
3456
 
#define sk_X509_REVOKED_new_null() ((STACK_OF(X509_REVOKED) *)sk_new_null())
3457
 
 
3458
 
#define sk_X509_REVOKED_num(sk) \
3459
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))
3460
 
 
3461
 
#define sk_X509_REVOKED_zero(sk) \
3462
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk));
3463
 
 
3464
 
#define sk_X509_REVOKED_value(sk, i) \
3465
 
  ((X509_REVOKED *)sk_value(         \
3466
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk), (i)))
3467
 
 
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)))
3472
 
 
3473
 
#define sk_X509_REVOKED_free(sk) \
3474
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))
3475
 
 
3476
 
#define sk_X509_REVOKED_pop_free(sk, free_func)             \
3477
 
  sk_pop_free(                                              \
3478
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), \
3479
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_REVOKED *), free_func))
3480
 
 
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))
3484
 
 
3485
 
#define sk_X509_REVOKED_delete(sk, where) \
3486
 
  ((X509_REVOKED *)sk_delete(             \
3487
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk), (where)))
3488
 
 
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)))
3493
 
 
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))
3497
 
 
3498
 
#define sk_X509_REVOKED_shift(sk) \
3499
 
  ((X509_REVOKED *)sk_shift(      \
3500
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)))
3501
 
 
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))
3505
 
 
3506
 
#define sk_X509_REVOKED_pop(sk) \
3507
 
  ((X509_REVOKED *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk)))
3508
 
 
3509
 
#define sk_X509_REVOKED_dup(sk)      \
3510
 
  ((STACK_OF(X509_REVOKED) *)sk_dup( \
3511
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk)))
3512
 
 
3513
 
#define sk_X509_REVOKED_sort(sk) \
3514
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_REVOKED) *, sk))
3515
 
 
3516
 
#define sk_X509_REVOKED_is_sorted(sk) \
3517
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_REVOKED) *, sk))
3518
 
 
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),  \
3524
 
                   comp)))
3525
 
 
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 *), \
3530
 
                   copy_func),                                           \
3531
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_REVOKED *), free_func)))
3532
 
 
3533
 
 
3534
 
/* X509_TRUST */
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), \
3538
 
      comp)))
3539
 
 
3540
 
#define sk_X509_TRUST_new_null() ((STACK_OF(X509_TRUST) *)sk_new_null())
3541
 
 
3542
 
#define sk_X509_TRUST_num(sk) \
3543
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))
3544
 
 
3545
 
#define sk_X509_TRUST_zero(sk) \
3546
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk));
3547
 
 
3548
 
#define sk_X509_TRUST_value(sk, i) \
3549
 
  ((X509_TRUST *)sk_value(         \
3550
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk), (i)))
3551
 
 
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)))
3555
 
 
3556
 
#define sk_X509_TRUST_free(sk) \
3557
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))
3558
 
 
3559
 
#define sk_X509_TRUST_pop_free(sk, free_func)             \
3560
 
  sk_pop_free(                                            \
3561
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3562
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_TRUST *), free_func))
3563
 
 
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))
3567
 
 
3568
 
#define sk_X509_TRUST_delete(sk, where)                                        \
3569
 
  ((X509_TRUST *)sk_delete(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk), \
3570
 
                           (where)))
3571
 
 
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)))
3576
 
 
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))
3580
 
 
3581
 
#define sk_X509_TRUST_shift(sk) \
3582
 
  ((X509_TRUST *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)))
3583
 
 
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))
3587
 
 
3588
 
#define sk_X509_TRUST_pop(sk) \
3589
 
  ((X509_TRUST *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk)))
3590
 
 
3591
 
#define sk_X509_TRUST_dup(sk)      \
3592
 
  ((STACK_OF(X509_TRUST) *)sk_dup( \
3593
 
      CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk)))
3594
 
 
3595
 
#define sk_X509_TRUST_sort(sk) \
3596
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_TRUST) *, sk))
3597
 
 
3598
 
#define sk_X509_TRUST_is_sorted(sk) \
3599
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_TRUST) *, sk))
3600
 
 
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),  \
3606
 
                   comp)))
3607
 
 
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 *),  \
3612
 
                   copy_func),                                        \
3613
 
      CHECKED_CAST(void (*)(void *), void (*)(X509_TRUST *), free_func)))
3614
 
 
3615
 
 
3616
 
/* X509V3_EXT_METHOD */
3617
 
#define sk_X509V3_EXT_METHOD_new(comp)                                   \
3618
 
  ((STACK_OF(X509V3_EXT_METHOD) *)sk_new(CHECKED_CAST(                   \
3619
 
      stack_cmp_func,                                                    \
3620
 
      int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b), \
3621
 
      comp)))
3622
 
 
3623
 
#define sk_X509V3_EXT_METHOD_new_null() \
3624
 
  ((STACK_OF(X509V3_EXT_METHOD) *)sk_new_null())
3625
 
 
3626
 
#define sk_X509V3_EXT_METHOD_num(sk) \
3627
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))
3628
 
 
3629
 
#define sk_X509V3_EXT_METHOD_zero(sk) \
3630
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk));
3631
 
 
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)))
3635
 
 
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)))
3640
 
 
3641
 
#define sk_X509V3_EXT_METHOD_free(sk) \
3642
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))
3643
 
 
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 *), \
3647
 
                           free_func))
3648
 
 
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))
3652
 
 
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)))
3656
 
 
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)))
3661
 
 
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))
3665
 
 
3666
 
#define sk_X509V3_EXT_METHOD_shift(sk) \
3667
 
  ((X509V3_EXT_METHOD *)sk_shift(      \
3668
 
      CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)))
3669
 
 
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))
3673
 
 
3674
 
#define sk_X509V3_EXT_METHOD_pop(sk) \
3675
 
  ((X509V3_EXT_METHOD *)sk_pop(      \
3676
 
      CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk)))
3677
 
 
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)))
3681
 
 
3682
 
#define sk_X509V3_EXT_METHOD_sort(sk) \
3683
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509V3_EXT_METHOD) *, sk))
3684
 
 
3685
 
#define sk_X509V3_EXT_METHOD_is_sorted(sk) \
3686
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509V3_EXT_METHOD) *, sk))
3687
 
 
3688
 
#define sk_X509V3_EXT_METHOD_set_cmp_func(sk, comp)                           \
3689
 
  ((int (*)(const X509V3_EXT_METHOD **a, const X509V3_EXT_METHOD **b))        \
3690
 
       sk_set_cmp_func(                                                       \
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), \
3694
 
                        comp)))
3695
 
 
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 *),          \
3702
 
                   free_func)))
3703
 
 
3704
 
 
3705
 
/* X509_VERIFY_PARAM */
3706
 
#define sk_X509_VERIFY_PARAM_new(comp)                                   \
3707
 
  ((STACK_OF(X509_VERIFY_PARAM) *)sk_new(CHECKED_CAST(                   \
3708
 
      stack_cmp_func,                                                    \
3709
 
      int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b), \
3710
 
      comp)))
3711
 
 
3712
 
#define sk_X509_VERIFY_PARAM_new_null() \
3713
 
  ((STACK_OF(X509_VERIFY_PARAM) *)sk_new_null())
3714
 
 
3715
 
#define sk_X509_VERIFY_PARAM_num(sk) \
3716
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))
3717
 
 
3718
 
#define sk_X509_VERIFY_PARAM_zero(sk) \
3719
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk));
3720
 
 
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)))
3724
 
 
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)))
3729
 
 
3730
 
#define sk_X509_VERIFY_PARAM_free(sk) \
3731
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))
3732
 
 
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 *), \
3736
 
                           free_func))
3737
 
 
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))
3741
 
 
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)))
3745
 
 
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)))
3750
 
 
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))
3754
 
 
3755
 
#define sk_X509_VERIFY_PARAM_shift(sk) \
3756
 
  ((X509_VERIFY_PARAM *)sk_shift(      \
3757
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)))
3758
 
 
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))
3762
 
 
3763
 
#define sk_X509_VERIFY_PARAM_pop(sk) \
3764
 
  ((X509_VERIFY_PARAM *)sk_pop(      \
3765
 
      CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk)))
3766
 
 
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)))
3770
 
 
3771
 
#define sk_X509_VERIFY_PARAM_sort(sk) \
3772
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(X509_VERIFY_PARAM) *, sk))
3773
 
 
3774
 
#define sk_X509_VERIFY_PARAM_is_sorted(sk) \
3775
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(X509_VERIFY_PARAM) *, sk))
3776
 
 
3777
 
#define sk_X509_VERIFY_PARAM_set_cmp_func(sk, comp)                           \
3778
 
  ((int (*)(const X509_VERIFY_PARAM **a, const X509_VERIFY_PARAM **b))        \
3779
 
       sk_set_cmp_func(                                                       \
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), \
3783
 
                        comp)))
3784
 
 
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 *),          \
3791
 
                   free_func)))
3792
 
 
3793
 
 
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), \
3799
 
      comp)))
3800
 
 
3801
 
#define sk_SRTP_PROTECTION_PROFILE_new_null() \
3802
 
  ((STACK_OF(SRTP_PROTECTION_PROFILE) *)sk_new_null())
3803
 
 
3804
 
#define sk_SRTP_PROTECTION_PROFILE_num(sk) \
3805
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3806
 
 
3807
 
#define sk_SRTP_PROTECTION_PROFILE_zero(sk) \
3808
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk));
3809
 
 
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), \
3813
 
      (i)))
3814
 
 
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)))
3819
 
 
3820
 
#define sk_SRTP_PROTECTION_PROFILE_free(sk) \
3821
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3822
 
 
3823
 
#define sk_SRTP_PROTECTION_PROFILE_pop_free(sk, free_func)             \
3824
 
  sk_pop_free(                                                         \
3825
 
      CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3826
 
      CHECKED_CAST(void (*)(void *),                                   \
3827
 
                   void (*)(const SRTP_PROTECTION_PROFILE *), free_func))
3828
 
 
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))
3832
 
 
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), \
3836
 
      (where)))
3837
 
 
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)))
3842
 
 
3843
 
#define sk_SRTP_PROTECTION_PROFILE_find(sk, out_index, p)                  \
3844
 
  sk_find(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk), \
3845
 
          (out_index),                                                     \
3846
 
          CHECKED_CAST(void *, const SRTP_PROTECTION_PROFILE *, p))
3847
 
 
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)))
3851
 
 
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))
3855
 
 
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)))
3859
 
 
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)))
3863
 
 
3864
 
#define sk_SRTP_PROTECTION_PROFILE_sort(sk) \
3865
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3866
 
 
3867
 
#define sk_SRTP_PROTECTION_PROFILE_is_sorted(sk) \
3868
 
  sk_is_sorted(                                  \
3869
 
      CHECKED_CAST(_STACK *, const STACK_OF(SRTP_PROTECTION_PROFILE) *, sk))
3870
 
 
3871
 
#define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(sk, comp)                   \
3872
 
  ((int (*)(const SRTP_PROTECTION_PROFILE **a,                              \
3873
 
            const SRTP_PROTECTION_PROFILE **b))                             \
3874
 
       sk_set_cmp_func(                                                     \
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),         \
3879
 
                        comp)))
3880
 
 
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) *, \
3884
 
                   sk),                                                       \
3885
 
      CHECKED_CAST(void *(*)(void *), const SRTP_PROTECTION_PROFILE *(*)(     \
3886
 
                                          const SRTP_PROTECTION_PROFILE *),   \
3887
 
                   copy_func),                                                \
3888
 
      CHECKED_CAST(void (*)(void *),                                          \
3889
 
                   void (*)(const SRTP_PROTECTION_PROFILE *), free_func)))
3890
 
 
3891
 
 
3892
 
/* SSL_CIPHER */
3893
 
#define sk_SSL_CIPHER_new(comp)                 \
3894
 
  ((STACK_OF(SSL_CIPHER) *)sk_new(CHECKED_CAST( \
3895
 
      stack_cmp_func,                           \
3896
 
      int (*)(const const SSL_CIPHER **a, const const SSL_CIPHER **b), comp)))
3897
 
 
3898
 
#define sk_SSL_CIPHER_new_null() ((STACK_OF(SSL_CIPHER) *)sk_new_null())
3899
 
 
3900
 
#define sk_SSL_CIPHER_num(sk) \
3901
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))
3902
 
 
3903
 
#define sk_SSL_CIPHER_zero(sk) \
3904
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk));
3905
 
 
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)))
3909
 
 
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)))
3914
 
 
3915
 
#define sk_SSL_CIPHER_free(sk) \
3916
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))
3917
 
 
3918
 
#define sk_SSL_CIPHER_pop_free(sk, free_func)             \
3919
 
  sk_pop_free(                                            \
3920
 
      CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), \
3921
 
      CHECKED_CAST(void (*)(void *), void (*)(const SSL_CIPHER *), free_func))
3922
 
 
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))
3926
 
 
3927
 
#define sk_SSL_CIPHER_delete(sk, where) \
3928
 
  ((const SSL_CIPHER *)sk_delete(       \
3929
 
      CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk), (where)))
3930
 
 
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)))
3935
 
 
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))
3939
 
 
3940
 
#define sk_SSL_CIPHER_shift(sk)  \
3941
 
  ((const SSL_CIPHER *)sk_shift( \
3942
 
      CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)))
3943
 
 
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))
3947
 
 
3948
 
#define sk_SSL_CIPHER_pop(sk)  \
3949
 
  ((const SSL_CIPHER *)sk_pop( \
3950
 
      CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk)))
3951
 
 
3952
 
#define sk_SSL_CIPHER_dup(sk)      \
3953
 
  ((STACK_OF(SSL_CIPHER) *)sk_dup( \
3954
 
      CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk)))
3955
 
 
3956
 
#define sk_SSL_CIPHER_sort(sk) \
3957
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(SSL_CIPHER) *, sk))
3958
 
 
3959
 
#define sk_SSL_CIPHER_is_sorted(sk) \
3960
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(SSL_CIPHER) *, sk))
3961
 
 
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),  \
3967
 
                   comp)))
3968
 
 
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 *),        \
3975
 
                   free_func)))
3976
 
 
3977
 
 
3978
 
/* OPENSSL_STRING */
3979
 
#define sk_OPENSSL_STRING_new(comp)                 \
3980
 
  ((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_CAST( \
3981
 
      stack_cmp_func,                               \
3982
 
      int (*)(const OPENSSL_STRING *a, const OPENSSL_STRING *b), comp)))
3983
 
 
3984
 
#define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null())
3985
 
 
3986
 
#define sk_OPENSSL_STRING_num(sk) \
3987
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))
3988
 
 
3989
 
#define sk_OPENSSL_STRING_zero(sk) \
3990
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk));
3991
 
 
3992
 
#define sk_OPENSSL_STRING_value(sk, i) \
3993
 
  ((OPENSSL_STRING)sk_value(           \
3994
 
      CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk), (i)))
3995
 
 
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)))
4000
 
 
4001
 
#define sk_OPENSSL_STRING_free(sk) \
4002
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))
4003
 
 
4004
 
#define sk_OPENSSL_STRING_pop_free(sk, free_func)             \
4005
 
  sk_pop_free(                                                \
4006
 
      CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), \
4007
 
      CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_STRING), free_func))
4008
 
 
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))
4012
 
 
4013
 
#define sk_OPENSSL_STRING_delete(sk, where) \
4014
 
  ((OPENSSL_STRING)sk_delete(               \
4015
 
      CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk), (where)))
4016
 
 
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)))
4021
 
 
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))
4025
 
 
4026
 
#define sk_OPENSSL_STRING_shift(sk) \
4027
 
  ((OPENSSL_STRING)sk_shift(        \
4028
 
      CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)))
4029
 
 
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))
4033
 
 
4034
 
#define sk_OPENSSL_STRING_pop(sk) \
4035
 
  ((OPENSSL_STRING)sk_pop(        \
4036
 
      CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk)))
4037
 
 
4038
 
#define sk_OPENSSL_STRING_dup(sk)      \
4039
 
  ((STACK_OF(OPENSSL_STRING) *)sk_dup( \
4040
 
      CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk)))
4041
 
 
4042
 
#define sk_OPENSSL_STRING_sort(sk) \
4043
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_STRING) *, sk))
4044
 
 
4045
 
#define sk_OPENSSL_STRING_is_sorted(sk) \
4046
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_STRING) *, sk))
4047
 
 
4048
 
#define sk_OPENSSL_STRING_set_cmp_func(sk, comp)                           \
4049
 
  ((int (*)(const OPENSSL_STRING **a, const OPENSSL_STRING **b))           \
4050
 
       sk_set_cmp_func(                                                    \
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), \
4054
 
                        comp)))
4055
 
 
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), \
4060
 
                   copy_func),                                            \
4061
 
      CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_STRING), free_func)))
4062
 
 
4063
 
 
4064
 
/* OPENSSL_BLOCK */
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), \
4068
 
      comp)))
4069
 
 
4070
 
#define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null())
4071
 
 
4072
 
#define sk_OPENSSL_BLOCK_num(sk) \
4073
 
  sk_num(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))
4074
 
 
4075
 
#define sk_OPENSSL_BLOCK_zero(sk) \
4076
 
  sk_zero(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk));
4077
 
 
4078
 
#define sk_OPENSSL_BLOCK_value(sk, i) \
4079
 
  ((OPENSSL_BLOCK)sk_value(           \
4080
 
      CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk), (i)))
4081
 
 
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)))
4086
 
 
4087
 
#define sk_OPENSSL_BLOCK_free(sk) \
4088
 
  sk_free(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))
4089
 
 
4090
 
#define sk_OPENSSL_BLOCK_pop_free(sk, free_func)             \
4091
 
  sk_pop_free(                                               \
4092
 
      CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), \
4093
 
      CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_BLOCK), free_func))
4094
 
 
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))
4098
 
 
4099
 
#define sk_OPENSSL_BLOCK_delete(sk, where) \
4100
 
  ((OPENSSL_BLOCK)sk_delete(               \
4101
 
      CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk), (where)))
4102
 
 
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)))
4107
 
 
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))
4111
 
 
4112
 
#define sk_OPENSSL_BLOCK_shift(sk) \
4113
 
  ((OPENSSL_BLOCK)sk_shift(        \
4114
 
      CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)))
4115
 
 
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))
4119
 
 
4120
 
#define sk_OPENSSL_BLOCK_pop(sk) \
4121
 
  ((OPENSSL_BLOCK)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk)))
4122
 
 
4123
 
#define sk_OPENSSL_BLOCK_dup(sk)      \
4124
 
  ((STACK_OF(OPENSSL_BLOCK) *)sk_dup( \
4125
 
      CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk)))
4126
 
 
4127
 
#define sk_OPENSSL_BLOCK_sort(sk) \
4128
 
  sk_sort(CHECKED_CAST(_STACK *, STACK_OF(OPENSSL_BLOCK) *, sk))
4129
 
 
4130
 
#define sk_OPENSSL_BLOCK_is_sorted(sk) \
4131
 
  sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(OPENSSL_BLOCK) *, sk))
4132
 
 
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),  \
4138
 
                   comp)))
4139
 
 
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),  \
4144
 
                   copy_func),                                           \
4145
 
      CHECKED_CAST(void (*)(void *), void (*)(OPENSSL_BLOCK), free_func)))