grpc 1.27.0.pre1 → 1.30.1

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

Potentially problematic release.


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

Files changed (972) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +8023 -11437
  3. data/include/grpc/grpc.h +2 -2
  4. data/include/grpc/grpc_security.h +30 -9
  5. data/include/grpc/grpc_security_constants.h +1 -0
  6. data/include/grpc/impl/codegen/grpc_types.h +24 -21
  7. data/include/grpc/impl/codegen/port_platform.h +13 -2
  8. data/include/grpc/impl/codegen/sync.h +5 -3
  9. data/include/grpc/impl/codegen/sync_abseil.h +36 -0
  10. data/include/grpc/module.modulemap +25 -37
  11. data/include/grpc/support/sync_abseil.h +26 -0
  12. data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
  13. data/src/core/ext/filters/client_channel/client_channel.cc +282 -249
  14. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +31 -47
  15. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -3
  16. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
  17. data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
  18. data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
  19. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
  20. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -11
  21. data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
  22. data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
  23. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
  24. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
  25. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +297 -0
  26. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +83 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +271 -465
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +8 -7
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +18 -21
  31. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
  32. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -14
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -4
  34. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +148 -98
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
  40. data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -3
  41. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +49 -77
  42. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  43. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
  44. data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
  45. data/src/core/ext/filters/client_channel/resolver.cc +5 -8
  46. data/src/core/ext/filters/client_channel/resolver.h +12 -14
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +120 -132
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +17 -21
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +167 -121
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -2
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +3 -2
  56. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +42 -45
  57. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +94 -103
  58. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
  59. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
  60. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +61 -10
  61. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
  62. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
  63. data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
  64. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +242 -300
  65. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +21 -18
  66. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +56 -206
  67. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +11 -14
  68. data/src/core/ext/filters/client_channel/server_address.h +3 -2
  69. data/src/core/ext/filters/client_channel/service_config.cc +144 -253
  70. data/src/core/ext/filters/client_channel/service_config.h +32 -109
  71. data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
  72. data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
  73. data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
  74. data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
  75. data/src/core/ext/filters/client_channel/subchannel.h +35 -11
  76. data/src/core/ext/filters/client_channel/xds/xds_api.cc +1381 -301
  77. data/src/core/ext/filters/client_channel/xds/xds_api.h +211 -152
  78. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +214 -359
  79. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +28 -44
  80. data/src/core/ext/filters/client_channel/xds/xds_channel.h +3 -1
  81. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +16 -11
  82. data/src/core/ext/filters/client_channel/xds/xds_client.cc +1118 -472
  83. data/src/core/ext/filters/client_channel/xds/xds_client.h +116 -45
  84. data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +59 -135
  85. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +122 -137
  86. data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
  87. data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
  88. data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
  89. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
  90. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
  91. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
  92. data/src/core/ext/filters/message_size/message_size_filter.cc +38 -44
  93. data/src/core/ext/filters/message_size/message_size_filter.h +5 -5
  94. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +7 -10
  95. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
  96. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +26 -27
  97. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  98. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  99. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
  100. data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
  101. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
  102. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
  103. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
  104. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
  105. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
  107. data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
  108. data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
  109. data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
  110. data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
  111. data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
  112. data/src/core/ext/transport/chttp2/transport/writing.cc +16 -9
  113. data/src/core/ext/transport/inproc/inproc_transport.cc +41 -42
  114. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +17 -0
  115. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +30 -0
  116. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -0
  117. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +54 -0
  118. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +5 -205
  119. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -788
  120. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
  121. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
  122. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
  123. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
  124. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
  125. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
  126. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +5 -362
  127. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +14 -1337
  128. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +403 -0
  129. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +1447 -0
  130. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +30 -8
  131. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +60 -0
  132. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +2 -0
  133. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +2 -0
  134. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +7 -4
  135. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +6 -2
  136. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
  137. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
  138. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +87 -23
  139. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +262 -62
  140. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +20 -15
  141. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +46 -32
  142. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
  143. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
  144. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +27 -4
  145. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +70 -0
  146. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +46 -25
  147. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +98 -25
  148. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +2 -0
  149. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +77 -21
  150. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +201 -4
  151. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
  152. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
  153. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +2 -0
  154. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +8 -68
  155. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +14 -201
  156. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +92 -0
  157. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +240 -0
  158. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +2 -71
  159. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +3 -228
  160. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +91 -0
  161. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +266 -0
  162. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +2 -0
  163. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +31 -0
  164. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +53 -0
  165. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +109 -0
  166. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +399 -0
  167. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +18 -0
  168. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +33 -0
  169. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +145 -0
  170. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +527 -0
  171. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +43 -0
  172. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +112 -0
  173. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +30 -0
  174. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +53 -0
  175. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +63 -0
  176. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +199 -0
  177. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +18 -0
  178. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +33 -0
  179. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +815 -0
  180. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +3032 -0
  181. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +59 -0
  182. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +134 -0
  183. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +28 -0
  184. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +53 -0
  185. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +228 -0
  186. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +725 -0
  187. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +316 -0
  188. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +1132 -0
  189. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +33 -0
  190. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +65 -0
  191. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
  192. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
  193. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
  194. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
  195. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
  196. data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
  197. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +63 -0
  198. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +144 -0
  199. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +53 -0
  200. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +133 -0
  201. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +88 -0
  202. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +258 -0
  203. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
  204. data/src/core/ext/upb-generated/envoy/type/range.upb.c +12 -0
  205. data/src/core/ext/upb-generated/envoy/type/range.upb.h +27 -0
  206. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +29 -0
  207. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +62 -0
  208. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +89 -0
  209. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +249 -0
  210. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
  211. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
  212. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +30 -27
  213. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +64 -52
  214. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +48 -0
  215. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +104 -0
  216. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +17 -0
  217. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +30 -0
  218. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
  219. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
  220. data/src/core/ext/upb-generated/validate/validate.upb.c +44 -39
  221. data/src/core/ext/upb-generated/validate/validate.upb.h +155 -119
  222. data/src/core/lib/channel/channel_args.cc +15 -14
  223. data/src/core/lib/channel/channel_args.h +3 -1
  224. data/src/core/lib/channel/channel_stack.h +20 -13
  225. data/src/core/lib/channel/channel_trace.cc +32 -41
  226. data/src/core/lib/channel/channel_trace.h +3 -3
  227. data/src/core/lib/channel/channelz.cc +163 -254
  228. data/src/core/lib/channel/channelz.h +15 -17
  229. data/src/core/lib/channel/channelz_registry.cc +52 -77
  230. data/src/core/lib/channel/channelz_registry.h +4 -4
  231. data/src/core/lib/channel/connected_channel.cc +7 -5
  232. data/src/core/lib/channel/context.h +1 -1
  233. data/src/core/lib/channel/handshaker.cc +11 -13
  234. data/src/core/lib/channel/handshaker.h +4 -2
  235. data/src/core/lib/channel/handshaker_registry.cc +5 -17
  236. data/src/core/lib/channel/status_util.cc +2 -3
  237. data/src/core/lib/compression/message_compress.cc +5 -1
  238. data/src/core/lib/debug/stats.cc +21 -27
  239. data/src/core/lib/debug/stats.h +3 -1
  240. data/src/core/lib/gpr/spinlock.h +2 -3
  241. data/src/core/lib/gpr/string.cc +2 -26
  242. data/src/core/lib/gpr/string.h +0 -16
  243. data/src/core/lib/gpr/sync_abseil.cc +116 -0
  244. data/src/core/lib/gpr/sync_posix.cc +8 -5
  245. data/src/core/lib/gpr/sync_windows.cc +4 -2
  246. data/src/core/lib/gpr/time.cc +4 -0
  247. data/src/core/lib/gpr/time_posix.cc +1 -1
  248. data/src/core/lib/gprpp/atomic.h +6 -6
  249. data/src/core/lib/gprpp/fork.cc +1 -1
  250. data/src/core/lib/gprpp/host_port.cc +30 -36
  251. data/src/core/lib/gprpp/host_port.h +14 -17
  252. data/src/core/lib/gprpp/map.h +5 -11
  253. data/src/core/lib/gprpp/memory.h +2 -6
  254. data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
  255. data/src/core/lib/gprpp/sync.h +9 -0
  256. data/src/core/lib/http/format_request.cc +46 -65
  257. data/src/core/lib/http/httpcli.cc +2 -3
  258. data/src/core/lib/http/httpcli.h +2 -3
  259. data/src/core/lib/http/httpcli_security_connector.cc +5 -5
  260. data/src/core/lib/http/parser.h +2 -3
  261. data/src/core/lib/iomgr/buffer_list.cc +36 -35
  262. data/src/core/lib/iomgr/buffer_list.h +22 -21
  263. data/src/core/lib/iomgr/call_combiner.h +3 -2
  264. data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
  265. data/src/core/lib/iomgr/closure.h +2 -3
  266. data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
  267. data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
  268. data/src/core/lib/iomgr/endpoint_pair.h +2 -3
  269. data/src/core/lib/iomgr/error.cc +6 -9
  270. data/src/core/lib/iomgr/error.h +4 -5
  271. data/src/core/lib/iomgr/ev_apple.cc +356 -0
  272. data/src/core/lib/iomgr/ev_apple.h +43 -0
  273. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
  274. data/src/core/lib/iomgr/ev_epollex_linux.cc +14 -7
  275. data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
  276. data/src/core/lib/iomgr/ev_posix.cc +2 -3
  277. data/src/core/lib/iomgr/exec_ctx.h +14 -2
  278. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
  279. data/src/core/lib/iomgr/load_file.cc +1 -0
  280. data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
  281. data/src/core/lib/iomgr/pollset_uv.h +32 -0
  282. data/src/core/lib/iomgr/port.h +1 -0
  283. data/src/core/lib/iomgr/python_util.h +46 -0
  284. data/src/core/lib/iomgr/resolve_address.h +4 -6
  285. data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
  286. data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
  287. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
  288. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
  289. data/src/core/lib/iomgr/resource_quota.cc +4 -6
  290. data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
  291. data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
  292. data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
  293. data/src/core/lib/iomgr/socket_mutator.h +2 -3
  294. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
  295. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  296. data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
  297. data/src/core/lib/iomgr/tcp_client_posix.cc +25 -22
  298. data/src/core/lib/iomgr/tcp_client_posix.h +6 -6
  299. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
  300. data/src/core/lib/iomgr/tcp_custom.cc +2 -3
  301. data/src/core/lib/iomgr/tcp_posix.cc +2 -1
  302. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
  303. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
  304. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
  305. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
  306. data/src/core/lib/iomgr/tcp_uv.cc +3 -2
  307. data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
  308. data/src/core/lib/iomgr/timer_generic.cc +2 -3
  309. data/src/core/lib/iomgr/timer_generic.h +39 -0
  310. data/src/core/lib/iomgr/timer_heap.h +2 -3
  311. data/src/core/lib/iomgr/udp_server.cc +9 -14
  312. data/src/core/lib/iomgr/work_serializer.cc +155 -0
  313. data/src/core/lib/iomgr/work_serializer.h +65 -0
  314. data/src/core/lib/json/json.h +210 -79
  315. data/src/core/lib/json/json_reader.cc +469 -455
  316. data/src/core/lib/json/json_writer.cc +174 -169
  317. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  318. data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
  319. data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
  320. data/src/core/lib/security/credentials/credentials.cc +0 -84
  321. data/src/core/lib/security/credentials/credentials.h +8 -59
  322. data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
  323. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -12
  324. data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
  325. data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
  326. data/src/core/lib/security/credentials/jwt/json_token.cc +26 -56
  327. data/src/core/lib/security/credentials/jwt/json_token.h +4 -6
  328. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -18
  329. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
  330. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +151 -168
  331. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -6
  332. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +91 -60
  333. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +10 -4
  334. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
  335. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
  336. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
  337. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +40 -12
  338. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
  339. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
  340. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
  341. data/src/core/lib/security/security_connector/local/local_security_connector.cc +6 -8
  342. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  343. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -37
  344. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
  345. data/src/core/lib/security/security_connector/ssl_utils.cc +62 -13
  346. data/src/core/lib/security/security_connector/ssl_utils.h +12 -11
  347. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +101 -52
  348. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +32 -6
  349. data/src/core/lib/security/transport/auth_filters.h +0 -5
  350. data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
  351. data/src/core/lib/security/transport/security_handshaker.cc +2 -2
  352. data/src/core/lib/security/util/json_util.cc +22 -15
  353. data/src/core/lib/security/util/json_util.h +2 -2
  354. data/src/core/lib/slice/slice_intern.cc +2 -3
  355. data/src/core/lib/slice/slice_internal.h +14 -0
  356. data/src/core/lib/slice/slice_utils.h +9 -0
  357. data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
  358. data/src/core/lib/surface/call.cc +2 -3
  359. data/src/core/lib/surface/call_log_batch.cc +50 -58
  360. data/src/core/lib/surface/channel.cc +53 -31
  361. data/src/core/lib/surface/channel.h +35 -4
  362. data/src/core/lib/surface/channel_ping.cc +2 -3
  363. data/src/core/lib/surface/completion_queue.cc +33 -33
  364. data/src/core/lib/surface/event_string.cc +18 -25
  365. data/src/core/lib/surface/event_string.h +3 -1
  366. data/src/core/lib/surface/init_secure.cc +1 -4
  367. data/src/core/lib/surface/server.cc +570 -369
  368. data/src/core/lib/surface/server.h +32 -0
  369. data/src/core/lib/surface/version.cc +2 -2
  370. data/src/core/lib/transport/byte_stream.h +7 -2
  371. data/src/core/lib/transport/connectivity_state.cc +7 -6
  372. data/src/core/lib/transport/connectivity_state.h +5 -3
  373. data/src/core/lib/transport/metadata.cc +3 -3
  374. data/src/core/lib/transport/metadata_batch.h +2 -3
  375. data/src/core/lib/transport/static_metadata.h +1 -1
  376. data/src/core/lib/transport/status_conversion.cc +6 -14
  377. data/src/core/lib/transport/transport.cc +2 -3
  378. data/src/core/lib/transport/transport.h +3 -2
  379. data/src/core/lib/transport/transport_op_string.cc +61 -102
  380. data/src/core/lib/uri/uri_parser.h +2 -3
  381. data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
  382. data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
  383. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +9 -2
  384. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
  385. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +33 -3
  386. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
  387. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
  388. data/src/core/tsi/fake_transport_security.cc +10 -15
  389. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
  390. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  391. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
  392. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -1
  393. data/src/core/tsi/ssl_transport_security.cc +54 -40
  394. data/src/core/tsi/ssl_transport_security.h +8 -8
  395. data/src/core/tsi/ssl_types.h +0 -2
  396. data/src/core/tsi/transport_security.h +6 -9
  397. data/src/core/tsi/transport_security_grpc.h +2 -3
  398. data/src/core/tsi/transport_security_interface.h +3 -3
  399. data/src/ruby/ext/grpc/rb_call.c +9 -1
  400. data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
  401. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  402. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  403. data/src/ruby/lib/grpc/errors.rb +103 -42
  404. data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
  405. data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
  406. data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
  407. data/src/ruby/lib/grpc/generic/service.rb +5 -4
  408. data/src/ruby/lib/grpc/structs.rb +1 -1
  409. data/src/ruby/lib/grpc/version.rb +1 -1
  410. data/src/ruby/pb/generate_proto_ruby.sh +5 -3
  411. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
  412. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
  413. data/src/ruby/spec/debug_message_spec.rb +134 -0
  414. data/src/ruby/spec/generic/service_spec.rb +2 -0
  415. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +5 -0
  416. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -0
  417. data/src/ruby/spec/support/services.rb +10 -4
  418. data/src/ruby/spec/testdata/ca.pem +18 -13
  419. data/src/ruby/spec/testdata/client.key +26 -14
  420. data/src/ruby/spec/testdata/client.pem +18 -12
  421. data/src/ruby/spec/testdata/server1.key +26 -14
  422. data/src/ruby/spec/testdata/server1.pem +20 -14
  423. data/third_party/abseil-cpp/absl/base/attributes.h +13 -1
  424. data/third_party/abseil-cpp/absl/base/config.h +55 -6
  425. data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +30 -9
  426. data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
  427. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +9 -6
  428. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +5 -1
  429. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +2 -2
  430. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -3
  431. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +3 -3
  432. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +15 -13
  433. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +12 -0
  434. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +9 -0
  435. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +37 -0
  436. data/third_party/abseil-cpp/absl/base/options.h +9 -12
  437. data/third_party/abseil-cpp/absl/numeric/int128.cc +2 -2
  438. data/third_party/abseil-cpp/absl/numeric/int128.h +1 -1
  439. data/third_party/abseil-cpp/absl/strings/ascii.cc +3 -3
  440. data/third_party/abseil-cpp/absl/strings/ascii.h +4 -3
  441. data/third_party/abseil-cpp/absl/strings/charconv.cc +0 -1
  442. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -2
  443. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +4 -2
  444. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +388 -0
  445. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +432 -0
  446. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +245 -0
  447. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +209 -0
  448. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +326 -0
  449. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +51 -0
  450. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +415 -0
  451. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +493 -0
  452. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +23 -0
  453. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
  454. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +104 -0
  455. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +334 -0
  456. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +333 -0
  457. data/third_party/abseil-cpp/absl/strings/numbers.cc +54 -5
  458. data/third_party/abseil-cpp/absl/strings/numbers.h +6 -3
  459. data/third_party/abseil-cpp/absl/strings/str_format.h +537 -0
  460. data/third_party/abseil-cpp/absl/strings/string_view.h +31 -24
  461. data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
  462. data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
  463. data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
  464. data/third_party/abseil-cpp/absl/time/clock.h +74 -0
  465. data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
  466. data/third_party/abseil-cpp/absl/time/format.cc +153 -0
  467. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  468. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
  469. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
  470. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  471. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  472. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  473. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  474. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
  475. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  476. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
  477. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
  478. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  479. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
  480. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
  481. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
  482. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  483. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
  484. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  485. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  486. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  487. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
  488. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  489. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  490. data/third_party/abseil-cpp/absl/time/time.cc +499 -0
  491. data/third_party/abseil-cpp/absl/time/time.h +1584 -0
  492. data/{src/boringssl → third_party/boringssl-with-bazel}/err_data.c +329 -297
  493. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bitstr.c +0 -0
  494. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bool.c +0 -0
  495. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_d2i_fp.c +0 -0
  496. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_dup.c +0 -0
  497. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_enum.c +0 -0
  498. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_gentm.c +0 -0
  499. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_i2d_fp.c +0 -0
  500. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_int.c +0 -0
  501. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_mbstr.c +0 -0
  502. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_object.c +0 -0
  503. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_octet.c +0 -0
  504. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_print.c +0 -0
  505. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_strnid.c +0 -0
  506. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_time.c +3 -4
  507. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_type.c +0 -0
  508. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utctm.c +0 -0
  509. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utf8.c +0 -0
  510. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_lib.c +0 -0
  511. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_locl.h +0 -0
  512. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_par.c +0 -0
  513. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn_pack.c +0 -0
  514. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_enum.c +0 -0
  515. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_int.c +0 -0
  516. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_string.c +0 -0
  517. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_dec.c +0 -0
  518. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_enc.c +0 -0
  519. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_fre.c +0 -0
  520. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_new.c +0 -0
  521. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_typ.c +0 -0
  522. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_utl.c +0 -0
  523. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/time_support.c +0 -0
  524. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/base64/base64.c +0 -0
  525. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio.c +0 -0
  526. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio_mem.c +0 -0
  527. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/connect.c +3 -4
  528. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/fd.c +0 -1
  529. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/file.c +5 -6
  530. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/hexdump.c +0 -0
  531. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/internal.h +0 -0
  532. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/pair.c +0 -1
  533. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/printf.c +0 -0
  534. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket.c +0 -0
  535. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket_helper.c +0 -0
  536. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/bn_asn1.c +0 -0
  537. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/convert.c +0 -0
  538. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/buf/buf.c +10 -69
  539. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/asn1_compat.c +0 -0
  540. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/ber.c +0 -0
  541. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbb.c +41 -2
  542. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbs.c +60 -3
  543. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/internal.h +0 -0
  544. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/unicode.c +0 -0
  545. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/chacha.c +0 -0
  546. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/internal.h +0 -0
  547. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/cipher_extra.c +0 -0
  548. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/derive_key.c +1 -1
  549. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesccm.c +0 -0
  550. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesctrhmac.c +0 -0
  551. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesgcmsiv.c +8 -0
  552. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_chacha20poly1305.c +0 -0
  553. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_null.c +0 -0
  554. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc2.c +0 -0
  555. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc4.c +0 -0
  556. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_tls.c +0 -0
  557. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/internal.h +0 -0
  558. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/tls_cbc.c +0 -0
  559. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cmac/cmac.c +0 -0
  560. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf.c +0 -0
  561. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf_def.h +0 -0
  562. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/internal.h +0 -0
  563. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-fuchsia.c +0 -0
  564. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-linux.c +0 -0
  565. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.c +7 -6
  566. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.h +0 -0
  567. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm.c +0 -0
  568. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-intel.c +13 -4
  569. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-ppc64le.c +0 -0
  570. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/crypto.c +11 -0
  571. data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/curve25519.c +18 -26
  572. data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/curve25519_tables.h +13 -21
  573. data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/internal.h +14 -22
  574. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/curve25519/spake25519.c +1 -1
  575. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/check.c +3 -3
  576. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh.c +16 -2
  577. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh_asn1.c +0 -0
  578. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/params.c +0 -0
  579. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/digest_extra/digest_extra.c +0 -0
  580. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa.c +10 -0
  581. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa_asn1.c +0 -0
  582. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_asn1.c +0 -0
  583. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_derive.c +2 -3
  584. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
  585. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
  586. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdh_extra/ecdh_extra.c +2 -2
  587. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdsa_extra/ecdsa_asn1.c +0 -0
  588. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/engine/engine.c +0 -0
  589. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/err.c +39 -38
  590. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/internal.h +0 -0
  591. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/digestsign.c +0 -0
  592. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp.c +0 -0
  593. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_asn1.c +0 -0
  594. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_ctx.c +0 -0
  595. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/internal.h +0 -0
  596. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_dsa_asn1.c +0 -0
  597. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec.c +0 -1
  598. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec_asn1.c +0 -0
  599. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519.c +0 -0
  600. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519_asn1.c +0 -0
  601. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa.c +14 -2
  602. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa_asn1.c +0 -0
  603. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519.c +0 -0
  604. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519_asn1.c +1 -2
  605. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/pbkdf.c +0 -0
  606. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/print.c +0 -0
  607. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/scrypt.c +0 -0
  608. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/sign.c +0 -0
  609. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ex_data.c +0 -0
  610. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +108 -0
  611. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1282 -0
  612. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/internal.h +5 -7
  613. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/key_wrap.c +0 -0
  614. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/mode_wrappers.c +0 -2
  615. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bcm.c +4 -1
  616. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/add.c +0 -0
  617. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -0
  618. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bn.c +0 -0
  619. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bytes.c +0 -0
  620. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/cmp.c +0 -0
  621. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/ctx.c +0 -0
  622. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div.c +0 -0
  623. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div_extra.c +0 -0
  624. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/exponentiation.c +3 -3
  625. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd.c +0 -0
  626. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd_extra.c +0 -0
  627. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/generic.c +0 -0
  628. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/internal.h +14 -11
  629. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/jacobi.c +0 -0
  630. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery.c +8 -8
  631. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery_inv.c +0 -0
  632. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/mul.c +30 -154
  633. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/prime.c +11 -12
  634. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/random.c +0 -0
  635. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.c +0 -0
  636. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.h +0 -0
  637. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/shift.c +0 -0
  638. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/sqrt.c +0 -0
  639. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/aead.c +0 -0
  640. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/cipher.c +0 -0
  641. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_aes.c +3 -5
  642. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_des.c +0 -0
  643. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/internal.h +0 -0
  644. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/delocate.h +0 -0
  645. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/des.c +0 -0
  646. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/internal.h +0 -0
  647. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digest.c +0 -0
  648. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digests.c +16 -0
  649. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/internal.h +0 -0
  650. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/md32_common.h +0 -0
  651. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec.c +289 -117
  652. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_key.c +14 -28
  653. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
  654. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/felem.c +25 -7
  655. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/internal.h +432 -160
  656. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/oct.c +63 -71
  657. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p224-64.c +5 -14
  658. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9497 -0
  659. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
  660. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.h +0 -0
  661. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
  662. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
  663. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +175 -0
  664. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/simple.c +125 -148
  665. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +270 -0
  666. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/util.c +0 -0
  667. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/wnaf.c +61 -18
  668. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdh/ecdh.c +2 -2
  669. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
  670. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/fips_shared_support.c +0 -0
  671. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/hmac/hmac.c +0 -0
  672. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/is_fips.c +0 -0
  673. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md4/md4.c +0 -0
  674. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/internal.h +0 -0
  675. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/md5.c +0 -0
  676. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cbc.c +0 -0
  677. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cfb.c +0 -0
  678. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ctr.c +0 -0
  679. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/gcm.c +45 -193
  680. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +304 -0
  681. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/internal.h +8 -18
  682. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ofb.c +0 -0
  683. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/polyval.c +0 -0
  684. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/ctrdrbg.c +0 -0
  685. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
  686. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
  687. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
  688. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/internal.h +41 -5
  689. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/rand.c +32 -17
  690. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/urandom.c +24 -114
  691. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/blinding.c +4 -0
  692. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/internal.h +1 -0
  693. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/padding.c +0 -0
  694. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa.c +58 -39
  695. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa_impl.c +72 -49
  696. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/self_check/self_check.c +0 -0
  697. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/internal.h +0 -0
  698. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1-altivec.c +0 -0
  699. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1.c +0 -0
  700. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha256.c +0 -0
  701. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha512.c +44 -35
  702. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/internal.h +0 -0
  703. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/kdf.c +0 -0
  704. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hkdf/hkdf.c +0 -0
  705. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/hrss.c +210 -311
  706. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/internal.h +0 -1
  707. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/internal.h +21 -1
  708. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/lhash/lhash.c +0 -0
  709. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/mem.c +99 -12
  710. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj.c +16 -21
  711. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_dat.h +41 -6
  712. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_xref.c +0 -0
  713. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_all.c +0 -0
  714. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_info.c +0 -1
  715. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_lib.c +7 -7
  716. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_oth.c +0 -1
  717. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pk8.c +0 -1
  718. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pkey.c +0 -1
  719. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_x509.c +0 -0
  720. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_xaux.c +0 -0
  721. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/internal.h +0 -0
  722. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7.c +0 -0
  723. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7_x509.c +1 -1
  724. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/internal.h +0 -0
  725. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/p5_pbev2.c +0 -0
  726. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8.c +0 -0
  727. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8_x509.c +0 -0
  728. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/internal.h +0 -0
  729. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305.c +2 -2
  730. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_arm.c +21 -20
  731. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_vec.c +34 -17
  732. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/internal.h +0 -0
  733. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/pool.c +1 -2
  734. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/deterministic.c +6 -10
  735. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/forkunsafe.c +0 -0
  736. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/fuchsia.c +0 -0
  737. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/rand_extra.c +0 -0
  738. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/windows.c +16 -0
  739. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rc4/rc4.c +0 -0
  740. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_c11.c +0 -0
  741. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_lock.c +0 -0
  742. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_asn1.c +0 -0
  743. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_print.c +0 -0
  744. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/siphash/siphash.c +3 -1
  745. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/stack/stack.c +0 -0
  746. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread.c +0 -0
  747. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_none.c +0 -0
  748. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_pthread.c +4 -0
  749. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_win.c +4 -0
  750. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
  751. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
  752. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
  753. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_digest.c +0 -0
  754. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_sign.c +0 -0
  755. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_strex.c +0 -0
  756. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_verify.c +0 -1
  757. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/algorithm.c +0 -0
  758. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/asn1_gen.c +0 -0
  759. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_dir.c +1 -1
  760. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_file.c +0 -1
  761. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/charmap.h +0 -0
  762. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/i2d_pr.c +0 -0
  763. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/internal.h +0 -0
  764. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/rsa_pss.c +0 -0
  765. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_crl.c +0 -0
  766. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_req.c +0 -0
  767. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509.c +0 -0
  768. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509a.c +0 -0
  769. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/vpm_int.h +0 -0
  770. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509.c +0 -0
  771. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_att.c +0 -0
  772. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_cmp.c +0 -1
  773. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_d2.c +0 -0
  774. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_def.c +0 -0
  775. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_ext.c +0 -0
  776. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_lu.c +0 -0
  777. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_obj.c +1 -1
  778. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_r2x.c +0 -1
  779. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_req.c +0 -1
  780. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_set.c +16 -0
  781. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_trs.c +1 -2
  782. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_txt.c +0 -0
  783. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_v3.c +0 -0
  784. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vfy.c +5 -1
  785. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vpm.c +3 -4
  786. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509cset.c +0 -0
  787. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509name.c +4 -3
  788. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509rset.c +0 -0
  789. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509spki.c +0 -0
  790. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_algor.c +0 -0
  791. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_all.c +0 -1
  792. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_attrib.c +0 -0
  793. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_crl.c +0 -0
  794. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_exten.c +0 -0
  795. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_info.c +0 -0
  796. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_name.c +0 -0
  797. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pkey.c +0 -0
  798. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pubkey.c +0 -0
  799. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_req.c +0 -0
  800. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_sig.c +0 -0
  801. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_spki.c +0 -0
  802. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_val.c +0 -0
  803. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509.c +0 -0
  804. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509a.c +0 -0
  805. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/ext_dat.h +0 -0
  806. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/internal.h +0 -0
  807. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_cache.c +0 -0
  808. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_data.c +0 -0
  809. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_int.h +0 -0
  810. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_lib.c +0 -0
  811. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_map.c +0 -0
  812. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_node.c +0 -0
  813. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_tree.c +0 -0
  814. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akey.c +0 -0
  815. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akeya.c +0 -0
  816. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_alt.c +3 -3
  817. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bcons.c +0 -0
  818. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bitst.c +0 -0
  819. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_conf.c +0 -0
  820. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_cpols.c +0 -0
  821. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_crld.c +0 -0
  822. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_enum.c +2 -2
  823. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_extku.c +0 -0
  824. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_genn.c +0 -0
  825. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ia5.c +0 -0
  826. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_info.c +4 -5
  827. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_int.c +0 -0
  828. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_lib.c +0 -0
  829. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ncons.c +0 -0
  830. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ocsp.c +0 -0
  831. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pci.c +0 -0
  832. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcia.c +0 -0
  833. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcons.c +0 -0
  834. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pku.c +0 -0
  835. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pmaps.c +0 -0
  836. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_prn.c +0 -0
  837. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_purp.c +2 -3
  838. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_skey.c +0 -0
  839. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_sxnet.c +0 -0
  840. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_utl.c +11 -12
  841. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aead.h +0 -0
  842. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aes.h +0 -0
  843. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/arm_arch.h +0 -0
  844. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1.h +0 -0
  845. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1_mac.h +0 -0
  846. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1t.h +0 -0
  847. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base.h +5 -1
  848. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base64.h +0 -0
  849. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bio.h +0 -0
  850. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/blowfish.h +0 -0
  851. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bn.h +32 -20
  852. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buf.h +9 -9
  853. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buffer.h +0 -0
  854. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bytestring.h +34 -0
  855. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cast.h +0 -0
  856. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/chacha.h +0 -0
  857. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cipher.h +0 -0
  858. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cmac.h +0 -0
  859. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/conf.h +0 -0
  860. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cpu.h +0 -0
  861. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/crypto.h +9 -4
  862. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/curve25519.h +0 -0
  863. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/des.h +0 -0
  864. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dh.h +20 -0
  865. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/digest.h +1 -0
  866. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dsa.h +16 -0
  867. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dtls1.h +0 -0
  868. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/e_os2.h +0 -0
  869. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec.h +11 -4
  870. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec_key.h +4 -2
  871. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdh.h +0 -0
  872. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdsa.h +6 -0
  873. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/engine.h +0 -0
  874. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/err.h +13 -9
  875. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/evp.h +20 -0
  876. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ex_data.h +0 -0
  877. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hkdf.h +0 -0
  878. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hmac.h +0 -0
  879. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hrss.h +0 -0
  880. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/is_boringssl.h +0 -0
  881. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/lhash.h +0 -0
  882. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md4.h +0 -0
  883. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md5.h +0 -0
  884. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/mem.h +17 -2
  885. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/nid.h +14 -0
  886. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj.h +0 -0
  887. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj_mac.h +0 -0
  888. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/objects.h +0 -0
  889. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslconf.h +0 -0
  890. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslv.h +0 -0
  891. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ossl_typ.h +0 -0
  892. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pem.h +0 -0
  893. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs12.h +0 -0
  894. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs7.h +0 -0
  895. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs8.h +0 -0
  896. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/poly1305.h +5 -7
  897. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pool.h +0 -0
  898. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rand.h +3 -17
  899. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rc4.h +0 -0
  900. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ripemd.h +0 -0
  901. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rsa.h +31 -0
  902. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/safestack.h +0 -0
  903. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/sha.h +26 -0
  904. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/siphash.h +0 -0
  905. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/span.h +0 -0
  906. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/srtp.h +0 -0
  907. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl.h +182 -97
  908. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl3.h +0 -0
  909. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/stack.h +0 -0
  910. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/thread.h +0 -0
  911. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/tls1.h +1 -3
  912. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
  913. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/type_check.h +0 -0
  914. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509.h +5 -3
  915. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509_vfy.h +1 -0
  916. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509v3.h +0 -0
  917. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/bio_ssl.cc +0 -0
  918. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_both.cc +0 -5
  919. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_lib.cc +3 -3
  920. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_pkt.cc +0 -1
  921. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_srtp.cc +0 -0
  922. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_method.cc +13 -5
  923. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_record.cc +0 -0
  924. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handoff.cc +237 -51
  925. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake.cc +19 -7
  926. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_client.cc +51 -32
  927. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_server.cc +12 -8
  928. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/internal.h +94 -71
  929. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_both.cc +10 -10
  930. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_lib.cc +4 -5
  931. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_pkt.cc +21 -22
  932. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_aead_ctx.cc +0 -0
  933. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_asn1.cc +30 -2
  934. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_buffer.cc +34 -15
  935. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cert.cc +4 -1
  936. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cipher.cc +0 -1
  937. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_file.cc +0 -0
  938. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_key_share.cc +0 -0
  939. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_lib.cc +19 -15
  940. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_privkey.cc +13 -2
  941. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_session.cc +66 -6
  942. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_stat.cc +6 -0
  943. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_transcript.cc +0 -0
  944. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_versions.cc +1 -1
  945. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_x509.cc +0 -0
  946. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_enc.cc +6 -2
  947. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_lib.cc +53 -219
  948. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_both.cc +1 -1
  949. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_client.cc +101 -31
  950. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_enc.cc +28 -76
  951. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_server.cc +111 -104
  952. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_method.cc +64 -26
  953. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_record.cc +7 -2
  954. data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_32.h +245 -175
  955. data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_64.h +135 -75
  956. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3147 -0
  957. data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256_64.h +512 -503
  958. metadata +648 -503
  959. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1917
  960. data/src/core/lib/gprpp/inlined_vector.h +0 -246
  961. data/src/core/lib/gprpp/optional.h +0 -74
  962. data/src/core/lib/gprpp/string_view.h +0 -169
  963. data/src/core/lib/iomgr/logical_thread.cc +0 -103
  964. data/src/core/lib/iomgr/logical_thread.h +0 -52
  965. data/src/core/lib/json/json.cc +0 -94
  966. data/src/core/tsi/grpc_shadow_boringssl.h +0 -3297
  967. data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +0 -860
  968. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -9501
  969. data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +0 -96
  970. data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +0 -84
  971. data/third_party/boringssl/third_party/fiat/p256.c +0 -1063
  972. data/third_party/boringssl/third_party/fiat/p256_32.h +0 -3226
@@ -23,7 +23,7 @@
23
23
 
24
24
  #include <stddef.h>
25
25
 
26
- typedef struct {
26
+ struct grpc_uri {
27
27
  char* scheme;
28
28
  char* authority;
29
29
  char* path;
@@ -35,8 +35,7 @@ typedef struct {
35
35
  /** Split each query part by '='. NULL if not present. */
36
36
  char** query_parts_values;
37
37
  char* fragment;
38
- } grpc_uri;
39
-
38
+ };
40
39
  /** parse a uri, return NULL on failure */
41
40
  grpc_uri* grpc_uri_parse(const char* uri_text, bool suppress_errors);
42
41
 
@@ -36,8 +36,16 @@ void grpc_lb_policy_grpclb_init(void);
36
36
  void grpc_lb_policy_grpclb_shutdown(void);
37
37
  void grpc_lb_policy_cds_init(void);
38
38
  void grpc_lb_policy_cds_shutdown(void);
39
- void grpc_lb_policy_xds_init(void);
40
- void grpc_lb_policy_xds_shutdown(void);
39
+ void grpc_lb_policy_eds_init(void);
40
+ void grpc_lb_policy_eds_shutdown(void);
41
+ void grpc_lb_policy_lrs_init(void);
42
+ void grpc_lb_policy_lrs_shutdown(void);
43
+ void grpc_lb_policy_priority_init(void);
44
+ void grpc_lb_policy_priority_shutdown(void);
45
+ void grpc_lb_policy_weighted_target_init(void);
46
+ void grpc_lb_policy_weighted_target_shutdown(void);
47
+ void grpc_lb_policy_xds_routing_init(void);
48
+ void grpc_lb_policy_xds_routing_shutdown(void);
41
49
  void grpc_lb_policy_pick_first_init(void);
42
50
  void grpc_lb_policy_pick_first_shutdown(void);
43
51
  void grpc_lb_policy_round_robin_init(void);
@@ -78,8 +86,16 @@ void grpc_register_built_in_plugins(void) {
78
86
  grpc_lb_policy_grpclb_shutdown);
79
87
  grpc_register_plugin(grpc_lb_policy_cds_init,
80
88
  grpc_lb_policy_cds_shutdown);
81
- grpc_register_plugin(grpc_lb_policy_xds_init,
82
- grpc_lb_policy_xds_shutdown);
89
+ grpc_register_plugin(grpc_lb_policy_eds_init,
90
+ grpc_lb_policy_eds_shutdown);
91
+ grpc_register_plugin(grpc_lb_policy_lrs_init,
92
+ grpc_lb_policy_lrs_shutdown);
93
+ grpc_register_plugin(grpc_lb_policy_priority_init,
94
+ grpc_lb_policy_priority_shutdown);
95
+ grpc_register_plugin(grpc_lb_policy_weighted_target_init,
96
+ grpc_lb_policy_weighted_target_shutdown);
97
+ grpc_register_plugin(grpc_lb_policy_xds_routing_init,
98
+ grpc_lb_policy_xds_routing_shutdown);
83
99
  grpc_register_plugin(grpc_lb_policy_pick_first_init,
84
100
  grpc_lb_policy_pick_first_shutdown);
85
101
  grpc_register_plugin(grpc_lb_policy_round_robin_init,
@@ -18,8 +18,6 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/tsi/grpc_shadow_boringssl.h"
22
-
23
21
  #include "src/core/tsi/alts/crypt/gsec.h"
24
22
 
25
23
  #include <openssl/bio.h>
@@ -102,6 +102,8 @@ typedef struct alts_grpc_handshaker_client {
102
102
  bool receive_status_finished;
103
103
  /* if non-null, contains arguments to complete a TSI next callback. */
104
104
  recv_message_result* pending_recv_message_result;
105
+ /* Maximum frame size used by frame protector. */
106
+ size_t max_frame_size;
105
107
  } alts_grpc_handshaker_client;
106
108
 
107
109
  static void handshaker_client_send_buffer_destroy(
@@ -506,6 +508,8 @@ static grpc_byte_buffer* get_serialized_start_client(
506
508
  upb_strview_makez(ptr->data));
507
509
  ptr = ptr->next;
508
510
  }
511
+ grpc_gcp_StartClientHandshakeReq_set_max_frame_size(
512
+ start_client, static_cast<uint32_t>(client->max_frame_size));
509
513
  return get_serialized_handshaker_req(req, arena.ptr());
510
514
  }
511
515
 
@@ -565,6 +569,8 @@ static grpc_byte_buffer* get_serialized_start_server(
565
569
  arena.ptr());
566
570
  grpc_gcp_RpcProtocolVersions_assign_from_struct(
567
571
  server_version, arena.ptr(), &client->options->rpc_versions);
572
+ grpc_gcp_StartServerHandshakeReq_set_max_frame_size(
573
+ start_server, static_cast<uint32_t>(client->max_frame_size));
568
574
  return get_serialized_handshaker_req(req, arena.ptr());
569
575
  }
570
576
 
@@ -637,7 +643,7 @@ static void handshaker_client_shutdown(alts_handshaker_client* c) {
637
643
  }
638
644
  }
639
645
 
640
- static void handshaker_call_unref(void* arg, grpc_error* error) {
646
+ static void handshaker_call_unref(void* arg, grpc_error* /* error */) {
641
647
  grpc_call* call = static_cast<grpc_call*>(arg);
642
648
  grpc_call_unref(call);
643
649
  }
@@ -674,7 +680,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
674
680
  grpc_alts_credentials_options* options, const grpc_slice& target_name,
675
681
  grpc_iomgr_cb_func grpc_cb, tsi_handshaker_on_next_done_cb cb,
676
682
  void* user_data, alts_handshaker_client_vtable* vtable_for_testing,
677
- bool is_client) {
683
+ bool is_client, size_t max_frame_size) {
678
684
  if (channel == nullptr || handshaker_service_url == nullptr) {
679
685
  gpr_log(GPR_ERROR, "Invalid arguments to alts_handshaker_client_create()");
680
686
  return nullptr;
@@ -694,6 +700,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
694
700
  client->recv_bytes = grpc_empty_slice();
695
701
  grpc_metadata_array_init(&client->recv_initial_metadata);
696
702
  client->is_client = is_client;
703
+ client->max_frame_size = max_frame_size;
697
704
  client->buffer_size = TSI_ALTS_INITIAL_BUFFER_SIZE;
698
705
  client->buffer = static_cast<unsigned char*>(gpr_zalloc(client->buffer_size));
699
706
  grpc_slice slice = grpc_slice_from_copied_string(handshaker_service_url);
@@ -117,7 +117,7 @@ void alts_handshaker_client_destroy(alts_handshaker_client* client);
117
117
  * This method creates an ALTS handshaker client.
118
118
  *
119
119
  * - handshaker: ALTS TSI handshaker to which the created handshaker client
120
- * belongs to.
120
+ * belongs to.
121
121
  * - channel: grpc channel to ALTS handshaker service.
122
122
  * - handshaker_service_url: address of ALTS handshaker service in the format of
123
123
  * "host:port".
@@ -132,8 +132,12 @@ void alts_handshaker_client_destroy(alts_handshaker_client* client);
132
132
  * - vtable_for_testing: ALTS handshaker client vtable instance used for
133
133
  * testing purpose.
134
134
  * - is_client: a boolean value indicating if the created handshaker client is
135
- * used at the client (is_client = true) or server (is_client = false) side. It
136
- * returns the created ALTS handshaker client on success, and NULL on failure.
135
+ * used at the client (is_client = true) or server (is_client = false) side.
136
+ * - max_frame_size: Maximum frame size used by frame protector (User specified
137
+ * maximum frame size if present or default max frame size).
138
+ *
139
+ * It returns the created ALTS handshaker client on success, and NULL
140
+ * on failure.
137
141
  */
138
142
  alts_handshaker_client* alts_grpc_handshaker_client_create(
139
143
  alts_tsi_handshaker* handshaker, grpc_channel* channel,
@@ -141,7 +145,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
141
145
  grpc_alts_credentials_options* options, const grpc_slice& target_name,
142
146
  grpc_iomgr_cb_func grpc_cb, tsi_handshaker_on_next_done_cb cb,
143
147
  void* user_data, alts_handshaker_client_vtable* vtable_for_testing,
144
- bool is_client);
148
+ bool is_client, size_t max_frame_size);
145
149
 
146
150
  /**
147
151
  * This method handles handshaker response returned from ALTS handshaker
@@ -63,6 +63,8 @@ struct alts_tsi_handshaker {
63
63
  // shutdown effectively follows base.handshake_shutdown,
64
64
  // but is synchronized by the mutex of this object.
65
65
  bool shutdown;
66
+ // Maximum frame size used by frame protector.
67
+ size_t max_frame_size;
66
68
  };
67
69
 
68
70
  /* Main struct for ALTS TSI handshaker result. */
@@ -75,6 +77,8 @@ typedef struct alts_tsi_handshaker_result {
75
77
  grpc_slice rpc_versions;
76
78
  bool is_client;
77
79
  grpc_slice serialized_context;
80
+ // Peer's maximum frame size.
81
+ size_t max_frame_size;
78
82
  } alts_tsi_handshaker_result;
79
83
 
80
84
  static tsi_result handshaker_result_extract_peer(
@@ -156,6 +160,26 @@ static tsi_result handshaker_result_create_zero_copy_grpc_protector(
156
160
  alts_tsi_handshaker_result* result =
157
161
  reinterpret_cast<alts_tsi_handshaker_result*>(
158
162
  const_cast<tsi_handshaker_result*>(self));
163
+
164
+ // In case the peer does not send max frame size (e.g. peer is gRPC Go or
165
+ // peer uses an old binary), the negotiated frame size is set to
166
+ // kTsiAltsMinFrameSize (ignoring max_output_protected_frame_size value if
167
+ // present). Otherwise, it is based on peer and user specified max frame
168
+ // size (if present).
169
+ size_t max_frame_size = kTsiAltsMinFrameSize;
170
+ if (result->max_frame_size) {
171
+ size_t peer_max_frame_size = result->max_frame_size;
172
+ max_frame_size = std::min<size_t>(peer_max_frame_size,
173
+ max_output_protected_frame_size == nullptr
174
+ ? kTsiAltsMaxFrameSize
175
+ : *max_output_protected_frame_size);
176
+ max_frame_size = std::max<size_t>(max_frame_size, kTsiAltsMinFrameSize);
177
+ }
178
+ max_output_protected_frame_size = &max_frame_size;
179
+ gpr_log(GPR_DEBUG,
180
+ "After Frame Size Negotiation, maximum frame size used by frame "
181
+ "protector equals %zu",
182
+ *max_output_protected_frame_size);
159
183
  tsi_result ok = alts_zero_copy_grpc_protector_create(
160
184
  reinterpret_cast<const uint8_t*>(result->key_data),
161
185
  kAltsAes128GcmRekeyKeyLength, /*is_rekey=*/true, result->is_client,
@@ -288,6 +312,7 @@ tsi_result alts_tsi_handshaker_result_create(grpc_gcp_HandshakerResp* resp,
288
312
  static_cast<char*>(gpr_zalloc(peer_service_account.size + 1));
289
313
  memcpy(result->peer_identity, peer_service_account.data,
290
314
  peer_service_account.size);
315
+ result->max_frame_size = grpc_gcp_HandshakerResult_max_frame_size(hresult);
291
316
  upb::Arena rpc_versions_arena;
292
317
  bool serialized = grpc_gcp_rpc_protocol_versions_encode(
293
318
  peer_rpc_version, rpc_versions_arena.ptr(), &result->rpc_versions);
@@ -374,7 +399,8 @@ static tsi_result alts_tsi_handshaker_continue_handshaker_next(
374
399
  handshaker, channel, handshaker->handshaker_service_url,
375
400
  handshaker->interested_parties, handshaker->options,
376
401
  handshaker->target_name, grpc_cb, cb, user_data,
377
- handshaker->client_vtable_for_testing, handshaker->is_client);
402
+ handshaker->client_vtable_for_testing, handshaker->is_client,
403
+ handshaker->max_frame_size);
378
404
  if (client == nullptr) {
379
405
  gpr_log(GPR_ERROR, "Failed to create ALTS handshaker client");
380
406
  return TSI_FAILED_PRECONDITION;
@@ -430,7 +456,7 @@ struct alts_tsi_handshaker_continue_handshaker_next_args {
430
456
  };
431
457
 
432
458
  static void alts_tsi_handshaker_create_channel(void* arg,
433
- grpc_error* unused_error) {
459
+ grpc_error* /* unused_error */) {
434
460
  alts_tsi_handshaker_continue_handshaker_next_args* next_args =
435
461
  static_cast<alts_tsi_handshaker_continue_handshaker_next_args*>(arg);
436
462
  alts_tsi_handshaker* handshaker = next_args->handshaker;
@@ -570,7 +596,8 @@ bool alts_tsi_handshaker_has_shutdown(alts_tsi_handshaker* handshaker) {
570
596
  tsi_result alts_tsi_handshaker_create(
571
597
  const grpc_alts_credentials_options* options, const char* target_name,
572
598
  const char* handshaker_service_url, bool is_client,
573
- grpc_pollset_set* interested_parties, tsi_handshaker** self) {
599
+ grpc_pollset_set* interested_parties, tsi_handshaker** self,
600
+ size_t user_specified_max_frame_size) {
574
601
  if (handshaker_service_url == nullptr || self == nullptr ||
575
602
  options == nullptr || (is_client && target_name == nullptr)) {
576
603
  gpr_log(GPR_ERROR, "Invalid arguments to alts_tsi_handshaker_create()");
@@ -590,6 +617,9 @@ tsi_result alts_tsi_handshaker_create(
590
617
  handshaker->has_created_handshaker_client = false;
591
618
  handshaker->handshaker_service_url = gpr_strdup(handshaker_service_url);
592
619
  handshaker->options = grpc_alts_credentials_options_copy(options);
620
+ handshaker->max_frame_size = user_specified_max_frame_size != 0
621
+ ? user_specified_max_frame_size
622
+ : kTsiAltsMaxFrameSize;
593
623
  handshaker->base.vtable = handshaker->use_dedicated_cq
594
624
  ? &handshaker_vtable_dedicated
595
625
  : &handshaker_vtable;
@@ -38,6 +38,11 @@
38
38
 
39
39
  const size_t kTsiAltsNumOfPeerProperties = 5;
40
40
 
41
+ // Frame size negotiation extends send frame size range to
42
+ // [kTsiAltsMinFrameSize, kTsiAltsMaxFrameSize].
43
+ const size_t kTsiAltsMinFrameSize = 16 * 1024;
44
+ const size_t kTsiAltsMaxFrameSize = 128 * 1024;
45
+
41
46
  typedef struct alts_tsi_handshaker alts_tsi_handshaker;
42
47
 
43
48
  /**
@@ -54,6 +59,8 @@ typedef struct alts_tsi_handshaker alts_tsi_handshaker;
54
59
  * - interested_parties: set of pollsets interested in this connection.
55
60
  * - self: address of ALTS TSI handshaker instance to be returned from the
56
61
  * method.
62
+ * - user_specified_max_frame_size: Determines the maximum frame size used by
63
+ * frame protector that is specified via user. If unspecified, the value is 0.
57
64
  *
58
65
  * It returns TSI_OK on success and an error status code on failure. Note that
59
66
  * if interested_parties is nullptr, a dedicated TSI thread will be created and
@@ -62,7 +69,8 @@ typedef struct alts_tsi_handshaker alts_tsi_handshaker;
62
69
  tsi_result alts_tsi_handshaker_create(
63
70
  const grpc_alts_credentials_options* options, const char* target_name,
64
71
  const char* handshaker_service_url, bool is_client,
65
- grpc_pollset_set* interested_parties, tsi_handshaker** self);
72
+ grpc_pollset_set* interested_parties, tsi_handshaker** self,
73
+ size_t user_specified_max_frame_size);
66
74
 
67
75
  /**
68
76
  * This method creates an ALTS TSI handshaker result instance.
@@ -31,7 +31,7 @@
31
31
  #include "src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h"
32
32
 
33
33
  /* V-table for alts_grpc_record_protocol implementations. */
34
- typedef struct {
34
+ struct alts_grpc_record_protocol_vtable {
35
35
  tsi_result (*protect)(alts_grpc_record_protocol* self,
36
36
  grpc_slice_buffer* unprotected_slices,
37
37
  grpc_slice_buffer* protected_slices);
@@ -39,8 +39,7 @@ typedef struct {
39
39
  grpc_slice_buffer* protected_slices,
40
40
  grpc_slice_buffer* unprotected_slices);
41
41
  void (*destruct)(alts_grpc_record_protocol* self);
42
- } alts_grpc_record_protocol_vtable;
43
-
42
+ };
44
43
  /* Main struct for alts_grpc_record_protocol implementation, shared by both
45
44
  * integrity-only record protocol and privacy-integrity record protocol.
46
45
  * Integrity-only record protocol has additional data elements.
@@ -42,14 +42,13 @@
42
42
  | size | data |
43
43
  where the size field value is the size of the size field plus the size of
44
44
  the data encoded in little endian on 4 bytes. */
45
- typedef struct {
45
+ struct tsi_fake_frame {
46
46
  unsigned char* data;
47
47
  size_t size;
48
48
  size_t allocated_size;
49
49
  size_t offset;
50
50
  int needs_draining;
51
- } tsi_fake_frame;
52
-
51
+ };
53
52
  typedef enum {
54
53
  TSI_FAKE_CLIENT_INIT = 0,
55
54
  TSI_FAKE_SERVER_INIT = 1,
@@ -58,7 +57,7 @@ typedef enum {
58
57
  TSI_FAKE_HANDSHAKE_MESSAGE_MAX = 4
59
58
  } tsi_fake_handshake_message;
60
59
 
61
- typedef struct {
60
+ struct tsi_fake_handshaker {
62
61
  tsi_handshaker base;
63
62
  int is_client;
64
63
  tsi_fake_handshake_message next_message_to_send;
@@ -68,23 +67,20 @@ typedef struct {
68
67
  unsigned char* outgoing_bytes_buffer;
69
68
  size_t outgoing_bytes_buffer_size;
70
69
  tsi_result result;
71
- } tsi_fake_handshaker;
72
-
73
- typedef struct {
70
+ };
71
+ struct tsi_fake_frame_protector {
74
72
  tsi_frame_protector base;
75
73
  tsi_fake_frame protect_frame;
76
74
  tsi_fake_frame unprotect_frame;
77
75
  size_t max_frame_size;
78
- } tsi_fake_frame_protector;
79
-
80
- typedef struct {
76
+ };
77
+ struct tsi_fake_zero_copy_grpc_protector {
81
78
  tsi_zero_copy_grpc_protector base;
82
79
  grpc_slice_buffer header_sb;
83
80
  grpc_slice_buffer protected_sb;
84
81
  size_t max_frame_size;
85
82
  size_t parsed_frame_size;
86
- } tsi_fake_zero_copy_grpc_protector;
87
-
83
+ };
88
84
  /* --- Utils. ---*/
89
85
 
90
86
  static const char* tsi_fake_handshake_message_strings[] = {
@@ -488,12 +484,11 @@ static const tsi_zero_copy_grpc_protector_vtable
488
484
 
489
485
  /* --- tsi_handshaker_result methods implementation. ---*/
490
486
 
491
- typedef struct {
487
+ struct fake_handshaker_result {
492
488
  tsi_handshaker_result base;
493
489
  unsigned char* unused_bytes;
494
490
  size_t unused_bytes_size;
495
- } fake_handshaker_result;
496
-
491
+ };
497
492
  static tsi_result fake_handshaker_result_extract_peer(
498
493
  const tsi_handshaker_result* self, tsi_peer* peer) {
499
494
  /* Construct a tsi_peer with 1 property: certificate type, security_level. */
@@ -21,8 +21,6 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "src/core/tsi/grpc_shadow_boringssl.h"
25
-
26
24
  #include <grpc/slice.h>
27
25
 
28
26
  extern "C" {
@@ -49,7 +49,7 @@ class BoringSslCachedSession : public SslCachedSession {
49
49
 
50
50
  std::unique_ptr<SslCachedSession> SslCachedSession::Create(
51
51
  SslSessionPtr session) {
52
- return grpc_core::MakeUnique<BoringSslCachedSession>(std::move(session));
52
+ return absl::make_unique<BoringSslCachedSession>(std::move(session));
53
53
  }
54
54
 
55
55
  } // namespace tsi
@@ -21,8 +21,6 @@
21
21
 
22
22
  #include <grpc/support/port_platform.h>
23
23
 
24
- #include "src/core/tsi/grpc_shadow_boringssl.h"
25
-
26
24
  #include <grpc/slice.h>
27
25
  #include <grpc/support/sync.h>
28
26
 
@@ -67,7 +67,7 @@ class OpenSslCachedSession : public SslCachedSession {
67
67
 
68
68
  std::unique_ptr<SslCachedSession> SslCachedSession::Create(
69
69
  SslSessionPtr session) {
70
- return grpc_core::MakeUnique<OpenSslCachedSession>(std::move(session));
70
+ return absl::make_unique<OpenSslCachedSession>(std::move(session));
71
71
  }
72
72
 
73
73
  } // namespace tsi
@@ -18,8 +18,6 @@
18
18
 
19
19
  #include <grpc/support/port_platform.h>
20
20
 
21
- #include "src/core/tsi/grpc_shadow_boringssl.h"
22
-
23
21
  #include "src/core/tsi/ssl_transport_security.h"
24
22
 
25
23
  #include <limits.h>
@@ -42,6 +40,9 @@
42
40
  #include <grpc/support/sync.h>
43
41
  #include <grpc/support/thd_id.h>
44
42
 
43
+ #include "absl/strings/match.h"
44
+ #include "absl/strings/string_view.h"
45
+
45
46
  extern "C" {
46
47
  #include <openssl/bio.h>
47
48
  #include <openssl/crypto.h> /* For OPENSSL_free */
@@ -105,7 +106,7 @@ struct tsi_ssl_server_handshaker_factory {
105
106
  size_t alpn_protocol_list_length;
106
107
  };
107
108
 
108
- typedef struct {
109
+ struct tsi_ssl_handshaker {
109
110
  tsi_handshaker base;
110
111
  SSL* ssl;
111
112
  BIO* network_io;
@@ -113,25 +114,22 @@ typedef struct {
113
114
  unsigned char* outgoing_bytes_buffer;
114
115
  size_t outgoing_bytes_buffer_size;
115
116
  tsi_ssl_handshaker_factory* factory_ref;
116
- } tsi_ssl_handshaker;
117
-
118
- typedef struct {
117
+ };
118
+ struct tsi_ssl_handshaker_result {
119
119
  tsi_handshaker_result base;
120
120
  SSL* ssl;
121
121
  BIO* network_io;
122
122
  unsigned char* unused_bytes;
123
123
  size_t unused_bytes_size;
124
- } tsi_ssl_handshaker_result;
125
-
126
- typedef struct {
124
+ };
125
+ struct tsi_ssl_frame_protector {
127
126
  tsi_frame_protector base;
128
127
  SSL* ssl;
129
128
  BIO* network_io;
130
129
  unsigned char* buffer;
131
130
  size_t buffer_size;
132
131
  size_t buffer_offset;
133
- } tsi_ssl_frame_protector;
134
-
132
+ };
135
133
  /* --- Library Initialization. ---*/
136
134
 
137
135
  static gpr_once g_init_openssl_once = GPR_ONCE_INIT;
@@ -238,7 +236,7 @@ static void ssl_info_callback(const SSL* ssl, int where, int ret) {
238
236
 
239
237
  /* Returns 1 if name looks like an IP address, 0 otherwise.
240
238
  This is a very rough heuristic, and only handles IPv6 in hexadecimal form. */
241
- static int looks_like_ip_address(grpc_core::StringView name) {
239
+ static int looks_like_ip_address(absl::string_view name) {
242
240
  size_t dot_count = 0;
243
241
  size_t num_size = 0;
244
242
  for (size_t i = 0; i < name.size(); ++i) {
@@ -345,13 +343,10 @@ static tsi_result add_pem_certificate(X509* cert, tsi_peer_property* property) {
345
343
  /* Gets the subject SANs from an X509 cert as a tsi_peer_property. */
346
344
  static tsi_result add_subject_alt_names_properties_to_peer(
347
345
  tsi_peer* peer, GENERAL_NAMES* subject_alt_names,
348
- size_t subject_alt_name_count) {
346
+ size_t subject_alt_name_count, int* current_insert_index) {
349
347
  size_t i;
350
348
  tsi_result result = TSI_OK;
351
349
 
352
- /* Reset for DNS entries filtering. */
353
- peer->property_count -= subject_alt_name_count;
354
-
355
350
  for (i = 0; i < subject_alt_name_count; i++) {
356
351
  GENERAL_NAME* subject_alt_name =
357
352
  sk_GENERAL_NAME_value(subject_alt_names, TSI_SIZE_AS_SIZE(i));
@@ -376,7 +371,17 @@ static tsi_result add_subject_alt_names_properties_to_peer(
376
371
  result = tsi_construct_string_peer_property(
377
372
  TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY,
378
373
  reinterpret_cast<const char*>(name), static_cast<size_t>(name_size),
379
- &peer->properties[peer->property_count++]);
374
+ &peer->properties[(*current_insert_index)++]);
375
+ if (result != TSI_OK) {
376
+ OPENSSL_free(name);
377
+ break;
378
+ }
379
+ if (subject_alt_name->type == GEN_URI) {
380
+ result = tsi_construct_string_peer_property(
381
+ TSI_X509_URI_PEER_PROPERTY, reinterpret_cast<const char*>(name),
382
+ static_cast<size_t>(name_size),
383
+ &peer->properties[(*current_insert_index)++]);
384
+ }
380
385
  OPENSSL_free(name);
381
386
  } else if (subject_alt_name->type == GEN_IPADD) {
382
387
  char ntop_buf[INET6_ADDRSTRLEN];
@@ -401,7 +406,7 @@ static tsi_result add_subject_alt_names_properties_to_peer(
401
406
 
402
407
  result = tsi_construct_string_peer_property_from_cstring(
403
408
  TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY, name,
404
- &peer->properties[peer->property_count++]);
409
+ &peer->properties[(*current_insert_index)++]);
405
410
  }
406
411
  if (result != TSI_OK) break;
407
412
  }
@@ -424,26 +429,35 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
424
429
  property_count = (include_certificate_type ? static_cast<size_t>(1) : 0) +
425
430
  2 /* common name, certificate */ +
426
431
  static_cast<size_t>(subject_alt_name_count);
432
+ for (int i = 0; i < subject_alt_name_count; i++) {
433
+ GENERAL_NAME* subject_alt_name =
434
+ sk_GENERAL_NAME_value(subject_alt_names, TSI_SIZE_AS_SIZE(i));
435
+ if (subject_alt_name->type == GEN_URI) {
436
+ property_count += 1;
437
+ }
438
+ }
427
439
  result = tsi_construct_peer(property_count, peer);
428
440
  if (result != TSI_OK) return result;
441
+ int current_insert_index = 0;
429
442
  do {
430
443
  if (include_certificate_type) {
431
444
  result = tsi_construct_string_peer_property_from_cstring(
432
445
  TSI_CERTIFICATE_TYPE_PEER_PROPERTY, TSI_X509_CERTIFICATE_TYPE,
433
- &peer->properties[0]);
446
+ &peer->properties[current_insert_index++]);
434
447
  if (result != TSI_OK) break;
435
448
  }
436
449
  result = peer_property_from_x509_common_name(
437
- cert, &peer->properties[include_certificate_type ? 1 : 0]);
450
+ cert, &peer->properties[current_insert_index++]);
438
451
  if (result != TSI_OK) break;
439
452
 
440
- result = add_pem_certificate(
441
- cert, &peer->properties[include_certificate_type ? 2 : 1]);
453
+ result =
454
+ add_pem_certificate(cert, &peer->properties[current_insert_index++]);
442
455
  if (result != TSI_OK) break;
443
456
 
444
457
  if (subject_alt_name_count != 0) {
445
458
  result = add_subject_alt_names_properties_to_peer(
446
- peer, subject_alt_names, static_cast<size_t>(subject_alt_name_count));
459
+ peer, subject_alt_names, static_cast<size_t>(subject_alt_name_count),
460
+ &current_insert_index);
447
461
  if (result != TSI_OK) break;
448
462
  }
449
463
  } while (0);
@@ -452,6 +466,8 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
452
466
  sk_GENERAL_NAME_pop_free(subject_alt_names, GENERAL_NAME_free);
453
467
  }
454
468
  if (result != TSI_OK) tsi_peer_destruct(peer);
469
+
470
+ GPR_ASSERT((int)peer->property_count == current_insert_index);
455
471
  return result;
456
472
  }
457
473
 
@@ -1122,7 +1138,8 @@ static void tsi_ssl_handshaker_factory_init(
1122
1138
  tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
1123
1139
  tsi_peer_property* property) {
1124
1140
  BIO* bio = BIO_new(BIO_s_mem());
1125
- for (int i = 0; i < sk_X509_num(peer_chain); i++) {
1141
+ const auto peer_chain_len = sk_X509_num(peer_chain);
1142
+ for (auto i = decltype(peer_chain_len){0}; i < peer_chain_len; i++) {
1126
1143
  if (!PEM_write_bio_X509(bio, sk_X509_value(peer_chain, i))) {
1127
1144
  BIO_free(bio);
1128
1145
  return TSI_INTERNAL_ERROR;
@@ -1644,8 +1661,8 @@ static void tsi_ssl_server_handshaker_factory_destroy(
1644
1661
  gpr_free(self);
1645
1662
  }
1646
1663
 
1647
- static int does_entry_match_name(grpc_core::StringView entry,
1648
- grpc_core::StringView name) {
1664
+ static int does_entry_match_name(absl::string_view entry,
1665
+ absl::string_view name) {
1649
1666
  if (entry.empty()) return 0;
1650
1667
 
1651
1668
  /* Take care of '.' terminations. */
@@ -1657,7 +1674,7 @@ static int does_entry_match_name(grpc_core::StringView entry,
1657
1674
  if (entry.empty()) return 0;
1658
1675
  }
1659
1676
 
1660
- if (name == entry) {
1677
+ if (absl::EqualsIgnoreCase(name, entry)) {
1661
1678
  return 1; /* Perfect match. */
1662
1679
  }
1663
1680
  if (entry.front() != '*') return 0;
@@ -1668,23 +1685,21 @@ static int does_entry_match_name(grpc_core::StringView entry,
1668
1685
  return 0;
1669
1686
  }
1670
1687
  size_t name_subdomain_pos = name.find('.');
1671
- if (name_subdomain_pos == grpc_core::StringView::npos) return 0;
1688
+ if (name_subdomain_pos == absl::string_view::npos) return 0;
1672
1689
  if (name_subdomain_pos >= name.size() - 2) return 0;
1673
- grpc_core::StringView name_subdomain =
1690
+ absl::string_view name_subdomain =
1674
1691
  name.substr(name_subdomain_pos + 1); /* Starts after the dot. */
1675
1692
  entry.remove_prefix(2); /* Remove *. */
1676
1693
  size_t dot = name_subdomain.find('.');
1677
- if (dot == grpc_core::StringView::npos || dot == name_subdomain.size() - 1) {
1678
- grpc_core::UniquePtr<char> name_subdomain_cstr(
1679
- grpc_core::StringViewToCString(name_subdomain));
1694
+ if (dot == absl::string_view::npos || dot == name_subdomain.size() - 1) {
1680
1695
  gpr_log(GPR_ERROR, "Invalid toplevel subdomain: %s",
1681
- name_subdomain_cstr.get());
1696
+ std::string(name_subdomain).c_str());
1682
1697
  return 0;
1683
1698
  }
1684
1699
  if (name_subdomain.back() == '.') {
1685
1700
  name_subdomain.remove_suffix(1);
1686
1701
  }
1687
- return !entry.empty() && name_subdomain == entry;
1702
+ return !entry.empty() && absl::EqualsIgnoreCase(name_subdomain, entry);
1688
1703
  }
1689
1704
 
1690
1705
  static int ssl_server_handshaker_factory_servername_callback(SSL* ssl,
@@ -1706,7 +1721,7 @@ static int ssl_server_handshaker_factory_servername_callback(SSL* ssl,
1706
1721
  }
1707
1722
  }
1708
1723
  gpr_log(GPR_ERROR, "No match found for server name: %s.", servername);
1709
- return SSL_TLSEXT_ERR_ALERT_WARNING;
1724
+ return SSL_TLSEXT_ERR_NOACK;
1710
1725
  }
1711
1726
 
1712
1727
  #if TSI_OPENSSL_ALPN_SUPPORT
@@ -2057,8 +2072,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
2057
2072
 
2058
2073
  /* --- tsi_ssl utils. --- */
2059
2074
 
2060
- int tsi_ssl_peer_matches_name(const tsi_peer* peer,
2061
- grpc_core::StringView name) {
2075
+ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
2062
2076
  size_t i = 0;
2063
2077
  size_t san_count = 0;
2064
2078
  const tsi_peer_property* cn_property = nullptr;
@@ -2072,7 +2086,7 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer,
2072
2086
  TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY) == 0) {
2073
2087
  san_count++;
2074
2088
 
2075
- grpc_core::StringView entry(property->value.data, property->value.length);
2089
+ absl::string_view entry(property->value.data, property->value.length);
2076
2090
  if (!like_ip && does_entry_match_name(entry, name)) {
2077
2091
  return 1;
2078
2092
  } else if (like_ip && name == entry) {
@@ -2087,8 +2101,8 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer,
2087
2101
 
2088
2102
  /* If there's no SAN, try the CN, but only if its not like an IP Address */
2089
2103
  if (san_count == 0 && cn_property != nullptr && !like_ip) {
2090
- if (does_entry_match_name(grpc_core::StringView(cn_property->value.data,
2091
- cn_property->value.length),
2104
+ if (does_entry_match_name(absl::string_view(cn_property->value.data,
2105
+ cn_property->value.length),
2092
2106
  name)) {
2093
2107
  return 1;
2094
2108
  }