grpc 1.9.1 → 1.10.0.pre1

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 (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -54,17 +54,21 @@
54
54
  #define OPENSSL_HEADER_BASE_H
55
55
 
56
56
 
57
- /* This file should be the first included by all BoringSSL headers. */
57
+ // This file should be the first included by all BoringSSL headers.
58
58
 
59
59
  #include <stddef.h>
60
60
  #include <stdint.h>
61
61
  #include <sys/types.h>
62
62
 
63
63
  #if defined(__MINGW32__)
64
- /* stdio.h is needed on MinGW for __MINGW_PRINTF_FORMAT. */
64
+ // stdio.h is needed on MinGW for __MINGW_PRINTF_FORMAT.
65
65
  #include <stdio.h>
66
66
  #endif
67
67
 
68
+ // Include a BoringSSL-only header so consumers including this header without
69
+ // setting up include paths do not accidentally pick up the system
70
+ // opensslconf.h.
71
+ #include <openssl/is_boringssl.h>
68
72
  #include <openssl/opensslconf.h>
69
73
 
70
74
  #if defined(BORINGSSL_PREFIX)
@@ -103,6 +107,10 @@ extern "C" {
103
107
  #elif defined(__myriad2__)
104
108
  #define OPENSSL_32_BIT
105
109
  #else
110
+ // Note BoringSSL only supports standard 32-bit and 64-bit two's-complement,
111
+ // little-endian architectures. Functions will not produce the correct answer
112
+ // on other systems. Run the crypto_test binary, notably
113
+ // crypto/compiler_test.cc, before adding a new architecture.
106
114
  #error "Unknown target CPU"
107
115
  #endif
108
116
 
@@ -127,21 +135,23 @@ extern "C" {
127
135
  #define OPENSSL_NO_THREADS
128
136
  #endif
129
137
 
138
+ #if !defined(OPENSSL_NO_THREADS)
139
+ #define OPENSSL_THREADS
140
+ #endif
141
+
130
142
  #define OPENSSL_IS_BORINGSSL
131
- #define BORINGSSL_201512
132
- #define BORINGSSL_201603
133
- #define OPENSSL_VERSION_NUMBER 0x100020af
143
+ #define OPENSSL_VERSION_NUMBER 0x1010007f
134
144
  #define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
135
145
 
136
- /* BORINGSSL_API_VERSION is a positive integer that increments as BoringSSL
137
- * changes over time. The value itself is not meaningful. It will be incremented
138
- * whenever is convenient to coordinate an API change with consumers. This will
139
- * not denote any special point in development.
140
- *
141
- * A consumer may use this symbol in the preprocessor to temporarily build
142
- * against multiple revisions of BoringSSL at the same time. It is not
143
- * recommended to do so for longer than is necessary. */
144
- #define BORINGSSL_API_VERSION 2
146
+ // BORINGSSL_API_VERSION is a positive integer that increments as BoringSSL
147
+ // changes over time. The value itself is not meaningful. It will be incremented
148
+ // whenever is convenient to coordinate an API change with consumers. This will
149
+ // not denote any special point in development.
150
+ //
151
+ // A consumer may use this symbol in the preprocessor to temporarily build
152
+ // against multiple revisions of BoringSSL at the same time. It is not
153
+ // recommended to do so for longer than is necessary.
154
+ #define BORINGSSL_API_VERSION 4
145
155
 
146
156
  #if defined(BORINGSSL_SHARED_LIBRARY)
147
157
 
@@ -153,7 +163,7 @@ extern "C" {
153
163
  #define OPENSSL_EXPORT __declspec(dllimport)
154
164
  #endif
155
165
 
156
- #else /* defined(OPENSSL_WINDOWS) */
166
+ #else // defined(OPENSSL_WINDOWS)
157
167
 
158
168
  #if defined(BORINGSSL_IMPLEMENTATION)
159
169
  #define OPENSSL_EXPORT __attribute__((visibility("default")))
@@ -161,19 +171,19 @@ extern "C" {
161
171
  #define OPENSSL_EXPORT
162
172
  #endif
163
173
 
164
- #endif /* defined(OPENSSL_WINDOWS) */
174
+ #endif // defined(OPENSSL_WINDOWS)
165
175
 
166
- #else /* defined(BORINGSSL_SHARED_LIBRARY) */
176
+ #else // defined(BORINGSSL_SHARED_LIBRARY)
167
177
 
168
178
  #define OPENSSL_EXPORT
169
179
 
170
- #endif /* defined(BORINGSSL_SHARED_LIBRARY) */
180
+ #endif // defined(BORINGSSL_SHARED_LIBRARY)
171
181
 
172
182
 
173
- #if defined(__GNUC__)
174
- /* MinGW has two different printf implementations. Ensure the format macro
175
- * matches the selected implementation. See
176
- * https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/. */
183
+ #if defined(__GNUC__) || defined(__clang__)
184
+ // MinGW has two different printf implementations. Ensure the format macro
185
+ // matches the selected implementation. See
186
+ // https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/.
177
187
  #if defined(__MINGW_PRINTF_FORMAT)
178
188
  #define OPENSSL_PRINTF_FORMAT_FUNC(string_index, first_to_check) \
179
189
  __attribute__( \
@@ -186,19 +196,47 @@ extern "C" {
186
196
  #define OPENSSL_PRINTF_FORMAT_FUNC(string_index, first_to_check)
187
197
  #endif
188
198
 
189
- /* OPENSSL_MSVC_PRAGMA emits a pragma on MSVC and nothing on other compilers. */
199
+ // OPENSSL_MSVC_PRAGMA emits a pragma on MSVC and nothing on other compilers.
190
200
  #if defined(_MSC_VER)
191
201
  #define OPENSSL_MSVC_PRAGMA(arg) __pragma(arg)
192
202
  #else
193
203
  #define OPENSSL_MSVC_PRAGMA(arg)
194
204
  #endif
195
205
 
206
+ #if defined(__GNUC__) || defined(__clang__)
207
+ #define OPENSSL_UNUSED __attribute__((unused))
208
+ #else
209
+ #define OPENSSL_UNUSED
210
+ #endif
211
+
196
212
  #if defined(BORINGSSL_UNSAFE_FUZZER_MODE) && \
197
213
  !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE)
198
214
  #define BORINGSSL_UNSAFE_DETERMINISTIC_MODE
199
215
  #endif
200
216
 
201
- /* CRYPTO_THREADID is a dummy value. */
217
+ #if defined(__has_feature)
218
+ #if __has_feature(address_sanitizer)
219
+ #define OPENSSL_ASAN
220
+ #endif
221
+ #if __has_feature(memory_sanitizer)
222
+ #define OPENSSL_MSAN
223
+ #endif
224
+ #endif
225
+
226
+ // Have a generic fall-through for different versions of C/C++.
227
+ #if defined(__cplusplus) && __cplusplus >= 201703L
228
+ #define OPENSSL_FALLTHROUGH [[fallthrough]]
229
+ #elif defined(__cplusplus) && __cplusplus >= 201103L && defined(__clang__)
230
+ #define OPENSSL_FALLTHROUGH [[clang::fallthrough]]
231
+ #elif defined(__cplusplus) && __cplusplus >= 201103L && __GNUC__ >= 7
232
+ #define OPENSSL_FALLTHROUGH [[gnu::fallthrough]]
233
+ #elif __GNUC__ >= 7 // gcc 7
234
+ #define OPENSSL_FALLTHROUGH __attribute__ ((fallthrough))
235
+ #else // C++11 on gcc 6, and all other cases
236
+ #define OPENSSL_FALLTHROUGH
237
+ #endif
238
+
239
+ // CRYPTO_THREADID is a dummy value.
202
240
  typedef int CRYPTO_THREADID;
203
241
 
204
242
  typedef int ASN1_BOOLEAN;
@@ -223,14 +261,12 @@ typedef struct asn1_string_st ASN1_UTCTIME;
223
261
  typedef struct asn1_string_st ASN1_UTF8STRING;
224
262
  typedef struct asn1_string_st ASN1_VISIBLESTRING;
225
263
  typedef struct asn1_type_st ASN1_TYPE;
226
-
227
264
  typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID;
228
265
  typedef struct BASIC_CONSTRAINTS_st BASIC_CONSTRAINTS;
229
266
  typedef struct DIST_POINT_st DIST_POINT;
230
267
  typedef struct DSA_SIG_st DSA_SIG;
231
268
  typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT;
232
269
  typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS;
233
- typedef struct Netscape_certificate_sequence NETSCAPE_CERT_SEQUENCE;
234
270
  typedef struct Netscape_spkac_st NETSCAPE_SPKAC;
235
271
  typedef struct Netscape_spki_st NETSCAPE_SPKI;
236
272
  typedef struct RIPEMD160state_st RIPEMD160_CTX;
@@ -246,7 +282,6 @@ typedef struct X509_extension_st X509_EXTENSION;
246
282
  typedef struct X509_info_st X509_INFO;
247
283
  typedef struct X509_name_entry_st X509_NAME_ENTRY;
248
284
  typedef struct X509_name_st X509_NAME;
249
- typedef struct X509_objects_st X509_OBJECTS;
250
285
  typedef struct X509_pubkey_st X509_PUBKEY;
251
286
  typedef struct X509_req_info_st X509_REQ_INFO;
252
287
  typedef struct X509_req_st X509_REQ;
@@ -287,6 +322,7 @@ typedef struct evp_pkey_st EVP_PKEY;
287
322
  typedef struct hmac_ctx_st HMAC_CTX;
288
323
  typedef struct md4_state_st MD4_CTX;
289
324
  typedef struct md5_state_st MD5_CTX;
325
+ typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS;
290
326
  typedef struct pkcs12_st PKCS12;
291
327
  typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO;
292
328
  typedef struct private_key_st X509_PKEY;
@@ -301,15 +337,15 @@ typedef struct spake2_ctx_st SPAKE2_CTX;
301
337
  typedef struct srtp_protection_profile_st SRTP_PROTECTION_PROFILE;
302
338
  typedef struct ssl_cipher_st SSL_CIPHER;
303
339
  typedef struct ssl_ctx_st SSL_CTX;
304
- typedef struct ssl_custom_extension SSL_CUSTOM_EXTENSION;
305
340
  typedef struct ssl_method_st SSL_METHOD;
341
+ typedef struct ssl_private_key_method_st SSL_PRIVATE_KEY_METHOD;
306
342
  typedef struct ssl_session_st SSL_SESSION;
307
343
  typedef struct ssl_st SSL;
344
+ typedef struct ssl_ticket_aead_method_st SSL_TICKET_AEAD_METHOD;
308
345
  typedef struct st_ERR_FNS ERR_FNS;
309
346
  typedef struct v3_ext_ctx X509V3_CTX;
310
347
  typedef struct x509_attributes_st X509_ATTRIBUTE;
311
348
  typedef struct x509_cert_aux_st X509_CERT_AUX;
312
- typedef struct x509_cert_pair_st X509_CERT_PAIR;
313
349
  typedef struct x509_cinf_st X509_CINF;
314
350
  typedef struct x509_crl_method_st X509_CRL_METHOD;
315
351
  typedef struct x509_lookup_st X509_LOOKUP;
@@ -323,7 +359,10 @@ typedef void *OPENSSL_BLOCK;
323
359
 
324
360
 
325
361
  #if defined(__cplusplus)
326
- } /* extern C */
362
+ } // extern C
363
+ #elif !defined(BORINGSSL_NO_CXX)
364
+ #define BORINGSSL_NO_CXX
365
+ #endif
327
366
 
328
367
  // MSVC doesn't set __cplusplus to 201103 to indicate C++11 support (see
329
368
  // https://connect.microsoft.com/VisualStudio/feedback/details/763051/a-value-of-predefined-macro-cplusplus-is-still-199711l)
@@ -348,19 +387,18 @@ extern "C++" {
348
387
  #if defined(BORINGSSL_NO_CXX)
349
388
 
350
389
  #define BORINGSSL_MAKE_DELETER(type, deleter)
351
- #define BORINGSSL_MAKE_STACK_DELETER(type, deleter)
352
390
 
353
391
  #else
354
392
 
355
393
  extern "C++" {
356
394
 
357
- #include <memory>
358
-
359
395
  namespace bssl {
360
396
 
361
397
  namespace internal {
362
398
 
363
- template <typename T>
399
+ // The Enable parameter is ignored and only exists so specializations can use
400
+ // SFINAE.
401
+ template <typename T, typename Enable = void>
364
402
  struct DeleterImpl {};
365
403
 
366
404
  template <typename T>
@@ -391,6 +429,9 @@ class StackAllocated {
391
429
  T *get() { return &ctx_; }
392
430
  const T *get() const { return &ctx_; }
393
431
 
432
+ T *operator->() { return &ctx_; }
433
+ const T *operator->() const { return &ctx_; }
434
+
394
435
  void Reset() {
395
436
  cleanup(&ctx_);
396
437
  init(&ctx_);
@@ -410,30 +451,16 @@ class StackAllocated {
410
451
  }; \
411
452
  }
412
453
 
413
- // This makes a unique_ptr to STACK_OF(type) that owns all elements on the
414
- // stack, i.e. it uses sk_pop_free() to clean up.
415
- #define BORINGSSL_MAKE_STACK_DELETER(type, deleter) \
416
- namespace internal { \
417
- template <> \
418
- struct DeleterImpl<STACK_OF(type)> { \
419
- static void Free(STACK_OF(type) *ptr) { \
420
- sk_##type##_pop_free(ptr, deleter); \
421
- } \
422
- }; \
423
- }
424
-
425
454
  // Holds ownership of heap-allocated BoringSSL structures. Sample usage:
426
- // bssl::UniquePtr<BIO> rsa(RSA_new());
455
+ // bssl::UniquePtr<RSA> rsa(RSA_new());
427
456
  // bssl::UniquePtr<BIO> bio(BIO_new(BIO_s_mem()));
428
457
  template <typename T>
429
458
  using UniquePtr = std::unique_ptr<T, internal::Deleter<T>>;
430
459
 
431
460
  } // namespace bssl
432
461
 
433
- } /* extern C++ */
462
+ } // extern C++
434
463
 
435
464
  #endif // !BORINGSSL_NO_CXX
436
465
 
437
- #endif
438
-
439
- #endif /* OPENSSL_HEADER_BASE_H */
466
+ #endif // OPENSSL_HEADER_BASE_H
@@ -64,124 +64,124 @@ extern "C" {
64
64
  #endif
65
65
 
66
66
 
67
- /* base64 functions.
68
- *
69
- * For historical reasons, these functions have the EVP_ prefix but just do
70
- * base64 encoding and decoding. */
67
+ // base64 functions.
68
+ //
69
+ // For historical reasons, these functions have the EVP_ prefix but just do
70
+ // base64 encoding and decoding.
71
71
 
72
72
 
73
- /* Encoding */
73
+ // Encoding
74
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. */
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
78
  OPENSSL_EXPORT size_t EVP_EncodeBlock(uint8_t *dst, const uint8_t *src,
79
79
  size_t src_len);
80
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. */
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
85
  OPENSSL_EXPORT int EVP_EncodedLength(size_t *out_len, size_t len);
86
86
 
87
87
 
88
- /* Decoding */
88
+ // Decoding
89
89
 
90
- /* EVP_DecodedLength sets |*out_len| to the maximum number of bytes that will
91
- * be needed to call |EVP_DecodeBase64| on an input of length |len|. It returns
92
- * one on success or zero if |len| is not a valid length for a base64-encoded
93
- * string. */
90
+ // EVP_DecodedLength sets |*out_len| to the maximum number of bytes that will
91
+ // be needed to call |EVP_DecodeBase64| on an input of length |len|. It returns
92
+ // one on success or zero if |len| is not a valid length for a base64-encoded
93
+ // string.
94
94
  OPENSSL_EXPORT int EVP_DecodedLength(size_t *out_len, size_t len);
95
95
 
96
- /* EVP_DecodeBase64 decodes |in_len| bytes from base64 and writes
97
- * |*out_len| bytes to |out|. |max_out| is the size of the output
98
- * buffer. If it is not enough for the maximum output size, the
99
- * operation fails. It returns one on success or zero on error. */
96
+ // EVP_DecodeBase64 decodes |in_len| bytes from base64 and writes
97
+ // |*out_len| bytes to |out|. |max_out| is the size of the output
98
+ // buffer. If it is not enough for the maximum output size, the
99
+ // operation fails. It returns one on success or zero on error.
100
100
  OPENSSL_EXPORT int EVP_DecodeBase64(uint8_t *out, size_t *out_len,
101
101
  size_t max_out, const uint8_t *in,
102
102
  size_t in_len);
103
103
 
104
104
 
105
- /* Deprecated functions.
106
- *
107
- * OpenSSL provides a streaming base64 implementation, however its behavior is
108
- * very specific to PEM. It is also very lenient of invalid input. Use of any of
109
- * these functions is thus deprecated. */
105
+ // Deprecated functions.
106
+ //
107
+ // OpenSSL provides a streaming base64 implementation, however its behavior is
108
+ // very specific to PEM. It is also very lenient of invalid input. Use of any of
109
+ // these functions is thus deprecated.
110
110
 
111
- /* EVP_EncodeInit initialises |*ctx|, which is typically stack
112
- * allocated, for an encoding operation.
113
- *
114
- * NOTE: The encoding operation breaks its output with newlines every
115
- * 64 characters of output (48 characters of input). Use
116
- * EVP_EncodeBlock to encode raw base64. */
111
+ // EVP_EncodeInit initialises |*ctx|, which is typically stack
112
+ // allocated, for an encoding operation.
113
+ //
114
+ // NOTE: The encoding operation breaks its output with newlines every
115
+ // 64 characters of output (48 characters of input). Use
116
+ // EVP_EncodeBlock to encode raw base64.
117
117
  OPENSSL_EXPORT void EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
118
118
 
119
- /* EVP_EncodeUpdate encodes |in_len| bytes from |in| and writes an encoded
120
- * version of them to |out| and sets |*out_len| to the number of bytes written.
121
- * Some state may be contained in |ctx| so |EVP_EncodeFinal| must be used to
122
- * flush it before using the encoded data. */
119
+ // EVP_EncodeUpdate encodes |in_len| bytes from |in| and writes an encoded
120
+ // version of them to |out| and sets |*out_len| to the number of bytes written.
121
+ // Some state may be contained in |ctx| so |EVP_EncodeFinal| must be used to
122
+ // flush it before using the encoded data.
123
123
  OPENSSL_EXPORT void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, uint8_t *out,
124
124
  int *out_len, const uint8_t *in,
125
125
  size_t in_len);
126
126
 
127
- /* EVP_EncodeFinal flushes any remaining output bytes from |ctx| to |out| and
128
- * sets |*out_len| to the number of bytes written. */
127
+ // EVP_EncodeFinal flushes any remaining output bytes from |ctx| to |out| and
128
+ // sets |*out_len| to the number of bytes written.
129
129
  OPENSSL_EXPORT void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, uint8_t *out,
130
130
  int *out_len);
131
131
 
132
- /* EVP_DecodeInit initialises |*ctx|, which is typically stack allocated, for
133
- * a decoding operation.
134
- *
135
- * TODO(davidben): This isn't a straight-up base64 decode either. Document
136
- * and/or fix exactly what's going on here; maximum line length and such. */
132
+ // EVP_DecodeInit initialises |*ctx|, which is typically stack allocated, for
133
+ // a decoding operation.
134
+ //
135
+ // TODO(davidben): This isn't a straight-up base64 decode either. Document
136
+ // and/or fix exactly what's going on here; maximum line length and such.
137
137
  OPENSSL_EXPORT void EVP_DecodeInit(EVP_ENCODE_CTX *ctx);
138
138
 
139
- /* EVP_DecodeUpdate decodes |in_len| bytes from |in| and writes the decoded
140
- * data to |out| and sets |*out_len| to the number of bytes written. Some state
141
- * may be contained in |ctx| so |EVP_DecodeFinal| must be used to flush it
142
- * before using the encoded data.
143
- *
144
- * It returns -1 on error, one if a full line of input was processed and zero
145
- * if the line was short (i.e. it was the last line). */
139
+ // EVP_DecodeUpdate decodes |in_len| bytes from |in| and writes the decoded
140
+ // data to |out| and sets |*out_len| to the number of bytes written. Some state
141
+ // may be contained in |ctx| so |EVP_DecodeFinal| must be used to flush it
142
+ // before using the encoded data.
143
+ //
144
+ // It returns -1 on error, one if a full line of input was processed and zero
145
+ // if the line was short (i.e. it was the last line).
146
146
  OPENSSL_EXPORT int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, uint8_t *out,
147
147
  int *out_len, const uint8_t *in,
148
148
  size_t in_len);
149
149
 
150
- /* EVP_DecodeFinal flushes any remaining output bytes from |ctx| to |out| and
151
- * sets |*out_len| to the number of bytes written. It returns one on success
152
- * and minus one on error. */
150
+ // EVP_DecodeFinal flushes any remaining output bytes from |ctx| to |out| and
151
+ // sets |*out_len| to the number of bytes written. It returns one on success
152
+ // and minus one on error.
153
153
  OPENSSL_EXPORT int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, uint8_t *out,
154
154
  int *out_len);
155
155
 
156
- /* EVP_DecodeBlock encodes |src_len| bytes from |src| and writes the result to
157
- * |dst|. It returns the number of bytes written or -1 on error.
158
- *
159
- * WARNING: EVP_DecodeBlock's return value does not take padding into
160
- * account. It also strips leading whitespace and trailing
161
- * whitespace and minuses. */
156
+ // EVP_DecodeBlock encodes |src_len| bytes from |src| and writes the result to
157
+ // |dst|. It returns the number of bytes written or -1 on error.
158
+ //
159
+ // WARNING: EVP_DecodeBlock's return value does not take padding into
160
+ // account. It also strips leading whitespace and trailing
161
+ // whitespace and minuses.
162
162
  OPENSSL_EXPORT int EVP_DecodeBlock(uint8_t *dst, const uint8_t *src,
163
163
  size_t src_len);
164
164
 
165
165
 
166
166
  struct evp_encode_ctx_st {
167
- /* data_used indicates the number of bytes of |data| that are valid. When
168
- * encoding, |data| will be filled and encoded as a lump. When decoding, only
169
- * the first four bytes of |data| will be used. */
167
+ // data_used indicates the number of bytes of |data| that are valid. When
168
+ // encoding, |data| will be filled and encoded as a lump. When decoding, only
169
+ // the first four bytes of |data| will be used.
170
170
  unsigned data_used;
171
171
  uint8_t data[48];
172
172
 
173
- /* eof_seen indicates that the end of the base64 data has been seen when
174
- * decoding. Only whitespace can follow. */
173
+ // eof_seen indicates that the end of the base64 data has been seen when
174
+ // decoding. Only whitespace can follow.
175
175
  char eof_seen;
176
176
 
177
- /* error_encountered indicates that invalid base64 data was found. This will
178
- * cause all future calls to fail. */
177
+ // error_encountered indicates that invalid base64 data was found. This will
178
+ // cause all future calls to fail.
179
179
  char error_encountered;
180
180
  };
181
181
 
182
182
 
183
183
  #if defined(__cplusplus)
184
- } /* extern C */
184
+ } // extern C
185
185
  #endif
186
186
 
187
- #endif /* OPENSSL_HEADER_BASE64_H */
187
+ #endif // OPENSSL_HEADER_BASE64_H