grpc 0.12.0 → 0.13.0.pre1.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (673) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +5707 -22222
  3. data/include/grpc/byte_buffer.h +2 -83
  4. data/include/grpc/census.h +191 -121
  5. data/include/grpc/compression.h +14 -38
  6. data/include/grpc/grpc.h +88 -434
  7. data/include/grpc/grpc_security.h +76 -46
  8. data/include/grpc/grpc_zookeeper.h +1 -1
  9. data/include/grpc/impl/codegen/alloc.h +74 -0
  10. data/include/grpc/impl/codegen/atm.h +92 -0
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
  13. data/include/grpc/impl/codegen/atm_win32.h +125 -0
  14. data/include/grpc/impl/codegen/byte_buffer.h +121 -0
  15. data/include/grpc/impl/codegen/compression_types.h +73 -0
  16. data/include/grpc/impl/codegen/connectivity_state.h +59 -0
  17. data/include/grpc/impl/codegen/grpc_types.h +373 -0
  18. data/include/grpc/impl/codegen/log.h +110 -0
  19. data/include/grpc/impl/codegen/port_platform.h +362 -0
  20. data/include/grpc/impl/codegen/propagation_bits.h +67 -0
  21. data/include/grpc/impl/codegen/slice.h +182 -0
  22. data/include/grpc/impl/codegen/slice_buffer.h +105 -0
  23. data/include/grpc/impl/codegen/status.h +163 -0
  24. data/include/grpc/impl/codegen/sync.h +316 -0
  25. data/include/grpc/impl/codegen/sync_generic.h +55 -0
  26. data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
  27. data/include/grpc/impl/codegen/sync_win32.h +49 -0
  28. data/include/grpc/impl/codegen/time.h +132 -0
  29. data/include/grpc/status.h +2 -126
  30. data/include/grpc/support/alloc.h +2 -35
  31. data/include/grpc/support/atm.h +2 -55
  32. data/include/grpc/support/atm_gcc_atomic.h +5 -38
  33. data/include/grpc/support/atm_gcc_sync.h +2 -50
  34. data/include/grpc/support/atm_win32.h +2 -88
  35. data/include/grpc/support/avl.h +7 -7
  36. data/include/grpc/support/cmdline.h +15 -13
  37. data/include/grpc/support/cpu.h +5 -3
  38. data/include/grpc/support/histogram.h +23 -20
  39. data/include/grpc/support/host_port.h +5 -3
  40. data/include/grpc/support/log.h +2 -71
  41. data/include/grpc/support/log_win32.h +2 -2
  42. data/include/grpc/support/port_platform.h +2 -319
  43. data/include/grpc/support/slice.h +2 -145
  44. data/include/grpc/support/slice_buffer.h +2 -65
  45. data/include/grpc/support/string_util.h +3 -3
  46. data/include/grpc/support/subprocess.h +8 -6
  47. data/include/grpc/support/sync.h +2 -278
  48. data/include/grpc/support/sync_generic.h +2 -18
  49. data/include/grpc/support/sync_posix.h +2 -10
  50. data/include/grpc/support/sync_win32.h +2 -12
  51. data/include/grpc/support/thd.h +11 -11
  52. data/include/grpc/support/time.h +2 -91
  53. data/include/grpc/support/tls.h +1 -1
  54. data/include/grpc/support/tls_gcc.h +1 -1
  55. data/include/grpc/support/tls_msvc.h +1 -1
  56. data/include/grpc/support/tls_pthread.h +2 -2
  57. data/src/boringssl/err_data.c +1252 -0
  58. data/src/core/census/context.c +492 -8
  59. data/src/core/census/grpc_filter.c +3 -3
  60. data/src/core/census/initialize.c +4 -7
  61. data/src/core/census/operation.c +2 -2
  62. data/src/core/census/placeholders.c +109 -0
  63. data/src/core/census/rpc_metric_id.h +6 -6
  64. data/src/core/census/tracing.c +1 -1
  65. data/src/core/channel/channel_args.c +4 -3
  66. data/src/core/channel/channel_stack.c +1 -1
  67. data/src/core/channel/client_channel.c +18 -14
  68. data/src/core/channel/client_uchannel.c +3 -3
  69. data/src/core/channel/compress_filter.c +8 -8
  70. data/src/core/channel/http_client_filter.c +2 -2
  71. data/src/core/channel/http_server_filter.c +9 -9
  72. data/src/core/channel/subchannel_call_holder.c +12 -10
  73. data/src/core/client_config/lb_policies/pick_first.c +49 -31
  74. data/src/core/client_config/lb_policies/round_robin.c +7 -7
  75. data/src/core/client_config/resolvers/dns_resolver.c +3 -3
  76. data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
  77. data/src/core/client_config/subchannel.c +36 -25
  78. data/src/core/compression/algorithm.c +3 -3
  79. data/src/core/httpcli/format_request.c +1 -1
  80. data/src/core/httpcli/httpcli.c +5 -5
  81. data/src/core/httpcli/httpcli_security_connector.c +2 -3
  82. data/src/core/httpcli/parser.c +7 -7
  83. data/src/core/httpcli/parser.h +1 -1
  84. data/src/core/iomgr/closure.c +7 -7
  85. data/src/core/iomgr/closure.h +6 -5
  86. data/src/core/iomgr/exec_ctx.c +12 -8
  87. data/src/core/iomgr/exec_ctx.h +12 -5
  88. data/src/core/iomgr/executor.c +4 -4
  89. data/src/core/iomgr/executor.h +2 -2
  90. data/src/core/iomgr/fd_posix.c +28 -17
  91. data/src/core/iomgr/fd_posix.h +7 -4
  92. data/src/core/iomgr/iocp_windows.c +6 -8
  93. data/src/core/iomgr/pollset_multipoller_with_epoll.c +70 -5
  94. data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +4 -2
  95. data/src/core/iomgr/pollset_posix.c +15 -15
  96. data/src/core/iomgr/pollset_posix.h +4 -2
  97. data/src/core/iomgr/pollset_windows.c +3 -12
  98. data/src/core/iomgr/resolve_address_posix.c +2 -2
  99. data/src/core/iomgr/resolve_address_windows.c +2 -2
  100. data/src/core/iomgr/sockaddr_utils.c +6 -6
  101. data/src/core/iomgr/sockaddr_win32.h +1 -6
  102. data/src/core/iomgr/tcp_client_posix.c +7 -7
  103. data/src/core/iomgr/tcp_client_windows.c +4 -4
  104. data/src/core/iomgr/tcp_posix.c +14 -8
  105. data/src/core/iomgr/tcp_posix.h +7 -1
  106. data/src/core/iomgr/tcp_server.h +40 -20
  107. data/src/core/iomgr/tcp_server_posix.c +106 -49
  108. data/src/core/iomgr/tcp_server_windows.c +98 -49
  109. data/src/core/iomgr/tcp_windows.c +11 -15
  110. data/src/core/iomgr/timer.c +8 -8
  111. data/src/core/iomgr/timer.h +1 -1
  112. data/src/core/iomgr/timer_heap.c +10 -10
  113. data/src/core/iomgr/timer_heap.h +2 -2
  114. data/src/core/iomgr/udp_server.c +2 -12
  115. data/src/core/iomgr/udp_server.h +1 -9
  116. data/src/core/iomgr/workqueue.h +2 -4
  117. data/src/core/iomgr/workqueue_posix.c +3 -3
  118. data/src/core/json/json_reader.c +11 -12
  119. data/src/core/json/json_reader.h +4 -4
  120. data/src/core/json/json_string.c +19 -19
  121. data/src/core/json/json_writer.c +7 -9
  122. data/src/core/profiling/basic_timers.c +1 -1
  123. data/src/core/security/base64.c +9 -9
  124. data/src/core/security/client_auth_filter.c +4 -4
  125. data/src/core/security/credentials.c +5 -5
  126. data/src/core/security/google_default_credentials.c +3 -3
  127. data/src/core/security/handshake.c +6 -5
  128. data/src/core/security/json_token.c +13 -7
  129. data/src/core/security/jwt_verifier.c +3 -2
  130. data/src/core/security/secure_endpoint.c +16 -16
  131. data/src/core/security/security_connector.c +47 -17
  132. data/src/core/security/security_connector.h +5 -5
  133. data/src/core/security/server_auth_filter.c +3 -3
  134. data/src/core/security/server_secure_chttp2.c +30 -31
  135. data/src/core/statistics/census_interface.h +2 -2
  136. data/src/core/statistics/census_rpc_stats.h +3 -3
  137. data/src/core/support/alloc.c +1 -1
  138. data/src/core/support/cpu_posix.c +2 -2
  139. data/src/core/support/env_linux.c +12 -2
  140. data/src/core/support/env_win32.c +15 -7
  141. data/src/core/support/histogram.c +5 -5
  142. data/src/core/support/log_posix.c +1 -1
  143. data/src/core/support/log_win32.c +4 -3
  144. data/src/core/support/murmur_hash.c +11 -11
  145. data/src/core/support/murmur_hash.h +1 -1
  146. data/src/core/support/slice.c +11 -11
  147. data/src/core/support/slice_buffer.c +6 -6
  148. data/src/core/support/stack_lockfree.c +20 -10
  149. data/src/core/support/string.c +15 -15
  150. data/src/core/support/string.h +5 -5
  151. data/src/core/support/string_win32.c +5 -5
  152. data/src/core/support/subprocess_windows.c +141 -0
  153. data/src/core/support/sync.c +4 -4
  154. data/src/core/support/sync_posix.c +2 -2
  155. data/src/core/support/sync_win32.c +10 -5
  156. data/src/core/support/time.c +29 -29
  157. data/src/core/support/time_posix.c +15 -6
  158. data/src/core/support/time_precise.c +2 -2
  159. data/src/core/support/time_win32.c +18 -9
  160. data/src/core/support/tls_pthread.c +1 -1
  161. data/src/core/support/wrap_memcpy.c +53 -0
  162. data/src/core/surface/alarm.c +83 -0
  163. data/src/core/surface/byte_buffer_reader.c +1 -1
  164. data/src/core/surface/call.c +78 -69
  165. data/src/core/surface/call.h +2 -2
  166. data/src/core/surface/call_test_only.h +2 -2
  167. data/src/core/surface/channel.c +9 -9
  168. data/src/core/surface/channel.h +1 -1
  169. data/src/core/surface/channel_connectivity.c +3 -3
  170. data/src/core/surface/channel_create.c +3 -3
  171. data/src/core/surface/channel_ping.c +2 -2
  172. data/src/core/surface/completion_queue.c +11 -12
  173. data/src/core/surface/completion_queue.h +1 -1
  174. data/src/core/surface/init.c +7 -5
  175. data/src/core/surface/lame_client.c +3 -3
  176. data/src/core/surface/secure_channel_create.c +3 -3
  177. data/src/core/surface/server.c +28 -28
  178. data/src/core/surface/server_chttp2.c +8 -8
  179. data/src/core/surface/server_create.c +1 -4
  180. data/src/core/surface/validate_metadata.c +3 -3
  181. data/src/core/surface/version.c +2 -2
  182. data/src/core/transport/byte_stream.c +8 -6
  183. data/src/core/transport/byte_stream.h +6 -5
  184. data/src/core/transport/chttp2/bin_encoder.c +29 -29
  185. data/src/core/transport/chttp2/frame_data.c +29 -26
  186. data/src/core/transport/chttp2/frame_data.h +6 -6
  187. data/src/core/transport/chttp2/frame_goaway.c +30 -30
  188. data/src/core/transport/chttp2/frame_goaway.h +6 -6
  189. data/src/core/transport/chttp2/frame_ping.c +6 -6
  190. data/src/core/transport/chttp2/frame_ping.h +5 -5
  191. data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
  192. data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
  193. data/src/core/transport/chttp2/frame_settings.c +30 -30
  194. data/src/core/transport/chttp2/frame_settings.h +13 -13
  195. data/src/core/transport/chttp2/frame_window_update.c +17 -18
  196. data/src/core/transport/chttp2/frame_window_update.h +5 -7
  197. data/src/core/transport/chttp2/hpack_encoder.c +69 -73
  198. data/src/core/transport/chttp2/hpack_encoder.h +16 -16
  199. data/src/core/transport/chttp2/hpack_parser.c +167 -167
  200. data/src/core/transport/chttp2/hpack_parser.h +16 -16
  201. data/src/core/transport/chttp2/hpack_table.c +13 -13
  202. data/src/core/transport/chttp2/hpack_table.h +11 -11
  203. data/src/core/transport/chttp2/internal.h +97 -86
  204. data/src/core/transport/chttp2/parsing.c +25 -25
  205. data/src/core/transport/chttp2/stream_lists.c +26 -3
  206. data/src/core/transport/chttp2/stream_map.c +13 -14
  207. data/src/core/transport/chttp2/stream_map.h +6 -7
  208. data/src/core/transport/chttp2/timeout_encoding.c +19 -16
  209. data/src/core/transport/chttp2/varint.c +8 -9
  210. data/src/core/transport/chttp2/varint.h +7 -8
  211. data/src/core/transport/chttp2/writing.c +26 -23
  212. data/src/core/transport/chttp2_transport.c +133 -92
  213. data/src/core/transport/connectivity_state.c +6 -6
  214. data/src/core/transport/metadata.c +18 -18
  215. data/src/core/transport/metadata.h +5 -5
  216. data/src/core/transport/static_metadata.c +15 -16
  217. data/src/core/transport/static_metadata.h +5 -5
  218. data/src/core/transport/transport.c +5 -5
  219. data/src/core/transport/transport.h +14 -1
  220. data/src/core/tsi/fake_transport_security.c +7 -7
  221. data/src/core/tsi/ssl_transport_security.c +6 -4
  222. data/src/core/tsi/ssl_types.h +55 -0
  223. data/src/ruby/ext/grpc/extconf.rb +51 -14
  224. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
  225. data/src/ruby/ext/grpc/rb_call.c +6 -3
  226. data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
  227. data/src/ruby/ext/grpc/rb_channel.c +4 -2
  228. data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
  229. data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
  230. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
  231. data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
  232. data/src/ruby/ext/grpc/rb_grpc.c +11 -3
  233. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +560 -0
  234. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +843 -0
  235. data/src/ruby/ext/grpc/rb_loader.c +72 -0
  236. data/src/ruby/ext/grpc/rb_loader.h +40 -0
  237. data/src/ruby/ext/grpc/rb_server.c +3 -1
  238. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
  239. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  240. data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
  241. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  242. data/src/ruby/lib/grpc/grpc.rb +34 -0
  243. data/src/ruby/lib/grpc/version.rb +1 -1
  244. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  245. data/third_party/boringssl/crypto/aes/aes.c +1142 -0
  246. data/third_party/boringssl/crypto/aes/internal.h +87 -0
  247. data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
  248. data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
  249. data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
  250. data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
  251. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
  252. data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
  253. data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
  254. data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
  255. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
  256. data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
  257. data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
  258. data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
  259. data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
  260. data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
  261. data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
  262. data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
  263. data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
  264. data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
  265. data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
  266. data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
  267. data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
  268. data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
  269. data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
  270. data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
  271. data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
  272. data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
  273. data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
  274. data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
  275. data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
  276. data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
  277. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
  278. data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
  279. data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
  280. data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
  281. data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
  282. data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
  283. data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
  284. data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
  285. data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
  286. data/third_party/boringssl/crypto/base64/base64.c +478 -0
  287. data/third_party/boringssl/crypto/bio/bio.c +608 -0
  288. data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
  289. data/third_party/boringssl/crypto/bio/buffer.c +496 -0
  290. data/third_party/boringssl/crypto/bio/connect.c +544 -0
  291. data/third_party/boringssl/crypto/bio/fd.c +270 -0
  292. data/third_party/boringssl/crypto/bio/file.c +349 -0
  293. data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
  294. data/third_party/boringssl/crypto/bio/internal.h +108 -0
  295. data/third_party/boringssl/crypto/bio/pair.c +803 -0
  296. data/third_party/boringssl/crypto/bio/printf.c +119 -0
  297. data/third_party/boringssl/crypto/bio/socket.c +195 -0
  298. data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
  299. data/third_party/boringssl/crypto/bn/add.c +377 -0
  300. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
  301. data/third_party/boringssl/crypto/bn/bn.c +341 -0
  302. data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
  303. data/third_party/boringssl/crypto/bn/cmp.c +200 -0
  304. data/third_party/boringssl/crypto/bn/convert.c +597 -0
  305. data/third_party/boringssl/crypto/bn/ctx.c +311 -0
  306. data/third_party/boringssl/crypto/bn/div.c +625 -0
  307. data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
  308. data/third_party/boringssl/crypto/bn/gcd.c +711 -0
  309. data/third_party/boringssl/crypto/bn/generic.c +1019 -0
  310. data/third_party/boringssl/crypto/bn/internal.h +294 -0
  311. data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
  312. data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
  313. data/third_party/boringssl/crypto/bn/mul.c +888 -0
  314. data/third_party/boringssl/crypto/bn/prime.c +845 -0
  315. data/third_party/boringssl/crypto/bn/random.c +326 -0
  316. data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
  317. data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
  318. data/third_party/boringssl/crypto/bn/shift.c +299 -0
  319. data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
  320. data/third_party/boringssl/crypto/buf/buf.c +235 -0
  321. data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
  322. data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
  323. data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
  324. data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
  325. data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
  326. data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
  327. data/third_party/boringssl/crypto/cipher/aead.c +167 -0
  328. data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
  329. data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
  330. data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
  331. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
  332. data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
  333. data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
  334. data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
  335. data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
  336. data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
  337. data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
  338. data/third_party/boringssl/crypto/cipher/internal.h +164 -0
  339. data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
  340. data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
  341. data/third_party/boringssl/crypto/conf/conf.c +778 -0
  342. data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
  343. data/third_party/boringssl/crypto/conf/internal.h +31 -0
  344. data/third_party/boringssl/crypto/cpu-arm.c +199 -0
  345. data/third_party/boringssl/crypto/cpu-intel.c +261 -0
  346. data/third_party/boringssl/crypto/crypto.c +140 -0
  347. data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
  348. data/third_party/boringssl/crypto/des/des.c +771 -0
  349. data/third_party/boringssl/crypto/des/internal.h +212 -0
  350. data/third_party/boringssl/crypto/dh/check.c +180 -0
  351. data/third_party/boringssl/crypto/dh/dh.c +463 -0
  352. data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
  353. data/third_party/boringssl/crypto/dh/internal.h +80 -0
  354. data/third_party/boringssl/crypto/dh/params.c +301 -0
  355. data/third_party/boringssl/crypto/digest/digest.c +248 -0
  356. data/third_party/boringssl/crypto/digest/digests.c +321 -0
  357. data/third_party/boringssl/crypto/digest/internal.h +112 -0
  358. data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
  359. data/third_party/boringssl/crypto/directory.h +66 -0
  360. data/third_party/boringssl/crypto/directory_posix.c +108 -0
  361. data/third_party/boringssl/crypto/directory_win.c +144 -0
  362. data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
  363. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
  364. data/third_party/boringssl/crypto/dsa/internal.h +78 -0
  365. data/third_party/boringssl/crypto/ec/ec.c +889 -0
  366. data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
  367. data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
  368. data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
  369. data/third_party/boringssl/crypto/ec/internal.h +318 -0
  370. data/third_party/boringssl/crypto/ec/oct.c +416 -0
  371. data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
  372. data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
  373. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
  374. data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
  375. data/third_party/boringssl/crypto/ec/simple.c +1313 -0
  376. data/third_party/boringssl/crypto/ec/util-64.c +183 -0
  377. data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
  378. data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
  379. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
  380. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
  381. data/third_party/boringssl/crypto/engine/engine.c +96 -0
  382. data/third_party/boringssl/crypto/err/err.c +756 -0
  383. data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
  384. data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
  385. data/third_party/boringssl/crypto/evp/evp.c +411 -0
  386. data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
  387. data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
  388. data/third_party/boringssl/crypto/evp/internal.h +278 -0
  389. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
  390. data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
  391. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
  392. data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
  393. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
  394. data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
  395. data/third_party/boringssl/crypto/evp/sign.c +151 -0
  396. data/third_party/boringssl/crypto/ex_data.c +294 -0
  397. data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
  398. data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
  399. data/third_party/boringssl/crypto/internal.h +532 -0
  400. data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
  401. data/third_party/boringssl/crypto/md4/md4.c +225 -0
  402. data/third_party/boringssl/crypto/md5/md5.c +275 -0
  403. data/third_party/boringssl/crypto/mem.c +200 -0
  404. data/third_party/boringssl/crypto/modes/cbc.c +216 -0
  405. data/third_party/boringssl/crypto/modes/cfb.c +231 -0
  406. data/third_party/boringssl/crypto/modes/ctr.c +226 -0
  407. data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
  408. data/third_party/boringssl/crypto/modes/internal.h +370 -0
  409. data/third_party/boringssl/crypto/modes/ofb.c +108 -0
  410. data/third_party/boringssl/crypto/obj/obj.c +664 -0
  411. data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
  412. data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
  413. data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
  414. data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
  415. data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
  416. data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
  417. data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
  418. data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
  419. data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
  420. data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
  421. data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
  422. data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
  423. data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
  424. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
  425. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
  426. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
  427. data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
  428. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
  429. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
  430. data/third_party/boringssl/crypto/rand/internal.h +32 -0
  431. data/third_party/boringssl/crypto/rand/rand.c +239 -0
  432. data/third_party/boringssl/crypto/rand/urandom.c +223 -0
  433. data/third_party/boringssl/crypto/rand/windows.c +56 -0
  434. data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
  435. data/third_party/boringssl/crypto/refcount_c11.c +67 -0
  436. data/third_party/boringssl/crypto/refcount_lock.c +53 -0
  437. data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
  438. data/third_party/boringssl/crypto/rsa/internal.h +164 -0
  439. data/third_party/boringssl/crypto/rsa/padding.c +711 -0
  440. data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
  441. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
  442. data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
  443. data/third_party/boringssl/crypto/sha/sha1.c +337 -0
  444. data/third_party/boringssl/crypto/sha/sha256.c +327 -0
  445. data/third_party/boringssl/crypto/sha/sha512.c +607 -0
  446. data/third_party/boringssl/crypto/stack/stack.c +386 -0
  447. data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
  448. data/third_party/boringssl/crypto/test/test_util.h +35 -0
  449. data/third_party/boringssl/crypto/thread.c +101 -0
  450. data/third_party/boringssl/crypto/thread_none.c +55 -0
  451. data/third_party/boringssl/crypto/thread_pthread.c +167 -0
  452. data/third_party/boringssl/crypto/thread_win.c +282 -0
  453. data/third_party/boringssl/crypto/time_support.c +212 -0
  454. data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
  455. data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
  456. data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
  457. data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
  458. data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
  459. data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
  460. data/third_party/boringssl/crypto/x509/by_file.c +295 -0
  461. data/third_party/boringssl/crypto/x509/charmap.h +15 -0
  462. data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
  463. data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
  464. data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
  465. data/third_party/boringssl/crypto/x509/t_req.c +246 -0
  466. data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
  467. data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
  468. data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
  469. data/third_party/boringssl/crypto/x509/x509.c +152 -0
  470. data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
  471. data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
  472. data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
  473. data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
  474. data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
  475. data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
  476. data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
  477. data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
  478. data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
  479. data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
  480. data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
  481. data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
  482. data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
  483. data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
  484. data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
  485. data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
  486. data/third_party/boringssl/crypto/x509/x509name.c +381 -0
  487. data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
  488. data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
  489. data/third_party/boringssl/crypto/x509/x509type.c +128 -0
  490. data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
  491. data/third_party/boringssl/crypto/x509/x_all.c +547 -0
  492. data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
  493. data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
  494. data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
  495. data/third_party/boringssl/crypto/x509/x_info.c +95 -0
  496. data/third_party/boringssl/crypto/x509/x_name.c +538 -0
  497. data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
  498. data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
  499. data/third_party/boringssl/crypto/x509/x_req.c +112 -0
  500. data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
  501. data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
  502. data/third_party/boringssl/crypto/x509/x_val.c +69 -0
  503. data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
  504. data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
  505. data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
  506. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
  507. data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
  508. data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
  509. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
  510. data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
  511. data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
  512. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
  513. data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
  514. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
  515. data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
  516. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
  517. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
  518. data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
  519. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
  520. data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
  521. data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
  522. data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
  523. data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
  524. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
  525. data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
  526. data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
  527. data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
  528. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
  529. data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
  530. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
  531. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
  532. data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
  533. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
  534. data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
  535. data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
  536. data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
  537. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
  538. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
  539. data/third_party/boringssl/include/openssl/aead.h +346 -0
  540. data/third_party/boringssl/include/openssl/aes.h +158 -0
  541. data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
  542. data/third_party/boringssl/include/openssl/asn1.h +1168 -0
  543. data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
  544. data/third_party/boringssl/include/openssl/asn1t.h +906 -0
  545. data/third_party/boringssl/include/openssl/base.h +261 -0
  546. data/third_party/boringssl/include/openssl/base64.h +184 -0
  547. data/third_party/boringssl/include/openssl/bio.h +902 -0
  548. data/third_party/boringssl/include/openssl/blowfish.h +93 -0
  549. data/third_party/boringssl/include/openssl/bn.h +885 -0
  550. data/third_party/boringssl/include/openssl/buf.h +118 -0
  551. data/third_party/boringssl/include/openssl/buffer.h +18 -0
  552. data/third_party/boringssl/include/openssl/bytestring.h +360 -0
  553. data/third_party/boringssl/include/openssl/cast.h +96 -0
  554. data/third_party/boringssl/include/openssl/chacha.h +37 -0
  555. data/third_party/boringssl/include/openssl/cipher.h +571 -0
  556. data/third_party/boringssl/include/openssl/cmac.h +76 -0
  557. data/third_party/boringssl/include/openssl/conf.h +145 -0
  558. data/third_party/boringssl/include/openssl/cpu.h +184 -0
  559. data/third_party/boringssl/include/openssl/crypto.h +68 -0
  560. data/third_party/boringssl/include/openssl/curve25519.h +88 -0
  561. data/third_party/boringssl/include/openssl/des.h +177 -0
  562. data/third_party/boringssl/include/openssl/dh.h +238 -0
  563. data/third_party/boringssl/include/openssl/digest.h +258 -0
  564. data/third_party/boringssl/include/openssl/dsa.h +343 -0
  565. data/third_party/boringssl/include/openssl/dtls1.h +16 -0
  566. data/third_party/boringssl/include/openssl/ec.h +355 -0
  567. data/third_party/boringssl/include/openssl/ec_key.h +280 -0
  568. data/third_party/boringssl/include/openssl/ecdh.h +102 -0
  569. data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
  570. data/third_party/boringssl/include/openssl/engine.h +98 -0
  571. data/third_party/boringssl/include/openssl/err.h +487 -0
  572. data/third_party/boringssl/include/openssl/evp.h +750 -0
  573. data/third_party/boringssl/include/openssl/ex_data.h +213 -0
  574. data/third_party/boringssl/include/openssl/hkdf.h +44 -0
  575. data/third_party/boringssl/include/openssl/hmac.h +160 -0
  576. data/third_party/boringssl/include/openssl/lhash.h +192 -0
  577. data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
  578. data/third_party/boringssl/include/openssl/md4.h +102 -0
  579. data/third_party/boringssl/include/openssl/md5.h +107 -0
  580. data/third_party/boringssl/include/openssl/mem.h +140 -0
  581. data/third_party/boringssl/include/openssl/obj.h +198 -0
  582. data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
  583. data/third_party/boringssl/include/openssl/objects.h +18 -0
  584. data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
  585. data/third_party/boringssl/include/openssl/opensslv.h +18 -0
  586. data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  587. data/third_party/boringssl/include/openssl/pem.h +521 -0
  588. data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  589. data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
  590. data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
  591. data/third_party/boringssl/include/openssl/poly1305.h +51 -0
  592. data/third_party/boringssl/include/openssl/pqueue.h +146 -0
  593. data/third_party/boringssl/include/openssl/rand.h +113 -0
  594. data/third_party/boringssl/include/openssl/rc4.h +90 -0
  595. data/third_party/boringssl/include/openssl/rsa.h +637 -0
  596. data/third_party/boringssl/include/openssl/safestack.h +16 -0
  597. data/third_party/boringssl/include/openssl/sha.h +256 -0
  598. data/third_party/boringssl/include/openssl/srtp.h +18 -0
  599. data/third_party/boringssl/include/openssl/ssl.h +4466 -0
  600. data/third_party/boringssl/include/openssl/ssl3.h +441 -0
  601. data/third_party/boringssl/include/openssl/stack.h +298 -0
  602. data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
  603. data/third_party/boringssl/include/openssl/thread.h +173 -0
  604. data/third_party/boringssl/include/openssl/time_support.h +90 -0
  605. data/third_party/boringssl/include/openssl/tls1.h +653 -0
  606. data/third_party/boringssl/include/openssl/type_check.h +91 -0
  607. data/third_party/boringssl/include/openssl/x509.h +1258 -0
  608. data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
  609. data/third_party/boringssl/include/openssl/x509v3.h +798 -0
  610. data/third_party/boringssl/ssl/custom_extensions.c +257 -0
  611. data/third_party/boringssl/ssl/d1_both.c +880 -0
  612. data/third_party/boringssl/ssl/d1_clnt.c +566 -0
  613. data/third_party/boringssl/ssl/d1_lib.c +340 -0
  614. data/third_party/boringssl/ssl/d1_meth.c +130 -0
  615. data/third_party/boringssl/ssl/d1_pkt.c +578 -0
  616. data/third_party/boringssl/ssl/d1_srtp.c +234 -0
  617. data/third_party/boringssl/ssl/d1_srvr.c +485 -0
  618. data/third_party/boringssl/ssl/dtls_record.c +308 -0
  619. data/third_party/boringssl/ssl/internal.h +1276 -0
  620. data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
  621. data/third_party/boringssl/ssl/s3_both.c +571 -0
  622. data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
  623. data/third_party/boringssl/ssl/s3_enc.c +494 -0
  624. data/third_party/boringssl/ssl/s3_lib.c +587 -0
  625. data/third_party/boringssl/ssl/s3_meth.c +166 -0
  626. data/third_party/boringssl/ssl/s3_pkt.c +732 -0
  627. data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
  628. data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
  629. data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
  630. data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
  631. data/third_party/boringssl/ssl/ssl_cert.c +539 -0
  632. data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
  633. data/third_party/boringssl/ssl/ssl_file.c +633 -0
  634. data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
  635. data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
  636. data/third_party/boringssl/ssl/ssl_session.c +764 -0
  637. data/third_party/boringssl/ssl/ssl_stat.c +591 -0
  638. data/third_party/boringssl/ssl/t1_enc.c +708 -0
  639. data/third_party/boringssl/ssl/t1_lib.c +2905 -0
  640. data/third_party/boringssl/ssl/test/async_bio.h +45 -0
  641. data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
  642. data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
  643. data/third_party/boringssl/ssl/test/test_config.h +108 -0
  644. data/third_party/boringssl/ssl/tls_record.c +342 -0
  645. data/third_party/zlib/adler32.c +179 -0
  646. data/third_party/zlib/compress.c +80 -0
  647. data/third_party/zlib/crc32.c +425 -0
  648. data/third_party/zlib/crc32.h +441 -0
  649. data/third_party/zlib/deflate.c +1967 -0
  650. data/third_party/zlib/deflate.h +346 -0
  651. data/third_party/zlib/gzclose.c +25 -0
  652. data/third_party/zlib/gzguts.h +209 -0
  653. data/third_party/zlib/gzlib.c +634 -0
  654. data/third_party/zlib/gzread.c +594 -0
  655. data/third_party/zlib/gzwrite.c +577 -0
  656. data/third_party/zlib/infback.c +640 -0
  657. data/third_party/zlib/inffast.c +340 -0
  658. data/third_party/zlib/inffast.h +11 -0
  659. data/third_party/zlib/inffixed.h +94 -0
  660. data/third_party/zlib/inflate.c +1512 -0
  661. data/third_party/zlib/inflate.h +122 -0
  662. data/third_party/zlib/inftrees.c +306 -0
  663. data/third_party/zlib/inftrees.h +62 -0
  664. data/third_party/zlib/trees.c +1226 -0
  665. data/third_party/zlib/trees.h +128 -0
  666. data/third_party/zlib/uncompr.c +59 -0
  667. data/third_party/zlib/zconf.h +511 -0
  668. data/third_party/zlib/zlib.h +1768 -0
  669. data/third_party/zlib/zutil.c +324 -0
  670. data/third_party/zlib/zutil.h +253 -0
  671. metadata +492 -25
  672. data/Rakefile +0 -63
  673. data/src/ruby/lib/grpc/grpc.so +0 -0
@@ -0,0 +1,261 @@
1
+ /* ====================================================================
2
+ * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved.
3
+ *
4
+ * Redistribution and use in source and binary forms, with or without
5
+ * modification, are permitted provided that the following conditions
6
+ * are met:
7
+ *
8
+ * 1. Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ *
11
+ * 2. Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in
13
+ * the documentation and/or other materials provided with the
14
+ * distribution.
15
+ *
16
+ * 3. All advertising materials mentioning features or use of this
17
+ * software must display the following acknowledgment:
18
+ * "This product includes software developed by the OpenSSL Project
19
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
20
+ *
21
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
22
+ * endorse or promote products derived from this software without
23
+ * prior written permission. For written permission, please contact
24
+ * openssl-core@openssl.org.
25
+ *
26
+ * 5. Products derived from this software may not be called "OpenSSL"
27
+ * nor may "OpenSSL" appear in their names without prior written
28
+ * permission of the OpenSSL Project.
29
+ *
30
+ * 6. Redistributions of any form whatsoever must retain the following
31
+ * acknowledgment:
32
+ * "This product includes software developed by the OpenSSL Project
33
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
34
+ *
35
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
36
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
37
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
38
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
39
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
41
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
42
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
44
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
46
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
47
+ * ====================================================================
48
+ *
49
+ * This product includes cryptographic software written by Eric Young
50
+ * (eay@cryptsoft.com). This product includes software written by Tim
51
+ * Hudson (tjh@cryptsoft.com). */
52
+
53
+ #ifndef OPENSSL_HEADER_BASE_H
54
+ #define OPENSSL_HEADER_BASE_H
55
+
56
+
57
+ /* This file should be the first included by all BoringSSL headers. */
58
+
59
+ #include <stddef.h>
60
+ #include <stdint.h>
61
+ #include <sys/types.h>
62
+
63
+ #include <openssl/opensslfeatures.h>
64
+
65
+ #if defined(__cplusplus)
66
+ extern "C" {
67
+ #endif
68
+
69
+
70
+ #if defined(__x86_64) || defined(_M_AMD64) || defined(_M_X64)
71
+ #define OPENSSL_64_BIT
72
+ #define OPENSSL_X86_64
73
+ #elif defined(__x86) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
74
+ #define OPENSSL_32_BIT
75
+ #define OPENSSL_X86
76
+ #elif defined(__aarch64__)
77
+ #define OPENSSL_64_BIT
78
+ #define OPENSSL_AARCH64
79
+ #elif defined(__arm) || defined(__arm__) || defined(_M_ARM)
80
+ #define OPENSSL_32_BIT
81
+ #define OPENSSL_ARM
82
+ #elif defined(__PPC64__) || defined(__powerpc64__)
83
+ #define OPENSSL_64_BIT
84
+ #elif defined(__mips__) && !defined(__LP64__)
85
+ #define OPENSSL_32_BIT
86
+ #define OPENSSL_MIPS
87
+ #elif defined(__mips__) && defined(__LP64__)
88
+ #define OPENSSL_64_BIT
89
+ #define OPENSSL_MIPS64
90
+ #elif defined(__pnacl__)
91
+ #define OPENSSL_32_BIT
92
+ #define OPENSSL_PNACL
93
+ #else
94
+ #error "Unknown target CPU"
95
+ #endif
96
+
97
+ #if defined(__APPLE__)
98
+ #define OPENSSL_APPLE
99
+ #endif
100
+
101
+ #if defined(_WIN32)
102
+ #define OPENSSL_WINDOWS
103
+ #endif
104
+
105
+ #if defined(TRUSTY)
106
+ #define OPENSSL_TRUSTY
107
+ #define OPENSSL_NO_THREADS
108
+ #endif
109
+
110
+ #define OPENSSL_IS_BORINGSSL
111
+ #define BORINGSSL_201510
112
+ #define OPENSSL_VERSION_NUMBER 0x10002000
113
+ #define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
114
+
115
+ #if defined(BORINGSSL_SHARED_LIBRARY)
116
+
117
+ #if defined(OPENSSL_WINDOWS)
118
+
119
+ #if defined(BORINGSSL_IMPLEMENTATION)
120
+ #define OPENSSL_EXPORT __declspec(dllexport)
121
+ #else
122
+ #define OPENSSL_EXPORT __declspec(dllimport)
123
+ #endif
124
+
125
+ #else /* defined(OPENSSL_WINDOWS) */
126
+
127
+ #if defined(BORINGSSL_IMPLEMENTATION)
128
+ #define OPENSSL_EXPORT __attribute__((visibility("default")))
129
+ #else
130
+ #define OPENSSL_EXPORT
131
+ #endif
132
+
133
+ #endif /* defined(OPENSSL_WINDOWS) */
134
+
135
+ #else /* defined(BORINGSSL_SHARED_LIBRARY) */
136
+
137
+ #define OPENSSL_EXPORT
138
+
139
+ #endif /* defined(BORINGSSL_SHARED_LIBRARY) */
140
+
141
+ /* CRYPTO_THREADID is a dummy value. */
142
+ typedef int CRYPTO_THREADID;
143
+
144
+ typedef int ASN1_BOOLEAN;
145
+ typedef int ASN1_NULL;
146
+ typedef struct ASN1_ITEM_st ASN1_ITEM;
147
+ typedef struct asn1_object_st ASN1_OBJECT;
148
+ typedef struct asn1_pctx_st ASN1_PCTX;
149
+ typedef struct asn1_string_st ASN1_BIT_STRING;
150
+ typedef struct asn1_string_st ASN1_BMPSTRING;
151
+ typedef struct asn1_string_st ASN1_ENUMERATED;
152
+ typedef struct asn1_string_st ASN1_GENERALIZEDTIME;
153
+ typedef struct asn1_string_st ASN1_GENERALSTRING;
154
+ typedef struct asn1_string_st ASN1_IA5STRING;
155
+ typedef struct asn1_string_st ASN1_INTEGER;
156
+ typedef struct asn1_string_st ASN1_OCTET_STRING;
157
+ typedef struct asn1_string_st ASN1_PRINTABLESTRING;
158
+ typedef struct asn1_string_st ASN1_STRING;
159
+ typedef struct asn1_string_st ASN1_T61STRING;
160
+ typedef struct asn1_string_st ASN1_TIME;
161
+ typedef struct asn1_string_st ASN1_UNIVERSALSTRING;
162
+ typedef struct asn1_string_st ASN1_UTCTIME;
163
+ typedef struct asn1_string_st ASN1_UTF8STRING;
164
+ typedef struct asn1_string_st ASN1_VISIBLESTRING;
165
+
166
+ typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID;
167
+ typedef struct DIST_POINT_st DIST_POINT;
168
+ typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT;
169
+ typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS;
170
+ typedef struct Netscape_certificate_sequence NETSCAPE_CERT_SEQUENCE;
171
+ typedef struct Netscape_spkac_st NETSCAPE_SPKAC;
172
+ typedef struct Netscape_spki_st NETSCAPE_SPKI;
173
+ typedef struct PBE2PARAM_st PBE2PARAM;
174
+ typedef struct PBEPARAM_st PBEPARAM;
175
+ typedef struct PBKDF2PARAM_st PBKDF2PARAM;
176
+ typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE;
177
+ typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL;
178
+ typedef struct X509_POLICY_NODE_st X509_POLICY_NODE;
179
+ typedef struct X509_POLICY_TREE_st X509_POLICY_TREE;
180
+ typedef struct X509_algor_st X509_ALGOR;
181
+ typedef struct X509_crl_info_st X509_CRL_INFO;
182
+ typedef struct X509_crl_st X509_CRL;
183
+ typedef struct X509_extension_st X509_EXTENSION;
184
+ typedef struct X509_info_st X509_INFO;
185
+ typedef struct X509_name_entry_st X509_NAME_ENTRY;
186
+ typedef struct X509_name_st X509_NAME;
187
+ typedef struct X509_objects_st X509_OBJECTS;
188
+ typedef struct X509_pubkey_st X509_PUBKEY;
189
+ typedef struct X509_req_info_st X509_REQ_INFO;
190
+ typedef struct X509_req_st X509_REQ;
191
+ typedef struct X509_sig_st X509_SIG;
192
+ typedef struct X509_val_st X509_VAL;
193
+ typedef struct bignum_ctx BN_CTX;
194
+ typedef struct bignum_st BIGNUM;
195
+ typedef struct bio_method_st BIO_METHOD;
196
+ typedef struct bio_st BIO;
197
+ typedef struct bn_gencb_st BN_GENCB;
198
+ typedef struct bn_mont_ctx_st BN_MONT_CTX;
199
+ typedef struct buf_mem_st BUF_MEM;
200
+ typedef struct cbb_st CBB;
201
+ typedef struct cbs_st CBS;
202
+ typedef struct cmac_ctx_st CMAC_CTX;
203
+ typedef struct conf_st CONF;
204
+ typedef struct conf_value_st CONF_VALUE;
205
+ typedef struct dh_st DH;
206
+ typedef struct dsa_st DSA;
207
+ typedef struct ec_key_st EC_KEY;
208
+ typedef struct ecdsa_method_st ECDSA_METHOD;
209
+ typedef struct ecdsa_sig_st ECDSA_SIG;
210
+ typedef struct engine_st ENGINE;
211
+ typedef struct env_md_ctx_st EVP_MD_CTX;
212
+ typedef struct env_md_st EVP_MD;
213
+ typedef struct evp_aead_st EVP_AEAD;
214
+ typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
215
+ typedef struct evp_cipher_st EVP_CIPHER;
216
+ typedef struct evp_encode_ctx_st EVP_ENCODE_CTX;
217
+ typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD;
218
+ typedef struct evp_pkey_ctx_st EVP_PKEY_CTX;
219
+ typedef struct evp_pkey_method_st EVP_PKEY_METHOD;
220
+ typedef struct evp_pkey_st EVP_PKEY;
221
+ typedef struct hmac_ctx_st HMAC_CTX;
222
+ typedef struct md4_state_st MD4_CTX;
223
+ typedef struct md5_state_st MD5_CTX;
224
+ typedef struct pkcs12_st PKCS12;
225
+ typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO;
226
+ typedef struct private_key_st X509_PKEY;
227
+ typedef struct rand_meth_st RAND_METHOD;
228
+ typedef struct rc4_key_st RC4_KEY;
229
+ typedef struct rsa_meth_st RSA_METHOD;
230
+ typedef struct rsa_st RSA;
231
+ typedef struct sha256_state_st SHA256_CTX;
232
+ typedef struct sha512_state_st SHA512_CTX;
233
+ typedef struct sha_state_st SHA_CTX;
234
+ typedef struct srtp_protection_profile_st SRTP_PROTECTION_PROFILE;
235
+ typedef struct ssl_cipher_st SSL_CIPHER;
236
+ typedef struct ssl_ctx_st SSL_CTX;
237
+ typedef struct ssl_custom_extension SSL_CUSTOM_EXTENSION;
238
+ typedef struct ssl_method_st SSL_METHOD;
239
+ typedef struct ssl_session_st SSL_SESSION;
240
+ typedef struct ssl_st SSL;
241
+ typedef struct st_ERR_FNS ERR_FNS;
242
+ typedef struct v3_ext_ctx X509V3_CTX;
243
+ typedef struct x509_attributes_st X509_ATTRIBUTE;
244
+ typedef struct x509_cert_aux_st X509_CERT_AUX;
245
+ typedef struct x509_cert_pair_st X509_CERT_PAIR;
246
+ typedef struct x509_cinf_st X509_CINF;
247
+ typedef struct x509_crl_method_st X509_CRL_METHOD;
248
+ typedef struct x509_revoked_st X509_REVOKED;
249
+ typedef struct x509_st X509;
250
+ typedef struct x509_store_ctx_st X509_STORE_CTX;
251
+ typedef struct x509_store_st X509_STORE;
252
+ typedef struct x509_trust_st X509_TRUST;
253
+
254
+ typedef void *OPENSSL_BLOCK;
255
+
256
+
257
+ #if defined(__cplusplus)
258
+ } /* extern C */
259
+ #endif
260
+
261
+ #endif /* OPENSSL_HEADER_BASE_H */
@@ -0,0 +1,184 @@
1
+ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
+ * All rights reserved.
3
+ *
4
+ * This package is an SSL implementation written
5
+ * by Eric Young (eay@cryptsoft.com).
6
+ * The implementation was written so as to conform with Netscapes SSL.
7
+ *
8
+ * This library is free for commercial and non-commercial use as long as
9
+ * the following conditions are aheared to. The following conditions
10
+ * apply to all code found in this distribution, be it the RC4, RSA,
11
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12
+ * included with this distribution is covered by the same copyright terms
13
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
+ *
15
+ * Copyright remains Eric Young's, and as such any Copyright notices in
16
+ * the code are not to be removed.
17
+ * If this package is used in a product, Eric Young should be given attribution
18
+ * as the author of the parts of the library used.
19
+ * This can be in the form of a textual message at program startup or
20
+ * in documentation (online or textual) provided with the package.
21
+ *
22
+ * Redistribution and use in source and binary forms, with or without
23
+ * modification, are permitted provided that the following conditions
24
+ * are met:
25
+ * 1. Redistributions of source code must retain the copyright
26
+ * notice, this list of conditions and the following disclaimer.
27
+ * 2. Redistributions in binary form must reproduce the above copyright
28
+ * notice, this list of conditions and the following disclaimer in the
29
+ * documentation and/or other materials provided with the distribution.
30
+ * 3. All advertising materials mentioning features or use of this software
31
+ * must display the following acknowledgement:
32
+ * "This product includes cryptographic software written by
33
+ * Eric Young (eay@cryptsoft.com)"
34
+ * The word 'cryptographic' can be left out if the rouines from the library
35
+ * being used are not cryptographic related :-).
36
+ * 4. If you include any Windows specific code (or a derivative thereof) from
37
+ * the apps directory (application code) you must include an acknowledgement:
38
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
+ *
40
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
+ * SUCH DAMAGE.
51
+ *
52
+ * The licence and distribution terms for any publically available version or
53
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
54
+ * copied and put under another distribution licence
55
+ * [including the GNU Public Licence.] */
56
+
57
+ #ifndef OPENSSL_HEADER_BASE64_H
58
+ #define OPENSSL_HEADER_BASE64_H
59
+
60
+ #include <openssl/base.h>
61
+
62
+ #if defined(__cplusplus)
63
+ extern "C" {
64
+ #endif
65
+
66
+
67
+ /* base64 functions.
68
+ *
69
+ * For historical reasons, these functions have the EVP_ prefix but just do
70
+ * base64 encoding and decoding. */
71
+
72
+
73
+ /* Encoding */
74
+
75
+ /* EVP_EncodeBlock encodes |src_len| bytes from |src| and writes the
76
+ * result to |dst| with a trailing NUL. It returns the number of bytes
77
+ * written, not including this trailing NUL. */
78
+ OPENSSL_EXPORT size_t EVP_EncodeBlock(uint8_t *dst, const uint8_t *src,
79
+ size_t src_len);
80
+
81
+ /* EVP_EncodedLength sets |*out_len| to the number of bytes that will be needed
82
+ * to call |EVP_EncodeBlock| on an input of length |len|. This includes the
83
+ * final NUL that |EVP_EncodeBlock| writes. It returns one on success or zero
84
+ * on error. */
85
+ OPENSSL_EXPORT int EVP_EncodedLength(size_t *out_len, size_t len);
86
+
87
+
88
+ /* Decoding */
89
+
90
+ /* EVP_DecodedLength sets |*out_len| to the maximum number of bytes
91
+ * that will be needed to call |EVP_DecodeBase64| on an input of
92
+ * length |len|. */
93
+ OPENSSL_EXPORT int EVP_DecodedLength(size_t *out_len, size_t len);
94
+
95
+ /* EVP_DecodeBase64 decodes |in_len| bytes from base64 and writes
96
+ * |*out_len| bytes to |out|. |max_out| is the size of the output
97
+ * buffer. If it is not enough for the maximum output size, the
98
+ * operation fails. */
99
+ OPENSSL_EXPORT int EVP_DecodeBase64(uint8_t *out, size_t *out_len,
100
+ size_t max_out, const uint8_t *in,
101
+ size_t in_len);
102
+
103
+
104
+ /* Deprecated functions.
105
+ *
106
+ * OpenSSL provides a streaming base64 implementation, however its behavior is
107
+ * very specific to PEM. It is also very lenient of invalid input. Use of any of
108
+ * these functions is thus deprecated.
109
+ *
110
+ * TODO(davidben): Import upstream's rewrite that rejects the invalid input. */
111
+
112
+ /* EVP_EncodeInit initialises |*ctx|, which is typically stack
113
+ * allocated, for an encoding operation.
114
+ *
115
+ * NOTE: The encoding operation breaks its output with newlines every
116
+ * 64 characters of output (48 characters of input). Use
117
+ * EVP_EncodeBlock to encode raw base64. */
118
+ OPENSSL_EXPORT void EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
119
+
120
+ /* EVP_EncodeUpdate encodes |in_len| bytes from |in| and writes an encoded
121
+ * version of them to |out| and sets |*out_len| to the number of bytes written.
122
+ * Some state may be contained in |ctx| so |EVP_EncodeFinal| must be used to
123
+ * flush it before using the encoded data. */
124
+ OPENSSL_EXPORT void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, uint8_t *out,
125
+ int *out_len, const uint8_t *in,
126
+ size_t in_len);
127
+
128
+ /* EVP_EncodeFinal flushes any remaining output bytes from |ctx| to |out| and
129
+ * sets |*out_len| to the number of bytes written. */
130
+ OPENSSL_EXPORT void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, uint8_t *out,
131
+ int *out_len);
132
+
133
+ /* EVP_DecodeInit initialises |*ctx|, which is typically stack allocated, for
134
+ * a decoding operation.
135
+ *
136
+ * TODO(davidben): This isn't a straight-up base64 decode either. Document
137
+ * and/or fix exactly what's going on here; maximum line length and such. */
138
+ OPENSSL_EXPORT void EVP_DecodeInit(EVP_ENCODE_CTX *ctx);
139
+
140
+ /* EVP_DecodeUpdate decodes |in_len| bytes from |in| and writes the decoded
141
+ * data to |out| and sets |*out_len| to the number of bytes written. Some state
142
+ * may be contained in |ctx| so |EVP_DecodeFinal| must be used to flush it
143
+ * before using the encoded data.
144
+ *
145
+ * It returns -1 on error, one if a full line of input was processed and zero
146
+ * if the line was short (i.e. it was the last line). */
147
+ OPENSSL_EXPORT int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, uint8_t *out,
148
+ int *out_len, const uint8_t *in,
149
+ size_t in_len);
150
+
151
+ /* EVP_DecodeFinal flushes any remaining output bytes from |ctx| to |out| and
152
+ * sets |*out_len| to the number of bytes written. It returns one on success
153
+ * and minus one on error. */
154
+ OPENSSL_EXPORT int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, uint8_t *out,
155
+ int *out_len);
156
+
157
+ /* EVP_DecodeBlock encodes |src_len| bytes from |src| and writes the result to
158
+ * |dst|. It returns the number of bytes written or -1 on error.
159
+ *
160
+ * WARNING: EVP_DecodeBlock's return value does not take padding into
161
+ * account. It also strips leading whitespace and trailing
162
+ * whitespace. */
163
+ OPENSSL_EXPORT int EVP_DecodeBlock(uint8_t *dst, const uint8_t *src,
164
+ size_t src_len);
165
+
166
+
167
+ struct evp_encode_ctx_st {
168
+ unsigned num; /* number saved in a partial encode/decode */
169
+ unsigned length; /* The length is either the output line length
170
+ * (in input bytes) or the shortest input line
171
+ * length that is ok. Once decoding begins,
172
+ * the length is adjusted up each time a longer
173
+ * line is decoded */
174
+ uint8_t enc_data[80]; /* data to encode */
175
+ unsigned line_num; /* number read on current line */
176
+ int expect_nl;
177
+ };
178
+
179
+
180
+ #if defined(__cplusplus)
181
+ } /* extern C */
182
+ #endif
183
+
184
+ #endif /* OPENSSL_HEADER_BASE64_H */
@@ -0,0 +1,902 @@
1
+ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
+ * All rights reserved.
3
+ *
4
+ * This package is an SSL implementation written
5
+ * by Eric Young (eay@cryptsoft.com).
6
+ * The implementation was written so as to conform with Netscapes SSL.
7
+ *
8
+ * This library is free for commercial and non-commercial use as long as
9
+ * the following conditions are aheared to. The following conditions
10
+ * apply to all code found in this distribution, be it the RC4, RSA,
11
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12
+ * included with this distribution is covered by the same copyright terms
13
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
+ *
15
+ * Copyright remains Eric Young's, and as such any Copyright notices in
16
+ * the code are not to be removed.
17
+ * If this package is used in a product, Eric Young should be given attribution
18
+ * as the author of the parts of the library used.
19
+ * This can be in the form of a textual message at program startup or
20
+ * in documentation (online or textual) provided with the package.
21
+ *
22
+ * Redistribution and use in source and binary forms, with or without
23
+ * modification, are permitted provided that the following conditions
24
+ * are met:
25
+ * 1. Redistributions of source code must retain the copyright
26
+ * notice, this list of conditions and the following disclaimer.
27
+ * 2. Redistributions in binary form must reproduce the above copyright
28
+ * notice, this list of conditions and the following disclaimer in the
29
+ * documentation and/or other materials provided with the distribution.
30
+ * 3. All advertising materials mentioning features or use of this software
31
+ * must display the following acknowledgement:
32
+ * "This product includes cryptographic software written by
33
+ * Eric Young (eay@cryptsoft.com)"
34
+ * The word 'cryptographic' can be left out if the rouines from the library
35
+ * being used are not cryptographic related :-).
36
+ * 4. If you include any Windows specific code (or a derivative thereof) from
37
+ * the apps directory (application code) you must include an acknowledgement:
38
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
+ *
40
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
+ * SUCH DAMAGE.
51
+ *
52
+ * The licence and distribution terms for any publically available version or
53
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
54
+ * copied and put under another distribution licence
55
+ * [including the GNU Public Licence.] */
56
+
57
+ #ifndef OPENSSL_HEADER_BIO_H
58
+ #define OPENSSL_HEADER_BIO_H
59
+
60
+ #include <openssl/base.h>
61
+
62
+ #include <stdio.h> /* For FILE */
63
+
64
+ #include <openssl/err.h> /* for ERR_print_errors_fp */
65
+ #include <openssl/ex_data.h>
66
+ #include <openssl/stack.h>
67
+ #include <openssl/thread.h>
68
+
69
+ #if defined(__cplusplus)
70
+ extern "C" {
71
+ #endif
72
+
73
+
74
+ /* BIO abstracts over a file-descriptor like interface. */
75
+
76
+
77
+ /* Allocation and freeing. */
78
+
79
+ /* BIO_new creates a new BIO with the given type and a reference count of one.
80
+ * It returns the fresh |BIO|, or NULL on error. */
81
+ OPENSSL_EXPORT BIO *BIO_new(const BIO_METHOD *type);
82
+
83
+ /* BIO_free decrements the reference count of |bio|. If the reference count
84
+ * drops to zero, it (optionally) calls the BIO's callback with |BIO_CB_FREE|,
85
+ * frees the ex_data and then, if the BIO has a destroy callback for the
86
+ * method, calls it. Finally it frees |bio| itself. It then repeats that for
87
+ * the next BIO in the chain, if any.
88
+ *
89
+ * It returns one on success or zero otherwise. */
90
+ OPENSSL_EXPORT int BIO_free(BIO *bio);
91
+
92
+ /* BIO_vfree performs the same actions as |BIO_free|, but has a void return
93
+ * value. This is provided for API-compat.
94
+ *
95
+ * TODO(fork): remove. */
96
+ OPENSSL_EXPORT void BIO_vfree(BIO *bio);
97
+
98
+ /* BIO_up_ref increments the reference count of |bio| and returns it. */
99
+ OPENSSL_EXPORT BIO *BIO_up_ref(BIO *bio);
100
+
101
+
102
+ /* Basic I/O. */
103
+
104
+ /* BIO_read attempts to read |len| bytes into |data|. It returns the number of
105
+ * bytes read, zero on EOF, or a negative number on error. */
106
+ OPENSSL_EXPORT int BIO_read(BIO *bio, void *data, int len);
107
+
108
+ /* BIO_gets "reads a line" from |bio| and puts at most |size| bytes into |buf|.
109
+ * It returns the number of bytes read or a negative number on error. The
110
+ * phrase "reads a line" is in quotes in the previous sentence because the
111
+ * exact operation depends on the BIO's method. For example, a digest BIO will
112
+ * return the digest in response to a |BIO_gets| call.
113
+ *
114
+ * TODO(fork): audit the set of BIOs that we end up needing. If all actually
115
+ * return a line for this call, remove the warning above. */
116
+ OPENSSL_EXPORT int BIO_gets(BIO *bio, char *buf, int size);
117
+
118
+ /* BIO_write writes |len| bytes from |data| to BIO. It returns the number of
119
+ * bytes written or a negative number on error. */
120
+ OPENSSL_EXPORT int BIO_write(BIO *bio, const void *data, int len);
121
+
122
+ /* BIO_puts writes a NUL terminated string from |buf| to |bio|. It returns the
123
+ * number of bytes written or a negative number on error. */
124
+ OPENSSL_EXPORT int BIO_puts(BIO *bio, const char *buf);
125
+
126
+ /* BIO_flush flushes any buffered output. It returns one on success and zero
127
+ * otherwise. */
128
+ OPENSSL_EXPORT int BIO_flush(BIO *bio);
129
+
130
+
131
+ /* Low-level control functions.
132
+ *
133
+ * These are generic functions for sending control requests to a BIO. In
134
+ * general one should use the wrapper functions like |BIO_get_close|. */
135
+
136
+ /* BIO_ctrl sends the control request |cmd| to |bio|. The |cmd| argument should
137
+ * be one of the |BIO_C_*| values. */
138
+ OPENSSL_EXPORT long BIO_ctrl(BIO *bio, int cmd, long larg, void *parg);
139
+
140
+ /* BIO_ptr_ctrl acts like |BIO_ctrl| but passes the address of a |void*|
141
+ * pointer as |parg| and returns the value that is written to it, or NULL if
142
+ * the control request returns <= 0. */
143
+ OPENSSL_EXPORT char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg);
144
+
145
+ /* BIO_int_ctrl acts like |BIO_ctrl| but passes the address of a copy of |iarg|
146
+ * as |parg|. */
147
+ OPENSSL_EXPORT long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg);
148
+
149
+ /* BIO_reset resets |bio| to its initial state, the precise meaning of which
150
+ * depends on the concrete type of |bio|. It returns one on success and zero
151
+ * otherwise. */
152
+ OPENSSL_EXPORT int BIO_reset(BIO *bio);
153
+
154
+ /* BIO_set_flags ORs |flags| with |bio->flags|. */
155
+ OPENSSL_EXPORT void BIO_set_flags(BIO *bio, int flags);
156
+
157
+ /* BIO_test_flags returns |bio->flags| AND |flags|. */
158
+ OPENSSL_EXPORT int BIO_test_flags(const BIO *bio, int flags);
159
+
160
+ /* BIO_should_read returns non-zero if |bio| encountered a temporary error
161
+ * while reading (i.e. EAGAIN), indicating that the caller should retry the
162
+ * read. */
163
+ OPENSSL_EXPORT int BIO_should_read(const BIO *bio);
164
+
165
+ /* BIO_should_write returns non-zero if |bio| encountered a temporary error
166
+ * while writing (i.e. EAGAIN), indicating that the caller should retry the
167
+ * write. */
168
+ OPENSSL_EXPORT int BIO_should_write(const BIO *bio);
169
+
170
+ /* BIO_should_retry returns non-zero if the reason that caused a failed I/O
171
+ * operation is temporary and thus the operation should be retried. Otherwise,
172
+ * it was a permanent error and it returns zero. */
173
+ OPENSSL_EXPORT int BIO_should_retry(const BIO *bio);
174
+
175
+ /* BIO_should_io_special returns non-zero if |bio| encountered a temporary
176
+ * error while performing a special I/O operation, indicating that the caller
177
+ * should retry. The operation that caused the error is returned by
178
+ * |BIO_get_retry_reason|. */
179
+ OPENSSL_EXPORT int BIO_should_io_special(const BIO *bio);
180
+
181
+ /* BIO_RR_SSL_X509_LOOKUP indicates that an SSL BIO blocked because the SSL
182
+ * library returned with SSL_ERROR_WANT_X509_LOOKUP.
183
+ *
184
+ * TODO(fork): remove. */
185
+ #define BIO_RR_SSL_X509_LOOKUP 0x01
186
+
187
+ /* BIO_RR_CONNECT indicates that a connect would have blocked */
188
+ #define BIO_RR_CONNECT 0x02
189
+
190
+ /* BIO_RR_ACCEPT indicates that an accept would have blocked */
191
+ #define BIO_RR_ACCEPT 0x03
192
+
193
+ /* BIO_RR_SSL_CHANNEL_ID_LOOKUP indicates that the ChannelID code cannot find
194
+ * a private key for a TLS connection. */
195
+ #define BIO_RR_SSL_CHANNEL_ID_LOOKUP 0x04
196
+
197
+ /* BIO_get_retry_reason returns the special I/O operation that needs to be
198
+ * retried. The return value is one of the |BIO_RR_*| values. */
199
+ OPENSSL_EXPORT int BIO_get_retry_reason(const BIO *bio);
200
+
201
+ /* BIO_clear_flags ANDs |bio->flags| with the bitwise-complement of |flags|. */
202
+ OPENSSL_EXPORT void BIO_clear_flags(BIO *bio, int flags);
203
+
204
+ /* BIO_set_retry_read sets the |BIO_FLAGS_READ| and |BIO_FLAGS_SHOULD_RETRY|
205
+ * flags on |bio|. */
206
+ OPENSSL_EXPORT void BIO_set_retry_read(BIO *bio);
207
+
208
+ /* BIO_set_retry_write sets the |BIO_FLAGS_WRITE| and |BIO_FLAGS_SHOULD_RETRY|
209
+ * flags on |bio|. */
210
+ OPENSSL_EXPORT void BIO_set_retry_write(BIO *bio);
211
+
212
+ /* BIO_get_retry_flags gets the |BIO_FLAGS_READ|, |BIO_FLAGS_WRITE|,
213
+ * |BIO_FLAGS_IO_SPECIAL| and |BIO_FLAGS_SHOULD_RETRY| flags from |bio|. */
214
+ OPENSSL_EXPORT int BIO_get_retry_flags(BIO *bio);
215
+
216
+ /* BIO_clear_retry_flags clears the |BIO_FLAGS_READ|, |BIO_FLAGS_WRITE|,
217
+ * |BIO_FLAGS_IO_SPECIAL| and |BIO_FLAGS_SHOULD_RETRY| flags from |bio|. */
218
+ OPENSSL_EXPORT void BIO_clear_retry_flags(BIO *bio);
219
+
220
+ /* BIO_method_type returns the type of |bio|, which is one of the |BIO_TYPE_*|
221
+ * values. */
222
+ OPENSSL_EXPORT int BIO_method_type(const BIO *bio);
223
+
224
+ /* bio_info_cb is the type of a callback function that can be called for most
225
+ * BIO operations. The |event| argument is one of |BIO_CB_*| and can be ORed
226
+ * with |BIO_CB_RETURN| if the callback is being made after the operation in
227
+ * question. In that case, |return_value| will contain the return value from
228
+ * the operation. */
229
+ typedef long (*bio_info_cb)(BIO *bio, int event, const char *parg, int cmd,
230
+ long larg, long return_value);
231
+
232
+ /* BIO_callback_ctrl allows the callback function to be manipulated. The |cmd|
233
+ * arg will generally be |BIO_CTRL_SET_CALLBACK| but arbitary command values
234
+ * can be interpreted by the |BIO|. */
235
+ OPENSSL_EXPORT long BIO_callback_ctrl(BIO *bio, int cmd, bio_info_cb fp);
236
+
237
+ /* BIO_pending returns the number of bytes pending to be read. */
238
+ OPENSSL_EXPORT size_t BIO_pending(const BIO *bio);
239
+
240
+ /* BIO_ctrl_pending calls |BIO_pending| and exists only for compatibility with
241
+ * OpenSSL. */
242
+ OPENSSL_EXPORT size_t BIO_ctrl_pending(const BIO *bio);
243
+
244
+ /* BIO_wpending returns the number of bytes pending to be written. */
245
+ OPENSSL_EXPORT size_t BIO_wpending(const BIO *bio);
246
+
247
+ /* BIO_set_close sets the close flag for |bio|. The meaning of which depends on
248
+ * the type of |bio| but, for example, a memory BIO interprets the close flag
249
+ * as meaning that it owns its buffer. It returns one on success and zero
250
+ * otherwise. */
251
+ OPENSSL_EXPORT int BIO_set_close(BIO *bio, int close_flag);
252
+
253
+ /* BIO_set_callback sets a callback function that will be called before and
254
+ * after most operations. See the comment above |bio_info_cb|. */
255
+ OPENSSL_EXPORT void BIO_set_callback(BIO *bio, bio_info_cb callback_func);
256
+
257
+ /* BIO_set_callback_arg sets the opaque pointer value that can be read within a
258
+ * callback with |BIO_get_callback_arg|. */
259
+ OPENSSL_EXPORT void BIO_set_callback_arg(BIO *bio, char *arg);
260
+
261
+ /* BIO_get_callback_arg returns the last value of the opaque callback pointer
262
+ * set by |BIO_set_callback_arg|. */
263
+ OPENSSL_EXPORT char *BIO_get_callback_arg(const BIO *bio);
264
+
265
+ /* BIO_number_read returns the number of bytes that have been read from
266
+ * |bio|. */
267
+ OPENSSL_EXPORT size_t BIO_number_read(const BIO *bio);
268
+
269
+ /* BIO_number_written returns the number of bytes that have been written to
270
+ * |bio|. */
271
+ OPENSSL_EXPORT size_t BIO_number_written(const BIO *bio);
272
+
273
+
274
+ /* Managing chains of BIOs.
275
+ *
276
+ * BIOs can be put into chains where the output of one is used as the input of
277
+ * the next etc. The most common case is a buffering BIO, which accepts and
278
+ * buffers writes until flushed into the next BIO in the chain. */
279
+
280
+ /* BIO_push adds |appended_bio| to the end of the chain with |bio| at the head.
281
+ * It returns |bio|. Note that |appended_bio| may be the head of a chain itself
282
+ * and thus this function can be used to join two chains.
283
+ *
284
+ * BIO_push takes ownership of the caller's reference to |appended_bio|. */
285
+ OPENSSL_EXPORT BIO *BIO_push(BIO *bio, BIO *appended_bio);
286
+
287
+ /* BIO_pop removes |bio| from the head of a chain and returns the next BIO in
288
+ * the chain, or NULL if there is no next BIO.
289
+ *
290
+ * The caller takes ownership of the chain's reference to |bio|. */
291
+ OPENSSL_EXPORT BIO *BIO_pop(BIO *bio);
292
+
293
+ /* BIO_next returns the next BIO in the chain after |bio|, or NULL if there is
294
+ * no such BIO. */
295
+ OPENSSL_EXPORT BIO *BIO_next(BIO *bio);
296
+
297
+ /* BIO_free_all calls |BIO_free|.
298
+ *
299
+ * TODO(fork): update callers and remove. */
300
+ OPENSSL_EXPORT void BIO_free_all(BIO *bio);
301
+
302
+ /* BIO_find_type walks a chain of BIOs and returns the first that matches
303
+ * |type|, which is one of the |BIO_TYPE_*| values. */
304
+ OPENSSL_EXPORT BIO *BIO_find_type(BIO *bio, int type);
305
+
306
+ /* BIO_copy_next_retry sets the retry flags and |retry_reason| of |bio| from
307
+ * the next BIO in the chain. */
308
+ OPENSSL_EXPORT void BIO_copy_next_retry(BIO *bio);
309
+
310
+
311
+ /* Printf functions.
312
+ *
313
+ * These functions are versions of printf functions that output to a BIO rather
314
+ * than a FILE. */
315
+ #ifdef __GNUC__
316
+ #define __bio_h__attr__ __attribute__
317
+ #else
318
+ #define __bio_h__attr__(x)
319
+ #endif
320
+ OPENSSL_EXPORT int BIO_printf(BIO *bio, const char *format, ...)
321
+ __bio_h__attr__((__format__(__printf__, 2, 3)));
322
+ #undef __bio_h__attr__
323
+
324
+
325
+ /* Utility functions. */
326
+
327
+ /* BIO_indent prints min(|indent|, |max_indent|) spaces. It returns one on
328
+ * success and zero otherwise. */
329
+ OPENSSL_EXPORT int BIO_indent(BIO *bio, unsigned indent, unsigned max_indent);
330
+
331
+ /* BIO_hexdump writes a hex dump of |data| to |bio|. Each line will be indented
332
+ * by |indent| spaces. */
333
+ OPENSSL_EXPORT int BIO_hexdump(BIO *bio, const uint8_t *data, size_t len,
334
+ unsigned indent);
335
+
336
+ /* BIO_print_errors prints the current contents of the error stack to |bio|
337
+ * using human readable strings where possible. */
338
+ OPENSSL_EXPORT void BIO_print_errors(BIO *bio);
339
+
340
+ /* BIO_read_asn1 reads a single ASN.1 object from |bio|. If successful it sets
341
+ * |*out| to be an allocated buffer (that should be freed with |OPENSSL_free|),
342
+ * |*out_size| to the length, in bytes, of that buffer and returns one.
343
+ * Otherwise it returns zero.
344
+ *
345
+ * If the length of the object is greater than |max_len| or 2^32 then the
346
+ * function will fail. Long-form tags are not supported. If the length of the
347
+ * object is indefinite the full contents of |bio| are read, unless it would be
348
+ * greater than |max_len|, in which case the function fails.
349
+ *
350
+ * If the function fails then some unknown amount of data may have been read
351
+ * from |bio|. */
352
+ OPENSSL_EXPORT int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len,
353
+ size_t max_len);
354
+
355
+
356
+ /* Memory BIOs.
357
+ *
358
+ * Memory BIOs can be used as a read-only source (with |BIO_new_mem_buf|) or a
359
+ * writable sink (with |BIO_new|, |BIO_s_mem| and |BIO_get_mem_buf|). Data
360
+ * written to a writable, memory BIO can be recalled by reading from it.
361
+ *
362
+ * Calling |BIO_reset| on a read-only BIO resets it to the original contents.
363
+ * On a writable BIO, it clears any data.
364
+ *
365
+ * If the close flag is set to |BIO_NOCLOSE| (not the default) then the
366
+ * underlying |BUF_MEM| will not be freed when the |BIO| is freed.
367
+ *
368
+ * Memory BIOs support |BIO_gets| and |BIO_puts|.
369
+ *
370
+ * |BIO_eof| is true if no data is in the BIO.
371
+ *
372
+ * |BIO_ctrl_pending| returns the number of bytes currently stored. */
373
+
374
+ /* BIO_s_mem returns a |BIO_METHOD| that uses a in-memory buffer. */
375
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_mem(void);
376
+
377
+ /* BIO_new_mem_buf creates BIO that reads and writes from |len| bytes at |buf|.
378
+ * It does not take ownership of |buf|. It returns the BIO or NULL on error.
379
+ *
380
+ * If |len| is negative, then |buf| is treated as a NUL-terminated string, but
381
+ * don't depend on this in new code. */
382
+ OPENSSL_EXPORT BIO *BIO_new_mem_buf(void *buf, int len);
383
+
384
+ /* BIO_mem_contents sets |*out_contents| to point to the current contents of
385
+ * |bio| and |*out_len| to contain the length of that data. It returns one on
386
+ * success and zero otherwise. */
387
+ OPENSSL_EXPORT int BIO_mem_contents(const BIO *bio,
388
+ const uint8_t **out_contents,
389
+ size_t *out_len);
390
+
391
+ /* BIO_get_mem_data sets |*contents| to point to the current contents of |bio|
392
+ * and returns the length of the data.
393
+ *
394
+ * WARNING: don't use this, use |BIO_mem_contents|. A return value of zero from
395
+ * this function can mean either that it failed or that the memory buffer is
396
+ * empty. */
397
+ OPENSSL_EXPORT long BIO_get_mem_data(BIO *bio, char **contents);
398
+
399
+ /* BIO_get_mem_ptr sets |*out| to a BUF_MEM containing the current contents of
400
+ * |bio|. It returns one on success or zero on error. */
401
+ OPENSSL_EXPORT int BIO_get_mem_ptr(BIO *bio, BUF_MEM **out);
402
+
403
+ /* BIO_set_mem_buf sets |b| as the contents of |bio|. If |take_ownership| is
404
+ * non-zero, then |b| will be freed when |bio| is closed. Returns one on
405
+ * success or zero otherwise. */
406
+ OPENSSL_EXPORT int BIO_set_mem_buf(BIO *bio, BUF_MEM *b, int take_ownership);
407
+
408
+ /* BIO_set_mem_eof_return sets the value that will be returned from reading
409
+ * |bio| when empty. If |eof_value| is zero then an empty memory BIO will
410
+ * return EOF (that is it will return zero and |BIO_should_retry| will be
411
+ * false). If |eof_value| is non zero then it will return |eof_value| when it
412
+ * is empty and it will set the read retry flag (that is |BIO_read_retry| is
413
+ * true). To avoid ambiguity with a normal positive return value, |eof_value|
414
+ * should be set to a negative value, typically -1.
415
+ *
416
+ * For a read-only BIO, the default is zero (EOF). For a writable BIO, the
417
+ * default is -1 so that additional data can be written once exhausted. */
418
+ OPENSSL_EXPORT int BIO_set_mem_eof_return(BIO *bio, int eof_value);
419
+
420
+
421
+ /* File descriptor BIOs.
422
+ *
423
+ * File descriptor BIOs are wrappers around the system's |read| and |write|
424
+ * functions. If the close flag is set then then |close| is called on the
425
+ * underlying file descriptor when the BIO is freed.
426
+ *
427
+ * |BIO_reset| attempts to seek the file pointer to the start of file using
428
+ * |lseek|.
429
+ *
430
+ * |BIO_seek| sets the file pointer to position |off| from start of file using
431
+ * |lseek|.
432
+ *
433
+ * |BIO_tell| returns the current file position. */
434
+
435
+ /* BIO_s_fd returns a |BIO_METHOD| for file descriptor fds. */
436
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_fd(void);
437
+
438
+ /* BIO_new_fd creates a new file descriptor BIO wrapping |fd|. If |close_flag|
439
+ * is non-zero, then |fd| will be closed when the BIO is. */
440
+ OPENSSL_EXPORT BIO *BIO_new_fd(int fd, int close_flag);
441
+
442
+ /* BIO_set_fd sets the file descriptor of |bio| to |fd|. If |close_flag| is
443
+ * non-zero then |fd| will be closed when |bio| is. It returns one on success
444
+ * or zero on error. */
445
+ OPENSSL_EXPORT int BIO_set_fd(BIO *bio, int fd, int close_flag);
446
+
447
+ /* BIO_get_fd returns the file descriptor currently in use by |bio| or -1 if
448
+ * |bio| does not wrap a file descriptor. If there is a file descriptor and
449
+ * |out_fd| is not NULL, it also sets |*out_fd| to the file descriptor. */
450
+ OPENSSL_EXPORT int BIO_get_fd(BIO *bio, int *out_fd);
451
+
452
+
453
+ /* File BIOs.
454
+ *
455
+ * File BIOs are wrappers around a C |FILE| object.
456
+ *
457
+ * |BIO_flush| on a file BIO calls |fflush| on the wrapped stream.
458
+ *
459
+ * |BIO_reset| attempts to seek the file pointer to the start of file using
460
+ * |fseek|.
461
+ *
462
+ * |BIO_seek| sets the file pointer to the given position from the start of
463
+ * file using |fseek|.
464
+ *
465
+ * |BIO_eof| calls |feof|.
466
+ *
467
+ * Setting the close flag causes |fclose| to be called on the stream when the
468
+ * BIO is freed. */
469
+
470
+ /* BIO_s_file returns a BIO_METHOD that wraps a |FILE|. */
471
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_file(void);
472
+
473
+ /* BIO_new_file creates a file BIO by opening |filename| with the given mode.
474
+ * See the |fopen| manual page for details of the mode argument. */
475
+ OPENSSL_EXPORT BIO *BIO_new_file(const char *filename, const char *mode);
476
+
477
+ /* BIO_new_fp creates a new file BIO that wraps the given |FILE|. If
478
+ * |close_flag| is |BIO_CLOSE|, then |fclose| will be called on |stream| when
479
+ * the BIO is closed. */
480
+ OPENSSL_EXPORT BIO *BIO_new_fp(FILE *stream, int close_flag);
481
+
482
+ /* BIO_get_fp sets |*out_file| to the current |FILE| for |bio|. It returns one
483
+ * on success and zero otherwise. */
484
+ OPENSSL_EXPORT int BIO_get_fp(BIO *bio, FILE **out_file);
485
+
486
+ /* BIO_set_fp sets the |FILE| for |bio|. If |close_flag| is |BIO_CLOSE| then
487
+ * |fclose| will be called on |file| when |bio| is closed. It returns one on
488
+ * sucess and zero otherwise. */
489
+ OPENSSL_EXPORT int BIO_set_fp(BIO *bio, FILE *file, int close_flag);
490
+
491
+ /* BIO_read_filename opens |filename| for reading and sets the result as the
492
+ * |FILE| for |bio|. It returns one on success and zero otherwise. The |FILE|
493
+ * will be closed when |bio| is freed. */
494
+ OPENSSL_EXPORT int BIO_read_filename(BIO *bio, const char *filename);
495
+
496
+ /* BIO_write_filename opens |filename| for writing and sets the result as the
497
+ * |FILE| for |bio|. It returns one on success and zero otherwise. The |FILE|
498
+ * will be closed when |bio| is freed. */
499
+ OPENSSL_EXPORT int BIO_write_filename(BIO *bio, const char *filename);
500
+
501
+ /* BIO_append_filename opens |filename| for appending and sets the result as
502
+ * the |FILE| for |bio|. It returns one on success and zero otherwise. The
503
+ * |FILE| will be closed when |bio| is freed. */
504
+ OPENSSL_EXPORT int BIO_append_filename(BIO *bio, const char *filename);
505
+
506
+ /* BIO_rw_filename opens |filename| for reading and writing and sets the result
507
+ * as the |FILE| for |bio|. It returns one on success and zero otherwise. The
508
+ * |FILE| will be closed when |bio| is freed. */
509
+ OPENSSL_EXPORT int BIO_rw_filename(BIO *bio, const char *filename);
510
+
511
+
512
+ /* Buffer BIOs.
513
+ *
514
+ * Buffer BIOs are a filter-type BIO, i.e. they are designed to be used in a
515
+ * chain of BIOs. They provide buffering to reduce the number of operations on
516
+ * the underlying BIOs. */
517
+
518
+ OPENSSL_EXPORT const BIO_METHOD *BIO_f_buffer(void);
519
+
520
+ /* BIO_set_read_buffer_size sets the size, in bytes, of the read buffer and
521
+ * clears it. It returns one on success and zero on failure. */
522
+ OPENSSL_EXPORT int BIO_set_read_buffer_size(BIO *bio, int buffer_size);
523
+
524
+ /* BIO_set_write_buffer_size sets the size, in bytes, of the write buffer and
525
+ * clears it. It returns one on success and zero on failure. */
526
+ OPENSSL_EXPORT int BIO_set_write_buffer_size(BIO *bio, int buffer_size);
527
+
528
+
529
+ /* Socket BIOs. */
530
+
531
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_socket(void);
532
+
533
+ /* BIO_new_socket allocates and initialises a fresh BIO which will read and
534
+ * write to the socket |fd|. If |close_flag| is |BIO_CLOSE| then closing the
535
+ * BIO will close |fd|. It returns the fresh |BIO| or NULL on error. */
536
+ OPENSSL_EXPORT BIO *BIO_new_socket(int fd, int close_flag);
537
+
538
+
539
+ /* Connect BIOs.
540
+ *
541
+ * A connection BIO creates a network connection and transfers data over the
542
+ * resulting socket. */
543
+
544
+ OPENSSL_EXPORT const BIO_METHOD *BIO_s_connect(void);
545
+
546
+ /* BIO_new_connect returns a BIO that connects to the given hostname and port.
547
+ * The |host_and_optional_port| argument should be of the form
548
+ * "www.example.com" or "www.example.com:443". If the port is omitted, it must
549
+ * be provided with |BIO_set_conn_port|.
550
+ *
551
+ * It returns the new BIO on success, or NULL on error. */
552
+ OPENSSL_EXPORT BIO *BIO_new_connect(const char *host_and_optional_port);
553
+
554
+ /* BIO_set_conn_hostname sets |host_and_optional_port| as the hostname and
555
+ * optional port that |bio| will connect to. If the port is omitted, it must be
556
+ * provided with |BIO_set_conn_port|.
557
+ *
558
+ * It returns one on success and zero otherwise. */
559
+ OPENSSL_EXPORT int BIO_set_conn_hostname(BIO *bio,
560
+ const char *host_and_optional_port);
561
+
562
+ /* BIO_set_conn_port sets |port_str| as the port or service name that |bio|
563
+ * will connect to. It returns one on success and zero otherwise. */
564
+ OPENSSL_EXPORT int BIO_set_conn_port(BIO *bio, const char *port_str);
565
+
566
+ /* BIO_set_nbio sets whether |bio| will use non-blocking I/O operations. It
567
+ * returns one on success and zero otherwise. */
568
+ OPENSSL_EXPORT int BIO_set_nbio(BIO *bio, int on);
569
+
570
+
571
+ /* Datagram BIOs.
572
+ *
573
+ * TODO(fork): not implemented. */
574
+
575
+ #define BIO_CTRL_DGRAM_QUERY_MTU 40 /* as kernel for current MTU */
576
+
577
+ #define BIO_CTRL_DGRAM_SET_MTU 42 /* set cached value for MTU. want to use
578
+ this if asking the kernel fails */
579
+
580
+ #define BIO_CTRL_DGRAM_MTU_EXCEEDED 43 /* check whether the MTU was exceed in
581
+ the previous write operation. */
582
+
583
+ #define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT \
584
+ 45 /* Next DTLS handshake timeout to adjust socket timeouts */
585
+
586
+ #define BIO_CTRL_DGRAM_GET_PEER 46
587
+
588
+ #define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47
589
+
590
+
591
+ /* BIO Pairs.
592
+ *
593
+ * BIO pairs provide a "loopback" like system: a pair of BIOs where data
594
+ * written to one can be read from the other and vice versa. */
595
+
596
+ /* BIO_new_bio_pair sets |*out1| and |*out2| to two freshly created BIOs where
597
+ * data written to one can be read from the other and vice versa. The
598
+ * |writebuf1| argument gives the size of the buffer used in |*out1| and
599
+ * |writebuf2| for |*out2|. It returns one on success and zero on error. */
600
+ OPENSSL_EXPORT int BIO_new_bio_pair(BIO **out1, size_t writebuf1, BIO **out2,
601
+ size_t writebuf2);
602
+
603
+ /* BIO_new_bio_pair_external_buf is the same as |BIO_new_bio_pair| with the
604
+ * difference that the caller keeps ownership of the write buffers
605
+ * |ext_writebuf1_len| and |ext_writebuf2_len|. This is useful when using zero
606
+ * copy API for read and write operations, in cases where the buffers need to
607
+ * outlive the BIO pairs. It returns one on success and zero on error. */
608
+ OPENSSL_EXPORT int BIO_new_bio_pair_external_buf(BIO** bio1_p,
609
+ size_t writebuf1_len,
610
+ uint8_t* ext_writebuf1,
611
+ BIO** bio2_p,
612
+ size_t writebuf2_len,
613
+ uint8_t* ext_writebuf2);
614
+
615
+ /* BIO_ctrl_get_read_request returns the number of bytes that the other side of
616
+ * |bio| tried (unsuccessfully) to read. */
617
+ OPENSSL_EXPORT size_t BIO_ctrl_get_read_request(BIO *bio);
618
+
619
+ /* BIO_ctrl_get_write_guarantee returns the number of bytes that |bio| (which
620
+ * must have been returned by |BIO_new_bio_pair|) will accept on the next
621
+ * |BIO_write| call. */
622
+ OPENSSL_EXPORT size_t BIO_ctrl_get_write_guarantee(BIO *bio);
623
+
624
+ /* BIO_shutdown_wr marks |bio| as closed, from the point of view of the other
625
+ * side of the pair. Future |BIO_write| calls on |bio| will fail. It returns
626
+ * one on success and zero otherwise. */
627
+ OPENSSL_EXPORT int BIO_shutdown_wr(BIO *bio);
628
+
629
+
630
+ /* Zero copy versions of BIO_read and BIO_write for BIO pairs. */
631
+
632
+ /* BIO_zero_copy_get_read_buf initiates a zero copy read operation.
633
+ * |out_read_buf| is set to the internal read buffer, and |out_buf_offset| is
634
+ * set to the current read position of |out_read_buf|. The number of bytes
635
+ * available for read from |out_read_buf| + |out_buf_offset| is returned in
636
+ * |out_available_bytes|. Note that this function might report fewer bytes
637
+ * available than |BIO_pending|, if the internal ring buffer is wrapped. It
638
+ * returns one on success. In case of error it returns zero and pushes to the
639
+ * error stack.
640
+ *
641
+ * The zero copy read operation is completed by calling
642
+ * |BIO_zero_copy_get_read_buf_done|. Neither |BIO_zero_copy_get_read_buf| nor
643
+ * any other I/O read operation may be called while a zero copy read operation
644
+ * is active. */
645
+ OPENSSL_EXPORT int BIO_zero_copy_get_read_buf(BIO* bio,
646
+ uint8_t** out_read_buf,
647
+ size_t* out_buf_offset,
648
+ size_t* out_available_bytes);
649
+
650
+ /* BIO_zero_copy_get_read_buf_done must be called after reading from a BIO using
651
+ * |BIO_zero_copy_get_read_buf| to finish the read operation. The |bytes_read|
652
+ * argument is the number of bytes read.
653
+ *
654
+ * It returns one on success. In case of error it returns zero and pushes to the
655
+ * error stack. */
656
+ OPENSSL_EXPORT int BIO_zero_copy_get_read_buf_done(BIO* bio, size_t bytes_read);
657
+
658
+ /* BIO_zero_copy_get_write_buf initiates a zero copy write operation.
659
+ * |out_write_buf| is set to to the internal write buffer, and |out_buf_offset|
660
+ * is set to the current write position of |out_write_buf|.
661
+ * The number of bytes available for write from |out_write_buf| +
662
+ * |out_buf_offset| is returned in |out_available_bytes|. Note that this
663
+ * function might report fewer bytes available than
664
+ * |BIO_ctrl_get_write_guarantee|, if the internal buffer is wrapped. It returns
665
+ * one on success. In case of error it returns zero and pushes to the error
666
+ * stack.
667
+ *
668
+ * The zero copy write operation is completed by calling
669
+ * |BIO_zero_copy_get_write_buf_done|. Neither |BIO_zero_copy_get_write_buf|
670
+ * nor any other I/O write operation may be called while a zero copy write
671
+ * operation is active. */
672
+ OPENSSL_EXPORT int BIO_zero_copy_get_write_buf(BIO* bio,
673
+ uint8_t** out_write_buf,
674
+ size_t* out_buf_offset,
675
+ size_t* out_available_bytes);
676
+
677
+ /* BIO_zero_copy_get_write_buf_done must be called after writing to a BIO using
678
+ * |BIO_zero_copy_get_write_buf| to finish the write operation. The
679
+ * |bytes_written| argument gives the number of bytes written.
680
+ *
681
+ * It returns one on success. In case of error it returns zero and pushes to the
682
+ * error stack. */
683
+ OPENSSL_EXPORT int BIO_zero_copy_get_write_buf_done(BIO* bio,
684
+ size_t bytes_written);
685
+
686
+
687
+ /* BIO_NOCLOSE and |BIO_CLOSE| can be used as symbolic arguments when a "close
688
+ * flag" is passed to a BIO function. */
689
+ #define BIO_NOCLOSE 0
690
+ #define BIO_CLOSE 1
691
+
692
+ /* These are passed to the BIO callback */
693
+ #define BIO_CB_FREE 0x01
694
+ #define BIO_CB_READ 0x02
695
+ #define BIO_CB_WRITE 0x03
696
+ #define BIO_CB_PUTS 0x04
697
+ #define BIO_CB_GETS 0x05
698
+ #define BIO_CB_CTRL 0x06
699
+
700
+ /* The callback is called before and after the underling operation,
701
+ * The BIO_CB_RETURN flag indicates if it is after the call */
702
+ #define BIO_CB_RETURN 0x80
703
+
704
+ /* These are values of the |cmd| argument to |BIO_ctrl|. */
705
+ #define BIO_CTRL_RESET 1 /* opt - rewind/zero etc */
706
+ #define BIO_CTRL_EOF 2 /* opt - are we at the eof */
707
+ #define BIO_CTRL_INFO 3 /* opt - extra tit-bits */
708
+ #define BIO_CTRL_SET 4 /* man - set the 'IO' type */
709
+ #define BIO_CTRL_GET 5 /* man - get the 'IO' type */
710
+ #define BIO_CTRL_GET_CLOSE 8 /* man - set the 'close' on free */
711
+ #define BIO_CTRL_SET_CLOSE 9 /* man - set the 'close' on free */
712
+ #define BIO_CTRL_PENDING 10 /* opt - is their more data buffered */
713
+ #define BIO_CTRL_FLUSH 11 /* opt - 'flush' buffered output */
714
+ #define BIO_CTRL_WPENDING 13 /* opt - number of bytes still to write */
715
+ /* callback is int cb(BIO *bio,state,ret); */
716
+ #define BIO_CTRL_SET_CALLBACK 14 /* opt - set callback function */
717
+ #define BIO_CTRL_GET_CALLBACK 15 /* opt - set callback function */
718
+ #define BIO_CTRL_SET_FILENAME 30 /* BIO_s_file special */
719
+
720
+
721
+ /* Android compatibility section.
722
+ *
723
+ * A previous version of BoringSSL used in Android renamed ERR_print_errors_fp
724
+ * to BIO_print_errors_fp. It has subsequently been renamed back to
725
+ * ERR_print_errors_fp. */
726
+ #define BIO_print_errors_fp ERR_print_errors_fp
727
+
728
+
729
+ /* Deprecated functions. */
730
+
731
+ /* BIO_f_base64 returns a filter |BIO| that base64-encodes data written into
732
+ * it, and decodes data read from it. |BIO_gets| is not supported. Call
733
+ * |BIO_flush| when done writing, to signal that no more data are to be
734
+ * encoded. The flag |BIO_FLAGS_BASE64_NO_NL| may be set to encode all the data
735
+ * on one line. */
736
+ OPENSSL_EXPORT const BIO_METHOD *BIO_f_base64(void);
737
+
738
+ /* ERR_print_errors is an alias for |BIO_print_errors|. */
739
+ OPENSSL_EXPORT void ERR_print_errors(BIO *bio);
740
+
741
+
742
+ /* Private functions */
743
+
744
+ #define BIO_FLAGS_READ 0x01
745
+ #define BIO_FLAGS_WRITE 0x02
746
+ #define BIO_FLAGS_IO_SPECIAL 0x04
747
+ #define BIO_FLAGS_RWS (BIO_FLAGS_READ | BIO_FLAGS_WRITE | BIO_FLAGS_IO_SPECIAL)
748
+ #define BIO_FLAGS_SHOULD_RETRY 0x08
749
+ #define BIO_FLAGS_BASE64_NO_NL 0x100
750
+ /* This is used with memory BIOs: it means we shouldn't free up or change the
751
+ * data in any way. */
752
+ #define BIO_FLAGS_MEM_RDONLY 0x200
753
+
754
+ /* These are the 'types' of BIOs */
755
+ #define BIO_TYPE_NONE 0
756
+ #define BIO_TYPE_MEM (1 | 0x0400)
757
+ #define BIO_TYPE_FILE (2 | 0x0400)
758
+ #define BIO_TYPE_FD (4 | 0x0400 | 0x0100)
759
+ #define BIO_TYPE_SOCKET (5 | 0x0400 | 0x0100)
760
+ #define BIO_TYPE_NULL (6 | 0x0400)
761
+ #define BIO_TYPE_SSL (7 | 0x0200)
762
+ #define BIO_TYPE_MD (8 | 0x0200) /* passive filter */
763
+ #define BIO_TYPE_BUFFER (9 | 0x0200) /* filter */
764
+ #define BIO_TYPE_CIPHER (10 | 0x0200) /* filter */
765
+ #define BIO_TYPE_BASE64 (11 | 0x0200) /* filter */
766
+ #define BIO_TYPE_CONNECT (12 | 0x0400 | 0x0100) /* socket - connect */
767
+ #define BIO_TYPE_ACCEPT (13 | 0x0400 | 0x0100) /* socket for accept */
768
+ #define BIO_TYPE_PROXY_CLIENT (14 | 0x0200) /* client proxy BIO */
769
+ #define BIO_TYPE_PROXY_SERVER (15 | 0x0200) /* server proxy BIO */
770
+ #define BIO_TYPE_NBIO_TEST (16 | 0x0200) /* server proxy BIO */
771
+ #define BIO_TYPE_NULL_FILTER (17 | 0x0200)
772
+ #define BIO_TYPE_BER (18 | 0x0200) /* BER -> bin filter */
773
+ #define BIO_TYPE_BIO (19 | 0x0400) /* (half a) BIO pair */
774
+ #define BIO_TYPE_LINEBUFFER (20 | 0x0200) /* filter */
775
+ #define BIO_TYPE_DGRAM (21 | 0x0400 | 0x0100)
776
+ #define BIO_TYPE_ASN1 (22 | 0x0200) /* filter */
777
+ #define BIO_TYPE_COMP (23 | 0x0200) /* filter */
778
+
779
+ #define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */
780
+ #define BIO_TYPE_FILTER 0x0200
781
+ #define BIO_TYPE_SOURCE_SINK 0x0400
782
+
783
+ struct bio_method_st {
784
+ int type;
785
+ const char *name;
786
+ int (*bwrite)(BIO *, const char *, int);
787
+ int (*bread)(BIO *, char *, int);
788
+ /* TODO(fork): remove bputs. */
789
+ int (*bputs)(BIO *, const char *);
790
+ int (*bgets)(BIO *, char *, int);
791
+ long (*ctrl)(BIO *, int, long, void *);
792
+ int (*create)(BIO *);
793
+ int (*destroy)(BIO *);
794
+ long (*callback_ctrl)(BIO *, int, bio_info_cb);
795
+ };
796
+
797
+ struct bio_st {
798
+ const BIO_METHOD *method;
799
+ /* bio, mode, argp, argi, argl, ret */
800
+ long (*callback)(BIO *, int, const char *, int, long, long);
801
+ char *cb_arg; /* first argument for the callback */
802
+
803
+ /* init is non-zero if this |BIO| has been initialised. */
804
+ int init;
805
+ /* shutdown is often used by specific |BIO_METHOD|s to determine whether
806
+ * they own some underlying resource. This flag can often by controlled by
807
+ * |BIO_set_close|. For example, whether an fd BIO closes the underlying fd
808
+ * when it, itself, is closed. */
809
+ int shutdown;
810
+ int flags;
811
+ int retry_reason;
812
+ /* num is a BIO-specific value. For example, in fd BIOs it's used to store a
813
+ * file descriptor. */
814
+ int num;
815
+ CRYPTO_refcount_t references;
816
+ void *ptr;
817
+ /* next_bio points to the next |BIO| in a chain. This |BIO| owns a reference
818
+ * to |next_bio|. */
819
+ BIO *next_bio; /* used by filter BIOs */
820
+ size_t num_read, num_write;
821
+ };
822
+
823
+ #define BIO_C_SET_CONNECT 100
824
+ #define BIO_C_DO_STATE_MACHINE 101
825
+ #define BIO_C_SET_NBIO 102
826
+ #define BIO_C_SET_PROXY_PARAM 103
827
+ #define BIO_C_SET_FD 104
828
+ #define BIO_C_GET_FD 105
829
+ #define BIO_C_SET_FILE_PTR 106
830
+ #define BIO_C_GET_FILE_PTR 107
831
+ #define BIO_C_SET_FILENAME 108
832
+ #define BIO_C_SET_SSL 109
833
+ #define BIO_C_GET_SSL 110
834
+ #define BIO_C_SET_MD 111
835
+ #define BIO_C_GET_MD 112
836
+ #define BIO_C_GET_CIPHER_STATUS 113
837
+ #define BIO_C_SET_BUF_MEM 114
838
+ #define BIO_C_GET_BUF_MEM_PTR 115
839
+ #define BIO_C_GET_BUFF_NUM_LINES 116
840
+ #define BIO_C_SET_BUFF_SIZE 117
841
+ #define BIO_C_SET_ACCEPT 118
842
+ #define BIO_C_SSL_MODE 119
843
+ #define BIO_C_GET_MD_CTX 120
844
+ #define BIO_C_GET_PROXY_PARAM 121
845
+ #define BIO_C_SET_BUFF_READ_DATA 122 /* data to read first */
846
+ #define BIO_C_GET_ACCEPT 124
847
+ #define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125
848
+ #define BIO_C_GET_SSL_NUM_RENEGOTIATES 126
849
+ #define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127
850
+ #define BIO_C_FILE_SEEK 128
851
+ #define BIO_C_GET_CIPHER_CTX 129
852
+ #define BIO_C_SET_BUF_MEM_EOF_RETURN 130/*return end of input value*/
853
+ #define BIO_C_SET_BIND_MODE 131
854
+ #define BIO_C_GET_BIND_MODE 132
855
+ #define BIO_C_FILE_TELL 133
856
+ #define BIO_C_GET_SOCKS 134
857
+ #define BIO_C_SET_SOCKS 135
858
+
859
+ #define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */
860
+ #define BIO_C_GET_WRITE_BUF_SIZE 137
861
+ #define BIO_C_GET_WRITE_GUARANTEE 140
862
+ #define BIO_C_GET_READ_REQUEST 141
863
+ #define BIO_C_SHUTDOWN_WR 142
864
+ #define BIO_C_NREAD0 143
865
+ #define BIO_C_NREAD 144
866
+ #define BIO_C_NWRITE0 145
867
+ #define BIO_C_NWRITE 146
868
+ #define BIO_C_RESET_READ_REQUEST 147
869
+ #define BIO_C_SET_MD_CTX 148
870
+
871
+ #define BIO_C_SET_PREFIX 149
872
+ #define BIO_C_GET_PREFIX 150
873
+ #define BIO_C_SET_SUFFIX 151
874
+ #define BIO_C_GET_SUFFIX 152
875
+
876
+ #define BIO_C_SET_EX_ARG 153
877
+ #define BIO_C_GET_EX_ARG 154
878
+
879
+
880
+ #if defined(__cplusplus)
881
+ } /* extern C */
882
+ #endif
883
+
884
+ #define BIO_R_BAD_FOPEN_MODE 100
885
+ #define BIO_R_BROKEN_PIPE 101
886
+ #define BIO_R_CONNECT_ERROR 102
887
+ #define BIO_R_ERROR_SETTING_NBIO 103
888
+ #define BIO_R_INVALID_ARGUMENT 104
889
+ #define BIO_R_IN_USE 105
890
+ #define BIO_R_KEEPALIVE 106
891
+ #define BIO_R_NBIO_CONNECT_ERROR 107
892
+ #define BIO_R_NO_HOSTNAME_SPECIFIED 108
893
+ #define BIO_R_NO_PORT_SPECIFIED 109
894
+ #define BIO_R_NO_SUCH_FILE 110
895
+ #define BIO_R_NULL_PARAMETER 111
896
+ #define BIO_R_SYS_LIB 112
897
+ #define BIO_R_UNABLE_TO_CREATE_SOCKET 113
898
+ #define BIO_R_UNINITIALIZED 114
899
+ #define BIO_R_UNSUPPORTED_METHOD 115
900
+ #define BIO_R_WRITE_TO_READ_ONLY_BIO 116
901
+
902
+ #endif /* OPENSSL_HEADER_BIO_H */