grpc 1.72.0 → 1.73.0

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 (1034) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +23 -6
  3. data/include/grpc/event_engine/event_engine.h +125 -8
  4. data/include/grpc/event_engine/internal/write_event.h +34 -0
  5. data/include/grpc/impl/channel_arg_names.h +17 -9
  6. data/include/grpc/impl/compression_types.h +3 -2
  7. data/include/grpc/impl/slice_type.h +1 -1
  8. data/include/grpc/support/json.h +3 -21
  9. data/include/grpc/support/port_platform.h +8 -5
  10. data/src/core/call/call_filters.h +28 -19
  11. data/src/core/call/call_spine.h +2 -0
  12. data/src/core/call/metadata.h +17 -0
  13. data/src/core/channelz/channel_trace.cc +50 -42
  14. data/src/core/channelz/channel_trace.h +35 -4
  15. data/src/core/channelz/channelz.cc +338 -125
  16. data/src/core/channelz/channelz.h +276 -34
  17. data/src/core/channelz/channelz_registry.cc +322 -117
  18. data/src/core/channelz/channelz_registry.h +179 -21
  19. data/src/core/channelz/ztrace_collector.h +315 -0
  20. data/src/core/client_channel/client_channel.cc +30 -29
  21. data/src/core/client_channel/client_channel_filter.cc +21 -20
  22. data/src/core/client_channel/client_channel_filter.h +0 -2
  23. data/src/core/client_channel/connector.h +0 -3
  24. data/src/core/client_channel/global_subchannel_pool.cc +68 -7
  25. data/src/core/client_channel/global_subchannel_pool.h +37 -4
  26. data/src/core/client_channel/subchannel.cc +7 -9
  27. data/src/core/client_channel/subchannel.h +2 -8
  28. data/src/core/client_channel/subchannel_pool_interface.cc +5 -6
  29. data/src/core/client_channel/subchannel_pool_interface.h +11 -1
  30. data/src/core/config/config_vars.cc +11 -1
  31. data/src/core/config/config_vars.h +8 -0
  32. data/src/core/config/core_configuration.cc +50 -11
  33. data/src/core/config/core_configuration.h +89 -7
  34. data/src/core/credentials/call/external/aws_request_signer.cc +3 -2
  35. data/src/core/credentials/call/external/url_external_account_credentials.cc +2 -2
  36. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +1 -1
  37. data/src/core/credentials/call/jwt/jwt_verifier.cc +4 -4
  38. data/src/core/credentials/call/oauth2/oauth2_credentials.cc +4 -2
  39. data/src/core/credentials/transport/alts/alts_security_connector.cc +9 -8
  40. data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
  41. data/src/core/credentials/transport/ssl/ssl_credentials.cc +2 -2
  42. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +41 -11
  43. data/src/core/credentials/transport/ssl/ssl_security_connector.h +2 -1
  44. data/src/core/credentials/transport/tls/ssl_utils.cc +18 -0
  45. data/src/core/credentials/transport/tls/ssl_utils.h +5 -0
  46. data/src/core/credentials/transport/tls/tls_security_connector.cc +2 -1
  47. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +6 -3
  48. data/src/core/ext/filters/http/message_compress/compression_filter.h +34 -4
  49. data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
  50. data/src/core/ext/filters/http/server/http_server_filter.h +14 -3
  51. data/src/core/ext/transport/chttp2/chttp2_plugin.cc +40 -0
  52. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +11 -112
  53. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +3 -0
  54. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +33 -962
  55. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
  56. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -47
  57. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
  58. data/src/core/ext/transport/chttp2/transport/flow_control.h +18 -0
  59. data/src/core/ext/transport/chttp2/transport/frame.cc +213 -105
  60. data/src/core/ext/transport/chttp2/transport/frame.h +78 -6
  61. data/src/core/ext/transport/chttp2/transport/frame_data.cc +10 -0
  62. data/src/core/ext/transport/chttp2/transport/frame_data.h +2 -0
  63. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -3
  64. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +5 -3
  65. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -0
  66. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -4
  67. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -1
  68. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -1
  69. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -0
  70. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +7 -0
  71. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -0
  72. data/src/core/ext/transport/chttp2/transport/http2_settings.h +26 -0
  73. data/src/core/ext/transport/chttp2/transport/http2_status.h +358 -1
  74. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +252 -0
  75. data/src/core/ext/transport/chttp2/transport/internal.h +29 -5
  76. data/src/core/ext/transport/chttp2/transport/internal_channel_arg_names.h +24 -0
  77. data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -21
  78. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +10 -9
  79. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +6 -0
  80. data/src/core/ext/transport/chttp2/transport/writing.cc +60 -49
  81. data/src/core/ext/transport/inproc/inproc_transport.cc +7 -2
  82. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +6 -2
  83. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +4 -0
  84. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +12 -0
  85. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +12 -22
  86. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +12 -22
  87. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +28 -22
  88. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +12 -0
  89. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +24 -67
  90. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +4 -0
  91. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +4 -0
  92. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +29 -31
  93. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +2 -2
  94. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +12 -0
  95. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +4 -0
  96. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +8 -0
  97. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +4 -0
  98. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +4 -0
  99. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +0 -23
  100. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +8 -0
  101. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +8 -0
  102. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +12 -0
  103. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +20 -0
  104. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +12 -0
  105. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +8 -22
  106. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +0 -23
  107. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +64 -66
  108. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +4 -0
  109. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +12 -0
  110. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +4 -0
  111. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +4 -0
  112. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +4 -95
  113. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +8 -0
  114. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
  115. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +4 -0
  116. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +28 -0
  117. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +4 -0
  118. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +4 -0
  119. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +4 -0
  120. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +12 -0
  121. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +8 -0
  122. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +8 -36
  123. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +4 -0
  124. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +4 -0
  125. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +4 -0
  126. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +4 -0
  127. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +4 -0
  128. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +4 -0
  129. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +4 -0
  130. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +4 -0
  131. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +4 -0
  132. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +8 -0
  133. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +8 -0
  134. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +4 -0
  135. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +4 -0
  136. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +4 -0
  137. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +8 -44
  138. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +12 -40
  139. data/src/core/ext/upb-gen/google/api/http.upb.h +4 -0
  140. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +193 -20
  141. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +59 -21
  142. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +4 -0
  143. data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +4 -22
  144. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +0 -18
  145. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +113 -53
  146. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +20 -14
  147. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +154 -0
  148. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +40 -2
  149. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +4 -0
  150. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +8 -0
  151. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +0 -18
  152. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +0 -36
  153. data/src/core/ext/upb-gen/validate/validate.upb.h +12 -0
  154. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +4 -0
  155. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +0 -18
  156. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +8 -0
  157. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +0 -54
  158. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +20 -22
  159. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +4 -0
  160. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +4 -0
  161. data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +4 -0
  162. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +123 -62
  163. data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +5 -1
  164. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +200 -101
  165. data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +5 -1
  166. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +152 -77
  167. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +5 -1
  168. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +524 -255
  169. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +5 -1
  170. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +44 -23
  171. data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +5 -1
  172. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +66 -34
  173. data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +5 -1
  174. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +54 -28
  175. data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +5 -1
  176. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +46 -25
  177. data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +5 -1
  178. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +47 -25
  179. data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +5 -1
  180. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +256 -126
  181. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +5 -1
  182. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +50 -28
  183. data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +5 -1
  184. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +55 -28
  185. data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +5 -1
  186. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +34 -18
  187. data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +5 -1
  188. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +414 -206
  189. data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -1
  190. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +831 -413
  191. data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -1
  192. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +143 -73
  193. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +5 -1
  194. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +1132 -557
  195. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +5 -1
  196. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +63 -34
  197. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +5 -1
  198. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +255 -127
  199. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +5 -1
  200. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +363 -178
  201. data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +5 -1
  202. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +227 -114
  203. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +5 -1
  204. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +57 -31
  205. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +5 -1
  206. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +596 -295
  207. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +5 -1
  208. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +271 -137
  209. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +5 -1
  210. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +56 -30
  211. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +5 -1
  212. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +45 -25
  213. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +5 -1
  214. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +59 -31
  215. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +5 -1
  216. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +438 -217
  217. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +5 -1
  218. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +441 -221
  219. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +5 -1
  220. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +55 -30
  221. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +5 -1
  222. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +57 -31
  223. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +5 -1
  224. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +619 -303
  225. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +5 -1
  226. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +70 -36
  227. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -1
  228. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +62 -33
  229. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +5 -1
  230. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +47 -25
  231. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +5 -1
  232. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +97 -49
  233. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +5 -1
  234. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +97 -51
  235. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +5 -1
  236. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +51 -27
  237. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +5 -1
  238. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +147 -76
  239. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +5 -1
  240. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +230 -116
  241. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -1
  242. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +277 -138
  243. data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +5 -1
  244. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +48 -26
  245. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +5 -1
  246. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +388 -197
  247. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -1
  248. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +304 -153
  249. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +5 -1
  250. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +173 -90
  251. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +5 -1
  252. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +90 -47
  253. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +5 -1
  254. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +98 -51
  255. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +5 -1
  256. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +196 -99
  257. data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +5 -1
  258. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +237 -118
  259. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +5 -1
  260. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +418 -210
  261. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +5 -1
  262. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +194 -99
  263. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +5 -1
  264. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +2003 -973
  265. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -1
  266. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +101 -53
  267. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +5 -1
  268. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +352 -176
  269. data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +5 -1
  270. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +79 -42
  271. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +5 -1
  272. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +67 -37
  273. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +5 -1
  274. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +63 -34
  275. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +5 -1
  276. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +88 -47
  277. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +5 -1
  278. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +80 -43
  279. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +5 -1
  280. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +53 -29
  281. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +5 -1
  282. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +86 -46
  283. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +5 -1
  284. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +55 -32
  285. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +5 -1
  286. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +91 -49
  287. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +5 -1
  288. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +105 -55
  289. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +5 -1
  290. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +775 -379
  291. data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +5 -1
  292. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +52 -28
  293. data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -1
  294. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +134 -68
  295. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +5 -1
  296. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +189 -96
  297. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +5 -1
  298. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +116 -61
  299. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +5 -1
  300. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +112 -58
  301. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +5 -1
  302. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +160 -82
  303. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -1
  304. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +75 -39
  305. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +5 -1
  306. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +1161 -570
  307. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -1
  308. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +52 -28
  309. data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +5 -1
  310. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +55 -29
  311. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +5 -1
  312. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -26
  313. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +5 -1
  314. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +390 -194
  315. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -1
  316. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +126 -65
  317. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -1
  318. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +498 -246
  319. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -1
  320. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +74 -38
  321. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +5 -1
  322. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +221 -110
  323. data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -1
  324. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +68 -36
  325. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +5 -1
  326. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +378 -187
  327. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +5 -1
  328. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +100 -52
  329. data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +5 -1
  330. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +257 -129
  331. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +5 -1
  332. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +44 -24
  333. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -1
  334. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +68 -35
  335. data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +5 -1
  336. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +38 -20
  337. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +5 -1
  338. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +59 -32
  339. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +5 -1
  340. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +65 -34
  341. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -1
  342. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +72 -38
  343. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +5 -1
  344. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +57 -31
  345. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +5 -1
  346. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +52 -29
  347. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +5 -1
  348. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +51 -28
  349. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +5 -1
  350. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +89 -47
  351. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +5 -1
  352. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +37 -20
  353. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +5 -1
  354. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +89 -47
  355. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +5 -1
  356. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +67 -35
  357. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +5 -1
  358. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +112 -58
  359. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +5 -1
  360. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +110 -56
  361. data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +5 -1
  362. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +123 -62
  363. data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +5 -1
  364. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +59 -31
  365. data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +5 -1
  366. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +30 -16
  367. data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +5 -1
  368. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +143 -72
  369. data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +5 -1
  370. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +61 -32
  371. data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +5 -1
  372. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +51 -27
  373. data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +5 -1
  374. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +85 -45
  375. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +5 -1
  376. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +35 -19
  377. data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +5 -1
  378. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +44 -23
  379. data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +5 -1
  380. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +61 -33
  381. data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +5 -1
  382. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +35 -19
  383. data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +5 -1
  384. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +272 -133
  385. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +5 -1
  386. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +315 -154
  387. data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +5 -1
  388. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +64 -33
  389. data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +5 -1
  390. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +35 -19
  391. data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +5 -1
  392. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +26 -15
  393. data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +5 -1
  394. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +1106 -508
  395. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +10 -1
  396. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +28 -16
  397. data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +5 -1
  398. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +23 -13
  399. data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +5 -1
  400. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +69 -35
  401. data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +5 -1
  402. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +29 -16
  403. data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +5 -1
  404. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +51 -26
  405. data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +5 -1
  406. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +32 -17
  407. data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +5 -1
  408. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +161 -79
  409. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +5 -1
  410. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +84 -42
  411. data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +5 -1
  412. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +48 -26
  413. data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +5 -1
  414. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +26 -14
  415. data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +5 -1
  416. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +50 -26
  417. data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +5 -1
  418. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +36 -19
  419. data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +5 -1
  420. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +538 -261
  421. data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +5 -1
  422. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +86 -43
  423. data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +5 -1
  424. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +49 -26
  425. data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +5 -1
  426. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +27 -15
  427. data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +5 -1
  428. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +87 -44
  429. data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +5 -1
  430. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +37 -20
  431. data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +5 -1
  432. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +30 -17
  433. data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +5 -1
  434. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +41 -23
  435. data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +5 -1
  436. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +62 -33
  437. data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +5 -1
  438. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +36 -19
  439. data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +5 -1
  440. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +36 -20
  441. data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +5 -1
  442. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +42 -23
  443. data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +5 -1
  444. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +76 -39
  445. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +5 -1
  446. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +45 -24
  447. data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +5 -1
  448. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +41 -23
  449. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +5 -1
  450. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +53 -29
  451. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +5 -1
  452. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +29 -16
  453. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +5 -1
  454. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +58 -32
  455. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +5 -1
  456. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +207 -103
  457. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +5 -1
  458. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +95 -49
  459. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +5 -1
  460. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +38 -20
  461. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +5 -1
  462. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +60 -31
  463. data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +5 -1
  464. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +67 -36
  465. data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +5 -1
  466. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +31 -17
  467. data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +5 -1
  468. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +31 -17
  469. data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +5 -1
  470. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +7 -22
  471. data/src/core/handshaker/security/legacy_secure_endpoint.cc +596 -0
  472. data/src/core/handshaker/security/secure_endpoint.cc +769 -312
  473. data/src/core/handshaker/security/secure_endpoint.h +17 -0
  474. data/src/core/handshaker/security/security_handshaker.cc +3 -3
  475. data/src/core/lib/address_utils/sockaddr_utils.cc +5 -5
  476. data/src/core/lib/channel/channel_args.h +4 -0
  477. data/src/core/lib/channel/channel_stack.cc +29 -0
  478. data/src/core/lib/channel/channel_stack.h +9 -0
  479. data/src/core/lib/channel/promise_based_filter.h +707 -299
  480. data/src/core/lib/debug/trace_flags.cc +2 -2
  481. data/src/core/lib/debug/trace_flags.h +1 -1
  482. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +6 -2
  483. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +4 -4
  484. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +14 -6
  485. data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -1
  486. data/src/core/lib/event_engine/extensions/blocking_dns.h +46 -0
  487. data/src/core/lib/event_engine/extensions/channelz.h +62 -0
  488. data/src/core/lib/event_engine/extensions/tcp_trace.h +2 -2
  489. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +4 -7
  490. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +3 -0
  491. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +6 -7
  492. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +28 -22
  493. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +22 -0
  494. data/src/core/lib/event_engine/posix_engine/posix_engine.h +15 -15
  495. data/src/core/lib/event_engine/query_extensions.h +10 -21
  496. data/src/core/lib/event_engine/tcp_socket_utils.cc +10 -9
  497. data/src/core/lib/event_engine/utils.cc +34 -0
  498. data/src/core/lib/event_engine/utils.h +3 -0
  499. data/src/core/lib/event_engine/windows/windows_endpoint.cc +2 -2
  500. data/src/core/lib/event_engine/windows/windows_endpoint.h +9 -2
  501. data/src/core/lib/experiments/experiments.cc +198 -51
  502. data/src/core/lib/experiments/experiments.h +78 -35
  503. data/src/core/lib/iomgr/combiner.cc +3 -2
  504. data/src/core/lib/iomgr/ev_poll_posix.cc +4 -0
  505. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +11 -8
  506. data/src/core/lib/iomgr/fork_posix.cc +0 -7
  507. data/src/core/lib/iomgr/iomgr.cc +0 -3
  508. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +3 -0
  509. data/src/core/lib/iomgr/resolve_address_posix.cc +37 -47
  510. data/src/core/lib/iomgr/resolve_address_posix.h +15 -0
  511. data/src/core/lib/iomgr/resolve_address_windows.cc +22 -45
  512. data/src/core/lib/iomgr/resolve_address_windows.h +15 -2
  513. data/src/core/lib/iomgr/tcp_client_posix.cc +14 -6
  514. data/src/core/lib/iomgr/tcp_posix.cc +14 -12
  515. data/src/core/lib/iomgr/tcp_server_windows.cc +14 -2
  516. data/src/core/lib/promise/detail/promise_like.h +24 -0
  517. data/src/core/lib/promise/detail/seq_state.h +741 -0
  518. data/src/core/lib/promise/map.h +22 -5
  519. data/src/core/lib/promise/promise.h +2 -0
  520. data/src/core/lib/promise/seq.h +2 -0
  521. data/src/core/lib/promise/sleep.cc +6 -3
  522. data/src/core/lib/promise/try_seq.h +2 -0
  523. data/src/core/lib/resource_quota/memory_quota.cc +9 -0
  524. data/src/core/lib/resource_quota/memory_quota.h +1 -3
  525. data/src/core/lib/slice/slice_buffer.h +6 -0
  526. data/src/core/lib/surface/call.cc +4 -0
  527. data/src/core/lib/surface/channel_create.cc +61 -1
  528. data/src/core/lib/surface/init.cc +2 -2
  529. data/src/core/lib/surface/version.cc +2 -2
  530. data/src/core/lib/transport/status_conversion.cc +7 -34
  531. data/src/core/lib/transport/transport.cc +2 -2
  532. data/src/core/lib/transport/transport.h +3 -0
  533. data/src/core/load_balancing/backend_metric_parser.cc +12 -18
  534. data/src/core/load_balancing/grpclb/grpclb.cc +2 -2
  535. data/src/core/load_balancing/health_check_client.cc +2 -4
  536. data/src/core/load_balancing/oob_backend_metric.cc +2 -4
  537. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +4 -3
  538. data/src/core/load_balancing/pick_first/pick_first.cc +3 -3
  539. data/src/core/load_balancing/rls/rls.cc +6 -5
  540. data/src/core/load_balancing/round_robin/round_robin.cc +2 -3
  541. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +4 -4
  542. data/src/core/load_balancing/weighted_target/weighted_target.cc +3 -9
  543. data/src/core/load_balancing/xds/xds_override_host.cc +55 -34
  544. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  545. data/src/core/resolver/sockaddr/sockaddr_resolver.cc +2 -1
  546. data/src/core/resolver/xds/xds_resolver.cc +2 -1
  547. data/src/core/server/add_port.cc +87 -0
  548. data/src/core/server/server.cc +48 -53
  549. data/src/core/server/server.h +3 -5
  550. data/src/core/telemetry/call_tracer.cc +2 -2
  551. data/src/core/telemetry/call_tracer.h +1 -1
  552. data/src/core/{ext/transport/chttp2/transport → telemetry}/context_list_entry.h +3 -3
  553. data/src/core/telemetry/default_tcp_tracer.cc +26 -0
  554. data/src/core/telemetry/default_tcp_tracer.h +44 -0
  555. data/src/core/telemetry/stats.h +0 -5
  556. data/src/core/telemetry/stats_data.cc +376 -334
  557. data/src/core/telemetry/stats_data.h +260 -166
  558. data/src/core/telemetry/tcp_tracer.cc +38 -0
  559. data/src/core/telemetry/tcp_tracer.h +14 -16
  560. data/src/core/transport/auth_context.cc +0 -1
  561. data/src/core/transport/auth_context.h +0 -1
  562. data/src/core/transport/endpoint_transport.h +90 -0
  563. data/src/core/transport/endpoint_transport_client_channel_factory.cc +61 -0
  564. data/src/core/transport/endpoint_transport_client_channel_factory.h +57 -0
  565. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +33 -1
  566. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +3 -1
  567. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +76 -22
  568. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +8 -2
  569. data/src/core/tsi/ssl_transport_security.cc +189 -71
  570. data/src/core/tsi/ssl_transport_security.h +6 -1
  571. data/src/core/tsi/transport_security.h +3 -0
  572. data/src/core/tsi/transport_security_grpc.h +7 -3
  573. data/src/core/tsi/transport_security_interface.h +30 -25
  574. data/src/core/util/backoff.cc +7 -14
  575. data/src/core/util/backoff.h +0 -1
  576. data/src/core/util/dual_ref_counted.h +48 -0
  577. data/src/core/util/function_signature.h +66 -0
  578. data/src/core/util/gcp_metadata_query.cc +3 -2
  579. data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
  580. data/src/core/util/json/json_object_loader.h +3 -3
  581. data/src/core/util/latent_see.cc +28 -2
  582. data/src/core/util/latent_see.h +11 -23
  583. data/src/core/util/linux/env.cc +3 -1
  584. data/src/core/util/ref_counted_ptr.h +26 -0
  585. data/src/core/util/shared_bit_gen.cc +21 -0
  586. data/src/core/util/shared_bit_gen.h +44 -0
  587. data/src/core/util/single_set_ptr.h +35 -4
  588. data/src/core/util/uri.cc +75 -17
  589. data/src/core/util/uri.h +13 -8
  590. data/src/core/xds/grpc/xds_common_types_parser.cc +1 -9
  591. data/src/core/xds/grpc/xds_http_filter_registry.cc +1 -3
  592. data/src/core/xds/grpc/xds_http_rbac_filter.cc +10 -17
  593. data/src/core/xds/grpc/xds_metadata_parser.cc +40 -64
  594. data/src/core/xds/grpc/xds_metadata_parser.h +0 -2
  595. data/src/core/xds/grpc/xds_route_config_parser.cc +55 -77
  596. data/src/core/xds/xds_client/xds_client.cc +1 -1
  597. data/src/ruby/ext/grpc/extconf.rb +1 -1
  598. data/src/ruby/lib/grpc/version.rb +1 -1
  599. data/src/ruby/spec/generic/client_stub_spec.rb +2 -6
  600. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  601. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +2 -2
  602. data/third_party/abseil-cpp/absl/algorithm/container.h +79 -48
  603. data/third_party/abseil-cpp/absl/base/attributes.h +66 -16
  604. data/third_party/abseil-cpp/absl/base/call_once.h +8 -5
  605. data/third_party/abseil-cpp/absl/base/config.h +4 -4
  606. data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +17 -56
  607. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +1 -1
  608. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -0
  609. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +5 -1
  610. data/third_party/abseil-cpp/absl/base/internal/tracing.cc +39 -0
  611. data/third_party/abseil-cpp/absl/base/internal/tracing.h +81 -0
  612. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -10
  613. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -0
  614. data/third_party/abseil-cpp/absl/base/macros.h +35 -4
  615. data/third_party/abseil-cpp/absl/base/nullability.h +72 -16
  616. data/third_party/abseil-cpp/absl/base/optimization.h +8 -12
  617. data/third_party/abseil-cpp/absl/base/options.h +5 -2
  618. data/third_party/abseil-cpp/absl/base/policy_checks.h +2 -0
  619. data/third_party/abseil-cpp/absl/container/btree_map.h +889 -0
  620. data/third_party/abseil-cpp/absl/container/btree_set.h +824 -0
  621. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -1
  622. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +17 -3
  623. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +17 -3
  624. data/third_party/abseil-cpp/absl/container/inlined_vector.h +2 -1
  625. data/third_party/abseil-cpp/absl/container/internal/btree.h +3046 -0
  626. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +763 -0
  627. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +9 -0
  628. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +1 -0
  629. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +4 -2
  630. data/third_party/abseil-cpp/absl/container/internal/layout.h +1 -1
  631. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +142 -114
  632. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +397 -231
  633. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +56 -0
  634. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +21 -7
  635. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +4 -2
  636. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +1 -1
  637. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +17 -1
  638. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +7 -0
  639. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +9 -6
  640. data/third_party/abseil-cpp/absl/debugging/leak_check.cc +73 -0
  641. data/third_party/abseil-cpp/absl/debugging/leak_check.h +150 -0
  642. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +3 -2
  643. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +48 -9
  644. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +1 -0
  645. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +7 -0
  646. data/third_party/abseil-cpp/absl/flags/flag.h +14 -12
  647. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +12 -4
  648. data/third_party/abseil-cpp/absl/flags/internal/flag.h +16 -5
  649. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +4 -0
  650. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +3 -0
  651. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +13 -12
  652. data/third_party/abseil-cpp/absl/flags/usage_config.cc +9 -4
  653. data/third_party/abseil-cpp/absl/hash/hash.h +26 -2
  654. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +17 -17
  655. data/third_party/abseil-cpp/absl/hash/internal/hash.h +196 -91
  656. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +2 -4
  657. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +2 -0
  658. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +27 -22
  659. data/third_party/abseil-cpp/absl/log/internal/check_op.h +102 -80
  660. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +90 -38
  661. data/third_party/abseil-cpp/absl/log/internal/log_message.h +80 -48
  662. data/third_party/abseil-cpp/absl/log/internal/proto.cc +0 -3
  663. data/third_party/abseil-cpp/absl/log/internal/proto.h +25 -15
  664. data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
  665. data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +107 -0
  666. data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +8 -1
  667. data/third_party/abseil-cpp/absl/log/log_sink_registry.h +5 -2
  668. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +2 -0
  669. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -6
  670. data/third_party/abseil-cpp/absl/numeric/int128.h +15 -3
  671. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +6 -4
  672. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +6 -3
  673. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +3 -1
  674. data/third_party/abseil-cpp/absl/random/beta_distribution.h +3 -1
  675. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +2 -1
  676. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +10 -0
  677. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +4 -2
  678. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -0
  679. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +2 -1
  680. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -1
  681. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +5 -2
  682. data/third_party/abseil-cpp/absl/random/internal/platform.h +12 -12
  683. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +56 -5
  684. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -1
  685. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +2 -2
  686. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +0 -1
  687. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +1 -4
  688. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +4 -3
  689. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +2 -3
  690. data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -2
  691. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -1
  692. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +2 -0
  693. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +5 -4
  694. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +8 -4
  695. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +1 -1
  696. data/third_party/abseil-cpp/absl/status/status.h +1 -1
  697. data/third_party/abseil-cpp/absl/strings/ascii.cc +41 -26
  698. data/third_party/abseil-cpp/absl/strings/ascii.h +48 -8
  699. data/third_party/abseil-cpp/absl/strings/charconv.cc +4 -7
  700. data/third_party/abseil-cpp/absl/strings/charset.h +3 -4
  701. data/third_party/abseil-cpp/absl/strings/cord.h +5 -19
  702. data/third_party/abseil-cpp/absl/strings/escaping.cc +56 -48
  703. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +1 -1
  704. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +48 -15
  705. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +3 -2
  706. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -0
  707. data/third_party/abseil-cpp/absl/strings/match.h +21 -11
  708. data/third_party/abseil-cpp/absl/strings/numbers.cc +2 -1
  709. data/third_party/abseil-cpp/absl/strings/str_cat.h +11 -0
  710. data/third_party/abseil-cpp/absl/strings/str_split.h +18 -1
  711. data/third_party/abseil-cpp/absl/strings/string_view.h +20 -19
  712. data/third_party/abseil-cpp/absl/strings/strip.h +11 -8
  713. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +16 -10
  714. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +6 -0
  715. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -1
  716. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +38 -12
  717. data/third_party/abseil-cpp/absl/synchronization/notification.cc +10 -2
  718. data/third_party/abseil-cpp/absl/synchronization/notification.h +11 -1
  719. data/third_party/abseil-cpp/absl/time/duration.cc +6 -51
  720. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  721. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
  722. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +3 -3
  723. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +2 -2
  724. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +2 -2
  725. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +3 -3
  726. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +2 -2
  727. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
  728. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +1 -1
  729. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +3 -2
  730. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +1 -1
  731. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -4
  732. data/third_party/abseil-cpp/absl/time/time.h +84 -23
  733. data/third_party/abseil-cpp/absl/types/internal/span.h +3 -2
  734. data/third_party/abseil-cpp/absl/types/optional.h +4 -2
  735. data/third_party/abseil-cpp/absl/types/span.h +85 -43
  736. data/third_party/boringssl-with-bazel/src/crypto/aes/aes.cc +41 -0
  737. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +16 -0
  738. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +15 -0
  739. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +19 -3
  740. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +79 -48
  741. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +11 -19
  742. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +3 -7
  743. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +0 -35
  744. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +0 -2
  745. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +3 -5
  746. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +0 -3
  747. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +0 -2
  748. data/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc +31 -47
  749. data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +100 -0
  750. data/third_party/boringssl-with-bazel/src/crypto/bn/exponentiation.cc +166 -0
  751. data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +93 -0
  752. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +14 -8
  753. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +1 -1
  754. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +3 -3
  755. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +4 -4
  756. data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +13 -15
  757. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aeseax.cc +289 -0
  758. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc +179 -102
  759. data/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h +3 -3
  760. data/third_party/boringssl-with-bazel/src/crypto/cms/cms.cc +172 -0
  761. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +28 -5
  762. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +11 -9
  763. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +0 -6
  764. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +1 -1
  765. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +3 -3
  766. data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +3 -3
  767. data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +13 -14
  768. data/third_party/boringssl-with-bazel/src/crypto/dh/params.cc +27 -61
  769. data/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc +16 -8
  770. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +112 -122
  771. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +23 -35
  772. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  773. data/third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc +47 -63
  774. data/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc +60 -68
  775. data/third_party/boringssl-with-bazel/src/crypto/ec/internal.h +3 -3
  776. data/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc +11 -17
  777. data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +0 -2
  778. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +10 -11
  779. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +10 -11
  780. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +3 -3
  781. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +6 -6
  782. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +6 -6
  783. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +6 -6
  784. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +6 -6
  785. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +6 -6
  786. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +23 -42
  787. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +29 -18
  788. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc +10 -10
  789. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +16 -45
  790. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -4
  791. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +15 -6
  792. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +3 -3
  793. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +101 -5
  794. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +96 -187
  795. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +24 -512
  796. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +58 -80
  797. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +29 -45
  798. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +27 -25
  799. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +7 -16
  800. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +27 -48
  801. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +34 -34
  802. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +102 -154
  803. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +3 -3
  804. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +3 -8
  805. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +1 -78
  806. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +10 -17
  807. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +3 -3
  808. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +15 -8
  809. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +40 -53
  810. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +57 -76
  811. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +4 -10
  812. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +3 -3
  813. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +3 -3
  814. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +37 -52
  815. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +13 -20
  816. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +3 -3
  817. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +28 -39
  818. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +3 -3
  819. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +6 -11
  820. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h +3 -3
  821. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  822. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +335 -28
  823. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  824. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +265 -33
  825. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +3 -3
  826. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +1 -1
  827. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +3 -3
  828. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +19 -26
  829. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +7 -7
  830. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +121 -138
  831. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +96 -83
  832. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +3 -3
  833. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +8 -20
  834. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  835. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +235 -60
  836. data/third_party/boringssl-with-bazel/src/crypto/fuzzer_mode.cc +30 -0
  837. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +3 -3
  838. data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -30
  839. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +3 -3
  840. data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +3 -3
  841. data/third_party/boringssl-with-bazel/src/crypto/mem.cc +0 -2
  842. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +2 -8
  843. data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +3 -3
  844. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +8 -13
  845. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +22 -8
  846. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +19 -17
  847. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +134 -136
  848. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +14 -8
  849. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +25 -21
  850. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +36 -52
  851. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +97 -79
  852. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +3 -3
  853. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +3 -3
  854. data/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc +1 -1
  855. data/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc +2 -2
  856. data/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc +1 -1
  857. data/third_party/boringssl-with-bazel/src/crypto/rand/{sysrand_internal.h → internal.h} +22 -4
  858. data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +1 -1
  859. data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +1 -1
  860. data/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc +1 -1
  861. data/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc +1 -5
  862. data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +3 -3
  863. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc +14 -22
  864. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +3 -3
  865. data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +0 -2
  866. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +3 -3
  867. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +3 -5
  868. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +8 -12
  869. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +15 -3
  870. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +16 -24
  871. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +18 -21
  872. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +10 -3
  873. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +9 -0
  874. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +10 -1
  875. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +64 -85
  876. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +16 -32
  877. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +576 -567
  878. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +16 -8
  879. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +1 -1
  880. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -54
  881. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +1 -1
  882. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +8 -4
  883. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +1 -1
  884. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +1 -1
  885. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +1 -1
  886. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -1
  887. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +1 -1
  888. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +1 -1
  889. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +1 -1
  890. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +7 -1
  891. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +1 -1
  892. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  893. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +1 -1
  894. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +1 -1
  895. data/third_party/boringssl-with-bazel/src/include/openssl/cms.h +146 -0
  896. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +1 -1
  897. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +23 -3
  898. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +1 -1
  899. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +1 -1
  900. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +1 -1
  901. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +1 -1
  902. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -7
  903. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +1 -1
  904. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +1 -1
  905. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +1 -1
  906. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +1 -1
  907. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +1 -1
  908. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -1
  909. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +1 -1
  910. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -1
  911. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -1
  912. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  913. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +1 -1
  914. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +1 -1
  915. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +1 -1
  916. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +4 -4
  917. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +1 -1
  918. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +1 -1
  919. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +1 -1
  920. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +1 -1
  921. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +1 -1
  922. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +1 -1
  923. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +1 -1
  924. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +1 -1
  925. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +1 -1
  926. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +1 -1
  927. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +1 -1
  928. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +10 -4
  929. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +1 -1
  930. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +19 -6
  931. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +1 -1
  932. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +1 -1
  933. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +1 -1
  934. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  935. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +1 -1
  936. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +1 -1
  937. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +2 -2
  938. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +1 -1
  939. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +1 -1
  940. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +1 -1
  941. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +1 -1
  942. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +1 -1
  943. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +291 -40
  944. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +1 -1
  945. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +0 -5
  946. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -1
  947. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +9 -1
  948. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -1
  949. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +1 -1
  950. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +7 -4
  951. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +2 -0
  952. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +32 -26
  953. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +49 -49
  954. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +253 -50
  955. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +12 -12
  956. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +7 -5
  957. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -1
  958. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +24 -32
  959. data/third_party/boringssl-with-bazel/src/ssl/internal.h +93 -4
  960. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +6 -12
  961. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +18 -4
  962. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +83 -7
  963. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +1 -1
  964. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +173 -19
  965. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +5 -18
  966. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +28 -15
  967. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +1 -1
  968. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +31 -7
  969. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +13 -1
  970. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +7 -11
  971. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +13 -11
  972. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +2 -5
  973. data/third_party/upb/upb/hash/common.c +310 -189
  974. data/third_party/upb/upb/hash/common.h +44 -43
  975. data/third_party/upb/upb/hash/int_table.h +29 -5
  976. data/third_party/upb/upb/hash/str_table.h +6 -0
  977. data/third_party/upb/upb/mem/arena.c +180 -57
  978. data/third_party/upb/upb/mem/arena.h +10 -0
  979. data/third_party/upb/upb/mem/internal/arena.h +62 -24
  980. data/third_party/upb/upb/message/accessors.c +1 -5
  981. data/third_party/upb/upb/message/array.c +7 -6
  982. data/third_party/upb/upb/message/array.h +4 -4
  983. data/third_party/upb/upb/message/internal/accessors.h +3 -3
  984. data/third_party/upb/upb/message/internal/extension.c +0 -12
  985. data/third_party/upb/upb/message/internal/extension.h +0 -4
  986. data/third_party/upb/upb/message/internal/iterator.h +3 -3
  987. data/third_party/upb/upb/message/internal/map.h +75 -20
  988. data/third_party/upb/upb/message/internal/map_sorter.h +10 -2
  989. data/third_party/upb/upb/message/internal/message.h +53 -5
  990. data/third_party/upb/upb/message/map.c +68 -20
  991. data/third_party/upb/upb/message/map.h +8 -1
  992. data/third_party/upb/upb/message/map_gencode_util.h +3 -45
  993. data/third_party/upb/upb/message/map_sorter.c +32 -8
  994. data/third_party/upb/upb/message/merge.h +3 -3
  995. data/third_party/upb/upb/message/message.c +120 -14
  996. data/third_party/upb/upb/message/message.h +17 -8
  997. data/third_party/upb/upb/mini_descriptor/build_enum.c +15 -5
  998. data/third_party/upb/upb/mini_descriptor/decode.c +18 -2
  999. data/third_party/upb/upb/mini_descriptor/link.c +4 -0
  1000. data/third_party/upb/upb/mini_table/extension.h +8 -1
  1001. data/third_party/upb/upb/mini_table/extension_registry.c +1 -1
  1002. data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
  1003. data/third_party/upb/upb/mini_table/internal/extension.h +24 -1
  1004. data/third_party/upb/upb/mini_table/internal/field.h +4 -4
  1005. data/third_party/upb/upb/mini_table/internal/message.h +1 -1
  1006. data/third_party/upb/upb/port/def.inc +32 -16
  1007. data/third_party/upb/upb/port/undef.inc +1 -0
  1008. data/third_party/upb/upb/reflection/def_pool.h +2 -2
  1009. data/third_party/upb/upb/reflection/descriptor_bootstrap.h +3 -3
  1010. data/third_party/upb/upb/reflection/enum_def.c +4 -4
  1011. data/third_party/upb/upb/reflection/enum_reserved_range.c +1 -1
  1012. data/third_party/upb/upb/reflection/enum_value_def.c +9 -8
  1013. data/third_party/upb/upb/reflection/extension_range.c +1 -2
  1014. data/third_party/upb/upb/reflection/field_def.c +3 -5
  1015. data/third_party/upb/upb/reflection/field_def.h +1 -1
  1016. data/third_party/upb/upb/reflection/file_def.c +4 -5
  1017. data/third_party/upb/upb/reflection/internal/def_builder.h +35 -10
  1018. data/third_party/upb/upb/reflection/internal/enum_value_def.h +1 -1
  1019. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  1020. data/third_party/upb/upb/reflection/message_def.c +4 -7
  1021. data/third_party/upb/upb/reflection/message_reserved_range.c +1 -1
  1022. data/third_party/upb/upb/reflection/method_def.c +1 -1
  1023. data/third_party/upb/upb/reflection/oneof_def.c +3 -3
  1024. data/third_party/upb/upb/reflection/service_def.c +2 -5
  1025. data/third_party/upb/upb/text/encode.c +16 -0
  1026. data/third_party/upb/upb/text/internal/encode.h +2 -1
  1027. data/third_party/upb/upb/wire/decode.c +104 -72
  1028. data/third_party/upb/upb/wire/encode.c +37 -13
  1029. data/third_party/upb/upb/wire/internal/decode_fast.c +2 -2
  1030. data/third_party/upb/upb/wire/internal/decode_fast.h +4 -0
  1031. metadata +43 -7
  1032. data/src/core/lib/iomgr/executor.cc +0 -441
  1033. data/src/core/lib/iomgr/executor.h +0 -119
  1034. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/polyval.cc.inc +0 -89
@@ -29,15 +29,23 @@
29
29
  #include "thash.h"
30
30
 
31
31
 
32
+ namespace {
33
+
34
+ namespace fips {
35
+ void ensure_keygen_self_test();
36
+ void ensure_sign_self_test();
37
+ void ensure_verify_self_test();
38
+ } // namespace fips
39
+
32
40
  // The OBJECT IDENTIFIER header is also included in these values, per the spec.
33
- static const uint8_t kSHA256OID[] = {0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
34
- 0x65, 0x03, 0x04, 0x02, 0x01};
35
- static const uint8_t kSHA384OID[] = {0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
36
- 0x65, 0x03, 0x04, 0x02, 0x02};
41
+ const uint8_t kSHA256OID[] = {0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
42
+ 0x65, 0x03, 0x04, 0x02, 0x01};
43
+ const uint8_t kSHA384OID[] = {0x06, 0x09, 0x60, 0x86, 0x48, 0x01,
44
+ 0x65, 0x03, 0x04, 0x02, 0x02};
37
45
  #define MAX_OID_LENGTH 11
38
46
  #define MAX_CONTEXT_LENGTH 255
39
47
 
40
- bcm_infallible BCM_slhdsa_sha2_128s_generate_key_from_seed(
48
+ bcm_infallible generate_key_from_seed_no_self_test(
41
49
  uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
42
50
  uint8_t out_secret_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
43
51
  const uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N]) {
@@ -57,30 +65,33 @@ bcm_infallible BCM_slhdsa_sha2_128s_generate_key_from_seed(
57
65
  OPENSSL_memcpy(out_secret_key + 3 * BCM_SLHDSA_SHA2_128S_N,
58
66
  out_public_key + BCM_SLHDSA_SHA2_128S_N,
59
67
  BCM_SLHDSA_SHA2_128S_N);
60
- return bcm_infallible::approved;
61
- }
62
68
 
63
- bcm_infallible BCM_slhdsa_sha2_128s_generate_key(
64
- uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
65
- uint8_t out_private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]) {
66
- uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N];
67
- RAND_bytes(seed, 3 * BCM_SLHDSA_SHA2_128S_N);
68
- BCM_slhdsa_sha2_128s_generate_key_from_seed(out_public_key, out_private_key,
69
- seed);
70
- return bcm_infallible::approved;
71
- }
69
+ // FIPS 140-3 IG 10.3.A comment 1 says of the pair-wise consistency test for
70
+ // SLH-DSA:
71
+ //
72
+ // "For key pairs generated for use with approved algorithms in SP 800-208 and
73
+ // FIPS 205, the PCT (described by the tester in TE10.35.02) may be limited to
74
+ // confirming the same key identifier (I in the case of LMS, SEED in the case
75
+ // of XMSS and PK.SEED for SLH-DSA) is shared by the resulting public and
76
+ // private key following generation."
77
+ //
78
+ // Since this is cheap, we always do this.
79
+
80
+ if (boringssl_fips_break_test("SLHDSA_PWCT")) {
81
+ out_public_key[0] ^= 1;
82
+ }
83
+ if (OPENSSL_memcmp(out_public_key,
84
+ out_secret_key + 2 * BCM_SLHDSA_SHA2_128S_N,
85
+ BCM_SLHDSA_SHA2_128S_N) != 0) {
86
+ abort();
87
+ }
72
88
 
73
- bcm_infallible BCM_slhdsa_sha2_128s_public_from_private(
74
- uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
75
- const uint8_t private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]) {
76
- OPENSSL_memcpy(out_public_key, private_key + 2 * BCM_SLHDSA_SHA2_128S_N,
77
- BCM_SLHDSA_SHA2_128S_N * 2);
78
- return bcm_infallible::approved;
89
+ return bcm_infallible::not_approved;
79
90
  }
80
91
 
81
92
  // Note that this overreads by a byte. This is fine in the context that it's
82
93
  // used.
83
- static uint64_t load_tree_index(const uint8_t in[8]) {
94
+ uint64_t load_tree_index(const uint8_t in[8]) {
84
95
  static_assert(SLHDSA_SHA2_128S_TREE_BYTES == 7,
85
96
  "This code needs to be updated");
86
97
  uint64_t index = CRYPTO_load_u64_be(in);
@@ -90,7 +101,7 @@ static uint64_t load_tree_index(const uint8_t in[8]) {
90
101
  }
91
102
 
92
103
  // Implements Algorithm 22: slh_sign function (Section 10.2.1, page 39)
93
- bcm_infallible BCM_slhdsa_sha2_128s_sign_internal(
104
+ bcm_infallible sign_internal_no_self_test(
94
105
  uint8_t out_signature[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES],
95
106
  const uint8_t secret_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
96
107
  const uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN], const uint8_t *context,
@@ -139,6 +150,189 @@ bcm_infallible BCM_slhdsa_sha2_128s_sign_internal(
139
150
  return bcm_infallible::approved;
140
151
  }
141
152
 
153
+ bcm_status verify_internal(
154
+ const uint8_t *signature, size_t signature_len,
155
+ const uint8_t public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
156
+ const uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN], const uint8_t *context,
157
+ size_t context_len, const uint8_t *msg, size_t msg_len) {
158
+ if (signature_len != BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES) {
159
+ return bcm_status::failure;
160
+ }
161
+ const uint8_t *pk_seed = public_key;
162
+ const uint8_t *pk_root = public_key + BCM_SLHDSA_SHA2_128S_N;
163
+
164
+ const uint8_t *r = signature;
165
+ const uint8_t *sig_fors = signature + BCM_SLHDSA_SHA2_128S_N;
166
+ const uint8_t *sig_ht = sig_fors + SLHDSA_SHA2_128S_FORS_BYTES;
167
+
168
+ uint8_t digest[SLHDSA_SHA2_128S_DIGEST_SIZE];
169
+ slhdsa_thash_hmsg(digest, r, pk_seed, pk_root, header, context, context_len,
170
+ msg, msg_len);
171
+
172
+ uint8_t fors_digest[SLHDSA_SHA2_128S_FORS_MSG_BYTES];
173
+ OPENSSL_memcpy(fors_digest, digest, SLHDSA_SHA2_128S_FORS_MSG_BYTES);
174
+
175
+ const uint64_t idx_tree =
176
+ load_tree_index(digest + SLHDSA_SHA2_128S_FORS_MSG_BYTES);
177
+ uint32_t idx_leaf = CRYPTO_load_u16_be(
178
+ digest + SLHDSA_SHA2_128S_FORS_MSG_BYTES + SLHDSA_SHA2_128S_TREE_BYTES);
179
+ idx_leaf &= (~(uint32_t)0) >> (32 - SLHDSA_SHA2_128S_LEAF_BITS);
180
+
181
+ uint8_t addr[32] = {0};
182
+ slhdsa_set_tree_addr(addr, idx_tree);
183
+ slhdsa_set_type(addr, SLHDSA_SHA2_128S_ADDR_TYPE_FORSTREE);
184
+ slhdsa_set_keypair_addr(addr, idx_leaf);
185
+
186
+ uint8_t pk_fors[BCM_SLHDSA_SHA2_128S_N];
187
+ slhdsa_fors_pk_from_sig(pk_fors, sig_fors, fors_digest, pk_seed, addr);
188
+
189
+ if (!slhdsa_ht_verify(sig_ht, pk_fors, idx_tree, idx_leaf, pk_root,
190
+ pk_seed)) {
191
+ return bcm_status::failure;
192
+ }
193
+
194
+ return bcm_status::approved;
195
+ }
196
+
197
+ namespace fips {
198
+
199
+ #include "fips_known_values.inc"
200
+
201
+ static int keygen_self_test() {
202
+ uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N] = {0};
203
+ uint8_t pub[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES];
204
+ uint8_t priv[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES];
205
+ generate_key_from_seed_no_self_test(pub, priv, seed);
206
+
207
+ static_assert(sizeof(kExpectedPublicKey) == sizeof(pub));
208
+ static_assert(sizeof(kExpectedPrivateKey) == sizeof(priv));
209
+ if (!BORINGSSL_check_test(kExpectedPublicKey, pub, sizeof(pub),
210
+ "SLH-DSA public key") ||
211
+ !BORINGSSL_check_test(kExpectedPrivateKey, priv, sizeof(priv),
212
+ "SLH-DSA private key")) {
213
+ return 0;
214
+ }
215
+
216
+ return 1;
217
+ }
218
+
219
+ static int sign_self_test() {
220
+ uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN] = {0};
221
+ uint8_t entropy[BCM_SLHDSA_SHA2_128S_N] = {0};
222
+ uint8_t sig[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES];
223
+ sign_internal_no_self_test(sig, kExpectedPrivateKey, header, nullptr, 0,
224
+ nullptr, 0, entropy);
225
+ uint8_t digest[32];
226
+ SHA256(sig, sizeof(sig), digest);
227
+
228
+ static_assert(sizeof(kExpectedSignatureSHA256) == sizeof(digest));
229
+ if (!BORINGSSL_check_test(kExpectedSignatureSHA256, digest, sizeof(digest),
230
+ "SLH-DSA signature")) {
231
+ return 0;
232
+ }
233
+
234
+ return 1;
235
+ }
236
+
237
+ static int verify_self_test() {
238
+ uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN] = {0};
239
+ return verify_internal(kExpectedSignature, sizeof(kExpectedSignature),
240
+ kExpectedPublicKey, header, nullptr, 0, nullptr,
241
+ 0) == bcm_status::approved;
242
+ }
243
+
244
+ #if defined(BORINGSSL_FIPS)
245
+
246
+ DEFINE_STATIC_ONCE(g_slhdsa_keygen_self_test_once)
247
+
248
+ void ensure_keygen_self_test(void) {
249
+ CRYPTO_once(g_slhdsa_keygen_self_test_once_bss_get(), []() {
250
+ if (!keygen_self_test()) {
251
+ BORINGSSL_FIPS_abort();
252
+ }
253
+ });
254
+ }
255
+
256
+ DEFINE_STATIC_ONCE(g_slhdsa_sign_self_test_once)
257
+
258
+ void ensure_sign_self_test(void) {
259
+ CRYPTO_once(g_slhdsa_sign_self_test_once_bss_get(), []() {
260
+ if (!sign_self_test()) {
261
+ BORINGSSL_FIPS_abort();
262
+ }
263
+ });
264
+ }
265
+
266
+ DEFINE_STATIC_ONCE(g_slhdsa_verify_self_test_once)
267
+
268
+ void ensure_verify_self_test(void) {
269
+ CRYPTO_once(g_slhdsa_verify_self_test_once_bss_get(), []() {
270
+ if (!verify_self_test()) {
271
+ BORINGSSL_FIPS_abort();
272
+ }
273
+ });
274
+ }
275
+
276
+ #else
277
+
278
+ void ensure_keygen_self_test(void) {}
279
+ void ensure_sign_self_test(void) {}
280
+ void ensure_verify_self_test(void) {}
281
+
282
+ #endif
283
+
284
+ } // namespace fips
285
+
286
+ } // namespace
287
+
288
+ bcm_infallible BCM_slhdsa_sha2_128s_generate_key_from_seed(
289
+ uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
290
+ uint8_t out_secret_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
291
+ const uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N]) {
292
+ fips::ensure_keygen_self_test();
293
+ return generate_key_from_seed_no_self_test(out_public_key, out_secret_key,
294
+ seed);
295
+ }
296
+
297
+ bcm_status BCM_slhdsa_sha2_128s_generate_key_from_seed_fips(
298
+ uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
299
+ uint8_t out_secret_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
300
+ const uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N]) {
301
+ if (out_public_key == nullptr || out_secret_key == nullptr) {
302
+ return bcm_status::failure;
303
+ }
304
+ BCM_slhdsa_sha2_128s_generate_key_from_seed(out_public_key, out_secret_key,
305
+ seed);
306
+ return bcm_status::approved;
307
+ }
308
+
309
+ bcm_infallible BCM_slhdsa_sha2_128s_generate_key(
310
+ uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
311
+ uint8_t out_private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]) {
312
+ uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N];
313
+ RAND_bytes(seed, 3 * BCM_SLHDSA_SHA2_128S_N);
314
+ return BCM_slhdsa_sha2_128s_generate_key_from_seed(out_public_key,
315
+ out_private_key, seed);
316
+ }
317
+
318
+ bcm_status BCM_slhdsa_sha2_128s_generate_key_fips(
319
+ uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
320
+ uint8_t out_private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]) {
321
+ if (out_public_key == nullptr || out_private_key == nullptr) {
322
+ return bcm_status::failure;
323
+ }
324
+ BCM_slhdsa_sha2_128s_generate_key(out_public_key, out_private_key);
325
+ return bcm_status::approved;
326
+ }
327
+
328
+ bcm_infallible BCM_slhdsa_sha2_128s_public_from_private(
329
+ uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
330
+ const uint8_t private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]) {
331
+ OPENSSL_memcpy(out_public_key, private_key + 2 * BCM_SLHDSA_SHA2_128S_N,
332
+ BCM_SLHDSA_SHA2_128S_N * 2);
333
+ return bcm_infallible::approved;
334
+ }
335
+
142
336
  bcm_status BCM_slhdsa_sha2_128s_sign(
143
337
  uint8_t out_signature[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES],
144
338
  const uint8_t private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
@@ -208,6 +402,16 @@ static int slhdsa_get_context_and_oid(uint8_t *out_context_and_oid,
208
402
  return 1;
209
403
  }
210
404
 
405
+ bcm_infallible BCM_slhdsa_sha2_128s_sign_internal(
406
+ uint8_t out_signature[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES],
407
+ const uint8_t secret_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
408
+ const uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN], const uint8_t *context,
409
+ size_t context_len, const uint8_t *msg, size_t msg_len,
410
+ const uint8_t entropy[BCM_SLHDSA_SHA2_128S_N]) {
411
+ fips::ensure_sign_self_test();
412
+ return sign_internal_no_self_test(out_signature, secret_key, header, context,
413
+ context_len, msg, msg_len, entropy);
414
+ }
211
415
 
212
416
  bcm_status BCM_slhdsa_sha2_128s_prehash_sign(
213
417
  uint8_t out_signature[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES],
@@ -289,41 +493,12 @@ bcm_status BCM_slhdsa_sha2_128s_verify_internal(
289
493
  const uint8_t public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
290
494
  const uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN], const uint8_t *context,
291
495
  size_t context_len, const uint8_t *msg, size_t msg_len) {
292
- if (signature_len != BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES) {
293
- return bcm_status::failure;
294
- }
295
- const uint8_t *pk_seed = public_key;
296
- const uint8_t *pk_root = public_key + BCM_SLHDSA_SHA2_128S_N;
297
-
298
- const uint8_t *r = signature;
299
- const uint8_t *sig_fors = signature + BCM_SLHDSA_SHA2_128S_N;
300
- const uint8_t *sig_ht = sig_fors + SLHDSA_SHA2_128S_FORS_BYTES;
301
-
302
- uint8_t digest[SLHDSA_SHA2_128S_DIGEST_SIZE];
303
- slhdsa_thash_hmsg(digest, r, pk_seed, pk_root, header, context, context_len,
304
- msg, msg_len);
305
-
306
- uint8_t fors_digest[SLHDSA_SHA2_128S_FORS_MSG_BYTES];
307
- OPENSSL_memcpy(fors_digest, digest, SLHDSA_SHA2_128S_FORS_MSG_BYTES);
308
-
309
- const uint64_t idx_tree =
310
- load_tree_index(digest + SLHDSA_SHA2_128S_FORS_MSG_BYTES);
311
- uint32_t idx_leaf = CRYPTO_load_u16_be(
312
- digest + SLHDSA_SHA2_128S_FORS_MSG_BYTES + SLHDSA_SHA2_128S_TREE_BYTES);
313
- idx_leaf &= (~(uint32_t)0) >> (32 - SLHDSA_SHA2_128S_LEAF_BITS);
314
-
315
- uint8_t addr[32] = {0};
316
- slhdsa_set_tree_addr(addr, idx_tree);
317
- slhdsa_set_type(addr, SLHDSA_SHA2_128S_ADDR_TYPE_FORSTREE);
318
- slhdsa_set_keypair_addr(addr, idx_leaf);
319
-
320
- uint8_t pk_fors[BCM_SLHDSA_SHA2_128S_N];
321
- slhdsa_fors_pk_from_sig(pk_fors, sig_fors, fors_digest, pk_seed, addr);
322
-
323
- if (!slhdsa_ht_verify(sig_ht, pk_fors, idx_tree, idx_leaf, pk_root,
324
- pk_seed)) {
325
- return bcm_status::failure;
326
- }
496
+ fips::ensure_verify_self_test();
497
+ return verify_internal(signature, signature_len, public_key, header, context,
498
+ context_len, msg, msg_len);
499
+ }
327
500
 
328
- return bcm_status::approved;
501
+ int boringssl_self_test_slhdsa() {
502
+ return fips::keygen_self_test() && fips::sign_self_test() &&
503
+ fips::verify_self_test();
329
504
  }
@@ -0,0 +1,30 @@
1
+ // Copyright 2025 The BoringSSL Authors
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.
14
+
15
+ #include <openssl/crypto.h>
16
+
17
+ #include "internal.h"
18
+
19
+
20
+ #if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
21
+ static CRYPTO_atomic_u32 fuzzer_mode_enabled = 0;
22
+
23
+ int CRYPTO_fuzzer_mode_enabled(void) {
24
+ return CRYPTO_atomic_load_u32(&fuzzer_mode_enabled);
25
+ }
26
+
27
+ void CRYPTO_set_fuzzer_mode(int enabled) {
28
+ CRYPTO_atomic_store_u32(&fuzzer_mode_enabled, !!enabled);
29
+ }
30
+ #endif // FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef OPENSSL_HEADER_HRSS_INTERNAL_H
16
- #define OPENSSL_HEADER_HRSS_INTERNAL_H
15
+ #ifndef OPENSSL_HEADER_CRYPTO_HRSS_INTERNAL_H
16
+ #define OPENSSL_HEADER_CRYPTO_HRSS_INTERNAL_H
17
17
 
18
18
  #include <openssl/base.h>
19
19
  #include "../internal.h"
@@ -65,4 +65,4 @@ extern void poly_Rq_mul(
65
65
  } // extern "C"
66
66
  #endif
67
67
 
68
- #endif // !OPENSSL_HEADER_HRSS_INTERNAL_H
68
+ #endif // !OPENSSL_HEADER_CRYPTO_HRSS_INTERNAL_H
@@ -21,6 +21,7 @@
21
21
  #include <openssl/thread.h>
22
22
 
23
23
  #include <assert.h>
24
+ #include <stdlib.h>
24
25
  #include <string.h>
25
26
 
26
27
  #if defined(BORINGSSL_CONSTANT_TIME_VALIDATION)
@@ -47,9 +48,7 @@
47
48
  #endif
48
49
 
49
50
  #if defined(OPENSSL_WINDOWS_THREADS)
50
- OPENSSL_MSVC_PRAGMA(warning(push, 3))
51
51
  #include <windows.h>
52
- OPENSSL_MSVC_PRAGMA(warning(pop))
53
52
  #endif
54
53
 
55
54
  #if defined(__cplusplus)
@@ -104,12 +103,6 @@ typedef __uint128_t uint128_t;
104
103
 
105
104
  #define OPENSSL_ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
106
105
 
107
- #if defined(__clang__) && __clang_major__ >= 5
108
- #if __has_attribute(fallthrough)
109
- #define OPENSSL_CAN_USE_ATTR_FALLTHROUGH
110
- #endif
111
- #endif
112
-
113
106
  // GCC-like compilers indicate SSE2 with |__SSE2__|. MSVC leaves the caller to
114
107
  // know that x86_64 has SSE2, and uses _M_IX86_FP to indicate SSE2 on x86.
115
108
  // https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170
@@ -610,8 +603,7 @@ OPENSSL_EXPORT int CRYPTO_refcount_dec_and_test_zero(CRYPTO_refcount_t *count);
610
603
  typedef struct crypto_mutex_st {
611
604
  char padding; // Empty structs have different sizes in C and C++.
612
605
  } CRYPTO_MUTEX;
613
- #define CRYPTO_MUTEX_INIT \
614
- { 0 }
606
+ #define CRYPTO_MUTEX_INIT {0}
615
607
  #elif defined(OPENSSL_WINDOWS_THREADS)
616
608
  typedef SRWLOCK CRYPTO_MUTEX;
617
609
  #define CRYPTO_MUTEX_INIT SRWLOCK_INIT
@@ -676,7 +668,7 @@ using MutexReadLock =
676
668
 
677
669
  BSSL_NAMESPACE_END
678
670
 
679
- } // extern "C++"
671
+ } // extern "C++"
680
672
  #endif // defined(__cplusplus)
681
673
 
682
674
 
@@ -740,10 +732,9 @@ typedef struct {
740
732
  uint8_t num_reserved;
741
733
  } CRYPTO_EX_DATA_CLASS;
742
734
 
743
- #define CRYPTO_EX_DATA_CLASS_INIT \
744
- { CRYPTO_MUTEX_INIT, NULL, NULL, {}, 0 }
735
+ #define CRYPTO_EX_DATA_CLASS_INIT {CRYPTO_MUTEX_INIT, NULL, NULL, {}, 0}
745
736
  #define CRYPTO_EX_DATA_CLASS_INIT_WITH_APP_DATA \
746
- { CRYPTO_MUTEX_INIT, NULL, NULL, {}, 1 }
737
+ {CRYPTO_MUTEX_INIT, NULL, NULL, {}, 1}
747
738
 
748
739
  // CRYPTO_get_ex_new_index_ex allocates a new index for |ex_data_class|. Each
749
740
  // class of object should provide a wrapper function that uses the correct
@@ -785,9 +776,6 @@ static inline uint64_t CRYPTO_bswap8(uint64_t x) {
785
776
  return __builtin_bswap64(x);
786
777
  }
787
778
  #elif defined(_MSC_VER)
788
- OPENSSL_MSVC_PRAGMA(warning(push, 3))
789
- #include <stdlib.h>
790
- OPENSSL_MSVC_PRAGMA(warning(pop))
791
779
  #pragma intrinsic(_byteswap_uint64, _byteswap_ulong, _byteswap_ushort)
792
780
  static inline uint16_t CRYPTO_bswap2(uint16_t x) { return _byteswap_ushort(x); }
793
781
 
@@ -842,7 +830,7 @@ static inline void *OPENSSL_memchr(void *s, int c, size_t n) {
842
830
  return memchr(s, c, n);
843
831
  }
844
832
 
845
- } // extern "C++"
833
+ } // extern "C++"
846
834
  #else // __cplusplus
847
835
 
848
836
  static inline void *OPENSSL_memchr(const void *s, int c, size_t n) {
@@ -1048,6 +1036,12 @@ inline void boringssl_ensure_ffdh_self_test(void) {}
1048
1036
 
1049
1037
  #endif // FIPS
1050
1038
 
1039
+ // BORINGSSL_check_test memcmp's two values of equal length. It returns 1 on
1040
+ // success and, on failure, it prints an error message that includes the
1041
+ // hexdumps the two values and returns 0.
1042
+ int BORINGSSL_check_test(const void *expected, const void *actual,
1043
+ size_t expected_len, const char *name);
1044
+
1051
1045
  // boringssl_self_test_sha256 performs a SHA-256 KAT.
1052
1046
  int boringssl_self_test_sha256(void);
1053
1047
 
@@ -1057,6 +1051,15 @@ int boringssl_self_test_sha512(void);
1057
1051
  // boringssl_self_test_hmac_sha256 performs an HMAC-SHA-256 KAT.
1058
1052
  int boringssl_self_test_hmac_sha256(void);
1059
1053
 
1054
+ // boringssl_self_test_mlkem performs the ML-KEM KATs.
1055
+ OPENSSL_EXPORT int boringssl_self_test_mlkem(void);
1056
+
1057
+ // boringssl_self_test_mldsa performs the ML-DSA KATs.
1058
+ OPENSSL_EXPORT int boringssl_self_test_mldsa(void);
1059
+
1060
+ // boringssl_self_test_slhdsa performs the SLH-DSA KATs.
1061
+ OPENSSL_EXPORT int boringssl_self_test_slhdsa(void);
1062
+
1060
1063
  #if defined(BORINGSSL_FIPS_COUNTERS)
1061
1064
  void boringssl_fips_inc_counter(enum fips_counter_t counter);
1062
1065
  #else
@@ -1105,14 +1108,6 @@ OPENSSL_ATTR_CONST uint32_t OPENSSL_get_ia32cap(int idx);
1105
1108
 
1106
1109
  // See Intel manual, volume 2A, table 3-11.
1107
1110
 
1108
- inline int CRYPTO_is_FXSR_capable(void) {
1109
- #if defined(__FXSR__)
1110
- return 1;
1111
- #else
1112
- return (OPENSSL_get_ia32cap(0) & (1u << 24)) != 0;
1113
- #endif
1114
- }
1115
-
1116
1111
  inline int CRYPTO_is_intel_cpu(void) {
1117
1112
  // The reserved bit 30 is used to indicate an Intel CPU.
1118
1113
  return (OPENSSL_get_ia32cap(0) & (1u << 30)) != 0;
@@ -1399,6 +1394,7 @@ inline int CRYPTO_is_ARMv8_SHA512_capable(void) {
1399
1394
 
1400
1395
  #endif // OPENSSL_ARM || OPENSSL_AARCH64
1401
1396
 
1397
+
1402
1398
  #if defined(BORINGSSL_DISPATCH_TEST)
1403
1399
  // Runtime CPU dispatch testing support
1404
1400
 
@@ -1410,12 +1406,12 @@ inline int CRYPTO_is_ARMv8_SHA512_capable(void) {
1410
1406
  // 3: aes_hw_set_encrypt_key
1411
1407
  // 4: vpaes_encrypt
1412
1408
  // 5: vpaes_set_encrypt_key
1413
- // 6: aes_gcm_enc_update_vaes_avx10_256 [reserved]
1414
- // 7: aes_gcm_enc_update_vaes_avx10_512
1415
- // 8: aes_gcm_enc_update_vaes_avx2
1416
- extern uint8_t BORINGSSL_function_hit[9];
1409
+ // 6: aes_gcm_enc_update_vaes_avx2
1410
+ // 7: aes_gcm_enc_update_vaes_avx512
1411
+ extern uint8_t BORINGSSL_function_hit[8];
1417
1412
  #endif // BORINGSSL_DISPATCH_TEST
1418
1413
 
1414
+
1419
1415
  // OPENSSL_vasprintf_internal is just like |vasprintf(3)|. If |system_malloc| is
1420
1416
  // 0, memory will be allocated with |OPENSSL_malloc| and must be freed with
1421
1417
  // |OPENSSL_free|. Otherwise the system |malloc| function is used and the memory
@@ -1424,6 +1420,19 @@ OPENSSL_EXPORT int OPENSSL_vasprintf_internal(char **str, const char *format,
1424
1420
  va_list args, int system_malloc)
1425
1421
  OPENSSL_PRINTF_FORMAT_FUNC(2, 0);
1426
1422
 
1423
+
1424
+ // Fuzzer mode.
1425
+
1426
+ #if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
1427
+ // CRYPTO_fuzzer_mode_enabled returns whether fuzzer mode is enabled. See
1428
+ // |CRYPTO_set_fuzzer_mode|. In non-fuzzer builds, this function statically
1429
+ // returns zero so the codepaths will be deleted by the optimizer.
1430
+ int CRYPTO_fuzzer_mode_enabled(void);
1431
+ #else
1432
+ inline int CRYPTO_fuzzer_mode_enabled(void) { return 0; }
1433
+ #endif
1434
+
1435
+
1427
1436
  #if defined(__cplusplus)
1428
1437
  } // extern C
1429
1438
  #endif
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef OPENSSL_HEADER_LHASH_INTERNAL_H
16
- #define OPENSSL_HEADER_LHASH_INTERNAL_H
15
+ #ifndef OPENSSL_HEADER_CRYPTO_LHASH_INTERNAL_H
16
+ #define OPENSSL_HEADER_CRYPTO_LHASH_INTERNAL_H
17
17
 
18
18
  #include <openssl/lhash.h>
19
19
 
@@ -218,4 +218,4 @@ OPENSSL_EXPORT void OPENSSL_lh_doall_arg(_LHASH *lh,
218
218
  } // extern C
219
219
  #endif
220
220
 
221
- #endif // OPENSSL_HEADER_LHASH_INTERNAL_H
221
+ #endif // OPENSSL_HEADER_CRYPTO_LHASH_INTERNAL_H
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef OPENSSL_HEADER_MD5_INTERNAL_H
16
- #define OPENSSL_HEADER_MD5_INTERNAL_H
15
+ #ifndef OPENSSL_HEADER_CRYPTO_MD5_INTERNAL_H
16
+ #define OPENSSL_HEADER_CRYPTO_MD5_INTERNAL_H
17
17
 
18
18
  #include <openssl/base.h>
19
19
 
@@ -34,4 +34,4 @@ extern void md5_block_asm_data_order(uint32_t *state, const uint8_t *data,
34
34
  } // extern "C"
35
35
  #endif
36
36
 
37
- #endif // OPENSSL_HEADER_MD5_INTERNAL_H
37
+ #endif // OPENSSL_HEADER_CRYPTO_MD5_INTERNAL_H
@@ -24,9 +24,7 @@
24
24
  #include <openssl/err.h>
25
25
 
26
26
  #if defined(OPENSSL_WINDOWS)
27
- OPENSSL_MSVC_PRAGMA(warning(push, 3))
28
27
  #include <windows.h>
29
- OPENSSL_MSVC_PRAGMA(warning(pop))
30
28
  #endif
31
29
 
32
30
  #if defined(BORINGSSL_MALLOC_FAILURE_TESTING)
@@ -278,14 +278,8 @@ int OBJ_txt2nid(const char *s) {
278
278
 
279
279
  OPENSSL_EXPORT int OBJ_nid2cbb(CBB *out, int nid) {
280
280
  const ASN1_OBJECT *obj = OBJ_nid2obj(nid);
281
- CBB oid;
282
-
283
- if (obj == NULL || !CBB_add_asn1(out, &oid, CBS_ASN1_OBJECT) ||
284
- !CBB_add_bytes(&oid, obj->data, obj->length) || !CBB_flush(out)) {
285
- return 0;
286
- }
287
-
288
- return 1;
281
+ return obj != NULL &&
282
+ CBB_add_asn1_element(out, CBS_ASN1_OBJECT, obj->data, obj->length);
289
283
  }
290
284
 
291
285
  const ASN1_OBJECT *OBJ_get_undef(void) {
@@ -12,8 +12,8 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- #ifndef OPENSSL_HEADER_PEM_INTERNAL_H
16
- #define OPENSSL_HEADER_PEM_INTERNAL_H
15
+ #ifndef OPENSSL_HEADER_CRYPTO_PEM_INTERNAL_H
16
+ #define OPENSSL_HEADER_CRYPTO_PEM_INTERNAL_H
17
17
 
18
18
  #include <openssl/pem.h>
19
19
 
@@ -41,4 +41,4 @@ int PEM_do_header(const EVP_CIPHER_INFO *cipher, uint8_t *data, long *len,
41
41
  } // extern "C"
42
42
  #endif
43
43
 
44
- #endif // OPENSSL_HEADER_PEM_INTERNAL_H
44
+ #endif // OPENSSL_HEADER_CRYPTO_PEM_INTERNAL_H