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
@@ -27,14 +27,14 @@ static void destroy_user_agent_md(void* user_agent_md) {
27
27
 
28
28
  grpc_workaround_user_agent_md* grpc_parse_user_agent(grpc_mdelem md) {
29
29
  grpc_workaround_user_agent_md* user_agent_md =
30
- (grpc_workaround_user_agent_md*)grpc_mdelem_get_user_data(
31
- md, destroy_user_agent_md);
30
+ static_cast<grpc_workaround_user_agent_md*>(
31
+ grpc_mdelem_get_user_data(md, destroy_user_agent_md));
32
32
 
33
33
  if (nullptr != user_agent_md) {
34
34
  return user_agent_md;
35
35
  }
36
- user_agent_md = (grpc_workaround_user_agent_md*)gpr_malloc(
37
- sizeof(grpc_workaround_user_agent_md));
36
+ user_agent_md = static_cast<grpc_workaround_user_agent_md*>(
37
+ gpr_malloc(sizeof(grpc_workaround_user_agent_md)));
38
38
  for (int i = 0; i < GRPC_MAX_WORKAROUND_ID; i++) {
39
39
  if (ua_parser[i]) {
40
40
  user_agent_md->workaround_active[i] = ua_parser[i](md);
@@ -18,7 +18,8 @@
18
18
 
19
19
  #include "src/core/ext/transport/chttp2/alpn/alpn.h"
20
20
  #include <grpc/support/log.h>
21
- #include <grpc/support/useful.h>
21
+
22
+ #include "src/core/lib/gpr/useful.h"
22
23
 
23
24
  /* in order of preference */
24
25
  static const char* const supported_versions[] = {"grpc-exp", "h2"};
@@ -57,12 +57,12 @@ typedef struct {
57
57
  } chttp2_connector;
58
58
 
59
59
  static void chttp2_connector_ref(grpc_connector* con) {
60
- chttp2_connector* c = (chttp2_connector*)con;
60
+ chttp2_connector* c = reinterpret_cast<chttp2_connector*>(con);
61
61
  gpr_ref(&c->refs);
62
62
  }
63
63
 
64
64
  static void chttp2_connector_unref(grpc_connector* con) {
65
- chttp2_connector* c = (chttp2_connector*)con;
65
+ chttp2_connector* c = reinterpret_cast<chttp2_connector*>(con);
66
66
  if (gpr_unref(&c->refs)) {
67
67
  gpr_mu_destroy(&c->mu);
68
68
  // If handshaking is not yet in progress, destroy the endpoint.
@@ -73,7 +73,7 @@ static void chttp2_connector_unref(grpc_connector* con) {
73
73
  }
74
74
 
75
75
  static void chttp2_connector_shutdown(grpc_connector* con, grpc_error* why) {
76
- chttp2_connector* c = (chttp2_connector*)con;
76
+ chttp2_connector* c = reinterpret_cast<chttp2_connector*>(con);
77
77
  gpr_mu_lock(&c->mu);
78
78
  c->shutdown = true;
79
79
  if (c->handshake_mgr != nullptr) {
@@ -89,8 +89,8 @@ static void chttp2_connector_shutdown(grpc_connector* con, grpc_error* why) {
89
89
  }
90
90
 
91
91
  static void on_handshake_done(void* arg, grpc_error* error) {
92
- grpc_handshaker_args* args = (grpc_handshaker_args*)arg;
93
- chttp2_connector* c = (chttp2_connector*)args->user_data;
92
+ grpc_handshaker_args* args = static_cast<grpc_handshaker_args*>(arg);
93
+ chttp2_connector* c = static_cast<chttp2_connector*>(args->user_data);
94
94
  gpr_mu_lock(&c->mu);
95
95
  if (error != GRPC_ERROR_NONE || c->shutdown) {
96
96
  if (error == GRPC_ERROR_NONE) {
@@ -150,7 +150,7 @@ static void on_handshake_done(void* arg, grpc_error* error) {
150
150
  grpc_handshake_manager_destroy(c->handshake_mgr);
151
151
  c->handshake_mgr = nullptr;
152
152
  gpr_mu_unlock(&c->mu);
153
- chttp2_connector_unref((grpc_connector*)c);
153
+ chttp2_connector_unref(reinterpret_cast<grpc_connector*>(c));
154
154
  }
155
155
 
156
156
  static void start_handshake_locked(chttp2_connector* c) {
@@ -166,7 +166,7 @@ static void start_handshake_locked(chttp2_connector* c) {
166
166
  }
167
167
 
168
168
  static void connected(void* arg, grpc_error* error) {
169
- chttp2_connector* c = (chttp2_connector*)arg;
169
+ chttp2_connector* c = static_cast<chttp2_connector*>(arg);
170
170
  gpr_mu_lock(&c->mu);
171
171
  GPR_ASSERT(c->connecting);
172
172
  c->connecting = false;
@@ -184,7 +184,7 @@ static void connected(void* arg, grpc_error* error) {
184
184
  grpc_endpoint_shutdown(c->endpoint, GRPC_ERROR_REF(error));
185
185
  }
186
186
  gpr_mu_unlock(&c->mu);
187
- chttp2_connector_unref((grpc_connector*)arg);
187
+ chttp2_connector_unref(static_cast<grpc_connector*>(arg));
188
188
  } else {
189
189
  GPR_ASSERT(c->endpoint != nullptr);
190
190
  start_handshake_locked(c);
@@ -196,7 +196,7 @@ static void chttp2_connector_connect(grpc_connector* con,
196
196
  const grpc_connect_in_args* args,
197
197
  grpc_connect_out_args* result,
198
198
  grpc_closure* notify) {
199
- chttp2_connector* c = (chttp2_connector*)con;
199
+ chttp2_connector* c = reinterpret_cast<chttp2_connector*>(con);
200
200
  grpc_resolved_address addr;
201
201
  grpc_get_subchannel_address_arg(args->channel_args, &addr);
202
202
  gpr_mu_lock(&c->mu);
@@ -219,7 +219,7 @@ static const grpc_connector_vtable chttp2_connector_vtable = {
219
219
  chttp2_connector_connect};
220
220
 
221
221
  grpc_connector* grpc_chttp2_connector_create() {
222
- chttp2_connector* c = (chttp2_connector*)gpr_zalloc(sizeof(*c));
222
+ chttp2_connector* c = static_cast<chttp2_connector*>(gpr_zalloc(sizeof(*c)));
223
223
  c->base.vtable = &chttp2_connector_vtable;
224
224
  gpr_mu_init(&c->mu);
225
225
  gpr_ref_init(&c->refs, 1);
@@ -52,13 +52,13 @@ static grpc_channel* client_channel_factory_create_channel(
52
52
  return nullptr;
53
53
  }
54
54
  // Add channel arg containing the server URI.
55
- grpc_arg arg = grpc_channel_arg_string_create(
56
- (char*)GRPC_ARG_SERVER_URI,
57
- grpc_resolver_factory_add_default_prefix_if_needed(target));
55
+ grpc_core::UniquePtr<char> canonical_target =
56
+ grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded(target);
57
+ grpc_arg arg = grpc_channel_arg_string_create((char*)GRPC_ARG_SERVER_URI,
58
+ canonical_target.get());
58
59
  const char* to_remove[] = {GRPC_ARG_SERVER_URI};
59
60
  grpc_channel_args* new_args =
60
61
  grpc_channel_args_copy_and_add_and_remove(args, to_remove, 1, &arg, 1);
61
- gpr_free(arg.value.string);
62
62
  grpc_channel* channel =
63
63
  grpc_channel_create(target, new_args, GRPC_CLIENT_CHANNEL, nullptr);
64
64
  grpc_channel_args_destroy(new_args);
@@ -30,8 +30,8 @@
30
30
  #include "src/core/lib/channel/channel_args.h"
31
31
  #include "src/core/lib/iomgr/sockaddr_utils.h"
32
32
  #include "src/core/lib/security/credentials/credentials.h"
33
+ #include "src/core/lib/security/security_connector/security_connector.h"
33
34
  #include "src/core/lib/security/transport/lb_targets_info.h"
34
- #include "src/core/lib/security/transport/security_connector.h"
35
35
  #include "src/core/lib/slice/slice_hash_table.h"
36
36
  #include "src/core/lib/slice/slice_internal.h"
37
37
  #include "src/core/lib/surface/api_trace.h"
@@ -63,9 +63,7 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
63
63
  // To which address are we connecting? By default, use the server URI.
64
64
  const grpc_arg* server_uri_arg =
65
65
  grpc_channel_args_find(args->args, GRPC_ARG_SERVER_URI);
66
- GPR_ASSERT(server_uri_arg != nullptr);
67
- GPR_ASSERT(server_uri_arg->type == GRPC_ARG_STRING);
68
- const char* server_uri_str = server_uri_arg->value.string;
66
+ const char* server_uri_str = grpc_channel_arg_get_string(server_uri_arg);
69
67
  GPR_ASSERT(server_uri_str != nullptr);
70
68
  grpc_uri* server_uri =
71
69
  grpc_uri_parse(server_uri_str, true /* supress errors */);
@@ -86,8 +84,8 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
86
84
  if (target_uri->path[0] != '\0') { // "path" may be empty
87
85
  const grpc_slice key = grpc_slice_from_static_string(
88
86
  target_uri->path[0] == '/' ? target_uri->path + 1 : target_uri->path);
89
- const char* value =
90
- (const char*)grpc_slice_hash_table_get(targets_info, key);
87
+ const char* value = static_cast<const char*>(
88
+ grpc_slice_hash_table_get(targets_info, key));
91
89
  if (value != nullptr) target_name_to_check = gpr_strdup(value);
92
90
  grpc_slice_unref_internal(key);
93
91
  }
@@ -129,7 +127,7 @@ static grpc_subchannel_args* get_secure_naming_subchannel_args(
129
127
  grpc_channel_args_destroy(new_args_from_connector);
130
128
  }
131
129
  grpc_subchannel_args* final_sc_args =
132
- (grpc_subchannel_args*)gpr_malloc(sizeof(*final_sc_args));
130
+ static_cast<grpc_subchannel_args*>(gpr_malloc(sizeof(*final_sc_args)));
133
131
  memcpy(final_sc_args, args, sizeof(*args));
134
132
  final_sc_args->args = new_args;
135
133
  return final_sc_args;
@@ -148,7 +146,8 @@ static grpc_subchannel* client_channel_factory_create_subchannel(
148
146
  grpc_connector* connector = grpc_chttp2_connector_create();
149
147
  grpc_subchannel* s = grpc_subchannel_create(connector, subchannel_args);
150
148
  grpc_connector_unref(connector);
151
- grpc_channel_args_destroy((grpc_channel_args*)subchannel_args->args);
149
+ grpc_channel_args_destroy(
150
+ const_cast<grpc_channel_args*>(subchannel_args->args));
152
151
  gpr_free(subchannel_args);
153
152
  return s;
154
153
  }
@@ -161,13 +160,13 @@ static grpc_channel* client_channel_factory_create_channel(
161
160
  return nullptr;
162
161
  }
163
162
  // Add channel arg containing the server URI.
164
- grpc_arg arg = grpc_channel_arg_string_create(
165
- (char*)GRPC_ARG_SERVER_URI,
166
- grpc_resolver_factory_add_default_prefix_if_needed(target));
163
+ grpc_core::UniquePtr<char> canonical_target =
164
+ grpc_core::ResolverRegistry::AddDefaultPrefixIfNeeded(target);
165
+ grpc_arg arg = grpc_channel_arg_string_create((char*)GRPC_ARG_SERVER_URI,
166
+ canonical_target.get());
167
167
  const char* to_remove[] = {GRPC_ARG_SERVER_URI};
168
168
  grpc_channel_args* new_args =
169
169
  grpc_channel_args_copy_and_add_and_remove(args, to_remove, 1, &arg, 1);
170
- gpr_free(arg.value.string);
171
170
  grpc_channel* channel =
172
171
  grpc_channel_create(target, new_args, GRPC_CLIENT_CHANNEL, nullptr);
173
172
  grpc_channel_args_destroy(new_args);
@@ -28,7 +28,6 @@
28
28
  #include <grpc/support/log.h>
29
29
  #include <grpc/support/string_util.h>
30
30
  #include <grpc/support/sync.h>
31
- #include <grpc/support/useful.h>
32
31
 
33
32
  #include "src/core/ext/filters/http/server/http_server_filter.h"
34
33
  #include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
@@ -80,7 +79,8 @@ static void server_connection_state_unref(
80
79
  }
81
80
 
82
81
  static void on_timeout(void* arg, grpc_error* error) {
83
- server_connection_state* connection_state = (server_connection_state*)arg;
82
+ server_connection_state* connection_state =
83
+ static_cast<server_connection_state*>(arg);
84
84
  // Note that we may be called with GRPC_ERROR_NONE when the timer fires
85
85
  // or with an error indicating that the timer system is being shut down.
86
86
  if (error != GRPC_ERROR_CANCELLED) {
@@ -93,7 +93,8 @@ static void on_timeout(void* arg, grpc_error* error) {
93
93
  }
94
94
 
95
95
  static void on_receive_settings(void* arg, grpc_error* error) {
96
- server_connection_state* connection_state = (server_connection_state*)arg;
96
+ server_connection_state* connection_state =
97
+ static_cast<server_connection_state*>(arg);
97
98
  if (error == GRPC_ERROR_NONE) {
98
99
  grpc_timer_cancel(&connection_state->timer);
99
100
  }
@@ -101,9 +102,9 @@ static void on_receive_settings(void* arg, grpc_error* error) {
101
102
  }
102
103
 
103
104
  static void on_handshake_done(void* arg, grpc_error* error) {
104
- grpc_handshaker_args* args = (grpc_handshaker_args*)arg;
105
+ grpc_handshaker_args* args = static_cast<grpc_handshaker_args*>(arg);
105
106
  server_connection_state* connection_state =
106
- (server_connection_state*)args->user_data;
107
+ static_cast<server_connection_state*>(args->user_data);
107
108
  gpr_mu_lock(&connection_state->svr_state->mu);
108
109
  if (error != GRPC_ERROR_NONE || connection_state->svr_state->shutdown) {
109
110
  const char* error_str = grpc_error_string(error);
@@ -133,7 +134,8 @@ static void on_handshake_done(void* arg, grpc_error* error) {
133
134
  connection_state->accepting_pollset, args->args);
134
135
  // Use notify_on_receive_settings callback to enforce the
135
136
  // handshake deadline.
136
- connection_state->transport = (grpc_chttp2_transport*)transport;
137
+ connection_state->transport =
138
+ reinterpret_cast<grpc_chttp2_transport*>(transport);
137
139
  gpr_ref(&connection_state->refs);
138
140
  GRPC_CLOSURE_INIT(&connection_state->on_receive_settings,
139
141
  on_receive_settings, connection_state,
@@ -163,7 +165,7 @@ static void on_handshake_done(void* arg, grpc_error* error) {
163
165
  static void on_accept(void* arg, grpc_endpoint* tcp,
164
166
  grpc_pollset* accepting_pollset,
165
167
  grpc_tcp_server_acceptor* acceptor) {
166
- server_state* state = (server_state*)arg;
168
+ server_state* state = static_cast<server_state*>(arg);
167
169
  gpr_mu_lock(&state->mu);
168
170
  if (state->shutdown) {
169
171
  gpr_mu_unlock(&state->mu);
@@ -178,7 +180,8 @@ static void on_accept(void* arg, grpc_endpoint* tcp,
178
180
  gpr_mu_unlock(&state->mu);
179
181
  grpc_tcp_server_ref(state->tcp_server);
180
182
  server_connection_state* connection_state =
181
- (server_connection_state*)gpr_zalloc(sizeof(*connection_state));
183
+ static_cast<server_connection_state*>(
184
+ gpr_zalloc(sizeof(*connection_state)));
182
185
  gpr_ref_init(&connection_state->refs, 1);
183
186
  connection_state->svr_state = state;
184
187
  connection_state->accepting_pollset = accepting_pollset;
@@ -202,7 +205,7 @@ static void on_accept(void* arg, grpc_endpoint* tcp,
202
205
  static void server_start_listener(grpc_server* server, void* arg,
203
206
  grpc_pollset** pollsets,
204
207
  size_t pollset_count) {
205
- server_state* state = (server_state*)arg;
208
+ server_state* state = static_cast<server_state*>(arg);
206
209
  gpr_mu_lock(&state->mu);
207
210
  state->shutdown = false;
208
211
  gpr_mu_unlock(&state->mu);
@@ -211,7 +214,7 @@ static void server_start_listener(grpc_server* server, void* arg,
211
214
  }
212
215
 
213
216
  static void tcp_server_shutdown_complete(void* arg, grpc_error* error) {
214
- server_state* state = (server_state*)arg;
217
+ server_state* state = static_cast<server_state*>(arg);
215
218
  /* ensure all threads have unlocked */
216
219
  gpr_mu_lock(&state->mu);
217
220
  grpc_closure* destroy_done = state->server_destroy_listener_done;
@@ -235,7 +238,7 @@ static void tcp_server_shutdown_complete(void* arg, grpc_error* error) {
235
238
  callbacks) */
236
239
  static void server_destroy_listener(grpc_server* server, void* arg,
237
240
  grpc_closure* destroy_done) {
238
- server_state* state = (server_state*)arg;
241
+ server_state* state = static_cast<server_state*>(arg);
239
242
  gpr_mu_lock(&state->mu);
240
243
  state->shutdown = true;
241
244
  state->server_destroy_listener_done = destroy_done;
@@ -265,7 +268,7 @@ grpc_error* grpc_chttp2_server_add_port(grpc_server* server, const char* addr,
265
268
  if (err != GRPC_ERROR_NONE) {
266
269
  goto error;
267
270
  }
268
- state = (server_state*)gpr_zalloc(sizeof(*state));
271
+ state = static_cast<server_state*>(gpr_zalloc(sizeof(*state)));
269
272
  GRPC_CLOSURE_INIT(&state->tcp_server_shutdown_complete,
270
273
  tcp_server_shutdown_complete, state,
271
274
  grpc_schedule_on_exec_ctx);
@@ -282,7 +285,7 @@ grpc_error* grpc_chttp2_server_add_port(grpc_server* server, const char* addr,
282
285
  gpr_mu_init(&state->mu);
283
286
 
284
287
  naddrs = resolved->naddrs;
285
- errors = (grpc_error**)gpr_malloc(sizeof(*errors) * naddrs);
288
+ errors = static_cast<grpc_error**>(gpr_malloc(sizeof(*errors) * naddrs));
286
289
  for (i = 0; i < naddrs; i++) {
287
290
  errors[i] =
288
291
  grpc_tcp_server_add_port(tcp_server, &resolved->addrs[i], &port_temp);
@@ -57,7 +57,7 @@ static bool input_is_valid(uint8_t* input_ptr, size_t length) {
57
57
  gpr_log(GPR_ERROR,
58
58
  "Base64 decoding failed, invalid character '%c' in base64 "
59
59
  "input.\n",
60
- (char)(*input_ptr));
60
+ static_cast<char>(*input_ptr));
61
61
  return false;
62
62
  }
63
63
  }
@@ -75,6 +75,32 @@ static bool input_is_valid(uint8_t* input_ptr, size_t length) {
75
75
  #define COMPOSE_OUTPUT_BYTE_2(input_ptr) \
76
76
  (uint8_t)((decode_table[input_ptr[2]] << 6) | decode_table[input_ptr[3]])
77
77
 
78
+ // By RFC 4648, if the length of the encoded string without padding is 4n+r,
79
+ // the length of decoded string is: 1) 3n if r = 0, 2) 3n + 1 if r = 2, 3, or
80
+ // 3) invalid if r = 1.
81
+ size_t grpc_chttp2_base64_infer_length_after_decode(const grpc_slice& slice) {
82
+ size_t len = GRPC_SLICE_LENGTH(slice);
83
+ const uint8_t* bytes = GRPC_SLICE_START_PTR(slice);
84
+ while (len > 0 && bytes[len - 1] == '=') {
85
+ len--;
86
+ }
87
+ if (GRPC_SLICE_LENGTH(slice) - len > 2) {
88
+ gpr_log(GPR_ERROR,
89
+ "Base64 decoding failed. Input has more than 2 paddings.");
90
+ return 0;
91
+ }
92
+ size_t tuples = len / 4;
93
+ size_t tail_case = len % 4;
94
+ if (tail_case == 1) {
95
+ gpr_log(GPR_ERROR,
96
+ "Base64 decoding failed. Input has a length of %zu (without"
97
+ " padding), which is invalid.\n",
98
+ len);
99
+ return 0;
100
+ }
101
+ return tuples * 3 + tail_xtra[tail_case];
102
+ }
103
+
78
104
  bool grpc_base64_decode_partial(struct grpc_base64_decode_context* ctx) {
79
105
  size_t input_tail;
80
106
 
@@ -94,7 +120,7 @@ bool grpc_base64_decode_partial(struct grpc_base64_decode_context* ctx) {
94
120
  }
95
121
 
96
122
  // Process the tail of input data
97
- input_tail = (size_t)(ctx->input_end - ctx->input_cur);
123
+ input_tail = static_cast<size_t>(ctx->input_end - ctx->input_cur);
98
124
  if (input_tail == 4) {
99
125
  // Process the input data with pad chars
100
126
  if (ctx->input_cur[3] == '=') {
@@ -141,7 +167,7 @@ grpc_slice grpc_chttp2_base64_decode(grpc_slice input) {
141
167
  "Base64 decoding failed, input of "
142
168
  "grpc_chttp2_base64_decode has a length of %d, which is not a "
143
169
  "multiple of 4.\n",
144
- (int)input_length);
170
+ static_cast<int>(input_length));
145
171
  return grpc_empty_slice();
146
172
  }
147
173
 
@@ -186,17 +212,18 @@ grpc_slice grpc_chttp2_base64_decode_with_length(grpc_slice input,
186
212
  "Base64 decoding failed, input of "
187
213
  "grpc_chttp2_base64_decode_with_length has a length of %d, which "
188
214
  "has a tail of 1 byte.\n",
189
- (int)input_length);
215
+ static_cast<int>(input_length));
190
216
  grpc_slice_unref_internal(output);
191
217
  return grpc_empty_slice();
192
218
  }
193
219
 
194
220
  if (output_length > input_length / 4 * 3 + tail_xtra[input_length % 4]) {
195
- gpr_log(GPR_ERROR,
196
- "Base64 decoding failed, output_length %d is longer "
197
- "than the max possible output length %d.\n",
198
- (int)output_length,
199
- (int)(input_length / 4 * 3 + tail_xtra[input_length % 4]));
221
+ gpr_log(
222
+ GPR_ERROR,
223
+ "Base64 decoding failed, output_length %d is longer "
224
+ "than the max possible output length %d.\n",
225
+ static_cast<int>(output_length),
226
+ static_cast<int>(input_length / 4 * 3 + tail_xtra[input_length % 4]));
200
227
  grpc_slice_unref_internal(output);
201
228
  return grpc_empty_slice();
202
229
  }
@@ -48,4 +48,7 @@ grpc_slice grpc_chttp2_base64_decode(grpc_slice input);
48
48
  grpc_slice grpc_chttp2_base64_decode_with_length(grpc_slice input,
49
49
  size_t output_length);
50
50
 
51
+ /* Infer the length of decoded data from encoded data. */
52
+ size_t grpc_chttp2_base64_infer_length_after_decode(const grpc_slice& slice);
53
+
51
54
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_BIN_DECODER_H */
@@ -53,7 +53,7 @@ grpc_slice grpc_chttp2_base64_encode(grpc_slice input) {
53
53
  size_t output_length = input_triplets * 4 + tail_xtra[tail_case];
54
54
  grpc_slice output = GRPC_SLICE_MALLOC(output_length);
55
55
  uint8_t* in = GRPC_SLICE_START_PTR(input);
56
- char* out = (char*)GRPC_SLICE_START_PTR(output);
56
+ char* out = reinterpret_cast<char*> GRPC_SLICE_START_PTR(output);
57
57
  size_t i;
58
58
 
59
59
  /* encode full triplets */
@@ -115,7 +115,7 @@ grpc_slice grpc_chttp2_huffman_compress(grpc_slice input) {
115
115
 
116
116
  while (temp_length > 8) {
117
117
  temp_length -= 8;
118
- *out++ = (uint8_t)(temp >> temp_length);
118
+ *out++ = static_cast<uint8_t>(temp >> temp_length);
119
119
  }
120
120
  }
121
121
 
@@ -124,8 +124,9 @@ grpc_slice grpc_chttp2_huffman_compress(grpc_slice input) {
124
124
  * expanded form due to the "integral promotion" performed (see section
125
125
  * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
126
126
  * is then required to avoid the compiler warning */
127
- *out++ = (uint8_t)((uint8_t)(temp << (8u - temp_length)) |
128
- (uint8_t)(0xffu >> temp_length));
127
+ *out++ =
128
+ static_cast<uint8_t>(static_cast<uint8_t>(temp << (8u - temp_length)) |
129
+ static_cast<uint8_t>(0xffu >> temp_length));
129
130
  }
130
131
 
131
132
  GPR_ASSERT(out == GRPC_SLICE_END_PTR(output));
@@ -142,7 +143,7 @@ typedef struct {
142
143
  static void enc_flush_some(huff_out* out) {
143
144
  while (out->temp_length > 8) {
144
145
  out->temp_length -= 8;
145
- *out->out++ = (uint8_t)(out->temp >> out->temp_length);
146
+ *out->out++ = static_cast<uint8_t>(out->temp >> out->temp_length);
146
147
  }
147
148
  }
148
149
 
@@ -150,8 +151,9 @@ static void enc_add2(huff_out* out, uint8_t a, uint8_t b) {
150
151
  b64_huff_sym sa = huff_alphabet[a];
151
152
  b64_huff_sym sb = huff_alphabet[b];
152
153
  out->temp = (out->temp << (sa.length + sb.length)) |
153
- ((uint32_t)sa.bits << sb.length) | sb.bits;
154
- out->temp_length += (uint32_t)sa.length + (uint32_t)sb.length;
154
+ (static_cast<uint32_t>(sa.bits) << sb.length) | sb.bits;
155
+ out->temp_length +=
156
+ static_cast<uint32_t>(sa.length) + static_cast<uint32_t>(sb.length);
155
157
  enc_flush_some(out);
156
158
  }
157
159
 
@@ -181,11 +183,11 @@ grpc_slice grpc_chttp2_base64_encode_and_huffman_compress(grpc_slice input) {
181
183
 
182
184
  /* encode full triplets */
183
185
  for (i = 0; i < input_triplets; i++) {
184
- const uint8_t low_to_high = (uint8_t)((in[0] & 0x3) << 4);
186
+ const uint8_t low_to_high = static_cast<uint8_t>((in[0] & 0x3) << 4);
185
187
  const uint8_t high_to_low = in[1] >> 4;
186
188
  enc_add2(&out, in[0] >> 2, low_to_high | high_to_low);
187
189
 
188
- const uint8_t a = (uint8_t)((in[1] & 0xf) << 2);
190
+ const uint8_t a = static_cast<uint8_t>((in[1] & 0xf) << 2);
189
191
  const uint8_t b = (in[2] >> 6);
190
192
  enc_add2(&out, a | b, in[2] & 0x3f);
191
193
  in += 3;
@@ -196,14 +198,14 @@ grpc_slice grpc_chttp2_base64_encode_and_huffman_compress(grpc_slice input) {
196
198
  case 0:
197
199
  break;
198
200
  case 1:
199
- enc_add2(&out, in[0] >> 2, (uint8_t)((in[0] & 0x3) << 4));
201
+ enc_add2(&out, in[0] >> 2, static_cast<uint8_t>((in[0] & 0x3) << 4));
200
202
  in += 1;
201
203
  break;
202
204
  case 2: {
203
- const uint8_t low_to_high = (uint8_t)((in[0] & 0x3) << 4);
205
+ const uint8_t low_to_high = static_cast<uint8_t>((in[0] & 0x3) << 4);
204
206
  const uint8_t high_to_low = in[1] >> 4;
205
207
  enc_add2(&out, in[0] >> 2, low_to_high | high_to_low);
206
- enc_add1(&out, (uint8_t)((in[1] & 0xf) << 2));
208
+ enc_add1(&out, static_cast<uint8_t>((in[1] & 0xf) << 2));
207
209
  in += 2;
208
210
  break;
209
211
  }
@@ -214,8 +216,9 @@ grpc_slice grpc_chttp2_base64_encode_and_huffman_compress(grpc_slice input) {
214
216
  * expanded form due to the "integral promotion" performed (see section
215
217
  * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
216
218
  * is then required to avoid the compiler warning */
217
- *out.out++ = (uint8_t)((uint8_t)(out.temp << (8u - out.temp_length)) |
218
- (uint8_t)(0xffu >> out.temp_length));
219
+ *out.out++ = static_cast<uint8_t>(
220
+ static_cast<uint8_t>(out.temp << (8u - out.temp_length)) |
221
+ static_cast<uint8_t>(0xffu >> out.temp_length));
219
222
  }
220
223
 
221
224
  GPR_ASSERT(out.out <= GRPC_SLICE_END_PTR(output));