/Lib/lib2to3/tests/data/infinite_recursion.py

http://unladen-swallow.googlecode.com/ · Python · 2669 lines · 2659 code · 5 blank · 5 comment · 0 complexity · 1814d487c988fd5798c42a2f0cd95ddf MD5 · raw file

Large files are truncated click here to view the full file

  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.
  3. from ctypes import *
  4. STRING = c_char_p
  5. OSUnknownByteOrder = 0
  6. UIT_PROMPT = 1
  7. P_PGID = 2
  8. P_PID = 1
  9. UIT_ERROR = 5
  10. UIT_INFO = 4
  11. UIT_NONE = 0
  12. P_ALL = 0
  13. UIT_VERIFY = 2
  14. OSBigEndian = 2
  15. UIT_BOOLEAN = 3
  16. OSLittleEndian = 1
  17. __darwin_nl_item = c_int
  18. __darwin_wctrans_t = c_int
  19. __darwin_wctype_t = c_ulong
  20. __int8_t = c_byte
  21. __uint8_t = c_ubyte
  22. __int16_t = c_short
  23. __uint16_t = c_ushort
  24. __int32_t = c_int
  25. __uint32_t = c_uint
  26. __int64_t = c_longlong
  27. __uint64_t = c_ulonglong
  28. __darwin_intptr_t = c_long
  29. __darwin_natural_t = c_uint
  30. __darwin_ct_rune_t = c_int
  31. class __mbstate_t(Union):
  32. pass
  33. __mbstate_t._pack_ = 4
  34. __mbstate_t._fields_ = [
  35. ('__mbstate8', c_char * 128),
  36. ('_mbstateL', c_longlong),
  37. ]
  38. assert sizeof(__mbstate_t) == 128, sizeof(__mbstate_t)
  39. assert alignment(__mbstate_t) == 4, alignment(__mbstate_t)
  40. __darwin_mbstate_t = __mbstate_t
  41. __darwin_ptrdiff_t = c_int
  42. __darwin_size_t = c_ulong
  43. __darwin_va_list = STRING
  44. __darwin_wchar_t = c_int
  45. __darwin_rune_t = __darwin_wchar_t
  46. __darwin_wint_t = c_int
  47. __darwin_clock_t = c_ulong
  48. __darwin_socklen_t = __uint32_t
  49. __darwin_ssize_t = c_long
  50. __darwin_time_t = c_long
  51. sig_atomic_t = c_int
  52. class sigcontext(Structure):
  53. pass
  54. sigcontext._fields_ = [
  55. ('sc_onstack', c_int),
  56. ('sc_mask', c_int),
  57. ('sc_eax', c_uint),
  58. ('sc_ebx', c_uint),
  59. ('sc_ecx', c_uint),
  60. ('sc_edx', c_uint),
  61. ('sc_edi', c_uint),
  62. ('sc_esi', c_uint),
  63. ('sc_ebp', c_uint),
  64. ('sc_esp', c_uint),
  65. ('sc_ss', c_uint),
  66. ('sc_eflags', c_uint),
  67. ('sc_eip', c_uint),
  68. ('sc_cs', c_uint),
  69. ('sc_ds', c_uint),
  70. ('sc_es', c_uint),
  71. ('sc_fs', c_uint),
  72. ('sc_gs', c_uint),
  73. ]
  74. assert sizeof(sigcontext) == 72, sizeof(sigcontext)
  75. assert alignment(sigcontext) == 4, alignment(sigcontext)
  76. u_int8_t = c_ubyte
  77. u_int16_t = c_ushort
  78. u_int32_t = c_uint
  79. u_int64_t = c_ulonglong
  80. int32_t = c_int
  81. register_t = int32_t
  82. user_addr_t = u_int64_t
  83. user_size_t = u_int64_t
  84. int64_t = c_longlong
  85. user_ssize_t = int64_t
  86. user_long_t = int64_t
  87. user_ulong_t = u_int64_t
  88. user_time_t = int64_t
  89. syscall_arg_t = u_int64_t
  90. # values for unnamed enumeration
  91. class aes_key_st(Structure):
  92. pass
  93. aes_key_st._fields_ = [
  94. ('rd_key', c_ulong * 60),
  95. ('rounds', c_int),
  96. ]
  97. assert sizeof(aes_key_st) == 244, sizeof(aes_key_st)
  98. assert alignment(aes_key_st) == 4, alignment(aes_key_st)
  99. AES_KEY = aes_key_st
  100. class asn1_ctx_st(Structure):
  101. pass
  102. asn1_ctx_st._fields_ = [
  103. ('p', POINTER(c_ubyte)),
  104. ('eos', c_int),
  105. ('error', c_int),
  106. ('inf', c_int),
  107. ('tag', c_int),
  108. ('xclass', c_int),
  109. ('slen', c_long),
  110. ('max', POINTER(c_ubyte)),
  111. ('q', POINTER(c_ubyte)),
  112. ('pp', POINTER(POINTER(c_ubyte))),
  113. ('line', c_int),
  114. ]
  115. assert sizeof(asn1_ctx_st) == 44, sizeof(asn1_ctx_st)
  116. assert alignment(asn1_ctx_st) == 4, alignment(asn1_ctx_st)
  117. ASN1_CTX = asn1_ctx_st
  118. class asn1_object_st(Structure):
  119. pass
  120. asn1_object_st._fields_ = [
  121. ('sn', STRING),
  122. ('ln', STRING),
  123. ('nid', c_int),
  124. ('length', c_int),
  125. ('data', POINTER(c_ubyte)),
  126. ('flags', c_int),
  127. ]
  128. assert sizeof(asn1_object_st) == 24, sizeof(asn1_object_st)
  129. assert alignment(asn1_object_st) == 4, alignment(asn1_object_st)
  130. ASN1_OBJECT = asn1_object_st
  131. class asn1_string_st(Structure):
  132. pass
  133. asn1_string_st._fields_ = [
  134. ('length', c_int),
  135. ('type', c_int),
  136. ('data', POINTER(c_ubyte)),
  137. ('flags', c_long),
  138. ]
  139. assert sizeof(asn1_string_st) == 16, sizeof(asn1_string_st)
  140. assert alignment(asn1_string_st) == 4, alignment(asn1_string_st)
  141. ASN1_STRING = asn1_string_st
  142. class ASN1_ENCODING_st(Structure):
  143. pass
  144. ASN1_ENCODING_st._fields_ = [
  145. ('enc', POINTER(c_ubyte)),
  146. ('len', c_long),
  147. ('modified', c_int),
  148. ]
  149. assert sizeof(ASN1_ENCODING_st) == 12, sizeof(ASN1_ENCODING_st)
  150. assert alignment(ASN1_ENCODING_st) == 4, alignment(ASN1_ENCODING_st)
  151. ASN1_ENCODING = ASN1_ENCODING_st
  152. class asn1_string_table_st(Structure):
  153. pass
  154. asn1_string_table_st._fields_ = [
  155. ('nid', c_int),
  156. ('minsize', c_long),
  157. ('maxsize', c_long),
  158. ('mask', c_ulong),
  159. ('flags', c_ulong),
  160. ]
  161. assert sizeof(asn1_string_table_st) == 20, sizeof(asn1_string_table_st)
  162. assert alignment(asn1_string_table_st) == 4, alignment(asn1_string_table_st)
  163. ASN1_STRING_TABLE = asn1_string_table_st
  164. class ASN1_TEMPLATE_st(Structure):
  165. pass
  166. ASN1_TEMPLATE_st._fields_ = [
  167. ]
  168. ASN1_TEMPLATE = ASN1_TEMPLATE_st
  169. class ASN1_ITEM_st(Structure):
  170. pass
  171. ASN1_ITEM = ASN1_ITEM_st
  172. ASN1_ITEM_st._fields_ = [
  173. ]
  174. class ASN1_TLC_st(Structure):
  175. pass
  176. ASN1_TLC = ASN1_TLC_st
  177. ASN1_TLC_st._fields_ = [
  178. ]
  179. class ASN1_VALUE_st(Structure):
  180. pass
  181. ASN1_VALUE_st._fields_ = [
  182. ]
  183. ASN1_VALUE = ASN1_VALUE_st
  184. ASN1_ITEM_EXP = ASN1_ITEM
  185. class asn1_type_st(Structure):
  186. pass
  187. class N12asn1_type_st4DOLLAR_11E(Union):
  188. pass
  189. ASN1_BOOLEAN = c_int
  190. ASN1_INTEGER = asn1_string_st
  191. ASN1_ENUMERATED = asn1_string_st
  192. ASN1_BIT_STRING = asn1_string_st
  193. ASN1_OCTET_STRING = asn1_string_st
  194. ASN1_PRINTABLESTRING = asn1_string_st
  195. ASN1_T61STRING = asn1_string_st
  196. ASN1_IA5STRING = asn1_string_st
  197. ASN1_GENERALSTRING = asn1_string_st
  198. ASN1_BMPSTRING = asn1_string_st
  199. ASN1_UNIVERSALSTRING = asn1_string_st
  200. ASN1_UTCTIME = asn1_string_st
  201. ASN1_GENERALIZEDTIME = asn1_string_st
  202. ASN1_VISIBLESTRING = asn1_string_st
  203. ASN1_UTF8STRING = asn1_string_st
  204. N12asn1_type_st4DOLLAR_11E._fields_ = [
  205. ('ptr', STRING),
  206. ('boolean', ASN1_BOOLEAN),
  207. ('asn1_string', POINTER(ASN1_STRING)),
  208. ('object', POINTER(ASN1_OBJECT)),
  209. ('integer', POINTER(ASN1_INTEGER)),
  210. ('enumerated', POINTER(ASN1_ENUMERATED)),
  211. ('bit_string', POINTER(ASN1_BIT_STRING)),
  212. ('octet_string', POINTER(ASN1_OCTET_STRING)),
  213. ('printablestring', POINTER(ASN1_PRINTABLESTRING)),
  214. ('t61string', POINTER(ASN1_T61STRING)),
  215. ('ia5string', POINTER(ASN1_IA5STRING)),
  216. ('generalstring', POINTER(ASN1_GENERALSTRING)),
  217. ('bmpstring', POINTER(ASN1_BMPSTRING)),
  218. ('universalstring', POINTER(ASN1_UNIVERSALSTRING)),
  219. ('utctime', POINTER(ASN1_UTCTIME)),
  220. ('generalizedtime', POINTER(ASN1_GENERALIZEDTIME)),
  221. ('visiblestring', POINTER(ASN1_VISIBLESTRING)),
  222. ('utf8string', POINTER(ASN1_UTF8STRING)),
  223. ('set', POINTER(ASN1_STRING)),
  224. ('sequence', POINTER(ASN1_STRING)),
  225. ]
  226. assert sizeof(N12asn1_type_st4DOLLAR_11E) == 4, sizeof(N12asn1_type_st4DOLLAR_11E)
  227. assert alignment(N12asn1_type_st4DOLLAR_11E) == 4, alignment(N12asn1_type_st4DOLLAR_11E)
  228. asn1_type_st._fields_ = [
  229. ('type', c_int),
  230. ('value', N12asn1_type_st4DOLLAR_11E),
  231. ]
  232. assert sizeof(asn1_type_st) == 8, sizeof(asn1_type_st)
  233. assert alignment(asn1_type_st) == 4, alignment(asn1_type_st)
  234. ASN1_TYPE = asn1_type_st
  235. class asn1_method_st(Structure):
  236. pass
  237. asn1_method_st._fields_ = [
  238. ('i2d', CFUNCTYPE(c_int)),
  239. ('d2i', CFUNCTYPE(STRING)),
  240. ('create', CFUNCTYPE(STRING)),
  241. ('destroy', CFUNCTYPE(None)),
  242. ]
  243. assert sizeof(asn1_method_st) == 16, sizeof(asn1_method_st)
  244. assert alignment(asn1_method_st) == 4, alignment(asn1_method_st)
  245. ASN1_METHOD = asn1_method_st
  246. class asn1_header_st(Structure):
  247. pass
  248. asn1_header_st._fields_ = [
  249. ('header', POINTER(ASN1_OCTET_STRING)),
  250. ('data', STRING),
  251. ('meth', POINTER(ASN1_METHOD)),
  252. ]
  253. assert sizeof(asn1_header_st) == 12, sizeof(asn1_header_st)
  254. assert alignment(asn1_header_st) == 4, alignment(asn1_header_st)
  255. ASN1_HEADER = asn1_header_st
  256. class BIT_STRING_BITNAME_st(Structure):
  257. pass
  258. BIT_STRING_BITNAME_st._fields_ = [
  259. ('bitnum', c_int),
  260. ('lname', STRING),
  261. ('sname', STRING),
  262. ]
  263. assert sizeof(BIT_STRING_BITNAME_st) == 12, sizeof(BIT_STRING_BITNAME_st)
  264. assert alignment(BIT_STRING_BITNAME_st) == 4, alignment(BIT_STRING_BITNAME_st)
  265. BIT_STRING_BITNAME = BIT_STRING_BITNAME_st
  266. class bio_st(Structure):
  267. pass
  268. BIO = bio_st
  269. bio_info_cb = CFUNCTYPE(None, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)
  270. class bio_method_st(Structure):
  271. pass
  272. bio_method_st._fields_ = [
  273. ('type', c_int),
  274. ('name', STRING),
  275. ('bwrite', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
  276. ('bread', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
  277. ('bputs', CFUNCTYPE(c_int, POINTER(BIO), STRING)),
  278. ('bgets', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
  279. ('ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, c_long, c_void_p)),
  280. ('create', CFUNCTYPE(c_int, POINTER(BIO))),
  281. ('destroy', CFUNCTYPE(c_int, POINTER(BIO))),
  282. ('callback_ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, POINTER(bio_info_cb))),
  283. ]
  284. assert sizeof(bio_method_st) == 40, sizeof(bio_method_st)
  285. assert alignment(bio_method_st) == 4, alignment(bio_method_st)
  286. BIO_METHOD = bio_method_st
  287. class crypto_ex_data_st(Structure):
  288. pass
  289. class stack_st(Structure):
  290. pass
  291. STACK = stack_st
  292. crypto_ex_data_st._fields_ = [
  293. ('sk', POINTER(STACK)),
  294. ('dummy', c_int),
  295. ]
  296. assert sizeof(crypto_ex_data_st) == 8, sizeof(crypto_ex_data_st)
  297. assert alignment(crypto_ex_data_st) == 4, alignment(crypto_ex_data_st)
  298. CRYPTO_EX_DATA = crypto_ex_data_st
  299. bio_st._fields_ = [
  300. ('method', POINTER(BIO_METHOD)),
  301. ('callback', CFUNCTYPE(c_long, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)),
  302. ('cb_arg', STRING),
  303. ('init', c_int),
  304. ('shutdown', c_int),
  305. ('flags', c_int),
  306. ('retry_reason', c_int),
  307. ('num', c_int),
  308. ('ptr', c_void_p),
  309. ('next_bio', POINTER(bio_st)),
  310. ('prev_bio', POINTER(bio_st)),
  311. ('references', c_int),
  312. ('num_read', c_ulong),
  313. ('num_write', c_ulong),
  314. ('ex_data', CRYPTO_EX_DATA),
  315. ]
  316. assert sizeof(bio_st) == 64, sizeof(bio_st)
  317. assert alignment(bio_st) == 4, alignment(bio_st)
  318. class bio_f_buffer_ctx_struct(Structure):
  319. pass
  320. bio_f_buffer_ctx_struct._fields_ = [
  321. ('ibuf_size', c_int),
  322. ('obuf_size', c_int),
  323. ('ibuf', STRING),
  324. ('ibuf_len', c_int),
  325. ('ibuf_off', c_int),
  326. ('obuf', STRING),
  327. ('obuf_len', c_int),
  328. ('obuf_off', c_int),
  329. ]
  330. assert sizeof(bio_f_buffer_ctx_struct) == 32, sizeof(bio_f_buffer_ctx_struct)
  331. assert alignment(bio_f_buffer_ctx_struct) == 4, alignment(bio_f_buffer_ctx_struct)
  332. BIO_F_BUFFER_CTX = bio_f_buffer_ctx_struct
  333. class hostent(Structure):
  334. pass
  335. hostent._fields_ = [
  336. ]
  337. class bf_key_st(Structure):
  338. pass
  339. bf_key_st._fields_ = [
  340. ('P', c_uint * 18),
  341. ('S', c_uint * 1024),
  342. ]
  343. assert sizeof(bf_key_st) == 4168, sizeof(bf_key_st)
  344. assert alignment(bf_key_st) == 4, alignment(bf_key_st)
  345. BF_KEY = bf_key_st
  346. class bignum_st(Structure):
  347. pass
  348. bignum_st._fields_ = [
  349. ('d', POINTER(c_ulong)),
  350. ('top', c_int),
  351. ('dmax', c_int),
  352. ('neg', c_int),
  353. ('flags', c_int),
  354. ]
  355. assert sizeof(bignum_st) == 20, sizeof(bignum_st)
  356. assert alignment(bignum_st) == 4, alignment(bignum_st)
  357. BIGNUM = bignum_st
  358. class bignum_ctx(Structure):
  359. pass
  360. bignum_ctx._fields_ = [
  361. ]
  362. BN_CTX = bignum_ctx
  363. class bn_blinding_st(Structure):
  364. pass
  365. bn_blinding_st._fields_ = [
  366. ('init', c_int),
  367. ('A', POINTER(BIGNUM)),
  368. ('Ai', POINTER(BIGNUM)),
  369. ('mod', POINTER(BIGNUM)),
  370. ('thread_id', c_ulong),
  371. ]
  372. assert sizeof(bn_blinding_st) == 20, sizeof(bn_blinding_st)
  373. assert alignment(bn_blinding_st) == 4, alignment(bn_blinding_st)
  374. BN_BLINDING = bn_blinding_st
  375. class bn_mont_ctx_st(Structure):
  376. pass
  377. bn_mont_ctx_st._fields_ = [
  378. ('ri', c_int),
  379. ('RR', BIGNUM),
  380. ('N', BIGNUM),
  381. ('Ni', BIGNUM),
  382. ('n0', c_ulong),
  383. ('flags', c_int),
  384. ]
  385. assert sizeof(bn_mont_ctx_st) == 72, sizeof(bn_mont_ctx_st)
  386. assert alignment(bn_mont_ctx_st) == 4, alignment(bn_mont_ctx_st)
  387. BN_MONT_CTX = bn_mont_ctx_st
  388. class bn_recp_ctx_st(Structure):
  389. pass
  390. bn_recp_ctx_st._fields_ = [
  391. ('N', BIGNUM),
  392. ('Nr', BIGNUM),
  393. ('num_bits', c_int),
  394. ('shift', c_int),
  395. ('flags', c_int),
  396. ]
  397. assert sizeof(bn_recp_ctx_st) == 52, sizeof(bn_recp_ctx_st)
  398. assert alignment(bn_recp_ctx_st) == 4, alignment(bn_recp_ctx_st)
  399. BN_RECP_CTX = bn_recp_ctx_st
  400. class buf_mem_st(Structure):
  401. pass
  402. buf_mem_st._fields_ = [
  403. ('length', c_int),
  404. ('data', STRING),
  405. ('max', c_int),
  406. ]
  407. assert sizeof(buf_mem_st) == 12, sizeof(buf_mem_st)
  408. assert alignment(buf_mem_st) == 4, alignment(buf_mem_st)
  409. BUF_MEM = buf_mem_st
  410. class cast_key_st(Structure):
  411. pass
  412. cast_key_st._fields_ = [
  413. ('data', c_ulong * 32),
  414. ('short_key', c_int),
  415. ]
  416. assert sizeof(cast_key_st) == 132, sizeof(cast_key_st)
  417. assert alignment(cast_key_st) == 4, alignment(cast_key_st)
  418. CAST_KEY = cast_key_st
  419. class comp_method_st(Structure):
  420. pass
  421. comp_method_st._fields_ = [
  422. ('type', c_int),
  423. ('name', STRING),
  424. ('init', CFUNCTYPE(c_int)),
  425. ('finish', CFUNCTYPE(None)),
  426. ('compress', CFUNCTYPE(c_int)),
  427. ('expand', CFUNCTYPE(c_int)),
  428. ('ctrl', CFUNCTYPE(c_long)),
  429. ('callback_ctrl', CFUNCTYPE(c_long)),
  430. ]
  431. assert sizeof(comp_method_st) == 32, sizeof(comp_method_st)
  432. assert alignment(comp_method_st) == 4, alignment(comp_method_st)
  433. COMP_METHOD = comp_method_st
  434. class comp_ctx_st(Structure):
  435. pass
  436. comp_ctx_st._fields_ = [
  437. ('meth', POINTER(COMP_METHOD)),
  438. ('compress_in', c_ulong),
  439. ('compress_out', c_ulong),
  440. ('expand_in', c_ulong),
  441. ('expand_out', c_ulong),
  442. ('ex_data', CRYPTO_EX_DATA),
  443. ]
  444. assert sizeof(comp_ctx_st) == 28, sizeof(comp_ctx_st)
  445. assert alignment(comp_ctx_st) == 4, alignment(comp_ctx_st)
  446. COMP_CTX = comp_ctx_st
  447. class CRYPTO_dynlock_value(Structure):
  448. pass
  449. CRYPTO_dynlock_value._fields_ = [
  450. ]
  451. class CRYPTO_dynlock(Structure):
  452. pass
  453. CRYPTO_dynlock._fields_ = [
  454. ('references', c_int),
  455. ('data', POINTER(CRYPTO_dynlock_value)),
  456. ]
  457. assert sizeof(CRYPTO_dynlock) == 8, sizeof(CRYPTO_dynlock)
  458. assert alignment(CRYPTO_dynlock) == 4, alignment(CRYPTO_dynlock)
  459. BIO_dummy = bio_st
  460. CRYPTO_EX_new = CFUNCTYPE(c_int, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
  461. CRYPTO_EX_free = CFUNCTYPE(None, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
  462. CRYPTO_EX_dup = CFUNCTYPE(c_int, POINTER(CRYPTO_EX_DATA), POINTER(CRYPTO_EX_DATA), c_void_p, c_int, c_long, c_void_p)
  463. class crypto_ex_data_func_st(Structure):
  464. pass
  465. crypto_ex_data_func_st._fields_ = [
  466. ('argl', c_long),
  467. ('argp', c_void_p),
  468. ('new_func', POINTER(CRYPTO_EX_new)),
  469. ('free_func', POINTER(CRYPTO_EX_free)),
  470. ('dup_func', POINTER(CRYPTO_EX_dup)),
  471. ]
  472. assert sizeof(crypto_ex_data_func_st) == 20, sizeof(crypto_ex_data_func_st)
  473. assert alignment(crypto_ex_data_func_st) == 4, alignment(crypto_ex_data_func_st)
  474. CRYPTO_EX_DATA_FUNCS = crypto_ex_data_func_st
  475. class st_CRYPTO_EX_DATA_IMPL(Structure):
  476. pass
  477. CRYPTO_EX_DATA_IMPL = st_CRYPTO_EX_DATA_IMPL
  478. st_CRYPTO_EX_DATA_IMPL._fields_ = [
  479. ]
  480. CRYPTO_MEM_LEAK_CB = CFUNCTYPE(c_void_p, c_ulong, STRING, c_int, c_int, c_void_p)
  481. DES_cblock = c_ubyte * 8
  482. const_DES_cblock = c_ubyte * 8
  483. class DES_ks(Structure):
  484. pass
  485. class N6DES_ks3DOLLAR_9E(Union):
  486. pass
  487. N6DES_ks3DOLLAR_9E._fields_ = [
  488. ('cblock', DES_cblock),
  489. ('deslong', c_ulong * 2),
  490. ]
  491. assert sizeof(N6DES_ks3DOLLAR_9E) == 8, sizeof(N6DES_ks3DOLLAR_9E)
  492. assert alignment(N6DES_ks3DOLLAR_9E) == 4, alignment(N6DES_ks3DOLLAR_9E)
  493. DES_ks._fields_ = [
  494. ('ks', N6DES_ks3DOLLAR_9E * 16),
  495. ]
  496. assert sizeof(DES_ks) == 128, sizeof(DES_ks)
  497. assert alignment(DES_ks) == 4, alignment(DES_ks)
  498. DES_key_schedule = DES_ks
  499. _ossl_old_des_cblock = c_ubyte * 8
  500. class _ossl_old_des_ks_struct(Structure):
  501. pass
  502. class N23_ossl_old_des_ks_struct4DOLLAR_10E(Union):
  503. pass
  504. N23_ossl_old_des_ks_struct4DOLLAR_10E._fields_ = [
  505. ('_', _ossl_old_des_cblock),
  506. ('pad', c_ulong * 2),
  507. ]
  508. assert sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 8, sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E)
  509. assert alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 4, alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E)
  510. _ossl_old_des_ks_struct._fields_ = [
  511. ('ks', N23_ossl_old_des_ks_struct4DOLLAR_10E),
  512. ]
  513. assert sizeof(_ossl_old_des_ks_struct) == 8, sizeof(_ossl_old_des_ks_struct)
  514. assert alignment(_ossl_old_des_ks_struct) == 4, alignment(_ossl_old_des_ks_struct)
  515. _ossl_old_des_key_schedule = _ossl_old_des_ks_struct * 16
  516. class dh_st(Structure):
  517. pass
  518. DH = dh_st
  519. class dh_method(Structure):
  520. pass
  521. dh_method._fields_ = [
  522. ('name', STRING),
  523. ('generate_key', CFUNCTYPE(c_int, POINTER(DH))),
  524. ('compute_key', CFUNCTYPE(c_int, POINTER(c_ubyte), POINTER(BIGNUM), POINTER(DH))),
  525. ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DH), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
  526. ('init', CFUNCTYPE(c_int, POINTER(DH))),
  527. ('finish', CFUNCTYPE(c_int, POINTER(DH))),
  528. ('flags', c_int),
  529. ('app_data', STRING),
  530. ]
  531. assert sizeof(dh_method) == 32, sizeof(dh_method)
  532. assert alignment(dh_method) == 4, alignment(dh_method)
  533. DH_METHOD = dh_method
  534. class engine_st(Structure):
  535. pass
  536. ENGINE = engine_st
  537. dh_st._fields_ = [
  538. ('pad', c_int),
  539. ('version', c_int),
  540. ('p', POINTER(BIGNUM)),
  541. ('g', POINTER(BIGNUM)),
  542. ('length', c_long),
  543. ('pub_key', POINTER(BIGNUM)),
  544. ('priv_key', POINTER(BIGNUM)),
  545. ('flags', c_int),
  546. ('method_mont_p', STRING),
  547. ('q', POINTER(BIGNUM)),
  548. ('j', POINTER(BIGNUM)),
  549. ('seed', POINTER(c_ubyte)),
  550. ('seedlen', c_int),
  551. ('counter', POINTER(BIGNUM)),
  552. ('references', c_int),
  553. ('ex_data', CRYPTO_EX_DATA),
  554. ('meth', POINTER(DH_METHOD)),
  555. ('engine', POINTER(ENGINE)),
  556. ]
  557. assert sizeof(dh_st) == 76, sizeof(dh_st)
  558. assert alignment(dh_st) == 4, alignment(dh_st)
  559. class dsa_st(Structure):
  560. pass
  561. DSA = dsa_st
  562. class DSA_SIG_st(Structure):
  563. pass
  564. DSA_SIG_st._fields_ = [
  565. ('r', POINTER(BIGNUM)),
  566. ('s', POINTER(BIGNUM)),
  567. ]
  568. assert sizeof(DSA_SIG_st) == 8, sizeof(DSA_SIG_st)
  569. assert alignment(DSA_SIG_st) == 4, alignment(DSA_SIG_st)
  570. DSA_SIG = DSA_SIG_st
  571. class dsa_method(Structure):
  572. pass
  573. dsa_method._fields_ = [
  574. ('name', STRING),
  575. ('dsa_do_sign', CFUNCTYPE(POINTER(DSA_SIG), POINTER(c_ubyte), c_int, POINTER(DSA))),
  576. ('dsa_sign_setup', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BN_CTX), POINTER(POINTER(BIGNUM)), POINTER(POINTER(BIGNUM)))),
  577. ('dsa_do_verify', CFUNCTYPE(c_int, POINTER(c_ubyte), c_int, POINTER(DSA_SIG), POINTER(DSA))),
  578. ('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))),
  579. ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
  580. ('init', CFUNCTYPE(c_int, POINTER(DSA))),
  581. ('finish', CFUNCTYPE(c_int, POINTER(DSA))),
  582. ('flags', c_int),
  583. ('app_data', STRING),
  584. ]
  585. assert sizeof(dsa_method) == 40, sizeof(dsa_method)
  586. assert alignment(dsa_method) == 4, alignment(dsa_method)
  587. DSA_METHOD = dsa_method
  588. dsa_st._fields_ = [
  589. ('pad', c_int),
  590. ('version', c_long),
  591. ('write_params', c_int),
  592. ('p', POINTER(BIGNUM)),
  593. ('q', POINTER(BIGNUM)),
  594. ('g', POINTER(BIGNUM)),
  595. ('pub_key', POINTER(BIGNUM)),
  596. ('priv_key', POINTER(BIGNUM)),
  597. ('kinv', POINTER(BIGNUM)),
  598. ('r', POINTER(BIGNUM)),
  599. ('flags', c_int),
  600. ('method_mont_p', STRING),
  601. ('references', c_int),
  602. ('ex_data', CRYPTO_EX_DATA),
  603. ('meth', POINTER(DSA_METHOD)),
  604. ('engine', POINTER(ENGINE)),
  605. ]
  606. assert sizeof(dsa_st) == 68, sizeof(dsa_st)
  607. assert alignment(dsa_st) == 4, alignment(dsa_st)
  608. class evp_pkey_st(Structure):
  609. pass
  610. class N11evp_pkey_st4DOLLAR_12E(Union):
  611. pass
  612. class rsa_st(Structure):
  613. pass
  614. N11evp_pkey_st4DOLLAR_12E._fields_ = [
  615. ('ptr', STRING),
  616. ('rsa', POINTER(rsa_st)),
  617. ('dsa', POINTER(dsa_st)),
  618. ('dh', POINTER(dh_st)),
  619. ]
  620. assert sizeof(N11evp_pkey_st4DOLLAR_12E) == 4, sizeof(N11evp_pkey_st4DOLLAR_12E)
  621. assert alignment(N11evp_pkey_st4DOLLAR_12E) == 4, alignment(N11evp_pkey_st4DOLLAR_12E)
  622. evp_pkey_st._fields_ = [
  623. ('type', c_int),
  624. ('save_type', c_int),
  625. ('references', c_int),
  626. ('pkey', N11evp_pkey_st4DOLLAR_12E),
  627. ('save_parameters', c_int),
  628. ('attributes', POINTER(STACK)),
  629. ]
  630. assert sizeof(evp_pkey_st) == 24, sizeof(evp_pkey_st)
  631. assert alignment(evp_pkey_st) == 4, alignment(evp_pkey_st)
  632. class env_md_st(Structure):
  633. pass
  634. class env_md_ctx_st(Structure):
  635. pass
  636. EVP_MD_CTX = env_md_ctx_st
  637. env_md_st._fields_ = [
  638. ('type', c_int),
  639. ('pkey_type', c_int),
  640. ('md_size', c_int),
  641. ('flags', c_ulong),
  642. ('init', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
  643. ('update', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), c_void_p, c_ulong)),
  644. ('final', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(c_ubyte))),
  645. ('copy', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(EVP_MD_CTX))),
  646. ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
  647. ('sign', CFUNCTYPE(c_int)),
  648. ('verify', CFUNCTYPE(c_int)),
  649. ('required_pkey_type', c_int * 5),
  650. ('block_size', c_int),
  651. ('ctx_size', c_int),
  652. ]
  653. assert sizeof(env_md_st) == 72, sizeof(env_md_st)
  654. assert alignment(env_md_st) == 4, alignment(env_md_st)
  655. EVP_MD = env_md_st
  656. env_md_ctx_st._fields_ = [
  657. ('digest', POINTER(EVP_MD)),
  658. ('engine', POINTER(ENGINE)),
  659. ('flags', c_ulong),
  660. ('md_data', c_void_p),
  661. ]
  662. assert sizeof(env_md_ctx_st) == 16, sizeof(env_md_ctx_st)
  663. assert alignment(env_md_ctx_st) == 4, alignment(env_md_ctx_st)
  664. class evp_cipher_st(Structure):
  665. pass
  666. class evp_cipher_ctx_st(Structure):
  667. pass
  668. EVP_CIPHER_CTX = evp_cipher_ctx_st
  669. evp_cipher_st._fields_ = [
  670. ('nid', c_int),
  671. ('block_size', c_int),
  672. ('key_len', c_int),
  673. ('iv_len', c_int),
  674. ('flags', c_ulong),
  675. ('init', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_int)),
  676. ('do_cipher', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_uint)),
  677. ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX))),
  678. ('ctx_size', c_int),
  679. ('set_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
  680. ('get_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
  681. ('ctrl', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), c_int, c_int, c_void_p)),
  682. ('app_data', c_void_p),
  683. ]
  684. assert sizeof(evp_cipher_st) == 52, sizeof(evp_cipher_st)
  685. assert alignment(evp_cipher_st) == 4, alignment(evp_cipher_st)
  686. class evp_cipher_info_st(Structure):
  687. pass
  688. EVP_CIPHER = evp_cipher_st
  689. evp_cipher_info_st._fields_ = [
  690. ('cipher', POINTER(EVP_CIPHER)),
  691. ('iv', c_ubyte * 16),
  692. ]
  693. assert sizeof(evp_cipher_info_st) == 20, sizeof(evp_cipher_info_st)
  694. assert alignment(evp_cipher_info_st) == 4, alignment(evp_cipher_info_st)
  695. EVP_CIPHER_INFO = evp_cipher_info_st
  696. evp_cipher_ctx_st._fields_ = [
  697. ('cipher', POINTER(EVP_CIPHER)),
  698. ('engine', POINTER(ENGINE)),
  699. ('encrypt', c_int),
  700. ('buf_len', c_int),
  701. ('oiv', c_ubyte * 16),
  702. ('iv', c_ubyte * 16),
  703. ('buf', c_ubyte * 32),
  704. ('num', c_int),
  705. ('app_data', c_void_p),
  706. ('key_len', c_int),
  707. ('flags', c_ulong),
  708. ('cipher_data', c_void_p),
  709. ('final_used', c_int),
  710. ('block_mask', c_int),
  711. ('final', c_ubyte * 32),
  712. ]
  713. assert sizeof(evp_cipher_ctx_st) == 140, sizeof(evp_cipher_ctx_st)
  714. assert alignment(evp_cipher_ctx_st) == 4, alignment(evp_cipher_ctx_st)
  715. class evp_Encode_Ctx_st(Structure):
  716. pass
  717. evp_Encode_Ctx_st._fields_ = [
  718. ('num', c_int),
  719. ('length', c_int),
  720. ('enc_data', c_ubyte * 80),
  721. ('line_num', c_int),
  722. ('expect_nl', c_int),
  723. ]
  724. assert sizeof(evp_Encode_Ctx_st) == 96, sizeof(evp_Encode_Ctx_st)
  725. assert alignment(evp_Encode_Ctx_st) == 4, alignment(evp_Encode_Ctx_st)
  726. EVP_ENCODE_CTX = evp_Encode_Ctx_st
  727. EVP_PBE_KEYGEN = CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), STRING, c_int, POINTER(ASN1_TYPE), POINTER(EVP_CIPHER), POINTER(EVP_MD), c_int)
  728. class lhash_node_st(Structure):
  729. pass
  730. lhash_node_st._fields_ = [
  731. ('data', c_void_p),
  732. ('next', POINTER(lhash_node_st)),
  733. ('hash', c_ulong),
  734. ]
  735. assert sizeof(lhash_node_st) == 12, sizeof(lhash_node_st)
  736. assert alignment(lhash_node_st) == 4, alignment(lhash_node_st)
  737. LHASH_NODE = lhash_node_st
  738. LHASH_COMP_FN_TYPE = CFUNCTYPE(c_int, c_void_p, c_void_p)
  739. LHASH_HASH_FN_TYPE = CFUNCTYPE(c_ulong, c_void_p)
  740. LHASH_DOALL_FN_TYPE = CFUNCTYPE(None, c_void_p)
  741. LHASH_DOALL_ARG_FN_TYPE = CFUNCTYPE(None, c_void_p, c_void_p)
  742. class lhash_st(Structure):
  743. pass
  744. lhash_st._fields_ = [
  745. ('b', POINTER(POINTER(LHASH_NODE))),
  746. ('comp', LHASH_COMP_FN_TYPE),
  747. ('hash', LHASH_HASH_FN_TYPE),
  748. ('num_nodes', c_uint),
  749. ('num_alloc_nodes', c_uint),
  750. ('p', c_uint),
  751. ('pmax', c_uint),
  752. ('up_load', c_ulong),
  753. ('down_load', c_ulong),
  754. ('num_items', c_ulong),
  755. ('num_expands', c_ulong),
  756. ('num_expand_reallocs', c_ulong),
  757. ('num_contracts', c_ulong),
  758. ('num_contract_reallocs', c_ulong),
  759. ('num_hash_calls', c_ulong),
  760. ('num_comp_calls', c_ulong),
  761. ('num_insert', c_ulong),
  762. ('num_replace', c_ulong),
  763. ('num_delete', c_ulong),
  764. ('num_no_delete', c_ulong),
  765. ('num_retrieve', c_ulong),
  766. ('num_retrieve_miss', c_ulong),
  767. ('num_hash_comps', c_ulong),
  768. ('error', c_int),
  769. ]
  770. assert sizeof(lhash_st) == 96, sizeof(lhash_st)
  771. assert alignment(lhash_st) == 4, alignment(lhash_st)
  772. LHASH = lhash_st
  773. class MD2state_st(Structure):
  774. pass
  775. MD2state_st._fields_ = [
  776. ('num', c_int),
  777. ('data', c_ubyte * 16),
  778. ('cksm', c_uint * 16),
  779. ('state', c_uint * 16),
  780. ]
  781. assert sizeof(MD2state_st) == 148, sizeof(MD2state_st)
  782. assert alignment(MD2state_st) == 4, alignment(MD2state_st)
  783. MD2_CTX = MD2state_st
  784. class MD4state_st(Structure):
  785. pass
  786. MD4state_st._fields_ = [
  787. ('A', c_uint),
  788. ('B', c_uint),
  789. ('C', c_uint),
  790. ('D', c_uint),
  791. ('Nl', c_uint),
  792. ('Nh', c_uint),
  793. ('data', c_uint * 16),
  794. ('num', c_int),
  795. ]
  796. assert sizeof(MD4state_st) == 92, sizeof(MD4state_st)
  797. assert alignment(MD4state_st) == 4, alignment(MD4state_st)
  798. MD4_CTX = MD4state_st
  799. class MD5state_st(Structure):
  800. pass
  801. MD5state_st._fields_ = [
  802. ('A', c_uint),
  803. ('B', c_uint),
  804. ('C', c_uint),
  805. ('D', c_uint),
  806. ('Nl', c_uint),
  807. ('Nh', c_uint),
  808. ('data', c_uint * 16),
  809. ('num', c_int),
  810. ]
  811. assert sizeof(MD5state_st) == 92, sizeof(MD5state_st)
  812. assert alignment(MD5state_st) == 4, alignment(MD5state_st)
  813. MD5_CTX = MD5state_st
  814. class mdc2_ctx_st(Structure):
  815. pass
  816. mdc2_ctx_st._fields_ = [
  817. ('num', c_int),
  818. ('data', c_ubyte * 8),
  819. ('h', DES_cblock),
  820. ('hh', DES_cblock),
  821. ('pad_type', c_int),
  822. ]
  823. assert sizeof(mdc2_ctx_st) == 32, sizeof(mdc2_ctx_st)
  824. assert alignment(mdc2_ctx_st) == 4, alignment(mdc2_ctx_st)
  825. MDC2_CTX = mdc2_ctx_st
  826. class obj_name_st(Structure):
  827. pass
  828. obj_name_st._fields_ = [
  829. ('type', c_int),
  830. ('alias', c_int),
  831. ('name', STRING),
  832. ('data', STRING),
  833. ]
  834. assert sizeof(obj_name_st) == 16, sizeof(obj_name_st)
  835. assert alignment(obj_name_st) == 4, alignment(obj_name_st)
  836. OBJ_NAME = obj_name_st
  837. ASN1_TIME = asn1_string_st
  838. ASN1_NULL = c_int
  839. EVP_PKEY = evp_pkey_st
  840. class x509_st(Structure):
  841. pass
  842. X509 = x509_st
  843. class X509_algor_st(Structure):
  844. pass
  845. X509_ALGOR = X509_algor_st
  846. class X509_crl_st(Structure):
  847. pass
  848. X509_CRL = X509_crl_st
  849. class X509_name_st(Structure):
  850. pass
  851. X509_NAME = X509_name_st
  852. class x509_store_st(Structure):
  853. pass
  854. X509_STORE = x509_store_st
  855. class x509_store_ctx_st(Structure):
  856. pass
  857. X509_STORE_CTX = x509_store_ctx_st
  858. engine_st._fields_ = [
  859. ]
  860. class PEM_Encode_Seal_st(Structure):
  861. pass
  862. PEM_Encode_Seal_st._fields_ = [
  863. ('encode', EVP_ENCODE_CTX),
  864. ('md', EVP_MD_CTX),
  865. ('cipher', EVP_CIPHER_CTX),
  866. ]
  867. assert sizeof(PEM_Encode_Seal_st) == 252, sizeof(PEM_Encode_Seal_st)
  868. assert alignment(PEM_Encode_Seal_st) == 4, alignment(PEM_Encode_Seal_st)
  869. PEM_ENCODE_SEAL_CTX = PEM_Encode_Seal_st
  870. class pem_recip_st(Structure):
  871. pass
  872. pem_recip_st._fields_ = [
  873. ('name', STRING),
  874. ('dn', POINTER(X509_NAME)),
  875. ('cipher', c_int),
  876. ('key_enc', c_int),
  877. ]
  878. assert sizeof(pem_recip_st) == 16, sizeof(pem_recip_st)
  879. assert alignment(pem_recip_st) == 4, alignment(pem_recip_st)
  880. PEM_USER = pem_recip_st
  881. class pem_ctx_st(Structure):
  882. pass
  883. class N10pem_ctx_st4DOLLAR_16E(Structure):
  884. pass
  885. N10pem_ctx_st4DOLLAR_16E._fields_ = [
  886. ('version', c_int),
  887. ('mode', c_int),
  888. ]
  889. assert sizeof(N10pem_ctx_st4DOLLAR_16E) == 8, sizeof(N10pem_ctx_st4DOLLAR_16E)
  890. assert alignment(N10pem_ctx_st4DOLLAR_16E) == 4, alignment(N10pem_ctx_st4DOLLAR_16E)
  891. class N10pem_ctx_st4DOLLAR_17E(Structure):
  892. pass
  893. N10pem_ctx_st4DOLLAR_17E._fields_ = [
  894. ('cipher', c_int),
  895. ]
  896. assert sizeof(N10pem_ctx_st4DOLLAR_17E) == 4, sizeof(N10pem_ctx_st4DOLLAR_17E)
  897. assert alignment(N10pem_ctx_st4DOLLAR_17E) == 4, alignment(N10pem_ctx_st4DOLLAR_17E)
  898. pem_ctx_st._fields_ = [
  899. ('type', c_int),
  900. ('proc_type', N10pem_ctx_st4DOLLAR_16E),
  901. ('domain', STRING),
  902. ('DEK_info', N10pem_ctx_st4DOLLAR_17E),
  903. ('originator', POINTER(PEM_USER)),
  904. ('num_recipient', c_int),
  905. ('recipient', POINTER(POINTER(PEM_USER))),
  906. ('x509_chain', POINTER(STACK)),
  907. ('md', POINTER(EVP_MD)),
  908. ('md_enc', c_int),
  909. ('md_len', c_int),
  910. ('md_data', STRING),
  911. ('dec', POINTER(EVP_CIPHER)),
  912. ('key_len', c_int),
  913. ('key', POINTER(c_ubyte)),
  914. ('data_enc', c_int),
  915. ('data_len', c_int),
  916. ('data', POINTER(c_ubyte)),
  917. ]
  918. assert sizeof(pem_ctx_st) == 76, sizeof(pem_ctx_st)
  919. assert alignment(pem_ctx_st) == 4, alignment(pem_ctx_st)
  920. PEM_CTX = pem_ctx_st
  921. pem_password_cb = CFUNCTYPE(c_int, STRING, c_int, c_int, c_void_p)
  922. class pkcs7_issuer_and_serial_st(Structure):
  923. pass
  924. pkcs7_issuer_and_serial_st._fields_ = [
  925. ('issuer', POINTER(X509_NAME)),
  926. ('serial', POINTER(ASN1_INTEGER)),
  927. ]
  928. assert sizeof(pkcs7_issuer_and_serial_st) == 8, sizeof(pkcs7_issuer_and_serial_st)
  929. assert alignment(pkcs7_issuer_and_serial_st) == 4, alignment(pkcs7_issuer_and_serial_st)
  930. PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st
  931. class pkcs7_signer_info_st(Structure):
  932. pass
  933. pkcs7_signer_info_st._fields_ = [
  934. ('version', POINTER(ASN1_INTEGER)),
  935. ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
  936. ('digest_alg', POINTER(X509_ALGOR)),
  937. ('auth_attr', POINTER(STACK)),
  938. ('digest_enc_alg', POINTER(X509_ALGOR)),
  939. ('enc_digest', POINTER(ASN1_OCTET_STRING)),
  940. ('unauth_attr', POINTER(STACK)),
  941. ('pkey', POINTER(EVP_PKEY)),
  942. ]
  943. assert sizeof(pkcs7_signer_info_st) == 32, sizeof(pkcs7_signer_info_st)
  944. assert alignment(pkcs7_signer_info_st) == 4, alignment(pkcs7_signer_info_st)
  945. PKCS7_SIGNER_INFO = pkcs7_signer_info_st
  946. class pkcs7_recip_info_st(Structure):
  947. pass
  948. pkcs7_recip_info_st._fields_ = [
  949. ('version', POINTER(ASN1_INTEGER)),
  950. ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
  951. ('key_enc_algor', POINTER(X509_ALGOR)),
  952. ('enc_key', POINTER(ASN1_OCTET_STRING)),
  953. ('cert', POINTER(X509)),
  954. ]
  955. assert sizeof(pkcs7_recip_info_st) == 20, sizeof(pkcs7_recip_info_st)
  956. assert alignment(pkcs7_recip_info_st) == 4, alignment(pkcs7_recip_info_st)
  957. PKCS7_RECIP_INFO = pkcs7_recip_info_st
  958. class pkcs7_signed_st(Structure):
  959. pass
  960. class pkcs7_st(Structure):
  961. pass
  962. pkcs7_signed_st._fields_ = [
  963. ('version', POINTER(ASN1_INTEGER)),
  964. ('md_algs', POINTER(STACK)),
  965. ('cert', POINTER(STACK)),
  966. ('crl', POINTER(STACK)),
  967. ('signer_info', POINTER(STACK)),
  968. ('contents', POINTER(pkcs7_st)),
  969. ]
  970. assert sizeof(pkcs7_signed_st) == 24, sizeof(pkcs7_signed_st)
  971. assert alignment(pkcs7_signed_st) == 4, alignment(pkcs7_signed_st)
  972. PKCS7_SIGNED = pkcs7_signed_st
  973. class pkcs7_enc_content_st(Structure):
  974. pass
  975. pkcs7_enc_content_st._fields_ = [
  976. ('content_type', POINTER(ASN1_OBJECT)),
  977. ('algorithm', POINTER(X509_ALGOR)),
  978. ('enc_data', POINTER(ASN1_OCTET_STRING)),
  979. ('cipher', POINTER(EVP_CIPHER)),
  980. ]
  981. assert sizeof(pkcs7_enc_content_st) == 16, sizeof(pkcs7_enc_content_st)
  982. assert alignment(pkcs7_enc_content_st) == 4, alignment(pkcs7_enc_content_st)
  983. PKCS7_ENC_CONTENT = pkcs7_enc_content_st
  984. class pkcs7_enveloped_st(Structure):
  985. pass
  986. pkcs7_enveloped_st._fields_ = [
  987. ('version', POINTER(ASN1_INTEGER)),
  988. ('recipientinfo', POINTER(STACK)),
  989. ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
  990. ]
  991. assert sizeof(pkcs7_enveloped_st) == 12, sizeof(pkcs7_enveloped_st)
  992. assert alignment(pkcs7_enveloped_st) == 4, alignment(pkcs7_enveloped_st)
  993. PKCS7_ENVELOPE = pkcs7_enveloped_st
  994. class pkcs7_signedandenveloped_st(Structure):
  995. pass
  996. pkcs7_signedandenveloped_st._fields_ = [
  997. ('version', POINTER(ASN1_INTEGER)),
  998. ('md_algs', POINTER(STACK)),
  999. ('cert', POINTER(STACK)),
  1000. ('crl', POINTER(STACK)),
  1001. ('signer_info', POINTER(STACK)),
  1002. ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
  1003. ('recipientinfo', POINTER(STACK)),
  1004. ]
  1005. assert sizeof(pkcs7_signedandenveloped_st) == 28, sizeof(pkcs7_signedandenveloped_st)
  1006. assert alignment(pkcs7_signedandenveloped_st) == 4, alignment(pkcs7_signedandenveloped_st)
  1007. PKCS7_SIGN_ENVELOPE = pkcs7_signedandenveloped_st
  1008. class pkcs7_digest_st(Structure):
  1009. pass
  1010. pkcs7_digest_st._fields_ = [
  1011. ('version', POINTER(ASN1_INTEGER)),
  1012. ('md', POINTER(X509_ALGOR)),
  1013. ('contents', POINTER(pkcs7_st)),
  1014. ('digest', POINTER(ASN1_OCTET_STRING)),
  1015. ]
  1016. assert sizeof(pkcs7_digest_st) == 16, sizeof(pkcs7_digest_st)
  1017. assert alignment(pkcs7_digest_st) == 4, alignment(pkcs7_digest_st)
  1018. PKCS7_DIGEST = pkcs7_digest_st
  1019. class pkcs7_encrypted_st(Structure):
  1020. pass
  1021. pkcs7_encrypted_st._fields_ = [
  1022. ('version', POINTER(ASN1_INTEGER)),
  1023. ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
  1024. ]
  1025. assert sizeof(pkcs7_encrypted_st) == 8, sizeof(pkcs7_encrypted_st)
  1026. assert alignment(pkcs7_encrypted_st) == 4, alignment(pkcs7_encrypted_st)
  1027. PKCS7_ENCRYPT = pkcs7_encrypted_st
  1028. class N8pkcs7_st4DOLLAR_15E(Union):
  1029. pass
  1030. N8pkcs7_st4DOLLAR_15E._fields_ = [
  1031. ('ptr', STRING),
  1032. ('data', POINTER(ASN1_OCTET_STRING)),
  1033. ('sign', POINTER(PKCS7_SIGNED)),
  1034. ('enveloped', POINTER(PKCS7_ENVELOPE)),
  1035. ('signed_and_enveloped', POINTER(PKCS7_SIGN_ENVELOPE)),
  1036. ('digest', POINTER(PKCS7_DIGEST)),
  1037. ('encrypted', POINTER(PKCS7_ENCRYPT)),
  1038. ('other', POINTER(ASN1_TYPE)),
  1039. ]
  1040. assert sizeof(N8pkcs7_st4DOLLAR_15E) == 4, sizeof(N8pkcs7_st4DOLLAR_15E)
  1041. assert alignment(N8pkcs7_st4DOLLAR_15E) == 4, alignment(N8pkcs7_st4DOLLAR_15E)
  1042. pkcs7_st._fields_ = [
  1043. ('asn1', POINTER(c_ubyte)),
  1044. ('length', c_long),
  1045. ('state', c_int),
  1046. ('detached', c_int),
  1047. ('type', POINTER(ASN1_OBJECT)),
  1048. ('d', N8pkcs7_st4DOLLAR_15E),
  1049. ]
  1050. assert sizeof(pkcs7_st) == 24, sizeof(pkcs7_st)
  1051. assert alignment(pkcs7_st) == 4, alignment(pkcs7_st)
  1052. PKCS7 = pkcs7_st
  1053. class rc2_key_st(Structure):
  1054. pass
  1055. rc2_key_st._fields_ = [
  1056. ('data', c_uint * 64),
  1057. ]
  1058. assert sizeof(rc2_key_st) == 256, sizeof(rc2_key_st)
  1059. assert alignment(rc2_key_st) == 4, alignment(rc2_key_st)
  1060. RC2_KEY = rc2_key_st
  1061. class rc4_key_st(Structure):
  1062. pass
  1063. rc4_key_st._fields_ = [
  1064. ('x', c_ubyte),
  1065. ('y', c_ubyte),
  1066. ('data', c_ubyte * 256),
  1067. ]
  1068. assert sizeof(rc4_key_st) == 258, sizeof(rc4_key_st)
  1069. assert alignment(rc4_key_st) == 1, alignment(rc4_key_st)
  1070. RC4_KEY = rc4_key_st
  1071. class rc5_key_st(Structure):
  1072. pass
  1073. rc5_key_st._fields_ = [
  1074. ('rounds', c_int),
  1075. ('data', c_ulong * 34),
  1076. ]
  1077. assert sizeof(rc5_key_st) == 140, sizeof(rc5_key_st)
  1078. assert alignment(rc5_key_st) == 4, alignment(rc5_key_st)
  1079. RC5_32_KEY = rc5_key_st
  1080. class RIPEMD160state_st(Structure):
  1081. pass
  1082. RIPEMD160state_st._fields_ = [
  1083. ('A', c_uint),
  1084. ('B', c_uint),
  1085. ('C', c_uint),
  1086. ('D', c_uint),
  1087. ('E', c_uint),
  1088. ('Nl', c_uint),
  1089. ('Nh', c_uint),
  1090. ('data', c_uint * 16),
  1091. ('num', c_int),
  1092. ]
  1093. assert sizeof(RIPEMD160state_st) == 96, sizeof(RIPEMD160state_st)
  1094. assert alignment(RIPEMD160state_st) == 4, alignment(RIPEMD160state_st)
  1095. RIPEMD160_CTX = RIPEMD160state_st
  1096. RSA = rsa_st
  1097. class rsa_meth_st(Structure):
  1098. pass
  1099. rsa_meth_st._fields_ = [
  1100. ('name', STRING),
  1101. ('rsa_pub_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
  1102. ('rsa_pub_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
  1103. ('rsa_priv_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
  1104. ('rsa_priv_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
  1105. ('rsa_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(RSA))),
  1106. ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
  1107. ('init', CFUNCTYPE(c_int, POINTER(RSA))),
  1108. ('finish', CFUNCTYPE(c_int, POINTER(RSA))),
  1109. ('flags', c_int),
  1110. ('app_data', STRING),
  1111. ('rsa_sign', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), POINTER(c_uint), POINTER(RSA))),
  1112. ('rsa_verify', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), c_uint, POINTER(RSA))),
  1113. ]
  1114. assert sizeof(rsa_meth_st) == 52, sizeof(rsa_meth_st)
  1115. assert alignment(rsa_meth_st) == 4, alignment(rsa_meth_st)
  1116. RSA_METHOD = rsa_meth_st
  1117. rsa_st._fields_ = [
  1118. ('pad', c_int),
  1119. ('version', c_long),
  1120. ('meth', POINTER(RSA_METHOD)),
  1121. ('engine', POINTER(ENGINE)),
  1122. ('n', POINTER(BIGNUM)),
  1123. ('e', POINTER(BIGNUM)),
  1124. ('d', POINTER(BIGNUM)),
  1125. ('p', POINTER(BIGNUM)),
  1126. ('q', POINTER(BIGNUM)),
  1127. ('dmp1', POINTER(BIGNUM)),
  1128. ('dmq1', POINTER(BIGNUM)),
  1129. ('iqmp', POINTER(BIGNUM)),
  1130. ('ex_data', CRYPTO_EX_DATA),
  1131. ('references', c_int),
  1132. ('flags', c_int),
  1133. ('_method_mod_n', POINTER(BN_MONT_CTX)),
  1134. ('_method_mod_p', POINTER(BN_MONT_CTX)),
  1135. ('_method_mod_q', POINTER(BN_MONT_CTX)),
  1136. ('bignum_data', STRING),
  1137. ('blinding', POINTER(BN_BLINDING)),
  1138. ]
  1139. assert sizeof(rsa_st) == 84, sizeof(rsa_st)
  1140. assert alignment(rsa_st) == 4, alignment(rsa_st)
  1141. openssl_fptr = CFUNCTYPE(None)
  1142. class SHAstate_st(Structure):
  1143. pass
  1144. SHAstate_st._fields_ = [
  1145. ('h0', c_uint),
  1146. ('h1', c_uint),
  1147. ('h2', c_uint),
  1148. ('h3', c_uint),
  1149. ('h4', c_uint),
  1150. ('Nl', c_uint),
  1151. ('Nh', c_uint),
  1152. ('data', c_uint * 16),
  1153. ('num', c_int),
  1154. ]
  1155. assert sizeof(SHAstate_st) == 96, sizeof(SHAstate_st)
  1156. assert alignment(SHAstate_st) == 4, alignment(SHAstate_st)
  1157. SHA_CTX = SHAstate_st
  1158. class ssl_st(Structure):
  1159. pass
  1160. ssl_crock_st = POINTER(ssl_st)
  1161. class ssl_cipher_st(Structure):
  1162. pass
  1163. ssl_cipher_st._fields_ = [
  1164. ('valid', c_int),
  1165. ('name', STRING),
  1166. ('id', c_ulong),
  1167. ('algorithms', c_ulong),
  1168. ('algo_strength', c_ulong),
  1169. ('algorithm2', c_ulong),
  1170. ('strength_bits', c_int),
  1171. ('alg_bits', c_int),
  1172. ('mask', c_ulong),
  1173. ('mask_strength', c_ulong),
  1174. ]
  1175. assert sizeof(ssl_cipher_st) == 40, sizeof(ssl_cipher_st)
  1176. assert alignment(ssl_cipher_st) == 4, alignment(ssl_cipher_st)
  1177. SSL_CIPHER = ssl_cipher_st
  1178. SSL = ssl_st
  1179. class ssl_ctx_st(Structure):
  1180. pass
  1181. SSL_CTX = ssl_ctx_st
  1182. class ssl_method_st(Structure):
  1183. pass
  1184. class ssl3_enc_method(Structure):
  1185. pass
  1186. ssl_method_st._fields_ = [
  1187. ('version', c_int),
  1188. ('ssl_new', CFUNCTYPE(c_int, POINTER(SSL))),
  1189. ('ssl_clear', CFUNCTYPE(None, POINTER(SSL))),
  1190. ('ssl_free', CFUNCTYPE(None, POINTER(SSL))),
  1191. ('ssl_accept', CFUNCTYPE(c_int, POINTER(SSL))),
  1192. ('ssl_connect', CFUNCTYPE(c_int, POINTER(SSL))),
  1193. ('ssl_read', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
  1194. ('ssl_peek', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
  1195. ('ssl_write', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
  1196. ('ssl_shutdown', CFUNCTYPE(c_int, POINTER(SSL))),
  1197. ('ssl_renegotiate', CFUNCTYPE(c_int, POINTER(SSL))),
  1198. ('ssl_renegotiate_check', CFUNCTYPE(c_int, POINTER(SSL))),
  1199. ('ssl_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, c_long, c_void_p)),
  1200. ('ssl_ctx_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, c_long, c_void_p)),
  1201. ('get_cipher_by_char', CFUNCTYPE(POINTER(SSL_CIPHER), POINTER(c_ubyte))),
  1202. ('put_cipher_by_char', CFUNCTYPE(c_int, POINTER(SSL_CIPHER), POINTER(c_ubyte))),
  1203. ('ssl_pending', CFUNCTYPE(c_int, POINTER(SSL))),
  1204. ('num_ciphers', CFUNCTYPE(c_int)),
  1205. ('get_cipher', CFUNCTYPE(POINTER(SSL_CIPHER), c_uint)),
  1206. ('get_ssl_method', CFUNCTYPE(POINTER(ssl_method_st), c_int)),
  1207. ('get_timeout', CFUNCTYPE(c_long)),
  1208. ('ssl3_enc', POINTER(ssl3_enc_method)),
  1209. ('ssl_version', CFUNCTYPE(c_int)),
  1210. ('ssl_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, CFUNCTYPE(None))),
  1211. ('ssl_ctx_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, CFUNCTYPE(None))),
  1212. ]
  1213. assert sizeof(ssl_method_st) == 100, sizeof(ssl_method_st)
  1214. assert alignment(ssl_method_st) == 4, alignment(ssl_method_st)
  1215. ssl3_enc_method._fields_ = [
  1216. ]
  1217. SSL_METHOD = ssl_method_st
  1218. class ssl_session_st(Structure):
  1219. pass
  1220. class sess_cert_st(Structure):
  1221. pass
  1222. ssl_session_st._fields_ = [
  1223. ('ssl_version', c_int),
  1224. ('key_arg_length', c_uint),
  1225. ('key_arg', c_ubyte * 8),
  1226. ('master_key_length', c_int),
  1227. ('master_key', c_ubyte * 48),
  1228. ('session_id_length', c_uint),
  1229. ('session_id', c_ubyte * 32),
  1230. ('sid_ctx_length', c_uint),
  1231. ('sid_ctx', c_ubyte * 32),
  1232. ('not_resumable', c_int),
  1233. ('sess_cert', POINTER(sess_cert_st)),
  1234. ('peer', POINTER(X509)),
  1235. ('verify_result', c_long),
  1236. ('references', c_int),
  1237. ('timeout', c_long),
  1238. ('time', c_long),
  1239. ('compress_meth', c_int),
  1240. ('cipher', POINTER(SSL_CIPHER)),
  1241. ('cipher_id', c_ulong),
  1242. ('ciphers', POINTER(STACK)),
  1243. ('ex_data', CRYPTO_EX_DATA),
  1244. ('prev', POINTER(ssl_session_st)),
  1245. ('next', POINTER(ssl_session_st)),
  1246. ]
  1247. assert sizeof(ssl_session_st) == 200, sizeof(ssl_session_st)
  1248. assert alignment(ssl_session_st) == 4, alignment(ssl_session_st)
  1249. sess_cert_st._fields_ = [
  1250. ]
  1251. SSL_SESSION = ssl_session_st
  1252. GEN_SESSION_CB = CFUNCTYPE(c_int, POINTER(SSL), POINTER(c_ubyte), POINTER(c_uint))
  1253. class ssl_comp_st(Structure):
  1254. pass
  1255. ssl_comp_st._fields_ = [
  1256. ('id', c_int),
  1257. ('name', STRING),
  1258. ('method', POINTER(COMP_METHOD)),
  1259. ]
  1260. assert sizeof(ssl_comp_st) == 12, sizeof(ssl_comp_st)
  1261. assert alignment(ssl_comp_st) == 4, alignment(ssl_comp_st)
  1262. SSL_COMP = ssl_comp_st
  1263. class N10ssl_ctx_st4DOLLAR_18E(Structure):
  1264. pass
  1265. N10ssl_ctx_st4DOLLAR_18E._fields_ = [
  1266. ('sess_connect', c_int),
  1267. ('sess_connect_renegotiate', c_int),
  1268. ('sess_connect_good', c_int),
  1269. ('sess_accept', c_int),
  1270. ('sess_accept_renegotiate', c_int),
  1271. ('sess_accept_good', c_int),
  1272. ('sess_miss', c_int),
  1273. ('sess_timeout', c_int),
  1274. ('sess_cache_full', c_int),
  1275. ('sess_hit', c_int),
  1276. ('sess_cb_hit', c_int),
  1277. ]
  1278. assert sizeof(N10ssl_ctx_st4DOLLAR_18E) == 44, sizeof(N10ssl_ctx_st4DOLLAR_18E)
  1279. assert alignment(N10ssl_ctx_st4DOLLAR_18E) == 4, alignment(N10ssl_ctx_st4DOLLAR_18E)
  1280. class cert_st(Structure):
  1281. pass
  1282. ssl_ctx_st._fields_ = [
  1283. ('method', POINTER(SSL_METHOD)),
  1284. ('cipher_list', POINTER(STACK)),
  1285. ('cipher_list_by_id', POINTER(STACK)),
  1286. ('cert_store', POINTER(x509_store_st)),
  1287. ('sessions', POINTER(lhash_st)),
  1288. ('session_cache_size', c_ulong),
  1289. ('session_cache_head', POINTER(ssl_session_st)),
  1290. ('session_cache_tail', POINTER(ssl_session_st)),
  1291. ('session_cache_mode', c_int),
  1292. ('session_timeout', c_long),
  1293. ('new_session_cb', CFUNCTYPE(c_int, POINTER(ssl_st), POINTER(SSL_SESSION))),
  1294. ('remove_session_cb', CFUNCTYPE(None, POINTER(ssl_ctx_st), POINTER(SSL_SESSION))),
  1295. ('get_session_cb', CFUNCTYPE(POINTER(SSL_SESSION), POINTER(ssl_st), POINTER(c_ubyte), c_int, POINTER(c_int))),
  1296. ('stats', N10ssl_ctx_st4DOLLAR_18E),
  1297. ('references', c_int),
  1298. ('app_verify_callback', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), c_void_p)),
  1299. ('app_verify_arg', c_void_p),
  1300. ('default_passwd_callback', POINTER(pem_password_cb)),
  1301. ('default_passwd_callback_userdata', c_void_p),
  1302. ('client_cert_cb', CFUNCTYPE(c_int, POINTER(SSL), POINTER(POINTER(X509)), POINTER(POINTER(EVP_PKEY)))),
  1303. ('ex_data', CRYPTO_EX_DATA),
  1304. ('rsa_md5', POINTER(EVP_MD)),
  1305. ('md5', POINTER(EVP_MD)),
  1306. ('sha1', POINTER(EVP_MD)),
  1307. ('extra_certs', POINTER(STACK)),
  1308. ('comp_methods', POINTER(STACK)),
  1309. ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
  1310. ('client_CA', POINTER(STACK)),
  1311. ('options', c_ulong),
  1312. ('mode', c_ulong),
  1313. ('max_cert_list', c_long),
  1314. ('cert', POINTER(cert_st)),
  1315. ('read_ahead', c_int),
  1316. ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
  1317. ('msg_callback_arg', c_void_p),
  1318. ('verify_mode', c_int),
  1319. ('verify_depth', c_int),
  1320. ('sid_ctx_length', c_uint),
  1321. ('sid_ctx', c_ubyte * 32),
  1322. ('default_verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
  1323. ('generate_session_id', GEN_SESSION_CB),
  1324. ('purpose', c_int),
  1325. ('trust', c_int),
  1326. ('quiet_shutdown', c_int),
  1327. ]
  1328. assert sizeof(ssl_ctx_st) == 248, sizeof(ssl_ctx_st)
  1329. assert alignment(ssl_ctx_st) == 4, alignment(ssl_ctx_st)
  1330. cert_st._fields_ = [
  1331. ]
  1332. class ssl2_state_st(Structure):
  1333. pass
  1334. class ssl3_state_st(Structure):
  1335. pass
  1336. ssl_st._fields_ = [
  1337. ('version', c_int),
  1338. ('type', c_int),
  1339. ('method', POINTER(SSL_METHOD)),
  1340. ('rbio', POINTER(BIO)),
  1341. ('wbio', POINTER(BIO)),
  1342. ('bbio', POINTER(BIO)),
  1343. ('rwstate', c_int),
  1344. ('in_handshake', c_int),
  1345. ('handshake_func', CFUNCTYPE(c_int)),
  1346. ('server', c_int),
  1347. ('new_session', c_int),
  1348. ('quiet_shutdown', c_int),
  1349. ('shutdown', c_int),
  1350. ('state', c_int),
  1351. ('rstate', c_int),
  1352. ('init_buf', POINTER(BUF_MEM)),
  1353. ('init_msg', c_void_p),
  1354. ('init_num', c_int),
  1355. ('init_off', c_int),
  1356. ('packet', POINTER(c_ubyte)),
  1357. ('packet_length', c_uint),
  1358. ('s2', POINTER(ssl2_state_st)),
  1359. ('s3', POINTER(ssl3_state_st)),
  1360. ('read_ahead', c_int),
  1361. ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
  1362. ('msg_callback_arg', c_void_p),
  1363. ('hit', c_int),
  1364. ('purpose', c_int),
  1365. ('trust', c_int),
  1366. ('cipher_list', POINTER(STACK)),
  1367. ('cipher_list_by_id', POINTER(STACK)),
  1368. ('enc_read_ctx', POINTER(EVP_CIPHER_CTX)),
  1369. ('read_hash', POINTER(EVP_MD)),
  1370. ('expand', POINTER(COMP_CTX)),
  1371. ('enc_write_ctx', POINTER(EVP_CIPHER_CTX)),
  1372. ('write_hash', POINTER(EVP_MD)),
  1373. ('compress', POINTER(COMP_CTX)),
  1374. ('cert', POINTER(cert_st)),
  1375. ('sid_ctx_length', c_uint),
  1376. ('sid_ctx', c_ubyte * 32),
  1377. ('session', POINTER(SSL_SESSION)),
  1378. ('generate_session_id', GEN_SESSION_CB),
  1379. ('verify_mode', c_int),
  1380. ('verify_depth', c_int),
  1381. ('verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
  1382. ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
  1383. ('error', c_int),
  1384. ('error_code', c_int),
  1385. ('ctx', POINTER(SSL_CTX)),
  1386. ('debug', c_int),
  1387. ('verify_result', c_long),
  1388. ('ex_data', CRYPTO_EX_DATA),
  1389. ('client_CA', POINTER(STACK)),
  1390. ('references', c_int),
  1391. ('options', c_ulong),
  1392. ('mode', c_ulong),
  1393. ('max_cert_list', c_long),
  1394. ('first_packet', c_int),
  1395. ('client_version', c_int),
  1396. ]
  1397. assert sizeof(ssl_st) == 268, sizeof(ssl_st)
  1398. assert alignment(ssl_st) == 4, alignment(ssl_st)
  1399. class N13ssl2_state_st4DOLLAR_19E(Structure):
  1400. pass
  1401. N13ssl2_state_st4DOLLAR_19E._fields_ = [
  1402. ('conn_id_length', c_uint),
  1403. ('cert_type', c_uint),
  1404. ('cert_length', c_uint),
  1405. ('csl', c_uint),
  1406. ('clear', c_uint),
  1407. ('enc', c_uint),
  1408. ('ccl', c_ubyte * 32),
  1409. ('cipher_spec_length', c_uint),
  1410. ('session_id_length', c_uint),
  1411. ('clen', c_uint),
  1412. ('rlen', c_uint),
  1413. ]
  1414. assert sizeof(N13ssl2_state_st4DOLLAR_19E) == 72, sizeof(N13ssl2_state_st4DOLLAR_19E)
  1415. assert alignment(N13ssl2_state_st4DOLLAR_19E) == 4, alignment(N13ssl2_state_st4DOLLAR_19E)
  1416. ssl2_state_st._fields_ = [
  1417. ('three_byte_header', c_int),
  1418. ('clear_text', c_int),
  1419. ('escape', c_int),
  1420. ('ssl2_rollback', c_int),
  1421. ('wnum', c_uint),
  1422. ('wpend_tot', c_int),
  1423. ('wpend_buf', POINTER(c_ubyte)),
  1424. ('wpend_off', c_int),
  1425. ('wpend_len', c_int),
  1426. ('wpend_ret', c_int),
  1427. ('rbuf_left', c_int),
  1428. ('rbuf_offs', c_int),
  1429. ('rbuf', POINTER(c_ubyte)),
  1430. ('wbuf', POINTER(c_ubyte)),
  1431. ('write_ptr', POINTER(c_ubyte)),
  1432. ('padding', c_uint),
  1433. ('rlength', c_uint),
  1434. ('ract_data_length', c_int),
  1435. ('wlength', c_uint),
  1436. ('wact_data_length', c_int),
  1437. ('ract_data', POINTER(c_ubyte)),
  1438. ('wact_data', POINTER(c_ubyte)),
  1439. ('mac_data', POINTER(c_ubyte)),
  1440. ('read_key', POINTER(c_ubyte)),
  1441. ('write_key', POINTER(c_ubyte)),
  1442. ('challenge_length', c_uint),
  1443. ('challenge', c_ubyte * 32),
  1444. ('conn_id_length', c_uint),
  1445. ('conn_id', c_ubyte * 16),
  1446. ('key_material_length', c_uint),
  1447. ('key_material', c_ubyte * 48),
  1448. ('read_sequence', c_ulong),
  1449. ('write_sequence', c_ulong),
  1450. ('tmp', N13ssl2_state_st4DOLLAR_19E),
  1451. ]
  1452. assert sizeof(ssl2_state_st) == 288, sizeof(ssl2_state_st)
  1453. assert alignment(ssl2_state_st) == 4, alignment(ssl2_state_st)
  1454. SSL2_STATE = ssl2_state_st
  1455. class ssl3_record_st(Structure):
  1456. pass
  1457. ssl3_record_st._fields_ = [
  1458. ('type', c_int),
  1459. ('length', c_uint),
  1460. ('off', c_uint),
  1461. ('data', POINTER(c_ubyte)),
  1462. ('input', POINTER(c_ubyte)),
  1463. ('comp', POINTER(c_ubyte)),
  1464. ]
  1465. assert sizeof(ssl3_record_st) == 24, sizeof(ssl3_record_st)
  1466. assert alignment(ssl3_record_st) == 4, alignment(ssl3_record_st)
  1467. SSL3_RECORD = ssl3_record_st
  1468. class ssl3_buffer_st(Structure):
  1469. pass
  1470. size_t = __darwin_size_t
  1471. ssl3_buffer_st._fields_ = [
  1472. ('buf', POINTER(c_ubyte)),
  1473. ('len', size_t),
  1474. ('offset', c_int),
  1475. ('left', c_int),
  1476. ]
  1477. assert sizeof(ssl3_buffer_st) == 16, sizeof(ssl3_buffer_st)
  1478. assert alignment(ssl3_buffer_st) == 4, alignment(ssl3_buffer_st)
  1479. SSL3_BUFFER = ssl3_buffer_st
  1480. class N13ssl3_state_st4DOLLAR_20E(Structure):
  1481. pass
  1482. N13ssl3_state_st4DOLLAR_20E._fields_ = [
  1483. ('cert_verify_md', c_ubyte * 72),
  1484. ('finish_md', c_ubyte * 72),
  1485. ('finish_md_len', c_int),
  1486. ('peer_finish_md', c_ubyte * 72),
  1487. ('peer_finish_md_len', c_int),
  1488. ('message_size', c_ulong),
  1489. ('message_type', c_int),
  1490. ('new_cipher', POINTER(SSL_CIPHER)),
  1491. ('dh', POINTER(DH)),
  1492. ('next_state', c_int),
  1493. ('reuse_message', c_int),
  1494. ('cert_req', c_int),
  1495. ('ctype_num', c_int),
  1496. ('ctype', c_char * 7),
  1497. ('ca_names', POINTER(STACK)),
  1498. ('use_rsa_tmp', c_int),
  1499. ('key_block_length', c_int),
  1500. ('key_block', POINTER(c_ubyte)),
  1501. ('new_sym_enc', POINTER(EVP_CIPHER)),
  1502. ('new_hash', POINTER(EVP_MD)),
  1503. ('new_compression', POINTER(SSL_COMP)),
  1504. ('cert_request', c_int),
  1505. ]
  1506. assert sizeof(N13ssl3_state_st4DOLLAR_20E) == 296, sizeof(N13ssl3_state_st4DOLLAR_20E)
  1507. assert alignment(N13ssl3_state_st4DOLLAR_20E) == 4, alignment(N13ssl3_state_st4DOLLAR_20E)
  1508. ssl3_state_st._fields_ = [
  1509. ('flags', c_long),
  1510. ('delay_buf_pop_…