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
@@ -36,8 +36,7 @@
36
36
  #include <grpc/support/alloc.h>
37
37
  #include <grpc/support/log.h>
38
38
  #include <grpc/support/sync.h>
39
- #include <grpc/support/thd.h>
40
- #include <grpc/support/useful.h>
39
+ #include <grpc/support/thd_id.h>
41
40
 
42
41
  extern "C" {
43
42
  #include <openssl/bio.h>
@@ -96,8 +95,7 @@ struct tsi_ssl_server_handshaker_factory {
96
95
  typedef struct {
97
96
  tsi_handshaker base;
98
97
  SSL* ssl;
99
- BIO* into_ssl;
100
- BIO* from_ssl;
98
+ BIO* network_io;
101
99
  tsi_result result;
102
100
  tsi_ssl_handshaker_factory* factory_ref;
103
101
  } tsi_ssl_handshaker;
@@ -105,8 +103,7 @@ typedef struct {
105
103
  typedef struct {
106
104
  tsi_frame_protector base;
107
105
  SSL* ssl;
108
- BIO* into_ssl;
109
- BIO* from_ssl;
106
+ BIO* network_io;
110
107
  unsigned char* buffer;
111
108
  size_t buffer_size;
112
109
  size_t buffer_offset;
@@ -129,7 +126,7 @@ static void openssl_locking_cb(int mode, int type, const char* file, int line) {
129
126
  }
130
127
 
131
128
  static unsigned long openssl_thread_id_cb(void) {
132
- return (unsigned long)gpr_thd_currentid();
129
+ return static_cast<unsigned long>(gpr_thd_currentid());
133
130
  }
134
131
 
135
132
  static void init_openssl(void) {
@@ -140,7 +137,8 @@ static void init_openssl(void) {
140
137
  OpenSSL_add_all_algorithms();
141
138
  num_locks = CRYPTO_num_locks();
142
139
  GPR_ASSERT(num_locks > 0);
143
- openssl_mutexes = (gpr_mu*)gpr_malloc((size_t)num_locks * sizeof(gpr_mu));
140
+ openssl_mutexes = static_cast<gpr_mu*>(
141
+ gpr_malloc(static_cast<size_t>(num_locks) * sizeof(gpr_mu)));
144
142
  for (i = 0; i < CRYPTO_num_locks(); i++) {
145
143
  gpr_mu_init(&openssl_mutexes[i]);
146
144
  }
@@ -257,7 +255,7 @@ static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
257
255
  gpr_log(GPR_ERROR, "Could not extract utf8 from asn1 string.");
258
256
  return TSI_OUT_OF_RESOURCES;
259
257
  }
260
- *utf8_size = (size_t)utf8_returned_size;
258
+ *utf8_size = static_cast<size_t>(utf8_returned_size);
261
259
  return TSI_OK;
262
260
  }
263
261
 
@@ -278,8 +276,8 @@ static tsi_result peer_property_from_x509_common_name(
278
276
  }
279
277
  result = tsi_construct_string_peer_property(
280
278
  TSI_X509_SUBJECT_COMMON_NAME_PEER_PROPERTY,
281
- common_name == nullptr ? "" : (const char*)common_name, common_name_size,
282
- property);
279
+ common_name == nullptr ? "" : reinterpret_cast<const char*>(common_name),
280
+ common_name_size, property);
283
281
  OPENSSL_free(common_name);
284
282
  return result;
285
283
  }
@@ -298,7 +296,8 @@ static tsi_result add_pem_certificate(X509* cert, tsi_peer_property* property) {
298
296
  return TSI_INTERNAL_ERROR;
299
297
  }
300
298
  tsi_result result = tsi_construct_string_peer_property(
301
- TSI_X509_PEM_CERT_PROPERTY, (const char*)contents, (size_t)len, property);
299
+ TSI_X509_PEM_CERT_PROPERTY, (const char*)contents,
300
+ static_cast<size_t>(len), property);
302
301
  BIO_free(bio);
303
302
  return result;
304
303
  }
@@ -327,8 +326,9 @@ static tsi_result add_subject_alt_names_properties_to_peer(
327
326
  break;
328
327
  }
329
328
  result = tsi_construct_string_peer_property(
330
- TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY, (const char*)name,
331
- (size_t)name_size, &peer->properties[peer->property_count++]);
329
+ TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY,
330
+ reinterpret_cast<const char*>(name), static_cast<size_t>(name_size),
331
+ &peer->properties[peer->property_count++]);
332
332
  OPENSSL_free(name);
333
333
  } else if (subject_alt_name->type == GEN_IPADD) {
334
334
  char ntop_buf[INET6_ADDRSTRLEN];
@@ -364,17 +364,18 @@ static tsi_result add_subject_alt_names_properties_to_peer(
364
364
  static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
365
365
  tsi_peer* peer) {
366
366
  /* TODO(jboeuf): Maybe add more properties. */
367
- GENERAL_NAMES* subject_alt_names = (GENERAL_NAMES*)X509_get_ext_d2i(
368
- cert, NID_subject_alt_name, nullptr, nullptr);
369
- int subject_alt_name_count = (subject_alt_names != nullptr)
370
- ? (int)sk_GENERAL_NAME_num(subject_alt_names)
371
- : 0;
367
+ GENERAL_NAMES* subject_alt_names = static_cast<GENERAL_NAMES*>(
368
+ X509_get_ext_d2i(cert, NID_subject_alt_name, nullptr, nullptr));
369
+ int subject_alt_name_count =
370
+ (subject_alt_names != nullptr)
371
+ ? static_cast<int>(sk_GENERAL_NAME_num(subject_alt_names))
372
+ : 0;
372
373
  size_t property_count;
373
374
  tsi_result result;
374
375
  GPR_ASSERT(subject_alt_name_count >= 0);
375
- property_count = (include_certificate_type ? (size_t)1 : 0) +
376
+ property_count = (include_certificate_type ? static_cast<size_t>(1) : 0) +
376
377
  2 /* common name, certificate */ +
377
- (size_t)subject_alt_name_count;
378
+ static_cast<size_t>(subject_alt_name_count);
378
379
  result = tsi_construct_peer(property_count, peer);
379
380
  if (result != TSI_OK) return result;
380
381
  do {
@@ -394,7 +395,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
394
395
 
395
396
  if (subject_alt_name_count != 0) {
396
397
  result = add_subject_alt_names_properties_to_peer(
397
- peer, subject_alt_names, (size_t)subject_alt_name_count);
398
+ peer, subject_alt_names, static_cast<size_t>(subject_alt_name_count));
398
399
  if (result != TSI_OK) break;
399
400
  }
400
401
  } while (0);
@@ -411,7 +412,7 @@ static void log_ssl_error_stack(void) {
411
412
  unsigned long err;
412
413
  while ((err = ERR_get_error()) != 0) {
413
414
  char details[256];
414
- ERR_error_string_n((uint32_t)err, details, sizeof(details));
415
+ ERR_error_string_n(static_cast<uint32_t>(err), details, sizeof(details));
415
416
  gpr_log(GPR_ERROR, "%s", details);
416
417
  }
417
418
  }
@@ -421,8 +422,8 @@ static tsi_result do_ssl_read(SSL* ssl, unsigned char* unprotected_bytes,
421
422
  size_t* unprotected_bytes_size) {
422
423
  int read_from_ssl;
423
424
  GPR_ASSERT(*unprotected_bytes_size <= INT_MAX);
424
- read_from_ssl =
425
- SSL_read(ssl, unprotected_bytes, (int)*unprotected_bytes_size);
425
+ read_from_ssl = SSL_read(ssl, unprotected_bytes,
426
+ static_cast<int>(*unprotected_bytes_size));
426
427
  if (read_from_ssl <= 0) {
427
428
  read_from_ssl = SSL_get_error(ssl, read_from_ssl);
428
429
  switch (read_from_ssl) {
@@ -445,7 +446,7 @@ static tsi_result do_ssl_read(SSL* ssl, unsigned char* unprotected_bytes,
445
446
  return TSI_PROTOCOL_FAILURE;
446
447
  }
447
448
  }
448
- *unprotected_bytes_size = (size_t)read_from_ssl;
449
+ *unprotected_bytes_size = static_cast<size_t>(read_from_ssl);
449
450
  return TSI_OK;
450
451
  }
451
452
 
@@ -454,8 +455,8 @@ static tsi_result do_ssl_write(SSL* ssl, unsigned char* unprotected_bytes,
454
455
  size_t unprotected_bytes_size) {
455
456
  int ssl_write_result;
456
457
  GPR_ASSERT(unprotected_bytes_size <= INT_MAX);
457
- ssl_write_result =
458
- SSL_write(ssl, unprotected_bytes, (int)unprotected_bytes_size);
458
+ ssl_write_result = SSL_write(ssl, unprotected_bytes,
459
+ static_cast<int>(unprotected_bytes_size));
459
460
  if (ssl_write_result < 0) {
460
461
  ssl_write_result = SSL_get_error(ssl, ssl_write_result);
461
462
  if (ssl_write_result == SSL_ERROR_WANT_READ) {
@@ -479,7 +480,8 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
479
480
  X509* certificate = nullptr;
480
481
  BIO* pem;
481
482
  GPR_ASSERT(pem_cert_chain_size <= INT_MAX);
482
- pem = BIO_new_mem_buf((void*)pem_cert_chain, (int)pem_cert_chain_size);
483
+ pem = BIO_new_mem_buf((void*)pem_cert_chain,
484
+ static_cast<int>(pem_cert_chain_size));
483
485
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
484
486
 
485
487
  do {
@@ -522,7 +524,7 @@ static tsi_result ssl_ctx_use_private_key(SSL_CTX* context, const char* pem_key,
522
524
  EVP_PKEY* private_key = nullptr;
523
525
  BIO* pem;
524
526
  GPR_ASSERT(pem_key_size <= INT_MAX);
525
- pem = BIO_new_mem_buf((void*)pem_key, (int)pem_key_size);
527
+ pem = BIO_new_mem_buf((void*)pem_key, static_cast<int>(pem_key_size));
526
528
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
527
529
  do {
528
530
  private_key = PEM_read_bio_PrivateKey(pem, nullptr, nullptr, (void*)"");
@@ -554,7 +556,7 @@ static tsi_result ssl_ctx_load_verification_certs(SSL_CTX* context,
554
556
  BIO* pem;
555
557
  X509_STORE* root_store;
556
558
  GPR_ASSERT(pem_roots_size <= INT_MAX);
557
- pem = BIO_new_mem_buf((void*)pem_roots, (int)pem_roots_size);
559
+ pem = BIO_new_mem_buf((void*)pem_roots, static_cast<int>(pem_roots_size));
558
560
  root_store = SSL_CTX_get_cert_store(context);
559
561
  if (root_store == nullptr) return TSI_INVALID_ARGUMENT;
560
562
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
@@ -658,7 +660,7 @@ static tsi_result extract_x509_subject_names_from_pem_cert(const char* pem_cert,
658
660
  tsi_result result = TSI_OK;
659
661
  X509* cert = nullptr;
660
662
  BIO* pem;
661
- pem = BIO_new_mem_buf((void*)pem_cert, (int)strlen(pem_cert));
663
+ pem = BIO_new_mem_buf((void*)pem_cert, static_cast<int>(strlen(pem_cert)));
662
664
  if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
663
665
 
664
666
  cert = PEM_read_bio_X509(pem, nullptr, nullptr, (void*)"");
@@ -686,23 +688,25 @@ static tsi_result build_alpn_protocol_name_list(
686
688
  size_t length =
687
689
  alpn_protocols[i] == nullptr ? 0 : strlen(alpn_protocols[i]);
688
690
  if (length == 0 || length > 255) {
689
- gpr_log(GPR_ERROR, "Invalid protocol name length: %d.", (int)length);
691
+ gpr_log(GPR_ERROR, "Invalid protocol name length: %d.",
692
+ static_cast<int>(length));
690
693
  return TSI_INVALID_ARGUMENT;
691
694
  }
692
695
  *protocol_name_list_length += length + 1;
693
696
  }
694
- *protocol_name_list = (unsigned char*)gpr_malloc(*protocol_name_list_length);
697
+ *protocol_name_list =
698
+ static_cast<unsigned char*>(gpr_malloc(*protocol_name_list_length));
695
699
  if (*protocol_name_list == nullptr) return TSI_OUT_OF_RESOURCES;
696
700
  current = *protocol_name_list;
697
701
  for (i = 0; i < num_alpn_protocols; i++) {
698
702
  size_t length = strlen(alpn_protocols[i]);
699
- *(current++) = (uint8_t)length; /* max checked above. */
703
+ *(current++) = static_cast<uint8_t>(length); /* max checked above. */
700
704
  memcpy(current, alpn_protocols[i], length);
701
705
  current += length;
702
706
  }
703
707
  /* Safety check. */
704
708
  if ((current < *protocol_name_list) ||
705
- ((uintptr_t)(current - *protocol_name_list) !=
709
+ (static_cast<uintptr_t>(current - *protocol_name_list) !=
706
710
  *protocol_name_list_length)) {
707
711
  return TSI_INTERNAL_ERROR;
708
712
  }
@@ -724,24 +728,25 @@ static tsi_result ssl_protector_protect(tsi_frame_protector* self,
724
728
  size_t* unprotected_bytes_size,
725
729
  unsigned char* protected_output_frames,
726
730
  size_t* protected_output_frames_size) {
727
- tsi_ssl_frame_protector* impl = (tsi_ssl_frame_protector*)self;
731
+ tsi_ssl_frame_protector* impl =
732
+ reinterpret_cast<tsi_ssl_frame_protector*>(self);
728
733
  int read_from_ssl;
729
734
  size_t available;
730
735
  tsi_result result = TSI_OK;
731
736
 
732
737
  /* First see if we have some pending data in the SSL BIO. */
733
- int pending_in_ssl = (int)BIO_pending(impl->from_ssl);
738
+ int pending_in_ssl = static_cast<int>(BIO_pending(impl->network_io));
734
739
  if (pending_in_ssl > 0) {
735
740
  *unprotected_bytes_size = 0;
736
741
  GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
737
- read_from_ssl = BIO_read(impl->from_ssl, protected_output_frames,
738
- (int)*protected_output_frames_size);
742
+ read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
743
+ static_cast<int>(*protected_output_frames_size));
739
744
  if (read_from_ssl < 0) {
740
745
  gpr_log(GPR_ERROR,
741
746
  "Could not read from BIO even though some data is pending");
742
747
  return TSI_INTERNAL_ERROR;
743
748
  }
744
- *protected_output_frames_size = (size_t)read_from_ssl;
749
+ *protected_output_frames_size = static_cast<size_t>(read_from_ssl);
745
750
  return TSI_OK;
746
751
  }
747
752
 
@@ -762,13 +767,13 @@ static tsi_result ssl_protector_protect(tsi_frame_protector* self,
762
767
  if (result != TSI_OK) return result;
763
768
 
764
769
  GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
765
- read_from_ssl = BIO_read(impl->from_ssl, protected_output_frames,
766
- (int)*protected_output_frames_size);
770
+ read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
771
+ static_cast<int>(*protected_output_frames_size));
767
772
  if (read_from_ssl < 0) {
768
773
  gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
769
774
  return TSI_INTERNAL_ERROR;
770
775
  }
771
- *protected_output_frames_size = (size_t)read_from_ssl;
776
+ *protected_output_frames_size = static_cast<size_t>(read_from_ssl);
772
777
  *unprotected_bytes_size = available;
773
778
  impl->buffer_offset = 0;
774
779
  return TSI_OK;
@@ -778,7 +783,8 @@ static tsi_result ssl_protector_protect_flush(
778
783
  tsi_frame_protector* self, unsigned char* protected_output_frames,
779
784
  size_t* protected_output_frames_size, size_t* still_pending_size) {
780
785
  tsi_result result = TSI_OK;
781
- tsi_ssl_frame_protector* impl = (tsi_ssl_frame_protector*)self;
786
+ tsi_ssl_frame_protector* impl =
787
+ reinterpret_cast<tsi_ssl_frame_protector*>(self);
782
788
  int read_from_ssl = 0;
783
789
  int pending;
784
790
 
@@ -788,22 +794,22 @@ static tsi_result ssl_protector_protect_flush(
788
794
  impl->buffer_offset = 0;
789
795
  }
790
796
 
791
- pending = (int)BIO_pending(impl->from_ssl);
797
+ pending = static_cast<int>(BIO_pending(impl->network_io));
792
798
  GPR_ASSERT(pending >= 0);
793
- *still_pending_size = (size_t)pending;
799
+ *still_pending_size = static_cast<size_t>(pending);
794
800
  if (*still_pending_size == 0) return TSI_OK;
795
801
 
796
802
  GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
797
- read_from_ssl = BIO_read(impl->from_ssl, protected_output_frames,
798
- (int)*protected_output_frames_size);
803
+ read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
804
+ static_cast<int>(*protected_output_frames_size));
799
805
  if (read_from_ssl <= 0) {
800
806
  gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
801
807
  return TSI_INTERNAL_ERROR;
802
808
  }
803
- *protected_output_frames_size = (size_t)read_from_ssl;
804
- pending = (int)BIO_pending(impl->from_ssl);
809
+ *protected_output_frames_size = static_cast<size_t>(read_from_ssl);
810
+ pending = static_cast<int>(BIO_pending(impl->network_io));
805
811
  GPR_ASSERT(pending >= 0);
806
- *still_pending_size = (size_t)pending;
812
+ *still_pending_size = static_cast<size_t>(pending);
807
813
  return TSI_OK;
808
814
  }
809
815
 
@@ -815,7 +821,8 @@ static tsi_result ssl_protector_unprotect(
815
821
  int written_into_ssl = 0;
816
822
  size_t output_bytes_size = *unprotected_bytes_size;
817
823
  size_t output_bytes_offset = 0;
818
- tsi_ssl_frame_protector* impl = (tsi_ssl_frame_protector*)self;
824
+ tsi_ssl_frame_protector* impl =
825
+ reinterpret_cast<tsi_ssl_frame_protector*>(self);
819
826
 
820
827
  /* First, try to read remaining data from ssl. */
821
828
  result = do_ssl_read(impl->ssl, unprotected_bytes, unprotected_bytes_size);
@@ -831,14 +838,14 @@ static tsi_result ssl_protector_unprotect(
831
838
 
832
839
  /* Then, try to write some data to ssl. */
833
840
  GPR_ASSERT(*protected_frames_bytes_size <= INT_MAX);
834
- written_into_ssl = BIO_write(impl->into_ssl, protected_frames_bytes,
835
- (int)*protected_frames_bytes_size);
841
+ written_into_ssl = BIO_write(impl->network_io, protected_frames_bytes,
842
+ static_cast<int>(*protected_frames_bytes_size));
836
843
  if (written_into_ssl < 0) {
837
844
  gpr_log(GPR_ERROR, "Sending protected frame to ssl failed with %d",
838
845
  written_into_ssl);
839
846
  return TSI_INTERNAL_ERROR;
840
847
  }
841
- *protected_frames_bytes_size = (size_t)written_into_ssl;
848
+ *protected_frames_bytes_size = static_cast<size_t>(written_into_ssl);
842
849
 
843
850
  /* Now try to read some data again. */
844
851
  result = do_ssl_read(impl->ssl, unprotected_bytes, unprotected_bytes_size);
@@ -850,9 +857,11 @@ static tsi_result ssl_protector_unprotect(
850
857
  }
851
858
 
852
859
  static void ssl_protector_destroy(tsi_frame_protector* self) {
853
- tsi_ssl_frame_protector* impl = (tsi_ssl_frame_protector*)self;
860
+ tsi_ssl_frame_protector* impl =
861
+ reinterpret_cast<tsi_ssl_frame_protector*>(self);
854
862
  if (impl->buffer != nullptr) gpr_free(impl->buffer);
855
863
  if (impl->ssl != nullptr) SSL_free(impl->ssl);
864
+ if (impl->network_io != nullptr) BIO_free(impl->network_io);
856
865
  gpr_free(self);
857
866
  }
858
867
 
@@ -909,29 +918,30 @@ static void tsi_ssl_handshaker_factory_init(
909
918
  static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(tsi_handshaker* self,
910
919
  unsigned char* bytes,
911
920
  size_t* bytes_size) {
912
- tsi_ssl_handshaker* impl = (tsi_ssl_handshaker*)self;
921
+ tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
913
922
  int bytes_read_from_ssl = 0;
914
923
  if (bytes == nullptr || bytes_size == nullptr || *bytes_size == 0 ||
915
924
  *bytes_size > INT_MAX) {
916
925
  return TSI_INVALID_ARGUMENT;
917
926
  }
918
927
  GPR_ASSERT(*bytes_size <= INT_MAX);
919
- bytes_read_from_ssl = BIO_read(impl->from_ssl, bytes, (int)*bytes_size);
928
+ bytes_read_from_ssl =
929
+ BIO_read(impl->network_io, bytes, static_cast<int>(*bytes_size));
920
930
  if (bytes_read_from_ssl < 0) {
921
931
  *bytes_size = 0;
922
- if (!BIO_should_retry(impl->from_ssl)) {
932
+ if (!BIO_should_retry(impl->network_io)) {
923
933
  impl->result = TSI_INTERNAL_ERROR;
924
934
  return impl->result;
925
935
  } else {
926
936
  return TSI_OK;
927
937
  }
928
938
  }
929
- *bytes_size = (size_t)bytes_read_from_ssl;
930
- return BIO_pending(impl->from_ssl) == 0 ? TSI_OK : TSI_INCOMPLETE_DATA;
939
+ *bytes_size = static_cast<size_t>(bytes_read_from_ssl);
940
+ return BIO_pending(impl->network_io) == 0 ? TSI_OK : TSI_INCOMPLETE_DATA;
931
941
  }
932
942
 
933
943
  static tsi_result ssl_handshaker_get_result(tsi_handshaker* self) {
934
- tsi_ssl_handshaker* impl = (tsi_ssl_handshaker*)self;
944
+ tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
935
945
  if ((impl->result == TSI_HANDSHAKE_IN_PROGRESS) &&
936
946
  SSL_is_init_finished(impl->ssl)) {
937
947
  impl->result = TSI_OK;
@@ -941,20 +951,20 @@ static tsi_result ssl_handshaker_get_result(tsi_handshaker* self) {
941
951
 
942
952
  static tsi_result ssl_handshaker_process_bytes_from_peer(
943
953
  tsi_handshaker* self, const unsigned char* bytes, size_t* bytes_size) {
944
- tsi_ssl_handshaker* impl = (tsi_ssl_handshaker*)self;
954
+ tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
945
955
  int bytes_written_into_ssl_size = 0;
946
956
  if (bytes == nullptr || bytes_size == nullptr || *bytes_size > INT_MAX) {
947
957
  return TSI_INVALID_ARGUMENT;
948
958
  }
949
959
  GPR_ASSERT(*bytes_size <= INT_MAX);
950
960
  bytes_written_into_ssl_size =
951
- BIO_write(impl->into_ssl, bytes, (int)*bytes_size);
961
+ BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
952
962
  if (bytes_written_into_ssl_size < 0) {
953
963
  gpr_log(GPR_ERROR, "Could not write to memory BIO.");
954
964
  impl->result = TSI_INTERNAL_ERROR;
955
965
  return impl->result;
956
966
  }
957
- *bytes_size = (size_t)bytes_written_into_ssl_size;
967
+ *bytes_size = static_cast<size_t>(bytes_written_into_ssl_size);
958
968
 
959
969
  if (!tsi_handshaker_is_in_progress(self)) {
960
970
  impl->result = TSI_OK;
@@ -965,7 +975,7 @@ static tsi_result ssl_handshaker_process_bytes_from_peer(
965
975
  ssl_result = SSL_get_error(impl->ssl, ssl_result);
966
976
  switch (ssl_result) {
967
977
  case SSL_ERROR_WANT_READ:
968
- if (BIO_pending(impl->from_ssl) == 0) {
978
+ if (BIO_pending(impl->network_io) == 0) {
969
979
  /* We need more data. */
970
980
  return TSI_INCOMPLETE_DATA;
971
981
  } else {
@@ -990,7 +1000,7 @@ static tsi_result ssl_handshaker_extract_peer(tsi_handshaker* self,
990
1000
  tsi_result result = TSI_OK;
991
1001
  const unsigned char* alpn_selected = nullptr;
992
1002
  unsigned int alpn_selected_len;
993
- tsi_ssl_handshaker* impl = (tsi_ssl_handshaker*)self;
1003
+ tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
994
1004
  X509* peer_cert = SSL_get_peer_certificate(impl->ssl);
995
1005
  if (peer_cert != nullptr) {
996
1006
  result = peer_from_x509(peer_cert, 1, peer);
@@ -1007,14 +1017,15 @@ static tsi_result ssl_handshaker_extract_peer(tsi_handshaker* self,
1007
1017
  }
1008
1018
  if (alpn_selected != nullptr) {
1009
1019
  size_t i;
1010
- tsi_peer_property* new_properties = (tsi_peer_property*)gpr_zalloc(
1011
- sizeof(*new_properties) * (peer->property_count + 1));
1020
+ tsi_peer_property* new_properties = static_cast<tsi_peer_property*>(
1021
+ gpr_zalloc(sizeof(*new_properties) * (peer->property_count + 1)));
1012
1022
  for (i = 0; i < peer->property_count; i++) {
1013
1023
  new_properties[i] = peer->properties[i];
1014
1024
  }
1015
1025
  result = tsi_construct_string_peer_property(
1016
- TSI_SSL_ALPN_SELECTED_PROTOCOL, (const char*)alpn_selected,
1017
- alpn_selected_len, &new_properties[peer->property_count]);
1026
+ TSI_SSL_ALPN_SELECTED_PROTOCOL,
1027
+ reinterpret_cast<const char*>(alpn_selected), alpn_selected_len,
1028
+ &new_properties[peer->property_count]);
1018
1029
  if (result != TSI_OK) {
1019
1030
  gpr_free(new_properties);
1020
1031
  return result;
@@ -1031,9 +1042,10 @@ static tsi_result ssl_handshaker_create_frame_protector(
1031
1042
  tsi_frame_protector** protector) {
1032
1043
  size_t actual_max_output_protected_frame_size =
1033
1044
  TSI_SSL_MAX_PROTECTED_FRAME_SIZE_UPPER_BOUND;
1034
- tsi_ssl_handshaker* impl = (tsi_ssl_handshaker*)self;
1045
+ tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
1035
1046
  tsi_ssl_frame_protector* protector_impl =
1036
- (tsi_ssl_frame_protector*)gpr_zalloc(sizeof(*protector_impl));
1047
+ static_cast<tsi_ssl_frame_protector*>(
1048
+ gpr_zalloc(sizeof(*protector_impl)));
1037
1049
 
1038
1050
  if (max_output_protected_frame_size != nullptr) {
1039
1051
  if (*max_output_protected_frame_size >
@@ -1050,7 +1062,7 @@ static tsi_result ssl_handshaker_create_frame_protector(
1050
1062
  protector_impl->buffer_size =
1051
1063
  actual_max_output_protected_frame_size - TSI_SSL_MAX_PROTECTION_OVERHEAD;
1052
1064
  protector_impl->buffer =
1053
- (unsigned char*)gpr_malloc(protector_impl->buffer_size);
1065
+ static_cast<unsigned char*>(gpr_malloc(protector_impl->buffer_size));
1054
1066
  if (protector_impl->buffer == nullptr) {
1055
1067
  gpr_log(GPR_ERROR,
1056
1068
  "Could not allocated buffer for tsi_ssl_frame_protector.");
@@ -1058,12 +1070,13 @@ static tsi_result ssl_handshaker_create_frame_protector(
1058
1070
  return TSI_INTERNAL_ERROR;
1059
1071
  }
1060
1072
 
1061
- /* Transfer ownership of ssl to the frame protector. It is OK as the caller
1062
- * cannot call anything else but destroy on the handshaker after this call. */
1073
+ /* Transfer ownership of ssl and network_io to the frame protector. It is OK
1074
+ * as the caller cannot call anything else but destroy on the handshaker
1075
+ * after this call. */
1063
1076
  protector_impl->ssl = impl->ssl;
1064
1077
  impl->ssl = nullptr;
1065
- protector_impl->into_ssl = impl->into_ssl;
1066
- protector_impl->from_ssl = impl->from_ssl;
1078
+ protector_impl->network_io = impl->network_io;
1079
+ impl->network_io = nullptr;
1067
1080
 
1068
1081
  protector_impl->base.vtable = &frame_protector_vtable;
1069
1082
  *protector = &protector_impl->base;
@@ -1071,8 +1084,9 @@ static tsi_result ssl_handshaker_create_frame_protector(
1071
1084
  }
1072
1085
 
1073
1086
  static void ssl_handshaker_destroy(tsi_handshaker* self) {
1074
- tsi_ssl_handshaker* impl = (tsi_ssl_handshaker*)self;
1075
- SSL_free(impl->ssl); /* The BIO objects are owned by ssl */
1087
+ tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
1088
+ SSL_free(impl->ssl);
1089
+ BIO_free(impl->network_io);
1076
1090
  tsi_ssl_handshaker_factory_unref(impl->factory_ref);
1077
1091
  gpr_free(impl);
1078
1092
  }
@@ -1094,8 +1108,8 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
1094
1108
  tsi_ssl_handshaker_factory* factory,
1095
1109
  tsi_handshaker** handshaker) {
1096
1110
  SSL* ssl = SSL_new(ctx);
1097
- BIO* into_ssl = nullptr;
1098
- BIO* from_ssl = nullptr;
1111
+ BIO* network_io = nullptr;
1112
+ BIO* ssl_io = nullptr;
1099
1113
  tsi_ssl_handshaker* impl = nullptr;
1100
1114
  *handshaker = nullptr;
1101
1115
  if (ctx == nullptr) {
@@ -1107,16 +1121,12 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
1107
1121
  }
1108
1122
  SSL_set_info_callback(ssl, ssl_info_callback);
1109
1123
 
1110
- into_ssl = BIO_new(BIO_s_mem());
1111
- from_ssl = BIO_new(BIO_s_mem());
1112
- if (into_ssl == nullptr || from_ssl == nullptr) {
1113
- gpr_log(GPR_ERROR, "BIO_new failed.");
1124
+ if (!BIO_new_bio_pair(&network_io, 0, &ssl_io, 0)) {
1125
+ gpr_log(GPR_ERROR, "BIO_new_bio_pair failed.");
1114
1126
  SSL_free(ssl);
1115
- if (into_ssl != nullptr) BIO_free(into_ssl);
1116
- if (from_ssl != nullptr) BIO_free(into_ssl);
1117
1127
  return TSI_OUT_OF_RESOURCES;
1118
1128
  }
1119
- SSL_set_bio(ssl, into_ssl, from_ssl);
1129
+ SSL_set_bio(ssl, ssl_io, ssl_io);
1120
1130
  if (is_client) {
1121
1131
  int ssl_result;
1122
1132
  SSL_set_connect_state(ssl);
@@ -1125,6 +1135,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
1125
1135
  gpr_log(GPR_ERROR, "Invalid server name indication %s.",
1126
1136
  server_name_indication);
1127
1137
  SSL_free(ssl);
1138
+ BIO_free(network_io);
1128
1139
  return TSI_INTERNAL_ERROR;
1129
1140
  }
1130
1141
  }
@@ -1135,16 +1146,16 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
1135
1146
  "Unexpected error received from first SSL_do_handshake call: %s",
1136
1147
  ssl_error_string(ssl_result));
1137
1148
  SSL_free(ssl);
1149
+ BIO_free(network_io);
1138
1150
  return TSI_INTERNAL_ERROR;
1139
1151
  }
1140
1152
  } else {
1141
1153
  SSL_set_accept_state(ssl);
1142
1154
  }
1143
1155
 
1144
- impl = (tsi_ssl_handshaker*)gpr_zalloc(sizeof(*impl));
1156
+ impl = static_cast<tsi_ssl_handshaker*>(gpr_zalloc(sizeof(*impl)));
1145
1157
  impl->ssl = ssl;
1146
- impl->into_ssl = into_ssl;
1147
- impl->from_ssl = from_ssl;
1158
+ impl->network_io = network_io;
1148
1159
  impl->result = TSI_HANDSHAKE_IN_PROGRESS;
1149
1160
  impl->base.vtable = &handshaker_vtable;
1150
1161
  impl->factory_ref = tsi_ssl_handshaker_factory_ref(factory);
@@ -1160,11 +1171,13 @@ static int select_protocol_list(const unsigned char** out,
1160
1171
  const unsigned char* server_list,
1161
1172
  size_t server_list_len) {
1162
1173
  const unsigned char* client_current = client_list;
1163
- while ((unsigned int)(client_current - client_list) < client_list_len) {
1174
+ while (static_cast<unsigned int>(client_current - client_list) <
1175
+ client_list_len) {
1164
1176
  unsigned char client_current_len = *(client_current++);
1165
1177
  const unsigned char* server_current = server_list;
1166
1178
  while ((server_current >= server_list) &&
1167
- (uintptr_t)(server_current - server_list) < server_list_len) {
1179
+ static_cast<uintptr_t>(server_current - server_list) <
1180
+ server_list_len) {
1168
1181
  unsigned char server_current_len = *(server_current++);
1169
1182
  if ((client_current_len == server_current_len) &&
1170
1183
  !memcmp(client_current, server_current, server_current_len)) {
@@ -1198,7 +1211,7 @@ static void tsi_ssl_client_handshaker_factory_destroy(
1198
1211
  tsi_ssl_handshaker_factory* factory) {
1199
1212
  if (factory == nullptr) return;
1200
1213
  tsi_ssl_client_handshaker_factory* self =
1201
- (tsi_ssl_client_handshaker_factory*)factory;
1214
+ reinterpret_cast<tsi_ssl_client_handshaker_factory*>(factory);
1202
1215
  if (self->ssl_context != nullptr) SSL_CTX_free(self->ssl_context);
1203
1216
  if (self->alpn_protocol_list != nullptr) gpr_free(self->alpn_protocol_list);
1204
1217
  gpr_free(self);
@@ -1210,7 +1223,7 @@ static int client_handshaker_factory_npn_callback(SSL* ssl, unsigned char** out,
1210
1223
  unsigned int inlen,
1211
1224
  void* arg) {
1212
1225
  tsi_ssl_client_handshaker_factory* factory =
1213
- (tsi_ssl_client_handshaker_factory*)arg;
1226
+ static_cast<tsi_ssl_client_handshaker_factory*>(arg);
1214
1227
  return select_protocol_list((const unsigned char**)out, outlen,
1215
1228
  factory->alpn_protocol_list,
1216
1229
  factory->alpn_protocol_list_length, in, inlen);
@@ -1237,7 +1250,7 @@ static void tsi_ssl_server_handshaker_factory_destroy(
1237
1250
  tsi_ssl_handshaker_factory* factory) {
1238
1251
  if (factory == nullptr) return;
1239
1252
  tsi_ssl_server_handshaker_factory* self =
1240
- (tsi_ssl_server_handshaker_factory*)factory;
1253
+ reinterpret_cast<tsi_ssl_server_handshaker_factory*>(factory);
1241
1254
  size_t i;
1242
1255
  for (i = 0; i < self->ssl_context_count; i++) {
1243
1256
  if (self->ssl_contexts[i] != nullptr) {
@@ -1304,7 +1317,7 @@ static int does_entry_match_name(const char* entry, size_t entry_length,
1304
1317
  static int ssl_server_handshaker_factory_servername_callback(SSL* ssl, int* ap,
1305
1318
  void* arg) {
1306
1319
  tsi_ssl_server_handshaker_factory* impl =
1307
- (tsi_ssl_server_handshaker_factory*)arg;
1320
+ static_cast<tsi_ssl_server_handshaker_factory*>(arg);
1308
1321
  size_t i = 0;
1309
1322
  const char* servername = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name);
1310
1323
  if (servername == nullptr || strlen(servername) == 0) {
@@ -1327,7 +1340,7 @@ static int server_handshaker_factory_alpn_callback(
1327
1340
  SSL* ssl, const unsigned char** out, unsigned char* outlen,
1328
1341
  const unsigned char* in, unsigned int inlen, void* arg) {
1329
1342
  tsi_ssl_server_handshaker_factory* factory =
1330
- (tsi_ssl_server_handshaker_factory*)arg;
1343
+ static_cast<tsi_ssl_server_handshaker_factory*>(arg);
1331
1344
  return select_protocol_list(out, outlen, in, inlen,
1332
1345
  factory->alpn_protocol_list,
1333
1346
  factory->alpn_protocol_list_length);
@@ -1337,10 +1350,10 @@ static int server_handshaker_factory_alpn_callback(
1337
1350
  static int server_handshaker_factory_npn_advertised_callback(
1338
1351
  SSL* ssl, const unsigned char** out, unsigned int* outlen, void* arg) {
1339
1352
  tsi_ssl_server_handshaker_factory* factory =
1340
- (tsi_ssl_server_handshaker_factory*)arg;
1353
+ static_cast<tsi_ssl_server_handshaker_factory*>(arg);
1341
1354
  *out = factory->alpn_protocol_list;
1342
1355
  GPR_ASSERT(factory->alpn_protocol_list_length <= UINT_MAX);
1343
- *outlen = (unsigned int)factory->alpn_protocol_list_length;
1356
+ *outlen = static_cast<unsigned int>(factory->alpn_protocol_list_length);
1344
1357
  return SSL_TLSEXT_ERR_OK;
1345
1358
  }
1346
1359
 
@@ -1370,7 +1383,8 @@ tsi_result tsi_create_ssl_client_handshaker_factory(
1370
1383
  return TSI_INVALID_ARGUMENT;
1371
1384
  }
1372
1385
 
1373
- impl = (tsi_ssl_client_handshaker_factory*)gpr_zalloc(sizeof(*impl));
1386
+ impl = static_cast<tsi_ssl_client_handshaker_factory*>(
1387
+ gpr_zalloc(sizeof(*impl)));
1374
1388
  tsi_ssl_handshaker_factory_init(&impl->base);
1375
1389
  impl->base.vtable = &client_handshaker_factory_vtable;
1376
1390
 
@@ -1400,7 +1414,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory(
1400
1414
  GPR_ASSERT(impl->alpn_protocol_list_length < UINT_MAX);
1401
1415
  if (SSL_CTX_set_alpn_protos(
1402
1416
  ssl_context, impl->alpn_protocol_list,
1403
- (unsigned int)impl->alpn_protocol_list_length)) {
1417
+ static_cast<unsigned int>(impl->alpn_protocol_list_length))) {
1404
1418
  gpr_log(GPR_ERROR, "Could not set alpn protocol list to context.");
1405
1419
  result = TSI_INVALID_ARGUMENT;
1406
1420
  break;
@@ -1455,14 +1469,15 @@ tsi_result tsi_create_ssl_server_handshaker_factory_ex(
1455
1469
  return TSI_INVALID_ARGUMENT;
1456
1470
  }
1457
1471
 
1458
- impl = (tsi_ssl_server_handshaker_factory*)gpr_zalloc(sizeof(*impl));
1472
+ impl = static_cast<tsi_ssl_server_handshaker_factory*>(
1473
+ gpr_zalloc(sizeof(*impl)));
1459
1474
  tsi_ssl_handshaker_factory_init(&impl->base);
1460
1475
  impl->base.vtable = &server_handshaker_factory_vtable;
1461
1476
 
1462
1477
  impl->ssl_contexts =
1463
- (SSL_CTX**)gpr_zalloc(num_key_cert_pairs * sizeof(SSL_CTX*));
1478
+ static_cast<SSL_CTX**>(gpr_zalloc(num_key_cert_pairs * sizeof(SSL_CTX*)));
1464
1479
  impl->ssl_context_x509_subject_names =
1465
- (tsi_peer*)gpr_zalloc(num_key_cert_pairs * sizeof(tsi_peer));
1480
+ static_cast<tsi_peer*>(gpr_zalloc(num_key_cert_pairs * sizeof(tsi_peer)));
1466
1481
  if (impl->ssl_contexts == nullptr ||
1467
1482
  impl->ssl_context_x509_subject_names == nullptr) {
1468
1483
  tsi_ssl_handshaker_factory_unref(&impl->base);