Safe stack reorganisation in terms of function casts.
[openssl.git] / crypto / stack / safestack.h
1 /* ====================================================================
2  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer. 
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in
13  *    the documentation and/or other materials provided with the
14  *    distribution.
15  *
16  * 3. All advertising materials mentioning features or use of this
17  *    software must display the following acknowledgment:
18  *    "This product includes software developed by the OpenSSL Project
19  *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20  *
21  * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22  *    endorse or promote products derived from this software without
23  *    prior written permission. For written permission, please contact
24  *    openssl-core@openssl.org.
25  *
26  * 5. Products derived from this software may not be called "OpenSSL"
27  *    nor may "OpenSSL" appear in their names without prior written
28  *    permission of the OpenSSL Project.
29  *
30  * 6. Redistributions of any form whatsoever must retain the following
31  *    acknowledgment:
32  *    "This product includes software developed by the OpenSSL Project
33  *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34  *
35  * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36  * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
39  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46  * OF THE POSSIBILITY OF SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This product includes cryptographic software written by Eric Young
50  * (eay@cryptsoft.com).  This product includes software written by Tim
51  * Hudson (tjh@cryptsoft.com).
52  *
53  */
54
55 #ifndef HEADER_SAFESTACK_H
56 #define HEADER_SAFESTACK_H
57
58 #include <openssl/stack.h>
59
60 #ifdef DEBUG_SAFESTACK
61
62 #define STACK_OF(type) struct stack_st_##type
63 #define PREDECLARE_STACK_OF(type) STACK_OF(type);
64
65 #define DECLARE_STACK_OF(type) \
66 STACK_OF(type) \
67     { \
68     STACK stack; \
69     };
70
71 #define IMPLEMENT_STACK_OF(type) /* nada */
72
73 #define SKM_sk_new(type, a) \
74         ((STACK_OF(type) * (*)(int (*)(const type * const *, const type * const *)))sk_new)(a)
75 #define SKM_sk_new_null(type) \
76         ((STACK_OF(type) * (*)(void))sk_new_null)()
77 #define SKM_sk_free(type, a) \
78         ((void (*)(STACK_OF(type) *))sk_free)(a)
79 #define SKM_sk_num(type, a) \
80         ((int (*)(const STACK_OF(type) *))sk_num)(a)
81 #define SKM_sk_value(type, a, b) \
82         ((type * (*)(const STACK_OF(type) *, int))sk_value)(a, b)
83 #define SKM_sk_set(type, a, b, c) \
84         ((type * (*)(STACK_OF(type) *, int, type *))sk_set)(a,b,c)
85 #define SKM_sk_zero(type, a) \
86         ((void (*)(STACK_OF(type) *))sk_zero)(a)
87 #define SKM_sk_push(type, a, b) \
88         ((int (*)(STACK_OF(type) *, type *))sk_push)(a, b)
89 #define SKM_sk_unshift(type, a,b) \
90         ((int (*)(STACK_OF(type) *, type *))sk_unshift)(a, b)
91 #define SKM_sk_find(type, a, b) \
92         ((int (*)(STACK_OF(type) *, type *))sk_find)(a, b)
93 #define SKM_sk_delete(type, a,b) \
94         ((type * (*)(STACK_OF(type) *, int))sk_delete)(a, b)
95 #define SKM_sk_delete_ptr(type, a,b) \
96         ((type * (*)(STACK_OF(type) *, type *))sk_delete_ptr)(a, b)
97 #define SKM_sk_insert(type, a,b,c) \
98         ((int (*)(STACK_OF(type) *, type *, int))sk_insert)(a,b,c)
99 #define SKM_sk_set_cmp_func(type, a,b) \
100         ((int (*(*)(STACK_OF(type) *, int (*)(const type * const *, const type * const *))) \
101                                 (const type * const *, const type * const *))sk_set_cmp_func)(a, b)
102 #define SKM_sk_dup(type, a) \
103         ((STACK_OF(type) *(*)(STACK_OF(type) *))sk_dup)(a)
104 #define SKM_sk_pop_free(type, a,b) \
105         ((void (*)(STACK_OF(type) *, void (*)(type *)))sk_pop_free)(a, b)
106 #define SKM_sk_shift(type, a) \
107         ((type * (*)(STACK_OF(type) *))sk_shift)(a)
108 #define SKM_sk_pop(type, a) \
109         ((type * (*)(STACK_OF(type) *))sk_pop)(a)
110 #define SKM_sk_sort(type, a) \
111         ((void (*)(STACK_OF(type) *))sk_sort)(a)
112
113 #else
114
115 #define STACK_OF(type) STACK
116 #define PREDECLARE_STACK_OF(type) /* nada */
117 #define DECLARE_STACK_OF(type)    /* nada */
118 #define IMPLEMENT_STACK_OF(type)  /* nada */
119
120 #define SKM_sk_new(stype, a) sk_new((int (*) \
121         (const char * const *, const char * const *))(a))
122 #define SKM_sk_new_null(stype) sk_new_null()
123 #define SKM_sk_free(stype, a) sk_free(a)
124 #define SKM_sk_num(stype, a) sk_num(a)
125 #define SKM_sk_value(stype, a,b) ((stype *) \
126         sk_value((a),(b)))
127 #define SKM_sk_set(stype, a,b,c) ((stype *) \
128         sk_set((a),(b),(char *)(c)))
129 #define SKM_sk_zero(stype, a) sk_zero(a)
130 #define SKM_sk_push(stype, a,b) sk_push((a),(char *)(b))
131 #define SKM_sk_unshift(stype, a,b) sk_unshift((a),(b))
132 #define SKM_sk_find(stype, a,b) sk_find((a), (char *)(b))
133 #define SKM_sk_delete(stype, a,b) ((stype *) \
134         sk_delete((a),(b)))
135 #define SKM_sk_delete_ptr(stype, a,b) ((stype *) \
136         sk_delete_ptr((a),(char *)(b)))
137 #define SKM_sk_insert(stype, a,b,c) sk_insert((a),(char *)(b),(c))
138 #define SKM_sk_set_cmp_func(stype, a,b) ((int (*) \
139                 (const stype * const *,const stype * const *)) \
140                 sk_set_cmp_func((a),(int (*) \
141                 (const char * const *, const char * const *))(b)))
142 #define SKM_sk_dup(stype, a) sk_dup(a)
143 #define SKM_sk_pop_free(stype, a,b) sk_pop_free((a),(void (*)(void *))(b))
144 #define SKM_sk_shift(stype, a) ((stype *)sk_shift(a))
145 #define SKM_sk_pop(stype, a) ((stype *)sk_pop(a))
146 #define SKM_sk_sort(stype, a) sk_sort(a)
147
148 #endif
149
150 /* This block of defines is updated by a perl script, please do not touch! */
151         #define sk_CRYPTO_EX_DATA_FUNCS_new(a) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (a))
152         #define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS)
153         #define sk_CRYPTO_EX_DATA_FUNCS_free(a) SKM_sk_free(CRYPTO_EX_DATA_FUNCS, (a))
154         #define sk_CRYPTO_EX_DATA_FUNCS_num(a) SKM_sk_num(CRYPTO_EX_DATA_FUNCS, (a))
155         #define sk_CRYPTO_EX_DATA_FUNCS_value(a,b) SKM_sk_value(CRYPTO_EX_DATA_FUNCS, (a), (b))
156         #define sk_CRYPTO_EX_DATA_FUNCS_set(a,b,c) SKM_sk_set(CRYPTO_EX_DATA_FUNCS, (a), (b), (c))
157         #define sk_CRYPTO_EX_DATA_FUNCS_zero(a) SKM_sk_zero(CRYPTO_EX_DATA_FUNCS, (a))
158         #define sk_CRYPTO_EX_DATA_FUNCS_push(a,b) SKM_sk_push(CRYPTO_EX_DATA_FUNCS, (a),(b))
159         #define sk_CRYPTO_EX_DATA_FUNCS_unshift(a,b) SKM_sk_unshift(CRYPTO_EX_DATA_FUNCS, (a),(b))
160         #define sk_CRYPTO_EX_DATA_FUNCS_find(a,b) SKM_sk_find(CRYPTO_EX_DATA_FUNCS, (a), (b))
161         #define sk_CRYPTO_EX_DATA_FUNCS_delete(a,b) SKM_sk_delete(CRYPTO_EX_DATA_FUNCS, (a),(b))
162         #define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(a,b) SKM_sk_delete_ptr(CRYPTO_EX_DATA_FUNCS, (a),(b))
163         #define sk_CRYPTO_EX_DATA_FUNCS_insert(a,b,c) SKM_sk_insert(CRYPTO_EX_DATA_FUNCS, (a),(b),(c))
164         #define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(a,b) SKM_sk_set_cmp_func(CRYPTO_EX_DATA_FUNCS, (a),(b))
165         #define sk_CRYPTO_EX_DATA_FUNCS_dup(a) SKM_sk_dup(CRYPTO_EX_DATA_FUNCS, a)
166         #define sk_CRYPTO_EX_DATA_FUNCS_pop_free(a,b) SKM_sk_pop_free(CRYPTO_EX_DATA_FUNCS, (a),(b))
167         #define sk_CRYPTO_EX_DATA_FUNCS_shift(a) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (a))
168         #define sk_CRYPTO_EX_DATA_FUNCS_pop(a) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (a))
169         #define sk_CRYPTO_EX_DATA_FUNCS_sort(a) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (a))
170
171         #define sk_ASN1_STRING_TABLE_new(a) SKM_sk_new(ASN1_STRING_TABLE, (a))
172         #define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE)
173         #define sk_ASN1_STRING_TABLE_free(a) SKM_sk_free(ASN1_STRING_TABLE, (a))
174         #define sk_ASN1_STRING_TABLE_num(a) SKM_sk_num(ASN1_STRING_TABLE, (a))
175         #define sk_ASN1_STRING_TABLE_value(a,b) SKM_sk_value(ASN1_STRING_TABLE, (a), (b))
176         #define sk_ASN1_STRING_TABLE_set(a,b,c) SKM_sk_set(ASN1_STRING_TABLE, (a), (b), (c))
177         #define sk_ASN1_STRING_TABLE_zero(a) SKM_sk_zero(ASN1_STRING_TABLE, (a))
178         #define sk_ASN1_STRING_TABLE_push(a,b) SKM_sk_push(ASN1_STRING_TABLE, (a),(b))
179         #define sk_ASN1_STRING_TABLE_unshift(a,b) SKM_sk_unshift(ASN1_STRING_TABLE, (a),(b))
180         #define sk_ASN1_STRING_TABLE_find(a,b) SKM_sk_find(ASN1_STRING_TABLE, (a), (b))
181         #define sk_ASN1_STRING_TABLE_delete(a,b) SKM_sk_delete(ASN1_STRING_TABLE, (a),(b))
182         #define sk_ASN1_STRING_TABLE_delete_ptr(a,b) SKM_sk_delete_ptr(ASN1_STRING_TABLE, (a),(b))
183         #define sk_ASN1_STRING_TABLE_insert(a,b,c) SKM_sk_insert(ASN1_STRING_TABLE, (a),(b),(c))
184         #define sk_ASN1_STRING_TABLE_set_cmp_func(a,b) SKM_sk_set_cmp_func(ASN1_STRING_TABLE, (a),(b))
185         #define sk_ASN1_STRING_TABLE_dup(a) SKM_sk_dup(ASN1_STRING_TABLE, a)
186         #define sk_ASN1_STRING_TABLE_pop_free(a,b) SKM_sk_pop_free(ASN1_STRING_TABLE, (a),(b))
187         #define sk_ASN1_STRING_TABLE_shift(a) SKM_sk_shift(ASN1_STRING_TABLE, (a))
188         #define sk_ASN1_STRING_TABLE_pop(a) SKM_sk_pop(ASN1_STRING_TABLE, (a))
189         #define sk_ASN1_STRING_TABLE_sort(a) SKM_sk_sort(ASN1_STRING_TABLE, (a))
190
191         #define sk_ASN1_INTEGER_new(a) SKM_sk_new(ASN1_INTEGER, (a))
192         #define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER)
193         #define sk_ASN1_INTEGER_free(a) SKM_sk_free(ASN1_INTEGER, (a))
194         #define sk_ASN1_INTEGER_num(a) SKM_sk_num(ASN1_INTEGER, (a))
195         #define sk_ASN1_INTEGER_value(a,b) SKM_sk_value(ASN1_INTEGER, (a), (b))
196         #define sk_ASN1_INTEGER_set(a,b,c) SKM_sk_set(ASN1_INTEGER, (a), (b), (c))
197         #define sk_ASN1_INTEGER_zero(a) SKM_sk_zero(ASN1_INTEGER, (a))
198         #define sk_ASN1_INTEGER_push(a,b) SKM_sk_push(ASN1_INTEGER, (a),(b))
199         #define sk_ASN1_INTEGER_unshift(a,b) SKM_sk_unshift(ASN1_INTEGER, (a),(b))
200         #define sk_ASN1_INTEGER_find(a,b) SKM_sk_find(ASN1_INTEGER, (a), (b))
201         #define sk_ASN1_INTEGER_delete(a,b) SKM_sk_delete(ASN1_INTEGER, (a),(b))
202         #define sk_ASN1_INTEGER_delete_ptr(a,b) SKM_sk_delete_ptr(ASN1_INTEGER, (a),(b))
203         #define sk_ASN1_INTEGER_insert(a,b,c) SKM_sk_insert(ASN1_INTEGER, (a),(b),(c))
204         #define sk_ASN1_INTEGER_set_cmp_func(a,b) SKM_sk_set_cmp_func(ASN1_INTEGER, (a),(b))
205         #define sk_ASN1_INTEGER_dup(a) SKM_sk_dup(ASN1_INTEGER, a)
206         #define sk_ASN1_INTEGER_pop_free(a,b) SKM_sk_pop_free(ASN1_INTEGER, (a),(b))
207         #define sk_ASN1_INTEGER_shift(a) SKM_sk_shift(ASN1_INTEGER, (a))
208         #define sk_ASN1_INTEGER_pop(a) SKM_sk_pop(ASN1_INTEGER, (a))
209         #define sk_ASN1_INTEGER_sort(a) SKM_sk_sort(ASN1_INTEGER, (a))
210
211         #define sk_ASN1_TYPE_new(a) SKM_sk_new(ASN1_TYPE, (a))
212         #define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE)
213         #define sk_ASN1_TYPE_free(a) SKM_sk_free(ASN1_TYPE, (a))
214         #define sk_ASN1_TYPE_num(a) SKM_sk_num(ASN1_TYPE, (a))
215         #define sk_ASN1_TYPE_value(a,b) SKM_sk_value(ASN1_TYPE, (a), (b))
216         #define sk_ASN1_TYPE_set(a,b,c) SKM_sk_set(ASN1_TYPE, (a), (b), (c))
217         #define sk_ASN1_TYPE_zero(a) SKM_sk_zero(ASN1_TYPE, (a))
218         #define sk_ASN1_TYPE_push(a,b) SKM_sk_push(ASN1_TYPE, (a),(b))
219         #define sk_ASN1_TYPE_unshift(a,b) SKM_sk_unshift(ASN1_TYPE, (a),(b))
220         #define sk_ASN1_TYPE_find(a,b) SKM_sk_find(ASN1_TYPE, (a), (b))
221         #define sk_ASN1_TYPE_delete(a,b) SKM_sk_delete(ASN1_TYPE, (a),(b))
222         #define sk_ASN1_TYPE_delete_ptr(a,b) SKM_sk_delete_ptr(ASN1_TYPE, (a),(b))
223         #define sk_ASN1_TYPE_insert(a,b,c) SKM_sk_insert(ASN1_TYPE, (a),(b),(c))
224         #define sk_ASN1_TYPE_set_cmp_func(a,b) SKM_sk_set_cmp_func(ASN1_TYPE, (a),(b))
225         #define sk_ASN1_TYPE_dup(a) SKM_sk_dup(ASN1_TYPE, a)
226         #define sk_ASN1_TYPE_pop_free(a,b) SKM_sk_pop_free(ASN1_TYPE, (a),(b))
227         #define sk_ASN1_TYPE_shift(a) SKM_sk_shift(ASN1_TYPE, (a))
228         #define sk_ASN1_TYPE_pop(a) SKM_sk_pop(ASN1_TYPE, (a))
229         #define sk_ASN1_TYPE_sort(a) SKM_sk_sort(ASN1_TYPE, (a))
230
231         #define sk_ASN1_OBJECT_new(a) SKM_sk_new(ASN1_OBJECT, (a))
232         #define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT)
233         #define sk_ASN1_OBJECT_free(a) SKM_sk_free(ASN1_OBJECT, (a))
234         #define sk_ASN1_OBJECT_num(a) SKM_sk_num(ASN1_OBJECT, (a))
235         #define sk_ASN1_OBJECT_value(a,b) SKM_sk_value(ASN1_OBJECT, (a), (b))
236         #define sk_ASN1_OBJECT_set(a,b,c) SKM_sk_set(ASN1_OBJECT, (a), (b), (c))
237         #define sk_ASN1_OBJECT_zero(a) SKM_sk_zero(ASN1_OBJECT, (a))
238         #define sk_ASN1_OBJECT_push(a,b) SKM_sk_push(ASN1_OBJECT, (a),(b))
239         #define sk_ASN1_OBJECT_unshift(a,b) SKM_sk_unshift(ASN1_OBJECT, (a),(b))
240         #define sk_ASN1_OBJECT_find(a,b) SKM_sk_find(ASN1_OBJECT, (a), (b))
241         #define sk_ASN1_OBJECT_delete(a,b) SKM_sk_delete(ASN1_OBJECT, (a),(b))
242         #define sk_ASN1_OBJECT_delete_ptr(a,b) SKM_sk_delete_ptr(ASN1_OBJECT, (a),(b))
243         #define sk_ASN1_OBJECT_insert(a,b,c) SKM_sk_insert(ASN1_OBJECT, (a),(b),(c))
244         #define sk_ASN1_OBJECT_set_cmp_func(a,b) SKM_sk_set_cmp_func(ASN1_OBJECT, (a),(b))
245         #define sk_ASN1_OBJECT_dup(a) SKM_sk_dup(ASN1_OBJECT, a)
246         #define sk_ASN1_OBJECT_pop_free(a,b) SKM_sk_pop_free(ASN1_OBJECT, (a),(b))
247         #define sk_ASN1_OBJECT_shift(a) SKM_sk_shift(ASN1_OBJECT, (a))
248         #define sk_ASN1_OBJECT_pop(a) SKM_sk_pop(ASN1_OBJECT, (a))
249         #define sk_ASN1_OBJECT_sort(a) SKM_sk_sort(ASN1_OBJECT, (a))
250
251         #define sk_BIO_new(a) SKM_sk_new(BIO, (a))
252         #define sk_BIO_new_null() SKM_sk_new_null(BIO)
253         #define sk_BIO_free(a) SKM_sk_free(BIO, (a))
254         #define sk_BIO_num(a) SKM_sk_num(BIO, (a))
255         #define sk_BIO_value(a,b) SKM_sk_value(BIO, (a), (b))
256         #define sk_BIO_set(a,b,c) SKM_sk_set(BIO, (a), (b), (c))
257         #define sk_BIO_zero(a) SKM_sk_zero(BIO, (a))
258         #define sk_BIO_push(a,b) SKM_sk_push(BIO, (a),(b))
259         #define sk_BIO_unshift(a,b) SKM_sk_unshift(BIO, (a),(b))
260         #define sk_BIO_find(a,b) SKM_sk_find(BIO, (a), (b))
261         #define sk_BIO_delete(a,b) SKM_sk_delete(BIO, (a),(b))
262         #define sk_BIO_delete_ptr(a,b) SKM_sk_delete_ptr(BIO, (a),(b))
263         #define sk_BIO_insert(a,b,c) SKM_sk_insert(BIO, (a),(b),(c))
264         #define sk_BIO_set_cmp_func(a,b) SKM_sk_set_cmp_func(BIO, (a),(b))
265         #define sk_BIO_dup(a) SKM_sk_dup(BIO, a)
266         #define sk_BIO_pop_free(a,b) SKM_sk_pop_free(BIO, (a),(b))
267         #define sk_BIO_shift(a) SKM_sk_shift(BIO, (a))
268         #define sk_BIO_pop(a) SKM_sk_pop(BIO, (a))
269         #define sk_BIO_sort(a) SKM_sk_sort(BIO, (a))
270
271         #define sk_CONF_VALUE_new(a) SKM_sk_new(CONF_VALUE, (a))
272         #define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE)
273         #define sk_CONF_VALUE_free(a) SKM_sk_free(CONF_VALUE, (a))
274         #define sk_CONF_VALUE_num(a) SKM_sk_num(CONF_VALUE, (a))
275         #define sk_CONF_VALUE_value(a,b) SKM_sk_value(CONF_VALUE, (a), (b))
276         #define sk_CONF_VALUE_set(a,b,c) SKM_sk_set(CONF_VALUE, (a), (b), (c))
277         #define sk_CONF_VALUE_zero(a) SKM_sk_zero(CONF_VALUE, (a))
278         #define sk_CONF_VALUE_push(a,b) SKM_sk_push(CONF_VALUE, (a),(b))
279         #define sk_CONF_VALUE_unshift(a,b) SKM_sk_unshift(CONF_VALUE, (a),(b))
280         #define sk_CONF_VALUE_find(a,b) SKM_sk_find(CONF_VALUE, (a), (b))
281         #define sk_CONF_VALUE_delete(a,b) SKM_sk_delete(CONF_VALUE, (a),(b))
282         #define sk_CONF_VALUE_delete_ptr(a,b) SKM_sk_delete_ptr(CONF_VALUE, (a),(b))
283         #define sk_CONF_VALUE_insert(a,b,c) SKM_sk_insert(CONF_VALUE, (a),(b),(c))
284         #define sk_CONF_VALUE_set_cmp_func(a,b) SKM_sk_set_cmp_func(CONF_VALUE, (a),(b))
285         #define sk_CONF_VALUE_dup(a) SKM_sk_dup(CONF_VALUE, a)
286         #define sk_CONF_VALUE_pop_free(a,b) SKM_sk_pop_free(CONF_VALUE, (a),(b))
287         #define sk_CONF_VALUE_shift(a) SKM_sk_shift(CONF_VALUE, (a))
288         #define sk_CONF_VALUE_pop(a) SKM_sk_pop(CONF_VALUE, (a))
289         #define sk_CONF_VALUE_sort(a) SKM_sk_sort(CONF_VALUE, (a))
290
291         #define sk_NAME_FUNCS_new(a) SKM_sk_new(NAME_FUNCS, (a))
292         #define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS)
293         #define sk_NAME_FUNCS_free(a) SKM_sk_free(NAME_FUNCS, (a))
294         #define sk_NAME_FUNCS_num(a) SKM_sk_num(NAME_FUNCS, (a))
295         #define sk_NAME_FUNCS_value(a,b) SKM_sk_value(NAME_FUNCS, (a), (b))
296         #define sk_NAME_FUNCS_set(a,b,c) SKM_sk_set(NAME_FUNCS, (a), (b), (c))
297         #define sk_NAME_FUNCS_zero(a) SKM_sk_zero(NAME_FUNCS, (a))
298         #define sk_NAME_FUNCS_push(a,b) SKM_sk_push(NAME_FUNCS, (a),(b))
299         #define sk_NAME_FUNCS_unshift(a,b) SKM_sk_unshift(NAME_FUNCS, (a),(b))
300         #define sk_NAME_FUNCS_find(a,b) SKM_sk_find(NAME_FUNCS, (a), (b))
301         #define sk_NAME_FUNCS_delete(a,b) SKM_sk_delete(NAME_FUNCS, (a),(b))
302         #define sk_NAME_FUNCS_delete_ptr(a,b) SKM_sk_delete_ptr(NAME_FUNCS, (a),(b))
303         #define sk_NAME_FUNCS_insert(a,b,c) SKM_sk_insert(NAME_FUNCS, (a),(b),(c))
304         #define sk_NAME_FUNCS_set_cmp_func(a,b) SKM_sk_set_cmp_func(NAME_FUNCS, (a),(b))
305         #define sk_NAME_FUNCS_dup(a) SKM_sk_dup(NAME_FUNCS, a)
306         #define sk_NAME_FUNCS_pop_free(a,b) SKM_sk_pop_free(NAME_FUNCS, (a),(b))
307         #define sk_NAME_FUNCS_shift(a) SKM_sk_shift(NAME_FUNCS, (a))
308         #define sk_NAME_FUNCS_pop(a) SKM_sk_pop(NAME_FUNCS, (a))
309         #define sk_NAME_FUNCS_sort(a) SKM_sk_sort(NAME_FUNCS, (a))
310
311         #define sk_PKCS12_SAFEBAG_new(a) SKM_sk_new(PKCS12_SAFEBAG, (a))
312         #define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG)
313         #define sk_PKCS12_SAFEBAG_free(a) SKM_sk_free(PKCS12_SAFEBAG, (a))
314         #define sk_PKCS12_SAFEBAG_num(a) SKM_sk_num(PKCS12_SAFEBAG, (a))
315         #define sk_PKCS12_SAFEBAG_value(a,b) SKM_sk_value(PKCS12_SAFEBAG, (a), (b))
316         #define sk_PKCS12_SAFEBAG_set(a,b,c) SKM_sk_set(PKCS12_SAFEBAG, (a), (b), (c))
317         #define sk_PKCS12_SAFEBAG_zero(a) SKM_sk_zero(PKCS12_SAFEBAG, (a))
318         #define sk_PKCS12_SAFEBAG_push(a,b) SKM_sk_push(PKCS12_SAFEBAG, (a),(b))
319         #define sk_PKCS12_SAFEBAG_unshift(a,b) SKM_sk_unshift(PKCS12_SAFEBAG, (a),(b))
320         #define sk_PKCS12_SAFEBAG_find(a,b) SKM_sk_find(PKCS12_SAFEBAG, (a), (b))
321         #define sk_PKCS12_SAFEBAG_delete(a,b) SKM_sk_delete(PKCS12_SAFEBAG, (a),(b))
322         #define sk_PKCS12_SAFEBAG_delete_ptr(a,b) SKM_sk_delete_ptr(PKCS12_SAFEBAG, (a),(b))
323         #define sk_PKCS12_SAFEBAG_insert(a,b,c) SKM_sk_insert(PKCS12_SAFEBAG, (a),(b),(c))
324         #define sk_PKCS12_SAFEBAG_set_cmp_func(a,b) SKM_sk_set_cmp_func(PKCS12_SAFEBAG, (a),(b))
325         #define sk_PKCS12_SAFEBAG_dup(a) SKM_sk_dup(PKCS12_SAFEBAG, a)
326         #define sk_PKCS12_SAFEBAG_pop_free(a,b) SKM_sk_pop_free(PKCS12_SAFEBAG, (a),(b))
327         #define sk_PKCS12_SAFEBAG_shift(a) SKM_sk_shift(PKCS12_SAFEBAG, (a))
328         #define sk_PKCS12_SAFEBAG_pop(a) SKM_sk_pop(PKCS12_SAFEBAG, (a))
329         #define sk_PKCS12_SAFEBAG_sort(a) SKM_sk_sort(PKCS12_SAFEBAG, (a))
330
331         #define sk_MIME_PARAM_new(a) SKM_sk_new(MIME_PARAM, (a))
332         #define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM)
333         #define sk_MIME_PARAM_free(a) SKM_sk_free(MIME_PARAM, (a))
334         #define sk_MIME_PARAM_num(a) SKM_sk_num(MIME_PARAM, (a))
335         #define sk_MIME_PARAM_value(a,b) SKM_sk_value(MIME_PARAM, (a), (b))
336         #define sk_MIME_PARAM_set(a,b,c) SKM_sk_set(MIME_PARAM, (a), (b), (c))
337         #define sk_MIME_PARAM_zero(a) SKM_sk_zero(MIME_PARAM, (a))
338         #define sk_MIME_PARAM_push(a,b) SKM_sk_push(MIME_PARAM, (a),(b))
339         #define sk_MIME_PARAM_unshift(a,b) SKM_sk_unshift(MIME_PARAM, (a),(b))
340         #define sk_MIME_PARAM_find(a,b) SKM_sk_find(MIME_PARAM, (a), (b))
341         #define sk_MIME_PARAM_delete(a,b) SKM_sk_delete(MIME_PARAM, (a),(b))
342         #define sk_MIME_PARAM_delete_ptr(a,b) SKM_sk_delete_ptr(MIME_PARAM, (a),(b))
343         #define sk_MIME_PARAM_insert(a,b,c) SKM_sk_insert(MIME_PARAM, (a),(b),(c))
344         #define sk_MIME_PARAM_set_cmp_func(a,b) SKM_sk_set_cmp_func(MIME_PARAM, (a),(b))
345         #define sk_MIME_PARAM_dup(a) SKM_sk_dup(MIME_PARAM, a)
346         #define sk_MIME_PARAM_pop_free(a,b) SKM_sk_pop_free(MIME_PARAM, (a),(b))
347         #define sk_MIME_PARAM_shift(a) SKM_sk_shift(MIME_PARAM, (a))
348         #define sk_MIME_PARAM_pop(a) SKM_sk_pop(MIME_PARAM, (a))
349         #define sk_MIME_PARAM_sort(a) SKM_sk_sort(MIME_PARAM, (a))
350
351         #define sk_MIME_HEADER_new(a) SKM_sk_new(MIME_HEADER, (a))
352         #define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER)
353         #define sk_MIME_HEADER_free(a) SKM_sk_free(MIME_HEADER, (a))
354         #define sk_MIME_HEADER_num(a) SKM_sk_num(MIME_HEADER, (a))
355         #define sk_MIME_HEADER_value(a,b) SKM_sk_value(MIME_HEADER, (a), (b))
356         #define sk_MIME_HEADER_set(a,b,c) SKM_sk_set(MIME_HEADER, (a), (b), (c))
357         #define sk_MIME_HEADER_zero(a) SKM_sk_zero(MIME_HEADER, (a))
358         #define sk_MIME_HEADER_push(a,b) SKM_sk_push(MIME_HEADER, (a),(b))
359         #define sk_MIME_HEADER_unshift(a,b) SKM_sk_unshift(MIME_HEADER, (a),(b))
360         #define sk_MIME_HEADER_find(a,b) SKM_sk_find(MIME_HEADER, (a), (b))
361         #define sk_MIME_HEADER_delete(a,b) SKM_sk_delete(MIME_HEADER, (a),(b))
362         #define sk_MIME_HEADER_delete_ptr(a,b) SKM_sk_delete_ptr(MIME_HEADER, (a),(b))
363         #define sk_MIME_HEADER_insert(a,b,c) SKM_sk_insert(MIME_HEADER, (a),(b),(c))
364         #define sk_MIME_HEADER_set_cmp_func(a,b) SKM_sk_set_cmp_func(MIME_HEADER, (a),(b))
365         #define sk_MIME_HEADER_dup(a) SKM_sk_dup(MIME_HEADER, a)
366         #define sk_MIME_HEADER_pop_free(a,b) SKM_sk_pop_free(MIME_HEADER, (a),(b))
367         #define sk_MIME_HEADER_shift(a) SKM_sk_shift(MIME_HEADER, (a))
368         #define sk_MIME_HEADER_pop(a) SKM_sk_pop(MIME_HEADER, (a))
369         #define sk_MIME_HEADER_sort(a) SKM_sk_sort(MIME_HEADER, (a))
370
371         #define sk_PKCS7_SIGNER_INFO_new(a) SKM_sk_new(PKCS7_SIGNER_INFO, (a))
372         #define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO)
373         #define sk_PKCS7_SIGNER_INFO_free(a) SKM_sk_free(PKCS7_SIGNER_INFO, (a))
374         #define sk_PKCS7_SIGNER_INFO_num(a) SKM_sk_num(PKCS7_SIGNER_INFO, (a))
375         #define sk_PKCS7_SIGNER_INFO_value(a,b) SKM_sk_value(PKCS7_SIGNER_INFO, (a), (b))
376         #define sk_PKCS7_SIGNER_INFO_set(a,b,c) SKM_sk_set(PKCS7_SIGNER_INFO, (a), (b), (c))
377         #define sk_PKCS7_SIGNER_INFO_zero(a) SKM_sk_zero(PKCS7_SIGNER_INFO, (a))
378         #define sk_PKCS7_SIGNER_INFO_push(a,b) SKM_sk_push(PKCS7_SIGNER_INFO, (a),(b))
379         #define sk_PKCS7_SIGNER_INFO_unshift(a,b) SKM_sk_unshift(PKCS7_SIGNER_INFO, (a),(b))
380         #define sk_PKCS7_SIGNER_INFO_find(a,b) SKM_sk_find(PKCS7_SIGNER_INFO, (a), (b))
381         #define sk_PKCS7_SIGNER_INFO_delete(a,b) SKM_sk_delete(PKCS7_SIGNER_INFO, (a),(b))
382         #define sk_PKCS7_SIGNER_INFO_delete_ptr(a,b) SKM_sk_delete_ptr(PKCS7_SIGNER_INFO, (a),(b))
383         #define sk_PKCS7_SIGNER_INFO_insert(a,b,c) SKM_sk_insert(PKCS7_SIGNER_INFO, (a),(b),(c))
384         #define sk_PKCS7_SIGNER_INFO_set_cmp_func(a,b) SKM_sk_set_cmp_func(PKCS7_SIGNER_INFO, (a),(b))
385         #define sk_PKCS7_SIGNER_INFO_dup(a) SKM_sk_dup(PKCS7_SIGNER_INFO, a)
386         #define sk_PKCS7_SIGNER_INFO_pop_free(a,b) SKM_sk_pop_free(PKCS7_SIGNER_INFO, (a),(b))
387         #define sk_PKCS7_SIGNER_INFO_shift(a) SKM_sk_shift(PKCS7_SIGNER_INFO, (a))
388         #define sk_PKCS7_SIGNER_INFO_pop(a) SKM_sk_pop(PKCS7_SIGNER_INFO, (a))
389         #define sk_PKCS7_SIGNER_INFO_sort(a) SKM_sk_sort(PKCS7_SIGNER_INFO, (a))
390
391         #define sk_PKCS7_RECIP_INFO_new(a) SKM_sk_new(PKCS7_RECIP_INFO, (a))
392         #define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO)
393         #define sk_PKCS7_RECIP_INFO_free(a) SKM_sk_free(PKCS7_RECIP_INFO, (a))
394         #define sk_PKCS7_RECIP_INFO_num(a) SKM_sk_num(PKCS7_RECIP_INFO, (a))
395         #define sk_PKCS7_RECIP_INFO_value(a,b) SKM_sk_value(PKCS7_RECIP_INFO, (a), (b))
396         #define sk_PKCS7_RECIP_INFO_set(a,b,c) SKM_sk_set(PKCS7_RECIP_INFO, (a), (b), (c))
397         #define sk_PKCS7_RECIP_INFO_zero(a) SKM_sk_zero(PKCS7_RECIP_INFO, (a))
398         #define sk_PKCS7_RECIP_INFO_push(a,b) SKM_sk_push(PKCS7_RECIP_INFO, (a),(b))
399         #define sk_PKCS7_RECIP_INFO_unshift(a,b) SKM_sk_unshift(PKCS7_RECIP_INFO, (a),(b))
400         #define sk_PKCS7_RECIP_INFO_find(a,b) SKM_sk_find(PKCS7_RECIP_INFO, (a), (b))
401         #define sk_PKCS7_RECIP_INFO_delete(a,b) SKM_sk_delete(PKCS7_RECIP_INFO, (a),(b))
402         #define sk_PKCS7_RECIP_INFO_delete_ptr(a,b) SKM_sk_delete_ptr(PKCS7_RECIP_INFO, (a),(b))
403         #define sk_PKCS7_RECIP_INFO_insert(a,b,c) SKM_sk_insert(PKCS7_RECIP_INFO, (a),(b),(c))
404         #define sk_PKCS7_RECIP_INFO_set_cmp_func(a,b) SKM_sk_set_cmp_func(PKCS7_RECIP_INFO, (a),(b))
405         #define sk_PKCS7_RECIP_INFO_dup(a) SKM_sk_dup(PKCS7_RECIP_INFO, a)
406         #define sk_PKCS7_RECIP_INFO_pop_free(a,b) SKM_sk_pop_free(PKCS7_RECIP_INFO, (a),(b))
407         #define sk_PKCS7_RECIP_INFO_shift(a) SKM_sk_shift(PKCS7_RECIP_INFO, (a))
408         #define sk_PKCS7_RECIP_INFO_pop(a) SKM_sk_pop(PKCS7_RECIP_INFO, (a))
409         #define sk_PKCS7_RECIP_INFO_sort(a) SKM_sk_sort(PKCS7_RECIP_INFO, (a))
410
411         #define sk_PKCS7_new(a) SKM_sk_new(PKCS7, (a))
412         #define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7)
413         #define sk_PKCS7_free(a) SKM_sk_free(PKCS7, (a))
414         #define sk_PKCS7_num(a) SKM_sk_num(PKCS7, (a))
415         #define sk_PKCS7_value(a,b) SKM_sk_value(PKCS7, (a), (b))
416         #define sk_PKCS7_set(a,b,c) SKM_sk_set(PKCS7, (a), (b), (c))
417         #define sk_PKCS7_zero(a) SKM_sk_zero(PKCS7, (a))
418         #define sk_PKCS7_push(a,b) SKM_sk_push(PKCS7, (a),(b))
419         #define sk_PKCS7_unshift(a,b) SKM_sk_unshift(PKCS7, (a),(b))
420         #define sk_PKCS7_find(a,b) SKM_sk_find(PKCS7, (a), (b))
421         #define sk_PKCS7_delete(a,b) SKM_sk_delete(PKCS7, (a),(b))
422         #define sk_PKCS7_delete_ptr(a,b) SKM_sk_delete_ptr(PKCS7, (a),(b))
423         #define sk_PKCS7_insert(a,b,c) SKM_sk_insert(PKCS7, (a),(b),(c))
424         #define sk_PKCS7_set_cmp_func(a,b) SKM_sk_set_cmp_func(PKCS7, (a),(b))
425         #define sk_PKCS7_dup(a) SKM_sk_dup(PKCS7, a)
426         #define sk_PKCS7_pop_free(a,b) SKM_sk_pop_free(PKCS7, (a),(b))
427         #define sk_PKCS7_shift(a) SKM_sk_shift(PKCS7, (a))
428         #define sk_PKCS7_pop(a) SKM_sk_pop(PKCS7, (a))
429         #define sk_PKCS7_sort(a) SKM_sk_sort(PKCS7, (a))
430
431         #define sk_X509_ALGOR_new(a) SKM_sk_new(X509_ALGOR, (a))
432         #define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR)
433         #define sk_X509_ALGOR_free(a) SKM_sk_free(X509_ALGOR, (a))
434         #define sk_X509_ALGOR_num(a) SKM_sk_num(X509_ALGOR, (a))
435         #define sk_X509_ALGOR_value(a,b) SKM_sk_value(X509_ALGOR, (a), (b))
436         #define sk_X509_ALGOR_set(a,b,c) SKM_sk_set(X509_ALGOR, (a), (b), (c))
437         #define sk_X509_ALGOR_zero(a) SKM_sk_zero(X509_ALGOR, (a))
438         #define sk_X509_ALGOR_push(a,b) SKM_sk_push(X509_ALGOR, (a),(b))
439         #define sk_X509_ALGOR_unshift(a,b) SKM_sk_unshift(X509_ALGOR, (a),(b))
440         #define sk_X509_ALGOR_find(a,b) SKM_sk_find(X509_ALGOR, (a), (b))
441         #define sk_X509_ALGOR_delete(a,b) SKM_sk_delete(X509_ALGOR, (a),(b))
442         #define sk_X509_ALGOR_delete_ptr(a,b) SKM_sk_delete_ptr(X509_ALGOR, (a),(b))
443         #define sk_X509_ALGOR_insert(a,b,c) SKM_sk_insert(X509_ALGOR, (a),(b),(c))
444         #define sk_X509_ALGOR_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_ALGOR, (a),(b))
445         #define sk_X509_ALGOR_dup(a) SKM_sk_dup(X509_ALGOR, a)
446         #define sk_X509_ALGOR_pop_free(a,b) SKM_sk_pop_free(X509_ALGOR, (a),(b))
447         #define sk_X509_ALGOR_shift(a) SKM_sk_shift(X509_ALGOR, (a))
448         #define sk_X509_ALGOR_pop(a) SKM_sk_pop(X509_ALGOR, (a))
449         #define sk_X509_ALGOR_sort(a) SKM_sk_sort(X509_ALGOR, (a))
450
451         #define sk_X509_NAME_ENTRY_new(a) SKM_sk_new(X509_NAME_ENTRY, (a))
452         #define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY)
453         #define sk_X509_NAME_ENTRY_free(a) SKM_sk_free(X509_NAME_ENTRY, (a))
454         #define sk_X509_NAME_ENTRY_num(a) SKM_sk_num(X509_NAME_ENTRY, (a))
455         #define sk_X509_NAME_ENTRY_value(a,b) SKM_sk_value(X509_NAME_ENTRY, (a), (b))
456         #define sk_X509_NAME_ENTRY_set(a,b,c) SKM_sk_set(X509_NAME_ENTRY, (a), (b), (c))
457         #define sk_X509_NAME_ENTRY_zero(a) SKM_sk_zero(X509_NAME_ENTRY, (a))
458         #define sk_X509_NAME_ENTRY_push(a,b) SKM_sk_push(X509_NAME_ENTRY, (a),(b))
459         #define sk_X509_NAME_ENTRY_unshift(a,b) SKM_sk_unshift(X509_NAME_ENTRY, (a),(b))
460         #define sk_X509_NAME_ENTRY_find(a,b) SKM_sk_find(X509_NAME_ENTRY, (a), (b))
461         #define sk_X509_NAME_ENTRY_delete(a,b) SKM_sk_delete(X509_NAME_ENTRY, (a),(b))
462         #define sk_X509_NAME_ENTRY_delete_ptr(a,b) SKM_sk_delete_ptr(X509_NAME_ENTRY, (a),(b))
463         #define sk_X509_NAME_ENTRY_insert(a,b,c) SKM_sk_insert(X509_NAME_ENTRY, (a),(b),(c))
464         #define sk_X509_NAME_ENTRY_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_NAME_ENTRY, (a),(b))
465         #define sk_X509_NAME_ENTRY_dup(a) SKM_sk_dup(X509_NAME_ENTRY, a)
466         #define sk_X509_NAME_ENTRY_pop_free(a,b) SKM_sk_pop_free(X509_NAME_ENTRY, (a),(b))
467         #define sk_X509_NAME_ENTRY_shift(a) SKM_sk_shift(X509_NAME_ENTRY, (a))
468         #define sk_X509_NAME_ENTRY_pop(a) SKM_sk_pop(X509_NAME_ENTRY, (a))
469         #define sk_X509_NAME_ENTRY_sort(a) SKM_sk_sort(X509_NAME_ENTRY, (a))
470
471         #define sk_X509_NAME_new(a) SKM_sk_new(X509_NAME, (a))
472         #define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME)
473         #define sk_X509_NAME_free(a) SKM_sk_free(X509_NAME, (a))
474         #define sk_X509_NAME_num(a) SKM_sk_num(X509_NAME, (a))
475         #define sk_X509_NAME_value(a,b) SKM_sk_value(X509_NAME, (a), (b))
476         #define sk_X509_NAME_set(a,b,c) SKM_sk_set(X509_NAME, (a), (b), (c))
477         #define sk_X509_NAME_zero(a) SKM_sk_zero(X509_NAME, (a))
478         #define sk_X509_NAME_push(a,b) SKM_sk_push(X509_NAME, (a),(b))
479         #define sk_X509_NAME_unshift(a,b) SKM_sk_unshift(X509_NAME, (a),(b))
480         #define sk_X509_NAME_find(a,b) SKM_sk_find(X509_NAME, (a), (b))
481         #define sk_X509_NAME_delete(a,b) SKM_sk_delete(X509_NAME, (a),(b))
482         #define sk_X509_NAME_delete_ptr(a,b) SKM_sk_delete_ptr(X509_NAME, (a),(b))
483         #define sk_X509_NAME_insert(a,b,c) SKM_sk_insert(X509_NAME, (a),(b),(c))
484         #define sk_X509_NAME_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_NAME, (a),(b))
485         #define sk_X509_NAME_dup(a) SKM_sk_dup(X509_NAME, a)
486         #define sk_X509_NAME_pop_free(a,b) SKM_sk_pop_free(X509_NAME, (a),(b))
487         #define sk_X509_NAME_shift(a) SKM_sk_shift(X509_NAME, (a))
488         #define sk_X509_NAME_pop(a) SKM_sk_pop(X509_NAME, (a))
489         #define sk_X509_NAME_sort(a) SKM_sk_sort(X509_NAME, (a))
490
491         #define sk_X509_EXTENSION_new(a) SKM_sk_new(X509_EXTENSION, (a))
492         #define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION)
493         #define sk_X509_EXTENSION_free(a) SKM_sk_free(X509_EXTENSION, (a))
494         #define sk_X509_EXTENSION_num(a) SKM_sk_num(X509_EXTENSION, (a))
495         #define sk_X509_EXTENSION_value(a,b) SKM_sk_value(X509_EXTENSION, (a), (b))
496         #define sk_X509_EXTENSION_set(a,b,c) SKM_sk_set(X509_EXTENSION, (a), (b), (c))
497         #define sk_X509_EXTENSION_zero(a) SKM_sk_zero(X509_EXTENSION, (a))
498         #define sk_X509_EXTENSION_push(a,b) SKM_sk_push(X509_EXTENSION, (a),(b))
499         #define sk_X509_EXTENSION_unshift(a,b) SKM_sk_unshift(X509_EXTENSION, (a),(b))
500         #define sk_X509_EXTENSION_find(a,b) SKM_sk_find(X509_EXTENSION, (a), (b))
501         #define sk_X509_EXTENSION_delete(a,b) SKM_sk_delete(X509_EXTENSION, (a),(b))
502         #define sk_X509_EXTENSION_delete_ptr(a,b) SKM_sk_delete_ptr(X509_EXTENSION, (a),(b))
503         #define sk_X509_EXTENSION_insert(a,b,c) SKM_sk_insert(X509_EXTENSION, (a),(b),(c))
504         #define sk_X509_EXTENSION_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_EXTENSION, (a),(b))
505         #define sk_X509_EXTENSION_dup(a) SKM_sk_dup(X509_EXTENSION, a)
506         #define sk_X509_EXTENSION_pop_free(a,b) SKM_sk_pop_free(X509_EXTENSION, (a),(b))
507         #define sk_X509_EXTENSION_shift(a) SKM_sk_shift(X509_EXTENSION, (a))
508         #define sk_X509_EXTENSION_pop(a) SKM_sk_pop(X509_EXTENSION, (a))
509         #define sk_X509_EXTENSION_sort(a) SKM_sk_sort(X509_EXTENSION, (a))
510
511         #define sk_X509_ATTRIBUTE_new(a) SKM_sk_new(X509_ATTRIBUTE, (a))
512         #define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE)
513         #define sk_X509_ATTRIBUTE_free(a) SKM_sk_free(X509_ATTRIBUTE, (a))
514         #define sk_X509_ATTRIBUTE_num(a) SKM_sk_num(X509_ATTRIBUTE, (a))
515         #define sk_X509_ATTRIBUTE_value(a,b) SKM_sk_value(X509_ATTRIBUTE, (a), (b))
516         #define sk_X509_ATTRIBUTE_set(a,b,c) SKM_sk_set(X509_ATTRIBUTE, (a), (b), (c))
517         #define sk_X509_ATTRIBUTE_zero(a) SKM_sk_zero(X509_ATTRIBUTE, (a))
518         #define sk_X509_ATTRIBUTE_push(a,b) SKM_sk_push(X509_ATTRIBUTE, (a),(b))
519         #define sk_X509_ATTRIBUTE_unshift(a,b) SKM_sk_unshift(X509_ATTRIBUTE, (a),(b))
520         #define sk_X509_ATTRIBUTE_find(a,b) SKM_sk_find(X509_ATTRIBUTE, (a), (b))
521         #define sk_X509_ATTRIBUTE_delete(a,b) SKM_sk_delete(X509_ATTRIBUTE, (a),(b))
522         #define sk_X509_ATTRIBUTE_delete_ptr(a,b) SKM_sk_delete_ptr(X509_ATTRIBUTE, (a),(b))
523         #define sk_X509_ATTRIBUTE_insert(a,b,c) SKM_sk_insert(X509_ATTRIBUTE, (a),(b),(c))
524         #define sk_X509_ATTRIBUTE_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_ATTRIBUTE, (a),(b))
525         #define sk_X509_ATTRIBUTE_dup(a) SKM_sk_dup(X509_ATTRIBUTE, a)
526         #define sk_X509_ATTRIBUTE_pop_free(a,b) SKM_sk_pop_free(X509_ATTRIBUTE, (a),(b))
527         #define sk_X509_ATTRIBUTE_shift(a) SKM_sk_shift(X509_ATTRIBUTE, (a))
528         #define sk_X509_ATTRIBUTE_pop(a) SKM_sk_pop(X509_ATTRIBUTE, (a))
529         #define sk_X509_ATTRIBUTE_sort(a) SKM_sk_sort(X509_ATTRIBUTE, (a))
530
531         #define sk_X509_new(a) SKM_sk_new(X509, (a))
532         #define sk_X509_new_null() SKM_sk_new_null(X509)
533         #define sk_X509_free(a) SKM_sk_free(X509, (a))
534         #define sk_X509_num(a) SKM_sk_num(X509, (a))
535         #define sk_X509_value(a,b) SKM_sk_value(X509, (a), (b))
536         #define sk_X509_set(a,b,c) SKM_sk_set(X509, (a), (b), (c))
537         #define sk_X509_zero(a) SKM_sk_zero(X509, (a))
538         #define sk_X509_push(a,b) SKM_sk_push(X509, (a),(b))
539         #define sk_X509_unshift(a,b) SKM_sk_unshift(X509, (a),(b))
540         #define sk_X509_find(a,b) SKM_sk_find(X509, (a), (b))
541         #define sk_X509_delete(a,b) SKM_sk_delete(X509, (a),(b))
542         #define sk_X509_delete_ptr(a,b) SKM_sk_delete_ptr(X509, (a),(b))
543         #define sk_X509_insert(a,b,c) SKM_sk_insert(X509, (a),(b),(c))
544         #define sk_X509_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509, (a),(b))
545         #define sk_X509_dup(a) SKM_sk_dup(X509, a)
546         #define sk_X509_pop_free(a,b) SKM_sk_pop_free(X509, (a),(b))
547         #define sk_X509_shift(a) SKM_sk_shift(X509, (a))
548         #define sk_X509_pop(a) SKM_sk_pop(X509, (a))
549         #define sk_X509_sort(a) SKM_sk_sort(X509, (a))
550
551         #define sk_X509_TRUST_new(a) SKM_sk_new(X509_TRUST, (a))
552         #define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST)
553         #define sk_X509_TRUST_free(a) SKM_sk_free(X509_TRUST, (a))
554         #define sk_X509_TRUST_num(a) SKM_sk_num(X509_TRUST, (a))
555         #define sk_X509_TRUST_value(a,b) SKM_sk_value(X509_TRUST, (a), (b))
556         #define sk_X509_TRUST_set(a,b,c) SKM_sk_set(X509_TRUST, (a), (b), (c))
557         #define sk_X509_TRUST_zero(a) SKM_sk_zero(X509_TRUST, (a))
558         #define sk_X509_TRUST_push(a,b) SKM_sk_push(X509_TRUST, (a),(b))
559         #define sk_X509_TRUST_unshift(a,b) SKM_sk_unshift(X509_TRUST, (a),(b))
560         #define sk_X509_TRUST_find(a,b) SKM_sk_find(X509_TRUST, (a), (b))
561         #define sk_X509_TRUST_delete(a,b) SKM_sk_delete(X509_TRUST, (a),(b))
562         #define sk_X509_TRUST_delete_ptr(a,b) SKM_sk_delete_ptr(X509_TRUST, (a),(b))
563         #define sk_X509_TRUST_insert(a,b,c) SKM_sk_insert(X509_TRUST, (a),(b),(c))
564         #define sk_X509_TRUST_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_TRUST, (a),(b))
565         #define sk_X509_TRUST_dup(a) SKM_sk_dup(X509_TRUST, a)
566         #define sk_X509_TRUST_pop_free(a,b) SKM_sk_pop_free(X509_TRUST, (a),(b))
567         #define sk_X509_TRUST_shift(a) SKM_sk_shift(X509_TRUST, (a))
568         #define sk_X509_TRUST_pop(a) SKM_sk_pop(X509_TRUST, (a))
569         #define sk_X509_TRUST_sort(a) SKM_sk_sort(X509_TRUST, (a))
570
571         #define sk_X509_REVOKED_new(a) SKM_sk_new(X509_REVOKED, (a))
572         #define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED)
573         #define sk_X509_REVOKED_free(a) SKM_sk_free(X509_REVOKED, (a))
574         #define sk_X509_REVOKED_num(a) SKM_sk_num(X509_REVOKED, (a))
575         #define sk_X509_REVOKED_value(a,b) SKM_sk_value(X509_REVOKED, (a), (b))
576         #define sk_X509_REVOKED_set(a,b,c) SKM_sk_set(X509_REVOKED, (a), (b), (c))
577         #define sk_X509_REVOKED_zero(a) SKM_sk_zero(X509_REVOKED, (a))
578         #define sk_X509_REVOKED_push(a,b) SKM_sk_push(X509_REVOKED, (a),(b))
579         #define sk_X509_REVOKED_unshift(a,b) SKM_sk_unshift(X509_REVOKED, (a),(b))
580         #define sk_X509_REVOKED_find(a,b) SKM_sk_find(X509_REVOKED, (a), (b))
581         #define sk_X509_REVOKED_delete(a,b) SKM_sk_delete(X509_REVOKED, (a),(b))
582         #define sk_X509_REVOKED_delete_ptr(a,b) SKM_sk_delete_ptr(X509_REVOKED, (a),(b))
583         #define sk_X509_REVOKED_insert(a,b,c) SKM_sk_insert(X509_REVOKED, (a),(b),(c))
584         #define sk_X509_REVOKED_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_REVOKED, (a),(b))
585         #define sk_X509_REVOKED_dup(a) SKM_sk_dup(X509_REVOKED, a)
586         #define sk_X509_REVOKED_pop_free(a,b) SKM_sk_pop_free(X509_REVOKED, (a),(b))
587         #define sk_X509_REVOKED_shift(a) SKM_sk_shift(X509_REVOKED, (a))
588         #define sk_X509_REVOKED_pop(a) SKM_sk_pop(X509_REVOKED, (a))
589         #define sk_X509_REVOKED_sort(a) SKM_sk_sort(X509_REVOKED, (a))
590
591         #define sk_X509_CRL_new(a) SKM_sk_new(X509_CRL, (a))
592         #define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL)
593         #define sk_X509_CRL_free(a) SKM_sk_free(X509_CRL, (a))
594         #define sk_X509_CRL_num(a) SKM_sk_num(X509_CRL, (a))
595         #define sk_X509_CRL_value(a,b) SKM_sk_value(X509_CRL, (a), (b))
596         #define sk_X509_CRL_set(a,b,c) SKM_sk_set(X509_CRL, (a), (b), (c))
597         #define sk_X509_CRL_zero(a) SKM_sk_zero(X509_CRL, (a))
598         #define sk_X509_CRL_push(a,b) SKM_sk_push(X509_CRL, (a),(b))
599         #define sk_X509_CRL_unshift(a,b) SKM_sk_unshift(X509_CRL, (a),(b))
600         #define sk_X509_CRL_find(a,b) SKM_sk_find(X509_CRL, (a), (b))
601         #define sk_X509_CRL_delete(a,b) SKM_sk_delete(X509_CRL, (a),(b))
602         #define sk_X509_CRL_delete_ptr(a,b) SKM_sk_delete_ptr(X509_CRL, (a),(b))
603         #define sk_X509_CRL_insert(a,b,c) SKM_sk_insert(X509_CRL, (a),(b),(c))
604         #define sk_X509_CRL_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_CRL, (a),(b))
605         #define sk_X509_CRL_dup(a) SKM_sk_dup(X509_CRL, a)
606         #define sk_X509_CRL_pop_free(a,b) SKM_sk_pop_free(X509_CRL, (a),(b))
607         #define sk_X509_CRL_shift(a) SKM_sk_shift(X509_CRL, (a))
608         #define sk_X509_CRL_pop(a) SKM_sk_pop(X509_CRL, (a))
609         #define sk_X509_CRL_sort(a) SKM_sk_sort(X509_CRL, (a))
610
611         #define sk_X509_INFO_new(a) SKM_sk_new(X509_INFO, (a))
612         #define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO)
613         #define sk_X509_INFO_free(a) SKM_sk_free(X509_INFO, (a))
614         #define sk_X509_INFO_num(a) SKM_sk_num(X509_INFO, (a))
615         #define sk_X509_INFO_value(a,b) SKM_sk_value(X509_INFO, (a), (b))
616         #define sk_X509_INFO_set(a,b,c) SKM_sk_set(X509_INFO, (a), (b), (c))
617         #define sk_X509_INFO_zero(a) SKM_sk_zero(X509_INFO, (a))
618         #define sk_X509_INFO_push(a,b) SKM_sk_push(X509_INFO, (a),(b))
619         #define sk_X509_INFO_unshift(a,b) SKM_sk_unshift(X509_INFO, (a),(b))
620         #define sk_X509_INFO_find(a,b) SKM_sk_find(X509_INFO, (a), (b))
621         #define sk_X509_INFO_delete(a,b) SKM_sk_delete(X509_INFO, (a),(b))
622         #define sk_X509_INFO_delete_ptr(a,b) SKM_sk_delete_ptr(X509_INFO, (a),(b))
623         #define sk_X509_INFO_insert(a,b,c) SKM_sk_insert(X509_INFO, (a),(b),(c))
624         #define sk_X509_INFO_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_INFO, (a),(b))
625         #define sk_X509_INFO_dup(a) SKM_sk_dup(X509_INFO, a)
626         #define sk_X509_INFO_pop_free(a,b) SKM_sk_pop_free(X509_INFO, (a),(b))
627         #define sk_X509_INFO_shift(a) SKM_sk_shift(X509_INFO, (a))
628         #define sk_X509_INFO_pop(a) SKM_sk_pop(X509_INFO, (a))
629         #define sk_X509_INFO_sort(a) SKM_sk_sort(X509_INFO, (a))
630
631         #define sk_X509_LOOKUP_new(a) SKM_sk_new(X509_LOOKUP, (a))
632         #define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP)
633         #define sk_X509_LOOKUP_free(a) SKM_sk_free(X509_LOOKUP, (a))
634         #define sk_X509_LOOKUP_num(a) SKM_sk_num(X509_LOOKUP, (a))
635         #define sk_X509_LOOKUP_value(a,b) SKM_sk_value(X509_LOOKUP, (a), (b))
636         #define sk_X509_LOOKUP_set(a,b,c) SKM_sk_set(X509_LOOKUP, (a), (b), (c))
637         #define sk_X509_LOOKUP_zero(a) SKM_sk_zero(X509_LOOKUP, (a))
638         #define sk_X509_LOOKUP_push(a,b) SKM_sk_push(X509_LOOKUP, (a),(b))
639         #define sk_X509_LOOKUP_unshift(a,b) SKM_sk_unshift(X509_LOOKUP, (a),(b))
640         #define sk_X509_LOOKUP_find(a,b) SKM_sk_find(X509_LOOKUP, (a), (b))
641         #define sk_X509_LOOKUP_delete(a,b) SKM_sk_delete(X509_LOOKUP, (a),(b))
642         #define sk_X509_LOOKUP_delete_ptr(a,b) SKM_sk_delete_ptr(X509_LOOKUP, (a),(b))
643         #define sk_X509_LOOKUP_insert(a,b,c) SKM_sk_insert(X509_LOOKUP, (a),(b),(c))
644         #define sk_X509_LOOKUP_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_LOOKUP, (a),(b))
645         #define sk_X509_LOOKUP_dup(a) SKM_sk_dup(X509_LOOKUP, a)
646         #define sk_X509_LOOKUP_pop_free(a,b) SKM_sk_pop_free(X509_LOOKUP, (a),(b))
647         #define sk_X509_LOOKUP_shift(a) SKM_sk_shift(X509_LOOKUP, (a))
648         #define sk_X509_LOOKUP_pop(a) SKM_sk_pop(X509_LOOKUP, (a))
649         #define sk_X509_LOOKUP_sort(a) SKM_sk_sort(X509_LOOKUP, (a))
650
651         #define sk_X509V3_EXT_METHOD_new(a) SKM_sk_new(X509V3_EXT_METHOD, (a))
652         #define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD)
653         #define sk_X509V3_EXT_METHOD_free(a) SKM_sk_free(X509V3_EXT_METHOD, (a))
654         #define sk_X509V3_EXT_METHOD_num(a) SKM_sk_num(X509V3_EXT_METHOD, (a))
655         #define sk_X509V3_EXT_METHOD_value(a,b) SKM_sk_value(X509V3_EXT_METHOD, (a), (b))
656         #define sk_X509V3_EXT_METHOD_set(a,b,c) SKM_sk_set(X509V3_EXT_METHOD, (a), (b), (c))
657         #define sk_X509V3_EXT_METHOD_zero(a) SKM_sk_zero(X509V3_EXT_METHOD, (a))
658         #define sk_X509V3_EXT_METHOD_push(a,b) SKM_sk_push(X509V3_EXT_METHOD, (a),(b))
659         #define sk_X509V3_EXT_METHOD_unshift(a,b) SKM_sk_unshift(X509V3_EXT_METHOD, (a),(b))
660         #define sk_X509V3_EXT_METHOD_find(a,b) SKM_sk_find(X509V3_EXT_METHOD, (a), (b))
661         #define sk_X509V3_EXT_METHOD_delete(a,b) SKM_sk_delete(X509V3_EXT_METHOD, (a),(b))
662         #define sk_X509V3_EXT_METHOD_delete_ptr(a,b) SKM_sk_delete_ptr(X509V3_EXT_METHOD, (a),(b))
663         #define sk_X509V3_EXT_METHOD_insert(a,b,c) SKM_sk_insert(X509V3_EXT_METHOD, (a),(b),(c))
664         #define sk_X509V3_EXT_METHOD_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509V3_EXT_METHOD, (a),(b))
665         #define sk_X509V3_EXT_METHOD_dup(a) SKM_sk_dup(X509V3_EXT_METHOD, a)
666         #define sk_X509V3_EXT_METHOD_pop_free(a,b) SKM_sk_pop_free(X509V3_EXT_METHOD, (a),(b))
667         #define sk_X509V3_EXT_METHOD_shift(a) SKM_sk_shift(X509V3_EXT_METHOD, (a))
668         #define sk_X509V3_EXT_METHOD_pop(a) SKM_sk_pop(X509V3_EXT_METHOD, (a))
669         #define sk_X509V3_EXT_METHOD_sort(a) SKM_sk_sort(X509V3_EXT_METHOD, (a))
670
671         #define sk_GENERAL_NAME_new(a) SKM_sk_new(GENERAL_NAME, (a))
672         #define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME)
673         #define sk_GENERAL_NAME_free(a) SKM_sk_free(GENERAL_NAME, (a))
674         #define sk_GENERAL_NAME_num(a) SKM_sk_num(GENERAL_NAME, (a))
675         #define sk_GENERAL_NAME_value(a,b) SKM_sk_value(GENERAL_NAME, (a), (b))
676         #define sk_GENERAL_NAME_set(a,b,c) SKM_sk_set(GENERAL_NAME, (a), (b), (c))
677         #define sk_GENERAL_NAME_zero(a) SKM_sk_zero(GENERAL_NAME, (a))
678         #define sk_GENERAL_NAME_push(a,b) SKM_sk_push(GENERAL_NAME, (a),(b))
679         #define sk_GENERAL_NAME_unshift(a,b) SKM_sk_unshift(GENERAL_NAME, (a),(b))
680         #define sk_GENERAL_NAME_find(a,b) SKM_sk_find(GENERAL_NAME, (a), (b))
681         #define sk_GENERAL_NAME_delete(a,b) SKM_sk_delete(GENERAL_NAME, (a),(b))
682         #define sk_GENERAL_NAME_delete_ptr(a,b) SKM_sk_delete_ptr(GENERAL_NAME, (a),(b))
683         #define sk_GENERAL_NAME_insert(a,b,c) SKM_sk_insert(GENERAL_NAME, (a),(b),(c))
684         #define sk_GENERAL_NAME_set_cmp_func(a,b) SKM_sk_set_cmp_func(GENERAL_NAME, (a),(b))
685         #define sk_GENERAL_NAME_dup(a) SKM_sk_dup(GENERAL_NAME, a)
686         #define sk_GENERAL_NAME_pop_free(a,b) SKM_sk_pop_free(GENERAL_NAME, (a),(b))
687         #define sk_GENERAL_NAME_shift(a) SKM_sk_shift(GENERAL_NAME, (a))
688         #define sk_GENERAL_NAME_pop(a) SKM_sk_pop(GENERAL_NAME, (a))
689         #define sk_GENERAL_NAME_sort(a) SKM_sk_sort(GENERAL_NAME, (a))
690
691         #define sk_ACCESS_DESCRIPTION_new(a) SKM_sk_new(ACCESS_DESCRIPTION, (a))
692         #define sk_ACCESS_DESCRIPTION_new_null() SKM_sk_new_null(ACCESS_DESCRIPTION)
693         #define sk_ACCESS_DESCRIPTION_free(a) SKM_sk_free(ACCESS_DESCRIPTION, (a))
694         #define sk_ACCESS_DESCRIPTION_num(a) SKM_sk_num(ACCESS_DESCRIPTION, (a))
695         #define sk_ACCESS_DESCRIPTION_value(a,b) SKM_sk_value(ACCESS_DESCRIPTION, (a), (b))
696         #define sk_ACCESS_DESCRIPTION_set(a,b,c) SKM_sk_set(ACCESS_DESCRIPTION, (a), (b), (c))
697         #define sk_ACCESS_DESCRIPTION_zero(a) SKM_sk_zero(ACCESS_DESCRIPTION, (a))
698         #define sk_ACCESS_DESCRIPTION_push(a,b) SKM_sk_push(ACCESS_DESCRIPTION, (a),(b))
699         #define sk_ACCESS_DESCRIPTION_unshift(a,b) SKM_sk_unshift(ACCESS_DESCRIPTION, (a),(b))
700         #define sk_ACCESS_DESCRIPTION_find(a,b) SKM_sk_find(ACCESS_DESCRIPTION, (a), (b))
701         #define sk_ACCESS_DESCRIPTION_delete(a,b) SKM_sk_delete(ACCESS_DESCRIPTION, (a),(b))
702         #define sk_ACCESS_DESCRIPTION_delete_ptr(a,b) SKM_sk_delete_ptr(ACCESS_DESCRIPTION, (a),(b))
703         #define sk_ACCESS_DESCRIPTION_insert(a,b,c) SKM_sk_insert(ACCESS_DESCRIPTION, (a),(b),(c))
704         #define sk_ACCESS_DESCRIPTION_set_cmp_func(a,b) SKM_sk_set_cmp_func(ACCESS_DESCRIPTION, (a),(b))
705         #define sk_ACCESS_DESCRIPTION_dup(a) SKM_sk_dup(ACCESS_DESCRIPTION, a)
706         #define sk_ACCESS_DESCRIPTION_pop_free(a,b) SKM_sk_pop_free(ACCESS_DESCRIPTION, (a),(b))
707         #define sk_ACCESS_DESCRIPTION_shift(a) SKM_sk_shift(ACCESS_DESCRIPTION, (a))
708         #define sk_ACCESS_DESCRIPTION_pop(a) SKM_sk_pop(ACCESS_DESCRIPTION, (a))
709         #define sk_ACCESS_DESCRIPTION_sort(a) SKM_sk_sort(ACCESS_DESCRIPTION, (a))
710
711         #define sk_DIST_POINT_new(a) SKM_sk_new(DIST_POINT, (a))
712         #define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT)
713         #define sk_DIST_POINT_free(a) SKM_sk_free(DIST_POINT, (a))
714         #define sk_DIST_POINT_num(a) SKM_sk_num(DIST_POINT, (a))
715         #define sk_DIST_POINT_value(a,b) SKM_sk_value(DIST_POINT, (a), (b))
716         #define sk_DIST_POINT_set(a,b,c) SKM_sk_set(DIST_POINT, (a), (b), (c))
717         #define sk_DIST_POINT_zero(a) SKM_sk_zero(DIST_POINT, (a))
718         #define sk_DIST_POINT_push(a,b) SKM_sk_push(DIST_POINT, (a),(b))
719         #define sk_DIST_POINT_unshift(a,b) SKM_sk_unshift(DIST_POINT, (a),(b))
720         #define sk_DIST_POINT_find(a,b) SKM_sk_find(DIST_POINT, (a), (b))
721         #define sk_DIST_POINT_delete(a,b) SKM_sk_delete(DIST_POINT, (a),(b))
722         #define sk_DIST_POINT_delete_ptr(a,b) SKM_sk_delete_ptr(DIST_POINT, (a),(b))
723         #define sk_DIST_POINT_insert(a,b,c) SKM_sk_insert(DIST_POINT, (a),(b),(c))
724         #define sk_DIST_POINT_set_cmp_func(a,b) SKM_sk_set_cmp_func(DIST_POINT, (a),(b))
725         #define sk_DIST_POINT_dup(a) SKM_sk_dup(DIST_POINT, a)
726         #define sk_DIST_POINT_pop_free(a,b) SKM_sk_pop_free(DIST_POINT, (a),(b))
727         #define sk_DIST_POINT_shift(a) SKM_sk_shift(DIST_POINT, (a))
728         #define sk_DIST_POINT_pop(a) SKM_sk_pop(DIST_POINT, (a))
729         #define sk_DIST_POINT_sort(a) SKM_sk_sort(DIST_POINT, (a))
730
731         #define sk_SXNETID_new(a) SKM_sk_new(SXNETID, (a))
732         #define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID)
733         #define sk_SXNETID_free(a) SKM_sk_free(SXNETID, (a))
734         #define sk_SXNETID_num(a) SKM_sk_num(SXNETID, (a))
735         #define sk_SXNETID_value(a,b) SKM_sk_value(SXNETID, (a), (b))
736         #define sk_SXNETID_set(a,b,c) SKM_sk_set(SXNETID, (a), (b), (c))
737         #define sk_SXNETID_zero(a) SKM_sk_zero(SXNETID, (a))
738         #define sk_SXNETID_push(a,b) SKM_sk_push(SXNETID, (a),(b))
739         #define sk_SXNETID_unshift(a,b) SKM_sk_unshift(SXNETID, (a),(b))
740         #define sk_SXNETID_find(a,b) SKM_sk_find(SXNETID, (a), (b))
741         #define sk_SXNETID_delete(a,b) SKM_sk_delete(SXNETID, (a),(b))
742         #define sk_SXNETID_delete_ptr(a,b) SKM_sk_delete_ptr(SXNETID, (a),(b))
743         #define sk_SXNETID_insert(a,b,c) SKM_sk_insert(SXNETID, (a),(b),(c))
744         #define sk_SXNETID_set_cmp_func(a,b) SKM_sk_set_cmp_func(SXNETID, (a),(b))
745         #define sk_SXNETID_dup(a) SKM_sk_dup(SXNETID, a)
746         #define sk_SXNETID_pop_free(a,b) SKM_sk_pop_free(SXNETID, (a),(b))
747         #define sk_SXNETID_shift(a) SKM_sk_shift(SXNETID, (a))
748         #define sk_SXNETID_pop(a) SKM_sk_pop(SXNETID, (a))
749         #define sk_SXNETID_sort(a) SKM_sk_sort(SXNETID, (a))
750
751         #define sk_POLICYQUALINFO_new(a) SKM_sk_new(POLICYQUALINFO, (a))
752         #define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO)
753         #define sk_POLICYQUALINFO_free(a) SKM_sk_free(POLICYQUALINFO, (a))
754         #define sk_POLICYQUALINFO_num(a) SKM_sk_num(POLICYQUALINFO, (a))
755         #define sk_POLICYQUALINFO_value(a,b) SKM_sk_value(POLICYQUALINFO, (a), (b))
756         #define sk_POLICYQUALINFO_set(a,b,c) SKM_sk_set(POLICYQUALINFO, (a), (b), (c))
757         #define sk_POLICYQUALINFO_zero(a) SKM_sk_zero(POLICYQUALINFO, (a))
758         #define sk_POLICYQUALINFO_push(a,b) SKM_sk_push(POLICYQUALINFO, (a),(b))
759         #define sk_POLICYQUALINFO_unshift(a,b) SKM_sk_unshift(POLICYQUALINFO, (a),(b))
760         #define sk_POLICYQUALINFO_find(a,b) SKM_sk_find(POLICYQUALINFO, (a), (b))
761         #define sk_POLICYQUALINFO_delete(a,b) SKM_sk_delete(POLICYQUALINFO, (a),(b))
762         #define sk_POLICYQUALINFO_delete_ptr(a,b) SKM_sk_delete_ptr(POLICYQUALINFO, (a),(b))
763         #define sk_POLICYQUALINFO_insert(a,b,c) SKM_sk_insert(POLICYQUALINFO, (a),(b),(c))
764         #define sk_POLICYQUALINFO_set_cmp_func(a,b) SKM_sk_set_cmp_func(POLICYQUALINFO, (a),(b))
765         #define sk_POLICYQUALINFO_dup(a) SKM_sk_dup(POLICYQUALINFO, a)
766         #define sk_POLICYQUALINFO_pop_free(a,b) SKM_sk_pop_free(POLICYQUALINFO, (a),(b))
767         #define sk_POLICYQUALINFO_shift(a) SKM_sk_shift(POLICYQUALINFO, (a))
768         #define sk_POLICYQUALINFO_pop(a) SKM_sk_pop(POLICYQUALINFO, (a))
769         #define sk_POLICYQUALINFO_sort(a) SKM_sk_sort(POLICYQUALINFO, (a))
770
771         #define sk_POLICYINFO_new(a) SKM_sk_new(POLICYINFO, (a))
772         #define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO)
773         #define sk_POLICYINFO_free(a) SKM_sk_free(POLICYINFO, (a))
774         #define sk_POLICYINFO_num(a) SKM_sk_num(POLICYINFO, (a))
775         #define sk_POLICYINFO_value(a,b) SKM_sk_value(POLICYINFO, (a), (b))
776         #define sk_POLICYINFO_set(a,b,c) SKM_sk_set(POLICYINFO, (a), (b), (c))
777         #define sk_POLICYINFO_zero(a) SKM_sk_zero(POLICYINFO, (a))
778         #define sk_POLICYINFO_push(a,b) SKM_sk_push(POLICYINFO, (a),(b))
779         #define sk_POLICYINFO_unshift(a,b) SKM_sk_unshift(POLICYINFO, (a),(b))
780         #define sk_POLICYINFO_find(a,b) SKM_sk_find(POLICYINFO, (a), (b))
781         #define sk_POLICYINFO_delete(a,b) SKM_sk_delete(POLICYINFO, (a),(b))
782         #define sk_POLICYINFO_delete_ptr(a,b) SKM_sk_delete_ptr(POLICYINFO, (a),(b))
783         #define sk_POLICYINFO_insert(a,b,c) SKM_sk_insert(POLICYINFO, (a),(b),(c))
784         #define sk_POLICYINFO_set_cmp_func(a,b) SKM_sk_set_cmp_func(POLICYINFO, (a),(b))
785         #define sk_POLICYINFO_dup(a) SKM_sk_dup(POLICYINFO, a)
786         #define sk_POLICYINFO_pop_free(a,b) SKM_sk_pop_free(POLICYINFO, (a),(b))
787         #define sk_POLICYINFO_shift(a) SKM_sk_shift(POLICYINFO, (a))
788         #define sk_POLICYINFO_pop(a) SKM_sk_pop(POLICYINFO, (a))
789         #define sk_POLICYINFO_sort(a) SKM_sk_sort(POLICYINFO, (a))
790
791         #define sk_X509_PURPOSE_new(a) SKM_sk_new(X509_PURPOSE, (a))
792         #define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE)
793         #define sk_X509_PURPOSE_free(a) SKM_sk_free(X509_PURPOSE, (a))
794         #define sk_X509_PURPOSE_num(a) SKM_sk_num(X509_PURPOSE, (a))
795         #define sk_X509_PURPOSE_value(a,b) SKM_sk_value(X509_PURPOSE, (a), (b))
796         #define sk_X509_PURPOSE_set(a,b,c) SKM_sk_set(X509_PURPOSE, (a), (b), (c))
797         #define sk_X509_PURPOSE_zero(a) SKM_sk_zero(X509_PURPOSE, (a))
798         #define sk_X509_PURPOSE_push(a,b) SKM_sk_push(X509_PURPOSE, (a),(b))
799         #define sk_X509_PURPOSE_unshift(a,b) SKM_sk_unshift(X509_PURPOSE, (a),(b))
800         #define sk_X509_PURPOSE_find(a,b) SKM_sk_find(X509_PURPOSE, (a), (b))
801         #define sk_X509_PURPOSE_delete(a,b) SKM_sk_delete(X509_PURPOSE, (a),(b))
802         #define sk_X509_PURPOSE_delete_ptr(a,b) SKM_sk_delete_ptr(X509_PURPOSE, (a),(b))
803         #define sk_X509_PURPOSE_insert(a,b,c) SKM_sk_insert(X509_PURPOSE, (a),(b),(c))
804         #define sk_X509_PURPOSE_set_cmp_func(a,b) SKM_sk_set_cmp_func(X509_PURPOSE, (a),(b))
805         #define sk_X509_PURPOSE_dup(a) SKM_sk_dup(X509_PURPOSE, a)
806         #define sk_X509_PURPOSE_pop_free(a,b) SKM_sk_pop_free(X509_PURPOSE, (a),(b))
807         #define sk_X509_PURPOSE_shift(a) SKM_sk_shift(X509_PURPOSE, (a))
808         #define sk_X509_PURPOSE_pop(a) SKM_sk_pop(X509_PURPOSE, (a))
809         #define sk_X509_PURPOSE_sort(a) SKM_sk_sort(X509_PURPOSE, (a))
810
811         #define sk_SSL_CIPHER_new(a) SKM_sk_new(SSL_CIPHER, (a))
812         #define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER)
813         #define sk_SSL_CIPHER_free(a) SKM_sk_free(SSL_CIPHER, (a))
814         #define sk_SSL_CIPHER_num(a) SKM_sk_num(SSL_CIPHER, (a))
815         #define sk_SSL_CIPHER_value(a,b) SKM_sk_value(SSL_CIPHER, (a), (b))
816         #define sk_SSL_CIPHER_set(a,b,c) SKM_sk_set(SSL_CIPHER, (a), (b), (c))
817         #define sk_SSL_CIPHER_zero(a) SKM_sk_zero(SSL_CIPHER, (a))
818         #define sk_SSL_CIPHER_push(a,b) SKM_sk_push(SSL_CIPHER, (a),(b))
819         #define sk_SSL_CIPHER_unshift(a,b) SKM_sk_unshift(SSL_CIPHER, (a),(b))
820         #define sk_SSL_CIPHER_find(a,b) SKM_sk_find(SSL_CIPHER, (a), (b))
821         #define sk_SSL_CIPHER_delete(a,b) SKM_sk_delete(SSL_CIPHER, (a),(b))
822         #define sk_SSL_CIPHER_delete_ptr(a,b) SKM_sk_delete_ptr(SSL_CIPHER, (a),(b))
823         #define sk_SSL_CIPHER_insert(a,b,c) SKM_sk_insert(SSL_CIPHER, (a),(b),(c))
824         #define sk_SSL_CIPHER_set_cmp_func(a,b) SKM_sk_set_cmp_func(SSL_CIPHER, (a),(b))
825         #define sk_SSL_CIPHER_dup(a) SKM_sk_dup(SSL_CIPHER, a)
826         #define sk_SSL_CIPHER_pop_free(a,b) SKM_sk_pop_free(SSL_CIPHER, (a),(b))
827         #define sk_SSL_CIPHER_shift(a) SKM_sk_shift(SSL_CIPHER, (a))
828         #define sk_SSL_CIPHER_pop(a) SKM_sk_pop(SSL_CIPHER, (a))
829         #define sk_SSL_CIPHER_sort(a) SKM_sk_sort(SSL_CIPHER, (a))
830
831         #define sk_SSL_COMP_new(a) SKM_sk_new(SSL_COMP, (a))
832         #define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP)
833         #define sk_SSL_COMP_free(a) SKM_sk_free(SSL_COMP, (a))
834         #define sk_SSL_COMP_num(a) SKM_sk_num(SSL_COMP, (a))
835         #define sk_SSL_COMP_value(a,b) SKM_sk_value(SSL_COMP, (a), (b))
836         #define sk_SSL_COMP_set(a,b,c) SKM_sk_set(SSL_COMP, (a), (b), (c))
837         #define sk_SSL_COMP_zero(a) SKM_sk_zero(SSL_COMP, (a))
838         #define sk_SSL_COMP_push(a,b) SKM_sk_push(SSL_COMP, (a),(b))
839         #define sk_SSL_COMP_unshift(a,b) SKM_sk_unshift(SSL_COMP, (a),(b))
840         #define sk_SSL_COMP_find(a,b) SKM_sk_find(SSL_COMP, (a), (b))
841         #define sk_SSL_COMP_delete(a,b) SKM_sk_delete(SSL_COMP, (a),(b))
842         #define sk_SSL_COMP_delete_ptr(a,b) SKM_sk_delete_ptr(SSL_COMP, (a),(b))
843         #define sk_SSL_COMP_insert(a,b,c) SKM_sk_insert(SSL_COMP, (a),(b),(c))
844         #define sk_SSL_COMP_set_cmp_func(a,b) SKM_sk_set_cmp_func(SSL_COMP, (a),(b))
845         #define sk_SSL_COMP_dup(a) SKM_sk_dup(SSL_COMP, a)
846         #define sk_SSL_COMP_pop_free(a,b) SKM_sk_pop_free(SSL_COMP, (a),(b))
847         #define sk_SSL_COMP_shift(a) SKM_sk_shift(SSL_COMP, (a))
848         #define sk_SSL_COMP_pop(a) SKM_sk_pop(SSL_COMP, (a))
849         #define sk_SSL_COMP_sort(a) SKM_sk_sort(SSL_COMP, (a))
850
851 /* End of perl script block, you may now edit :-) */
852
853 #endif /* ndef HEADER_SAFESTACK_H */