grpc 1.68.1 → 1.74.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3051) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +379 -370
  3. data/include/grpc/create_channel_from_endpoint.h +54 -0
  4. data/include/grpc/credentials.h +11 -5
  5. data/include/grpc/event_engine/endpoint_config.h +5 -5
  6. data/include/grpc/event_engine/event_engine.h +232 -16
  7. data/include/grpc/event_engine/internal/write_event.h +34 -0
  8. data/include/grpc/event_engine/memory_request.h +3 -3
  9. data/include/grpc/grpc_posix.h +20 -1
  10. data/include/grpc/impl/channel_arg_names.h +83 -55
  11. data/include/grpc/impl/compression_types.h +3 -2
  12. data/include/grpc/impl/slice_type.h +1 -1
  13. data/include/grpc/module.modulemap +1 -0
  14. data/include/grpc/status.h +1 -1
  15. data/include/grpc/support/atm.h +0 -13
  16. data/include/grpc/support/json.h +43 -37
  17. data/include/grpc/support/port_platform.h +8 -5
  18. data/include/grpc/support/workaround_list.h +1 -4
  19. data/src/core/call/call_arena_allocator.cc +27 -0
  20. data/src/core/call/call_arena_allocator.h +91 -0
  21. data/src/core/call/call_destination.h +76 -0
  22. data/src/core/call/call_filters.cc +148 -0
  23. data/src/core/call/call_filters.h +1976 -0
  24. data/src/core/call/call_finalization.h +88 -0
  25. data/src/core/call/call_spine.cc +90 -0
  26. data/src/core/call/call_spine.h +646 -0
  27. data/src/core/call/call_state.cc +39 -0
  28. data/src/core/call/call_state.h +1154 -0
  29. data/src/core/call/client_call.cc +458 -0
  30. data/src/core/call/client_call.h +192 -0
  31. data/src/core/call/custom_metadata.h +30 -0
  32. data/src/core/call/interception_chain.cc +155 -0
  33. data/src/core/call/interception_chain.h +278 -0
  34. data/src/core/call/message.cc +44 -0
  35. data/src/core/call/message.h +70 -0
  36. data/src/core/call/metadata.cc +61 -0
  37. data/src/core/call/metadata.h +218 -0
  38. data/src/core/call/metadata_batch.cc +383 -0
  39. data/src/core/call/metadata_batch.h +1668 -0
  40. data/src/core/call/metadata_compression_traits.h +66 -0
  41. data/src/core/call/metadata_info.cc +73 -0
  42. data/src/core/call/metadata_info.h +85 -0
  43. data/src/core/call/parsed_metadata.cc +35 -0
  44. data/src/core/call/parsed_metadata.h +429 -0
  45. data/src/core/call/request_buffer.cc +224 -0
  46. data/src/core/call/request_buffer.h +192 -0
  47. data/src/core/call/security_context.cc +125 -0
  48. data/src/core/call/security_context.h +114 -0
  49. data/src/core/call/server_call.cc +259 -0
  50. data/src/core/call/server_call.h +169 -0
  51. data/src/core/call/simple_slice_based_metadata.h +53 -0
  52. data/src/core/call/status_util.cc +153 -0
  53. data/src/core/call/status_util.h +80 -0
  54. data/src/core/channelz/channel_trace.cc +217 -111
  55. data/src/core/channelz/channel_trace.h +389 -64
  56. data/src/core/channelz/channelz.cc +480 -178
  57. data/src/core/channelz/channelz.h +429 -93
  58. data/src/core/channelz/channelz_registry.cc +323 -124
  59. data/src/core/channelz/channelz_registry.h +203 -21
  60. data/src/core/channelz/property_list.cc +357 -0
  61. data/src/core/channelz/property_list.h +202 -0
  62. data/src/core/channelz/ztrace_collector.h +316 -0
  63. data/src/core/client_channel/backup_poller.cc +18 -3
  64. data/src/core/client_channel/client_channel.cc +86 -99
  65. data/src/core/client_channel/client_channel.h +6 -5
  66. data/src/core/client_channel/client_channel_args.h +21 -0
  67. data/src/core/client_channel/client_channel_filter.cc +102 -198
  68. data/src/core/client_channel/client_channel_filter.h +12 -12
  69. data/src/core/client_channel/client_channel_internal.h +1 -1
  70. data/src/core/client_channel/client_channel_plugin.cc +3 -2
  71. data/src/core/client_channel/client_channel_service_config.cc +1 -1
  72. data/src/core/client_channel/client_channel_service_config.h +6 -6
  73. data/src/core/client_channel/config_selector.h +10 -4
  74. data/src/core/client_channel/connector.h +0 -3
  75. data/src/core/client_channel/direct_channel.cc +5 -5
  76. data/src/core/client_channel/direct_channel.h +1 -1
  77. data/src/core/client_channel/dynamic_filters.cc +5 -7
  78. data/src/core/client_channel/dynamic_filters.h +1 -2
  79. data/src/core/client_channel/global_subchannel_pool.cc +71 -7
  80. data/src/core/client_channel/global_subchannel_pool.h +37 -4
  81. data/src/core/client_channel/lb_metadata.cc +7 -8
  82. data/src/core/client_channel/lb_metadata.h +4 -4
  83. data/src/core/client_channel/load_balanced_call_destination.cc +6 -6
  84. data/src/core/client_channel/load_balanced_call_destination.h +1 -1
  85. data/src/core/client_channel/retry_filter.cc +22 -28
  86. data/src/core/client_channel/retry_filter.h +11 -8
  87. data/src/core/client_channel/retry_filter_legacy_call_data.cc +58 -56
  88. data/src/core/client_channel/retry_filter_legacy_call_data.h +14 -12
  89. data/src/core/client_channel/retry_interceptor.cc +394 -0
  90. data/src/core/client_channel/retry_interceptor.h +158 -0
  91. data/src/core/client_channel/retry_service_config.cc +3 -3
  92. data/src/core/client_channel/retry_service_config.h +18 -5
  93. data/src/core/client_channel/retry_throttle.cc +69 -73
  94. data/src/core/client_channel/retry_throttle.h +23 -37
  95. data/src/core/client_channel/subchannel.cc +93 -105
  96. data/src/core/client_channel/subchannel.h +15 -14
  97. data/src/core/client_channel/subchannel_pool_interface.cc +5 -6
  98. data/src/core/client_channel/subchannel_pool_interface.h +11 -1
  99. data/src/core/client_channel/subchannel_stream_client.cc +14 -12
  100. data/src/core/client_channel/subchannel_stream_client.h +5 -5
  101. data/src/core/config/config_vars.cc +164 -0
  102. data/src/core/config/config_vars.h +137 -0
  103. data/src/core/config/config_vars_non_generated.cc +49 -0
  104. data/src/core/config/core_configuration.cc +151 -0
  105. data/src/core/config/core_configuration.h +335 -0
  106. data/src/core/config/load_config.cc +78 -0
  107. data/src/core/config/load_config.h +54 -0
  108. data/src/core/credentials/call/call_credentials.h +157 -0
  109. data/src/core/credentials/call/call_creds_registry.h +125 -0
  110. data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
  111. data/src/core/credentials/call/call_creds_util.cc +97 -0
  112. data/src/core/credentials/call/call_creds_util.h +43 -0
  113. data/src/core/credentials/call/composite/composite_call_credentials.cc +115 -0
  114. data/src/core/credentials/call/composite/composite_call_credentials.h +82 -0
  115. data/src/core/credentials/call/external/aws_external_account_credentials.cc +528 -0
  116. data/src/core/credentials/call/external/aws_external_account_credentials.h +117 -0
  117. data/src/core/credentials/call/external/aws_request_signer.cc +231 -0
  118. data/src/core/credentials/call/external/aws_request_signer.h +72 -0
  119. data/src/core/credentials/call/external/external_account_credentials.cc +641 -0
  120. data/src/core/credentials/call/external/external_account_credentials.h +207 -0
  121. data/src/core/credentials/call/external/file_external_account_credentials.cc +174 -0
  122. data/src/core/credentials/call/external/file_external_account_credentials.h +80 -0
  123. data/src/core/credentials/call/external/url_external_account_credentials.cc +222 -0
  124. data/src/core/credentials/call/external/url_external_account_credentials.h +73 -0
  125. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +154 -0
  126. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.h +90 -0
  127. data/src/core/credentials/call/iam/iam_credentials.cc +78 -0
  128. data/src/core/credentials/call/iam/iam_credentials.h +66 -0
  129. data/src/core/credentials/call/json_util.cc +69 -0
  130. data/src/core/credentials/call/json_util.h +43 -0
  131. data/src/core/credentials/call/jwt/json_token.cc +318 -0
  132. data/src/core/credentials/call/jwt/json_token.h +78 -0
  133. data/src/core/credentials/call/jwt/jwt_credentials.cc +181 -0
  134. data/src/core/credentials/call/jwt/jwt_credentials.h +106 -0
  135. data/src/core/credentials/call/jwt/jwt_verifier.cc +988 -0
  136. data/src/core/credentials/call/jwt/jwt_verifier.h +122 -0
  137. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
  138. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
  139. data/src/core/credentials/call/jwt_util.cc +70 -0
  140. data/src/core/credentials/call/jwt_util.h +32 -0
  141. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +656 -0
  142. data/src/core/credentials/call/oauth2/oauth2_credentials.h +197 -0
  143. data/src/core/credentials/call/plugin/plugin_credentials.cc +201 -0
  144. data/src/core/credentials/call/plugin/plugin_credentials.h +123 -0
  145. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +304 -0
  146. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.h +181 -0
  147. data/src/core/credentials/transport/alts/alts_credentials.cc +116 -0
  148. data/src/core/credentials/transport/alts/alts_credentials.h +127 -0
  149. data/src/core/credentials/transport/alts/alts_security_connector.cc +304 -0
  150. data/src/core/credentials/transport/alts/alts_security_connector.h +78 -0
  151. data/src/core/credentials/transport/alts/check_gcp_environment.cc +71 -0
  152. data/src/core/credentials/transport/alts/check_gcp_environment.h +57 -0
  153. data/src/core/credentials/transport/alts/check_gcp_environment_linux.cc +67 -0
  154. data/src/core/credentials/transport/alts/check_gcp_environment_no_op.cc +32 -0
  155. data/src/core/credentials/transport/alts/check_gcp_environment_windows.cc +101 -0
  156. data/src/core/credentials/transport/alts/grpc_alts_credentials_client_options.cc +123 -0
  157. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.cc +45 -0
  158. data/src/core/credentials/transport/alts/grpc_alts_credentials_options.h +74 -0
  159. data/src/core/credentials/transport/alts/grpc_alts_credentials_server_options.cc +55 -0
  160. data/src/core/credentials/transport/channel_creds_registry.h +126 -0
  161. data/src/core/credentials/transport/channel_creds_registry_init.cc +245 -0
  162. data/src/core/credentials/transport/composite/composite_channel_credentials.cc +68 -0
  163. data/src/core/credentials/transport/composite/composite_channel_credentials.h +89 -0
  164. data/src/core/credentials/transport/fake/fake_credentials.cc +81 -0
  165. data/src/core/credentials/transport/fake/fake_credentials.h +92 -0
  166. data/src/core/credentials/transport/fake/fake_security_connector.cc +314 -0
  167. data/src/core/credentials/transport/fake/fake_security_connector.h +42 -0
  168. data/src/core/credentials/transport/google_default/credentials_generic.cc +38 -0
  169. data/src/core/credentials/transport/google_default/google_default_credentials.cc +510 -0
  170. data/src/core/credentials/transport/google_default/google_default_credentials.h +101 -0
  171. data/src/core/credentials/transport/insecure/insecure_credentials.cc +71 -0
  172. data/src/core/credentials/transport/insecure/insecure_credentials.h +61 -0
  173. data/src/core/credentials/transport/insecure/insecure_security_connector.cc +118 -0
  174. data/src/core/credentials/transport/insecure/insecure_security_connector.h +102 -0
  175. data/src/core/credentials/transport/local/local_credentials.cc +68 -0
  176. data/src/core/credentials/transport/local/local_credentials.h +77 -0
  177. data/src/core/credentials/transport/local/local_security_connector.cc +306 -0
  178. data/src/core/credentials/transport/local/local_security_connector.h +62 -0
  179. data/src/core/credentials/transport/security_connector.cc +123 -0
  180. data/src/core/credentials/transport/security_connector.h +197 -0
  181. data/src/core/credentials/transport/ssl/ssl_credentials.cc +473 -0
  182. data/src/core/credentials/transport/ssl/ssl_credentials.h +144 -0
  183. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +433 -0
  184. data/src/core/credentials/transport/ssl/ssl_security_connector.h +82 -0
  185. data/src/core/credentials/transport/tls/certificate_provider_factory.h +69 -0
  186. data/src/core/credentials/transport/tls/certificate_provider_registry.cc +50 -0
  187. data/src/core/credentials/transport/tls/certificate_provider_registry.h +75 -0
  188. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +337 -0
  189. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +215 -0
  190. data/src/core/credentials/transport/tls/grpc_tls_certificate_match.cc +84 -0
  191. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +490 -0
  192. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +206 -0
  193. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +237 -0
  194. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.h +169 -0
  195. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +161 -0
  196. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +145 -0
  197. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +257 -0
  198. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.h +129 -0
  199. data/src/core/credentials/transport/tls/load_system_roots.h +35 -0
  200. data/src/core/credentials/transport/tls/load_system_roots_fallback.cc +36 -0
  201. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +166 -0
  202. data/src/core/credentials/transport/tls/load_system_roots_supported.h +44 -0
  203. data/src/core/credentials/transport/tls/load_system_roots_windows.cc +85 -0
  204. data/src/core/credentials/transport/tls/ssl_utils.cc +646 -0
  205. data/src/core/credentials/transport/tls/ssl_utils.h +193 -0
  206. data/src/core/credentials/transport/tls/tls_credentials.cc +170 -0
  207. data/src/core/credentials/transport/tls/tls_credentials.h +75 -0
  208. data/src/core/credentials/transport/tls/tls_security_connector.cc +817 -0
  209. data/src/core/credentials/transport/tls/tls_security_connector.h +285 -0
  210. data/src/core/credentials/transport/tls/tls_utils.cc +127 -0
  211. data/src/core/credentials/transport/tls/tls_utils.h +50 -0
  212. data/src/core/credentials/transport/transport_credentials.cc +158 -0
  213. data/src/core/credentials/transport/transport_credentials.h +182 -0
  214. data/src/core/credentials/transport/xds/xds_credentials.cc +228 -0
  215. data/src/core/credentials/transport/xds/xds_credentials.h +110 -0
  216. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +6 -13
  217. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +7 -7
  218. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +17 -11
  219. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +11 -18
  220. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +6 -6
  221. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +2 -2
  222. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +1 -1
  223. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +11 -18
  224. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +21 -21
  225. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +1 -1
  226. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +2 -2
  227. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -6
  228. data/src/core/ext/filters/http/client/http_client_filter.h +5 -5
  229. data/src/core/ext/filters/http/client_authority_filter.cc +5 -12
  230. data/src/core/ext/filters/http/client_authority_filter.h +6 -6
  231. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -1
  232. data/src/core/ext/filters/http/message_compress/compression_filter.cc +21 -25
  233. data/src/core/ext/filters/http/message_compress/compression_filter.h +56 -18
  234. data/src/core/ext/filters/http/server/http_server_filter.cc +5 -10
  235. data/src/core/ext/filters/http/server/http_server_filter.h +22 -10
  236. data/src/core/ext/filters/message_size/message_size_filter.cc +15 -27
  237. data/src/core/ext/filters/message_size/message_size_filter.h +21 -22
  238. data/src/core/ext/filters/rbac/rbac_filter.cc +3 -10
  239. data/src/core/ext/filters/rbac/rbac_filter.h +6 -6
  240. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +3 -3
  241. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
  242. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -8
  243. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +4 -4
  244. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +1 -1
  245. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
  246. data/src/core/ext/transport/chttp2/chttp2_plugin.cc +40 -0
  247. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +134 -153
  248. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -3
  249. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +356 -769
  250. data/src/core/ext/transport/chttp2/server/chttp2_server.h +197 -13
  251. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -3
  252. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +3 -3
  253. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
  254. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +5 -7
  255. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +402 -167
  256. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +7 -13
  257. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
  258. data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
  259. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  260. data/src/core/ext/transport/chttp2/transport/flow_control.h +26 -3
  261. data/src/core/ext/transport/chttp2/transport/frame.cc +326 -167
  262. data/src/core/ext/transport/chttp2/transport/frame.h +126 -8
  263. data/src/core/ext/transport/chttp2/transport/frame_data.cc +25 -8
  264. data/src/core/ext/transport/chttp2/transport/frame_data.h +2 -0
  265. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +23 -11
  266. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +5 -3
  267. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -0
  268. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +17 -7
  269. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -1
  270. data/src/core/ext/transport/chttp2/transport/frame_security.cc +80 -0
  271. data/src/core/ext/transport/chttp2/transport/frame_security.h +44 -0
  272. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +43 -8
  273. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +21 -0
  274. data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
  275. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +12 -5
  276. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +7 -5
  277. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -3
  278. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +3 -3
  279. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +36 -35
  280. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +7 -8
  281. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
  282. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +14 -3
  283. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
  284. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
  285. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -10
  286. data/src/core/ext/transport/chttp2/transport/http2_settings.h +36 -5
  287. data/src/core/ext/transport/chttp2/transport/http2_stats_collector.cc +30 -0
  288. data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
  289. data/src/core/ext/transport/chttp2/transport/http2_status.h +414 -0
  290. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
  291. data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
  292. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +223 -0
  293. data/src/core/ext/transport/chttp2/transport/internal.h +90 -23
  294. data/src/core/ext/transport/chttp2/transport/internal_channel_arg_names.h +24 -0
  295. data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
  296. data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
  297. data/src/core/ext/transport/chttp2/transport/legacy_frame.h +1 -0
  298. data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
  299. data/src/core/ext/transport/chttp2/transport/parsing.cc +91 -43
  300. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +1 -1
  301. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
  302. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +21 -2
  303. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
  304. data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
  305. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +17 -20
  306. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +19 -2
  307. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +40 -1
  308. data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
  309. data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
  310. data/src/core/ext/transport/chttp2/transport/varint.cc +4 -4
  311. data/src/core/ext/transport/chttp2/transport/write_size_policy.h +1 -1
  312. data/src/core/ext/transport/chttp2/transport/writing.cc +109 -77
  313. data/src/core/ext/transport/inproc/inproc_transport.cc +10 -7
  314. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +23 -14
  315. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +7 -3
  316. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +8 -8
  317. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.h +3 -3
  318. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb.h +68 -68
  319. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +34 -34
  320. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.h +3 -3
  321. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb.h +3 -3
  322. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +10 -10
  323. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.h +3 -3
  324. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +20 -18
  325. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +44 -44
  326. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.h +3 -3
  327. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb.h +3 -3
  328. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +2 -2
  329. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.h +3 -3
  330. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb.h +3 -3
  331. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +4 -4
  332. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.h +3 -3
  333. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb.h +3 -3
  334. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.h +3 -3
  335. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb.h +9 -9
  336. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +4 -4
  337. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.h +3 -3
  338. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb.h +3 -3
  339. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.h +3 -3
  340. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +149 -133
  341. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +76 -75
  342. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.h +3 -3
  343. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb.h +3 -3
  344. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +2 -2
  345. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.h +3 -3
  346. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb.h +3 -3
  347. data/src/core/ext/upb-gen/envoy/annotations/deprecation.upb_minitable.h +3 -3
  348. data/src/core/ext/upb-gen/envoy/annotations/resource.upb.h +5 -5
  349. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +1 -1
  350. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.h +3 -3
  351. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +41 -29
  352. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +29 -29
  353. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.h +3 -3
  354. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +231 -243
  355. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +104 -104
  356. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.h +3 -3
  357. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb.h +30 -30
  358. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +15 -15
  359. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.h +3 -3
  360. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +367 -349
  361. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +152 -150
  362. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.h +3 -3
  363. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb.h +3 -3
  364. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +2 -2
  365. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.h +3 -3
  366. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb.h +61 -61
  367. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +16 -16
  368. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.h +3 -3
  369. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +53 -49
  370. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +31 -31
  371. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.h +3 -3
  372. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +44 -32
  373. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +26 -26
  374. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.h +3 -3
  375. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb.h +3 -3
  376. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.c +2 -2
  377. data/src/core/ext/upb-gen/envoy/config/core/v3/backoff.upb_minitable.h +3 -3
  378. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +329 -262
  379. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +126 -100
  380. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +5 -3
  381. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +61 -57
  382. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +31 -31
  383. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.h +3 -3
  384. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +7 -3
  385. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +2 -2
  386. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.h +3 -3
  387. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb.h +3 -3
  388. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +2 -2
  389. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.h +3 -3
  390. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb.h +3 -3
  391. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +2 -2
  392. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.h +3 -3
  393. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +91 -95
  394. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +35 -35
  395. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.h +3 -3
  396. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +115 -103
  397. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +44 -44
  398. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.h +3 -3
  399. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb.h +3 -3
  400. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +2 -2
  401. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.h +3 -3
  402. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +19 -15
  403. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +7 -7
  404. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.h +3 -3
  405. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +216 -117
  406. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +71 -65
  407. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.h +3 -3
  408. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +3 -3
  409. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +2 -2
  410. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +3 -3
  411. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb.h +3 -3
  412. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +2 -2
  413. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.h +3 -3
  414. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +151 -0
  415. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +60 -0
  416. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +32 -0
  417. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +232 -21
  418. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +65 -17
  419. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +9 -3
  420. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +34 -30
  421. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +12 -12
  422. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.h +3 -3
  423. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb.h +3 -3
  424. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.c +2 -2
  425. data/src/core/ext/upb-gen/envoy/config/core/v3/udp_socket_config.upb_minitable.h +3 -3
  426. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +15 -40
  427. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +10 -10
  428. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.h +3 -3
  429. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +52 -44
  430. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +30 -30
  431. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +3 -3
  432. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb.h +27 -27
  433. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +15 -15
  434. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.h +3 -3
  435. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb.h +3 -3
  436. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.c +2 -2
  437. data/src/core/ext/upb-gen/envoy/config/listener/v3/api_listener.upb_minitable.h +3 -3
  438. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +150 -142
  439. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +56 -56
  440. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +3 -3
  441. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +80 -167
  442. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +37 -58
  443. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +3 -5
  444. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +88 -3
  445. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +26 -4
  446. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.h +3 -3
  447. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb.h +3 -3
  448. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.c +2 -2
  449. data/src/core/ext/upb-gen/envoy/config/listener/v3/udp_listener_config.upb_minitable.h +3 -3
  450. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +9 -9
  451. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +6 -6
  452. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.h +3 -3
  453. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +56 -36
  454. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +26 -26
  455. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.h +3 -3
  456. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +17 -4
  457. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +14 -14
  458. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.h +3 -3
  459. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +175 -39
  460. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +60 -30
  461. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +5 -3
  462. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +55 -80
  463. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +16 -16
  464. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.h +3 -3
  465. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +927 -686
  466. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +366 -309
  467. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +7 -3
  468. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +20 -16
  469. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +8 -8
  470. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.h +3 -3
  471. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +18 -6
  472. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +20 -20
  473. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.h +3 -3
  474. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb.h +3 -3
  475. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +4 -4
  476. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.h +3 -3
  477. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb.h +3 -3
  478. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +2 -2
  479. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.h +3 -3
  480. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +7 -3
  481. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +4 -4
  482. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.h +3 -3
  483. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb.h +3 -3
  484. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +2 -2
  485. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.h +3 -3
  486. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +10 -10
  487. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +5 -5
  488. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.h +3 -3
  489. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb.h +3 -3
  490. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.c +2 -2
  491. data/src/core/ext/upb-gen/envoy/config/trace/v3/service.upb_minitable.h +3 -3
  492. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +22 -18
  493. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +11 -11
  494. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.h +3 -3
  495. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +3 -5
  496. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +0 -1
  497. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +3 -4
  498. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb.h +10 -10
  499. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +7 -7
  500. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.h +3 -3
  501. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +19 -19
  502. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +12 -12
  503. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.h +3 -3
  504. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +313 -410
  505. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +114 -114
  506. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.h +3 -3
  507. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +3 -3
  508. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +3 -3
  509. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +11 -3
  510. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +4 -4
  511. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.h +3 -3
  512. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +68 -64
  513. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +31 -31
  514. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.h +3 -3
  515. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb.h +22 -22
  516. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +10 -10
  517. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.h +3 -3
  518. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +28 -28
  519. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +13 -13
  520. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.h +3 -3
  521. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb.h +37 -37
  522. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +13 -13
  523. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.h +3 -3
  524. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +10 -6
  525. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +6 -6
  526. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.h +3 -3
  527. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +338 -294
  528. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +144 -143
  529. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +3 -3
  530. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +3 -3
  531. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.c +2 -2
  532. data/src/core/ext/upb-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb_minitable.h +3 -3
  533. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +63 -3
  534. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +15 -4
  535. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.h +3 -3
  536. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +10 -6
  537. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +9 -9
  538. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +3 -3
  539. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb.h +3 -3
  540. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.h +3 -3
  541. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +26 -26
  542. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +10 -10
  543. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.h +3 -3
  544. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +3 -3
  545. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.c +2 -2
  546. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb_minitable.h +3 -3
  547. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +3 -4
  548. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +2 -3
  549. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.h +3 -3
  550. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +3 -3
  551. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/cert.upb_minitable.h +3 -3
  552. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +91 -87
  553. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +38 -38
  554. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.h +3 -3
  555. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +7 -3
  556. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +6 -6
  557. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +3 -3
  558. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +167 -77
  559. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +58 -49
  560. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.h +3 -3
  561. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +40 -10
  562. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +10 -8
  563. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.h +3 -3
  564. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +35 -27
  565. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +13 -13
  566. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +3 -3
  567. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb.h +3 -3
  568. data/src/core/ext/upb-gen/envoy/service/discovery/v3/ads.upb_minitable.h +3 -3
  569. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +367 -164
  570. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +94 -69
  571. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +5 -3
  572. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb.h +9 -9
  573. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +6 -6
  574. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.h +3 -3
  575. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +69 -64
  576. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +36 -36
  577. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.h +3 -3
  578. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +10 -10
  579. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +5 -5
  580. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +3 -3
  581. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +7 -3
  582. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +4 -4
  583. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.h +3 -3
  584. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +142 -0
  585. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +55 -0
  586. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +32 -0
  587. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +40 -3
  588. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +8 -5
  589. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.h +3 -3
  590. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb.h +3 -3
  591. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.h +3 -3
  592. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +13 -9
  593. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +4 -4
  594. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.h +3 -3
  595. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb.h +3 -3
  596. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +2 -2
  597. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.h +3 -3
  598. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +7 -3
  599. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +2 -2
  600. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.h +3 -3
  601. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +7 -3
  602. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +2 -2
  603. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.h +3 -3
  604. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +14 -10
  605. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +9 -9
  606. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.h +3 -3
  607. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb.h +3 -3
  608. data/src/core/ext/upb-gen/envoy/type/matcher/v3/status_code_input.upb_minitable.h +3 -3
  609. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +7 -3
  610. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +4 -4
  611. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.h +3 -3
  612. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +7 -3
  613. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +2 -2
  614. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.h +3 -3
  615. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +11 -3
  616. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +6 -6
  617. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.h +3 -3
  618. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +11 -3
  619. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +4 -4
  620. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.h +3 -3
  621. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +18 -14
  622. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +8 -8
  623. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.h +3 -3
  624. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +7 -3
  625. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +2 -2
  626. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.h +3 -3
  627. data/src/core/ext/upb-gen/envoy/type/v3/http.upb.h +3 -3
  628. data/src/core/ext/upb-gen/envoy/type/v3/http.upb_minitable.h +3 -3
  629. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb.h +3 -3
  630. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.h +3 -3
  631. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb.h +3 -3
  632. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.h +3 -3
  633. data/src/core/ext/upb-gen/envoy/type/v3/range.upb.h +3 -3
  634. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.h +3 -3
  635. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +7 -3
  636. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +2 -2
  637. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.h +3 -3
  638. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb.h +3 -3
  639. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_unit.upb_minitable.h +3 -3
  640. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb.h +3 -3
  641. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.h +3 -3
  642. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb.h +3 -3
  643. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +2 -2
  644. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.h +3 -3
  645. data/src/core/ext/upb-gen/google/api/annotations.upb.h +5 -5
  646. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.c +1 -1
  647. data/src/core/ext/upb-gen/google/api/annotations.upb_minitable.h +3 -3
  648. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +96 -136
  649. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +46 -46
  650. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.h +3 -3
  651. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +95 -126
  652. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +51 -51
  653. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.h +3 -3
  654. data/src/core/ext/upb-gen/google/api/http.upb.h +59 -54
  655. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +26 -26
  656. data/src/core/ext/upb-gen/google/api/http.upb_minitable.h +3 -3
  657. data/src/core/ext/upb-gen/google/api/httpbody.upb.h +3 -3
  658. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +2 -2
  659. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.h +3 -3
  660. data/src/core/ext/upb-gen/google/protobuf/any.upb.h +4 -3
  661. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.h +3 -3
  662. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +520 -320
  663. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +267 -217
  664. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +25 -20
  665. data/src/core/ext/upb-gen/google/protobuf/duration.upb.h +4 -3
  666. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.h +3 -3
  667. data/src/core/ext/upb-gen/google/protobuf/empty.upb.h +4 -3
  668. data/src/core/ext/upb-gen/google/protobuf/empty.upb_minitable.h +3 -3
  669. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +17 -36
  670. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +8 -8
  671. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.h +3 -3
  672. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb.h +4 -3
  673. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.h +3 -3
  674. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb.h +4 -3
  675. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.h +3 -3
  676. data/src/core/ext/upb-gen/google/rpc/status.upb.h +3 -3
  677. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +2 -2
  678. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.h +3 -3
  679. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
  680. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
  681. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
  682. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
  683. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
  684. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
  685. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
  686. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
  687. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
  688. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +12 -31
  689. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +2 -2
  690. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.h +3 -3
  691. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +202 -145
  692. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +50 -44
  693. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.h +3 -3
  694. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +158 -3
  695. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +42 -4
  696. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +7 -3
  697. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +4 -3
  698. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.h +3 -3
  699. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +17 -9
  700. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +14 -14
  701. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.h +3 -3
  702. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +25 -43
  703. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +5 -5
  704. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.h +3 -3
  705. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +73 -111
  706. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +25 -25
  707. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.h +3 -3
  708. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb.h +13 -13
  709. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +5 -5
  710. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.h +3 -3
  711. data/src/core/ext/upb-gen/udpa/annotations/security.upb.h +5 -5
  712. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +1 -1
  713. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.h +3 -3
  714. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb.h +3 -3
  715. data/src/core/ext/upb-gen/udpa/annotations/sensitive.upb_minitable.h +3 -3
  716. data/src/core/ext/upb-gen/udpa/annotations/status.upb.h +5 -5
  717. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +1 -1
  718. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.h +3 -3
  719. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb.h +5 -5
  720. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +1 -1
  721. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.h +3 -3
  722. data/src/core/ext/upb-gen/validate/validate.upb.h +385 -373
  723. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +133 -133
  724. data/src/core/ext/upb-gen/validate/validate.upb_minitable.h +4 -4
  725. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb.h +13 -13
  726. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +5 -5
  727. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.h +3 -3
  728. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb.h +5 -5
  729. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +1 -1
  730. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.h +3 -3
  731. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb.h +3 -3
  732. data/src/core/ext/upb-gen/xds/annotations/v3/sensitive.upb_minitable.h +3 -3
  733. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb.h +9 -9
  734. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +3 -3
  735. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.h +3 -3
  736. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb.h +5 -5
  737. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +1 -1
  738. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.h +3 -3
  739. data/src/core/ext/upb-gen/xds/core/v3/authority.upb.h +3 -3
  740. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.h +3 -3
  741. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb.h +3 -3
  742. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +2 -2
  743. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.h +3 -3
  744. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +7 -3
  745. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +4 -4
  746. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.h +3 -3
  747. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +12 -31
  748. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +2 -2
  749. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.h +3 -3
  750. data/src/core/ext/upb-gen/xds/core/v3/extension.upb.h +3 -3
  751. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +2 -2
  752. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.h +3 -3
  753. data/src/core/ext/upb-gen/xds/core/v3/resource.upb.h +10 -10
  754. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +5 -5
  755. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.h +3 -3
  756. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +23 -15
  757. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +6 -6
  758. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.h +3 -3
  759. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb.h +3 -3
  760. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +2 -2
  761. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.h +3 -3
  762. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +30 -87
  763. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +2 -2
  764. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.h +3 -3
  765. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb.h +3 -3
  766. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +2 -2
  767. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.h +3 -3
  768. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +10 -10
  769. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +5 -5
  770. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.h +3 -3
  771. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb.h +3 -3
  772. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +4 -4
  773. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.h +3 -3
  774. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +3 -3
  775. data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.h +3 -3
  776. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb.h +6 -6
  777. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +5 -5
  778. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.h +3 -3
  779. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +45 -49
  780. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +23 -23
  781. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.h +3 -3
  782. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb.h +3 -3
  783. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +12 -12
  784. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.h +3 -3
  785. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +7 -3
  786. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +2 -2
  787. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.h +3 -3
  788. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +7 -3
  789. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +4 -4
  790. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.h +3 -3
  791. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +7 -3
  792. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +4 -4
  793. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.h +3 -3
  794. data/src/core/ext/upb-gen/xds/type/v3/range.upb.h +4 -3
  795. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.h +3 -3
  796. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb.h +3 -3
  797. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +2 -2
  798. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.h +3 -3
  799. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +123 -62
  800. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +8 -4
  801. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +200 -101
  802. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +8 -4
  803. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +152 -77
  804. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +8 -4
  805. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +524 -254
  806. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +8 -4
  807. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +44 -23
  808. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +8 -4
  809. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +66 -34
  810. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +8 -4
  811. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +54 -28
  812. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +8 -4
  813. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +46 -25
  814. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +8 -4
  815. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +47 -25
  816. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +8 -4
  817. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +256 -124
  818. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +8 -4
  819. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +50 -28
  820. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +8 -4
  821. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +55 -28
  822. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +8 -4
  823. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +34 -18
  824. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +8 -4
  825. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +414 -206
  826. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +8 -4
  827. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +831 -413
  828. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +8 -4
  829. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +143 -73
  830. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +8 -4
  831. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +1132 -552
  832. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +8 -4
  833. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +63 -34
  834. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +8 -4
  835. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +255 -127
  836. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +8 -4
  837. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +363 -178
  838. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +8 -4
  839. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +227 -114
  840. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +8 -4
  841. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +57 -31
  842. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +8 -4
  843. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +596 -287
  844. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +13 -4
  845. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +271 -137
  846. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +8 -4
  847. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +56 -30
  848. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +8 -4
  849. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +45 -25
  850. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +8 -4
  851. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +59 -31
  852. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +8 -4
  853. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +438 -217
  854. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +8 -4
  855. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +441 -221
  856. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +8 -4
  857. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +55 -30
  858. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +8 -4
  859. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +57 -31
  860. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +8 -4
  861. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +619 -294
  862. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +8 -4
  863. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +70 -36
  864. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +8 -4
  865. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +62 -33
  866. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +8 -4
  867. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +68 -0
  868. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +37 -0
  869. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +97 -39
  870. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +23 -4
  871. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +97 -51
  872. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +8 -4
  873. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +51 -27
  874. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +8 -4
  875. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +147 -76
  876. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +8 -4
  877. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +230 -116
  878. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +8 -4
  879. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +277 -138
  880. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +8 -4
  881. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +48 -26
  882. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +8 -4
  883. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +388 -197
  884. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +8 -4
  885. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +304 -160
  886. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +8 -9
  887. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +175 -82
  888. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +8 -4
  889. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +90 -47
  890. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +8 -4
  891. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +98 -51
  892. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +8 -4
  893. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +196 -99
  894. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +8 -4
  895. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +237 -117
  896. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +8 -4
  897. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +418 -193
  898. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +13 -4
  899. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +194 -99
  900. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +8 -4
  901. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +2004 -955
  902. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +18 -4
  903. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +101 -53
  904. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +8 -4
  905. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +352 -176
  906. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +8 -4
  907. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +79 -42
  908. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +8 -4
  909. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +67 -37
  910. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +8 -4
  911. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +63 -34
  912. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +8 -4
  913. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +88 -47
  914. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +8 -4
  915. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +80 -43
  916. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +8 -4
  917. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +53 -29
  918. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +8 -4
  919. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +86 -46
  920. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +8 -4
  921. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +56 -36
  922. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +8 -4
  923. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +91 -49
  924. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +8 -4
  925. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +105 -55
  926. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +8 -4
  927. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +775 -379
  928. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +8 -4
  929. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +52 -28
  930. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +8 -4
  931. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +134 -68
  932. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +8 -4
  933. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +189 -96
  934. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +8 -4
  935. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +116 -61
  936. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +8 -4
  937. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +112 -58
  938. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +8 -4
  939. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +160 -82
  940. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +8 -4
  941. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +75 -39
  942. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +8 -4
  943. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +1161 -567
  944. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +8 -4
  945. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +52 -28
  946. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +8 -4
  947. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +56 -33
  948. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +8 -4
  949. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -26
  950. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +8 -4
  951. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +390 -194
  952. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +8 -4
  953. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +126 -65
  954. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +8 -4
  955. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +498 -235
  956. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +8 -4
  957. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +74 -36
  958. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +8 -4
  959. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +221 -110
  960. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +8 -4
  961. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +68 -36
  962. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +8 -4
  963. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +378 -174
  964. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +13 -4
  965. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +100 -52
  966. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +8 -4
  967. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +257 -128
  968. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +8 -4
  969. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +44 -24
  970. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +8 -4
  971. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +68 -35
  972. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +8 -4
  973. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +59 -0
  974. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +37 -0
  975. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +61 -27
  976. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +8 -4
  977. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +65 -34
  978. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +8 -4
  979. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +72 -38
  980. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +8 -4
  981. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +57 -31
  982. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +8 -4
  983. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +52 -29
  984. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +8 -4
  985. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +51 -28
  986. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +8 -4
  987. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +89 -47
  988. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +8 -4
  989. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +37 -20
  990. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +8 -4
  991. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +89 -47
  992. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +8 -4
  993. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +67 -35
  994. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +8 -4
  995. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +112 -58
  996. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +8 -4
  997. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +110 -56
  998. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +8 -4
  999. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +123 -62
  1000. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +8 -4
  1001. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +59 -31
  1002. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +8 -4
  1003. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +30 -16
  1004. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +8 -4
  1005. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +143 -72
  1006. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +8 -4
  1007. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +61 -32
  1008. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +8 -4
  1009. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +51 -27
  1010. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +8 -4
  1011. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +85 -45
  1012. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +8 -4
  1013. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +35 -19
  1014. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +8 -4
  1015. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +44 -23
  1016. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +8 -4
  1017. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +61 -33
  1018. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +8 -4
  1019. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +35 -19
  1020. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +8 -4
  1021. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +272 -133
  1022. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +8 -4
  1023. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +315 -154
  1024. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +8 -4
  1025. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +64 -33
  1026. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +8 -4
  1027. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +35 -19
  1028. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +8 -4
  1029. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +26 -15
  1030. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +8 -4
  1031. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +1106 -496
  1032. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +13 -4
  1033. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +28 -16
  1034. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +8 -4
  1035. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +23 -13
  1036. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +8 -4
  1037. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +69 -35
  1038. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +8 -4
  1039. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +29 -16
  1040. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +8 -4
  1041. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +51 -26
  1042. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +8 -4
  1043. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +32 -17
  1044. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +8 -4
  1045. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
  1046. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
  1047. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
  1048. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
  1049. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +161 -79
  1050. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +8 -4
  1051. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +84 -42
  1052. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +8 -4
  1053. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +48 -26
  1054. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +8 -4
  1055. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +26 -14
  1056. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +8 -4
  1057. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +50 -26
  1058. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +8 -4
  1059. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +36 -19
  1060. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +8 -4
  1061. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +538 -261
  1062. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +8 -4
  1063. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +86 -43
  1064. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +8 -4
  1065. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +49 -26
  1066. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +8 -4
  1067. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +27 -15
  1068. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +8 -4
  1069. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +87 -44
  1070. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +8 -4
  1071. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +37 -20
  1072. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +8 -4
  1073. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +30 -17
  1074. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +8 -4
  1075. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +41 -23
  1076. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +8 -4
  1077. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +62 -33
  1078. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +8 -4
  1079. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +36 -19
  1080. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +8 -4
  1081. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +36 -20
  1082. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +8 -4
  1083. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +42 -23
  1084. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +8 -4
  1085. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +76 -39
  1086. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +8 -4
  1087. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +45 -24
  1088. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +8 -4
  1089. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +41 -23
  1090. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +8 -4
  1091. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +53 -29
  1092. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +8 -4
  1093. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +29 -16
  1094. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +8 -4
  1095. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +58 -32
  1096. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +8 -4
  1097. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +207 -103
  1098. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +8 -4
  1099. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +95 -49
  1100. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +8 -4
  1101. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +38 -20
  1102. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +8 -4
  1103. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +60 -31
  1104. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +8 -4
  1105. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +67 -36
  1106. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +8 -4
  1107. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +31 -17
  1108. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +8 -4
  1109. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +31 -17
  1110. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +8 -4
  1111. data/src/core/filter/auth/auth_filters.h +208 -0
  1112. data/src/core/filter/auth/client_auth_filter.cc +192 -0
  1113. data/src/core/filter/auth/server_auth_filter.cc +208 -0
  1114. data/src/core/filter/blackboard.cc +2 -2
  1115. data/src/core/filter/filter_args.h +98 -0
  1116. data/src/core/handshaker/endpoint_info/endpoint_info_handshaker.h +1 -1
  1117. data/src/core/handshaker/handshaker.cc +23 -25
  1118. data/src/core/handshaker/handshaker.h +3 -0
  1119. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +13 -7
  1120. data/src/core/handshaker/http_connect/http_connect_handshaker.h +1 -1
  1121. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +36 -52
  1122. data/src/core/handshaker/http_connect/http_proxy_mapper.h +5 -5
  1123. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +5 -5
  1124. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +6 -6
  1125. data/src/core/handshaker/proxy_mapper.h +4 -4
  1126. data/src/core/handshaker/proxy_mapper_registry.cc +5 -6
  1127. data/src/core/handshaker/proxy_mapper_registry.h +4 -4
  1128. data/src/core/handshaker/security/legacy_secure_endpoint.cc +597 -0
  1129. data/src/core/handshaker/security/secure_endpoint.cc +813 -311
  1130. data/src/core/handshaker/security/secure_endpoint.h +17 -0
  1131. data/src/core/handshaker/security/security_handshaker.cc +12 -11
  1132. data/src/core/handshaker/security/security_handshaker.h +2 -2
  1133. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +14 -6
  1134. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.h +1 -1
  1135. data/src/core/lib/address_utils/sockaddr_utils.cc +5 -5
  1136. data/src/core/lib/channel/channel_args.cc +28 -13
  1137. data/src/core/lib/channel/channel_args.h +65 -39
  1138. data/src/core/lib/channel/channel_args_preconditioning.h +1 -1
  1139. data/src/core/lib/channel/channel_stack.cc +32 -4
  1140. data/src/core/lib/channel/channel_stack.h +16 -6
  1141. data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -2
  1142. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
  1143. data/src/core/lib/channel/connected_channel.cc +4 -4
  1144. data/src/core/lib/channel/promise_based_filter.cc +10 -10
  1145. data/src/core/lib/channel/promise_based_filter.h +749 -416
  1146. data/src/core/lib/compression/compression.cc +3 -2
  1147. data/src/core/lib/compression/compression_internal.cc +9 -9
  1148. data/src/core/lib/compression/compression_internal.h +3 -3
  1149. data/src/core/lib/debug/trace.cc +1 -1
  1150. data/src/core/lib/debug/trace_flags.cc +7 -6
  1151. data/src/core/lib/debug/trace_flags.h +3 -3
  1152. data/src/core/lib/debug/trace_impl.h +0 -1
  1153. data/src/core/lib/event_engine/ares_resolver.cc +175 -60
  1154. data/src/core/lib/event_engine/ares_resolver.h +54 -12
  1155. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +10 -6
  1156. data/src/core/lib/event_engine/cf_engine/cf_engine.h +3 -8
  1157. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +10 -11
  1158. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +12 -10
  1159. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +2 -4
  1160. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +9 -10
  1161. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -4
  1162. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +5 -7
  1163. data/src/core/lib/event_engine/channel_args_endpoint_config.h +6 -7
  1164. data/src/core/lib/event_engine/common_closures.h +2 -4
  1165. data/src/core/lib/event_engine/default_event_engine.cc +63 -34
  1166. data/src/core/lib/event_engine/default_event_engine.h +25 -34
  1167. data/src/core/lib/event_engine/default_event_engine_factory.cc +12 -18
  1168. data/src/core/lib/event_engine/default_event_engine_factory.h +3 -5
  1169. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
  1170. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
  1171. data/src/core/lib/event_engine/event_engine.cc +9 -4
  1172. data/src/core/lib/event_engine/extensions/blocking_dns.h +46 -0
  1173. data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -4
  1174. data/src/core/lib/event_engine/extensions/channelz.h +66 -0
  1175. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -4
  1176. data/src/core/lib/event_engine/extensions/iomgr_compatible.h +39 -0
  1177. data/src/core/lib/event_engine/extensions/supports_fd.h +2 -4
  1178. data/src/core/lib/event_engine/extensions/supports_win_sockets.h +48 -0
  1179. data/src/core/lib/event_engine/extensions/tcp_trace.h +4 -6
  1180. data/src/core/lib/event_engine/grpc_polled_fd.h +7 -4
  1181. data/src/core/lib/event_engine/handle_containers.h +2 -4
  1182. data/src/core/lib/event_engine/memory_allocator_factory.h +2 -4
  1183. data/src/core/lib/event_engine/nameser.h +1 -1
  1184. data/src/core/lib/event_engine/poller.h +2 -4
  1185. data/src/core/lib/event_engine/posix.h +2 -4
  1186. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +134 -212
  1187. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +13 -19
  1188. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +83 -172
  1189. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +9 -13
  1190. data/src/core/lib/event_engine/posix_engine/event_poller.h +20 -19
  1191. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -23
  1192. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -4
  1193. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
  1194. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
  1195. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +31 -23
  1196. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +8 -6
  1197. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +8 -5
  1198. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +2 -4
  1199. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -4
  1200. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +6 -11
  1201. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +5 -4
  1202. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +170 -110
  1203. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +31 -37
  1204. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +344 -104
  1205. data/src/core/lib/event_engine/posix_engine/posix_engine.h +74 -35
  1206. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +2 -4
  1207. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +49 -43
  1208. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +8 -8
  1209. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +60 -146
  1210. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +12 -9
  1211. data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
  1212. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
  1213. data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
  1214. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
  1215. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
  1216. data/src/core/lib/event_engine/posix_engine/set_socket_dualstack.cc +64 -0
  1217. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +8 -736
  1218. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +12 -174
  1219. data/src/core/lib/event_engine/posix_engine/timer.cc +4 -6
  1220. data/src/core/lib/event_engine/posix_engine/timer.h +4 -6
  1221. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +3 -5
  1222. data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -4
  1223. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +38 -29
  1224. data/src/core/lib/event_engine/posix_engine/timer_manager.h +17 -17
  1225. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +119 -157
  1226. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +30 -99
  1227. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +28 -29
  1228. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +8 -6
  1229. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +38 -58
  1230. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +8 -6
  1231. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +9 -10
  1232. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +14 -10
  1233. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +5 -5
  1234. data/src/core/lib/event_engine/query_extensions.h +12 -25
  1235. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +2 -4
  1236. data/src/core/lib/event_engine/resolved_address.cc +2 -4
  1237. data/src/core/lib/event_engine/resolved_address_internal.h +2 -4
  1238. data/src/core/lib/event_engine/shim.cc +18 -18
  1239. data/src/core/lib/event_engine/shim.h +16 -4
  1240. data/src/core/lib/event_engine/slice.cc +2 -4
  1241. data/src/core/lib/event_engine/slice_buffer.cc +2 -4
  1242. data/src/core/lib/event_engine/tcp_socket_utils.cc +16 -23
  1243. data/src/core/lib/event_engine/tcp_socket_utils.h +5 -7
  1244. data/src/core/lib/event_engine/thread_local.cc +2 -4
  1245. data/src/core/lib/event_engine/thread_local.h +2 -4
  1246. data/src/core/lib/event_engine/thread_pool/thread_count.cc +2 -4
  1247. data/src/core/lib/event_engine/thread_pool/thread_count.h +4 -18
  1248. data/src/core/lib/event_engine/thread_pool/thread_pool.h +9 -7
  1249. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +2 -21
  1250. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +23 -15
  1251. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +7 -7
  1252. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +2 -4
  1253. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +2 -4
  1254. data/src/core/lib/event_engine/time_util.cc +2 -4
  1255. data/src/core/lib/event_engine/time_util.h +2 -4
  1256. data/src/core/lib/event_engine/utils.cc +36 -4
  1257. data/src/core/lib/event_engine/utils.h +5 -4
  1258. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +7 -5
  1259. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +6 -4
  1260. data/src/core/lib/event_engine/windows/iocp.cc +2 -4
  1261. data/src/core/lib/event_engine/windows/iocp.h +2 -4
  1262. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +2 -4
  1263. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +2 -4
  1264. data/src/core/lib/event_engine/windows/win_socket.cc +13 -4
  1265. data/src/core/lib/event_engine/windows/win_socket.h +5 -4
  1266. data/src/core/lib/event_engine/windows/windows_endpoint.cc +32 -25
  1267. data/src/core/lib/event_engine/windows/windows_endpoint.h +9 -8
  1268. data/src/core/lib/event_engine/windows/windows_engine.cc +44 -4
  1269. data/src/core/lib/event_engine/windows/windows_engine.h +10 -8
  1270. data/src/core/lib/event_engine/windows/windows_listener.cc +21 -12
  1271. data/src/core/lib/event_engine/windows/windows_listener.h +11 -8
  1272. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +2 -4
  1273. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +2 -4
  1274. data/src/core/lib/event_engine/work_queue/work_queue.h +2 -4
  1275. data/src/core/lib/experiments/config.cc +1 -1
  1276. data/src/core/lib/experiments/experiments.cc +515 -187
  1277. data/src/core/lib/experiments/experiments.h +190 -91
  1278. data/src/core/lib/iomgr/buffer_list.cc +1 -1
  1279. data/src/core/lib/iomgr/buffer_list.h +22 -21
  1280. data/src/core/lib/iomgr/call_combiner.h +1 -1
  1281. data/src/core/lib/iomgr/cfstream_handle.cc +0 -2
  1282. data/src/core/lib/iomgr/closure.h +1 -2
  1283. data/src/core/lib/iomgr/combiner.cc +3 -3
  1284. data/src/core/lib/iomgr/combiner.h +1 -1
  1285. data/src/core/lib/iomgr/endpoint.cc +4 -3
  1286. data/src/core/lib/iomgr/endpoint.h +7 -4
  1287. data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
  1288. data/src/core/lib/iomgr/endpoint_pair_posix.cc +43 -16
  1289. data/src/core/lib/iomgr/endpoint_pair_windows.cc +43 -8
  1290. data/src/core/lib/iomgr/error.cc +28 -44
  1291. data/src/core/lib/iomgr/ev_apple.cc +1 -1
  1292. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -3
  1293. data/src/core/lib/iomgr/ev_poll_posix.cc +22 -0
  1294. data/src/core/lib/iomgr/ev_posix.cc +1 -1
  1295. data/src/core/lib/iomgr/event_engine_shims/closure.cc +0 -1
  1296. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +12 -13
  1297. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +0 -1
  1298. data/src/core/lib/iomgr/exec_ctx.cc +1 -7
  1299. data/src/core/lib/iomgr/exec_ctx.h +1 -132
  1300. data/src/core/lib/iomgr/fork_posix.cc +0 -7
  1301. data/src/core/lib/iomgr/iomgr.cc +1 -4
  1302. data/src/core/lib/iomgr/iomgr_posix.cc +2 -1
  1303. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +3 -0
  1304. data/src/core/lib/iomgr/iomgr_windows.cc +3 -1
  1305. data/src/core/lib/iomgr/nameser.h +1 -1
  1306. data/src/core/lib/iomgr/polling_entity.cc +2 -7
  1307. data/src/core/lib/iomgr/resolve_address_posix.cc +37 -49
  1308. data/src/core/lib/iomgr/resolve_address_posix.h +15 -0
  1309. data/src/core/lib/iomgr/resolve_address_windows.cc +22 -47
  1310. data/src/core/lib/iomgr/resolve_address_windows.h +15 -2
  1311. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
  1312. data/src/core/lib/iomgr/socket_utils_posix.cc +23 -11
  1313. data/src/core/lib/iomgr/socket_utils_posix.h +12 -2
  1314. data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -9
  1315. data/src/core/lib/iomgr/tcp_client_posix.cc +27 -23
  1316. data/src/core/lib/iomgr/tcp_client_posix.h +1 -1
  1317. data/src/core/lib/iomgr/tcp_client_windows.cc +3 -3
  1318. data/src/core/lib/iomgr/tcp_posix.cc +84 -48
  1319. data/src/core/lib/iomgr/tcp_posix.h +10 -2
  1320. data/src/core/lib/iomgr/tcp_server_posix.cc +10 -4
  1321. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -4
  1322. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +2 -2
  1323. data/src/core/lib/iomgr/tcp_server_windows.cc +44 -22
  1324. data/src/core/lib/iomgr/tcp_windows.cc +3 -2
  1325. data/src/core/lib/iomgr/timer_generic.cc +1 -1
  1326. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  1327. data/src/core/lib/iomgr/timer_manager.cc +1 -9
  1328. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +11 -3
  1329. data/src/core/lib/promise/activity.cc +2 -0
  1330. data/src/core/lib/promise/activity.h +35 -13
  1331. data/src/core/lib/promise/all_ok.h +68 -0
  1332. data/src/core/lib/promise/arena_promise.h +23 -7
  1333. data/src/core/lib/promise/detail/basic_seq.h +32 -18
  1334. data/src/core/lib/promise/detail/join_state.h +16 -68
  1335. data/src/core/lib/promise/detail/promise_factory.h +96 -26
  1336. data/src/core/lib/promise/detail/promise_like.h +163 -12
  1337. data/src/core/lib/promise/detail/promise_variant.h +50 -0
  1338. data/src/core/lib/promise/detail/seq_state.h +1162 -495
  1339. data/src/core/lib/promise/for_each.h +14 -5
  1340. data/src/core/lib/promise/if.h +68 -20
  1341. data/src/core/lib/promise/inter_activity_latch.h +147 -0
  1342. data/src/core/lib/promise/inter_activity_mutex.h +547 -0
  1343. data/src/core/lib/promise/interceptor_list.h +9 -9
  1344. data/src/core/lib/promise/latch.h +14 -6
  1345. data/src/core/lib/promise/loop.h +131 -17
  1346. data/src/core/lib/promise/map.h +269 -18
  1347. data/src/core/lib/promise/match_promise.h +103 -0
  1348. data/src/core/lib/promise/mpsc.cc +425 -0
  1349. data/src/core/lib/promise/mpsc.h +490 -0
  1350. data/src/core/lib/promise/party.cc +144 -68
  1351. data/src/core/lib/promise/party.h +340 -54
  1352. data/src/core/lib/promise/pipe.h +12 -12
  1353. data/src/core/lib/promise/poll.h +34 -16
  1354. data/src/core/lib/promise/prioritized_race.h +16 -22
  1355. data/src/core/lib/promise/promise.h +6 -5
  1356. data/src/core/lib/promise/race.h +35 -12
  1357. data/src/core/lib/promise/seq.h +52 -35
  1358. data/src/core/lib/promise/sleep.cc +9 -6
  1359. data/src/core/lib/promise/sleep.h +15 -1
  1360. data/src/core/lib/promise/status_flag.h +54 -12
  1361. data/src/core/lib/promise/try_join.h +119 -5
  1362. data/src/core/lib/promise/try_seq.h +79 -49
  1363. data/src/core/lib/promise/wait_set.cc +28 -0
  1364. data/src/core/lib/promise/wait_set.h +86 -0
  1365. data/src/core/lib/resource_quota/api.h +1 -1
  1366. data/src/core/lib/resource_quota/arena.h +106 -0
  1367. data/src/core/lib/resource_quota/connection_quota.h +4 -0
  1368. data/src/core/lib/resource_quota/memory_quota.cc +78 -54
  1369. data/src/core/lib/resource_quota/memory_quota.h +10 -8
  1370. data/src/core/lib/resource_quota/periodic_update.cc +1 -1
  1371. data/src/core/lib/security/authorization/evaluate_args.cc +4 -4
  1372. data/src/core/lib/security/authorization/evaluate_args.h +4 -4
  1373. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -8
  1374. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +7 -7
  1375. data/src/core/lib/security/authorization/matchers.h +3 -3
  1376. data/src/core/lib/security/authorization/rbac_policy.cc +1 -1
  1377. data/src/core/lib/security/authorization/rbac_policy.h +3 -3
  1378. data/src/core/lib/slice/slice.h +11 -0
  1379. data/src/core/lib/slice/slice_buffer.cc +3 -2
  1380. data/src/core/lib/slice/slice_buffer.h +8 -2
  1381. data/src/core/lib/surface/call.cc +24 -22
  1382. data/src/core/lib/surface/call.h +4 -3
  1383. data/src/core/lib/surface/call_utils.cc +5 -5
  1384. data/src/core/lib/surface/call_utils.h +17 -7
  1385. data/src/core/lib/surface/channel.cc +6 -14
  1386. data/src/core/lib/surface/channel.h +5 -5
  1387. data/src/core/lib/surface/channel_create.cc +140 -5
  1388. data/src/core/lib/surface/channel_create.h +4 -0
  1389. data/src/core/lib/surface/channel_init.cc +165 -48
  1390. data/src/core/lib/surface/channel_init.h +67 -4
  1391. data/src/core/lib/surface/completion_queue.cc +88 -67
  1392. data/src/core/lib/surface/completion_queue.h +1 -1
  1393. data/src/core/lib/surface/connection_context.cc +77 -0
  1394. data/src/core/lib/surface/connection_context.h +156 -0
  1395. data/src/core/lib/surface/event_string.cc +7 -1
  1396. data/src/core/lib/surface/filter_stack_call.cc +60 -40
  1397. data/src/core/lib/surface/filter_stack_call.h +3 -3
  1398. data/src/core/lib/surface/init.cc +12 -14
  1399. data/src/core/lib/surface/init_internally.h +13 -2
  1400. data/src/core/lib/surface/lame_client.cc +2 -2
  1401. data/src/core/lib/surface/legacy_channel.cc +41 -37
  1402. data/src/core/lib/surface/legacy_channel.h +6 -4
  1403. data/src/core/lib/surface/version.cc +2 -2
  1404. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  1405. data/src/core/lib/transport/call_final_info.h +1 -1
  1406. data/src/core/lib/transport/connectivity_state.cc +8 -9
  1407. data/src/core/lib/transport/connectivity_state.h +2 -4
  1408. data/src/core/lib/transport/error_utils.cc +65 -11
  1409. data/src/core/lib/transport/error_utils.h +2 -2
  1410. data/src/core/lib/transport/promise_endpoint.cc +110 -0
  1411. data/src/core/lib/transport/promise_endpoint.h +307 -0
  1412. data/src/core/lib/transport/status_conversion.cc +11 -36
  1413. data/src/core/lib/transport/status_conversion.h +5 -4
  1414. data/src/core/lib/transport/timeout_encoding.cc +19 -19
  1415. data/src/core/lib/transport/timeout_encoding.h +3 -2
  1416. data/src/core/lib/transport/transport.cc +2 -3
  1417. data/src/core/lib/transport/transport.h +20 -12
  1418. data/src/core/lib/transport/transport_framing_endpoint_extension.h +47 -0
  1419. data/src/core/lib/transport/transport_op_string.cc +1 -1
  1420. data/src/core/load_balancing/backend_metric_parser.cc +12 -25
  1421. data/src/core/load_balancing/child_policy_handler.cc +3 -5
  1422. data/src/core/load_balancing/delegating_helper.h +3 -4
  1423. data/src/core/load_balancing/endpoint_list.cc +12 -2
  1424. data/src/core/load_balancing/endpoint_list.h +20 -13
  1425. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +2 -7
  1426. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +4 -4
  1427. data/src/core/load_balancing/grpclb/grpclb.cc +25 -43
  1428. data/src/core/load_balancing/health_check_client.cc +19 -57
  1429. data/src/core/load_balancing/health_check_client_internal.h +7 -7
  1430. data/src/core/load_balancing/lb_policy.cc +4 -6
  1431. data/src/core/load_balancing/lb_policy.h +6 -16
  1432. data/src/core/load_balancing/lb_policy_registry.cc +10 -8
  1433. data/src/core/load_balancing/oob_backend_metric.cc +3 -9
  1434. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +63 -73
  1435. data/src/core/load_balancing/outlier_detection/outlier_detection.h +4 -3
  1436. data/src/core/load_balancing/pick_first/pick_first.cc +74 -990
  1437. data/src/core/load_balancing/priority/priority.cc +9 -14
  1438. data/src/core/load_balancing/ring_hash/ring_hash.cc +211 -159
  1439. data/src/core/load_balancing/ring_hash/ring_hash.h +4 -11
  1440. data/src/core/load_balancing/rls/rls.cc +139 -233
  1441. data/src/core/load_balancing/rls/rls.h +97 -1
  1442. data/src/core/load_balancing/round_robin/round_robin.cc +17 -23
  1443. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +6 -6
  1444. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +3 -3
  1445. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +25 -34
  1446. data/src/core/load_balancing/weighted_target/weighted_target.cc +12 -26
  1447. data/src/core/load_balancing/xds/cds.cc +25 -27
  1448. data/src/core/load_balancing/xds/xds_cluster_impl.cc +17 -20
  1449. data/src/core/load_balancing/xds/xds_cluster_manager.cc +11 -19
  1450. data/src/core/load_balancing/xds/xds_override_host.cc +99 -125
  1451. data/src/core/load_balancing/xds/xds_wrr_locality.cc +11 -13
  1452. data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
  1453. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +3 -3
  1454. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +14 -16
  1455. data/src/core/resolver/dns/c_ares/dns_resolver_ares.h +1 -1
  1456. data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
  1457. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +4 -0
  1458. data/src/core/resolver/dns/dns_resolver_plugin.cc +1 -1
  1459. data/src/core/resolver/dns/dns_resolver_plugin.h +1 -1
  1460. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +10 -15
  1461. data/src/core/resolver/dns/native/dns_resolver.cc +2 -2
  1462. data/src/core/resolver/dns/native/dns_resolver.h +1 -1
  1463. data/src/core/resolver/fake/fake_resolver.cc +11 -12
  1464. data/src/core/resolver/fake/fake_resolver.h +2 -2
  1465. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +11 -14
  1466. data/src/core/resolver/polling_resolver.cc +2 -5
  1467. data/src/core/resolver/polling_resolver.h +3 -3
  1468. data/src/core/resolver/resolver_registry.cc +4 -3
  1469. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -2
  1470. data/src/core/resolver/xds/xds_config.cc +12 -9
  1471. data/src/core/resolver/xds/xds_config.h +11 -6
  1472. data/src/core/resolver/xds/xds_dependency_manager.cc +220 -193
  1473. data/src/core/resolver/xds/xds_dependency_manager.h +30 -19
  1474. data/src/core/resolver/xds/xds_resolver.cc +116 -136
  1475. data/src/core/server/add_port.cc +87 -0
  1476. data/src/core/server/server.cc +459 -131
  1477. data/src/core/server/server.h +237 -72
  1478. data/src/core/server/server_call_tracer_filter.cc +5 -9
  1479. data/src/core/server/server_call_tracer_filter.h +1 -1
  1480. data/src/core/server/server_config_selector.h +1 -1
  1481. data/src/core/server/server_config_selector_filter.cc +9 -16
  1482. data/src/core/server/xds_channel_stack_modifier.cc +1 -1
  1483. data/src/core/server/xds_server_config_fetcher.cc +159 -187
  1484. data/src/core/service_config/service_config.h +1 -1
  1485. data/src/core/service_config/service_config_channel_arg_filter.cc +9 -21
  1486. data/src/core/service_config/service_config_impl.cc +4 -4
  1487. data/src/core/service_config/service_config_impl.h +1 -1
  1488. data/src/core/telemetry/call_tracer.cc +12 -14
  1489. data/src/core/telemetry/call_tracer.h +10 -9
  1490. data/src/core/telemetry/context_list_entry.cc +38 -0
  1491. data/src/core/telemetry/context_list_entry.h +112 -0
  1492. data/src/core/telemetry/default_tcp_tracer.cc +26 -0
  1493. data/src/core/telemetry/default_tcp_tracer.h +44 -0
  1494. data/src/core/telemetry/histogram_view.cc +3 -3
  1495. data/src/core/telemetry/metrics.cc +44 -23
  1496. data/src/core/telemetry/metrics.h +24 -14
  1497. data/src/core/telemetry/stats.h +0 -5
  1498. data/src/core/telemetry/stats_data.cc +564 -329
  1499. data/src/core/telemetry/stats_data.h +474 -180
  1500. data/src/core/telemetry/tcp_tracer.cc +38 -0
  1501. data/src/core/telemetry/tcp_tracer.h +104 -100
  1502. data/src/core/transport/auth_context.cc +235 -0
  1503. data/src/core/transport/auth_context.h +139 -0
  1504. data/src/core/transport/endpoint_transport.h +90 -0
  1505. data/src/core/transport/endpoint_transport_client_channel_factory.cc +61 -0
  1506. data/src/core/transport/endpoint_transport_client_channel_factory.h +57 -0
  1507. data/src/core/tsi/alts/frame_protector/alts_counter.h +1 -1
  1508. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +1 -1
  1509. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
  1510. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +36 -4
  1511. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +3 -1
  1512. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +74 -20
  1513. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -3
  1514. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
  1515. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -4
  1516. data/src/core/tsi/fake_transport_security.cc +22 -0
  1517. data/src/core/tsi/ssl_transport_security.cc +203 -76
  1518. data/src/core/tsi/ssl_transport_security.h +8 -3
  1519. data/src/core/tsi/ssl_transport_security_utils.h +1 -1
  1520. data/src/core/tsi/transport_security.h +3 -0
  1521. data/src/core/tsi/transport_security_grpc.cc +8 -0
  1522. data/src/core/tsi/transport_security_grpc.h +22 -3
  1523. data/src/core/tsi/transport_security_interface.h +32 -27
  1524. data/src/core/util/backoff.cc +3 -3
  1525. data/src/core/util/backoff.h +1 -1
  1526. data/src/core/util/check_class_size.h +48 -0
  1527. data/src/core/util/down_cast.h +1 -1
  1528. data/src/core/util/dual_ref_counted.h +48 -0
  1529. data/src/core/util/dump_args.h +1 -9
  1530. data/src/core/util/env.h +3 -4
  1531. data/src/core/util/examine_stack.cc +2 -2
  1532. data/src/core/util/examine_stack.h +3 -4
  1533. data/src/core/util/fork.cc +1 -1
  1534. data/src/core/util/fork.h +2 -2
  1535. data/src/core/util/function_signature.h +80 -0
  1536. data/src/core/util/gcp_metadata_query.cc +4 -3
  1537. data/src/core/util/gpr_time.cc +4 -6
  1538. data/src/core/util/http_client/httpcli.cc +97 -36
  1539. data/src/core/util/http_client/httpcli.h +22 -9
  1540. data/src/core/util/http_client/httpcli_security_connector.cc +7 -6
  1541. data/src/core/util/json/json_channel_args.h +2 -1
  1542. data/src/core/util/json/json_object_loader.cc +4 -4
  1543. data/src/core/util/json/json_object_loader.h +19 -19
  1544. data/src/core/util/json/json_reader.cc +4 -4
  1545. data/src/core/util/json/json_writer.cc +4 -4
  1546. data/src/core/util/latent_see.cc +123 -76
  1547. data/src/core/util/latent_see.h +34 -36
  1548. data/src/core/util/linux/env.cc +6 -5
  1549. data/src/core/util/load_file.cc +26 -14
  1550. data/src/core/util/log.cc +5 -1
  1551. data/src/core/util/lru_cache.h +4 -4
  1552. data/src/core/util/match.h +7 -7
  1553. data/src/core/util/matchers.cc +1 -2
  1554. data/src/core/util/matchers.h +7 -12
  1555. data/src/core/util/memory_usage.h +268 -0
  1556. data/src/core/util/per_cpu.cc +2 -0
  1557. data/src/core/util/per_cpu.h +7 -0
  1558. data/src/core/util/posix/env.cc +2 -2
  1559. data/src/core/util/posix/sync.cc +0 -1
  1560. data/src/core/util/posix/time.cc +0 -1
  1561. data/src/core/util/ref_counted.h +1 -0
  1562. data/src/core/util/ref_counted_ptr.h +27 -1
  1563. data/src/core/util/ring_buffer.h +4 -5
  1564. data/src/core/util/shared_bit_gen.cc +21 -0
  1565. data/src/core/util/shared_bit_gen.h +64 -0
  1566. data/src/core/util/single_set_ptr.h +35 -4
  1567. data/src/core/util/status_helper.cc +98 -79
  1568. data/src/core/util/status_helper.h +13 -30
  1569. data/src/core/util/string.cc +2 -2
  1570. data/src/core/util/sync_abseil.cc +0 -1
  1571. data/src/core/util/table.h +6 -21
  1572. data/src/core/util/time.cc +5 -5
  1573. data/src/core/util/time.h +5 -5
  1574. data/src/core/util/time_precise.cc +0 -1
  1575. data/src/core/util/type_list.h +56 -0
  1576. data/src/core/util/upb_utils.h +42 -0
  1577. data/src/core/util/uri.cc +91 -24
  1578. data/src/core/util/uri.h +23 -7
  1579. data/src/core/util/useful.h +66 -17
  1580. data/src/core/util/validation_errors.cc +5 -5
  1581. data/src/core/util/wait_for_single_owner.cc +31 -0
  1582. data/src/core/util/wait_for_single_owner.h +86 -0
  1583. data/src/core/util/windows/env.cc +3 -3
  1584. data/src/core/util/windows/sync.cc +0 -1
  1585. data/src/core/util/windows/time.cc +0 -1
  1586. data/src/core/util/work_serializer.cc +27 -267
  1587. data/src/core/util/work_serializer.h +3 -27
  1588. data/src/core/xds/grpc/certificate_provider_store.cc +14 -19
  1589. data/src/core/xds/grpc/certificate_provider_store.h +4 -4
  1590. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +6 -6
  1591. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +1 -1
  1592. data/src/core/xds/grpc/xds_audit_logger_registry.cc +1 -1
  1593. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +22 -20
  1594. data/src/core/xds/grpc/xds_bootstrap_grpc.h +7 -2
  1595. data/src/core/xds/grpc/xds_certificate_provider.cc +16 -16
  1596. data/src/core/xds/grpc/xds_certificate_provider.h +2 -2
  1597. data/src/core/xds/grpc/xds_client_grpc.cc +20 -16
  1598. data/src/core/xds/grpc/xds_client_grpc.h +4 -2
  1599. data/src/core/xds/grpc/xds_cluster.h +7 -7
  1600. data/src/core/xds/grpc/xds_cluster_parser.cc +29 -28
  1601. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +4 -4
  1602. data/src/core/xds/grpc/xds_common_types.cc +2 -2
  1603. data/src/core/xds/grpc/xds_common_types.h +4 -4
  1604. data/src/core/xds/grpc/xds_common_types_parser.cc +167 -89
  1605. data/src/core/xds/grpc/xds_common_types_parser.h +20 -7
  1606. data/src/core/xds/grpc/xds_endpoint.cc +3 -4
  1607. data/src/core/xds/grpc/xds_endpoint_parser.cc +68 -37
  1608. data/src/core/xds/grpc/xds_health_status.cc +4 -4
  1609. data/src/core/xds/grpc/xds_health_status.h +4 -3
  1610. data/src/core/xds/grpc/xds_http_fault_filter.cc +19 -21
  1611. data/src/core/xds/grpc/xds_http_fault_filter.h +4 -3
  1612. data/src/core/xds/grpc/xds_http_filter.h +11 -4
  1613. data/src/core/xds/grpc/xds_http_filter_registry.cc +8 -10
  1614. data/src/core/xds/grpc/xds_http_filter_registry.h +4 -4
  1615. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +31 -9
  1616. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +7 -3
  1617. data/src/core/xds/grpc/xds_http_rbac_filter.cc +21 -21
  1618. data/src/core/xds/grpc/xds_http_rbac_filter.h +4 -3
  1619. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +10 -10
  1620. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +4 -3
  1621. data/src/core/xds/grpc/xds_lb_policy_registry.cc +5 -5
  1622. data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
  1623. data/src/core/xds/grpc/xds_listener.cc +4 -6
  1624. data/src/core/xds/grpc/xds_listener.h +10 -10
  1625. data/src/core/xds/grpc/xds_listener_parser.cc +58 -51
  1626. data/src/core/xds/grpc/xds_listener_parser.h +2 -1
  1627. data/src/core/xds/grpc/xds_metadata.cc +5 -5
  1628. data/src/core/xds/grpc/xds_metadata.h +8 -0
  1629. data/src/core/xds/grpc/xds_metadata_parser.cc +26 -37
  1630. data/src/core/xds/grpc/xds_metadata_parser.h +0 -2
  1631. data/src/core/xds/grpc/xds_route_config.cc +10 -15
  1632. data/src/core/xds/grpc/xds_route_config.h +10 -10
  1633. data/src/core/xds/grpc/xds_route_config_parser.cc +85 -132
  1634. data/src/core/xds/grpc/xds_route_config_parser.h +5 -5
  1635. data/src/core/xds/grpc/xds_routing.cc +6 -6
  1636. data/src/core/xds/grpc/xds_routing.h +6 -6
  1637. data/src/core/xds/grpc/xds_server_grpc.cc +133 -50
  1638. data/src/core/xds/grpc/xds_server_grpc.h +34 -13
  1639. data/src/core/xds/grpc/xds_server_grpc_interface.h +37 -0
  1640. data/src/core/xds/grpc/xds_transport_grpc.cc +29 -12
  1641. data/src/core/xds/grpc/xds_transport_grpc.h +5 -3
  1642. data/src/core/xds/xds_client/lrs_client.cc +77 -88
  1643. data/src/core/xds/xds_client/lrs_client.h +15 -15
  1644. data/src/core/xds/xds_client/xds_api.cc +5 -228
  1645. data/src/core/xds/xds_client/xds_api.h +1 -133
  1646. data/src/core/xds/xds_client/xds_bootstrap.cc +11 -1
  1647. data/src/core/xds/xds_client/xds_bootstrap.h +25 -1
  1648. data/src/core/xds/xds_client/xds_client.cc +1076 -727
  1649. data/src/core/xds/xds_client/xds_client.h +138 -30
  1650. data/src/core/xds/xds_client/xds_resource_type.h +3 -5
  1651. data/src/core/xds/xds_client/xds_resource_type_impl.h +13 -8
  1652. data/src/core/xds/xds_client/xds_transport.h +1 -1
  1653. data/src/ruby/ext/grpc/extconf.rb +5 -2
  1654. data/src/ruby/ext/grpc/rb_call.c +1 -8
  1655. data/src/ruby/ext/grpc/rb_channel.c +70 -557
  1656. data/src/ruby/ext/grpc/rb_channel.h +0 -3
  1657. data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
  1658. data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
  1659. data/src/ruby/ext/grpc/rb_grpc.c +9 -5
  1660. data/src/ruby/ext/grpc/rb_grpc.h +1 -1
  1661. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  1662. data/src/ruby/ext/grpc/rb_loader.c +0 -4
  1663. data/src/ruby/ext/grpc/rb_server.c +31 -50
  1664. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
  1665. data/src/ruby/lib/grpc/version.rb +1 -1
  1666. data/src/ruby/spec/core_spec.rb +22 -0
  1667. data/src/ruby/spec/generic/active_call_spec.rb +1 -1
  1668. data/src/ruby/spec/generic/client_stub_spec.rb +2 -6
  1669. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  1670. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +2 -2
  1671. data/third_party/abseil-cpp/absl/algorithm/container.h +81 -67
  1672. data/third_party/abseil-cpp/absl/base/attributes.h +142 -23
  1673. data/third_party/abseil-cpp/absl/base/call_once.h +18 -16
  1674. data/third_party/abseil-cpp/absl/base/config.h +23 -132
  1675. data/third_party/abseil-cpp/absl/base/fast_type_id.h +45 -0
  1676. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
  1677. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
  1678. data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
  1679. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
  1680. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
  1681. data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +106 -0
  1682. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +1 -1
  1683. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
  1684. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
  1685. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -0
  1686. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +5 -1
  1687. data/third_party/abseil-cpp/absl/base/internal/tracing.cc +39 -0
  1688. data/third_party/abseil-cpp/absl/base/internal/tracing.h +81 -0
  1689. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
  1690. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -10
  1691. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +17 -0
  1692. data/third_party/abseil-cpp/absl/base/macros.h +35 -4
  1693. data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
  1694. data/third_party/abseil-cpp/absl/base/nullability.h +124 -56
  1695. data/third_party/abseil-cpp/absl/base/optimization.h +8 -12
  1696. data/third_party/abseil-cpp/absl/base/options.h +7 -81
  1697. data/third_party/abseil-cpp/absl/base/policy_checks.h +9 -7
  1698. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
  1699. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
  1700. data/third_party/abseil-cpp/absl/container/btree_map.h +891 -0
  1701. data/third_party/abseil-cpp/absl/container/btree_set.h +826 -0
  1702. data/third_party/abseil-cpp/absl/container/fixed_array.h +9 -15
  1703. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +22 -3
  1704. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +23 -4
  1705. data/third_party/abseil-cpp/absl/container/inlined_vector.h +10 -6
  1706. data/third_party/abseil-cpp/absl/container/internal/btree.h +3149 -0
  1707. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +867 -0
  1708. data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
  1709. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +10 -2
  1710. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -10
  1711. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
  1712. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
  1713. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
  1714. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
  1715. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
  1716. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +6 -9
  1717. data/third_party/abseil-cpp/absl/container/internal/layout.h +27 -43
  1718. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
  1719. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1462 -263
  1720. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1170 -1547
  1721. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
  1722. data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
  1723. data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
  1724. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +56 -0
  1725. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
  1726. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
  1727. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +21 -7
  1728. data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  1729. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
  1730. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
  1731. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +12 -37
  1732. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
  1733. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +1 -1
  1734. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -21
  1735. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
  1736. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +7 -0
  1737. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
  1738. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
  1739. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
  1740. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +20 -8
  1741. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
  1742. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
  1743. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
  1744. data/third_party/abseil-cpp/absl/debugging/leak_check.cc +73 -0
  1745. data/third_party/abseil-cpp/absl/debugging/leak_check.h +150 -0
  1746. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
  1747. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
  1748. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +3 -2
  1749. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +67 -18
  1750. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
  1751. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
  1752. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +1 -0
  1753. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +9 -2
  1754. data/third_party/abseil-cpp/absl/flags/flag.h +18 -15
  1755. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
  1756. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +14 -5
  1757. data/third_party/abseil-cpp/absl/flags/internal/flag.h +23 -11
  1758. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +4 -0
  1759. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +3 -0
  1760. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +13 -12
  1761. data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
  1762. data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
  1763. data/third_party/abseil-cpp/absl/flags/usage_config.cc +9 -4
  1764. data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
  1765. data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
  1766. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
  1767. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
  1768. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
  1769. data/third_party/abseil-cpp/absl/hash/hash.h +44 -2
  1770. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +14 -18
  1771. data/third_party/abseil-cpp/absl/hash/internal/hash.h +257 -127
  1772. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +27 -72
  1773. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
  1774. data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
  1775. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +2 -0
  1776. data/third_party/abseil-cpp/absl/log/check.h +2 -1
  1777. data/third_party/abseil-cpp/absl/log/globals.h +4 -5
  1778. data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
  1779. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +43 -38
  1780. data/third_party/abseil-cpp/absl/log/internal/check_op.h +124 -99
  1781. data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
  1782. data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
  1783. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +158 -64
  1784. data/third_party/abseil-cpp/absl/log/internal/log_message.h +140 -83
  1785. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
  1786. data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -5
  1787. data/third_party/abseil-cpp/absl/log/internal/proto.h +28 -18
  1788. data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
  1789. data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
  1790. data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +107 -0
  1791. data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +8 -1
  1792. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
  1793. data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
  1794. data/third_party/abseil-cpp/absl/log/log.h +48 -35
  1795. data/third_party/abseil-cpp/absl/log/log_sink_registry.h +5 -2
  1796. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +2 -0
  1797. data/third_party/abseil-cpp/absl/meta/type_traits.h +62 -181
  1798. data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
  1799. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
  1800. data/third_party/abseil-cpp/absl/numeric/int128.h +15 -3
  1801. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +6 -4
  1802. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +6 -3
  1803. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
  1804. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
  1805. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +3 -1
  1806. data/third_party/abseil-cpp/absl/random/beta_distribution.h +3 -1
  1807. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +12 -12
  1808. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +10 -0
  1809. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +4 -2
  1810. data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
  1811. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -0
  1812. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +3 -2
  1813. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -7
  1814. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +185 -0
  1815. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
  1816. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +5 -2
  1817. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
  1818. data/third_party/abseil-cpp/absl/random/internal/platform.h +12 -12
  1819. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +57 -6
  1820. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -1
  1821. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
  1822. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
  1823. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +2 -2
  1824. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +0 -1
  1825. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +1 -4
  1826. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +4 -3
  1827. data/third_party/abseil-cpp/absl/random/random.h +88 -53
  1828. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +2 -3
  1829. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
  1830. data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -2
  1831. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -1
  1832. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +2 -0
  1833. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +5 -4
  1834. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +10 -7
  1835. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
  1836. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
  1837. data/third_party/abseil-cpp/absl/status/status.cc +4 -8
  1838. data/third_party/abseil-cpp/absl/status/status.h +8 -8
  1839. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
  1840. data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
  1841. data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
  1842. data/third_party/abseil-cpp/absl/strings/ascii.cc +44 -29
  1843. data/third_party/abseil-cpp/absl/strings/ascii.h +62 -22
  1844. data/third_party/abseil-cpp/absl/strings/charconv.cc +25 -29
  1845. data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
  1846. data/third_party/abseil-cpp/absl/strings/charset.h +3 -4
  1847. data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
  1848. data/third_party/abseil-cpp/absl/strings/cord.h +99 -102
  1849. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
  1850. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
  1851. data/third_party/abseil-cpp/absl/strings/escaping.cc +186 -197
  1852. data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
  1853. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  1854. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +1 -1
  1855. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +53 -22
  1856. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
  1857. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
  1858. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
  1859. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
  1860. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
  1861. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +3 -2
  1862. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
  1863. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  1864. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
  1865. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -0
  1866. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
  1867. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
  1868. data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
  1869. data/third_party/abseil-cpp/absl/strings/match.h +21 -11
  1870. data/third_party/abseil-cpp/absl/strings/numbers.cc +55 -33
  1871. data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
  1872. data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
  1873. data/third_party/abseil-cpp/absl/strings/str_cat.h +41 -30
  1874. data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
  1875. data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
  1876. data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
  1877. data/third_party/abseil-cpp/absl/strings/str_split.h +18 -1
  1878. data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
  1879. data/third_party/abseil-cpp/absl/strings/string_view.h +46 -50
  1880. data/third_party/abseil-cpp/absl/strings/strip.h +11 -8
  1881. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
  1882. data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
  1883. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +16 -10
  1884. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +6 -0
  1885. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -1
  1886. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
  1887. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
  1888. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
  1889. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
  1890. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
  1891. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
  1892. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
  1893. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +39 -13
  1894. data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
  1895. data/third_party/abseil-cpp/absl/synchronization/notification.cc +10 -2
  1896. data/third_party/abseil-cpp/absl/synchronization/notification.h +12 -2
  1897. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
  1898. data/third_party/abseil-cpp/absl/time/duration.cc +18 -58
  1899. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
  1900. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  1901. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  1902. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +3 -3
  1903. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +2 -2
  1904. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +2 -2
  1905. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +3 -3
  1906. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +2 -2
  1907. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
  1908. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +1 -1
  1909. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +92 -112
  1910. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +1 -1
  1911. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -4
  1912. data/third_party/abseil-cpp/absl/time/time.h +89 -23
  1913. data/third_party/abseil-cpp/absl/types/internal/span.h +3 -2
  1914. data/third_party/abseil-cpp/absl/types/optional.h +7 -745
  1915. data/third_party/abseil-cpp/absl/types/span.h +98 -54
  1916. data/third_party/abseil-cpp/absl/types/variant.h +5 -784
  1917. data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
  1918. data/third_party/boringssl-with-bazel/src/crypto/aes/aes.cc +41 -0
  1919. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +259 -0
  1920. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.cc +53 -0
  1921. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.cc +47 -0
  1922. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.cc +42 -0
  1923. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.cc +109 -0
  1924. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.cc +43 -0
  1925. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +439 -0
  1926. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.cc +239 -0
  1927. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.cc +193 -0
  1928. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.cc +32 -0
  1929. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.cc +415 -0
  1930. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.cc +206 -0
  1931. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.cc +224 -0
  1932. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.cc +172 -0
  1933. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.cc +109 -0
  1934. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.cc +355 -0
  1935. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.cc +61 -0
  1936. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.cc +56 -0
  1937. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.cc +63 -0
  1938. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.cc +52 -0
  1939. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +33 -61
  1940. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.cc +241 -0
  1941. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +963 -0
  1942. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +661 -0
  1943. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.cc +164 -0
  1944. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.cc +276 -0
  1945. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +80 -0
  1946. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.cc +229 -0
  1947. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.cc +434 -0
  1948. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +19 -48
  1949. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.cc +658 -0
  1950. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.cc +268 -0
  1951. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +509 -0
  1952. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.cc +50 -0
  1953. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.cc +193 -0
  1954. data/third_party/boringssl-with-bazel/src/crypto/bio/file.cc +292 -0
  1955. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.cc +152 -0
  1956. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +17 -61
  1957. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.cc +446 -0
  1958. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.cc +59 -0
  1959. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +144 -0
  1960. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +131 -0
  1961. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.cc +169 -0
  1962. data/third_party/boringssl-with-bazel/src/crypto/bn/bn_asn1.cc +57 -0
  1963. data/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc +407 -0
  1964. data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +100 -0
  1965. data/third_party/boringssl-with-bazel/src/crypto/bn/exponentiation.cc +166 -0
  1966. data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +93 -0
  1967. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.cc +118 -0
  1968. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.cc +53 -0
  1969. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.cc +266 -0
  1970. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +708 -0
  1971. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +912 -0
  1972. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +16 -16
  1973. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.cc +156 -0
  1974. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.cc +224 -0
  1975. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +23 -23
  1976. data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +108 -0
  1977. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesctrhmac.cc +279 -0
  1978. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aeseax.cc +289 -0
  1979. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc +922 -0
  1980. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_chacha20poly1305.cc +341 -0
  1981. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_des.cc +198 -0
  1982. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_null.cc +51 -0
  1983. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc2.cc +417 -0
  1984. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc4.cc +54 -0
  1985. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_tls.cc +599 -0
  1986. data/third_party/boringssl-with-bazel/src/crypto/cipher/get_cipher.cc +85 -0
  1987. data/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h +240 -0
  1988. data/third_party/boringssl-with-bazel/src/crypto/cipher/tls_cbc.cc +476 -0
  1989. data/third_party/boringssl-with-bazel/src/crypto/cms/cms.cc +172 -0
  1990. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.cc +631 -0
  1991. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +13 -13
  1992. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +73 -0
  1993. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +53 -0
  1994. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +60 -0
  1995. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +59 -0
  1996. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +92 -0
  1997. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +39 -0
  1998. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +53 -0
  1999. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +173 -0
  2000. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +24 -22
  2001. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +281 -0
  2002. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +181 -0
  2003. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.cc +2154 -0
  2004. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.cc +18 -0
  2005. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +13 -13
  2006. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +17 -17
  2007. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.cc +529 -0
  2008. data/third_party/boringssl-with-bazel/src/crypto/des/des.cc +829 -0
  2009. data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +31 -73
  2010. data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +123 -0
  2011. data/third_party/boringssl-with-bazel/src/crypto/dh/params.cc +408 -0
  2012. data/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc +314 -0
  2013. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +941 -0
  2014. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +367 -0
  2015. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +17 -19
  2016. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc +554 -0
  2017. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_derive.cc +96 -0
  2018. data/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc +502 -0
  2019. data/third_party/boringssl-with-bazel/src/crypto/ec/internal.h +78 -0
  2020. data/third_party/boringssl-with-bazel/src/crypto/ecdh/ecdh.cc +73 -0
  2021. data/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc +351 -0
  2022. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.cc +95 -0
  2023. data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +808 -0
  2024. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +13 -13
  2025. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.cc +379 -0
  2026. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +470 -0
  2027. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +439 -0
  2028. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +17 -59
  2029. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.cc +153 -0
  2030. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.cc +142 -0
  2031. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +279 -0
  2032. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.cc +230 -0
  2033. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +286 -0
  2034. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.cc +103 -0
  2035. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +225 -0
  2036. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.cc +236 -0
  2037. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.cc +609 -0
  2038. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +198 -0
  2039. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.cc +109 -0
  2040. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +237 -0
  2041. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.cc +98 -0
  2042. data/third_party/boringssl-with-bazel/src/crypto/evp/print.cc +342 -0
  2043. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.cc +216 -0
  2044. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +95 -0
  2045. data/third_party/boringssl-with-bazel/src/crypto/ex_data.cc +141 -0
  2046. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +202 -0
  2047. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.cc.inc +1281 -0
  2048. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cbc.cc.inc +130 -0
  2049. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/cfb.cc.inc +166 -0
  2050. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ctr.cc.inc +100 -0
  2051. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc +604 -0
  2052. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm_nohw.cc.inc +302 -0
  2053. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +396 -76
  2054. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +209 -0
  2055. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +93 -0
  2056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ofb.cc.inc +53 -0
  2057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +282 -0
  2058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +765 -29
  2059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.cc.inc +269 -0
  2060. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +554 -0
  2061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.cc.inc +374 -0
  2062. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.cc.inc +225 -0
  2063. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.cc.inc +159 -0
  2064. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.cc.inc +191 -0
  2065. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +734 -0
  2066. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.cc.inc +87 -0
  2067. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +739 -0
  2068. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +278 -0
  2069. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +323 -0
  2070. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.cc.inc +582 -0
  2071. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +53 -160
  2072. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +99 -0
  2073. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +409 -0
  2074. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.cc.inc +222 -0
  2075. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +698 -0
  2076. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +928 -0
  2077. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.cc.inc +260 -0
  2078. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.cc.inc +142 -0
  2079. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +24 -21
  2080. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +315 -0
  2081. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +382 -0
  2082. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.cc.inc +295 -0
  2083. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.cc.inc +672 -0
  2084. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +1235 -0
  2085. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.cc.inc +409 -0
  2086. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +18 -69
  2087. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.cc.inc +288 -0
  2088. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +36 -25
  2089. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +190 -0
  2090. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +424 -0
  2091. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +13 -15
  2092. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +244 -0
  2093. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.cc.inc +178 -0
  2094. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +17 -59
  2095. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +17 -51
  2096. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.cc.inc +226 -0
  2097. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +91 -91
  2098. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +971 -0
  2099. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +494 -0
  2100. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.cc.inc +439 -0
  2101. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.cc.inc +104 -0
  2102. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +23 -70
  2103. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +295 -0
  2104. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.cc.inc +1163 -0
  2105. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +15 -10
  2106. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.cc.inc +741 -0
  2107. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +26 -21
  2108. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.cc.inc +749 -0
  2109. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +13 -13
  2110. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.cc.inc +179 -0
  2111. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +279 -0
  2112. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.cc.inc +269 -0
  2113. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.cc.inc +255 -0
  2114. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.cc.inc +221 -0
  2115. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.cc.inc +88 -0
  2116. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +278 -0
  2117. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +13 -13
  2118. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.cc +28 -0
  2119. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.cc.inc +112 -0
  2120. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.cc.inc +215 -0
  2121. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h +70 -0
  2122. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/keccak.cc.inc +279 -0
  2123. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  2124. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +2300 -0
  2125. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  2126. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +1397 -0
  2127. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.cc.inc +214 -0
  2128. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +22 -28
  2129. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +483 -0
  2130. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.cc.inc +147 -0
  2131. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +17 -60
  2132. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +372 -0
  2133. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +983 -0
  2134. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1279 -0
  2135. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  2136. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +1055 -0
  2137. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +38 -38
  2138. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +327 -0
  2139. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +52 -78
  2140. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.cc.inc +390 -0
  2141. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.cc.inc +299 -0
  2142. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  2143. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/address.h +119 -0
  2144. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  2145. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.cc.inc +169 -0
  2146. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.h +58 -0
  2147. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.cc.inc +161 -0
  2148. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.h +70 -0
  2149. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/params.h +78 -0
  2150. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +504 -0
  2151. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.cc.inc +173 -0
  2152. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.h +85 -0
  2153. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.cc.inc +171 -0
  2154. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.h +50 -0
  2155. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +13 -13
  2156. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  2157. data/third_party/boringssl-with-bazel/src/crypto/fuzzer_mode.cc +30 -0
  2158. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.cc +1095 -0
  2159. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.cc +2185 -0
  2160. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +16 -16
  2161. data/third_party/boringssl-with-bazel/src/crypto/internal.h +283 -457
  2162. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +13 -13
  2163. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.cc +869 -0
  2164. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +34 -78
  2165. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.cc +309 -0
  2166. data/third_party/boringssl-with-bazel/src/crypto/md4/md4.cc +194 -0
  2167. data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +37 -0
  2168. data/third_party/boringssl-with-bazel/src/crypto/md5/md5.cc +243 -0
  2169. data/third_party/boringssl-with-bazel/src/crypto/mem.cc +581 -0
  2170. data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.cc +90 -0
  2171. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +97 -1042
  2172. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +513 -0
  2173. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +14 -56
  2174. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.cc +80 -0
  2175. data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +44 -0
  2176. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.cc +149 -0
  2177. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.cc +254 -0
  2178. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +736 -0
  2179. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.cc +45 -0
  2180. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.cc +208 -0
  2181. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.cc +141 -0
  2182. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.cc +22 -0
  2183. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.cc +22 -0
  2184. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +36 -22
  2185. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +195 -0
  2186. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +524 -0
  2187. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +28 -63
  2188. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +279 -0
  2189. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +471 -0
  2190. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +1322 -0
  2191. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +17 -17
  2192. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.cc +314 -0
  2193. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.cc +310 -0
  2194. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.cc +850 -0
  2195. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +17 -17
  2196. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.cc +262 -0
  2197. data/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc +65 -0
  2198. data/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc +194 -0
  2199. data/third_party/boringssl-with-bazel/src/crypto/rand/forkunsafe.cc +44 -0
  2200. data/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc +60 -0
  2201. data/third_party/boringssl-with-bazel/src/crypto/rand/getrandom_fillin.h +64 -0
  2202. data/third_party/boringssl-with-bazel/src/crypto/rand/internal.h +55 -0
  2203. data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +42 -0
  2204. data/third_party/boringssl-with-bazel/src/crypto/rand/passive.cc +178 -0
  2205. data/third_party/boringssl-with-bazel/src/crypto/rand/rand.cc +77 -0
  2206. data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +46 -0
  2207. data/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc +328 -0
  2208. data/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc +98 -0
  2209. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.cc +56 -0
  2210. data/third_party/boringssl-with-bazel/src/crypto/refcount.cc +59 -0
  2211. data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +36 -0
  2212. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_asn1.cc +283 -0
  2213. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc +523 -0
  2214. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_extra.cc +19 -0
  2215. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_print.cc +27 -0
  2216. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +52 -0
  2217. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +87 -0
  2218. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +104 -0
  2219. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.cc +79 -0
  2220. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +113 -0
  2221. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +204 -0
  2222. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/spake2plus.cc +501 -0
  2223. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.cc +496 -0
  2224. data/third_party/boringssl-with-bazel/src/crypto/thread.cc +68 -0
  2225. data/third_party/boringssl-with-bazel/src/crypto/thread_none.cc +51 -0
  2226. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.cc +151 -0
  2227. data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +238 -0
  2228. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +17 -17
  2229. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.cc +1656 -0
  2230. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.cc +685 -0
  2231. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.cc +1263 -0
  2232. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.cc +52 -0
  2233. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +95 -0
  2234. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.cc +74 -0
  2235. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.cc +136 -0
  2236. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +538 -0
  2237. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.cc +355 -0
  2238. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.cc +227 -0
  2239. data/third_party/boringssl-with-bazel/src/crypto/x509/ext_dat.h +13 -55
  2240. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.cc +37 -0
  2241. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +29 -61
  2242. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.cc +185 -0
  2243. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.cc +796 -0
  2244. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.cc +364 -0
  2245. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.cc +103 -0
  2246. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.cc +203 -0
  2247. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.cc +287 -0
  2248. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.cc +79 -0
  2249. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.cc +181 -0
  2250. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.cc +31 -0
  2251. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.cc +593 -0
  2252. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.cc +95 -0
  2253. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.cc +102 -0
  2254. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +366 -0
  2255. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.cc +444 -0
  2256. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.cc +557 -0
  2257. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.cc +73 -0
  2258. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.cc +114 -0
  2259. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.cc +228 -0
  2260. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.cc +79 -0
  2261. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +161 -0
  2262. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.cc +81 -0
  2263. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.cc +304 -0
  2264. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.cc +514 -0
  2265. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.cc +89 -0
  2266. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.cc +101 -0
  2267. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.cc +109 -0
  2268. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.cc +183 -0
  2269. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.cc +590 -0
  2270. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.cc +131 -0
  2271. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.cc +1342 -0
  2272. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.cc +47 -0
  2273. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.cc +186 -0
  2274. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.cc +238 -0
  2275. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.cc +66 -0
  2276. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.cc +44 -0
  2277. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.cc +139 -0
  2278. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.cc +554 -0
  2279. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.cc +164 -0
  2280. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.cc +257 -0
  2281. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.cc +198 -0
  2282. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.cc +118 -0
  2283. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.cc +147 -0
  2284. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.cc +249 -0
  2285. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +1607 -0
  2286. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.cc +440 -0
  2287. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.cc +235 -0
  2288. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.cc +365 -0
  2289. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.cc +67 -0
  2290. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.cc +91 -0
  2291. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +116 -0
  2292. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.cc +318 -0
  2293. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.cc +55 -0
  2294. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.cc +342 -0
  2295. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.cc +36 -0
  2296. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +501 -0
  2297. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.cc +170 -0
  2298. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.cc +74 -0
  2299. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.cc +51 -0
  2300. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.cc +34 -0
  2301. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.cc +28 -0
  2302. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +485 -0
  2303. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +153 -0
  2304. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +1538 -0
  2305. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +29 -21
  2306. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +14 -48
  2307. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +16 -76
  2308. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +14 -14
  2309. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +29 -116
  2310. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +13 -13
  2311. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +248 -328
  2312. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +31 -58
  2313. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +14 -56
  2314. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +82 -0
  2315. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +14 -56
  2316. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +14 -14
  2317. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +14 -56
  2318. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +15 -122
  2319. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +14 -56
  2320. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +13 -13
  2321. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +38 -17
  2322. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +14 -56
  2323. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +14 -14
  2324. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +32 -60
  2325. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +14 -14
  2326. data/third_party/boringssl-with-bazel/src/include/openssl/cms.h +146 -0
  2327. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +14 -56
  2328. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +13 -13
  2329. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +48 -17
  2330. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +14 -14
  2331. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +14 -14
  2332. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +14 -56
  2333. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +18 -56
  2334. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +38 -63
  2335. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +18 -59
  2336. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +13 -13
  2337. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +14 -14
  2338. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +15 -67
  2339. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +32 -73
  2340. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +15 -66
  2341. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +14 -52
  2342. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +14 -14
  2343. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +15 -108
  2344. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +15 -57
  2345. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +13 -55
  2346. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +14 -108
  2347. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +14 -14
  2348. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +14 -14
  2349. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +14 -56
  2350. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +18 -18
  2351. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -14
  2352. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +13 -13
  2353. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +14 -14
  2354. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +14 -56
  2355. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +14 -56
  2356. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +14 -56
  2357. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +14 -56
  2358. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +21 -27
  2359. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +14 -38
  2360. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +28 -70
  2361. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +14 -56
  2362. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +14 -14
  2363. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +13 -13
  2364. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +23 -17
  2365. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +13 -13
  2366. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +13 -13
  2367. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +22 -60
  2368. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +13 -13
  2369. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +14 -14
  2370. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +32 -61
  2371. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +14 -14
  2372. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +14 -14
  2373. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +14 -14
  2374. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +15 -15
  2375. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +14 -56
  2376. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +14 -56
  2377. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -64
  2378. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +13 -13
  2379. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +14 -14
  2380. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +16 -96
  2381. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +14 -14
  2382. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +174 -0
  2383. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +25 -33
  2384. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +13 -13
  2385. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +628 -309
  2386. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +15 -114
  2387. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +14 -56
  2388. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +23 -18
  2389. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +16 -58
  2390. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +13 -13
  2391. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +36 -157
  2392. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +16 -16
  2393. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +14 -56
  2394. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +21 -65
  2395. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +13 -13
  2396. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +13 -13
  2397. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +13 -53
  2398. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +15 -14
  2399. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +680 -434
  2400. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +129 -174
  2401. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +176 -131
  2402. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +21 -127
  2403. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +109 -104
  2404. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +321 -316
  2405. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +101 -94
  2406. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +920 -519
  2407. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +78 -85
  2408. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +67 -157
  2409. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +201 -333
  2410. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +113 -245
  2411. data/third_party/boringssl-with-bazel/src/ssl/internal.h +1054 -540
  2412. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +47 -157
  2413. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +29 -159
  2414. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +18 -112
  2415. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +108 -207
  2416. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +70 -149
  2417. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +15 -20
  2418. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +117 -157
  2419. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +229 -365
  2420. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +294 -32
  2421. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +13 -109
  2422. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +35 -34
  2423. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +352 -354
  2424. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +43 -101
  2425. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +127 -249
  2426. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +17 -91
  2427. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +109 -157
  2428. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +44 -30
  2429. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +66 -195
  2430. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +46 -177
  2431. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +88 -48
  2432. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +160 -96
  2433. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +251 -184
  2434. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +250 -119
  2435. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +64 -117
  2436. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +54 -139
  2437. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +6 -0
  2438. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +6 -0
  2439. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +4 -1
  2440. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1 -1
  2441. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +3 -0
  2442. data/third_party/upb/upb/base/internal/log2.h +3 -1
  2443. data/third_party/upb/upb/base/string_view.h +10 -0
  2444. data/third_party/upb/upb/hash/common.c +312 -187
  2445. data/third_party/upb/upb/hash/common.h +44 -43
  2446. data/third_party/upb/upb/hash/int_table.h +29 -5
  2447. data/third_party/upb/upb/hash/str_table.h +6 -0
  2448. data/third_party/upb/upb/json/decode.c +39 -10
  2449. data/third_party/upb/upb/json/decode.h +25 -3
  2450. data/third_party/upb/upb/mem/alloc.h +5 -0
  2451. data/third_party/upb/upb/mem/arena.c +438 -161
  2452. data/third_party/upb/upb/mem/arena.h +57 -11
  2453. data/third_party/upb/upb/mem/arena.hpp +4 -20
  2454. data/third_party/upb/upb/mem/internal/arena.h +65 -29
  2455. data/third_party/upb/upb/message/accessors.c +1 -5
  2456. data/third_party/upb/upb/message/accessors.h +49 -0
  2457. data/third_party/upb/upb/message/array.c +7 -6
  2458. data/third_party/upb/upb/message/array.h +4 -4
  2459. data/third_party/upb/upb/message/compat.c +11 -14
  2460. data/third_party/upb/upb/message/compat.h +4 -3
  2461. data/third_party/upb/upb/message/copy.c +35 -30
  2462. data/third_party/upb/upb/message/internal/accessors.h +151 -15
  2463. data/third_party/upb/upb/message/internal/extension.c +16 -25
  2464. data/third_party/upb/upb/message/internal/extension.h +17 -5
  2465. data/third_party/upb/upb/message/internal/iterator.c +58 -0
  2466. data/third_party/upb/upb/message/internal/iterator.h +29 -0
  2467. data/third_party/upb/upb/message/internal/map.h +76 -22
  2468. data/third_party/upb/upb/message/internal/map_sorter.h +13 -4
  2469. data/third_party/upb/upb/message/internal/message.c +48 -29
  2470. data/third_party/upb/upb/message/internal/message.h +203 -25
  2471. data/third_party/upb/upb/message/map.c +68 -20
  2472. data/third_party/upb/upb/message/map.h +8 -1
  2473. data/third_party/upb/upb/message/map_gencode_util.h +3 -45
  2474. data/third_party/upb/upb/message/map_sorter.c +52 -16
  2475. data/third_party/upb/upb/message/merge.h +3 -3
  2476. data/third_party/upb/upb/message/message.c +200 -42
  2477. data/third_party/upb/upb/message/message.h +69 -4
  2478. data/third_party/upb/upb/message/value.h +9 -0
  2479. data/third_party/upb/upb/mini_descriptor/build_enum.c +16 -6
  2480. data/third_party/upb/upb/mini_descriptor/decode.c +115 -138
  2481. data/third_party/upb/upb/mini_descriptor/decode.h +4 -3
  2482. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +1 -1
  2483. data/third_party/upb/upb/mini_descriptor/link.c +4 -0
  2484. data/third_party/upb/upb/mini_table/extension.h +8 -1
  2485. data/third_party/upb/upb/mini_table/extension_registry.c +25 -13
  2486. data/third_party/upb/upb/mini_table/extension_registry.h +13 -6
  2487. data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
  2488. data/third_party/upb/upb/mini_table/internal/extension.h +24 -1
  2489. data/third_party/upb/upb/mini_table/internal/field.h +4 -4
  2490. data/third_party/upb/upb/mini_table/internal/message.h +1 -1
  2491. data/third_party/upb/upb/mini_table/message.c +21 -13
  2492. data/third_party/upb/upb/port/atomic.h +134 -7
  2493. data/third_party/upb/upb/port/def.inc +184 -47
  2494. data/third_party/upb/upb/port/undef.inc +14 -0
  2495. data/third_party/upb/upb/reflection/common.h +1 -11
  2496. data/third_party/upb/upb/reflection/def.hpp +5 -1
  2497. data/third_party/upb/upb/reflection/def_pool.c +10 -3
  2498. data/third_party/upb/upb/reflection/def_pool.h +2 -2
  2499. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +19 -0
  2500. data/third_party/upb/upb/reflection/enum_def.c +4 -4
  2501. data/third_party/upb/upb/reflection/enum_reserved_range.c +1 -1
  2502. data/third_party/upb/upb/reflection/enum_value_def.c +9 -8
  2503. data/third_party/upb/upb/reflection/extension_range.c +1 -2
  2504. data/third_party/upb/upb/reflection/field_def.c +6 -22
  2505. data/third_party/upb/upb/reflection/field_def.h +1 -1
  2506. data/third_party/upb/upb/reflection/file_def.c +16 -10
  2507. data/third_party/upb/upb/reflection/internal/def_builder.c +1 -1
  2508. data/third_party/upb/upb/reflection/internal/def_builder.h +35 -10
  2509. data/third_party/upb/upb/reflection/internal/enum_value_def.h +1 -1
  2510. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  2511. data/third_party/upb/upb/reflection/message.c +19 -16
  2512. data/third_party/upb/upb/reflection/message.h +3 -1
  2513. data/third_party/upb/upb/reflection/message_def.c +4 -7
  2514. data/third_party/upb/upb/reflection/message_reserved_range.c +1 -1
  2515. data/third_party/upb/upb/reflection/method_def.c +1 -1
  2516. data/third_party/upb/upb/reflection/oneof_def.c +3 -3
  2517. data/third_party/upb/upb/reflection/service_def.c +2 -5
  2518. data/third_party/upb/upb/text/encode.c +17 -20
  2519. data/third_party/upb/upb/text/internal/encode.c +25 -6
  2520. data/third_party/upb/upb/text/internal/encode.h +6 -1
  2521. data/third_party/upb/upb/wire/decode.c +154 -107
  2522. data/third_party/upb/upb/wire/decode.h +5 -3
  2523. data/third_party/upb/upb/wire/encode.c +114 -55
  2524. data/third_party/upb/upb/wire/encode.h +2 -0
  2525. data/third_party/upb/upb/wire/eps_copy_input_stream.h +18 -20
  2526. data/third_party/upb/upb/wire/internal/decode_fast.c +2 -2
  2527. data/third_party/upb/upb/wire/internal/decode_fast.h +4 -0
  2528. data/third_party/upb/upb/wire/internal/decoder.h +4 -11
  2529. data/third_party/utf8_range/utf8_range.c +15 -275
  2530. data/third_party/utf8_range/utf8_range_neon.inc +117 -0
  2531. data/third_party/utf8_range/utf8_range_sse.inc +272 -0
  2532. data/third_party/zlib/deflate.c +40 -15
  2533. data/third_party/zlib/deflate.h +33 -2
  2534. data/third_party/zlib/gzguts.h +2 -6
  2535. data/third_party/zlib/inflate.c +1 -1
  2536. data/third_party/zlib/inftrees.c +3 -3
  2537. data/third_party/zlib/inftrees.h +2 -2
  2538. data/third_party/zlib/trees.c +18 -4
  2539. data/third_party/zlib/zconf.h +1 -9
  2540. data/third_party/zlib/zlib.h +12 -12
  2541. data/third_party/zlib/zutil.h +4 -25
  2542. metadata +631 -521
  2543. data/include/grpc/grpc_cronet.h +0 -37
  2544. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +0 -82
  2545. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +0 -426
  2546. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +0 -87
  2547. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +0 -32
  2548. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +0 -407
  2549. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +0 -124
  2550. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +0 -38
  2551. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +0 -108
  2552. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +0 -33
  2553. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -67
  2554. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -48
  2555. data/src/core/lib/channel/call_finalization.h +0 -88
  2556. data/src/core/lib/channel/status_util.cc +0 -153
  2557. data/src/core/lib/channel/status_util.h +0 -80
  2558. data/src/core/lib/config/config_vars.cc +0 -151
  2559. data/src/core/lib/config/config_vars.h +0 -128
  2560. data/src/core/lib/config/config_vars_non_generated.cc +0 -49
  2561. data/src/core/lib/config/core_configuration.cc +0 -111
  2562. data/src/core/lib/config/core_configuration.h +0 -242
  2563. data/src/core/lib/config/load_config.cc +0 -77
  2564. data/src/core/lib/config/load_config.h +0 -54
  2565. data/src/core/lib/event_engine/forkable.cc +0 -107
  2566. data/src/core/lib/event_engine/forkable.h +0 -69
  2567. data/src/core/lib/iomgr/executor.cc +0 -452
  2568. data/src/core/lib/iomgr/executor.h +0 -119
  2569. data/src/core/lib/iomgr/python_util.h +0 -46
  2570. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +0 -69
  2571. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +0 -50
  2572. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +0 -75
  2573. data/src/core/lib/security/context/security_context.cc +0 -331
  2574. data/src/core/lib/security/context/security_context.h +0 -202
  2575. data/src/core/lib/security/credentials/alts/alts_credentials.cc +0 -116
  2576. data/src/core/lib/security/credentials/alts/alts_credentials.h +0 -127
  2577. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +0 -71
  2578. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +0 -57
  2579. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +0 -67
  2580. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +0 -32
  2581. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +0 -101
  2582. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +0 -123
  2583. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +0 -45
  2584. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +0 -74
  2585. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +0 -55
  2586. data/src/core/lib/security/credentials/call_creds_util.cc +0 -97
  2587. data/src/core/lib/security/credentials/call_creds_util.h +0 -43
  2588. data/src/core/lib/security/credentials/channel_creds_registry.h +0 -126
  2589. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +0 -241
  2590. data/src/core/lib/security/credentials/composite/composite_credentials.cc +0 -168
  2591. data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -134
  2592. data/src/core/lib/security/credentials/credentials.cc +0 -160
  2593. data/src/core/lib/security/credentials/credentials.h +0 -298
  2594. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +0 -529
  2595. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +0 -117
  2596. data/src/core/lib/security/credentials/external/aws_request_signer.cc +0 -230
  2597. data/src/core/lib/security/credentials/external/aws_request_signer.h +0 -72
  2598. data/src/core/lib/security/credentials/external/external_account_credentials.cc +0 -642
  2599. data/src/core/lib/security/credentials/external/external_account_credentials.h +0 -207
  2600. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -175
  2601. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +0 -80
  2602. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +0 -221
  2603. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +0 -73
  2604. data/src/core/lib/security/credentials/fake/fake_credentials.cc +0 -103
  2605. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -124
  2606. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +0 -195
  2607. data/src/core/lib/security/credentials/gcp_service_account_identity/gcp_service_account_identity_credentials.h +0 -90
  2608. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +0 -38
  2609. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -430
  2610. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -101
  2611. data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -78
  2612. data/src/core/lib/security/credentials/iam/iam_credentials.h +0 -66
  2613. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +0 -71
  2614. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +0 -61
  2615. data/src/core/lib/security/credentials/jwt/json_token.cc +0 -318
  2616. data/src/core/lib/security/credentials/jwt/json_token.h +0 -78
  2617. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +0 -182
  2618. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +0 -106
  2619. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -988
  2620. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +0 -122
  2621. data/src/core/lib/security/credentials/local/local_credentials.cc +0 -68
  2622. data/src/core/lib/security/credentials/local/local_credentials.h +0 -77
  2623. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +0 -653
  2624. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +0 -197
  2625. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -202
  2626. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +0 -123
  2627. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +0 -474
  2628. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -144
  2629. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +0 -338
  2630. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +0 -215
  2631. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_match.cc +0 -84
  2632. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +0 -482
  2633. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +0 -206
  2634. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +0 -237
  2635. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +0 -169
  2636. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +0 -161
  2637. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +0 -145
  2638. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +0 -258
  2639. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +0 -130
  2640. data/src/core/lib/security/credentials/tls/tls_credentials.cc +0 -170
  2641. data/src/core/lib/security/credentials/tls/tls_credentials.h +0 -75
  2642. data/src/core/lib/security/credentials/tls/tls_utils.cc +0 -127
  2643. data/src/core/lib/security/credentials/tls/tls_utils.h +0 -50
  2644. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +0 -298
  2645. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +0 -175
  2646. data/src/core/lib/security/credentials/xds/xds_credentials.cc +0 -230
  2647. data/src/core/lib/security/credentials/xds/xds_credentials.h +0 -110
  2648. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +0 -303
  2649. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +0 -78
  2650. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +0 -314
  2651. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -42
  2652. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +0 -118
  2653. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +0 -102
  2654. data/src/core/lib/security/security_connector/load_system_roots.h +0 -35
  2655. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +0 -36
  2656. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +0 -165
  2657. data/src/core/lib/security/security_connector/load_system_roots_supported.h +0 -44
  2658. data/src/core/lib/security/security_connector/load_system_roots_windows.cc +0 -85
  2659. data/src/core/lib/security/security_connector/local/local_security_connector.cc +0 -306
  2660. data/src/core/lib/security/security_connector/local/local_security_connector.h +0 -62
  2661. data/src/core/lib/security/security_connector/security_connector.cc +0 -123
  2662. data/src/core/lib/security/security_connector/security_connector.h +0 -197
  2663. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +0 -403
  2664. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +0 -81
  2665. data/src/core/lib/security/security_connector/ssl_utils.cc +0 -628
  2666. data/src/core/lib/security/security_connector/ssl_utils.h +0 -188
  2667. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +0 -816
  2668. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +0 -285
  2669. data/src/core/lib/security/transport/auth_filters.h +0 -144
  2670. data/src/core/lib/security/transport/client_auth_filter.cc +0 -219
  2671. data/src/core/lib/security/transport/server_auth_filter.cc +0 -215
  2672. data/src/core/lib/security/util/json_util.cc +0 -69
  2673. data/src/core/lib/security/util/json_util.h +0 -43
  2674. data/src/core/lib/surface/client_call.cc +0 -427
  2675. data/src/core/lib/surface/client_call.h +0 -179
  2676. data/src/core/lib/surface/server_call.cc +0 -221
  2677. data/src/core/lib/surface/server_call.h +0 -168
  2678. data/src/core/lib/transport/call_arena_allocator.cc +0 -27
  2679. data/src/core/lib/transport/call_arena_allocator.h +0 -91
  2680. data/src/core/lib/transport/call_destination.h +0 -76
  2681. data/src/core/lib/transport/call_filters.cc +0 -142
  2682. data/src/core/lib/transport/call_filters.h +0 -1899
  2683. data/src/core/lib/transport/call_spine.cc +0 -131
  2684. data/src/core/lib/transport/call_spine.h +0 -435
  2685. data/src/core/lib/transport/call_state.cc +0 -39
  2686. data/src/core/lib/transport/call_state.h +0 -1061
  2687. data/src/core/lib/transport/custom_metadata.h +0 -30
  2688. data/src/core/lib/transport/http2_errors.h +0 -41
  2689. data/src/core/lib/transport/interception_chain.cc +0 -147
  2690. data/src/core/lib/transport/interception_chain.h +0 -253
  2691. data/src/core/lib/transport/message.cc +0 -44
  2692. data/src/core/lib/transport/message.h +0 -66
  2693. data/src/core/lib/transport/metadata.cc +0 -61
  2694. data/src/core/lib/transport/metadata.h +0 -113
  2695. data/src/core/lib/transport/metadata_batch.cc +0 -374
  2696. data/src/core/lib/transport/metadata_batch.h +0 -1599
  2697. data/src/core/lib/transport/metadata_compression_traits.h +0 -66
  2698. data/src/core/lib/transport/metadata_info.cc +0 -55
  2699. data/src/core/lib/transport/metadata_info.h +0 -85
  2700. data/src/core/lib/transport/parsed_metadata.cc +0 -35
  2701. data/src/core/lib/transport/parsed_metadata.h +0 -429
  2702. data/src/core/lib/transport/simple_slice_based_metadata.h +0 -53
  2703. data/src/core/util/atm.cc +0 -34
  2704. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +0 -50
  2705. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
  2706. data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
  2707. data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +0 -108
  2708. data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
  2709. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +0 -253
  2710. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  2711. data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +0 -30
  2712. data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
  2713. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  2714. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
  2715. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  2716. data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
  2717. data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
  2718. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +0 -284
  2719. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +0 -95
  2720. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -89
  2721. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +0 -84
  2722. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +0 -151
  2723. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +0 -85
  2724. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +0 -465
  2725. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +0 -279
  2726. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +0 -235
  2727. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +0 -74
  2728. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +0 -457
  2729. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +0 -245
  2730. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +0 -259
  2731. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +0 -214
  2732. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -183
  2733. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -397
  2734. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +0 -103
  2735. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +0 -98
  2736. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +0 -105
  2737. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +0 -94
  2738. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +0 -241
  2739. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +0 -973
  2740. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +0 -708
  2741. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +0 -212
  2742. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +0 -317
  2743. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -126
  2744. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +0 -268
  2745. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +0 -479
  2746. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +0 -726
  2747. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +0 -309
  2748. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +0 -544
  2749. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.c +0 -92
  2750. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -235
  2751. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +0 -334
  2752. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.c +0 -192
  2753. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +0 -480
  2754. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -102
  2755. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +0 -189
  2756. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +0 -133
  2757. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +0 -169
  2758. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +0 -57
  2759. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +0 -465
  2760. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +0 -158
  2761. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +0 -53
  2762. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +0 -266
  2763. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +0 -718
  2764. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +0 -911
  2765. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.c +0 -156
  2766. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -224
  2767. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +0 -127
  2768. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +0 -152
  2769. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +0 -284
  2770. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +0 -841
  2771. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +0 -348
  2772. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_des.c +0 -228
  2773. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +0 -90
  2774. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +0 -455
  2775. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +0 -94
  2776. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +0 -598
  2777. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +0 -280
  2778. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +0 -514
  2779. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +0 -672
  2780. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +0 -75
  2781. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.c +0 -55
  2782. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.c +0 -62
  2783. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +0 -61
  2784. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.c +0 -93
  2785. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.c +0 -41
  2786. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +0 -54
  2787. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.c +0 -151
  2788. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.c +0 -326
  2789. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +0 -188
  2790. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +0 -2157
  2791. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.c +0 -18
  2792. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +0 -523
  2793. data/third_party/boringssl-with-bazel/src/crypto/des/des.c +0 -871
  2794. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +0 -165
  2795. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +0 -480
  2796. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -266
  2797. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +0 -1539
  2798. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +0 -58
  2799. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +0 -997
  2800. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -419
  2801. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +0 -572
  2802. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_derive.c +0 -96
  2803. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +0 -508
  2804. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -78
  2805. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +0 -124
  2806. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +0 -411
  2807. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.c +0 -91
  2808. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +0 -903
  2809. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +0 -430
  2810. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +0 -547
  2811. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +0 -483
  2812. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c +0 -137
  2813. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c +0 -120
  2814. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +0 -338
  2815. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +0 -274
  2816. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +0 -332
  2817. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +0 -100
  2818. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +0 -224
  2819. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +0 -232
  2820. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +0 -646
  2821. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +0 -241
  2822. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +0 -106
  2823. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +0 -236
  2824. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.c +0 -146
  2825. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +0 -381
  2826. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +0 -209
  2827. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +0 -156
  2828. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +0 -236
  2829. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c.inc +0 -127
  2830. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c.inc +0 -1281
  2831. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c.inc +0 -242
  2832. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c.inc +0 -124
  2833. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +0 -279
  2834. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.c.inc +0 -310
  2835. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc +0 -541
  2836. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c.inc +0 -428
  2837. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c.inc +0 -267
  2838. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c.inc +0 -201
  2839. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c.inc +0 -234
  2840. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c.inc +0 -876
  2841. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c.inc +0 -87
  2842. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c.inc +0 -1320
  2843. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c.inc +0 -397
  2844. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c.inc +0 -331
  2845. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c.inc +0 -624
  2846. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.c.inc +0 -146
  2847. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c.inc +0 -532
  2848. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c.inc +0 -222
  2849. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c.inc +0 -744
  2850. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c.inc +0 -1077
  2851. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c.inc +0 -354
  2852. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c.inc +0 -137
  2853. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c.inc +0 -363
  2854. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c.inc +0 -499
  2855. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c.inc +0 -287
  2856. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c.inc +0 -717
  2857. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c.inc +0 -1464
  2858. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.c.inc +0 -446
  2859. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.c.inc +0 -322
  2860. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c.inc +0 -245
  2861. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c.inc +0 -489
  2862. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c.inc +0 -288
  2863. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c.inc +0 -304
  2864. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.c.inc +0 -267
  2865. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c.inc +0 -1043
  2866. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c.inc +0 -561
  2867. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c.inc +0 -491
  2868. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c.inc +0 -104
  2869. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c.inc +0 -359
  2870. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c.inc +0 -1163
  2871. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c.inc +0 -734
  2872. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c.inc +0 -749
  2873. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c.inc +0 -173
  2874. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c.inc +0 -336
  2875. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c.inc +0 -269
  2876. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c.inc +0 -255
  2877. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c.inc +0 -264
  2878. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c.inc +0 -130
  2879. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c.inc +0 -317
  2880. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +0 -29
  2881. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.c.inc +0 -112
  2882. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c.inc +0 -256
  2883. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c.inc +0 -240
  2884. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/internal.h +0 -37
  2885. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c.inc +0 -284
  2886. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c.inc +0 -164
  2887. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c.inc +0 -200
  2888. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c.inc +0 -196
  2889. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c.inc +0 -743
  2890. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c.inc +0 -302
  2891. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +0 -428
  2892. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c.inc +0 -87
  2893. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c.inc +0 -90
  2894. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c.inc +0 -220
  2895. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c.inc +0 -479
  2896. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c.inc +0 -241
  2897. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c.inc +0 -420
  2898. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c.inc +0 -1038
  2899. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c.inc +0 -1351
  2900. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c.inc +0 -121
  2901. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c.inc +0 -1038
  2902. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c.inc +0 -328
  2903. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c.inc +0 -439
  2904. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c.inc +0 -359
  2905. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c.inc +0 -543
  2906. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c.inc +0 -218
  2907. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +0 -1092
  2908. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +0 -2234
  2909. data/third_party/boringssl-with-bazel/src/crypto/keccak/internal.h +0 -70
  2910. data/third_party/boringssl-with-bazel/src/crypto/keccak/keccak.c +0 -279
  2911. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +0 -845
  2912. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +0 -350
  2913. data/third_party/boringssl-with-bazel/src/crypto/mem.c +0 -613
  2914. data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +0 -73
  2915. data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.c +0 -1687
  2916. data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +0 -90
  2917. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +0 -564
  2918. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.c +0 -122
  2919. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -243
  2920. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -294
  2921. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -789
  2922. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +0 -87
  2923. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -250
  2924. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -183
  2925. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -64
  2926. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -64
  2927. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +0 -193
  2928. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -523
  2929. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.c +0 -316
  2930. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -527
  2931. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +0 -1352
  2932. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +0 -314
  2933. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +0 -308
  2934. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +0 -847
  2935. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +0 -261
  2936. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +0 -65
  2937. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fork_detect.c +0 -195
  2938. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.c +0 -44
  2939. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getentropy.c +0 -60
  2940. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getrandom_fillin.h +0 -64
  2941. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.c +0 -42
  2942. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +0 -174
  2943. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +0 -77
  2944. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +0 -37
  2945. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.c +0 -46
  2946. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/urandom.c +0 -328
  2947. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +0 -102
  2948. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.c +0 -98
  2949. data/third_party/boringssl-with-bazel/src/crypto/refcount.c +0 -59
  2950. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +0 -79
  2951. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +0 -324
  2952. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +0 -570
  2953. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.c +0 -22
  2954. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +0 -79
  2955. data/third_party/boringssl-with-bazel/src/crypto/spx/address.c +0 -101
  2956. data/third_party/boringssl-with-bazel/src/crypto/spx/address.h +0 -50
  2957. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.c +0 -133
  2958. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.h +0 -54
  2959. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c +0 -150
  2960. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h +0 -61
  2961. data/third_party/boringssl-with-bazel/src/crypto/spx/params.h +0 -71
  2962. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +0 -140
  2963. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c +0 -53
  2964. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h +0 -44
  2965. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.c +0 -136
  2966. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.h +0 -70
  2967. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.c +0 -135
  2968. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.h +0 -45
  2969. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +0 -534
  2970. data/third_party/boringssl-with-bazel/src/crypto/thread.c +0 -110
  2971. data/third_party/boringssl-with-bazel/src/crypto/thread_none.c +0 -51
  2972. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -150
  2973. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +0 -236
  2974. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +0 -1668
  2975. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +0 -687
  2976. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +0 -1267
  2977. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +0 -94
  2978. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +0 -136
  2979. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +0 -116
  2980. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +0 -178
  2981. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +0 -585
  2982. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +0 -400
  2983. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +0 -269
  2984. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +0 -79
  2985. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +0 -227
  2986. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +0 -786
  2987. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +0 -401
  2988. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -145
  2989. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +0 -245
  2990. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -329
  2991. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +0 -121
  2992. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.c +0 -221
  2993. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.c +0 -73
  2994. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.c +0 -634
  2995. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.c +0 -135
  2996. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.c +0 -141
  2997. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.c +0 -416
  2998. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.c +0 -482
  2999. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.c +0 -598
  3000. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.c +0 -112
  3001. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.c +0 -154
  3002. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.c +0 -270
  3003. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.c +0 -122
  3004. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.c +0 -211
  3005. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.c +0 -121
  3006. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.c +0 -344
  3007. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.c +0 -555
  3008. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.c +0 -81
  3009. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.c +0 -142
  3010. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.c +0 -150
  3011. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.c +0 -224
  3012. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.c +0 -624
  3013. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.c +0 -170
  3014. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +0 -1390
  3015. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -89
  3016. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -227
  3017. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +0 -280
  3018. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +0 -108
  3019. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +0 -86
  3020. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +0 -181
  3021. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -599
  3022. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +0 -206
  3023. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +0 -299
  3024. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +0 -240
  3025. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +0 -160
  3026. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +0 -189
  3027. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +0 -291
  3028. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +0 -1638
  3029. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +0 -440
  3030. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +0 -277
  3031. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +0 -407
  3032. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +0 -109
  3033. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +0 -133
  3034. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +0 -149
  3035. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -356
  3036. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +0 -97
  3037. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +0 -384
  3038. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +0 -78
  3039. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +0 -527
  3040. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +0 -210
  3041. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +0 -116
  3042. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +0 -93
  3043. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +0 -79
  3044. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +0 -70
  3045. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +0 -544
  3046. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +0 -209
  3047. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.c +0 -1514
  3048. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +0 -129
  3049. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/spx.h +0 -90
  3050. data/third_party/upb/upb/message/internal/compare_unknown.c +0 -289
  3051. data/third_party/upb/upb/message/internal/compare_unknown.h +0 -49
@@ -1,110 +1,16 @@
1
- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
- * All rights reserved.
3
- *
4
- * This package is an SSL implementation written
5
- * by Eric Young (eay@cryptsoft.com).
6
- * The implementation was written so as to conform with Netscapes SSL.
7
- *
8
- * This library is free for commercial and non-commercial use as long as
9
- * the following conditions are aheared to. The following conditions
10
- * apply to all code found in this distribution, be it the RC4, RSA,
11
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12
- * included with this distribution is covered by the same copyright terms
13
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
- *
15
- * Copyright remains Eric Young's, and as such any Copyright notices in
16
- * the code are not to be removed.
17
- * If this package is used in a product, Eric Young should be given attribution
18
- * as the author of the parts of the library used.
19
- * This can be in the form of a textual message at program startup or
20
- * in documentation (online or textual) provided with the package.
21
- *
22
- * Redistribution and use in source and binary forms, with or without
23
- * modification, are permitted provided that the following conditions
24
- * are met:
25
- * 1. Redistributions of source code must retain the copyright
26
- * notice, this list of conditions and the following disclaimer.
27
- * 2. Redistributions in binary form must reproduce the above copyright
28
- * notice, this list of conditions and the following disclaimer in the
29
- * documentation and/or other materials provided with the distribution.
30
- * 3. All advertising materials mentioning features or use of this software
31
- * must display the following acknowledgement:
32
- * "This product includes cryptographic software written by
33
- * Eric Young (eay@cryptsoft.com)"
34
- * The word 'cryptographic' can be left out if the rouines from the library
35
- * being used are not cryptographic related :-).
36
- * 4. If you include any Windows specific code (or a derivative thereof) from
37
- * the apps directory (application code) you must include an acknowledgement:
38
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
- *
40
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
- * SUCH DAMAGE.
51
- *
52
- * The licence and distribution terms for any publically available version or
53
- * derivative of this code cannot be changed. i.e. this code cannot simply be
54
- * copied and put under another distribution licence
55
- * [including the GNU Public Licence.]
56
- */
57
- /* ====================================================================
58
- * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
59
- *
60
- * Redistribution and use in source and binary forms, with or without
61
- * modification, are permitted provided that the following conditions
62
- * are met:
63
- *
64
- * 1. Redistributions of source code must retain the above copyright
65
- * notice, this list of conditions and the following disclaimer.
66
- *
67
- * 2. Redistributions in binary form must reproduce the above copyright
68
- * notice, this list of conditions and the following disclaimer in
69
- * the documentation and/or other materials provided with the
70
- * distribution.
71
- *
72
- * 3. All advertising materials mentioning features or use of this
73
- * software must display the following acknowledgment:
74
- * "This product includes software developed by the OpenSSL Project
75
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
76
- *
77
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
78
- * endorse or promote products derived from this software without
79
- * prior written permission. For written permission, please contact
80
- * openssl-core@openssl.org.
81
- *
82
- * 5. Products derived from this software may not be called "OpenSSL"
83
- * nor may "OpenSSL" appear in their names without prior written
84
- * permission of the OpenSSL Project.
85
- *
86
- * 6. Redistributions of any form whatsoever must retain the following
87
- * acknowledgment:
88
- * "This product includes software developed by the OpenSSL Project
89
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
90
- *
91
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
92
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
93
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
94
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
95
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
96
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
97
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
98
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
99
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
100
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
101
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
102
- * OF THE POSSIBILITY OF SUCH DAMAGE.
103
- * ====================================================================
104
- *
105
- * This product includes cryptographic software written by Eric Young
106
- * (eay@cryptsoft.com). This product includes software written by Tim
107
- * Hudson (tjh@cryptsoft.com). */
1
+ // Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
108
14
 
109
15
  #include <openssl/ssl.h>
110
16
 
@@ -130,6 +36,7 @@
130
36
  #include <openssl/rand.h>
131
37
 
132
38
  #include "../crypto/internal.h"
39
+ #include "../crypto/spake2plus/internal.h"
133
40
  #include "internal.h"
134
41
 
135
42
 
@@ -138,18 +45,6 @@ BSSL_NAMESPACE_BEGIN
138
45
  static bool ssl_check_clienthello_tlsext(SSL_HANDSHAKE *hs);
139
46
  static bool ssl_check_serverhello_tlsext(SSL_HANDSHAKE *hs);
140
47
 
141
- static int compare_uint16_t(const void *p1, const void *p2) {
142
- uint16_t u1 = *((const uint16_t *)p1);
143
- uint16_t u2 = *((const uint16_t *)p2);
144
- if (u1 < u2) {
145
- return -1;
146
- } else if (u1 > u2) {
147
- return 1;
148
- } else {
149
- return 0;
150
- }
151
- }
152
-
153
48
  // Per http://tools.ietf.org/html/rfc5246#section-7.4.1.4, there may not be
154
49
  // more than one extension of the same type in a ClientHello or ServerHello.
155
50
  // This function does an initial scan over the extensions block to filter those
@@ -175,7 +70,7 @@ static bool tls1_check_duplicate_extensions(const CBS *cbs) {
175
70
  }
176
71
 
177
72
  Array<uint16_t> extension_types;
178
- if (!extension_types.Init(num_extensions)) {
73
+ if (!extension_types.InitForOverwrite(num_extensions)) {
179
74
  return false;
180
75
  }
181
76
 
@@ -193,8 +88,7 @@ static bool tls1_check_duplicate_extensions(const CBS *cbs) {
193
88
  assert(CBS_len(&extensions) == 0);
194
89
 
195
90
  // Sort the extensions and make sure there are no duplicates.
196
- qsort(extension_types.data(), extension_types.size(), sizeof(uint16_t),
197
- compare_uint16_t);
91
+ std::sort(extension_types.begin(), extension_types.end());
198
92
  for (size_t i = 1; i < num_extensions; i++) {
199
93
  if (extension_types[i - 1] == extension_types[i]) {
200
94
  return false;
@@ -214,16 +108,6 @@ static bool is_post_quantum_group(uint16_t id) {
214
108
  }
215
109
  }
216
110
 
217
- bool ssl_client_hello_init(const SSL *ssl, SSL_CLIENT_HELLO *out,
218
- Span<const uint8_t> body) {
219
- CBS cbs = body;
220
- if (!ssl_parse_client_hello_with_trailing_data(ssl, &cbs, out) ||
221
- CBS_len(&cbs) != 0) {
222
- return false;
223
- }
224
- return true;
225
- }
226
-
227
111
  bool ssl_parse_client_hello_with_trailing_data(const SSL *ssl, CBS *cbs,
228
112
  SSL_CLIENT_HELLO *out) {
229
113
  OPENSSL_memset(out, 0, sizeof(*out));
@@ -235,6 +119,7 @@ bool ssl_parse_client_hello_with_trailing_data(const SSL *ssl, CBS *cbs,
235
119
  !CBS_get_bytes(cbs, &random, SSL3_RANDOM_SIZE) ||
236
120
  !CBS_get_u8_length_prefixed(cbs, &session_id) ||
237
121
  CBS_len(&session_id) > SSL_MAX_SSL_SESSION_ID_LENGTH) {
122
+ OPENSSL_PUT_ERROR(SSL, SSL_R_CLIENTHELLO_PARSE_FAILED);
238
123
  return false;
239
124
  }
240
125
 
@@ -243,12 +128,17 @@ bool ssl_parse_client_hello_with_trailing_data(const SSL *ssl, CBS *cbs,
243
128
  out->session_id = CBS_data(&session_id);
244
129
  out->session_id_len = CBS_len(&session_id);
245
130
 
246
- // Skip past DTLS cookie
247
131
  if (SSL_is_dtls(out->ssl)) {
248
132
  CBS cookie;
249
133
  if (!CBS_get_u8_length_prefixed(cbs, &cookie)) {
134
+ OPENSSL_PUT_ERROR(SSL, SSL_R_CLIENTHELLO_PARSE_FAILED);
250
135
  return false;
251
136
  }
137
+ out->dtls_cookie = CBS_data(&cookie);
138
+ out->dtls_cookie_len = CBS_len(&cookie);
139
+ } else {
140
+ out->dtls_cookie = nullptr;
141
+ out->dtls_cookie_len = 0;
252
142
  }
253
143
 
254
144
  CBS cipher_suites, compression_methods;
@@ -256,6 +146,7 @@ bool ssl_parse_client_hello_with_trailing_data(const SSL *ssl, CBS *cbs,
256
146
  CBS_len(&cipher_suites) < 2 || (CBS_len(&cipher_suites) & 1) != 0 ||
257
147
  !CBS_get_u8_length_prefixed(cbs, &compression_methods) ||
258
148
  CBS_len(&compression_methods) < 1) {
149
+ OPENSSL_PUT_ERROR(SSL, SSL_R_CLIENTHELLO_PARSE_FAILED);
259
150
  return false;
260
151
  }
261
152
 
@@ -274,6 +165,7 @@ bool ssl_parse_client_hello_with_trailing_data(const SSL *ssl, CBS *cbs,
274
165
  CBS extensions;
275
166
  if (!CBS_get_u16_length_prefixed(cbs, &extensions) ||
276
167
  !tls1_check_duplicate_extensions(&extensions)) {
168
+ OPENSSL_PUT_ERROR(SSL, SSL_R_CLIENTHELLO_PARSE_FAILED);
277
169
  return false;
278
170
  }
279
171
  out->extensions = CBS_data(&extensions);
@@ -456,6 +348,96 @@ bool tls12_check_peer_sigalg(const SSL_HANDSHAKE *hs, uint8_t *out_alert,
456
348
  return true;
457
349
  }
458
350
 
351
+ // Flags.
352
+ //
353
+ // https://www.ietf.org/archive/id/draft-ietf-tls-tlsflags-14.html
354
+
355
+ bool ssl_add_flags_extension(CBB *cbb, SSLFlags flags) {
356
+ if (flags == 0) {
357
+ return true;
358
+ }
359
+
360
+ CBB body, child;
361
+ if (!CBB_add_u16(cbb, TLSEXT_TYPE_tls_flags) ||
362
+ !CBB_add_u16_length_prefixed(cbb, &body) ||
363
+ !CBB_add_u8_length_prefixed(&body, &child)) {
364
+ return false;
365
+ }
366
+
367
+ while (flags != 0) {
368
+ if (!CBB_add_u8(&child, static_cast<uint8_t>(flags))) {
369
+ return false;
370
+ }
371
+ flags >>= 8;
372
+ }
373
+
374
+ return CBB_flush(cbb);
375
+ }
376
+
377
+ static bool ssl_parse_flags_extension(const CBS *cbs, SSLFlags *out,
378
+ uint8_t *out_alert, bool allow_unknown) {
379
+ CBS copy = *cbs, flags;
380
+ if (!CBS_get_u8_length_prefixed(&copy, &flags) || //
381
+ CBS_len(&copy) != 0 || //
382
+ CBS_len(&flags) == 0) {
383
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
384
+ *out_alert = SSL_AD_DECODE_ERROR;
385
+ return false;
386
+ }
387
+
388
+ // There may not be any trailing zeros.
389
+ if (CBS_data(&flags)[CBS_len(&flags) - 1] == 0) {
390
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
391
+ *out_alert = SSL_AD_ILLEGAL_PARAMETER;
392
+ return false;
393
+ }
394
+
395
+ // We can only represent flags that fit in SSLFlags, so any bits beyond that
396
+ // are necessarily unsolicited. Unsolicited flags are allowed in CH, CR, and
397
+ // NST, but forbidden in SH, EE, CT, and HRR. See Section 3 of
398
+ // draft-ietf-tls-tlsflags-14.
399
+ if (!allow_unknown && CBS_len(&flags) > sizeof(SSLFlags)) {
400
+ OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_EXTENSION);
401
+ *out_alert = SSL_AD_ILLEGAL_PARAMETER;
402
+ return false;
403
+ }
404
+
405
+ // We currently use the same in-memory and wire representation for flags.
406
+ uint8_t padded[sizeof(SSLFlags)] = {0};
407
+ OPENSSL_memcpy(padded, CBS_data(&flags),
408
+ std::min(CBS_len(&flags), size_t{4}));
409
+ static_assert(sizeof(SSLFlags) == sizeof(uint32_t),
410
+ "We currently assume SSLFlags is 32-bit");
411
+ *out = CRYPTO_load_u32_le(padded);
412
+ return true;
413
+ }
414
+
415
+ bool ssl_parse_flags_extension_request(const CBS *cbs, SSLFlags *out,
416
+ uint8_t *out_alert) {
417
+ // In a request message, unsolicited flags are allowed and ignored.
418
+ return ssl_parse_flags_extension(cbs, out, out_alert,
419
+ /*allow_unknown=*/true);
420
+ }
421
+
422
+ bool ssl_parse_flags_extension_response(const CBS *cbs, SSLFlags *out,
423
+ uint8_t *out_alert,
424
+ SSLFlags allowed_flags) {
425
+ // In a response message, unsolicited flags are not allowed.
426
+ if (!ssl_parse_flags_extension(cbs, out, out_alert,
427
+ /*allow_unknown=*/false)) {
428
+ return false;
429
+ }
430
+
431
+ // Check for unsolicited flags that fit in |SSLFlags|.
432
+ if ((*out & allowed_flags) != *out) {
433
+ OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_EXTENSION);
434
+ *out_alert = SSL_AD_ILLEGAL_PARAMETER;
435
+ return false;
436
+ }
437
+
438
+ return true;
439
+ }
440
+
459
441
  // tls_extension represents a TLS extension that is handled internally.
460
442
  //
461
443
  // The parse callbacks receive a |CBS| that contains the contents of the
@@ -513,9 +495,7 @@ static bool ignore_parse_clienthello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
513
495
  return true;
514
496
  }
515
497
 
516
- static bool dont_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
517
- return true;
518
- }
498
+ static bool dont_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) { return true; }
519
499
 
520
500
  // Server name indication (SNI).
521
501
  //
@@ -533,9 +513,7 @@ static bool ext_sni_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
533
513
  if (ssl->hostname == nullptr) {
534
514
  return true;
535
515
  }
536
- hostname =
537
- MakeConstSpan(reinterpret_cast<const uint8_t *>(ssl->hostname.get()),
538
- strlen(ssl->hostname.get()));
516
+ hostname = StringAsBytes(ssl->hostname.get());
539
517
  }
540
518
 
541
519
  CBB contents, server_name_list, name;
@@ -566,7 +544,7 @@ static bool ext_sni_parse_clienthello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
566
544
  }
567
545
 
568
546
  static bool ext_sni_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
569
- if (hs->ssl->s3->session_reused ||
547
+ if (hs->ssl->s3->session_reused || //
570
548
  !hs->should_ack_sni) {
571
549
  return true;
572
550
  }
@@ -703,20 +681,20 @@ static bool ext_ri_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
703
681
  ssl_client_hello_type_t type) {
704
682
  const SSL *const ssl = hs->ssl;
705
683
  // Renegotiation indication is not necessary in TLS 1.3.
706
- if (hs->min_version >= TLS1_3_VERSION ||
707
- type == ssl_client_hello_inner) {
684
+ if (hs->min_version >= TLS1_3_VERSION || //
685
+ type == ssl_client_hello_inner) {
708
686
  return true;
709
687
  }
710
688
 
711
689
  assert(ssl->s3->initial_handshake_complete ==
712
- (ssl->s3->previous_client_finished_len != 0));
690
+ !ssl->s3->previous_client_finished.empty());
713
691
 
714
692
  CBB contents, prev_finished;
715
693
  if (!CBB_add_u16(out, TLSEXT_TYPE_renegotiate) ||
716
694
  !CBB_add_u16_length_prefixed(out, &contents) ||
717
695
  !CBB_add_u8_length_prefixed(&contents, &prev_finished) ||
718
- !CBB_add_bytes(&prev_finished, ssl->s3->previous_client_finished,
719
- ssl->s3->previous_client_finished_len) ||
696
+ !CBB_add_bytes(&prev_finished, ssl->s3->previous_client_finished.data(),
697
+ ssl->s3->previous_client_finished.size()) ||
720
698
  !CBB_flush(out)) {
721
699
  return false;
722
700
  }
@@ -752,16 +730,11 @@ static bool ext_ri_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
752
730
  return true;
753
731
  }
754
732
 
755
- const size_t expected_len = ssl->s3->previous_client_finished_len +
756
- ssl->s3->previous_server_finished_len;
757
-
758
- // Check for logic errors
759
- assert(!expected_len || ssl->s3->previous_client_finished_len);
760
- assert(!expected_len || ssl->s3->previous_server_finished_len);
761
- assert(ssl->s3->initial_handshake_complete ==
762
- (ssl->s3->previous_client_finished_len != 0));
733
+ // Check for logic errors.
734
+ assert(ssl->s3->previous_client_finished.size() ==
735
+ ssl->s3->previous_server_finished.size());
763
736
  assert(ssl->s3->initial_handshake_complete ==
764
- (ssl->s3->previous_server_finished_len != 0));
737
+ !ssl->s3->previous_client_finished.empty());
765
738
 
766
739
  // Parse out the extension contents.
767
740
  CBS renegotiated_connection;
@@ -773,37 +746,32 @@ static bool ext_ri_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
773
746
  }
774
747
 
775
748
  // Check that the extension matches.
776
- if (CBS_len(&renegotiated_connection) != expected_len) {
749
+ CBS client_verify, server_verify;
750
+ if (!CBS_get_bytes(&renegotiated_connection, &client_verify,
751
+ ssl->s3->previous_client_finished.size()) ||
752
+ !CBS_get_bytes(&renegotiated_connection, &server_verify,
753
+ ssl->s3->previous_server_finished.size()) ||
754
+ CBS_len(&renegotiated_connection) != 0) {
777
755
  OPENSSL_PUT_ERROR(SSL, SSL_R_RENEGOTIATION_MISMATCH);
778
756
  *out_alert = SSL_AD_HANDSHAKE_FAILURE;
779
757
  return false;
780
758
  }
781
759
 
782
- const uint8_t *d = CBS_data(&renegotiated_connection);
783
- bool ok = CRYPTO_memcmp(d, ssl->s3->previous_client_finished,
784
- ssl->s3->previous_client_finished_len) == 0;
785
- #if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
786
- ok = true;
787
- #endif
788
- if (!ok) {
789
- OPENSSL_PUT_ERROR(SSL, SSL_R_RENEGOTIATION_MISMATCH);
790
- *out_alert = SSL_AD_HANDSHAKE_FAILURE;
791
- return false;
760
+ bool ok =
761
+ CBS_mem_equal(&client_verify, ssl->s3->previous_client_finished.data(),
762
+ ssl->s3->previous_client_finished.size()) &&
763
+ CBS_mem_equal(&server_verify, ssl->s3->previous_server_finished.data(),
764
+ ssl->s3->previous_server_finished.size());
765
+ if (CRYPTO_fuzzer_mode_enabled()) {
766
+ ok = true;
792
767
  }
793
- d += ssl->s3->previous_client_finished_len;
794
-
795
- ok = CRYPTO_memcmp(d, ssl->s3->previous_server_finished,
796
- ssl->s3->previous_server_finished_len) == 0;
797
- #if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
798
- ok = true;
799
- #endif
800
768
  if (!ok) {
801
769
  OPENSSL_PUT_ERROR(SSL, SSL_R_RENEGOTIATION_MISMATCH);
802
770
  *out_alert = SSL_AD_HANDSHAKE_FAILURE;
803
771
  return false;
804
772
  }
805
- ssl->s3->send_connection_binding = true;
806
773
 
774
+ ssl->s3->send_connection_binding = true;
807
775
  return true;
808
776
  }
809
777
 
@@ -887,7 +855,7 @@ static bool ext_ems_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
887
855
  SSL *const ssl = hs->ssl;
888
856
 
889
857
  if (contents != NULL) {
890
- if (ssl_protocol_version(ssl) >= TLS1_3_VERSION ||
858
+ if (ssl_protocol_version(ssl) >= TLS1_3_VERSION || //
891
859
  CBS_len(contents) != 0) {
892
860
  return false;
893
861
  }
@@ -953,17 +921,14 @@ static bool ext_ticket_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
953
921
  return true;
954
922
  }
955
923
 
956
- Span<const uint8_t> ticket;
957
-
958
924
  // Renegotiation does not participate in session resumption. However, still
959
925
  // advertise the extension to avoid potentially breaking servers which carry
960
926
  // over the state from the previous handshake, such as OpenSSL servers
961
927
  // without upstream's 3c3f0259238594d77264a78944d409f2127642c4.
962
- if (!ssl->s3->initial_handshake_complete &&
928
+ Span<const uint8_t> ticket;
929
+ if (!ssl->s3->initial_handshake_complete && //
963
930
  ssl->session != nullptr &&
964
- !ssl->session->ticket.empty() &&
965
- // Don't send TLS 1.3 session tickets in the ticket extension.
966
- ssl_session_protocol_version(ssl->session.get()) < TLS1_3_VERSION) {
931
+ ssl_session_get_type(ssl->session.get()) == SSLSessionType::kTicket) {
967
932
  ticket = ssl->session->ticket;
968
933
  }
969
934
 
@@ -1029,6 +994,10 @@ static bool ext_sigalgs_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
1029
994
  if (hs->max_version < TLS1_2_VERSION) {
1030
995
  return true;
1031
996
  }
997
+ // In PAKE mode, signature_algorithms is not used.
998
+ if (hs->pake_prover != nullptr) {
999
+ return true;
1000
+ }
1032
1001
 
1033
1002
  CBB contents, sigalgs_cbb;
1034
1003
  if (!CBB_add_u16(out_compressible, TLSEXT_TYPE_signature_algorithms) ||
@@ -1199,7 +1168,7 @@ static bool ext_npn_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1199
1168
 
1200
1169
  while (CBS_len(contents) != 0) {
1201
1170
  CBS proto;
1202
- if (!CBS_get_u8_length_prefixed(contents, &proto) ||
1171
+ if (!CBS_get_u8_length_prefixed(contents, &proto) || //
1203
1172
  CBS_len(&proto) == 0) {
1204
1173
  return false;
1205
1174
  }
@@ -1212,8 +1181,7 @@ static bool ext_npn_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1212
1181
  ssl, &selected, &selected_len, orig_contents,
1213
1182
  static_cast<unsigned>(orig_len),
1214
1183
  ssl->ctx->next_proto_select_cb_arg) != SSL_TLSEXT_ERR_OK ||
1215
- !ssl->s3->next_proto_negotiated.CopyFrom(
1216
- MakeConstSpan(selected, selected_len))) {
1184
+ !ssl->s3->next_proto_negotiated.CopyFrom(Span(selected, selected_len))) {
1217
1185
  *out_alert = SSL_AD_INTERNAL_ERROR;
1218
1186
  return false;
1219
1187
  }
@@ -1233,9 +1201,9 @@ static bool ext_npn_parse_clienthello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1233
1201
  return false;
1234
1202
  }
1235
1203
 
1236
- if (contents == NULL ||
1237
- ssl->s3->initial_handshake_complete ||
1238
- ssl->ctx->next_protos_advertised_cb == NULL ||
1204
+ if (contents == NULL || //
1205
+ ssl->s3->initial_handshake_complete || //
1206
+ ssl->ctx->next_protos_advertised_cb == NULL || //
1239
1207
  SSL_is_dtls(ssl)) {
1240
1208
  return true;
1241
1209
  }
@@ -1263,9 +1231,9 @@ static bool ext_npn_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
1263
1231
  }
1264
1232
 
1265
1233
  CBB contents;
1266
- if (!CBB_add_u16(out, TLSEXT_TYPE_next_proto_neg) ||
1267
- !CBB_add_u16_length_prefixed(out, &contents) ||
1268
- !CBB_add_bytes(&contents, npa, npa_len) ||
1234
+ if (!CBB_add_u16(out, TLSEXT_TYPE_next_proto_neg) || //
1235
+ !CBB_add_u16_length_prefixed(out, &contents) || //
1236
+ !CBB_add_bytes(&contents, npa, npa_len) || //
1269
1237
  !CBB_flush(out)) {
1270
1238
  return false;
1271
1239
  }
@@ -1376,7 +1344,7 @@ static bool ext_alpn_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
1376
1344
  CBB *out_compressible,
1377
1345
  ssl_client_hello_type_t type) {
1378
1346
  const SSL *const ssl = hs->ssl;
1379
- if (hs->config->alpn_client_proto_list.empty() && ssl->quic_method) {
1347
+ if (hs->config->alpn_client_proto_list.empty() && SSL_is_quic(ssl)) {
1380
1348
  // ALPN MUST be used with QUIC.
1381
1349
  OPENSSL_PUT_ERROR(SSL, SSL_R_NO_APPLICATION_PROTOCOL);
1382
1350
  return false;
@@ -1405,7 +1373,7 @@ static bool ext_alpn_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1405
1373
  CBS *contents) {
1406
1374
  SSL *const ssl = hs->ssl;
1407
1375
  if (contents == NULL) {
1408
- if (ssl->quic_method) {
1376
+ if (SSL_is_quic(ssl)) {
1409
1377
  // ALPN is required when QUIC is used.
1410
1378
  OPENSSL_PUT_ERROR(SSL, SSL_R_NO_APPLICATION_PROTOCOL);
1411
1379
  *out_alert = SSL_AD_NO_APPLICATION_PROTOCOL;
@@ -1427,11 +1395,11 @@ static bool ext_alpn_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1427
1395
  // The extension data consists of a ProtocolNameList which must have
1428
1396
  // exactly one ProtocolName. Each of these is length-prefixed.
1429
1397
  CBS protocol_name_list, protocol_name;
1430
- if (!CBS_get_u16_length_prefixed(contents, &protocol_name_list) ||
1431
- CBS_len(contents) != 0 ||
1432
- !CBS_get_u8_length_prefixed(&protocol_name_list, &protocol_name) ||
1398
+ if (!CBS_get_u16_length_prefixed(contents, &protocol_name_list) || //
1399
+ CBS_len(contents) != 0 || //
1400
+ !CBS_get_u8_length_prefixed(&protocol_name_list, &protocol_name) || //
1433
1401
  // Empty protocol names are forbidden.
1434
- CBS_len(&protocol_name) == 0 ||
1402
+ CBS_len(&protocol_name) == 0 || //
1435
1403
  CBS_len(&protocol_name_list) != 0) {
1436
1404
  return false;
1437
1405
  }
@@ -1505,7 +1473,7 @@ bool ssl_negotiate_alpn(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1505
1473
  !ssl_client_hello_get_extension(
1506
1474
  client_hello, &contents,
1507
1475
  TLSEXT_TYPE_application_layer_protocol_negotiation)) {
1508
- if (ssl->quic_method) {
1476
+ if (SSL_is_quic(ssl)) {
1509
1477
  // ALPN is required when QUIC is used.
1510
1478
  OPENSSL_PUT_ERROR(SSL, SSL_R_NO_APPLICATION_PROTOCOL);
1511
1479
  *out_alert = SSL_AD_NO_APPLICATION_PROTOCOL;
@@ -1519,8 +1487,8 @@ bool ssl_negotiate_alpn(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1519
1487
  hs->next_proto_neg_seen = false;
1520
1488
 
1521
1489
  CBS protocol_name_list;
1522
- if (!CBS_get_u16_length_prefixed(&contents, &protocol_name_list) ||
1523
- CBS_len(&contents) != 0 ||
1490
+ if (!CBS_get_u16_length_prefixed(&contents, &protocol_name_list) || //
1491
+ CBS_len(&contents) != 0 || //
1524
1492
  !ssl_is_valid_alpn_list(protocol_name_list)) {
1525
1493
  OPENSSL_PUT_ERROR(SSL, SSL_R_PARSE_TLSEXT);
1526
1494
  *out_alert = SSL_AD_DECODE_ERROR;
@@ -1536,7 +1504,7 @@ bool ssl_negotiate_alpn(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1536
1504
  static_cast<unsigned>(CBS_len(&protocol_name_list)),
1537
1505
  ssl->ctx->alpn_select_cb_arg);
1538
1506
  // ALPN is required when QUIC is used.
1539
- if (ssl->quic_method &&
1507
+ if (SSL_is_quic(ssl) &&
1540
1508
  (ret == SSL_TLSEXT_ERR_NOACK || ret == SSL_TLSEXT_ERR_ALERT_WARNING)) {
1541
1509
  ret = SSL_TLSEXT_ERR_ALERT_FATAL;
1542
1510
  }
@@ -1547,8 +1515,7 @@ bool ssl_negotiate_alpn(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1547
1515
  *out_alert = SSL_AD_INTERNAL_ERROR;
1548
1516
  return false;
1549
1517
  }
1550
- if (!ssl->s3->alpn_selected.CopyFrom(
1551
- MakeConstSpan(selected, selected_len))) {
1518
+ if (!ssl->s3->alpn_selected.CopyFrom(Span(selected, selected_len))) {
1552
1519
  *out_alert = SSL_AD_INTERNAL_ERROR;
1553
1520
  return false;
1554
1521
  }
@@ -1678,8 +1645,8 @@ static bool ext_srtp_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
1678
1645
  const SSL *const ssl = hs->ssl;
1679
1646
  const STACK_OF(SRTP_PROTECTION_PROFILE) *profiles =
1680
1647
  SSL_get_srtp_profiles(ssl);
1681
- if (profiles == NULL ||
1682
- sk_SRTP_PROTECTION_PROFILE_num(profiles) == 0 ||
1648
+ if (profiles == NULL || //
1649
+ sk_SRTP_PROTECTION_PROFILE_num(profiles) == 0 || //
1683
1650
  !SSL_is_dtls(ssl)) {
1684
1651
  return true;
1685
1652
  }
@@ -1719,10 +1686,10 @@ static bool ext_srtp_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1719
1686
  assert(SSL_is_dtls(ssl));
1720
1687
  CBS profile_ids, srtp_mki;
1721
1688
  uint16_t profile_id;
1722
- if (!CBS_get_u16_length_prefixed(contents, &profile_ids) ||
1723
- !CBS_get_u16(&profile_ids, &profile_id) ||
1724
- CBS_len(&profile_ids) != 0 ||
1725
- !CBS_get_u8_length_prefixed(contents, &srtp_mki) ||
1689
+ if (!CBS_get_u16_length_prefixed(contents, &profile_ids) || //
1690
+ !CBS_get_u16(&profile_ids, &profile_id) || //
1691
+ CBS_len(&profile_ids) != 0 || //
1692
+ !CBS_get_u8_length_prefixed(contents, &srtp_mki) || //
1726
1693
  CBS_len(contents) != 0) {
1727
1694
  OPENSSL_PUT_ERROR(SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST);
1728
1695
  return false;
@@ -1802,8 +1769,7 @@ static bool ext_srtp_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
1802
1769
  !CBB_add_u16_length_prefixed(out, &contents) ||
1803
1770
  !CBB_add_u16_length_prefixed(&contents, &profile_ids) ||
1804
1771
  !CBB_add_u16(&profile_ids, ssl->s3->srtp_profile->id) ||
1805
- !CBB_add_u8(&contents, 0 /* empty MKI */) ||
1806
- !CBB_flush(out)) {
1772
+ !CBB_add_u8(&contents, 0 /* empty MKI */) || !CBB_flush(out)) {
1807
1773
  return false;
1808
1774
  }
1809
1775
 
@@ -1839,8 +1805,8 @@ static bool ext_ec_point_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
1839
1805
  return ext_ec_point_add_extension(hs, out);
1840
1806
  }
1841
1807
 
1842
- static bool ext_ec_point_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1843
- CBS *contents) {
1808
+ static bool ext_ec_point_parse_serverhello(SSL_HANDSHAKE *hs,
1809
+ uint8_t *out_alert, CBS *contents) {
1844
1810
  if (contents == NULL) {
1845
1811
  return true;
1846
1812
  }
@@ -1867,8 +1833,8 @@ static bool ext_ec_point_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert
1867
1833
  return true;
1868
1834
  }
1869
1835
 
1870
- static bool ext_ec_point_parse_clienthello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
1871
- CBS *contents) {
1836
+ static bool ext_ec_point_parse_clienthello(SSL_HANDSHAKE *hs,
1837
+ uint8_t *out_alert, CBS *contents) {
1872
1838
  if (ssl_protocol_version(hs->ssl) >= TLS1_3_VERSION) {
1873
1839
  return true;
1874
1840
  }
@@ -1902,7 +1868,8 @@ static bool should_offer_psk(const SSL_HANDSHAKE *hs,
1902
1868
  ssl_client_hello_type_t type) {
1903
1869
  const SSL *const ssl = hs->ssl;
1904
1870
  if (hs->max_version < TLS1_3_VERSION || ssl->session == nullptr ||
1905
- ssl_session_protocol_version(ssl->session.get()) < TLS1_3_VERSION ||
1871
+ ssl_session_get_type(ssl->session.get()) !=
1872
+ SSLSessionType::kPreSharedKey ||
1906
1873
  // TODO(https://crbug.com/boringssl/275): Should we synthesize a
1907
1874
  // placeholder PSK, at least when we offer early data? Otherwise
1908
1875
  // ClientHelloOuter will contain an early_data extension without a
@@ -1942,8 +1909,7 @@ static bool ext_pre_shared_key_add_clienthello(const SSL_HANDSHAKE *hs,
1942
1909
  return true;
1943
1910
  }
1944
1911
 
1945
- struct OPENSSL_timeval now;
1946
- ssl_get_current_time(ssl, &now);
1912
+ OPENSSL_timeval now = ssl_ctx_get_current_time(ssl->ctx.get());
1947
1913
  uint32_t ticket_age = 1000 * (now.tv_sec - ssl->session->time);
1948
1914
  uint32_t obfuscated_ticket_age = ticket_age + ssl->session->ticket_age_add;
1949
1915
 
@@ -1973,7 +1939,7 @@ bool ssl_ext_pre_shared_key_parse_serverhello(SSL_HANDSHAKE *hs,
1973
1939
  uint8_t *out_alert,
1974
1940
  CBS *contents) {
1975
1941
  uint16_t psk_id;
1976
- if (!CBS_get_u16(contents, &psk_id) ||
1942
+ if (!CBS_get_u16(contents, &psk_id) || //
1977
1943
  CBS_len(contents) != 0) {
1978
1944
  OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
1979
1945
  *out_alert = SSL_AD_DECODE_ERROR;
@@ -2005,11 +1971,11 @@ bool ssl_ext_pre_shared_key_parse_clienthello(
2005
1971
 
2006
1972
  // We only process the first PSK identity since we don't support pure PSK.
2007
1973
  CBS identities, binders;
2008
- if (!CBS_get_u16_length_prefixed(contents, &identities) ||
2009
- !CBS_get_u16_length_prefixed(&identities, out_ticket) ||
2010
- !CBS_get_u32(&identities, out_obfuscated_ticket_age) ||
2011
- !CBS_get_u16_length_prefixed(contents, &binders) ||
2012
- CBS_len(&binders) == 0 ||
1974
+ if (!CBS_get_u16_length_prefixed(contents, &identities) || //
1975
+ !CBS_get_u16_length_prefixed(&identities, out_ticket) || //
1976
+ !CBS_get_u32(&identities, out_obfuscated_ticket_age) || //
1977
+ !CBS_get_u16_length_prefixed(contents, &binders) || //
1978
+ CBS_len(&binders) == 0 || //
2013
1979
  CBS_len(contents) != 0) {
2014
1980
  OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
2015
1981
  *out_alert = SSL_AD_DECODE_ERROR;
@@ -2062,10 +2028,10 @@ bool ssl_ext_pre_shared_key_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
2062
2028
  }
2063
2029
 
2064
2030
  CBB contents;
2065
- if (!CBB_add_u16(out, TLSEXT_TYPE_pre_shared_key) ||
2066
- !CBB_add_u16_length_prefixed(out, &contents) ||
2031
+ if (!CBB_add_u16(out, TLSEXT_TYPE_pre_shared_key) || //
2032
+ !CBB_add_u16_length_prefixed(out, &contents) || //
2067
2033
  // We only consider the first identity for resumption
2068
- !CBB_add_u16(&contents, 0) ||
2034
+ !CBB_add_u16(&contents, 0) || //
2069
2035
  !CBB_flush(out)) {
2070
2036
  return false;
2071
2037
  }
@@ -2084,6 +2050,11 @@ static bool ext_psk_key_exchange_modes_add_clienthello(
2084
2050
  if (hs->max_version < TLS1_3_VERSION) {
2085
2051
  return true;
2086
2052
  }
2053
+ // We do not support resumption with PAKEs, so do not offer any PSK key
2054
+ // exchange modes, to signal the server not to send a ticket.
2055
+ if (hs->pake_prover != nullptr) {
2056
+ return true;
2057
+ }
2087
2058
 
2088
2059
  CBB contents, ke_modes;
2089
2060
  if (!CBB_add_u16(out_compressible, TLSEXT_TYPE_psk_key_exchange_modes) ||
@@ -2104,8 +2075,8 @@ static bool ext_psk_key_exchange_modes_parse_clienthello(SSL_HANDSHAKE *hs,
2104
2075
  }
2105
2076
 
2106
2077
  CBS ke_modes;
2107
- if (!CBS_get_u8_length_prefixed(contents, &ke_modes) ||
2108
- CBS_len(&ke_modes) == 0 ||
2078
+ if (!CBS_get_u8_length_prefixed(contents, &ke_modes) || //
2079
+ CBS_len(&ke_modes) == 0 || //
2109
2080
  CBS_len(contents) != 0) {
2110
2081
  *out_alert = SSL_AD_DECODE_ERROR;
2111
2082
  return false;
@@ -2142,8 +2113,8 @@ static bool ext_early_data_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
2142
2113
  // send the extension in both ClientHellos. This ensures that, if the server
2143
2114
  // handshakes with ClientHelloOuter, it can skip past early data. See
2144
2115
  // draft-ietf-tls-esni-13, section 6.1.
2145
- if (!CBB_add_u16(out_compressible, TLSEXT_TYPE_early_data) ||
2146
- !CBB_add_u16(out_compressible, 0) ||
2116
+ if (!CBB_add_u16(out_compressible, TLSEXT_TYPE_early_data) || //
2117
+ !CBB_add_u16(out_compressible, 0) || //
2147
2118
  !CBB_flush(out_compressible)) {
2148
2119
  return false;
2149
2120
  }
@@ -2190,10 +2161,10 @@ static bool ext_early_data_parse_serverhello(SSL_HANDSHAKE *hs,
2190
2161
  }
2191
2162
 
2192
2163
  static bool ext_early_data_parse_clienthello(SSL_HANDSHAKE *hs,
2193
- uint8_t *out_alert, CBS *contents) {
2164
+ uint8_t *out_alert,
2165
+ CBS *contents) {
2194
2166
  SSL *const ssl = hs->ssl;
2195
- if (contents == NULL ||
2196
- ssl_protocol_version(ssl) < TLS1_3_VERSION) {
2167
+ if (contents == NULL || ssl_protocol_version(ssl) < TLS1_3_VERSION) {
2197
2168
  return true;
2198
2169
  }
2199
2170
 
@@ -2211,8 +2182,8 @@ static bool ext_early_data_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
2211
2182
  return true;
2212
2183
  }
2213
2184
 
2214
- if (!CBB_add_u16(out, TLSEXT_TYPE_early_data) ||
2215
- !CBB_add_u16(out, 0) ||
2185
+ if (!CBB_add_u16(out, TLSEXT_TYPE_early_data) || //
2186
+ !CBB_add_u16(out, 0) || //
2216
2187
  !CBB_flush(out)) {
2217
2188
  return false;
2218
2189
  }
@@ -2231,7 +2202,9 @@ bool ssl_setup_key_shares(SSL_HANDSHAKE *hs, uint16_t override_group_id) {
2231
2202
  hs->key_shares[1].reset();
2232
2203
  hs->key_share_bytes.Reset();
2233
2204
 
2234
- if (hs->max_version < TLS1_3_VERSION) {
2205
+ // If offering a PAKE, do not set up key shares. We do not currently support
2206
+ // clients offering both PAKE and non-PAKE modes, including resumption.
2207
+ if (hs->max_version < TLS1_3_VERSION || hs->pake_prover) {
2235
2208
  return true;
2236
2209
  }
2237
2210
 
@@ -2296,7 +2269,9 @@ bool ssl_setup_key_shares(SSL_HANDSHAKE *hs, uint16_t override_group_id) {
2296
2269
  static bool ext_key_share_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
2297
2270
  CBB *out_compressible,
2298
2271
  ssl_client_hello_type_t type) {
2299
- if (hs->max_version < TLS1_3_VERSION) {
2272
+ // If offering a PAKE, do not set up key shares. We do not currently support
2273
+ // clients offering both PAKE and non-PAKE modes, including resumption.
2274
+ if (hs->max_version < TLS1_3_VERSION || hs->pake_prover) {
2300
2275
  return true;
2301
2276
  }
2302
2277
 
@@ -2317,6 +2292,14 @@ static bool ext_key_share_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
2317
2292
  bool ssl_ext_key_share_parse_serverhello(SSL_HANDSHAKE *hs,
2318
2293
  Array<uint8_t> *out_secret,
2319
2294
  uint8_t *out_alert, CBS *contents) {
2295
+ if (hs->key_shares[0] == nullptr) {
2296
+ // If we did not offer key shares, the extension should have been rejected
2297
+ // as unsolicited.
2298
+ OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
2299
+ *out_alert = SSL_AD_INTERNAL_ERROR;
2300
+ return false;
2301
+ }
2302
+
2320
2303
  CBS ciphertext;
2321
2304
  uint16_t group_id;
2322
2305
  if (!CBS_get_u16(contents, &group_id) ||
@@ -2352,7 +2335,8 @@ bool ssl_ext_key_share_parse_clienthello(SSL_HANDSHAKE *hs, bool *out_found,
2352
2335
  Span<const uint8_t> *out_peer_key,
2353
2336
  uint8_t *out_alert,
2354
2337
  const SSL_CLIENT_HELLO *client_hello) {
2355
- // We only support connections that include an ECDHE key exchange.
2338
+ // We only support connections that include an ECDHE key exchange, or use a
2339
+ // PAKE.
2356
2340
  CBS contents;
2357
2341
  if (!ssl_client_hello_get_extension(client_hello, &contents,
2358
2342
  TLSEXT_TYPE_key_share)) {
@@ -2401,7 +2385,30 @@ bool ssl_ext_key_share_parse_clienthello(SSL_HANDSHAKE *hs, bool *out_found,
2401
2385
  return true;
2402
2386
  }
2403
2387
 
2388
+ bool ssl_ext_pake_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
2389
+ if (hs->pake_share_bytes.empty()) {
2390
+ return true;
2391
+ }
2392
+
2393
+ CBB pake_ext, pake_msg;
2394
+ if (!CBB_add_u16(out, TLSEXT_TYPE_pake) ||
2395
+ !CBB_add_u16_length_prefixed(out, &pake_ext) ||
2396
+ !CBB_add_u16(&pake_ext, SSL_PAKE_SPAKE2PLUSV1) ||
2397
+ !CBB_add_u16_length_prefixed(&pake_ext, &pake_msg) ||
2398
+ !CBB_add_bytes(&pake_msg, hs->pake_share_bytes.data(),
2399
+ hs->pake_share_bytes.size()) ||
2400
+ !CBB_flush(out)) {
2401
+ return false;
2402
+ }
2403
+ return true;
2404
+ }
2405
+
2404
2406
  bool ssl_ext_key_share_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
2407
+ if (hs->pake_verifier) {
2408
+ // We don't add the key share extension if a PAKE is offered.
2409
+ return true;
2410
+ }
2411
+
2405
2412
  CBB entry, ciphertext;
2406
2413
  if (!CBB_add_u16(out, TLSEXT_TYPE_key_share) ||
2407
2414
  !CBB_add_u16_length_prefixed(out, &entry) ||
@@ -2493,6 +2500,11 @@ static bool ext_supported_groups_add_clienthello(const SSL_HANDSHAKE *hs,
2493
2500
  CBB *out_compressible,
2494
2501
  ssl_client_hello_type_t type) {
2495
2502
  const SSL *const ssl = hs->ssl;
2503
+ // In PAKE mode, supported_groups and key_share are not used.
2504
+ if (hs->pake_prover != nullptr) {
2505
+ return true;
2506
+ }
2507
+
2496
2508
  CBB contents, groups_bytes;
2497
2509
  if (!CBB_add_u16(out_compressible, TLSEXT_TYPE_supported_groups) ||
2498
2510
  !CBB_add_u16_length_prefixed(out_compressible, &contents) ||
@@ -2502,14 +2514,12 @@ static bool ext_supported_groups_add_clienthello(const SSL_HANDSHAKE *hs,
2502
2514
 
2503
2515
  // Add a fake group. See RFC 8701.
2504
2516
  if (ssl->ctx->grease_enabled &&
2505
- !CBB_add_u16(&groups_bytes,
2506
- ssl_get_grease_value(hs, ssl_grease_group))) {
2517
+ !CBB_add_u16(&groups_bytes, ssl_get_grease_value(hs, ssl_grease_group))) {
2507
2518
  return false;
2508
2519
  }
2509
2520
 
2510
2521
  for (uint16_t group : tls1_get_grouplist(hs)) {
2511
- if (is_post_quantum_group(group) &&
2512
- hs->max_version < TLS1_3_VERSION) {
2522
+ if (is_post_quantum_group(group) && hs->max_version < TLS1_3_VERSION) {
2513
2523
  continue;
2514
2524
  }
2515
2525
  if (!CBB_add_u16(&groups_bytes, group)) {
@@ -2536,7 +2546,7 @@ static bool parse_u16_array(const CBS *cbs, Array<uint16_t> *out) {
2536
2546
  }
2537
2547
 
2538
2548
  Array<uint16_t> ret;
2539
- if (!ret.Init(CBS_len(&copy) / 2)) {
2549
+ if (!ret.InitForOverwrite(CBS_len(&copy) / 2)) {
2540
2550
  return false;
2541
2551
  }
2542
2552
  for (size_t i = 0; i < ret.size(); i++) {
@@ -2552,16 +2562,16 @@ static bool parse_u16_array(const CBS *cbs, Array<uint16_t> *out) {
2552
2562
  }
2553
2563
 
2554
2564
  static bool ext_supported_groups_parse_clienthello(SSL_HANDSHAKE *hs,
2555
- uint8_t *out_alert,
2565
+ uint8_t *out_alert,
2556
2566
  CBS *contents) {
2557
2567
  if (contents == NULL) {
2558
2568
  return true;
2559
2569
  }
2560
2570
 
2561
2571
  CBS supported_group_list;
2562
- if (!CBS_get_u16_length_prefixed(contents, &supported_group_list) ||
2563
- CBS_len(&supported_group_list) == 0 ||
2564
- CBS_len(contents) != 0 ||
2572
+ if (!CBS_get_u16_length_prefixed(contents, &supported_group_list) || //
2573
+ CBS_len(&supported_group_list) == 0 || //
2574
+ CBS_len(contents) != 0 || //
2565
2575
  !parse_u16_array(&supported_group_list, &hs->peer_supported_group_list)) {
2566
2576
  return false;
2567
2577
  }
@@ -2570,14 +2580,173 @@ static bool ext_supported_groups_parse_clienthello(SSL_HANDSHAKE *hs,
2570
2580
  }
2571
2581
 
2572
2582
 
2583
+ // Certificate Authorities.
2584
+ //
2585
+ // https://tools.ietf.org/html/rfc8446#section-4.2.4
2586
+
2587
+ static bool ext_certificate_authorities_add_clienthello(
2588
+ const SSL_HANDSHAKE *hs, CBB *out, CBB *out_compressible,
2589
+ ssl_client_hello_type_t type) {
2590
+ // TODO(crbug.com/398275713): What should this send in ClientHelloOuter?
2591
+ if (ssl_has_CA_names(hs->config)) {
2592
+ CBB ca_contents;
2593
+ if (!CBB_add_u16(out_compressible,
2594
+ TLSEXT_TYPE_certificate_authorities) || //
2595
+ !CBB_add_u16_length_prefixed(out_compressible, &ca_contents) || //
2596
+ !ssl_add_CA_names(hs, &ca_contents) || //
2597
+ !CBB_flush(out_compressible)) {
2598
+ return false;
2599
+ }
2600
+ }
2601
+ return true;
2602
+ }
2603
+
2604
+ static bool ext_certificate_authorities_parse_clienthello(SSL_HANDSHAKE *hs,
2605
+ uint8_t *out_alert,
2606
+ CBS *contents) {
2607
+ if (contents == NULL) {
2608
+ return true;
2609
+ }
2610
+
2611
+ if (CBS_len(contents) == 0) {
2612
+ return false;
2613
+ }
2614
+
2615
+ hs->ca_names = SSL_parse_CA_list(hs->ssl, out_alert, contents);
2616
+ if (!hs->ca_names) {
2617
+ return false;
2618
+ }
2619
+
2620
+ return true;
2621
+ }
2622
+
2623
+
2624
+ // Trust Anchor Identifiers
2625
+ //
2626
+ // https://datatracker.ietf.org/doc/draft-ietf-tls-trust-anchor-ids/
2627
+
2628
+ bool ssl_is_valid_trust_anchor_list(Span<const uint8_t> in) {
2629
+ CBS ids = in;
2630
+ while (CBS_len(&ids) > 0) {
2631
+ CBS id;
2632
+ if (!CBS_get_u8_length_prefixed(&ids, &id) || //
2633
+ CBS_len(&id) == 0) {
2634
+ return false;
2635
+ }
2636
+ }
2637
+ return true;
2638
+ }
2639
+
2640
+ static bool ext_trust_anchors_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
2641
+ CBB *out_compressible,
2642
+ ssl_client_hello_type_t type) {
2643
+ if (!hs->config->requested_trust_anchors.has_value()) {
2644
+ return true;
2645
+ }
2646
+ // TODO(crbug.com/398275713): What should this send in ClientHelloOuter?
2647
+ CBB contents, list;
2648
+ if (!CBB_add_u16(out_compressible, TLSEXT_TYPE_trust_anchors) || //
2649
+ !CBB_add_u16_length_prefixed(out_compressible, &contents) || //
2650
+ !CBB_add_u16_length_prefixed(&contents, &list) || //
2651
+ !CBB_add_bytes(&list, hs->config->requested_trust_anchors->data(),
2652
+ hs->config->requested_trust_anchors->size()) ||
2653
+ !CBB_flush(out_compressible)) {
2654
+ return false;
2655
+ }
2656
+ return true;
2657
+ }
2658
+
2659
+ static bool ext_trust_anchors_parse_clienthello(SSL_HANDSHAKE *hs,
2660
+ uint8_t *out_alert,
2661
+ CBS *contents) {
2662
+ if (contents == nullptr || ssl_protocol_version(hs->ssl) < TLS1_3_VERSION) {
2663
+ return true;
2664
+ }
2665
+
2666
+ CBS child;
2667
+ if (!CBS_get_u16_length_prefixed(contents, &child) ||
2668
+ !ssl_is_valid_trust_anchor_list(child)) {
2669
+ *out_alert = SSL_AD_DECODE_ERROR;
2670
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
2671
+ return false;
2672
+ }
2673
+
2674
+ hs->peer_requested_trust_anchors.emplace();
2675
+ if (!hs->peer_requested_trust_anchors->CopyFrom(child)) {
2676
+ *out_alert = SSL_AD_INTERNAL_ERROR;
2677
+ return false;
2678
+ }
2679
+ return true;
2680
+ }
2681
+
2682
+ static bool ext_trust_anchors_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
2683
+ SSL *const ssl = hs->ssl;
2684
+ const auto &creds = hs->config->cert->credentials;
2685
+ if (ssl_protocol_version(ssl) < TLS1_3_VERSION ||
2686
+ // Check if any credentials have trust anchor IDs.
2687
+ std::none_of(creds.begin(), creds.end(), [](const auto &cred) {
2688
+ return !cred->trust_anchor_id.empty();
2689
+ })) {
2690
+ return true;
2691
+ }
2692
+ CBB contents, list;
2693
+ if (!CBB_add_u16(out, TLSEXT_TYPE_trust_anchors) || //
2694
+ !CBB_add_u16_length_prefixed(out, &contents) || //
2695
+ !CBB_add_u16_length_prefixed(&contents, &list)) {
2696
+ return false;
2697
+ }
2698
+ for (const auto &cred : creds) {
2699
+ if (!cred->trust_anchor_id.empty()) {
2700
+ CBB child;
2701
+ if (!CBB_add_u8_length_prefixed(&list, &child) || //
2702
+ !CBB_add_bytes(&child, cred->trust_anchor_id.data(),
2703
+ cred->trust_anchor_id.size()) ||
2704
+ !CBB_flush(&list)) {
2705
+ return false;
2706
+ }
2707
+ }
2708
+ }
2709
+ return CBB_flush(out);
2710
+ }
2711
+
2712
+ static bool ext_trust_anchors_parse_serverhello(SSL_HANDSHAKE *hs,
2713
+ uint8_t *out_alert,
2714
+ CBS *contents) {
2715
+ if (contents == nullptr) {
2716
+ return true;
2717
+ }
2718
+
2719
+ if (ssl_protocol_version(hs->ssl) < TLS1_3_VERSION) {
2720
+ OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_EXTENSION);
2721
+ *out_alert = SSL_AD_UNSUPPORTED_EXTENSION;
2722
+ return false;
2723
+ }
2724
+
2725
+ CBS child;
2726
+ if (!CBS_get_u16_length_prefixed(contents, &child) ||
2727
+ // The list of available trust anchors may not be empty.
2728
+ CBS_len(&child) == 0 || //
2729
+ !ssl_is_valid_trust_anchor_list(child)) {
2730
+ *out_alert = SSL_AD_DECODE_ERROR;
2731
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
2732
+ return false;
2733
+ }
2734
+
2735
+ if (!hs->peer_available_trust_anchors.CopyFrom(child)) {
2736
+ *out_alert = SSL_AD_INTERNAL_ERROR;
2737
+ return false;
2738
+ }
2739
+ return true;
2740
+ }
2741
+
2573
2742
  // QUIC Transport Parameters
2574
2743
 
2575
2744
  static bool ext_quic_transport_params_add_clienthello_impl(
2576
2745
  const SSL_HANDSHAKE *hs, CBB *out, bool use_legacy_codepoint) {
2577
- if (hs->config->quic_transport_params.empty() && !hs->ssl->quic_method) {
2746
+ if (hs->config->quic_transport_params.empty() && !SSL_is_quic(hs->ssl)) {
2578
2747
  return true;
2579
2748
  }
2580
- if (hs->config->quic_transport_params.empty() || !hs->ssl->quic_method) {
2749
+ if (hs->config->quic_transport_params.empty() || !SSL_is_quic(hs->ssl)) {
2581
2750
  // QUIC Transport Parameters must be sent over QUIC, and they must not be
2582
2751
  // sent over non-QUIC transports. If transport params are set, then
2583
2752
  // SSL(_CTX)_set_quic_method must also be called.
@@ -2629,7 +2798,7 @@ static bool ext_quic_transport_params_parse_serverhello_impl(
2629
2798
  // Silently ignore because we expect the other QUIC codepoint.
2630
2799
  return true;
2631
2800
  }
2632
- if (!ssl->quic_method) {
2801
+ if (!SSL_is_quic(ssl)) {
2633
2802
  return true;
2634
2803
  }
2635
2804
  *out_alert = SSL_AD_MISSING_EXTENSION;
@@ -2637,7 +2806,7 @@ static bool ext_quic_transport_params_parse_serverhello_impl(
2637
2806
  }
2638
2807
  // The extensions parser will check for unsolicited extensions before
2639
2808
  // calling the callback.
2640
- assert(ssl->quic_method != nullptr);
2809
+ assert(SSL_is_quic(ssl));
2641
2810
  assert(ssl_protocol_version(ssl) == TLS1_3_VERSION);
2642
2811
  assert(used_legacy_codepoint == hs->config->quic_use_legacy_codepoint);
2643
2812
  return ssl->s3->peer_quic_transport_params.CopyFrom(*contents);
@@ -2661,7 +2830,7 @@ static bool ext_quic_transport_params_parse_clienthello_impl(
2661
2830
  bool used_legacy_codepoint) {
2662
2831
  SSL *const ssl = hs->ssl;
2663
2832
  if (!contents) {
2664
- if (!ssl->quic_method) {
2833
+ if (!SSL_is_quic(ssl)) {
2665
2834
  if (hs->config->quic_transport_params.empty()) {
2666
2835
  return true;
2667
2836
  }
@@ -2678,7 +2847,7 @@ static bool ext_quic_transport_params_parse_clienthello_impl(
2678
2847
  *out_alert = SSL_AD_MISSING_EXTENSION;
2679
2848
  return false;
2680
2849
  }
2681
- if (!ssl->quic_method) {
2850
+ if (!SSL_is_quic(ssl)) {
2682
2851
  if (used_legacy_codepoint) {
2683
2852
  // Ignore the legacy private-use codepoint because that could be sent
2684
2853
  // to mean something else than QUIC transport parameters.
@@ -2712,12 +2881,12 @@ static bool ext_quic_transport_params_parse_clienthello_legacy(
2712
2881
 
2713
2882
  static bool ext_quic_transport_params_add_serverhello_impl(
2714
2883
  SSL_HANDSHAKE *hs, CBB *out, bool use_legacy_codepoint) {
2715
- if (hs->ssl->quic_method == nullptr && use_legacy_codepoint) {
2884
+ if (!SSL_is_quic(hs->ssl) && use_legacy_codepoint) {
2716
2885
  // Ignore the legacy private-use codepoint because that could be sent
2717
2886
  // to mean something else than QUIC transport parameters.
2718
2887
  return true;
2719
2888
  }
2720
- assert(hs->ssl->quic_method != nullptr);
2889
+ assert(SSL_is_quic(hs->ssl));
2721
2890
  if (hs->config->quic_transport_params.empty()) {
2722
2891
  // Transport parameters must be set when using QUIC.
2723
2892
  OPENSSL_PUT_ERROR(SSL, SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED);
@@ -2779,9 +2948,9 @@ static bool ext_delegated_credential_parse_clienthello(SSL_HANDSHAKE *hs,
2779
2948
  // The contents of the extension are the signature algorithms the client will
2780
2949
  // accept for a delegated credential.
2781
2950
  CBS sigalg_list;
2782
- if (!CBS_get_u16_length_prefixed(contents, &sigalg_list) ||
2783
- CBS_len(&sigalg_list) == 0 ||
2784
- CBS_len(contents) != 0 ||
2951
+ if (!CBS_get_u16_length_prefixed(contents, &sigalg_list) || //
2952
+ CBS_len(&sigalg_list) == 0 || //
2953
+ CBS_len(contents) != 0 || //
2785
2954
  !parse_u16_array(&sigalg_list, &hs->peer_delegated_credential_sigalgs)) {
2786
2955
  return false;
2787
2956
  }
@@ -2840,16 +3009,16 @@ static bool cert_compression_parse_clienthello(SSL_HANDSHAKE *hs,
2840
3009
  const size_t num_algs = ctx->cert_compression_algs.size();
2841
3010
 
2842
3011
  CBS alg_ids;
2843
- if (!CBS_get_u8_length_prefixed(contents, &alg_ids) ||
2844
- CBS_len(contents) != 0 ||
2845
- CBS_len(&alg_ids) == 0 ||
3012
+ if (!CBS_get_u8_length_prefixed(contents, &alg_ids) || //
3013
+ CBS_len(contents) != 0 || //
3014
+ CBS_len(&alg_ids) == 0 || //
2846
3015
  CBS_len(&alg_ids) % 2 == 1) {
2847
3016
  return false;
2848
3017
  }
2849
3018
 
2850
3019
  const size_t num_given_alg_ids = CBS_len(&alg_ids) / 2;
2851
3020
  Array<uint16_t> given_alg_ids;
2852
- if (!given_alg_ids.Init(num_given_alg_ids)) {
3021
+ if (!given_alg_ids.InitForOverwrite(num_given_alg_ids)) {
2853
3022
  return false;
2854
3023
  }
2855
3024
 
@@ -2875,8 +3044,7 @@ static bool cert_compression_parse_clienthello(SSL_HANDSHAKE *hs,
2875
3044
  }
2876
3045
  }
2877
3046
 
2878
- qsort(given_alg_ids.data(), given_alg_ids.size(), sizeof(uint16_t),
2879
- compare_uint16_t);
3047
+ std::sort(given_alg_ids.begin(), given_alg_ids.end());
2880
3048
  for (size_t i = 1; i < num_given_alg_ids; i++) {
2881
3049
  if (given_alg_ids[i - 1] == given_alg_ids[i]) {
2882
3050
  return false;
@@ -2896,6 +3064,216 @@ static bool cert_compression_add_serverhello(SSL_HANDSHAKE *hs, CBB *out) {
2896
3064
  return true;
2897
3065
  }
2898
3066
 
3067
+ // PAKEs
3068
+ //
3069
+ // See
3070
+ // https://chris-wood.github.io/draft-bmw-tls-pake13/draft-bmw-tls-pake13.html
3071
+
3072
+ bool ssl_setup_pake_shares(SSL_HANDSHAKE *hs) {
3073
+ hs->pake_share_bytes.Reset();
3074
+ if (hs->max_version < TLS1_3_VERSION) {
3075
+ return true;
3076
+ }
3077
+
3078
+ const auto &creds = hs->config->cert->credentials;
3079
+ if (std::none_of(creds.begin(), creds.end(), [](const auto &cred) {
3080
+ return cred->type == SSLCredentialType::kSPAKE2PlusV1Client;
3081
+ })) {
3082
+ // If there were no configured PAKE credentials, proceed without filling
3083
+ // in the PAKE extension.
3084
+ return true;
3085
+ }
3086
+
3087
+ // We currently do not support multiple PAKE credentials, or a mix of PAKE and
3088
+ // non-PAKE credentials.
3089
+ if (creds.size() != 1u) {
3090
+ OPENSSL_PUT_ERROR(SSL, SSL_R_UNSUPPORTED_CREDENTIAL_LIST);
3091
+ return false;
3092
+ }
3093
+ SSL_CREDENTIAL *cred = creds[0].get();
3094
+ assert(cred->type == SSLCredentialType::kSPAKE2PlusV1Client);
3095
+
3096
+ hs->pake_prover = MakeUnique<spake2plus::Prover>();
3097
+ uint8_t prover_share[spake2plus::kShareSize];
3098
+ if (hs->pake_prover == nullptr ||
3099
+ !hs->pake_prover->Init(cred->pake_context, cred->client_identity,
3100
+ cred->server_identity, cred->password_verifier_w0,
3101
+ cred->password_verifier_w1) ||
3102
+ !hs->pake_prover->GenerateShare(prover_share)) {
3103
+ return false;
3104
+ }
3105
+
3106
+ hs->credential = UpRef(cred);
3107
+
3108
+ bssl::ScopedCBB cbb;
3109
+ CBB shares, client_identity, server_identity, pake_message;
3110
+ if (!CBB_init(cbb.get(), 64) ||
3111
+ !CBB_add_u16_length_prefixed(cbb.get(), &client_identity) ||
3112
+ !CBB_add_bytes(&client_identity, cred->client_identity.data(),
3113
+ cred->client_identity.size()) ||
3114
+ !CBB_add_u16_length_prefixed(cbb.get(), &server_identity) ||
3115
+ !CBB_add_bytes(&server_identity, cred->server_identity.data(),
3116
+ cred->server_identity.size()) ||
3117
+ !CBB_add_u16_length_prefixed(cbb.get(), &shares) ||
3118
+ !CBB_add_u16(&shares, SSL_PAKE_SPAKE2PLUSV1) ||
3119
+ !CBB_add_u16_length_prefixed(&shares, &pake_message) ||
3120
+ !CBB_add_bytes(&pake_message, prover_share, sizeof(prover_share))) {
3121
+ return false;
3122
+ }
3123
+
3124
+ return CBBFinishArray(cbb.get(), &hs->pake_share_bytes);
3125
+ }
3126
+
3127
+ static bool ext_pake_add_clienthello(const SSL_HANDSHAKE *hs, CBB *out,
3128
+ CBB *out_compressible,
3129
+ ssl_client_hello_type_t type) {
3130
+ if (hs->pake_share_bytes.empty()) {
3131
+ return true;
3132
+ }
3133
+
3134
+ CBB pake_share_bytes;
3135
+ if (!CBB_add_u16(out_compressible, TLSEXT_TYPE_pake) ||
3136
+ !CBB_add_u16_length_prefixed(out_compressible, &pake_share_bytes) ||
3137
+ !CBB_add_bytes(&pake_share_bytes, hs->pake_share_bytes.data(),
3138
+ hs->pake_share_bytes.size()) ||
3139
+ !CBB_flush(out_compressible)) {
3140
+ return false;
3141
+ }
3142
+
3143
+ return true;
3144
+ }
3145
+
3146
+ bool ssl_ext_pake_parse_serverhello(SSL_HANDSHAKE *hs,
3147
+ Array<uint8_t> *out_secret,
3148
+ uint8_t *out_alert, CBS *contents) {
3149
+ *out_alert = SSL_AD_DECODE_ERROR;
3150
+
3151
+ if (!hs->pake_prover) {
3152
+ // If we did not offer a PAKE, the extension should have been rejected as
3153
+ // unsolicited.
3154
+ OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
3155
+ *out_alert = SSL_AD_INTERNAL_ERROR;
3156
+ return false;
3157
+ }
3158
+
3159
+ CBS pake_msg;
3160
+ uint16_t named_pake;
3161
+ if (!CBS_get_u16(contents, &named_pake) ||
3162
+ !CBS_get_u16_length_prefixed(contents, &pake_msg) ||
3163
+ CBS_len(contents) != 0 || //
3164
+ named_pake != SSL_PAKE_SPAKE2PLUSV1) {
3165
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
3166
+ return false;
3167
+ }
3168
+
3169
+ // Check that the server's PAKE share consists of the right number of
3170
+ // bytes for a PAKE share and a key confirmation message.
3171
+ if (CBS_len(&pake_msg) != spake2plus::kShareSize + spake2plus::kConfirmSize) {
3172
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
3173
+ *out_alert = SSL_AD_ILLEGAL_PARAMETER;
3174
+ return false;
3175
+ }
3176
+ Span<const uint8_t> pake_msg_span = pake_msg;
3177
+
3178
+ // Releasing the result of |ComputeConfirmation| lets the client confirm one
3179
+ // PAKE guess. If all failures are used up, no more guesses are allowed.
3180
+ if (!hs->credential->HasPAKEAttempts()) {
3181
+ OPENSSL_PUT_ERROR(SSL, SSL_R_PAKE_EXHAUSTED);
3182
+ *out_alert = SSL_AD_INTERNAL_ERROR;
3183
+ return false;
3184
+ }
3185
+
3186
+ uint8_t prover_confirm[spake2plus::kConfirmSize];
3187
+ uint8_t prover_secret[spake2plus::kSecretSize];
3188
+ if (!hs->pake_prover->ComputeConfirmation(
3189
+ prover_confirm, prover_secret,
3190
+ pake_msg_span.subspan(0, spake2plus::kShareSize),
3191
+ pake_msg_span.subspan(spake2plus::kShareSize))) {
3192
+ // Record a failure before releasing the answer to the client.
3193
+ hs->credential->ClaimPAKEAttempt();
3194
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
3195
+ *out_alert = SSL_AD_ILLEGAL_PARAMETER;
3196
+ return false;
3197
+ }
3198
+
3199
+ Array<uint8_t> secret;
3200
+ if (!secret.CopyFrom(prover_secret)) {
3201
+ OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
3202
+ *out_alert = SSL_AD_INTERNAL_ERROR;
3203
+ return false;
3204
+ }
3205
+
3206
+ *out_secret = std::move(secret);
3207
+ return true;
3208
+ }
3209
+
3210
+ static bool ext_pake_parse_clienthello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
3211
+ CBS *contents) {
3212
+ if (contents == nullptr) {
3213
+ return true;
3214
+ }
3215
+
3216
+ // struct {
3217
+ // opaque client_identity<0..2^16-1>;
3218
+ // opaque server_identity<0..2^16-1>;
3219
+ // PAKEShare client_shares<0..2^16-1>;
3220
+ // } PAKEClientHello;
3221
+ //
3222
+ // struct {
3223
+ // NamedPAKE named_pake;
3224
+ // opaque pake_message<1..2^16-1>;
3225
+ // } PAKEShare;
3226
+
3227
+ *out_alert = SSL_AD_DECODE_ERROR;
3228
+ CBS client_identity, server_identity, shares;
3229
+ if (!CBS_get_u16_length_prefixed(contents, &client_identity) ||
3230
+ !CBS_get_u16_length_prefixed(contents, &server_identity) ||
3231
+ !CBS_get_u16_length_prefixed(contents, &shares) ||
3232
+ CBS_len(contents) != 0) {
3233
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
3234
+ return false;
3235
+ }
3236
+
3237
+ uint16_t last_named_pake = 0;
3238
+ for (size_t i = 0; CBS_len(&shares) > 0; i++) {
3239
+ uint16_t pake_id;
3240
+ CBS message;
3241
+ if (!CBS_get_u16(&shares, &pake_id) ||
3242
+ !CBS_get_u16_length_prefixed(&shares, &message)) {
3243
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
3244
+ return false;
3245
+ }
3246
+
3247
+ // PAKEs must be sent in strictly monotonic order.
3248
+ if (i > 0 && last_named_pake >= pake_id) {
3249
+ OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
3250
+ return false;
3251
+ }
3252
+ last_named_pake = pake_id;
3253
+
3254
+ // We only support one PAKE.
3255
+ if (pake_id != SSL_PAKE_SPAKE2PLUSV1) {
3256
+ continue;
3257
+ }
3258
+
3259
+ // Save the PAKE share for the handshake logic to pick up later.
3260
+ // TODO(crbug.com/391393404): It would be nice if the callback did not have
3261
+ // to copy this.
3262
+ hs->pake_share = MakeUnique<SSLPAKEShare>();
3263
+ if (hs->pake_share == nullptr ||
3264
+ !hs->pake_share->client_identity.CopyFrom(client_identity) ||
3265
+ !hs->pake_share->server_identity.CopyFrom(server_identity) ||
3266
+ !hs->pake_share->pake_message.CopyFrom(message)) {
3267
+ OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
3268
+ return false;
3269
+ }
3270
+ hs->pake_share->named_pake = pake_id;
3271
+ }
3272
+
3273
+ return true;
3274
+ }
3275
+
3276
+
2899
3277
  // Application-level Protocol Settings
2900
3278
  //
2901
3279
  // https://tools.ietf.org/html/draft-vvv-tls-alps-01
@@ -2917,7 +3295,7 @@ static bool ext_alps_add_clienthello_impl(const SSL_HANDSHAKE *hs, CBB *out,
2917
3295
  ssl_client_hello_type_t type,
2918
3296
  bool use_new_codepoint) {
2919
3297
  const SSL *const ssl = hs->ssl;
2920
- if (// ALPS requires TLS 1.3.
3298
+ if ( // ALPS requires TLS 1.3.
2921
3299
  hs->max_version < TLS1_3_VERSION ||
2922
3300
  // Do not offer ALPS without ALPN.
2923
3301
  hs->config->alpn_client_proto_list.empty() ||
@@ -2971,8 +3349,7 @@ static bool ext_alps_add_clienthello_old(const SSL_HANDSHAKE *hs, CBB *out,
2971
3349
  }
2972
3350
 
2973
3351
  static bool ext_alps_parse_serverhello_impl(SSL_HANDSHAKE *hs,
2974
- uint8_t *out_alert,
2975
- CBS *contents,
3352
+ uint8_t *out_alert, CBS *contents,
2976
3353
  bool use_new_codepoint) {
2977
3354
  SSL *const ssl = hs->ssl;
2978
3355
  if (contents == nullptr) {
@@ -3002,16 +3379,14 @@ static bool ext_alps_parse_serverhello_impl(SSL_HANDSHAKE *hs,
3002
3379
  return true;
3003
3380
  }
3004
3381
 
3005
- static bool ext_alps_parse_serverhello(SSL_HANDSHAKE *hs,
3006
- uint8_t *out_alert,
3382
+ static bool ext_alps_parse_serverhello(SSL_HANDSHAKE *hs, uint8_t *out_alert,
3007
3383
  CBS *contents) {
3008
3384
  return ext_alps_parse_serverhello_impl(hs, out_alert, contents,
3009
3385
  /*use_new_codepoint=*/true);
3010
3386
  }
3011
3387
 
3012
3388
  static bool ext_alps_parse_serverhello_old(SSL_HANDSHAKE *hs,
3013
- uint8_t *out_alert,
3014
- CBS *contents) {
3389
+ uint8_t *out_alert, CBS *contents) {
3015
3390
  return ext_alps_parse_serverhello_impl(hs, out_alert, contents,
3016
3391
  /*use_new_codepoint=*/false);
3017
3392
  }
@@ -3027,7 +3402,7 @@ static bool ext_alps_add_serverhello_impl(SSL_HANDSHAKE *hs, CBB *out,
3027
3402
  return true;
3028
3403
  }
3029
3404
 
3030
- if (use_new_codepoint != hs->config->alps_use_new_codepoint) {
3405
+ if (use_new_codepoint != hs->config->alps_use_new_codepoint) {
3031
3406
  // Do nothing, we'll send the other codepoint.
3032
3407
  return true;
3033
3408
  }
@@ -3080,8 +3455,8 @@ bool ssl_negotiate_alps(SSL_HANDSHAKE *hs, uint8_t *out_alert,
3080
3455
  // Check if the client supports ALPS with the selected ALPN.
3081
3456
  bool found = false;
3082
3457
  CBS alps_list;
3083
- if (!CBS_get_u16_length_prefixed(&alps_contents, &alps_list) ||
3084
- CBS_len(&alps_contents) != 0 ||
3458
+ if (!CBS_get_u16_length_prefixed(&alps_contents, &alps_list) || //
3459
+ CBS_len(&alps_contents) != 0 || //
3085
3460
  CBS_len(&alps_list) == 0) {
3086
3461
  OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
3087
3462
  *out_alert = SSL_AD_DECODE_ERROR;
@@ -3096,7 +3471,7 @@ bool ssl_negotiate_alps(SSL_HANDSHAKE *hs, uint8_t *out_alert,
3096
3471
  *out_alert = SSL_AD_DECODE_ERROR;
3097
3472
  return false;
3098
3473
  }
3099
- if (protocol_name == MakeConstSpan(ssl->s3->alpn_selected)) {
3474
+ if (protocol_name == Span(ssl->s3->alpn_selected)) {
3100
3475
  found = true;
3101
3476
  }
3102
3477
  }
@@ -3116,185 +3491,208 @@ bool ssl_negotiate_alps(SSL_HANDSHAKE *hs, uint8_t *out_alert,
3116
3491
 
3117
3492
  // kExtensions contains all the supported extensions.
3118
3493
  static const struct tls_extension kExtensions[] = {
3119
- {
3120
- TLSEXT_TYPE_server_name,
3121
- ext_sni_add_clienthello,
3122
- ext_sni_parse_serverhello,
3123
- ext_sni_parse_clienthello,
3124
- ext_sni_add_serverhello,
3125
- },
3126
- {
3127
- TLSEXT_TYPE_encrypted_client_hello,
3128
- ext_ech_add_clienthello,
3129
- ext_ech_parse_serverhello,
3130
- ext_ech_parse_clienthello,
3131
- ext_ech_add_serverhello,
3132
- },
3133
- {
3134
- TLSEXT_TYPE_extended_master_secret,
3135
- ext_ems_add_clienthello,
3136
- ext_ems_parse_serverhello,
3137
- ext_ems_parse_clienthello,
3138
- ext_ems_add_serverhello,
3139
- },
3140
- {
3141
- TLSEXT_TYPE_renegotiate,
3142
- ext_ri_add_clienthello,
3143
- ext_ri_parse_serverhello,
3144
- ext_ri_parse_clienthello,
3145
- ext_ri_add_serverhello,
3146
- },
3147
- {
3148
- TLSEXT_TYPE_supported_groups,
3149
- ext_supported_groups_add_clienthello,
3150
- ext_supported_groups_parse_serverhello,
3151
- ext_supported_groups_parse_clienthello,
3152
- dont_add_serverhello,
3153
- },
3154
- {
3155
- TLSEXT_TYPE_ec_point_formats,
3156
- ext_ec_point_add_clienthello,
3157
- ext_ec_point_parse_serverhello,
3158
- ext_ec_point_parse_clienthello,
3159
- ext_ec_point_add_serverhello,
3160
- },
3161
- {
3162
- TLSEXT_TYPE_session_ticket,
3163
- ext_ticket_add_clienthello,
3164
- ext_ticket_parse_serverhello,
3165
- // Ticket extension client parsing is handled in ssl_session.c
3166
- ignore_parse_clienthello,
3167
- ext_ticket_add_serverhello,
3168
- },
3169
- {
3170
- TLSEXT_TYPE_application_layer_protocol_negotiation,
3171
- ext_alpn_add_clienthello,
3172
- ext_alpn_parse_serverhello,
3173
- // ALPN is negotiated late in |ssl_negotiate_alpn|.
3174
- ignore_parse_clienthello,
3175
- ext_alpn_add_serverhello,
3176
- },
3177
- {
3178
- TLSEXT_TYPE_status_request,
3179
- ext_ocsp_add_clienthello,
3180
- ext_ocsp_parse_serverhello,
3181
- ext_ocsp_parse_clienthello,
3182
- ext_ocsp_add_serverhello,
3183
- },
3184
- {
3185
- TLSEXT_TYPE_signature_algorithms,
3186
- ext_sigalgs_add_clienthello,
3187
- forbid_parse_serverhello,
3188
- ext_sigalgs_parse_clienthello,
3189
- dont_add_serverhello,
3190
- },
3191
- {
3192
- TLSEXT_TYPE_next_proto_neg,
3193
- ext_npn_add_clienthello,
3194
- ext_npn_parse_serverhello,
3195
- ext_npn_parse_clienthello,
3196
- ext_npn_add_serverhello,
3197
- },
3198
- {
3199
- TLSEXT_TYPE_certificate_timestamp,
3200
- ext_sct_add_clienthello,
3201
- ext_sct_parse_serverhello,
3202
- ext_sct_parse_clienthello,
3203
- ext_sct_add_serverhello,
3204
- },
3205
- {
3206
- TLSEXT_TYPE_channel_id,
3207
- ext_channel_id_add_clienthello,
3208
- ext_channel_id_parse_serverhello,
3209
- ext_channel_id_parse_clienthello,
3210
- ext_channel_id_add_serverhello,
3211
- },
3212
- {
3213
- TLSEXT_TYPE_srtp,
3214
- ext_srtp_add_clienthello,
3215
- ext_srtp_parse_serverhello,
3216
- ext_srtp_parse_clienthello,
3217
- ext_srtp_add_serverhello,
3218
- },
3219
- {
3220
- TLSEXT_TYPE_key_share,
3221
- ext_key_share_add_clienthello,
3222
- forbid_parse_serverhello,
3223
- ignore_parse_clienthello,
3224
- dont_add_serverhello,
3225
- },
3226
- {
3227
- TLSEXT_TYPE_psk_key_exchange_modes,
3228
- ext_psk_key_exchange_modes_add_clienthello,
3229
- forbid_parse_serverhello,
3230
- ext_psk_key_exchange_modes_parse_clienthello,
3231
- dont_add_serverhello,
3232
- },
3233
- {
3234
- TLSEXT_TYPE_early_data,
3235
- ext_early_data_add_clienthello,
3236
- ext_early_data_parse_serverhello,
3237
- ext_early_data_parse_clienthello,
3238
- ext_early_data_add_serverhello,
3239
- },
3240
- {
3241
- TLSEXT_TYPE_supported_versions,
3242
- ext_supported_versions_add_clienthello,
3243
- forbid_parse_serverhello,
3244
- ignore_parse_clienthello,
3245
- dont_add_serverhello,
3246
- },
3247
- {
3248
- TLSEXT_TYPE_cookie,
3249
- ext_cookie_add_clienthello,
3250
- forbid_parse_serverhello,
3251
- ignore_parse_clienthello,
3252
- dont_add_serverhello,
3253
- },
3254
- {
3255
- TLSEXT_TYPE_quic_transport_parameters,
3256
- ext_quic_transport_params_add_clienthello,
3257
- ext_quic_transport_params_parse_serverhello,
3258
- ext_quic_transport_params_parse_clienthello,
3259
- ext_quic_transport_params_add_serverhello,
3260
- },
3261
- {
3262
- TLSEXT_TYPE_quic_transport_parameters_legacy,
3263
- ext_quic_transport_params_add_clienthello_legacy,
3264
- ext_quic_transport_params_parse_serverhello_legacy,
3265
- ext_quic_transport_params_parse_clienthello_legacy,
3266
- ext_quic_transport_params_add_serverhello_legacy,
3267
- },
3268
- {
3269
- TLSEXT_TYPE_cert_compression,
3270
- cert_compression_add_clienthello,
3271
- cert_compression_parse_serverhello,
3272
- cert_compression_parse_clienthello,
3273
- cert_compression_add_serverhello,
3274
- },
3275
- {
3276
- TLSEXT_TYPE_delegated_credential,
3277
- ext_delegated_credential_add_clienthello,
3278
- forbid_parse_serverhello,
3279
- ext_delegated_credential_parse_clienthello,
3280
- dont_add_serverhello,
3281
- },
3282
- {
3283
- TLSEXT_TYPE_application_settings,
3284
- ext_alps_add_clienthello,
3285
- ext_alps_parse_serverhello,
3286
- // ALPS is negotiated late in |ssl_negotiate_alpn|.
3287
- ignore_parse_clienthello,
3288
- ext_alps_add_serverhello,
3289
- },
3290
- {
3291
- TLSEXT_TYPE_application_settings_old,
3292
- ext_alps_add_clienthello_old,
3293
- ext_alps_parse_serverhello_old,
3294
- // ALPS is negotiated late in |ssl_negotiate_alpn|.
3295
- ignore_parse_clienthello,
3296
- ext_alps_add_serverhello_old,
3297
- },
3494
+ {
3495
+ TLSEXT_TYPE_server_name,
3496
+ ext_sni_add_clienthello,
3497
+ ext_sni_parse_serverhello,
3498
+ ext_sni_parse_clienthello,
3499
+ ext_sni_add_serverhello,
3500
+ },
3501
+ {
3502
+ TLSEXT_TYPE_encrypted_client_hello,
3503
+ ext_ech_add_clienthello,
3504
+ ext_ech_parse_serverhello,
3505
+ ext_ech_parse_clienthello,
3506
+ ext_ech_add_serverhello,
3507
+ },
3508
+ {
3509
+ TLSEXT_TYPE_extended_master_secret,
3510
+ ext_ems_add_clienthello,
3511
+ ext_ems_parse_serverhello,
3512
+ ext_ems_parse_clienthello,
3513
+ ext_ems_add_serverhello,
3514
+ },
3515
+ {
3516
+ TLSEXT_TYPE_renegotiate,
3517
+ ext_ri_add_clienthello,
3518
+ ext_ri_parse_serverhello,
3519
+ ext_ri_parse_clienthello,
3520
+ ext_ri_add_serverhello,
3521
+ },
3522
+ {
3523
+ TLSEXT_TYPE_supported_groups,
3524
+ ext_supported_groups_add_clienthello,
3525
+ ext_supported_groups_parse_serverhello,
3526
+ ext_supported_groups_parse_clienthello,
3527
+ dont_add_serverhello,
3528
+ },
3529
+ {
3530
+ TLSEXT_TYPE_ec_point_formats,
3531
+ ext_ec_point_add_clienthello,
3532
+ ext_ec_point_parse_serverhello,
3533
+ ext_ec_point_parse_clienthello,
3534
+ ext_ec_point_add_serverhello,
3535
+ },
3536
+ {
3537
+ TLSEXT_TYPE_session_ticket,
3538
+ ext_ticket_add_clienthello,
3539
+ ext_ticket_parse_serverhello,
3540
+ // Ticket extension client parsing is handled in ssl_session.c
3541
+ ignore_parse_clienthello,
3542
+ ext_ticket_add_serverhello,
3543
+ },
3544
+ {
3545
+ TLSEXT_TYPE_application_layer_protocol_negotiation,
3546
+ ext_alpn_add_clienthello,
3547
+ ext_alpn_parse_serverhello,
3548
+ // ALPN is negotiated late in |ssl_negotiate_alpn|.
3549
+ ignore_parse_clienthello,
3550
+ ext_alpn_add_serverhello,
3551
+ },
3552
+ {
3553
+ TLSEXT_TYPE_status_request,
3554
+ ext_ocsp_add_clienthello,
3555
+ ext_ocsp_parse_serverhello,
3556
+ ext_ocsp_parse_clienthello,
3557
+ ext_ocsp_add_serverhello,
3558
+ },
3559
+ {
3560
+ TLSEXT_TYPE_signature_algorithms,
3561
+ ext_sigalgs_add_clienthello,
3562
+ forbid_parse_serverhello,
3563
+ ext_sigalgs_parse_clienthello,
3564
+ dont_add_serverhello,
3565
+ },
3566
+ {
3567
+ TLSEXT_TYPE_next_proto_neg,
3568
+ ext_npn_add_clienthello,
3569
+ ext_npn_parse_serverhello,
3570
+ ext_npn_parse_clienthello,
3571
+ ext_npn_add_serverhello,
3572
+ },
3573
+ {
3574
+ TLSEXT_TYPE_certificate_timestamp,
3575
+ ext_sct_add_clienthello,
3576
+ ext_sct_parse_serverhello,
3577
+ ext_sct_parse_clienthello,
3578
+ ext_sct_add_serverhello,
3579
+ },
3580
+ {
3581
+ TLSEXT_TYPE_channel_id,
3582
+ ext_channel_id_add_clienthello,
3583
+ ext_channel_id_parse_serverhello,
3584
+ ext_channel_id_parse_clienthello,
3585
+ ext_channel_id_add_serverhello,
3586
+ },
3587
+ {
3588
+ TLSEXT_TYPE_srtp,
3589
+ ext_srtp_add_clienthello,
3590
+ ext_srtp_parse_serverhello,
3591
+ ext_srtp_parse_clienthello,
3592
+ ext_srtp_add_serverhello,
3593
+ },
3594
+ {
3595
+ TLSEXT_TYPE_key_share,
3596
+ ext_key_share_add_clienthello,
3597
+ forbid_parse_serverhello,
3598
+ ignore_parse_clienthello,
3599
+ dont_add_serverhello,
3600
+ },
3601
+ {
3602
+ TLSEXT_TYPE_psk_key_exchange_modes,
3603
+ ext_psk_key_exchange_modes_add_clienthello,
3604
+ forbid_parse_serverhello,
3605
+ ext_psk_key_exchange_modes_parse_clienthello,
3606
+ dont_add_serverhello,
3607
+ },
3608
+ {
3609
+ TLSEXT_TYPE_early_data,
3610
+ ext_early_data_add_clienthello,
3611
+ ext_early_data_parse_serverhello,
3612
+ ext_early_data_parse_clienthello,
3613
+ ext_early_data_add_serverhello,
3614
+ },
3615
+ {
3616
+ TLSEXT_TYPE_supported_versions,
3617
+ ext_supported_versions_add_clienthello,
3618
+ forbid_parse_serverhello,
3619
+ ignore_parse_clienthello,
3620
+ dont_add_serverhello,
3621
+ },
3622
+ {
3623
+ TLSEXT_TYPE_cookie,
3624
+ ext_cookie_add_clienthello,
3625
+ forbid_parse_serverhello,
3626
+ ignore_parse_clienthello,
3627
+ dont_add_serverhello,
3628
+ },
3629
+ {
3630
+ TLSEXT_TYPE_quic_transport_parameters,
3631
+ ext_quic_transport_params_add_clienthello,
3632
+ ext_quic_transport_params_parse_serverhello,
3633
+ ext_quic_transport_params_parse_clienthello,
3634
+ ext_quic_transport_params_add_serverhello,
3635
+ },
3636
+ {
3637
+ TLSEXT_TYPE_quic_transport_parameters_legacy,
3638
+ ext_quic_transport_params_add_clienthello_legacy,
3639
+ ext_quic_transport_params_parse_serverhello_legacy,
3640
+ ext_quic_transport_params_parse_clienthello_legacy,
3641
+ ext_quic_transport_params_add_serverhello_legacy,
3642
+ },
3643
+ {
3644
+ TLSEXT_TYPE_cert_compression,
3645
+ cert_compression_add_clienthello,
3646
+ cert_compression_parse_serverhello,
3647
+ cert_compression_parse_clienthello,
3648
+ cert_compression_add_serverhello,
3649
+ },
3650
+ {
3651
+ TLSEXT_TYPE_delegated_credential,
3652
+ ext_delegated_credential_add_clienthello,
3653
+ forbid_parse_serverhello,
3654
+ ext_delegated_credential_parse_clienthello,
3655
+ dont_add_serverhello,
3656
+ },
3657
+ {
3658
+ TLSEXT_TYPE_application_settings,
3659
+ ext_alps_add_clienthello,
3660
+ ext_alps_parse_serverhello,
3661
+ // ALPS is negotiated late in |ssl_negotiate_alpn|.
3662
+ ignore_parse_clienthello,
3663
+ ext_alps_add_serverhello,
3664
+ },
3665
+ {
3666
+ TLSEXT_TYPE_application_settings_old,
3667
+ ext_alps_add_clienthello_old,
3668
+ ext_alps_parse_serverhello_old,
3669
+ // ALPS is negotiated late in |ssl_negotiate_alpn|.
3670
+ ignore_parse_clienthello,
3671
+ ext_alps_add_serverhello_old,
3672
+ },
3673
+ {
3674
+ TLSEXT_TYPE_certificate_authorities,
3675
+ ext_certificate_authorities_add_clienthello,
3676
+ forbid_parse_serverhello,
3677
+ ext_certificate_authorities_parse_clienthello,
3678
+ dont_add_serverhello,
3679
+ },
3680
+ {
3681
+ TLSEXT_TYPE_pake,
3682
+ ext_pake_add_clienthello,
3683
+ // This extension is unencrypted and so adding and parsing it from the
3684
+ // ServerHello is handled elsewhere.
3685
+ forbid_parse_serverhello,
3686
+ ext_pake_parse_clienthello,
3687
+ dont_add_serverhello,
3688
+ },
3689
+ {
3690
+ TLSEXT_TYPE_trust_anchors,
3691
+ ext_trust_anchors_add_clienthello,
3692
+ ext_trust_anchors_parse_serverhello,
3693
+ ext_trust_anchors_parse_clienthello,
3694
+ ext_trust_anchors_add_serverhello,
3695
+ },
3298
3696
  };
3299
3697
 
3300
3698
  #define kNumExtensions (sizeof(kExtensions) / sizeof(struct tls_extension))
@@ -3316,7 +3714,7 @@ bool ssl_setup_extension_permutation(SSL_HANDSHAKE *hs) {
3316
3714
  uint32_t seeds[kNumExtensions - 1];
3317
3715
  Array<uint8_t> permutation;
3318
3716
  if (!RAND_bytes(reinterpret_cast<uint8_t *>(seeds), sizeof(seeds)) ||
3319
- !permutation.Init(kNumExtensions)) {
3717
+ !permutation.InitForOverwrite(kNumExtensions)) {
3320
3718
  return false;
3321
3719
  }
3322
3720
  for (size_t i = 0; i < kNumExtensions; i++) {
@@ -3527,7 +3925,7 @@ bool ssl_add_clienthello_tlsext(SSL_HANDSHAKE *hs, CBB *out, CBB *out_encoded,
3527
3925
  // bugs. We also apply this padding to ClientHelloOuter, to keep the wire
3528
3926
  // images aligned.
3529
3927
  size_t psk_extension_len = ext_pre_shared_key_clienthello_length(hs, type);
3530
- if (!SSL_is_dtls(ssl) && !ssl->quic_method &&
3928
+ if (!SSL_is_dtls(ssl) && !SSL_is_quic(ssl) &&
3531
3929
  !ssl->s3->used_hello_retry_request) {
3532
3930
  header_len +=
3533
3931
  SSL3_HM_HEADER_LENGTH + 2 + CBB_len(&extensions) + psk_extension_len;
@@ -3609,7 +4007,7 @@ bool ssl_add_serverhello_tlsext(SSL_HANDSHAKE *hs, CBB *out) {
3609
4007
  }
3610
4008
 
3611
4009
  // Discard empty extensions blocks before TLS 1.3.
3612
- if (ssl_protocol_version(ssl) < TLS1_3_VERSION &&
4010
+ if (ssl_protocol_version(ssl) < TLS1_3_VERSION && //
3613
4011
  CBB_len(&extensions) == 0) {
3614
4012
  CBB_discard_child(out);
3615
4013
  }
@@ -3741,7 +4139,7 @@ static bool ssl_scan_serverhello_tlsext(SSL_HANDSHAKE *hs, const CBS *cbs,
3741
4139
  if (!(hs->extensions.sent & (1u << ext_index))) {
3742
4140
  // If the extension was never sent then it is illegal.
3743
4141
  OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_EXTENSION);
3744
- ERR_add_error_dataf("extension :%u", (unsigned)type);
4142
+ ERR_add_error_dataf("extension %u", (unsigned)type);
3745
4143
  *out_alert = SSL_AD_UNSUPPORTED_EXTENSION;
3746
4144
  return false;
3747
4145
  }
@@ -3864,9 +4262,9 @@ static enum ssl_ticket_aead_result_t decrypt_ticket_with_cipher_ctx(
3864
4262
  HMAC_Final(hmac_ctx, mac, NULL);
3865
4263
  assert(mac_len == ticket_mac.size());
3866
4264
  bool mac_ok = CRYPTO_memcmp(mac, ticket_mac.data(), mac_len) == 0;
3867
- #if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
3868
- mac_ok = true;
3869
- #endif
4265
+ if (CRYPTO_fuzzer_mode_enabled()) {
4266
+ mac_ok = true;
4267
+ }
3870
4268
  if (!mac_ok) {
3871
4269
  return ssl_ticket_aead_ignore_ticket;
3872
4270
  }
@@ -3874,26 +4272,26 @@ static enum ssl_ticket_aead_result_t decrypt_ticket_with_cipher_ctx(
3874
4272
  // Decrypt the session data.
3875
4273
  auto ciphertext = ticket.subspan(SSL_TICKET_KEY_NAME_LEN + iv_len);
3876
4274
  Array<uint8_t> plaintext;
3877
- #if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
3878
- if (!plaintext.CopyFrom(ciphertext)) {
3879
- return ssl_ticket_aead_error;
3880
- }
3881
- #else
3882
- if (ciphertext.size() >= INT_MAX) {
3883
- return ssl_ticket_aead_ignore_ticket;
3884
- }
3885
- if (!plaintext.Init(ciphertext.size())) {
3886
- return ssl_ticket_aead_error;
3887
- }
3888
- int len1, len2;
3889
- if (!EVP_DecryptUpdate(cipher_ctx, plaintext.data(), &len1, ciphertext.data(),
3890
- (int)ciphertext.size()) ||
3891
- !EVP_DecryptFinal_ex(cipher_ctx, plaintext.data() + len1, &len2)) {
3892
- ERR_clear_error();
3893
- return ssl_ticket_aead_ignore_ticket;
4275
+ if (CRYPTO_fuzzer_mode_enabled()) {
4276
+ if (!plaintext.CopyFrom(ciphertext)) {
4277
+ return ssl_ticket_aead_error;
4278
+ }
4279
+ } else {
4280
+ if (ciphertext.size() >= INT_MAX) {
4281
+ return ssl_ticket_aead_ignore_ticket;
4282
+ }
4283
+ if (!plaintext.InitForOverwrite(ciphertext.size())) {
4284
+ return ssl_ticket_aead_error;
4285
+ }
4286
+ int len1, len2;
4287
+ if (!EVP_DecryptUpdate(cipher_ctx, plaintext.data(), &len1,
4288
+ ciphertext.data(), (int)ciphertext.size()) ||
4289
+ !EVP_DecryptFinal_ex(cipher_ctx, plaintext.data() + len1, &len2)) {
4290
+ ERR_clear_error();
4291
+ return ssl_ticket_aead_ignore_ticket;
4292
+ }
4293
+ plaintext.Shrink(static_cast<size_t>(len1) + len2);
3894
4294
  }
3895
- plaintext.Shrink(static_cast<size_t>(len1) + len2);
3896
- #endif
3897
4295
 
3898
4296
  *out = std::move(plaintext);
3899
4297
  return ssl_ticket_aead_success;
@@ -3957,8 +4355,8 @@ static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_ticket_keys(
3957
4355
  }
3958
4356
  if (!HMAC_Init_ex(hmac_ctx.get(), key->hmac_key, sizeof(key->hmac_key),
3959
4357
  tlsext_tick_md(), NULL) ||
3960
- !EVP_DecryptInit_ex(cipher_ctx.get(), cipher, NULL,
3961
- key->aes_key, iv.data())) {
4358
+ !EVP_DecryptInit_ex(cipher_ctx.get(), cipher, NULL, key->aes_key,
4359
+ iv.data())) {
3962
4360
  return ssl_ticket_aead_error;
3963
4361
  }
3964
4362
  }
@@ -3970,7 +4368,7 @@ static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_method(
3970
4368
  SSL_HANDSHAKE *hs, Array<uint8_t> *out, bool *out_renew_ticket,
3971
4369
  Span<const uint8_t> ticket) {
3972
4370
  Array<uint8_t> plaintext;
3973
- if (!plaintext.Init(ticket.size())) {
4371
+ if (!plaintext.InitForOverwrite(ticket.size())) {
3974
4372
  return ssl_ticket_aead_error;
3975
4373
  }
3976
4374
 
@@ -4079,9 +4477,8 @@ enum ssl_ticket_aead_result_t ssl_process_ticket(
4079
4477
  // Envoy's tests expect the session to have a session ID that matches the
4080
4478
  // placeholder used by the client. It's unclear whether this is a good idea,
4081
4479
  // but we maintain it for now.
4082
- SHA256(ticket.data(), ticket.size(), session->session_id);
4083
- // Other consumers may expect a non-empty session ID to indicate resumption.
4084
- session->session_id_length = SHA256_DIGEST_LENGTH;
4480
+ session->session_id.ResizeForOverwrite(SHA256_DIGEST_LENGTH);
4481
+ SHA256(ticket.data(), ticket.size(), session->session_id.data());
4085
4482
 
4086
4483
  *out_session = std::move(session);
4087
4484
  return ssl_ticket_aead_success;
@@ -4147,9 +4544,8 @@ bool tls1_choose_signature_algorithm(SSL_HANDSHAKE *hs,
4147
4544
  }
4148
4545
  }
4149
4546
 
4150
- Span<const uint16_t> sigalgs = cred->sigalgs.empty()
4151
- ? MakeConstSpan(kSignSignatureAlgorithms)
4152
- : cred->sigalgs;
4547
+ Span<const uint16_t> sigalgs =
4548
+ cred->sigalgs.empty() ? Span(kSignSignatureAlgorithms) : cred->sigalgs;
4153
4549
  for (uint16_t sigalg : sigalgs) {
4154
4550
  if (!ssl_pkey_supports_algorithm(ssl, cred->pubkey.get(), sigalg,
4155
4551
  /*is_verify=*/false)) {
@@ -4173,10 +4569,10 @@ bool tls1_verify_channel_id(SSL_HANDSHAKE *hs, const SSLMessage &msg) {
4173
4569
  // extensions, but the only one that can be present is Channel ID.
4174
4570
  uint16_t extension_type;
4175
4571
  CBS channel_id = msg.body, extension;
4176
- if (!CBS_get_u16(&channel_id, &extension_type) ||
4177
- !CBS_get_u16_length_prefixed(&channel_id, &extension) ||
4178
- CBS_len(&channel_id) != 0 ||
4179
- extension_type != TLSEXT_TYPE_channel_id ||
4572
+ if (!CBS_get_u16(&channel_id, &extension_type) || //
4573
+ !CBS_get_u16_length_prefixed(&channel_id, &extension) || //
4574
+ CBS_len(&channel_id) != 0 || //
4575
+ extension_type != TLSEXT_TYPE_channel_id || //
4180
4576
  CBS_len(&extension) != TLSEXT_CHANNEL_ID_SIZE) {
4181
4577
  OPENSSL_PUT_ERROR(SSL, SSL_R_DECODE_ERROR);
4182
4578
  ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
@@ -4215,10 +4611,10 @@ bool tls1_verify_channel_id(SSL_HANDSHAKE *hs, const SSLMessage &msg) {
4215
4611
  }
4216
4612
 
4217
4613
  bool sig_ok = ECDSA_do_verify(digest, digest_len, sig.get(), key.get());
4218
- #if defined(BORINGSSL_UNSAFE_FUZZER_MODE)
4219
- sig_ok = true;
4220
- ERR_clear_error();
4221
- #endif
4614
+ if (CRYPTO_fuzzer_mode_enabled()) {
4615
+ sig_ok = true;
4616
+ ERR_clear_error();
4617
+ }
4222
4618
  if (!sig_ok) {
4223
4619
  OPENSSL_PUT_ERROR(SSL, SSL_R_CHANNEL_ID_SIGNATURE_INVALID);
4224
4620
  ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_DECRYPT_ERROR);
@@ -4257,12 +4653,12 @@ bool tls1_write_channel_id(SSL_HANDSHAKE *hs, CBB *cbb) {
4257
4653
  }
4258
4654
 
4259
4655
  CBB child;
4260
- if (!CBB_add_u16(cbb, TLSEXT_TYPE_channel_id) ||
4261
- !CBB_add_u16_length_prefixed(cbb, &child) ||
4262
- !BN_bn2cbb_padded(&child, 32, x.get()) ||
4263
- !BN_bn2cbb_padded(&child, 32, y.get()) ||
4264
- !BN_bn2cbb_padded(&child, 32, sig->r) ||
4265
- !BN_bn2cbb_padded(&child, 32, sig->s) ||
4656
+ if (!CBB_add_u16(cbb, TLSEXT_TYPE_channel_id) || //
4657
+ !CBB_add_u16_length_prefixed(cbb, &child) || //
4658
+ !BN_bn2cbb_padded(&child, 32, x.get()) || //
4659
+ !BN_bn2cbb_padded(&child, 32, y.get()) || //
4660
+ !BN_bn2cbb_padded(&child, 32, sig->r) || //
4661
+ !BN_bn2cbb_padded(&child, 32, sig->s) || //
4266
4662
  !CBB_flush(cbb)) {
4267
4663
  return false;
4268
4664
  }
@@ -4292,12 +4688,12 @@ bool tls1_channel_id_hash(SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len) {
4292
4688
  if (ssl->session != NULL) {
4293
4689
  static const char kResumptionMagic[] = "Resumption";
4294
4690
  SHA256_Update(&ctx, kResumptionMagic, sizeof(kResumptionMagic));
4295
- if (ssl->session->original_handshake_hash_len == 0) {
4691
+ if (ssl->session->original_handshake_hash.empty()) {
4296
4692
  OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
4297
4693
  return false;
4298
4694
  }
4299
- SHA256_Update(&ctx, ssl->session->original_handshake_hash,
4300
- ssl->session->original_handshake_hash_len);
4695
+ SHA256_Update(&ctx, ssl->session->original_handshake_hash.data(),
4696
+ ssl->session->original_handshake_hash.size());
4301
4697
  }
4302
4698
 
4303
4699
  uint8_t hs_hash[EVP_MAX_MD_SIZE];
@@ -4320,20 +4716,14 @@ bool tls1_record_handshake_hashes_for_channel_id(SSL_HANDSHAKE *hs) {
4320
4716
  return false;
4321
4717
  }
4322
4718
 
4323
- static_assert(
4324
- sizeof(hs->new_session->original_handshake_hash) == EVP_MAX_MD_SIZE,
4325
- "original_handshake_hash is too small");
4326
-
4327
4719
  size_t digest_len;
4328
- if (!hs->transcript.GetHash(hs->new_session->original_handshake_hash,
4720
+ hs->new_session->original_handshake_hash.ResizeForOverwrite(
4721
+ hs->transcript.DigestLen());
4722
+ if (!hs->transcript.GetHash(hs->new_session->original_handshake_hash.data(),
4329
4723
  &digest_len)) {
4330
4724
  return false;
4331
4725
  }
4332
-
4333
- static_assert(EVP_MAX_MD_SIZE <= 0xff,
4334
- "EVP_MAX_MD_SIZE does not fit in uint8_t");
4335
- hs->new_session->original_handshake_hash_len = (uint8_t)digest_len;
4336
-
4726
+ assert(digest_len == hs->new_session->original_handshake_hash.size());
4337
4727
  return true;
4338
4728
  }
4339
4729
 
@@ -4343,16 +4733,14 @@ bool ssl_is_sct_list_valid(const CBS *contents) {
4343
4733
  // of the SCTs may be empty.
4344
4734
  CBS copy = *contents;
4345
4735
  CBS sct_list;
4346
- if (!CBS_get_u16_length_prefixed(&copy, &sct_list) ||
4347
- CBS_len(&copy) != 0 ||
4736
+ if (!CBS_get_u16_length_prefixed(&copy, &sct_list) || CBS_len(&copy) != 0 ||
4348
4737
  CBS_len(&sct_list) == 0) {
4349
4738
  return false;
4350
4739
  }
4351
4740
 
4352
4741
  while (CBS_len(&sct_list) > 0) {
4353
4742
  CBS sct;
4354
- if (!CBS_get_u16_length_prefixed(&sct_list, &sct) ||
4355
- CBS_len(&sct) == 0) {
4743
+ if (!CBS_get_u16_length_prefixed(&sct_list, &sct) || CBS_len(&sct) == 0) {
4356
4744
  return false;
4357
4745
  }
4358
4746
  }
@@ -4364,6 +4752,19 @@ BSSL_NAMESPACE_END
4364
4752
 
4365
4753
  using namespace bssl;
4366
4754
 
4755
+ int SSL_parse_client_hello(const SSL *ssl, SSL_CLIENT_HELLO *out,
4756
+ const uint8_t *in, size_t len) {
4757
+ CBS cbs = Span(in, len);
4758
+ if (!ssl_parse_client_hello_with_trailing_data(ssl, &cbs, out)) {
4759
+ return 0;
4760
+ }
4761
+ if (CBS_len(&cbs) != 0) {
4762
+ OPENSSL_PUT_ERROR(SSL, SSL_R_CLIENTHELLO_PARSE_FAILED);
4763
+ return 0;
4764
+ }
4765
+ return 1;
4766
+ }
4767
+
4367
4768
  int SSL_early_callback_ctx_extension_get(const SSL_CLIENT_HELLO *client_hello,
4368
4769
  uint16_t extension_type,
4369
4770
  const uint8_t **out_data,