• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file is used to verify that 2to3 falls back to a slower, iterative pattern matching
2# scheme in the event that the faster recursive system fails due to infinite recursion.
3from ctypes import *
4STRING = c_char_p
5
6
7OSUnknownByteOrder = 0
8UIT_PROMPT = 1
9P_PGID = 2
10P_PID = 1
11UIT_ERROR = 5
12UIT_INFO = 4
13UIT_NONE = 0
14P_ALL = 0
15UIT_VERIFY = 2
16OSBigEndian = 2
17UIT_BOOLEAN = 3
18OSLittleEndian = 1
19__darwin_nl_item = c_int
20__darwin_wctrans_t = c_int
21__darwin_wctype_t = c_ulong
22__int8_t = c_byte
23__uint8_t = c_ubyte
24__int16_t = c_short
25__uint16_t = c_ushort
26__int32_t = c_int
27__uint32_t = c_uint
28__int64_t = c_longlong
29__uint64_t = c_ulonglong
30__darwin_intptr_t = c_long
31__darwin_natural_t = c_uint
32__darwin_ct_rune_t = c_int
33class __mbstate_t(Union):
34    pass
35__mbstate_t._pack_ = 4
36__mbstate_t._fields_ = [
37    ('__mbstate8', c_char * 128),
38    ('_mbstateL', c_longlong),
39]
40assert sizeof(__mbstate_t) == 128, sizeof(__mbstate_t)
41assert alignment(__mbstate_t) == 4, alignment(__mbstate_t)
42__darwin_mbstate_t = __mbstate_t
43__darwin_ptrdiff_t = c_int
44__darwin_size_t = c_ulong
45__darwin_va_list = STRING
46__darwin_wchar_t = c_int
47__darwin_rune_t = __darwin_wchar_t
48__darwin_wint_t = c_int
49__darwin_clock_t = c_ulong
50__darwin_socklen_t = __uint32_t
51__darwin_ssize_t = c_long
52__darwin_time_t = c_long
53sig_atomic_t = c_int
54class sigcontext(Structure):
55    pass
56sigcontext._fields_ = [
57    ('sc_onstack', c_int),
58    ('sc_mask', c_int),
59    ('sc_eax', c_uint),
60    ('sc_ebx', c_uint),
61    ('sc_ecx', c_uint),
62    ('sc_edx', c_uint),
63    ('sc_edi', c_uint),
64    ('sc_esi', c_uint),
65    ('sc_ebp', c_uint),
66    ('sc_esp', c_uint),
67    ('sc_ss', c_uint),
68    ('sc_eflags', c_uint),
69    ('sc_eip', c_uint),
70    ('sc_cs', c_uint),
71    ('sc_ds', c_uint),
72    ('sc_es', c_uint),
73    ('sc_fs', c_uint),
74    ('sc_gs', c_uint),
75]
76assert sizeof(sigcontext) == 72, sizeof(sigcontext)
77assert alignment(sigcontext) == 4, alignment(sigcontext)
78u_int8_t = c_ubyte
79u_int16_t = c_ushort
80u_int32_t = c_uint
81u_int64_t = c_ulonglong
82int32_t = c_int
83register_t = int32_t
84user_addr_t = u_int64_t
85user_size_t = u_int64_t
86int64_t = c_longlong
87user_ssize_t = int64_t
88user_long_t = int64_t
89user_ulong_t = u_int64_t
90user_time_t = int64_t
91syscall_arg_t = u_int64_t
92
93# values for unnamed enumeration
94class aes_key_st(Structure):
95    pass
96aes_key_st._fields_ = [
97    ('rd_key', c_ulong * 60),
98    ('rounds', c_int),
99]
100assert sizeof(aes_key_st) == 244, sizeof(aes_key_st)
101assert alignment(aes_key_st) == 4, alignment(aes_key_st)
102AES_KEY = aes_key_st
103class asn1_ctx_st(Structure):
104    pass
105asn1_ctx_st._fields_ = [
106    ('p', POINTER(c_ubyte)),
107    ('eos', c_int),
108    ('error', c_int),
109    ('inf', c_int),
110    ('tag', c_int),
111    ('xclass', c_int),
112    ('slen', c_long),
113    ('max', POINTER(c_ubyte)),
114    ('q', POINTER(c_ubyte)),
115    ('pp', POINTER(POINTER(c_ubyte))),
116    ('line', c_int),
117]
118assert sizeof(asn1_ctx_st) == 44, sizeof(asn1_ctx_st)
119assert alignment(asn1_ctx_st) == 4, alignment(asn1_ctx_st)
120ASN1_CTX = asn1_ctx_st
121class asn1_object_st(Structure):
122    pass
123asn1_object_st._fields_ = [
124    ('sn', STRING),
125    ('ln', STRING),
126    ('nid', c_int),
127    ('length', c_int),
128    ('data', POINTER(c_ubyte)),
129    ('flags', c_int),
130]
131assert sizeof(asn1_object_st) == 24, sizeof(asn1_object_st)
132assert alignment(asn1_object_st) == 4, alignment(asn1_object_st)
133ASN1_OBJECT = asn1_object_st
134class asn1_string_st(Structure):
135    pass
136asn1_string_st._fields_ = [
137    ('length', c_int),
138    ('type', c_int),
139    ('data', POINTER(c_ubyte)),
140    ('flags', c_long),
141]
142assert sizeof(asn1_string_st) == 16, sizeof(asn1_string_st)
143assert alignment(asn1_string_st) == 4, alignment(asn1_string_st)
144ASN1_STRING = asn1_string_st
145class ASN1_ENCODING_st(Structure):
146    pass
147ASN1_ENCODING_st._fields_ = [
148    ('enc', POINTER(c_ubyte)),
149    ('len', c_long),
150    ('modified', c_int),
151]
152assert sizeof(ASN1_ENCODING_st) == 12, sizeof(ASN1_ENCODING_st)
153assert alignment(ASN1_ENCODING_st) == 4, alignment(ASN1_ENCODING_st)
154ASN1_ENCODING = ASN1_ENCODING_st
155class asn1_string_table_st(Structure):
156    pass
157asn1_string_table_st._fields_ = [
158    ('nid', c_int),
159    ('minsize', c_long),
160    ('maxsize', c_long),
161    ('mask', c_ulong),
162    ('flags', c_ulong),
163]
164assert sizeof(asn1_string_table_st) == 20, sizeof(asn1_string_table_st)
165assert alignment(asn1_string_table_st) == 4, alignment(asn1_string_table_st)
166ASN1_STRING_TABLE = asn1_string_table_st
167class ASN1_TEMPLATE_st(Structure):
168    pass
169ASN1_TEMPLATE_st._fields_ = [
170]
171ASN1_TEMPLATE = ASN1_TEMPLATE_st
172class ASN1_ITEM_st(Structure):
173    pass
174ASN1_ITEM = ASN1_ITEM_st
175ASN1_ITEM_st._fields_ = [
176]
177class ASN1_TLC_st(Structure):
178    pass
179ASN1_TLC = ASN1_TLC_st
180ASN1_TLC_st._fields_ = [
181]
182class ASN1_VALUE_st(Structure):
183    pass
184ASN1_VALUE_st._fields_ = [
185]
186ASN1_VALUE = ASN1_VALUE_st
187ASN1_ITEM_EXP = ASN1_ITEM
188class asn1_type_st(Structure):
189    pass
190class N12asn1_type_st4DOLLAR_11E(Union):
191    pass
192ASN1_BOOLEAN = c_int
193ASN1_INTEGER = asn1_string_st
194ASN1_ENUMERATED = asn1_string_st
195ASN1_BIT_STRING = asn1_string_st
196ASN1_OCTET_STRING = asn1_string_st
197ASN1_PRINTABLESTRING = asn1_string_st
198ASN1_T61STRING = asn1_string_st
199ASN1_IA5STRING = asn1_string_st
200ASN1_GENERALSTRING = asn1_string_st
201ASN1_BMPSTRING = asn1_string_st
202ASN1_UNIVERSALSTRING = asn1_string_st
203ASN1_UTCTIME = asn1_string_st
204ASN1_GENERALIZEDTIME = asn1_string_st
205ASN1_VISIBLESTRING = asn1_string_st
206ASN1_UTF8STRING = asn1_string_st
207N12asn1_type_st4DOLLAR_11E._fields_ = [
208    ('ptr', STRING),
209    ('boolean', ASN1_BOOLEAN),
210    ('asn1_string', POINTER(ASN1_STRING)),
211    ('object', POINTER(ASN1_OBJECT)),
212    ('integer', POINTER(ASN1_INTEGER)),
213    ('enumerated', POINTER(ASN1_ENUMERATED)),
214    ('bit_string', POINTER(ASN1_BIT_STRING)),
215    ('octet_string', POINTER(ASN1_OCTET_STRING)),
216    ('printablestring', POINTER(ASN1_PRINTABLESTRING)),
217    ('t61string', POINTER(ASN1_T61STRING)),
218    ('ia5string', POINTER(ASN1_IA5STRING)),
219    ('generalstring', POINTER(ASN1_GENERALSTRING)),
220    ('bmpstring', POINTER(ASN1_BMPSTRING)),
221    ('universalstring', POINTER(ASN1_UNIVERSALSTRING)),
222    ('utctime', POINTER(ASN1_UTCTIME)),
223    ('generalizedtime', POINTER(ASN1_GENERALIZEDTIME)),
224    ('visiblestring', POINTER(ASN1_VISIBLESTRING)),
225    ('utf8string', POINTER(ASN1_UTF8STRING)),
226    ('set', POINTER(ASN1_STRING)),
227    ('sequence', POINTER(ASN1_STRING)),
228]
229assert sizeof(N12asn1_type_st4DOLLAR_11E) == 4, sizeof(N12asn1_type_st4DOLLAR_11E)
230assert alignment(N12asn1_type_st4DOLLAR_11E) == 4, alignment(N12asn1_type_st4DOLLAR_11E)
231asn1_type_st._fields_ = [
232    ('type', c_int),
233    ('value', N12asn1_type_st4DOLLAR_11E),
234]
235assert sizeof(asn1_type_st) == 8, sizeof(asn1_type_st)
236assert alignment(asn1_type_st) == 4, alignment(asn1_type_st)
237ASN1_TYPE = asn1_type_st
238class asn1_method_st(Structure):
239    pass
240asn1_method_st._fields_ = [
241    ('i2d', CFUNCTYPE(c_int)),
242    ('d2i', CFUNCTYPE(STRING)),
243    ('create', CFUNCTYPE(STRING)),
244    ('destroy', CFUNCTYPE(None)),
245]
246assert sizeof(asn1_method_st) == 16, sizeof(asn1_method_st)
247assert alignment(asn1_method_st) == 4, alignment(asn1_method_st)
248ASN1_METHOD = asn1_method_st
249class asn1_header_st(Structure):
250    pass
251asn1_header_st._fields_ = [
252    ('header', POINTER(ASN1_OCTET_STRING)),
253    ('data', STRING),
254    ('meth', POINTER(ASN1_METHOD)),
255]
256assert sizeof(asn1_header_st) == 12, sizeof(asn1_header_st)
257assert alignment(asn1_header_st) == 4, alignment(asn1_header_st)
258ASN1_HEADER = asn1_header_st
259class BIT_STRING_BITNAME_st(Structure):
260    pass
261BIT_STRING_BITNAME_st._fields_ = [
262    ('bitnum', c_int),
263    ('lname', STRING),
264    ('sname', STRING),
265]
266assert sizeof(BIT_STRING_BITNAME_st) == 12, sizeof(BIT_STRING_BITNAME_st)
267assert alignment(BIT_STRING_BITNAME_st) == 4, alignment(BIT_STRING_BITNAME_st)
268BIT_STRING_BITNAME = BIT_STRING_BITNAME_st
269class bio_st(Structure):
270    pass
271BIO = bio_st
272bio_info_cb = CFUNCTYPE(None, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)
273class bio_method_st(Structure):
274    pass
275bio_method_st._fields_ = [
276    ('type', c_int),
277    ('name', STRING),
278    ('bwrite', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
279    ('bread', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
280    ('bputs', CFUNCTYPE(c_int, POINTER(BIO), STRING)),
281    ('bgets', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
282    ('ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, c_long, c_void_p)),
283    ('create', CFUNCTYPE(c_int, POINTER(BIO))),
284    ('destroy', CFUNCTYPE(c_int, POINTER(BIO))),
285    ('callback_ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, POINTER(bio_info_cb))),
286]
287assert sizeof(bio_method_st) == 40, sizeof(bio_method_st)
288assert alignment(bio_method_st) == 4, alignment(bio_method_st)
289BIO_METHOD = bio_method_st
290class crypto_ex_data_st(Structure):
291    pass
292class stack_st(Structure):
293    pass
294STACK = stack_st
295crypto_ex_data_st._fields_ = [
296    ('sk', POINTER(STACK)),
297    ('dummy', c_int),
298]
299assert sizeof(crypto_ex_data_st) == 8, sizeof(crypto_ex_data_st)
300assert alignment(crypto_ex_data_st) == 4, alignment(crypto_ex_data_st)
301CRYPTO_EX_DATA = crypto_ex_data_st
302bio_st._fields_ = [
303    ('method', POINTER(BIO_METHOD)),
304    ('callback', CFUNCTYPE(c_long, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)),
305    ('cb_arg', STRING),
306    ('init', c_int),
307    ('shutdown', c_int),
308    ('flags', c_int),
309    ('retry_reason', c_int),
310    ('num', c_int),
311    ('ptr', c_void_p),
312    ('next_bio', POINTER(bio_st)),
313    ('prev_bio', POINTER(bio_st)),
314    ('references', c_int),
315    ('num_read', c_ulong),
316    ('num_write', c_ulong),
317    ('ex_data', CRYPTO_EX_DATA),
318]
319assert sizeof(bio_st) == 64, sizeof(bio_st)
320assert alignment(bio_st) == 4, alignment(bio_st)
321class bio_f_buffer_ctx_struct(Structure):
322    pass
323bio_f_buffer_ctx_struct._fields_ = [
324    ('ibuf_size', c_int),
325    ('obuf_size', c_int),
326    ('ibuf', STRING),
327    ('ibuf_len', c_int),
328    ('ibuf_off', c_int),
329    ('obuf', STRING),
330    ('obuf_len', c_int),
331    ('obuf_off', c_int),
332]
333assert sizeof(bio_f_buffer_ctx_struct) == 32, sizeof(bio_f_buffer_ctx_struct)
334assert alignment(bio_f_buffer_ctx_struct) == 4, alignment(bio_f_buffer_ctx_struct)
335BIO_F_BUFFER_CTX = bio_f_buffer_ctx_struct
336class hostent(Structure):
337    pass
338hostent._fields_ = [
339]
340class bf_key_st(Structure):
341    pass
342bf_key_st._fields_ = [
343    ('P', c_uint * 18),
344    ('S', c_uint * 1024),
345]
346assert sizeof(bf_key_st) == 4168, sizeof(bf_key_st)
347assert alignment(bf_key_st) == 4, alignment(bf_key_st)
348BF_KEY = bf_key_st
349class bignum_st(Structure):
350    pass
351bignum_st._fields_ = [
352    ('d', POINTER(c_ulong)),
353    ('top', c_int),
354    ('dmax', c_int),
355    ('neg', c_int),
356    ('flags', c_int),
357]
358assert sizeof(bignum_st) == 20, sizeof(bignum_st)
359assert alignment(bignum_st) == 4, alignment(bignum_st)
360BIGNUM = bignum_st
361class bignum_ctx(Structure):
362    pass
363bignum_ctx._fields_ = [
364]
365BN_CTX = bignum_ctx
366class bn_blinding_st(Structure):
367    pass
368bn_blinding_st._fields_ = [
369    ('init', c_int),
370    ('A', POINTER(BIGNUM)),
371    ('Ai', POINTER(BIGNUM)),
372    ('mod', POINTER(BIGNUM)),
373    ('thread_id', c_ulong),
374]
375assert sizeof(bn_blinding_st) == 20, sizeof(bn_blinding_st)
376assert alignment(bn_blinding_st) == 4, alignment(bn_blinding_st)
377BN_BLINDING = bn_blinding_st
378class bn_mont_ctx_st(Structure):
379    pass
380bn_mont_ctx_st._fields_ = [
381    ('ri', c_int),
382    ('RR', BIGNUM),
383    ('N', BIGNUM),
384    ('Ni', BIGNUM),
385    ('n0', c_ulong),
386    ('flags', c_int),
387]
388assert sizeof(bn_mont_ctx_st) == 72, sizeof(bn_mont_ctx_st)
389assert alignment(bn_mont_ctx_st) == 4, alignment(bn_mont_ctx_st)
390BN_MONT_CTX = bn_mont_ctx_st
391class bn_recp_ctx_st(Structure):
392    pass
393bn_recp_ctx_st._fields_ = [
394    ('N', BIGNUM),
395    ('Nr', BIGNUM),
396    ('num_bits', c_int),
397    ('shift', c_int),
398    ('flags', c_int),
399]
400assert sizeof(bn_recp_ctx_st) == 52, sizeof(bn_recp_ctx_st)
401assert alignment(bn_recp_ctx_st) == 4, alignment(bn_recp_ctx_st)
402BN_RECP_CTX = bn_recp_ctx_st
403class buf_mem_st(Structure):
404    pass
405buf_mem_st._fields_ = [
406    ('length', c_int),
407    ('data', STRING),
408    ('max', c_int),
409]
410assert sizeof(buf_mem_st) == 12, sizeof(buf_mem_st)
411assert alignment(buf_mem_st) == 4, alignment(buf_mem_st)
412BUF_MEM = buf_mem_st
413class cast_key_st(Structure):
414    pass
415cast_key_st._fields_ = [
416    ('data', c_ulong * 32),
417    ('short_key', c_int),
418]
419assert sizeof(cast_key_st) == 132, sizeof(cast_key_st)
420assert alignment(cast_key_st) == 4, alignment(cast_key_st)
421CAST_KEY = cast_key_st
422class comp_method_st(Structure):
423    pass
424comp_method_st._fields_ = [
425    ('type', c_int),
426    ('name', STRING),
427    ('init', CFUNCTYPE(c_int)),
428    ('finish', CFUNCTYPE(None)),
429    ('compress', CFUNCTYPE(c_int)),
430    ('expand', CFUNCTYPE(c_int)),
431    ('ctrl', CFUNCTYPE(c_long)),
432    ('callback_ctrl', CFUNCTYPE(c_long)),
433]
434assert sizeof(comp_method_st) == 32, sizeof(comp_method_st)
435assert alignment(comp_method_st) == 4, alignment(comp_method_st)
436COMP_METHOD = comp_method_st
437class comp_ctx_st(Structure):
438    pass
439comp_ctx_st._fields_ = [
440    ('meth', POINTER(COMP_METHOD)),
441    ('compress_in', c_ulong),
442    ('compress_out', c_ulong),
443    ('expand_in', c_ulong),
444    ('expand_out', c_ulong),
445    ('ex_data', CRYPTO_EX_DATA),
446]
447assert sizeof(comp_ctx_st) == 28, sizeof(comp_ctx_st)
448assert alignment(comp_ctx_st) == 4, alignment(comp_ctx_st)
449COMP_CTX = comp_ctx_st
450class CRYPTO_dynlock_value(Structure):
451    pass
452CRYPTO_dynlock_value._fields_ = [
453]
454class CRYPTO_dynlock(Structure):
455    pass
456CRYPTO_dynlock._fields_ = [
457    ('references', c_int),
458    ('data', POINTER(CRYPTO_dynlock_value)),
459]
460assert sizeof(CRYPTO_dynlock) == 8, sizeof(CRYPTO_dynlock)
461assert alignment(CRYPTO_dynlock) == 4, alignment(CRYPTO_dynlock)
462BIO_dummy = bio_st
463CRYPTO_EX_new = CFUNCTYPE(c_int, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
464CRYPTO_EX_free = CFUNCTYPE(None, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
465CRYPTO_EX_dup = CFUNCTYPE(c_int, POINTER(CRYPTO_EX_DATA), POINTER(CRYPTO_EX_DATA), c_void_p, c_int, c_long, c_void_p)
466class crypto_ex_data_func_st(Structure):
467    pass
468crypto_ex_data_func_st._fields_ = [
469    ('argl', c_long),
470    ('argp', c_void_p),
471    ('new_func', POINTER(CRYPTO_EX_new)),
472    ('free_func', POINTER(CRYPTO_EX_free)),
473    ('dup_func', POINTER(CRYPTO_EX_dup)),
474]
475assert sizeof(crypto_ex_data_func_st) == 20, sizeof(crypto_ex_data_func_st)
476assert alignment(crypto_ex_data_func_st) == 4, alignment(crypto_ex_data_func_st)
477CRYPTO_EX_DATA_FUNCS = crypto_ex_data_func_st
478class st_CRYPTO_EX_DATA_IMPL(Structure):
479    pass
480CRYPTO_EX_DATA_IMPL = st_CRYPTO_EX_DATA_IMPL
481st_CRYPTO_EX_DATA_IMPL._fields_ = [
482]
483CRYPTO_MEM_LEAK_CB = CFUNCTYPE(c_void_p, c_ulong, STRING, c_int, c_int, c_void_p)
484DES_cblock = c_ubyte * 8
485const_DES_cblock = c_ubyte * 8
486class DES_ks(Structure):
487    pass
488class N6DES_ks3DOLLAR_9E(Union):
489    pass
490N6DES_ks3DOLLAR_9E._fields_ = [
491    ('cblock', DES_cblock),
492    ('deslong', c_ulong * 2),
493]
494assert sizeof(N6DES_ks3DOLLAR_9E) == 8, sizeof(N6DES_ks3DOLLAR_9E)
495assert alignment(N6DES_ks3DOLLAR_9E) == 4, alignment(N6DES_ks3DOLLAR_9E)
496DES_ks._fields_ = [
497    ('ks', N6DES_ks3DOLLAR_9E * 16),
498]
499assert sizeof(DES_ks) == 128, sizeof(DES_ks)
500assert alignment(DES_ks) == 4, alignment(DES_ks)
501DES_key_schedule = DES_ks
502_ossl_old_des_cblock = c_ubyte * 8
503class _ossl_old_des_ks_struct(Structure):
504    pass
505class N23_ossl_old_des_ks_struct4DOLLAR_10E(Union):
506    pass
507N23_ossl_old_des_ks_struct4DOLLAR_10E._fields_ = [
508    ('_', _ossl_old_des_cblock),
509    ('pad', c_ulong * 2),
510]
511assert sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 8, sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E)
512assert alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 4, alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E)
513_ossl_old_des_ks_struct._fields_ = [
514    ('ks', N23_ossl_old_des_ks_struct4DOLLAR_10E),
515]
516assert sizeof(_ossl_old_des_ks_struct) == 8, sizeof(_ossl_old_des_ks_struct)
517assert alignment(_ossl_old_des_ks_struct) == 4, alignment(_ossl_old_des_ks_struct)
518_ossl_old_des_key_schedule = _ossl_old_des_ks_struct * 16
519class dh_st(Structure):
520    pass
521DH = dh_st
522class dh_method(Structure):
523    pass
524dh_method._fields_ = [
525    ('name', STRING),
526    ('generate_key', CFUNCTYPE(c_int, POINTER(DH))),
527    ('compute_key', CFUNCTYPE(c_int, POINTER(c_ubyte), POINTER(BIGNUM), POINTER(DH))),
528    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DH), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
529    ('init', CFUNCTYPE(c_int, POINTER(DH))),
530    ('finish', CFUNCTYPE(c_int, POINTER(DH))),
531    ('flags', c_int),
532    ('app_data', STRING),
533]
534assert sizeof(dh_method) == 32, sizeof(dh_method)
535assert alignment(dh_method) == 4, alignment(dh_method)
536DH_METHOD = dh_method
537class engine_st(Structure):
538    pass
539ENGINE = engine_st
540dh_st._fields_ = [
541    ('pad', c_int),
542    ('version', c_int),
543    ('p', POINTER(BIGNUM)),
544    ('g', POINTER(BIGNUM)),
545    ('length', c_long),
546    ('pub_key', POINTER(BIGNUM)),
547    ('priv_key', POINTER(BIGNUM)),
548    ('flags', c_int),
549    ('method_mont_p', STRING),
550    ('q', POINTER(BIGNUM)),
551    ('j', POINTER(BIGNUM)),
552    ('seed', POINTER(c_ubyte)),
553    ('seedlen', c_int),
554    ('counter', POINTER(BIGNUM)),
555    ('references', c_int),
556    ('ex_data', CRYPTO_EX_DATA),
557    ('meth', POINTER(DH_METHOD)),
558    ('engine', POINTER(ENGINE)),
559]
560assert sizeof(dh_st) == 76, sizeof(dh_st)
561assert alignment(dh_st) == 4, alignment(dh_st)
562class dsa_st(Structure):
563    pass
564DSA = dsa_st
565class DSA_SIG_st(Structure):
566    pass
567DSA_SIG_st._fields_ = [
568    ('r', POINTER(BIGNUM)),
569    ('s', POINTER(BIGNUM)),
570]
571assert sizeof(DSA_SIG_st) == 8, sizeof(DSA_SIG_st)
572assert alignment(DSA_SIG_st) == 4, alignment(DSA_SIG_st)
573DSA_SIG = DSA_SIG_st
574class dsa_method(Structure):
575    pass
576dsa_method._fields_ = [
577    ('name', STRING),
578    ('dsa_do_sign', CFUNCTYPE(POINTER(DSA_SIG), POINTER(c_ubyte), c_int, POINTER(DSA))),
579    ('dsa_sign_setup', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BN_CTX), POINTER(POINTER(BIGNUM)), POINTER(POINTER(BIGNUM)))),
580    ('dsa_do_verify', CFUNCTYPE(c_int, POINTER(c_ubyte), c_int, POINTER(DSA_SIG), POINTER(DSA))),
581    ('dsa_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
582    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
583    ('init', CFUNCTYPE(c_int, POINTER(DSA))),
584    ('finish', CFUNCTYPE(c_int, POINTER(DSA))),
585    ('flags', c_int),
586    ('app_data', STRING),
587]
588assert sizeof(dsa_method) == 40, sizeof(dsa_method)
589assert alignment(dsa_method) == 4, alignment(dsa_method)
590DSA_METHOD = dsa_method
591dsa_st._fields_ = [
592    ('pad', c_int),
593    ('version', c_long),
594    ('write_params', c_int),
595    ('p', POINTER(BIGNUM)),
596    ('q', POINTER(BIGNUM)),
597    ('g', POINTER(BIGNUM)),
598    ('pub_key', POINTER(BIGNUM)),
599    ('priv_key', POINTER(BIGNUM)),
600    ('kinv', POINTER(BIGNUM)),
601    ('r', POINTER(BIGNUM)),
602    ('flags', c_int),
603    ('method_mont_p', STRING),
604    ('references', c_int),
605    ('ex_data', CRYPTO_EX_DATA),
606    ('meth', POINTER(DSA_METHOD)),
607    ('engine', POINTER(ENGINE)),
608]
609assert sizeof(dsa_st) == 68, sizeof(dsa_st)
610assert alignment(dsa_st) == 4, alignment(dsa_st)
611class evp_pkey_st(Structure):
612    pass
613class N11evp_pkey_st4DOLLAR_12E(Union):
614    pass
615class rsa_st(Structure):
616    pass
617N11evp_pkey_st4DOLLAR_12E._fields_ = [
618    ('ptr', STRING),
619    ('rsa', POINTER(rsa_st)),
620    ('dsa', POINTER(dsa_st)),
621    ('dh', POINTER(dh_st)),
622]
623assert sizeof(N11evp_pkey_st4DOLLAR_12E) == 4, sizeof(N11evp_pkey_st4DOLLAR_12E)
624assert alignment(N11evp_pkey_st4DOLLAR_12E) == 4, alignment(N11evp_pkey_st4DOLLAR_12E)
625evp_pkey_st._fields_ = [
626    ('type', c_int),
627    ('save_type', c_int),
628    ('references', c_int),
629    ('pkey', N11evp_pkey_st4DOLLAR_12E),
630    ('save_parameters', c_int),
631    ('attributes', POINTER(STACK)),
632]
633assert sizeof(evp_pkey_st) == 24, sizeof(evp_pkey_st)
634assert alignment(evp_pkey_st) == 4, alignment(evp_pkey_st)
635class env_md_st(Structure):
636    pass
637class env_md_ctx_st(Structure):
638    pass
639EVP_MD_CTX = env_md_ctx_st
640env_md_st._fields_ = [
641    ('type', c_int),
642    ('pkey_type', c_int),
643    ('md_size', c_int),
644    ('flags', c_ulong),
645    ('init', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
646    ('update', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), c_void_p, c_ulong)),
647    ('final', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(c_ubyte))),
648    ('copy', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(EVP_MD_CTX))),
649    ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
650    ('sign', CFUNCTYPE(c_int)),
651    ('verify', CFUNCTYPE(c_int)),
652    ('required_pkey_type', c_int * 5),
653    ('block_size', c_int),
654    ('ctx_size', c_int),
655]
656assert sizeof(env_md_st) == 72, sizeof(env_md_st)
657assert alignment(env_md_st) == 4, alignment(env_md_st)
658EVP_MD = env_md_st
659env_md_ctx_st._fields_ = [
660    ('digest', POINTER(EVP_MD)),
661    ('engine', POINTER(ENGINE)),
662    ('flags', c_ulong),
663    ('md_data', c_void_p),
664]
665assert sizeof(env_md_ctx_st) == 16, sizeof(env_md_ctx_st)
666assert alignment(env_md_ctx_st) == 4, alignment(env_md_ctx_st)
667class evp_cipher_st(Structure):
668    pass
669class evp_cipher_ctx_st(Structure):
670    pass
671EVP_CIPHER_CTX = evp_cipher_ctx_st
672evp_cipher_st._fields_ = [
673    ('nid', c_int),
674    ('block_size', c_int),
675    ('key_len', c_int),
676    ('iv_len', c_int),
677    ('flags', c_ulong),
678    ('init', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_int)),
679    ('do_cipher', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_uint)),
680    ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX))),
681    ('ctx_size', c_int),
682    ('set_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
683    ('get_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
684    ('ctrl', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), c_int, c_int, c_void_p)),
685    ('app_data', c_void_p),
686]
687assert sizeof(evp_cipher_st) == 52, sizeof(evp_cipher_st)
688assert alignment(evp_cipher_st) == 4, alignment(evp_cipher_st)
689class evp_cipher_info_st(Structure):
690    pass
691EVP_CIPHER = evp_cipher_st
692evp_cipher_info_st._fields_ = [
693    ('cipher', POINTER(EVP_CIPHER)),
694    ('iv', c_ubyte * 16),
695]
696assert sizeof(evp_cipher_info_st) == 20, sizeof(evp_cipher_info_st)
697assert alignment(evp_cipher_info_st) == 4, alignment(evp_cipher_info_st)
698EVP_CIPHER_INFO = evp_cipher_info_st
699evp_cipher_ctx_st._fields_ = [
700    ('cipher', POINTER(EVP_CIPHER)),
701    ('engine', POINTER(ENGINE)),
702    ('encrypt', c_int),
703    ('buf_len', c_int),
704    ('oiv', c_ubyte * 16),
705    ('iv', c_ubyte * 16),
706    ('buf', c_ubyte * 32),
707    ('num', c_int),
708    ('app_data', c_void_p),
709    ('key_len', c_int),
710    ('flags', c_ulong),
711    ('cipher_data', c_void_p),
712    ('final_used', c_int),
713    ('block_mask', c_int),
714    ('final', c_ubyte * 32),
715]
716assert sizeof(evp_cipher_ctx_st) == 140, sizeof(evp_cipher_ctx_st)
717assert alignment(evp_cipher_ctx_st) == 4, alignment(evp_cipher_ctx_st)
718class evp_Encode_Ctx_st(Structure):
719    pass
720evp_Encode_Ctx_st._fields_ = [
721    ('num', c_int),
722    ('length', c_int),
723    ('enc_data', c_ubyte * 80),
724    ('line_num', c_int),
725    ('expect_nl', c_int),
726]
727assert sizeof(evp_Encode_Ctx_st) == 96, sizeof(evp_Encode_Ctx_st)
728assert alignment(evp_Encode_Ctx_st) == 4, alignment(evp_Encode_Ctx_st)
729EVP_ENCODE_CTX = evp_Encode_Ctx_st
730EVP_PBE_KEYGEN = CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), STRING, c_int, POINTER(ASN1_TYPE), POINTER(EVP_CIPHER), POINTER(EVP_MD), c_int)
731class lhash_node_st(Structure):
732    pass
733lhash_node_st._fields_ = [
734    ('data', c_void_p),
735    ('next', POINTER(lhash_node_st)),
736    ('hash', c_ulong),
737]
738assert sizeof(lhash_node_st) == 12, sizeof(lhash_node_st)
739assert alignment(lhash_node_st) == 4, alignment(lhash_node_st)
740LHASH_NODE = lhash_node_st
741LHASH_COMP_FN_TYPE = CFUNCTYPE(c_int, c_void_p, c_void_p)
742LHASH_HASH_FN_TYPE = CFUNCTYPE(c_ulong, c_void_p)
743LHASH_DOALL_FN_TYPE = CFUNCTYPE(None, c_void_p)
744LHASH_DOALL_ARG_FN_TYPE = CFUNCTYPE(None, c_void_p, c_void_p)
745class lhash_st(Structure):
746    pass
747lhash_st._fields_ = [
748    ('b', POINTER(POINTER(LHASH_NODE))),
749    ('comp', LHASH_COMP_FN_TYPE),
750    ('hash', LHASH_HASH_FN_TYPE),
751    ('num_nodes', c_uint),
752    ('num_alloc_nodes', c_uint),
753    ('p', c_uint),
754    ('pmax', c_uint),
755    ('up_load', c_ulong),
756    ('down_load', c_ulong),
757    ('num_items', c_ulong),
758    ('num_expands', c_ulong),
759    ('num_expand_reallocs', c_ulong),
760    ('num_contracts', c_ulong),
761    ('num_contract_reallocs', c_ulong),
762    ('num_hash_calls', c_ulong),
763    ('num_comp_calls', c_ulong),
764    ('num_insert', c_ulong),
765    ('num_replace', c_ulong),
766    ('num_delete', c_ulong),
767    ('num_no_delete', c_ulong),
768    ('num_retrieve', c_ulong),
769    ('num_retrieve_miss', c_ulong),
770    ('num_hash_comps', c_ulong),
771    ('error', c_int),
772]
773assert sizeof(lhash_st) == 96, sizeof(lhash_st)
774assert alignment(lhash_st) == 4, alignment(lhash_st)
775LHASH = lhash_st
776class MD2state_st(Structure):
777    pass
778MD2state_st._fields_ = [
779    ('num', c_int),
780    ('data', c_ubyte * 16),
781    ('cksm', c_uint * 16),
782    ('state', c_uint * 16),
783]
784assert sizeof(MD2state_st) == 148, sizeof(MD2state_st)
785assert alignment(MD2state_st) == 4, alignment(MD2state_st)
786MD2_CTX = MD2state_st
787class MD4state_st(Structure):
788    pass
789MD4state_st._fields_ = [
790    ('A', c_uint),
791    ('B', c_uint),
792    ('C', c_uint),
793    ('D', c_uint),
794    ('Nl', c_uint),
795    ('Nh', c_uint),
796    ('data', c_uint * 16),
797    ('num', c_int),
798]
799assert sizeof(MD4state_st) == 92, sizeof(MD4state_st)
800assert alignment(MD4state_st) == 4, alignment(MD4state_st)
801MD4_CTX = MD4state_st
802class MD5state_st(Structure):
803    pass
804MD5state_st._fields_ = [
805    ('A', c_uint),
806    ('B', c_uint),
807    ('C', c_uint),
808    ('D', c_uint),
809    ('Nl', c_uint),
810    ('Nh', c_uint),
811    ('data', c_uint * 16),
812    ('num', c_int),
813]
814assert sizeof(MD5state_st) == 92, sizeof(MD5state_st)
815assert alignment(MD5state_st) == 4, alignment(MD5state_st)
816MD5_CTX = MD5state_st
817class mdc2_ctx_st(Structure):
818    pass
819mdc2_ctx_st._fields_ = [
820    ('num', c_int),
821    ('data', c_ubyte * 8),
822    ('h', DES_cblock),
823    ('hh', DES_cblock),
824    ('pad_type', c_int),
825]
826assert sizeof(mdc2_ctx_st) == 32, sizeof(mdc2_ctx_st)
827assert alignment(mdc2_ctx_st) == 4, alignment(mdc2_ctx_st)
828MDC2_CTX = mdc2_ctx_st
829class obj_name_st(Structure):
830    pass
831obj_name_st._fields_ = [
832    ('type', c_int),
833    ('alias', c_int),
834    ('name', STRING),
835    ('data', STRING),
836]
837assert sizeof(obj_name_st) == 16, sizeof(obj_name_st)
838assert alignment(obj_name_st) == 4, alignment(obj_name_st)
839OBJ_NAME = obj_name_st
840ASN1_TIME = asn1_string_st
841ASN1_NULL = c_int
842EVP_PKEY = evp_pkey_st
843class x509_st(Structure):
844    pass
845X509 = x509_st
846class X509_algor_st(Structure):
847    pass
848X509_ALGOR = X509_algor_st
849class X509_crl_st(Structure):
850    pass
851X509_CRL = X509_crl_st
852class X509_name_st(Structure):
853    pass
854X509_NAME = X509_name_st
855class x509_store_st(Structure):
856    pass
857X509_STORE = x509_store_st
858class x509_store_ctx_st(Structure):
859    pass
860X509_STORE_CTX = x509_store_ctx_st
861engine_st._fields_ = [
862]
863class PEM_Encode_Seal_st(Structure):
864    pass
865PEM_Encode_Seal_st._fields_ = [
866    ('encode', EVP_ENCODE_CTX),
867    ('md', EVP_MD_CTX),
868    ('cipher', EVP_CIPHER_CTX),
869]
870assert sizeof(PEM_Encode_Seal_st) == 252, sizeof(PEM_Encode_Seal_st)
871assert alignment(PEM_Encode_Seal_st) == 4, alignment(PEM_Encode_Seal_st)
872PEM_ENCODE_SEAL_CTX = PEM_Encode_Seal_st
873class pem_recip_st(Structure):
874    pass
875pem_recip_st._fields_ = [
876    ('name', STRING),
877    ('dn', POINTER(X509_NAME)),
878    ('cipher', c_int),
879    ('key_enc', c_int),
880]
881assert sizeof(pem_recip_st) == 16, sizeof(pem_recip_st)
882assert alignment(pem_recip_st) == 4, alignment(pem_recip_st)
883PEM_USER = pem_recip_st
884class pem_ctx_st(Structure):
885    pass
886class N10pem_ctx_st4DOLLAR_16E(Structure):
887    pass
888N10pem_ctx_st4DOLLAR_16E._fields_ = [
889    ('version', c_int),
890    ('mode', c_int),
891]
892assert sizeof(N10pem_ctx_st4DOLLAR_16E) == 8, sizeof(N10pem_ctx_st4DOLLAR_16E)
893assert alignment(N10pem_ctx_st4DOLLAR_16E) == 4, alignment(N10pem_ctx_st4DOLLAR_16E)
894class N10pem_ctx_st4DOLLAR_17E(Structure):
895    pass
896N10pem_ctx_st4DOLLAR_17E._fields_ = [
897    ('cipher', c_int),
898]
899assert sizeof(N10pem_ctx_st4DOLLAR_17E) == 4, sizeof(N10pem_ctx_st4DOLLAR_17E)
900assert alignment(N10pem_ctx_st4DOLLAR_17E) == 4, alignment(N10pem_ctx_st4DOLLAR_17E)
901pem_ctx_st._fields_ = [
902    ('type', c_int),
903    ('proc_type', N10pem_ctx_st4DOLLAR_16E),
904    ('domain', STRING),
905    ('DEK_info', N10pem_ctx_st4DOLLAR_17E),
906    ('originator', POINTER(PEM_USER)),
907    ('num_recipient', c_int),
908    ('recipient', POINTER(POINTER(PEM_USER))),
909    ('x509_chain', POINTER(STACK)),
910    ('md', POINTER(EVP_MD)),
911    ('md_enc', c_int),
912    ('md_len', c_int),
913    ('md_data', STRING),
914    ('dec', POINTER(EVP_CIPHER)),
915    ('key_len', c_int),
916    ('key', POINTER(c_ubyte)),
917    ('data_enc', c_int),
918    ('data_len', c_int),
919    ('data', POINTER(c_ubyte)),
920]
921assert sizeof(pem_ctx_st) == 76, sizeof(pem_ctx_st)
922assert alignment(pem_ctx_st) == 4, alignment(pem_ctx_st)
923PEM_CTX = pem_ctx_st
924pem_password_cb = CFUNCTYPE(c_int, STRING, c_int, c_int, c_void_p)
925class pkcs7_issuer_and_serial_st(Structure):
926    pass
927pkcs7_issuer_and_serial_st._fields_ = [
928    ('issuer', POINTER(X509_NAME)),
929    ('serial', POINTER(ASN1_INTEGER)),
930]
931assert sizeof(pkcs7_issuer_and_serial_st) == 8, sizeof(pkcs7_issuer_and_serial_st)
932assert alignment(pkcs7_issuer_and_serial_st) == 4, alignment(pkcs7_issuer_and_serial_st)
933PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st
934class pkcs7_signer_info_st(Structure):
935    pass
936pkcs7_signer_info_st._fields_ = [
937    ('version', POINTER(ASN1_INTEGER)),
938    ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
939    ('digest_alg', POINTER(X509_ALGOR)),
940    ('auth_attr', POINTER(STACK)),
941    ('digest_enc_alg', POINTER(X509_ALGOR)),
942    ('enc_digest', POINTER(ASN1_OCTET_STRING)),
943    ('unauth_attr', POINTER(STACK)),
944    ('pkey', POINTER(EVP_PKEY)),
945]
946assert sizeof(pkcs7_signer_info_st) == 32, sizeof(pkcs7_signer_info_st)
947assert alignment(pkcs7_signer_info_st) == 4, alignment(pkcs7_signer_info_st)
948PKCS7_SIGNER_INFO = pkcs7_signer_info_st
949class pkcs7_recip_info_st(Structure):
950    pass
951pkcs7_recip_info_st._fields_ = [
952    ('version', POINTER(ASN1_INTEGER)),
953    ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
954    ('key_enc_algor', POINTER(X509_ALGOR)),
955    ('enc_key', POINTER(ASN1_OCTET_STRING)),
956    ('cert', POINTER(X509)),
957]
958assert sizeof(pkcs7_recip_info_st) == 20, sizeof(pkcs7_recip_info_st)
959assert alignment(pkcs7_recip_info_st) == 4, alignment(pkcs7_recip_info_st)
960PKCS7_RECIP_INFO = pkcs7_recip_info_st
961class pkcs7_signed_st(Structure):
962    pass
963class pkcs7_st(Structure):
964    pass
965pkcs7_signed_st._fields_ = [
966    ('version', POINTER(ASN1_INTEGER)),
967    ('md_algs', POINTER(STACK)),
968    ('cert', POINTER(STACK)),
969    ('crl', POINTER(STACK)),
970    ('signer_info', POINTER(STACK)),
971    ('contents', POINTER(pkcs7_st)),
972]
973assert sizeof(pkcs7_signed_st) == 24, sizeof(pkcs7_signed_st)
974assert alignment(pkcs7_signed_st) == 4, alignment(pkcs7_signed_st)
975PKCS7_SIGNED = pkcs7_signed_st
976class pkcs7_enc_content_st(Structure):
977    pass
978pkcs7_enc_content_st._fields_ = [
979    ('content_type', POINTER(ASN1_OBJECT)),
980    ('algorithm', POINTER(X509_ALGOR)),
981    ('enc_data', POINTER(ASN1_OCTET_STRING)),
982    ('cipher', POINTER(EVP_CIPHER)),
983]
984assert sizeof(pkcs7_enc_content_st) == 16, sizeof(pkcs7_enc_content_st)
985assert alignment(pkcs7_enc_content_st) == 4, alignment(pkcs7_enc_content_st)
986PKCS7_ENC_CONTENT = pkcs7_enc_content_st
987class pkcs7_enveloped_st(Structure):
988    pass
989pkcs7_enveloped_st._fields_ = [
990    ('version', POINTER(ASN1_INTEGER)),
991    ('recipientinfo', POINTER(STACK)),
992    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
993]
994assert sizeof(pkcs7_enveloped_st) == 12, sizeof(pkcs7_enveloped_st)
995assert alignment(pkcs7_enveloped_st) == 4, alignment(pkcs7_enveloped_st)
996PKCS7_ENVELOPE = pkcs7_enveloped_st
997class pkcs7_signedandenveloped_st(Structure):
998    pass
999pkcs7_signedandenveloped_st._fields_ = [
1000    ('version', POINTER(ASN1_INTEGER)),
1001    ('md_algs', POINTER(STACK)),
1002    ('cert', POINTER(STACK)),
1003    ('crl', POINTER(STACK)),
1004    ('signer_info', POINTER(STACK)),
1005    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
1006    ('recipientinfo', POINTER(STACK)),
1007]
1008assert sizeof(pkcs7_signedandenveloped_st) == 28, sizeof(pkcs7_signedandenveloped_st)
1009assert alignment(pkcs7_signedandenveloped_st) == 4, alignment(pkcs7_signedandenveloped_st)
1010PKCS7_SIGN_ENVELOPE = pkcs7_signedandenveloped_st
1011class pkcs7_digest_st(Structure):
1012    pass
1013pkcs7_digest_st._fields_ = [
1014    ('version', POINTER(ASN1_INTEGER)),
1015    ('md', POINTER(X509_ALGOR)),
1016    ('contents', POINTER(pkcs7_st)),
1017    ('digest', POINTER(ASN1_OCTET_STRING)),
1018]
1019assert sizeof(pkcs7_digest_st) == 16, sizeof(pkcs7_digest_st)
1020assert alignment(pkcs7_digest_st) == 4, alignment(pkcs7_digest_st)
1021PKCS7_DIGEST = pkcs7_digest_st
1022class pkcs7_encrypted_st(Structure):
1023    pass
1024pkcs7_encrypted_st._fields_ = [
1025    ('version', POINTER(ASN1_INTEGER)),
1026    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
1027]
1028assert sizeof(pkcs7_encrypted_st) == 8, sizeof(pkcs7_encrypted_st)
1029assert alignment(pkcs7_encrypted_st) == 4, alignment(pkcs7_encrypted_st)
1030PKCS7_ENCRYPT = pkcs7_encrypted_st
1031class N8pkcs7_st4DOLLAR_15E(Union):
1032    pass
1033N8pkcs7_st4DOLLAR_15E._fields_ = [
1034    ('ptr', STRING),
1035    ('data', POINTER(ASN1_OCTET_STRING)),
1036    ('sign', POINTER(PKCS7_SIGNED)),
1037    ('enveloped', POINTER(PKCS7_ENVELOPE)),
1038    ('signed_and_enveloped', POINTER(PKCS7_SIGN_ENVELOPE)),
1039    ('digest', POINTER(PKCS7_DIGEST)),
1040    ('encrypted', POINTER(PKCS7_ENCRYPT)),
1041    ('other', POINTER(ASN1_TYPE)),
1042]
1043assert sizeof(N8pkcs7_st4DOLLAR_15E) == 4, sizeof(N8pkcs7_st4DOLLAR_15E)
1044assert alignment(N8pkcs7_st4DOLLAR_15E) == 4, alignment(N8pkcs7_st4DOLLAR_15E)
1045pkcs7_st._fields_ = [
1046    ('asn1', POINTER(c_ubyte)),
1047    ('length', c_long),
1048    ('state', c_int),
1049    ('detached', c_int),
1050    ('type', POINTER(ASN1_OBJECT)),
1051    ('d', N8pkcs7_st4DOLLAR_15E),
1052]
1053assert sizeof(pkcs7_st) == 24, sizeof(pkcs7_st)
1054assert alignment(pkcs7_st) == 4, alignment(pkcs7_st)
1055PKCS7 = pkcs7_st
1056class rc2_key_st(Structure):
1057    pass
1058rc2_key_st._fields_ = [
1059    ('data', c_uint * 64),
1060]
1061assert sizeof(rc2_key_st) == 256, sizeof(rc2_key_st)
1062assert alignment(rc2_key_st) == 4, alignment(rc2_key_st)
1063RC2_KEY = rc2_key_st
1064class rc4_key_st(Structure):
1065    pass
1066rc4_key_st._fields_ = [
1067    ('x', c_ubyte),
1068    ('y', c_ubyte),
1069    ('data', c_ubyte * 256),
1070]
1071assert sizeof(rc4_key_st) == 258, sizeof(rc4_key_st)
1072assert alignment(rc4_key_st) == 1, alignment(rc4_key_st)
1073RC4_KEY = rc4_key_st
1074class rc5_key_st(Structure):
1075    pass
1076rc5_key_st._fields_ = [
1077    ('rounds', c_int),
1078    ('data', c_ulong * 34),
1079]
1080assert sizeof(rc5_key_st) == 140, sizeof(rc5_key_st)
1081assert alignment(rc5_key_st) == 4, alignment(rc5_key_st)
1082RC5_32_KEY = rc5_key_st
1083class RIPEMD160state_st(Structure):
1084    pass
1085RIPEMD160state_st._fields_ = [
1086    ('A', c_uint),
1087    ('B', c_uint),
1088    ('C', c_uint),
1089    ('D', c_uint),
1090    ('E', c_uint),
1091    ('Nl', c_uint),
1092    ('Nh', c_uint),
1093    ('data', c_uint * 16),
1094    ('num', c_int),
1095]
1096assert sizeof(RIPEMD160state_st) == 96, sizeof(RIPEMD160state_st)
1097assert alignment(RIPEMD160state_st) == 4, alignment(RIPEMD160state_st)
1098RIPEMD160_CTX = RIPEMD160state_st
1099RSA = rsa_st
1100class rsa_meth_st(Structure):
1101    pass
1102rsa_meth_st._fields_ = [
1103    ('name', STRING),
1104    ('rsa_pub_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
1105    ('rsa_pub_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
1106    ('rsa_priv_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
1107    ('rsa_priv_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
1108    ('rsa_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(RSA))),
1109    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
1110    ('init', CFUNCTYPE(c_int, POINTER(RSA))),
1111    ('finish', CFUNCTYPE(c_int, POINTER(RSA))),
1112    ('flags', c_int),
1113    ('app_data', STRING),
1114    ('rsa_sign', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), POINTER(c_uint), POINTER(RSA))),
1115    ('rsa_verify', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), c_uint, POINTER(RSA))),
1116]
1117assert sizeof(rsa_meth_st) == 52, sizeof(rsa_meth_st)
1118assert alignment(rsa_meth_st) == 4, alignment(rsa_meth_st)
1119RSA_METHOD = rsa_meth_st
1120rsa_st._fields_ = [
1121    ('pad', c_int),
1122    ('version', c_long),
1123    ('meth', POINTER(RSA_METHOD)),
1124    ('engine', POINTER(ENGINE)),
1125    ('n', POINTER(BIGNUM)),
1126    ('e', POINTER(BIGNUM)),
1127    ('d', POINTER(BIGNUM)),
1128    ('p', POINTER(BIGNUM)),
1129    ('q', POINTER(BIGNUM)),
1130    ('dmp1', POINTER(BIGNUM)),
1131    ('dmq1', POINTER(BIGNUM)),
1132    ('iqmp', POINTER(BIGNUM)),
1133    ('ex_data', CRYPTO_EX_DATA),
1134    ('references', c_int),
1135    ('flags', c_int),
1136    ('_method_mod_n', POINTER(BN_MONT_CTX)),
1137    ('_method_mod_p', POINTER(BN_MONT_CTX)),
1138    ('_method_mod_q', POINTER(BN_MONT_CTX)),
1139    ('bignum_data', STRING),
1140    ('blinding', POINTER(BN_BLINDING)),
1141]
1142assert sizeof(rsa_st) == 84, sizeof(rsa_st)
1143assert alignment(rsa_st) == 4, alignment(rsa_st)
1144openssl_fptr = CFUNCTYPE(None)
1145class SHAstate_st(Structure):
1146    pass
1147SHAstate_st._fields_ = [
1148    ('h0', c_uint),
1149    ('h1', c_uint),
1150    ('h2', c_uint),
1151    ('h3', c_uint),
1152    ('h4', c_uint),
1153    ('Nl', c_uint),
1154    ('Nh', c_uint),
1155    ('data', c_uint * 16),
1156    ('num', c_int),
1157]
1158assert sizeof(SHAstate_st) == 96, sizeof(SHAstate_st)
1159assert alignment(SHAstate_st) == 4, alignment(SHAstate_st)
1160SHA_CTX = SHAstate_st
1161class ssl_st(Structure):
1162    pass
1163ssl_crock_st = POINTER(ssl_st)
1164class ssl_cipher_st(Structure):
1165    pass
1166ssl_cipher_st._fields_ = [
1167    ('valid', c_int),
1168    ('name', STRING),
1169    ('id', c_ulong),
1170    ('algorithms', c_ulong),
1171    ('algo_strength', c_ulong),
1172    ('algorithm2', c_ulong),
1173    ('strength_bits', c_int),
1174    ('alg_bits', c_int),
1175    ('mask', c_ulong),
1176    ('mask_strength', c_ulong),
1177]
1178assert sizeof(ssl_cipher_st) == 40, sizeof(ssl_cipher_st)
1179assert alignment(ssl_cipher_st) == 4, alignment(ssl_cipher_st)
1180SSL_CIPHER = ssl_cipher_st
1181SSL = ssl_st
1182class ssl_ctx_st(Structure):
1183    pass
1184SSL_CTX = ssl_ctx_st
1185class ssl_method_st(Structure):
1186    pass
1187class ssl3_enc_method(Structure):
1188    pass
1189ssl_method_st._fields_ = [
1190    ('version', c_int),
1191    ('ssl_new', CFUNCTYPE(c_int, POINTER(SSL))),
1192    ('ssl_clear', CFUNCTYPE(None, POINTER(SSL))),
1193    ('ssl_free', CFUNCTYPE(None, POINTER(SSL))),
1194    ('ssl_accept', CFUNCTYPE(c_int, POINTER(SSL))),
1195    ('ssl_connect', CFUNCTYPE(c_int, POINTER(SSL))),
1196    ('ssl_read', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
1197    ('ssl_peek', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
1198    ('ssl_write', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
1199    ('ssl_shutdown', CFUNCTYPE(c_int, POINTER(SSL))),
1200    ('ssl_renegotiate', CFUNCTYPE(c_int, POINTER(SSL))),
1201    ('ssl_renegotiate_check', CFUNCTYPE(c_int, POINTER(SSL))),
1202    ('ssl_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, c_long, c_void_p)),
1203    ('ssl_ctx_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, c_long, c_void_p)),
1204    ('get_cipher_by_char', CFUNCTYPE(POINTER(SSL_CIPHER), POINTER(c_ubyte))),
1205    ('put_cipher_by_char', CFUNCTYPE(c_int, POINTER(SSL_CIPHER), POINTER(c_ubyte))),
1206    ('ssl_pending', CFUNCTYPE(c_int, POINTER(SSL))),
1207    ('num_ciphers', CFUNCTYPE(c_int)),
1208    ('get_cipher', CFUNCTYPE(POINTER(SSL_CIPHER), c_uint)),
1209    ('get_ssl_method', CFUNCTYPE(POINTER(ssl_method_st), c_int)),
1210    ('get_timeout', CFUNCTYPE(c_long)),
1211    ('ssl3_enc', POINTER(ssl3_enc_method)),
1212    ('ssl_version', CFUNCTYPE(c_int)),
1213    ('ssl_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, CFUNCTYPE(None))),
1214    ('ssl_ctx_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, CFUNCTYPE(None))),
1215]
1216assert sizeof(ssl_method_st) == 100, sizeof(ssl_method_st)
1217assert alignment(ssl_method_st) == 4, alignment(ssl_method_st)
1218ssl3_enc_method._fields_ = [
1219]
1220SSL_METHOD = ssl_method_st
1221class ssl_session_st(Structure):
1222    pass
1223class sess_cert_st(Structure):
1224    pass
1225ssl_session_st._fields_ = [
1226    ('ssl_version', c_int),
1227    ('key_arg_length', c_uint),
1228    ('key_arg', c_ubyte * 8),
1229    ('master_key_length', c_int),
1230    ('master_key', c_ubyte * 48),
1231    ('session_id_length', c_uint),
1232    ('session_id', c_ubyte * 32),
1233    ('sid_ctx_length', c_uint),
1234    ('sid_ctx', c_ubyte * 32),
1235    ('not_resumable', c_int),
1236    ('sess_cert', POINTER(sess_cert_st)),
1237    ('peer', POINTER(X509)),
1238    ('verify_result', c_long),
1239    ('references', c_int),
1240    ('timeout', c_long),
1241    ('time', c_long),
1242    ('compress_meth', c_int),
1243    ('cipher', POINTER(SSL_CIPHER)),
1244    ('cipher_id', c_ulong),
1245    ('ciphers', POINTER(STACK)),
1246    ('ex_data', CRYPTO_EX_DATA),
1247    ('prev', POINTER(ssl_session_st)),
1248    ('next', POINTER(ssl_session_st)),
1249]
1250assert sizeof(ssl_session_st) == 200, sizeof(ssl_session_st)
1251assert alignment(ssl_session_st) == 4, alignment(ssl_session_st)
1252sess_cert_st._fields_ = [
1253]
1254SSL_SESSION = ssl_session_st
1255GEN_SESSION_CB = CFUNCTYPE(c_int, POINTER(SSL), POINTER(c_ubyte), POINTER(c_uint))
1256class ssl_comp_st(Structure):
1257    pass
1258ssl_comp_st._fields_ = [
1259    ('id', c_int),
1260    ('name', STRING),
1261    ('method', POINTER(COMP_METHOD)),
1262]
1263assert sizeof(ssl_comp_st) == 12, sizeof(ssl_comp_st)
1264assert alignment(ssl_comp_st) == 4, alignment(ssl_comp_st)
1265SSL_COMP = ssl_comp_st
1266class N10ssl_ctx_st4DOLLAR_18E(Structure):
1267    pass
1268N10ssl_ctx_st4DOLLAR_18E._fields_ = [
1269    ('sess_connect', c_int),
1270    ('sess_connect_renegotiate', c_int),
1271    ('sess_connect_good', c_int),
1272    ('sess_accept', c_int),
1273    ('sess_accept_renegotiate', c_int),
1274    ('sess_accept_good', c_int),
1275    ('sess_miss', c_int),
1276    ('sess_timeout', c_int),
1277    ('sess_cache_full', c_int),
1278    ('sess_hit', c_int),
1279    ('sess_cb_hit', c_int),
1280]
1281assert sizeof(N10ssl_ctx_st4DOLLAR_18E) == 44, sizeof(N10ssl_ctx_st4DOLLAR_18E)
1282assert alignment(N10ssl_ctx_st4DOLLAR_18E) == 4, alignment(N10ssl_ctx_st4DOLLAR_18E)
1283class cert_st(Structure):
1284    pass
1285ssl_ctx_st._fields_ = [
1286    ('method', POINTER(SSL_METHOD)),
1287    ('cipher_list', POINTER(STACK)),
1288    ('cipher_list_by_id', POINTER(STACK)),
1289    ('cert_store', POINTER(x509_store_st)),
1290    ('sessions', POINTER(lhash_st)),
1291    ('session_cache_size', c_ulong),
1292    ('session_cache_head', POINTER(ssl_session_st)),
1293    ('session_cache_tail', POINTER(ssl_session_st)),
1294    ('session_cache_mode', c_int),
1295    ('session_timeout', c_long),
1296    ('new_session_cb', CFUNCTYPE(c_int, POINTER(ssl_st), POINTER(SSL_SESSION))),
1297    ('remove_session_cb', CFUNCTYPE(None, POINTER(ssl_ctx_st), POINTER(SSL_SESSION))),
1298    ('get_session_cb', CFUNCTYPE(POINTER(SSL_SESSION), POINTER(ssl_st), POINTER(c_ubyte), c_int, POINTER(c_int))),
1299    ('stats', N10ssl_ctx_st4DOLLAR_18E),
1300    ('references', c_int),
1301    ('app_verify_callback', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), c_void_p)),
1302    ('app_verify_arg', c_void_p),
1303    ('default_passwd_callback', POINTER(pem_password_cb)),
1304    ('default_passwd_callback_userdata', c_void_p),
1305    ('client_cert_cb', CFUNCTYPE(c_int, POINTER(SSL), POINTER(POINTER(X509)), POINTER(POINTER(EVP_PKEY)))),
1306    ('ex_data', CRYPTO_EX_DATA),
1307    ('rsa_md5', POINTER(EVP_MD)),
1308    ('md5', POINTER(EVP_MD)),
1309    ('sha1', POINTER(EVP_MD)),
1310    ('extra_certs', POINTER(STACK)),
1311    ('comp_methods', POINTER(STACK)),
1312    ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
1313    ('client_CA', POINTER(STACK)),
1314    ('options', c_ulong),
1315    ('mode', c_ulong),
1316    ('max_cert_list', c_long),
1317    ('cert', POINTER(cert_st)),
1318    ('read_ahead', c_int),
1319    ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
1320    ('msg_callback_arg', c_void_p),
1321    ('verify_mode', c_int),
1322    ('verify_depth', c_int),
1323    ('sid_ctx_length', c_uint),
1324    ('sid_ctx', c_ubyte * 32),
1325    ('default_verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
1326    ('generate_session_id', GEN_SESSION_CB),
1327    ('purpose', c_int),
1328    ('trust', c_int),
1329    ('quiet_shutdown', c_int),
1330]
1331assert sizeof(ssl_ctx_st) == 248, sizeof(ssl_ctx_st)
1332assert alignment(ssl_ctx_st) == 4, alignment(ssl_ctx_st)
1333cert_st._fields_ = [
1334]
1335class ssl2_state_st(Structure):
1336    pass
1337class ssl3_state_st(Structure):
1338    pass
1339ssl_st._fields_ = [
1340    ('version', c_int),
1341    ('type', c_int),
1342    ('method', POINTER(SSL_METHOD)),
1343    ('rbio', POINTER(BIO)),
1344    ('wbio', POINTER(BIO)),
1345    ('bbio', POINTER(BIO)),
1346    ('rwstate', c_int),
1347    ('in_handshake', c_int),
1348    ('handshake_func', CFUNCTYPE(c_int)),
1349    ('server', c_int),
1350    ('new_session', c_int),
1351    ('quiet_shutdown', c_int),
1352    ('shutdown', c_int),
1353    ('state', c_int),
1354    ('rstate', c_int),
1355    ('init_buf', POINTER(BUF_MEM)),
1356    ('init_msg', c_void_p),
1357    ('init_num', c_int),
1358    ('init_off', c_int),
1359    ('packet', POINTER(c_ubyte)),
1360    ('packet_length', c_uint),
1361    ('s2', POINTER(ssl2_state_st)),
1362    ('s3', POINTER(ssl3_state_st)),
1363    ('read_ahead', c_int),
1364    ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
1365    ('msg_callback_arg', c_void_p),
1366    ('hit', c_int),
1367    ('purpose', c_int),
1368    ('trust', c_int),
1369    ('cipher_list', POINTER(STACK)),
1370    ('cipher_list_by_id', POINTER(STACK)),
1371    ('enc_read_ctx', POINTER(EVP_CIPHER_CTX)),
1372    ('read_hash', POINTER(EVP_MD)),
1373    ('expand', POINTER(COMP_CTX)),
1374    ('enc_write_ctx', POINTER(EVP_CIPHER_CTX)),
1375    ('write_hash', POINTER(EVP_MD)),
1376    ('compress', POINTER(COMP_CTX)),
1377    ('cert', POINTER(cert_st)),
1378    ('sid_ctx_length', c_uint),
1379    ('sid_ctx', c_ubyte * 32),
1380    ('session', POINTER(SSL_SESSION)),
1381    ('generate_session_id', GEN_SESSION_CB),
1382    ('verify_mode', c_int),
1383    ('verify_depth', c_int),
1384    ('verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
1385    ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
1386    ('error', c_int),
1387    ('error_code', c_int),
1388    ('ctx', POINTER(SSL_CTX)),
1389    ('debug', c_int),
1390    ('verify_result', c_long),
1391    ('ex_data', CRYPTO_EX_DATA),
1392    ('client_CA', POINTER(STACK)),
1393    ('references', c_int),
1394    ('options', c_ulong),
1395    ('mode', c_ulong),
1396    ('max_cert_list', c_long),
1397    ('first_packet', c_int),
1398    ('client_version', c_int),
1399]
1400assert sizeof(ssl_st) == 268, sizeof(ssl_st)
1401assert alignment(ssl_st) == 4, alignment(ssl_st)
1402class N13ssl2_state_st4DOLLAR_19E(Structure):
1403    pass
1404N13ssl2_state_st4DOLLAR_19E._fields_ = [
1405    ('conn_id_length', c_uint),
1406    ('cert_type', c_uint),
1407    ('cert_length', c_uint),
1408    ('csl', c_uint),
1409    ('clear', c_uint),
1410    ('enc', c_uint),
1411    ('ccl', c_ubyte * 32),
1412    ('cipher_spec_length', c_uint),
1413    ('session_id_length', c_uint),
1414    ('clen', c_uint),
1415    ('rlen', c_uint),
1416]
1417assert sizeof(N13ssl2_state_st4DOLLAR_19E) == 72, sizeof(N13ssl2_state_st4DOLLAR_19E)
1418assert alignment(N13ssl2_state_st4DOLLAR_19E) == 4, alignment(N13ssl2_state_st4DOLLAR_19E)
1419ssl2_state_st._fields_ = [
1420    ('three_byte_header', c_int),
1421    ('clear_text', c_int),
1422    ('escape', c_int),
1423    ('ssl2_rollback', c_int),
1424    ('wnum', c_uint),
1425    ('wpend_tot', c_int),
1426    ('wpend_buf', POINTER(c_ubyte)),
1427    ('wpend_off', c_int),
1428    ('wpend_len', c_int),
1429    ('wpend_ret', c_int),
1430    ('rbuf_left', c_int),
1431    ('rbuf_offs', c_int),
1432    ('rbuf', POINTER(c_ubyte)),
1433    ('wbuf', POINTER(c_ubyte)),
1434    ('write_ptr', POINTER(c_ubyte)),
1435    ('padding', c_uint),
1436    ('rlength', c_uint),
1437    ('ract_data_length', c_int),
1438    ('wlength', c_uint),
1439    ('wact_data_length', c_int),
1440    ('ract_data', POINTER(c_ubyte)),
1441    ('wact_data', POINTER(c_ubyte)),
1442    ('mac_data', POINTER(c_ubyte)),
1443    ('read_key', POINTER(c_ubyte)),
1444    ('write_key', POINTER(c_ubyte)),
1445    ('challenge_length', c_uint),
1446    ('challenge', c_ubyte * 32),
1447    ('conn_id_length', c_uint),
1448    ('conn_id', c_ubyte * 16),
1449    ('key_material_length', c_uint),
1450    ('key_material', c_ubyte * 48),
1451    ('read_sequence', c_ulong),
1452    ('write_sequence', c_ulong),
1453    ('tmp', N13ssl2_state_st4DOLLAR_19E),
1454]
1455assert sizeof(ssl2_state_st) == 288, sizeof(ssl2_state_st)
1456assert alignment(ssl2_state_st) == 4, alignment(ssl2_state_st)
1457SSL2_STATE = ssl2_state_st
1458class ssl3_record_st(Structure):
1459    pass
1460ssl3_record_st._fields_ = [
1461    ('type', c_int),
1462    ('length', c_uint),
1463    ('off', c_uint),
1464    ('data', POINTER(c_ubyte)),
1465    ('input', POINTER(c_ubyte)),
1466    ('comp', POINTER(c_ubyte)),
1467]
1468assert sizeof(ssl3_record_st) == 24, sizeof(ssl3_record_st)
1469assert alignment(ssl3_record_st) == 4, alignment(ssl3_record_st)
1470SSL3_RECORD = ssl3_record_st
1471class ssl3_buffer_st(Structure):
1472    pass
1473size_t = __darwin_size_t
1474ssl3_buffer_st._fields_ = [
1475    ('buf', POINTER(c_ubyte)),
1476    ('len', size_t),
1477    ('offset', c_int),
1478    ('left', c_int),
1479]
1480assert sizeof(ssl3_buffer_st) == 16, sizeof(ssl3_buffer_st)
1481assert alignment(ssl3_buffer_st) == 4, alignment(ssl3_buffer_st)
1482SSL3_BUFFER = ssl3_buffer_st
1483class N13ssl3_state_st4DOLLAR_20E(Structure):
1484    pass
1485N13ssl3_state_st4DOLLAR_20E._fields_ = [
1486    ('cert_verify_md', c_ubyte * 72),
1487    ('finish_md', c_ubyte * 72),
1488    ('finish_md_len', c_int),
1489    ('peer_finish_md', c_ubyte * 72),
1490    ('peer_finish_md_len', c_int),
1491    ('message_size', c_ulong),
1492    ('message_type', c_int),
1493    ('new_cipher', POINTER(SSL_CIPHER)),
1494    ('dh', POINTER(DH)),
1495    ('next_state', c_int),
1496    ('reuse_message', c_int),
1497    ('cert_req', c_int),
1498    ('ctype_num', c_int),
1499    ('ctype', c_char * 7),
1500    ('ca_names', POINTER(STACK)),
1501    ('use_rsa_tmp', c_int),
1502    ('key_block_length', c_int),
1503    ('key_block', POINTER(c_ubyte)),
1504    ('new_sym_enc', POINTER(EVP_CIPHER)),
1505    ('new_hash', POINTER(EVP_MD)),
1506    ('new_compression', POINTER(SSL_COMP)),
1507    ('cert_request', c_int),
1508]
1509assert sizeof(N13ssl3_state_st4DOLLAR_20E) == 296, sizeof(N13ssl3_state_st4DOLLAR_20E)
1510assert alignment(N13ssl3_state_st4DOLLAR_20E) == 4, alignment(N13ssl3_state_st4DOLLAR_20E)
1511ssl3_state_st._fields_ = [
1512    ('flags', c_long),
1513    ('delay_buf_pop_ret', c_int),
1514    ('read_sequence', c_ubyte * 8),
1515    ('read_mac_secret', c_ubyte * 36),
1516    ('write_sequence', c_ubyte * 8),
1517    ('write_mac_secret', c_ubyte * 36),
1518    ('server_random', c_ubyte * 32),
1519    ('client_random', c_ubyte * 32),
1520    ('need_empty_fragments', c_int),
1521    ('empty_fragment_done', c_int),
1522    ('rbuf', SSL3_BUFFER),
1523    ('wbuf', SSL3_BUFFER),
1524    ('rrec', SSL3_RECORD),
1525    ('wrec', SSL3_RECORD),
1526    ('alert_fragment', c_ubyte * 2),
1527    ('alert_fragment_len', c_uint),
1528    ('handshake_fragment', c_ubyte * 4),
1529    ('handshake_fragment_len', c_uint),
1530    ('wnum', c_uint),
1531    ('wpend_tot', c_int),
1532    ('wpend_type', c_int),
1533    ('wpend_ret', c_int),
1534    ('wpend_buf', POINTER(c_ubyte)),
1535    ('finish_dgst1', EVP_MD_CTX),
1536    ('finish_dgst2', EVP_MD_CTX),
1537    ('change_cipher_spec', c_int),
1538    ('warn_alert', c_int),
1539    ('fatal_alert', c_int),
1540    ('alert_dispatch', c_int),
1541    ('send_alert', c_ubyte * 2),
1542    ('renegotiate', c_int),
1543    ('total_renegotiations', c_int),
1544    ('num_renegotiations', c_int),
1545    ('in_read_app_data', c_int),
1546    ('tmp', N13ssl3_state_st4DOLLAR_20E),
1547]
1548assert sizeof(ssl3_state_st) == 648, sizeof(ssl3_state_st)
1549assert alignment(ssl3_state_st) == 4, alignment(ssl3_state_st)
1550SSL3_STATE = ssl3_state_st
1551stack_st._fields_ = [
1552    ('num', c_int),
1553    ('data', POINTER(STRING)),
1554    ('sorted', c_int),
1555    ('num_alloc', c_int),
1556    ('comp', CFUNCTYPE(c_int, POINTER(STRING), POINTER(STRING))),
1557]
1558assert sizeof(stack_st) == 20, sizeof(stack_st)
1559assert alignment(stack_st) == 4, alignment(stack_st)
1560class ui_st(Structure):
1561    pass
1562ui_st._fields_ = [
1563]
1564UI = ui_st
1565class ui_method_st(Structure):
1566    pass
1567ui_method_st._fields_ = [
1568]
1569UI_METHOD = ui_method_st
1570class ui_string_st(Structure):
1571    pass
1572ui_string_st._fields_ = [
1573]
1574UI_STRING = ui_string_st
1575
1576# values for enumeration 'UI_string_types'
1577UI_string_types = c_int # enum
1578class X509_objects_st(Structure):
1579    pass
1580X509_objects_st._fields_ = [
1581    ('nid', c_int),
1582    ('a2i', CFUNCTYPE(c_int)),
1583    ('i2a', CFUNCTYPE(c_int)),
1584]
1585assert sizeof(X509_objects_st) == 12, sizeof(X509_objects_st)
1586assert alignment(X509_objects_st) == 4, alignment(X509_objects_st)
1587X509_OBJECTS = X509_objects_st
1588X509_algor_st._fields_ = [
1589    ('algorithm', POINTER(ASN1_OBJECT)),
1590    ('parameter', POINTER(ASN1_TYPE)),
1591]
1592assert sizeof(X509_algor_st) == 8, sizeof(X509_algor_st)
1593assert alignment(X509_algor_st) == 4, alignment(X509_algor_st)
1594class X509_val_st(Structure):
1595    pass
1596X509_val_st._fields_ = [
1597    ('notBefore', POINTER(ASN1_TIME)),
1598    ('notAfter', POINTER(ASN1_TIME)),
1599]
1600assert sizeof(X509_val_st) == 8, sizeof(X509_val_st)
1601assert alignment(X509_val_st) == 4, alignment(X509_val_st)
1602X509_VAL = X509_val_st
1603class X509_pubkey_st(Structure):
1604    pass
1605X509_pubkey_st._fields_ = [
1606    ('algor', POINTER(X509_ALGOR)),
1607    ('public_key', POINTER(ASN1_BIT_STRING)),
1608    ('pkey', POINTER(EVP_PKEY)),
1609]
1610assert sizeof(X509_pubkey_st) == 12, sizeof(X509_pubkey_st)
1611assert alignment(X509_pubkey_st) == 4, alignment(X509_pubkey_st)
1612X509_PUBKEY = X509_pubkey_st
1613class X509_sig_st(Structure):
1614    pass
1615X509_sig_st._fields_ = [
1616    ('algor', POINTER(X509_ALGOR)),
1617    ('digest', POINTER(ASN1_OCTET_STRING)),
1618]
1619assert sizeof(X509_sig_st) == 8, sizeof(X509_sig_st)
1620assert alignment(X509_sig_st) == 4, alignment(X509_sig_st)
1621X509_SIG = X509_sig_st
1622class X509_name_entry_st(Structure):
1623    pass
1624X509_name_entry_st._fields_ = [
1625    ('object', POINTER(ASN1_OBJECT)),
1626    ('value', POINTER(ASN1_STRING)),
1627    ('set', c_int),
1628    ('size', c_int),
1629]
1630assert sizeof(X509_name_entry_st) == 16, sizeof(X509_name_entry_st)
1631assert alignment(X509_name_entry_st) == 4, alignment(X509_name_entry_st)
1632X509_NAME_ENTRY = X509_name_entry_st
1633X509_name_st._fields_ = [
1634    ('entries', POINTER(STACK)),
1635    ('modified', c_int),
1636    ('bytes', POINTER(BUF_MEM)),
1637    ('hash', c_ulong),
1638]
1639assert sizeof(X509_name_st) == 16, sizeof(X509_name_st)
1640assert alignment(X509_name_st) == 4, alignment(X509_name_st)
1641class X509_extension_st(Structure):
1642    pass
1643X509_extension_st._fields_ = [
1644    ('object', POINTER(ASN1_OBJECT)),
1645    ('critical', ASN1_BOOLEAN),
1646    ('value', POINTER(ASN1_OCTET_STRING)),
1647]
1648assert sizeof(X509_extension_st) == 12, sizeof(X509_extension_st)
1649assert alignment(X509_extension_st) == 4, alignment(X509_extension_st)
1650X509_EXTENSION = X509_extension_st
1651class x509_attributes_st(Structure):
1652    pass
1653class N18x509_attributes_st4DOLLAR_13E(Union):
1654    pass
1655N18x509_attributes_st4DOLLAR_13E._fields_ = [
1656    ('ptr', STRING),
1657    ('set', POINTER(STACK)),
1658    ('single', POINTER(ASN1_TYPE)),
1659]
1660assert sizeof(N18x509_attributes_st4DOLLAR_13E) == 4, sizeof(N18x509_attributes_st4DOLLAR_13E)
1661assert alignment(N18x509_attributes_st4DOLLAR_13E) == 4, alignment(N18x509_attributes_st4DOLLAR_13E)
1662x509_attributes_st._fields_ = [
1663    ('object', POINTER(ASN1_OBJECT)),
1664    ('single', c_int),
1665    ('value', N18x509_attributes_st4DOLLAR_13E),
1666]
1667assert sizeof(x509_attributes_st) == 12, sizeof(x509_attributes_st)
1668assert alignment(x509_attributes_st) == 4, alignment(x509_attributes_st)
1669X509_ATTRIBUTE = x509_attributes_st
1670class X509_req_info_st(Structure):
1671    pass
1672X509_req_info_st._fields_ = [
1673    ('enc', ASN1_ENCODING),
1674    ('version', POINTER(ASN1_INTEGER)),
1675    ('subject', POINTER(X509_NAME)),
1676    ('pubkey', POINTER(X509_PUBKEY)),
1677    ('attributes', POINTER(STACK)),
1678]
1679assert sizeof(X509_req_info_st) == 28, sizeof(X509_req_info_st)
1680assert alignment(X509_req_info_st) == 4, alignment(X509_req_info_st)
1681X509_REQ_INFO = X509_req_info_st
1682class X509_req_st(Structure):
1683    pass
1684X509_req_st._fields_ = [
1685    ('req_info', POINTER(X509_REQ_INFO)),
1686    ('sig_alg', POINTER(X509_ALGOR)),
1687    ('signature', POINTER(ASN1_BIT_STRING)),
1688    ('references', c_int),
1689]
1690assert sizeof(X509_req_st) == 16, sizeof(X509_req_st)
1691assert alignment(X509_req_st) == 4, alignment(X509_req_st)
1692X509_REQ = X509_req_st
1693class x509_cinf_st(Structure):
1694    pass
1695x509_cinf_st._fields_ = [
1696    ('version', POINTER(ASN1_INTEGER)),
1697    ('serialNumber', POINTER(ASN1_INTEGER)),
1698    ('signature', POINTER(X509_ALGOR)),
1699    ('issuer', POINTER(X509_NAME)),
1700    ('validity', POINTER(X509_VAL)),
1701    ('subject', POINTER(X509_NAME)),
1702    ('key', POINTER(X509_PUBKEY)),
1703    ('issuerUID', POINTER(ASN1_BIT_STRING)),
1704    ('subjectUID', POINTER(ASN1_BIT_STRING)),
1705    ('extensions', POINTER(STACK)),
1706]
1707assert sizeof(x509_cinf_st) == 40, sizeof(x509_cinf_st)
1708assert alignment(x509_cinf_st) == 4, alignment(x509_cinf_st)
1709X509_CINF = x509_cinf_st
1710class x509_cert_aux_st(Structure):
1711    pass
1712x509_cert_aux_st._fields_ = [
1713    ('trust', POINTER(STACK)),
1714    ('reject', POINTER(STACK)),
1715    ('alias', POINTER(ASN1_UTF8STRING)),
1716    ('keyid', POINTER(ASN1_OCTET_STRING)),
1717    ('other', POINTER(STACK)),
1718]
1719assert sizeof(x509_cert_aux_st) == 20, sizeof(x509_cert_aux_st)
1720assert alignment(x509_cert_aux_st) == 4, alignment(x509_cert_aux_st)
1721X509_CERT_AUX = x509_cert_aux_st
1722class AUTHORITY_KEYID_st(Structure):
1723    pass
1724x509_st._fields_ = [
1725    ('cert_info', POINTER(X509_CINF)),
1726    ('sig_alg', POINTER(X509_ALGOR)),
1727    ('signature', POINTER(ASN1_BIT_STRING)),
1728    ('valid', c_int),
1729    ('references', c_int),
1730    ('name', STRING),
1731    ('ex_data', CRYPTO_EX_DATA),
1732    ('ex_pathlen', c_long),
1733    ('ex_flags', c_ulong),
1734    ('ex_kusage', c_ulong),
1735    ('ex_xkusage', c_ulong),
1736    ('ex_nscert', c_ulong),
1737    ('skid', POINTER(ASN1_OCTET_STRING)),
1738    ('akid', POINTER(AUTHORITY_KEYID_st)),
1739    ('sha1_hash', c_ubyte * 20),
1740    ('aux', POINTER(X509_CERT_AUX)),
1741]
1742assert sizeof(x509_st) == 84, sizeof(x509_st)
1743assert alignment(x509_st) == 4, alignment(x509_st)
1744AUTHORITY_KEYID_st._fields_ = [
1745]
1746class x509_trust_st(Structure):
1747    pass
1748x509_trust_st._fields_ = [
1749    ('trust', c_int),
1750    ('flags', c_int),
1751    ('check_trust', CFUNCTYPE(c_int, POINTER(x509_trust_st), POINTER(X509), c_int)),
1752    ('name', STRING),
1753    ('arg1', c_int),
1754    ('arg2', c_void_p),
1755]
1756assert sizeof(x509_trust_st) == 24, sizeof(x509_trust_st)
1757assert alignment(x509_trust_st) == 4, alignment(x509_trust_st)
1758X509_TRUST = x509_trust_st
1759class X509_revoked_st(Structure):
1760    pass
1761X509_revoked_st._fields_ = [
1762    ('serialNumber', POINTER(ASN1_INTEGER)),
1763    ('revocationDate', POINTER(ASN1_TIME)),
1764    ('extensions', POINTER(STACK)),
1765    ('sequence', c_int),
1766]
1767assert sizeof(X509_revoked_st) == 16, sizeof(X509_revoked_st)
1768assert alignment(X509_revoked_st) == 4, alignment(X509_revoked_st)
1769X509_REVOKED = X509_revoked_st
1770class X509_crl_info_st(Structure):
1771    pass
1772X509_crl_info_st._fields_ = [
1773    ('version', POINTER(ASN1_INTEGER)),
1774    ('sig_alg', POINTER(X509_ALGOR)),
1775    ('issuer', POINTER(X509_NAME)),
1776    ('lastUpdate', POINTER(ASN1_TIME)),
1777    ('nextUpdate', POINTER(ASN1_TIME)),
1778    ('revoked', POINTER(STACK)),
1779    ('extensions', POINTER(STACK)),
1780    ('enc', ASN1_ENCODING),
1781]
1782assert sizeof(X509_crl_info_st) == 40, sizeof(X509_crl_info_st)
1783assert alignment(X509_crl_info_st) == 4, alignment(X509_crl_info_st)
1784X509_CRL_INFO = X509_crl_info_st
1785X509_crl_st._fields_ = [
1786    ('crl', POINTER(X509_CRL_INFO)),
1787    ('sig_alg', POINTER(X509_ALGOR)),
1788    ('signature', POINTER(ASN1_BIT_STRING)),
1789    ('references', c_int),
1790]
1791assert sizeof(X509_crl_st) == 16, sizeof(X509_crl_st)
1792assert alignment(X509_crl_st) == 4, alignment(X509_crl_st)
1793class private_key_st(Structure):
1794    pass
1795private_key_st._fields_ = [
1796    ('version', c_int),
1797    ('enc_algor', POINTER(X509_ALGOR)),
1798    ('enc_pkey', POINTER(ASN1_OCTET_STRING)),
1799    ('dec_pkey', POINTER(EVP_PKEY)),
1800    ('key_length', c_int),
1801    ('key_data', STRING),
1802    ('key_free', c_int),
1803    ('cipher', EVP_CIPHER_INFO),
1804    ('references', c_int),
1805]
1806assert sizeof(private_key_st) == 52, sizeof(private_key_st)
1807assert alignment(private_key_st) == 4, alignment(private_key_st)
1808X509_PKEY = private_key_st
1809class X509_info_st(Structure):
1810    pass
1811X509_info_st._fields_ = [
1812    ('x509', POINTER(X509)),
1813    ('crl', POINTER(X509_CRL)),
1814    ('x_pkey', POINTER(X509_PKEY)),
1815    ('enc_cipher', EVP_CIPHER_INFO),
1816    ('enc_len', c_int),
1817    ('enc_data', STRING),
1818    ('references', c_int),
1819]
1820assert sizeof(X509_info_st) == 44, sizeof(X509_info_st)
1821assert alignment(X509_info_st) == 4, alignment(X509_info_st)
1822X509_INFO = X509_info_st
1823class Netscape_spkac_st(Structure):
1824    pass
1825Netscape_spkac_st._fields_ = [
1826    ('pubkey', POINTER(X509_PUBKEY)),
1827    ('challenge', POINTER(ASN1_IA5STRING)),
1828]
1829assert sizeof(Netscape_spkac_st) == 8, sizeof(Netscape_spkac_st)
1830assert alignment(Netscape_spkac_st) == 4, alignment(Netscape_spkac_st)
1831NETSCAPE_SPKAC = Netscape_spkac_st
1832class Netscape_spki_st(Structure):
1833    pass
1834Netscape_spki_st._fields_ = [
1835    ('spkac', POINTER(NETSCAPE_SPKAC)),
1836    ('sig_algor', POINTER(X509_ALGOR)),
1837    ('signature', POINTER(ASN1_BIT_STRING)),
1838]
1839assert sizeof(Netscape_spki_st) == 12, sizeof(Netscape_spki_st)
1840assert alignment(Netscape_spki_st) == 4, alignment(Netscape_spki_st)
1841NETSCAPE_SPKI = Netscape_spki_st
1842class Netscape_certificate_sequence(Structure):
1843    pass
1844Netscape_certificate_sequence._fields_ = [
1845    ('type', POINTER(ASN1_OBJECT)),
1846    ('certs', POINTER(STACK)),
1847]
1848assert sizeof(Netscape_certificate_sequence) == 8, sizeof(Netscape_certificate_sequence)
1849assert alignment(Netscape_certificate_sequence) == 4, alignment(Netscape_certificate_sequence)
1850NETSCAPE_CERT_SEQUENCE = Netscape_certificate_sequence
1851class PBEPARAM_st(Structure):
1852    pass
1853PBEPARAM_st._fields_ = [
1854    ('salt', POINTER(ASN1_OCTET_STRING)),
1855    ('iter', POINTER(ASN1_INTEGER)),
1856]
1857assert sizeof(PBEPARAM_st) == 8, sizeof(PBEPARAM_st)
1858assert alignment(PBEPARAM_st) == 4, alignment(PBEPARAM_st)
1859PBEPARAM = PBEPARAM_st
1860class PBE2PARAM_st(Structure):
1861    pass
1862PBE2PARAM_st._fields_ = [
1863    ('keyfunc', POINTER(X509_ALGOR)),
1864    ('encryption', POINTER(X509_ALGOR)),
1865]
1866assert sizeof(PBE2PARAM_st) == 8, sizeof(PBE2PARAM_st)
1867assert alignment(PBE2PARAM_st) == 4, alignment(PBE2PARAM_st)
1868PBE2PARAM = PBE2PARAM_st
1869class PBKDF2PARAM_st(Structure):
1870    pass
1871PBKDF2PARAM_st._fields_ = [
1872    ('salt', POINTER(ASN1_TYPE)),
1873    ('iter', POINTER(ASN1_INTEGER)),
1874    ('keylength', POINTER(ASN1_INTEGER)),
1875    ('prf', POINTER(X509_ALGOR)),
1876]
1877assert sizeof(PBKDF2PARAM_st) == 16, sizeof(PBKDF2PARAM_st)
1878assert alignment(PBKDF2PARAM_st) == 4, alignment(PBKDF2PARAM_st)
1879PBKDF2PARAM = PBKDF2PARAM_st
1880class pkcs8_priv_key_info_st(Structure):
1881    pass
1882pkcs8_priv_key_info_st._fields_ = [
1883    ('broken', c_int),
1884    ('version', POINTER(ASN1_INTEGER)),
1885    ('pkeyalg', POINTER(X509_ALGOR)),
1886    ('pkey', POINTER(ASN1_TYPE)),
1887    ('attributes', POINTER(STACK)),
1888]
1889assert sizeof(pkcs8_priv_key_info_st) == 20, sizeof(pkcs8_priv_key_info_st)
1890assert alignment(pkcs8_priv_key_info_st) == 4, alignment(pkcs8_priv_key_info_st)
1891PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st
1892class x509_hash_dir_st(Structure):
1893    pass
1894x509_hash_dir_st._fields_ = [
1895    ('num_dirs', c_int),
1896    ('dirs', POINTER(STRING)),
1897    ('dirs_type', POINTER(c_int)),
1898    ('num_dirs_alloced', c_int),
1899]
1900assert sizeof(x509_hash_dir_st) == 16, sizeof(x509_hash_dir_st)
1901assert alignment(x509_hash_dir_st) == 4, alignment(x509_hash_dir_st)
1902X509_HASH_DIR_CTX = x509_hash_dir_st
1903class x509_file_st(Structure):
1904    pass
1905x509_file_st._fields_ = [
1906    ('num_paths', c_int),
1907    ('num_alloced', c_int),
1908    ('paths', POINTER(STRING)),
1909    ('path_type', POINTER(c_int)),
1910]
1911assert sizeof(x509_file_st) == 16, sizeof(x509_file_st)
1912assert alignment(x509_file_st) == 4, alignment(x509_file_st)
1913X509_CERT_FILE_CTX = x509_file_st
1914class x509_object_st(Structure):
1915    pass
1916class N14x509_object_st4DOLLAR_14E(Union):
1917    pass
1918N14x509_object_st4DOLLAR_14E._fields_ = [
1919    ('ptr', STRING),
1920    ('x509', POINTER(X509)),
1921    ('crl', POINTER(X509_CRL)),
1922    ('pkey', POINTER(EVP_PKEY)),
1923]
1924assert sizeof(N14x509_object_st4DOLLAR_14E) == 4, sizeof(N14x509_object_st4DOLLAR_14E)
1925assert alignment(N14x509_object_st4DOLLAR_14E) == 4, alignment(N14x509_object_st4DOLLAR_14E)
1926x509_object_st._fields_ = [
1927    ('type', c_int),
1928    ('data', N14x509_object_st4DOLLAR_14E),
1929]
1930assert sizeof(x509_object_st) == 8, sizeof(x509_object_st)
1931assert alignment(x509_object_st) == 4, alignment(x509_object_st)
1932X509_OBJECT = x509_object_st
1933class x509_lookup_st(Structure):
1934    pass
1935X509_LOOKUP = x509_lookup_st
1936class x509_lookup_method_st(Structure):
1937    pass
1938x509_lookup_method_st._fields_ = [
1939    ('name', STRING),
1940    ('new_item', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
1941    ('free', CFUNCTYPE(None, POINTER(X509_LOOKUP))),
1942    ('init', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
1943    ('shutdown', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
1944    ('ctrl', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_long, POINTER(STRING))),
1945    ('get_by_subject', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(X509_OBJECT))),
1946    ('get_by_issuer_serial', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(ASN1_INTEGER), POINTER(X509_OBJECT))),
1947    ('get_by_fingerprint', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(c_ubyte), c_int, POINTER(X509_OBJECT))),
1948    ('get_by_alias', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_int, POINTER(X509_OBJECT))),
1949]
1950assert sizeof(x509_lookup_method_st) == 40, sizeof(x509_lookup_method_st)
1951assert alignment(x509_lookup_method_st) == 4, alignment(x509_lookup_method_st)
1952X509_LOOKUP_METHOD = x509_lookup_method_st
1953x509_store_st._fields_ = [
1954    ('cache', c_int),
1955    ('objs', POINTER(STACK)),
1956    ('get_cert_methods', POINTER(STACK)),
1957    ('flags', c_ulong),
1958    ('purpose', c_int),
1959    ('trust', c_int),
1960    ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
1961    ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
1962    ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
1963    ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
1964    ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
1965    ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
1966    ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
1967    ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
1968    ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
1969    ('ex_data', CRYPTO_EX_DATA),
1970    ('references', c_int),
1971    ('depth', c_int),
1972]
1973assert sizeof(x509_store_st) == 76, sizeof(x509_store_st)
1974assert alignment(x509_store_st) == 4, alignment(x509_store_st)
1975x509_lookup_st._fields_ = [
1976    ('init', c_int),
1977    ('skip', c_int),
1978    ('method', POINTER(X509_LOOKUP_METHOD)),
1979    ('method_data', STRING),
1980    ('store_ctx', POINTER(X509_STORE)),
1981]
1982assert sizeof(x509_lookup_st) == 20, sizeof(x509_lookup_st)
1983assert alignment(x509_lookup_st) == 4, alignment(x509_lookup_st)
1984time_t = __darwin_time_t
1985x509_store_ctx_st._fields_ = [
1986    ('ctx', POINTER(X509_STORE)),
1987    ('current_method', c_int),
1988    ('cert', POINTER(X509)),
1989    ('untrusted', POINTER(STACK)),
1990    ('purpose', c_int),
1991    ('trust', c_int),
1992    ('check_time', time_t),
1993    ('flags', c_ulong),
1994    ('other_ctx', c_void_p),
1995    ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
1996    ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
1997    ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
1998    ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
1999    ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
2000    ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
2001    ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
2002    ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
2003    ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
2004    ('depth', c_int),
2005    ('valid', c_int),
2006    ('last_untrusted', c_int),
2007    ('chain', POINTER(STACK)),
2008    ('error_depth', c_int),
2009    ('error', c_int),
2010    ('current_cert', POINTER(X509)),
2011    ('current_issuer', POINTER(X509)),
2012    ('current_crl', POINTER(X509_CRL)),
2013    ('ex_data', CRYPTO_EX_DATA),
2014]
2015assert sizeof(x509_store_ctx_st) == 116, sizeof(x509_store_ctx_st)
2016assert alignment(x509_store_ctx_st) == 4, alignment(x509_store_ctx_st)
2017va_list = __darwin_va_list
2018__darwin_off_t = __int64_t
2019fpos_t = __darwin_off_t
2020class __sbuf(Structure):
2021    pass
2022__sbuf._fields_ = [
2023    ('_base', POINTER(c_ubyte)),
2024    ('_size', c_int),
2025]
2026assert sizeof(__sbuf) == 8, sizeof(__sbuf)
2027assert alignment(__sbuf) == 4, alignment(__sbuf)
2028class __sFILEX(Structure):
2029    pass
2030__sFILEX._fields_ = [
2031]
2032class __sFILE(Structure):
2033    pass
2034__sFILE._pack_ = 4
2035__sFILE._fields_ = [
2036    ('_p', POINTER(c_ubyte)),
2037    ('_r', c_int),
2038    ('_w', c_int),
2039    ('_flags', c_short),
2040    ('_file', c_short),
2041    ('_bf', __sbuf),
2042    ('_lbfsize', c_int),
2043    ('_cookie', c_void_p),
2044    ('_close', CFUNCTYPE(c_int, c_void_p)),
2045    ('_read', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
2046    ('_seek', CFUNCTYPE(fpos_t, c_void_p, c_longlong, c_int)),
2047    ('_write', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
2048    ('_ub', __sbuf),
2049    ('_extra', POINTER(__sFILEX)),
2050    ('_ur', c_int),
2051    ('_ubuf', c_ubyte * 3),
2052    ('_nbuf', c_ubyte * 1),
2053    ('_lb', __sbuf),
2054    ('_blksize', c_int),
2055    ('_offset', fpos_t),
2056]
2057assert sizeof(__sFILE) == 88, sizeof(__sFILE)
2058assert alignment(__sFILE) == 4, alignment(__sFILE)
2059FILE = __sFILE
2060ct_rune_t = __darwin_ct_rune_t
2061rune_t = __darwin_rune_t
2062class div_t(Structure):
2063    pass
2064div_t._fields_ = [
2065    ('quot', c_int),
2066    ('rem', c_int),
2067]
2068assert sizeof(div_t) == 8, sizeof(div_t)
2069assert alignment(div_t) == 4, alignment(div_t)
2070class ldiv_t(Structure):
2071    pass
2072ldiv_t._fields_ = [
2073    ('quot', c_long),
2074    ('rem', c_long),
2075]
2076assert sizeof(ldiv_t) == 8, sizeof(ldiv_t)
2077assert alignment(ldiv_t) == 4, alignment(ldiv_t)
2078class lldiv_t(Structure):
2079    pass
2080lldiv_t._pack_ = 4
2081lldiv_t._fields_ = [
2082    ('quot', c_longlong),
2083    ('rem', c_longlong),
2084]
2085assert sizeof(lldiv_t) == 16, sizeof(lldiv_t)
2086assert alignment(lldiv_t) == 4, alignment(lldiv_t)
2087__darwin_dev_t = __int32_t
2088dev_t = __darwin_dev_t
2089__darwin_mode_t = __uint16_t
2090mode_t = __darwin_mode_t
2091class mcontext(Structure):
2092    pass
2093mcontext._fields_ = [
2094]
2095class mcontext64(Structure):
2096    pass
2097mcontext64._fields_ = [
2098]
2099class __darwin_pthread_handler_rec(Structure):
2100    pass
2101__darwin_pthread_handler_rec._fields_ = [
2102    ('__routine', CFUNCTYPE(None, c_void_p)),
2103    ('__arg', c_void_p),
2104    ('__next', POINTER(__darwin_pthread_handler_rec)),
2105]
2106assert sizeof(__darwin_pthread_handler_rec) == 12, sizeof(__darwin_pthread_handler_rec)
2107assert alignment(__darwin_pthread_handler_rec) == 4, alignment(__darwin_pthread_handler_rec)
2108class _opaque_pthread_attr_t(Structure):
2109    pass
2110_opaque_pthread_attr_t._fields_ = [
2111    ('__sig', c_long),
2112    ('__opaque', c_char * 36),
2113]
2114assert sizeof(_opaque_pthread_attr_t) == 40, sizeof(_opaque_pthread_attr_t)
2115assert alignment(_opaque_pthread_attr_t) == 4, alignment(_opaque_pthread_attr_t)
2116class _opaque_pthread_cond_t(Structure):
2117    pass
2118_opaque_pthread_cond_t._fields_ = [
2119    ('__sig', c_long),
2120    ('__opaque', c_char * 24),
2121]
2122assert sizeof(_opaque_pthread_cond_t) == 28, sizeof(_opaque_pthread_cond_t)
2123assert alignment(_opaque_pthread_cond_t) == 4, alignment(_opaque_pthread_cond_t)
2124class _opaque_pthread_condattr_t(Structure):
2125    pass
2126_opaque_pthread_condattr_t._fields_ = [
2127    ('__sig', c_long),
2128    ('__opaque', c_char * 4),
2129]
2130assert sizeof(_opaque_pthread_condattr_t) == 8, sizeof(_opaque_pthread_condattr_t)
2131assert alignment(_opaque_pthread_condattr_t) == 4, alignment(_opaque_pthread_condattr_t)
2132class _opaque_pthread_mutex_t(Structure):
2133    pass
2134_opaque_pthread_mutex_t._fields_ = [
2135    ('__sig', c_long),
2136    ('__opaque', c_char * 40),
2137]
2138assert sizeof(_opaque_pthread_mutex_t) == 44, sizeof(_opaque_pthread_mutex_t)
2139assert alignment(_opaque_pthread_mutex_t) == 4, alignment(_opaque_pthread_mutex_t)
2140class _opaque_pthread_mutexattr_t(Structure):
2141    pass
2142_opaque_pthread_mutexattr_t._fields_ = [
2143    ('__sig', c_long),
2144    ('__opaque', c_char * 8),
2145]
2146assert sizeof(_opaque_pthread_mutexattr_t) == 12, sizeof(_opaque_pthread_mutexattr_t)
2147assert alignment(_opaque_pthread_mutexattr_t) == 4, alignment(_opaque_pthread_mutexattr_t)
2148class _opaque_pthread_once_t(Structure):
2149    pass
2150_opaque_pthread_once_t._fields_ = [
2151    ('__sig', c_long),
2152    ('__opaque', c_char * 4),
2153]
2154assert sizeof(_opaque_pthread_once_t) == 8, sizeof(_opaque_pthread_once_t)
2155assert alignment(_opaque_pthread_once_t) == 4, alignment(_opaque_pthread_once_t)
2156class _opaque_pthread_rwlock_t(Structure):
2157    pass
2158_opaque_pthread_rwlock_t._fields_ = [
2159    ('__sig', c_long),
2160    ('__opaque', c_char * 124),
2161]
2162assert sizeof(_opaque_pthread_rwlock_t) == 128, sizeof(_opaque_pthread_rwlock_t)
2163assert alignment(_opaque_pthread_rwlock_t) == 4, alignment(_opaque_pthread_rwlock_t)
2164class _opaque_pthread_rwlockattr_t(Structure):
2165    pass
2166_opaque_pthread_rwlockattr_t._fields_ = [
2167    ('__sig', c_long),
2168    ('__opaque', c_char * 12),
2169]
2170assert sizeof(_opaque_pthread_rwlockattr_t) == 16, sizeof(_opaque_pthread_rwlockattr_t)
2171assert alignment(_opaque_pthread_rwlockattr_t) == 4, alignment(_opaque_pthread_rwlockattr_t)
2172class _opaque_pthread_t(Structure):
2173    pass
2174_opaque_pthread_t._fields_ = [
2175    ('__sig', c_long),
2176    ('__cleanup_stack', POINTER(__darwin_pthread_handler_rec)),
2177    ('__opaque', c_char * 596),
2178]
2179assert sizeof(_opaque_pthread_t) == 604, sizeof(_opaque_pthread_t)
2180assert alignment(_opaque_pthread_t) == 4, alignment(_opaque_pthread_t)
2181__darwin_blkcnt_t = __int64_t
2182__darwin_blksize_t = __int32_t
2183__darwin_fsblkcnt_t = c_uint
2184__darwin_fsfilcnt_t = c_uint
2185__darwin_gid_t = __uint32_t
2186__darwin_id_t = __uint32_t
2187__darwin_ino_t = __uint32_t
2188__darwin_mach_port_name_t = __darwin_natural_t
2189__darwin_mach_port_t = __darwin_mach_port_name_t
2190__darwin_mcontext_t = POINTER(mcontext)
2191__darwin_mcontext64_t = POINTER(mcontext64)
2192__darwin_pid_t = __int32_t
2193__darwin_pthread_attr_t = _opaque_pthread_attr_t
2194__darwin_pthread_cond_t = _opaque_pthread_cond_t
2195__darwin_pthread_condattr_t = _opaque_pthread_condattr_t
2196__darwin_pthread_key_t = c_ulong
2197__darwin_pthread_mutex_t = _opaque_pthread_mutex_t
2198__darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t
2199__darwin_pthread_once_t = _opaque_pthread_once_t
2200__darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t
2201__darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t
2202__darwin_pthread_t = POINTER(_opaque_pthread_t)
2203__darwin_sigset_t = __uint32_t
2204__darwin_suseconds_t = __int32_t
2205__darwin_uid_t = __uint32_t
2206__darwin_useconds_t = __uint32_t
2207__darwin_uuid_t = c_ubyte * 16
2208class sigaltstack(Structure):
2209    pass
2210sigaltstack._fields_ = [
2211    ('ss_sp', c_void_p),
2212    ('ss_size', __darwin_size_t),
2213    ('ss_flags', c_int),
2214]
2215assert sizeof(sigaltstack) == 12, sizeof(sigaltstack)
2216assert alignment(sigaltstack) == 4, alignment(sigaltstack)
2217__darwin_stack_t = sigaltstack
2218class ucontext(Structure):
2219    pass
2220ucontext._fields_ = [
2221    ('uc_onstack', c_int),
2222    ('uc_sigmask', __darwin_sigset_t),
2223    ('uc_stack', __darwin_stack_t),
2224    ('uc_link', POINTER(ucontext)),
2225    ('uc_mcsize', __darwin_size_t),
2226    ('uc_mcontext', __darwin_mcontext_t),
2227]
2228assert sizeof(ucontext) == 32, sizeof(ucontext)
2229assert alignment(ucontext) == 4, alignment(ucontext)
2230__darwin_ucontext_t = ucontext
2231class ucontext64(Structure):
2232    pass
2233ucontext64._fields_ = [
2234    ('uc_onstack', c_int),
2235    ('uc_sigmask', __darwin_sigset_t),
2236    ('uc_stack', __darwin_stack_t),
2237    ('uc_link', POINTER(ucontext64)),
2238    ('uc_mcsize', __darwin_size_t),
2239    ('uc_mcontext64', __darwin_mcontext64_t),
2240]
2241assert sizeof(ucontext64) == 32, sizeof(ucontext64)
2242assert alignment(ucontext64) == 4, alignment(ucontext64)
2243__darwin_ucontext64_t = ucontext64
2244class timeval(Structure):
2245    pass
2246timeval._fields_ = [
2247    ('tv_sec', __darwin_time_t),
2248    ('tv_usec', __darwin_suseconds_t),
2249]
2250assert sizeof(timeval) == 8, sizeof(timeval)
2251assert alignment(timeval) == 4, alignment(timeval)
2252rlim_t = __int64_t
2253class rusage(Structure):
2254    pass
2255rusage._fields_ = [
2256    ('ru_utime', timeval),
2257    ('ru_stime', timeval),
2258    ('ru_maxrss', c_long),
2259    ('ru_ixrss', c_long),
2260    ('ru_idrss', c_long),
2261    ('ru_isrss', c_long),
2262    ('ru_minflt', c_long),
2263    ('ru_majflt', c_long),
2264    ('ru_nswap', c_long),
2265    ('ru_inblock', c_long),
2266    ('ru_oublock', c_long),
2267    ('ru_msgsnd', c_long),
2268    ('ru_msgrcv', c_long),
2269    ('ru_nsignals', c_long),
2270    ('ru_nvcsw', c_long),
2271    ('ru_nivcsw', c_long),
2272]
2273assert sizeof(rusage) == 72, sizeof(rusage)
2274assert alignment(rusage) == 4, alignment(rusage)
2275class rlimit(Structure):
2276    pass
2277rlimit._pack_ = 4
2278rlimit._fields_ = [
2279    ('rlim_cur', rlim_t),
2280    ('rlim_max', rlim_t),
2281]
2282assert sizeof(rlimit) == 16, sizeof(rlimit)
2283assert alignment(rlimit) == 4, alignment(rlimit)
2284mcontext_t = __darwin_mcontext_t
2285mcontext64_t = __darwin_mcontext64_t
2286pthread_attr_t = __darwin_pthread_attr_t
2287sigset_t = __darwin_sigset_t
2288ucontext_t = __darwin_ucontext_t
2289ucontext64_t = __darwin_ucontext64_t
2290uid_t = __darwin_uid_t
2291class sigval(Union):
2292    pass
2293sigval._fields_ = [
2294    ('sival_int', c_int),
2295    ('sival_ptr', c_void_p),
2296]
2297assert sizeof(sigval) == 4, sizeof(sigval)
2298assert alignment(sigval) == 4, alignment(sigval)
2299class sigevent(Structure):
2300    pass
2301sigevent._fields_ = [
2302    ('sigev_notify', c_int),
2303    ('sigev_signo', c_int),
2304    ('sigev_value', sigval),
2305    ('sigev_notify_function', CFUNCTYPE(None, sigval)),
2306    ('sigev_notify_attributes', POINTER(pthread_attr_t)),
2307]
2308assert sizeof(sigevent) == 20, sizeof(sigevent)
2309assert alignment(sigevent) == 4, alignment(sigevent)
2310class __siginfo(Structure):
2311    pass
2312pid_t = __darwin_pid_t
2313__siginfo._fields_ = [
2314    ('si_signo', c_int),
2315    ('si_errno', c_int),
2316    ('si_code', c_int),
2317    ('si_pid', pid_t),
2318    ('si_uid', uid_t),
2319    ('si_status', c_int),
2320    ('si_addr', c_void_p),
2321    ('si_value', sigval),
2322    ('si_band', c_long),
2323    ('pad', c_ulong * 7),
2324]
2325assert sizeof(__siginfo) == 64, sizeof(__siginfo)
2326assert alignment(__siginfo) == 4, alignment(__siginfo)
2327siginfo_t = __siginfo
2328class __sigaction_u(Union):
2329    pass
2330__sigaction_u._fields_ = [
2331    ('__sa_handler', CFUNCTYPE(None, c_int)),
2332    ('__sa_sigaction', CFUNCTYPE(None, c_int, POINTER(__siginfo), c_void_p)),
2333]
2334assert sizeof(__sigaction_u) == 4, sizeof(__sigaction_u)
2335assert alignment(__sigaction_u) == 4, alignment(__sigaction_u)
2336class __sigaction(Structure):
2337    pass
2338__sigaction._fields_ = [
2339    ('__sigaction_u', __sigaction_u),
2340    ('sa_tramp', CFUNCTYPE(None, c_void_p, c_int, c_int, POINTER(siginfo_t), c_void_p)),
2341    ('sa_mask', sigset_t),
2342    ('sa_flags', c_int),
2343]
2344assert sizeof(__sigaction) == 16, sizeof(__sigaction)
2345assert alignment(__sigaction) == 4, alignment(__sigaction)
2346class sigaction(Structure):
2347    pass
2348sigaction._fields_ = [
2349    ('__sigaction_u', __sigaction_u),
2350    ('sa_mask', sigset_t),
2351    ('sa_flags', c_int),
2352]
2353assert sizeof(sigaction) == 12, sizeof(sigaction)
2354assert alignment(sigaction) == 4, alignment(sigaction)
2355sig_t = CFUNCTYPE(None, c_int)
2356stack_t = __darwin_stack_t
2357class sigvec(Structure):
2358    pass
2359sigvec._fields_ = [
2360    ('sv_handler', CFUNCTYPE(None, c_int)),
2361    ('sv_mask', c_int),
2362    ('sv_flags', c_int),
2363]
2364assert sizeof(sigvec) == 12, sizeof(sigvec)
2365assert alignment(sigvec) == 4, alignment(sigvec)
2366class sigstack(Structure):
2367    pass
2368sigstack._fields_ = [
2369    ('ss_sp', STRING),
2370    ('ss_onstack', c_int),
2371]
2372assert sizeof(sigstack) == 8, sizeof(sigstack)
2373assert alignment(sigstack) == 4, alignment(sigstack)
2374u_char = c_ubyte
2375u_short = c_ushort
2376u_int = c_uint
2377u_long = c_ulong
2378ushort = c_ushort
2379uint = c_uint
2380u_quad_t = u_int64_t
2381quad_t = int64_t
2382qaddr_t = POINTER(quad_t)
2383caddr_t = STRING
2384daddr_t = int32_t
2385fixpt_t = u_int32_t
2386blkcnt_t = __darwin_blkcnt_t
2387blksize_t = __darwin_blksize_t
2388gid_t = __darwin_gid_t
2389in_addr_t = __uint32_t
2390in_port_t = __uint16_t
2391ino_t = __darwin_ino_t
2392key_t = __int32_t
2393nlink_t = __uint16_t
2394off_t = __darwin_off_t
2395segsz_t = int32_t
2396swblk_t = int32_t
2397clock_t = __darwin_clock_t
2398ssize_t = __darwin_ssize_t
2399useconds_t = __darwin_useconds_t
2400suseconds_t = __darwin_suseconds_t
2401fd_mask = __int32_t
2402class fd_set(Structure):
2403    pass
2404fd_set._fields_ = [
2405    ('fds_bits', __int32_t * 32),
2406]
2407assert sizeof(fd_set) == 128, sizeof(fd_set)
2408assert alignment(fd_set) == 4, alignment(fd_set)
2409pthread_cond_t = __darwin_pthread_cond_t
2410pthread_condattr_t = __darwin_pthread_condattr_t
2411pthread_mutex_t = __darwin_pthread_mutex_t
2412pthread_mutexattr_t = __darwin_pthread_mutexattr_t
2413pthread_once_t = __darwin_pthread_once_t
2414pthread_rwlock_t = __darwin_pthread_rwlock_t
2415pthread_rwlockattr_t = __darwin_pthread_rwlockattr_t
2416pthread_t = __darwin_pthread_t
2417pthread_key_t = __darwin_pthread_key_t
2418fsblkcnt_t = __darwin_fsblkcnt_t
2419fsfilcnt_t = __darwin_fsfilcnt_t
2420
2421# values for enumeration 'idtype_t'
2422idtype_t = c_int # enum
2423id_t = __darwin_id_t
2424class wait(Union):
2425    pass
2426class N4wait3DOLLAR_3E(Structure):
2427    pass
2428N4wait3DOLLAR_3E._fields_ = [
2429    ('w_Termsig', c_uint, 7),
2430    ('w_Coredump', c_uint, 1),
2431    ('w_Retcode', c_uint, 8),
2432    ('w_Filler', c_uint, 16),
2433]
2434assert sizeof(N4wait3DOLLAR_3E) == 4, sizeof(N4wait3DOLLAR_3E)
2435assert alignment(N4wait3DOLLAR_3E) == 4, alignment(N4wait3DOLLAR_3E)
2436class N4wait3DOLLAR_4E(Structure):
2437    pass
2438N4wait3DOLLAR_4E._fields_ = [
2439    ('w_Stopval', c_uint, 8),
2440    ('w_Stopsig', c_uint, 8),
2441    ('w_Filler', c_uint, 16),
2442]
2443assert sizeof(N4wait3DOLLAR_4E) == 4, sizeof(N4wait3DOLLAR_4E)
2444assert alignment(N4wait3DOLLAR_4E) == 4, alignment(N4wait3DOLLAR_4E)
2445wait._fields_ = [
2446    ('w_status', c_int),
2447    ('w_T', N4wait3DOLLAR_3E),
2448    ('w_S', N4wait3DOLLAR_4E),
2449]
2450assert sizeof(wait) == 4, sizeof(wait)
2451assert alignment(wait) == 4, alignment(wait)
2452class timespec(Structure):
2453    pass
2454timespec._fields_ = [
2455    ('tv_sec', time_t),
2456    ('tv_nsec', c_long),
2457]
2458assert sizeof(timespec) == 8, sizeof(timespec)
2459assert alignment(timespec) == 4, alignment(timespec)
2460class tm(Structure):
2461    pass
2462tm._fields_ = [
2463    ('tm_sec', c_int),
2464    ('tm_min', c_int),
2465    ('tm_hour', c_int),
2466    ('tm_mday', c_int),
2467    ('tm_mon', c_int),
2468    ('tm_year', c_int),
2469    ('tm_wday', c_int),
2470    ('tm_yday', c_int),
2471    ('tm_isdst', c_int),
2472    ('tm_gmtoff', c_long),
2473    ('tm_zone', STRING),
2474]
2475assert sizeof(tm) == 44, sizeof(tm)
2476assert alignment(tm) == 4, alignment(tm)
2477__gnuc_va_list = STRING
2478ptrdiff_t = c_int
2479int8_t = c_byte
2480int16_t = c_short
2481uint8_t = c_ubyte
2482uint16_t = c_ushort
2483uint32_t = c_uint
2484uint64_t = c_ulonglong
2485int_least8_t = int8_t
2486int_least16_t = int16_t
2487int_least32_t = int32_t
2488int_least64_t = int64_t
2489uint_least8_t = uint8_t
2490uint_least16_t = uint16_t
2491uint_least32_t = uint32_t
2492uint_least64_t = uint64_t
2493int_fast8_t = int8_t
2494int_fast16_t = int16_t
2495int_fast32_t = int32_t
2496int_fast64_t = int64_t
2497uint_fast8_t = uint8_t
2498uint_fast16_t = uint16_t
2499uint_fast32_t = uint32_t
2500uint_fast64_t = uint64_t
2501intptr_t = c_long
2502uintptr_t = c_ulong
2503intmax_t = c_longlong
2504uintmax_t = c_ulonglong
2505__all__ = ['ENGINE', 'pkcs7_enc_content_st', '__int16_t',
2506           'X509_REVOKED', 'SSL_CTX', 'UIT_BOOLEAN',
2507           '__darwin_time_t', 'ucontext64_t', 'int_fast32_t',
2508           'pem_ctx_st', 'uint8_t', 'fpos_t', 'X509', 'COMP_CTX',
2509           'tm', 'N10pem_ctx_st4DOLLAR_17E', 'swblk_t',
2510           'ASN1_TEMPLATE', '__darwin_pthread_t', 'fixpt_t',
2511           'BIO_METHOD', 'ASN1_PRINTABLESTRING', 'EVP_ENCODE_CTX',
2512           'dh_method', 'bio_f_buffer_ctx_struct', 'in_port_t',
2513           'X509_SIG', '__darwin_ssize_t', '__darwin_sigset_t',
2514           'wait', 'uint_fast16_t', 'N12asn1_type_st4DOLLAR_11E',
2515           'uint_least8_t', 'pthread_rwlock_t', 'ASN1_IA5STRING',
2516           'fsfilcnt_t', 'ucontext', '__uint64_t', 'timespec',
2517           'x509_cinf_st', 'COMP_METHOD', 'MD5_CTX', 'buf_mem_st',
2518           'ASN1_ENCODING_st', 'PBEPARAM', 'X509_NAME_ENTRY',
2519           '__darwin_va_list', 'ucontext_t', 'lhash_st',
2520           'N4wait3DOLLAR_4E', '__darwin_uuid_t',
2521           '_ossl_old_des_ks_struct', 'id_t', 'ASN1_BIT_STRING',
2522           'va_list', '__darwin_wchar_t', 'pthread_key_t',
2523           'pkcs7_signer_info_st', 'ASN1_METHOD', 'DSA_SIG', 'DSA',
2524           'UIT_NONE', 'pthread_t', '__darwin_useconds_t',
2525           'uint_fast8_t', 'UI_STRING', 'DES_cblock',
2526           '__darwin_mcontext64_t', 'rlim_t', 'PEM_Encode_Seal_st',
2527           'SHAstate_st', 'u_quad_t', 'openssl_fptr',
2528           '_opaque_pthread_rwlockattr_t',
2529           'N18x509_attributes_st4DOLLAR_13E',
2530           '__darwin_pthread_rwlock_t', 'daddr_t', 'ui_string_st',
2531           'x509_file_st', 'X509_req_info_st', 'int_least64_t',
2532           'evp_Encode_Ctx_st', 'X509_OBJECTS', 'CRYPTO_EX_DATA',
2533           '__int8_t', 'AUTHORITY_KEYID_st', '_opaque_pthread_attr_t',
2534           'sigstack', 'EVP_CIPHER_CTX', 'X509_extension_st', 'pid_t',
2535           'RSA_METHOD', 'PEM_USER', 'pem_recip_st', 'env_md_ctx_st',
2536           'rc5_key_st', 'ui_st', 'X509_PUBKEY', 'u_int8_t',
2537           'ASN1_ITEM_st', 'pkcs7_recip_info_st', 'ssl2_state_st',
2538           'off_t', 'N10ssl_ctx_st4DOLLAR_18E', 'crypto_ex_data_st',
2539           'ui_method_st', '__darwin_pthread_rwlockattr_t',
2540           'CRYPTO_EX_dup', '__darwin_ino_t', '__sFILE',
2541           'OSUnknownByteOrder', 'BN_MONT_CTX', 'ASN1_NULL', 'time_t',
2542           'CRYPTO_EX_new', 'asn1_type_st', 'CRYPTO_EX_DATA_FUNCS',
2543           'user_time_t', 'BIGNUM', 'pthread_rwlockattr_t',
2544           'ASN1_VALUE_st', 'DH_METHOD', '__darwin_off_t',
2545           '_opaque_pthread_t', 'bn_blinding_st', 'RSA', 'ssize_t',
2546           'mcontext64_t', 'user_long_t', 'fsblkcnt_t', 'cert_st',
2547           '__darwin_pthread_condattr_t', 'X509_PKEY',
2548           '__darwin_id_t', '__darwin_nl_item', 'SSL2_STATE', 'FILE',
2549           'pthread_mutexattr_t', 'size_t',
2550           '_ossl_old_des_key_schedule', 'pkcs7_issuer_and_serial_st',
2551           'sigval', 'CRYPTO_MEM_LEAK_CB', 'X509_NAME', 'blkcnt_t',
2552           'uint_least16_t', '__darwin_dev_t', 'evp_cipher_info_st',
2553           'BN_BLINDING', 'ssl3_state_st', 'uint_least64_t',
2554           'user_addr_t', 'DES_key_schedule', 'RIPEMD160_CTX',
2555           'u_char', 'X509_algor_st', 'uid_t', 'sess_cert_st',
2556           'u_int64_t', 'u_int16_t', 'sigset_t', '__darwin_ptrdiff_t',
2557           'ASN1_CTX', 'STACK', '__int32_t', 'UI_METHOD',
2558           'NETSCAPE_SPKI', 'UIT_PROMPT', 'st_CRYPTO_EX_DATA_IMPL',
2559           'cast_key_st', 'X509_HASH_DIR_CTX', 'sigevent',
2560           'user_ssize_t', 'clock_t', 'aes_key_st',
2561           '__darwin_socklen_t', '__darwin_intptr_t', 'int_fast64_t',
2562           'asn1_string_table_st', 'uint_fast32_t',
2563           'ASN1_VISIBLESTRING', 'DSA_SIG_st', 'obj_name_st',
2564           'X509_LOOKUP_METHOD', 'u_int32_t', 'EVP_CIPHER_INFO',
2565           '__gnuc_va_list', 'AES_KEY', 'PKCS7_ISSUER_AND_SERIAL',
2566           'BN_CTX', '__darwin_blkcnt_t', 'key_t', 'SHA_CTX',
2567           'pkcs7_signed_st', 'SSL', 'N10pem_ctx_st4DOLLAR_16E',
2568           'pthread_attr_t', 'EVP_MD', 'uint', 'ASN1_BOOLEAN',
2569           'ino_t', '__darwin_clock_t', 'ASN1_OCTET_STRING',
2570           'asn1_ctx_st', 'BIO_F_BUFFER_CTX', 'bn_mont_ctx_st',
2571           'X509_REQ_INFO', 'PEM_CTX', 'sigvec',
2572           '__darwin_pthread_mutexattr_t', 'x509_attributes_st',
2573           'stack_t', '__darwin_mode_t', '__mbstate_t',
2574           'asn1_object_st', 'ASN1_ENCODING', '__uint8_t',
2575           'LHASH_NODE', 'PKCS7_SIGNER_INFO', 'asn1_method_st',
2576           'stack_st', 'bio_info_cb', 'div_t', 'UIT_VERIFY',
2577           'PBEPARAM_st', 'N4wait3DOLLAR_3E', 'quad_t', '__siginfo',
2578           '__darwin_mbstate_t', 'rsa_st', 'ASN1_UNIVERSALSTRING',
2579           'uint64_t', 'ssl_comp_st', 'X509_OBJECT', 'pthread_cond_t',
2580           'DH', '__darwin_wctype_t', 'PKCS7_ENVELOPE', 'ASN1_TLC_st',
2581           'sig_atomic_t', 'BIO', 'nlink_t', 'BUF_MEM', 'SSL3_RECORD',
2582           'bio_method_st', 'timeval', 'UI_string_types', 'BIO_dummy',
2583           'ssl_ctx_st', 'NETSCAPE_CERT_SEQUENCE',
2584           'BIT_STRING_BITNAME_st', '__darwin_pthread_attr_t',
2585           'int8_t', '__darwin_wint_t', 'OBJ_NAME',
2586           'PKCS8_PRIV_KEY_INFO', 'PBE2PARAM_st',
2587           'LHASH_DOALL_FN_TYPE', 'x509_st', 'X509_VAL', 'dev_t',
2588           'ASN1_TEMPLATE_st', 'MD5state_st', '__uint16_t',
2589           'LHASH_DOALL_ARG_FN_TYPE', 'mdc2_ctx_st', 'SSL3_STATE',
2590           'ssl3_buffer_st', 'ASN1_ITEM_EXP',
2591           '_opaque_pthread_condattr_t', 'mode_t', 'ASN1_VALUE',
2592           'qaddr_t', '__darwin_gid_t', 'EVP_PKEY', 'CRYPTO_EX_free',
2593           '_ossl_old_des_cblock', 'X509_INFO', 'asn1_string_st',
2594           'intptr_t', 'UIT_INFO', 'int_fast8_t', 'sigaltstack',
2595           'env_md_st', 'LHASH', '__darwin_ucontext_t',
2596           'PKCS7_SIGN_ENVELOPE', '__darwin_mcontext_t', 'ct_rune_t',
2597           'MD2_CTX', 'pthread_once_t', 'SSL3_BUFFER', 'fd_mask',
2598           'ASN1_TYPE', 'PKCS7_SIGNED', 'ssl3_record_st', 'BF_KEY',
2599           'MD4state_st', 'MD4_CTX', 'int16_t', 'SSL_CIPHER',
2600           'rune_t', 'X509_TRUST', 'siginfo_t', 'X509_STORE',
2601           '__sbuf', 'X509_STORE_CTX', '__darwin_blksize_t', 'ldiv_t',
2602           'ASN1_TIME', 'SSL_METHOD', 'X509_LOOKUP',
2603           'Netscape_spki_st', 'P_PID', 'sigaction', 'sig_t',
2604           'hostent', 'x509_cert_aux_st', '_opaque_pthread_cond_t',
2605           'segsz_t', 'ushort', '__darwin_ct_rune_t', 'fd_set',
2606           'BN_RECP_CTX', 'x509_lookup_st', 'uint16_t', 'pkcs7_st',
2607           'asn1_header_st', '__darwin_pthread_key_t',
2608           'x509_trust_st', '__darwin_pthread_handler_rec', 'int32_t',
2609           'X509_CRL_INFO', 'N11evp_pkey_st4DOLLAR_12E', 'MDC2_CTX',
2610           'N23_ossl_old_des_ks_struct4DOLLAR_10E', 'ASN1_HEADER',
2611           'X509_crl_info_st', 'LHASH_HASH_FN_TYPE',
2612           '_opaque_pthread_mutexattr_t', 'ssl_st',
2613           'N8pkcs7_st4DOLLAR_15E', 'evp_pkey_st',
2614           'pkcs7_signedandenveloped_st', '__darwin_mach_port_t',
2615           'EVP_PBE_KEYGEN', '_opaque_pthread_mutex_t',
2616           'ASN1_UTCTIME', 'mcontext', 'crypto_ex_data_func_st',
2617           'u_long', 'PBKDF2PARAM_st', 'rc4_key_st', 'DSA_METHOD',
2618           'EVP_CIPHER', 'BIT_STRING_BITNAME', 'PKCS7_RECIP_INFO',
2619           'ssl3_enc_method', 'X509_CERT_AUX', 'uintmax_t',
2620           'int_fast16_t', 'RC5_32_KEY', 'ucontext64', 'ASN1_INTEGER',
2621           'u_short', 'N14x509_object_st4DOLLAR_14E', 'mcontext64',
2622           'X509_sig_st', 'ASN1_GENERALSTRING', 'PKCS7', '__sFILEX',
2623           'X509_name_entry_st', 'ssl_session_st', 'caddr_t',
2624           'bignum_st', 'X509_CINF', '__darwin_pthread_cond_t',
2625           'ASN1_TLC', 'PKCS7_ENCRYPT', 'NETSCAPE_SPKAC',
2626           'Netscape_spkac_st', 'idtype_t', 'UIT_ERROR',
2627           'uint_fast64_t', 'in_addr_t', 'pthread_mutex_t',
2628           '__int64_t', 'ASN1_BMPSTRING', 'uint32_t',
2629           'PEM_ENCODE_SEAL_CTX', 'suseconds_t', 'ASN1_OBJECT',
2630           'X509_val_st', 'private_key_st', 'CRYPTO_dynlock',
2631           'X509_objects_st', 'CRYPTO_EX_DATA_IMPL',
2632           'pthread_condattr_t', 'PKCS7_DIGEST', 'uint_least32_t',
2633           'ASN1_STRING', '__uint32_t', 'P_PGID', 'rsa_meth_st',
2634           'X509_crl_st', 'RC2_KEY', '__darwin_fsfilcnt_t',
2635           'X509_revoked_st', 'PBE2PARAM', 'blksize_t',
2636           'Netscape_certificate_sequence', 'ssl_cipher_st',
2637           'bignum_ctx', 'register_t', 'ASN1_UTF8STRING',
2638           'pkcs7_encrypted_st', 'RC4_KEY', '__darwin_ucontext64_t',
2639           'N13ssl2_state_st4DOLLAR_19E', 'bn_recp_ctx_st',
2640           'CAST_KEY', 'X509_ATTRIBUTE', '__darwin_suseconds_t',
2641           '__sigaction', 'user_ulong_t', 'syscall_arg_t',
2642           'evp_cipher_ctx_st', 'X509_ALGOR', 'mcontext_t',
2643           'const_DES_cblock', '__darwin_fsblkcnt_t', 'dsa_st',
2644           'int_least8_t', 'MD2state_st', 'X509_EXTENSION',
2645           'GEN_SESSION_CB', 'int_least16_t', '__darwin_wctrans_t',
2646           'PBKDF2PARAM', 'x509_lookup_method_st', 'pem_password_cb',
2647           'X509_info_st', 'x509_store_st', '__darwin_natural_t',
2648           'X509_pubkey_st', 'pkcs7_digest_st', '__darwin_size_t',
2649           'ASN1_STRING_TABLE', 'OSLittleEndian', 'RIPEMD160state_st',
2650           'pkcs7_enveloped_st', 'UI', 'ptrdiff_t', 'X509_REQ',
2651           'CRYPTO_dynlock_value', 'X509_req_st', 'x509_store_ctx_st',
2652           'N13ssl3_state_st4DOLLAR_20E', 'lhash_node_st',
2653           '__darwin_pthread_mutex_t', 'LHASH_COMP_FN_TYPE',
2654           '__darwin_rune_t', 'rlimit', '__darwin_pthread_once_t',
2655           'OSBigEndian', 'uintptr_t', '__darwin_uid_t', 'u_int',
2656           'ASN1_T61STRING', 'gid_t', 'ssl_method_st', 'ASN1_ITEM',
2657           'ASN1_ENUMERATED', '_opaque_pthread_rwlock_t',
2658           'pkcs8_priv_key_info_st', 'intmax_t', 'sigcontext',
2659           'X509_CRL', 'rc2_key_st', 'engine_st', 'x509_object_st',
2660           '_opaque_pthread_once_t', 'DES_ks', 'SSL_COMP',
2661           'dsa_method', 'int64_t', 'bio_st', 'bf_key_st',
2662           'ASN1_GENERALIZEDTIME', 'PKCS7_ENC_CONTENT',
2663           '__darwin_pid_t', 'lldiv_t', 'comp_method_st',
2664           'EVP_MD_CTX', 'evp_cipher_st', 'X509_name_st',
2665           'x509_hash_dir_st', '__darwin_mach_port_name_t',
2666           'useconds_t', 'user_size_t', 'SSL_SESSION', 'rusage',
2667           'ssl_crock_st', 'int_least32_t', '__sigaction_u', 'dh_st',
2668           'P_ALL', '__darwin_stack_t', 'N6DES_ks3DOLLAR_9E',
2669           'comp_ctx_st', 'X509_CERT_FILE_CTX']
2670