grpc 1.70.1 → 1.71.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 (1064) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +43 -79
  3. data/include/grpc/event_engine/endpoint_config.h +5 -5
  4. data/include/grpc/event_engine/event_engine.h +44 -5
  5. data/include/grpc/status.h +1 -1
  6. data/include/grpc/support/json.h +16 -16
  7. data/src/core/call/request_buffer.cc +22 -22
  8. data/src/core/call/request_buffer.h +4 -4
  9. data/src/core/channelz/channelz.cc +2 -2
  10. data/src/core/channelz/channelz.h +3 -22
  11. data/src/core/channelz/channelz_registry.cc +0 -7
  12. data/src/core/client_channel/client_channel.cc +16 -26
  13. data/src/core/client_channel/client_channel.h +2 -2
  14. data/src/core/client_channel/client_channel_filter.cc +54 -131
  15. data/src/core/client_channel/client_channel_filter.h +10 -6
  16. data/src/core/client_channel/client_channel_plugin.cc +2 -1
  17. data/src/core/client_channel/client_channel_service_config.cc +1 -1
  18. data/src/core/client_channel/client_channel_service_config.h +5 -5
  19. data/src/core/client_channel/direct_channel.cc +1 -1
  20. data/src/core/client_channel/direct_channel.h +1 -1
  21. data/src/core/client_channel/lb_metadata.cc +7 -8
  22. data/src/core/client_channel/lb_metadata.h +3 -3
  23. data/src/core/client_channel/load_balanced_call_destination.cc +4 -4
  24. data/src/core/client_channel/retry_filter.cc +1 -1
  25. data/src/core/client_channel/retry_filter.h +1 -1
  26. data/src/core/client_channel/retry_filter_legacy_call_data.cc +10 -12
  27. data/src/core/client_channel/retry_filter_legacy_call_data.h +7 -7
  28. data/src/core/client_channel/retry_interceptor.cc +16 -14
  29. data/src/core/client_channel/retry_interceptor.h +2 -2
  30. data/src/core/client_channel/retry_service_config.cc +1 -1
  31. data/src/core/client_channel/retry_service_config.h +3 -3
  32. data/src/core/client_channel/subchannel.cc +43 -76
  33. data/src/core/client_channel/subchannel.h +4 -4
  34. data/src/core/client_channel/subchannel_stream_client.cc +0 -1
  35. data/src/core/client_channel/subchannel_stream_client.h +3 -3
  36. data/src/core/config/config_vars.cc +1 -0
  37. data/src/core/config/config_vars.h +1 -0
  38. data/src/core/config/load_config.cc +3 -2
  39. data/src/core/config/load_config.h +1 -1
  40. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +4 -11
  41. data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +7 -7
  42. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
  43. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +8 -15
  44. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +6 -6
  45. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  46. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +0 -7
  47. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +6 -6
  48. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.cc +1 -1
  49. data/src/core/ext/filters/gcp_authentication/gcp_authentication_service_config_parser.h +1 -1
  50. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -6
  51. data/src/core/ext/filters/http/client/http_client_filter.h +4 -4
  52. data/src/core/ext/filters/http/client_authority_filter.cc +6 -11
  53. data/src/core/ext/filters/http/client_authority_filter.h +6 -6
  54. data/src/core/ext/filters/http/message_compress/compression_filter.cc +18 -22
  55. data/src/core/ext/filters/http/message_compress/compression_filter.h +18 -13
  56. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -8
  57. data/src/core/ext/filters/http/server/http_server_filter.h +4 -4
  58. data/src/core/ext/filters/message_size/message_size_filter.cc +13 -25
  59. data/src/core/ext/filters/message_size/message_size_filter.h +20 -21
  60. data/src/core/ext/filters/rbac/rbac_filter.cc +0 -7
  61. data/src/core/ext/filters/rbac/rbac_filter.h +6 -6
  62. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +3 -3
  63. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +1 -6
  64. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +4 -4
  65. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +1 -1
  66. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +2 -2
  67. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -2
  68. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +4 -3
  69. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -20
  70. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -5
  71. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
  72. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.cc +2 -2
  73. data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +4 -4
  74. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +84 -59
  75. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +7 -7
  76. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -1
  77. data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
  78. data/src/core/ext/transport/chttp2/transport/frame.cc +2 -2
  79. data/src/core/ext/transport/chttp2/transport/frame.h +5 -5
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +8 -8
  81. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +5 -5
  82. data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +2 -2
  83. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -31
  84. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -7
  85. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +3 -3
  86. data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -2
  87. data/src/core/ext/transport/chttp2/transport/internal.h +19 -8
  88. data/src/core/ext/transport/chttp2/transport/parsing.cc +14 -14
  89. data/src/core/ext/transport/chttp2/transport/ping_abuse_policy.cc +1 -1
  90. data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +2 -2
  91. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +2 -2
  92. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +2 -2
  93. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +2 -2
  94. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +1 -39
  95. data/src/core/ext/transport/chttp2/transport/varint.cc +4 -4
  96. data/src/core/ext/transport/chttp2/transport/writing.cc +16 -22
  97. data/src/core/ext/transport/inproc/inproc_transport.cc +1 -3
  98. data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +15 -10
  99. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb.h +16 -0
  100. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +3 -2
  101. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +30 -0
  102. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +5 -3
  103. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +118 -0
  104. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +31 -6
  105. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +2 -0
  106. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +37 -7
  107. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +7 -5
  108. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb.h +142 -0
  109. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +55 -0
  110. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.h +32 -0
  111. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +33 -0
  112. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +7 -4
  113. data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +6 -4
  114. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +50 -47
  115. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +210 -199
  116. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  117. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +33 -33
  118. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +19 -17
  119. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +41 -0
  120. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +33 -0
  121. data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +26 -19
  122. data/src/core/filter/blackboard.cc +2 -2
  123. data/src/core/filter/filter_args.h +2 -2
  124. data/src/core/handshaker/handshaker.cc +0 -3
  125. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -5
  126. data/src/core/handshaker/http_connect/http_proxy_mapper.cc +31 -32
  127. data/src/core/handshaker/http_connect/http_proxy_mapper.h +4 -4
  128. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +5 -5
  129. data/src/core/handshaker/http_connect/xds_http_proxy_mapper.h +5 -5
  130. data/src/core/handshaker/proxy_mapper.h +4 -4
  131. data/src/core/handshaker/proxy_mapper_registry.cc +5 -6
  132. data/src/core/handshaker/proxy_mapper_registry.h +4 -4
  133. data/src/core/handshaker/security/secure_endpoint.cc +2 -2
  134. data/src/core/handshaker/security/security_handshaker.cc +3 -5
  135. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +6 -4
  136. data/src/core/lib/channel/channel_args.cc +13 -13
  137. data/src/core/lib/channel/channel_args.h +8 -8
  138. data/src/core/lib/channel/connected_channel.cc +1 -1
  139. data/src/core/lib/channel/promise_based_filter.cc +9 -9
  140. data/src/core/lib/channel/promise_based_filter.h +79 -80
  141. data/src/core/lib/compression/compression.cc +3 -2
  142. data/src/core/lib/compression/compression_internal.cc +9 -9
  143. data/src/core/lib/compression/compression_internal.h +3 -3
  144. data/src/core/lib/debug/trace_flags.cc +3 -2
  145. data/src/core/lib/debug/trace_flags.h +1 -1
  146. data/src/core/lib/event_engine/ares_resolver.cc +9 -11
  147. data/src/core/lib/event_engine/ares_resolver.h +6 -10
  148. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +2 -4
  149. data/src/core/lib/event_engine/cf_engine/cf_engine.h +2 -4
  150. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +6 -7
  151. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -4
  152. data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +2 -4
  153. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +3 -7
  154. data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +2 -4
  155. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +5 -7
  156. data/src/core/lib/event_engine/channel_args_endpoint_config.h +6 -7
  157. data/src/core/lib/event_engine/common_closures.h +2 -4
  158. data/src/core/lib/event_engine/default_event_engine.cc +62 -33
  159. data/src/core/lib/event_engine/default_event_engine.h +24 -33
  160. data/src/core/lib/event_engine/default_event_engine_factory.cc +6 -12
  161. data/src/core/lib/event_engine/default_event_engine_factory.h +2 -4
  162. data/src/core/lib/event_engine/event_engine.cc +2 -4
  163. data/src/core/lib/event_engine/extensions/can_track_errors.h +2 -4
  164. data/src/core/lib/event_engine/extensions/chaotic_good_extension.h +2 -4
  165. data/src/core/lib/event_engine/extensions/supports_fd.h +2 -4
  166. data/src/core/lib/event_engine/extensions/tcp_trace.h +2 -4
  167. data/src/core/lib/event_engine/forkable.cc +2 -4
  168. data/src/core/lib/event_engine/forkable.h +2 -4
  169. data/src/core/lib/event_engine/grpc_polled_fd.h +2 -4
  170. data/src/core/lib/event_engine/handle_containers.h +2 -4
  171. data/src/core/lib/event_engine/memory_allocator_factory.h +2 -4
  172. data/src/core/lib/event_engine/poller.h +2 -4
  173. data/src/core/lib/event_engine/posix.h +2 -4
  174. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +4 -50
  175. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +2 -4
  176. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +4 -51
  177. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +2 -4
  178. data/src/core/lib/event_engine/posix_engine/event_poller.h +2 -4
  179. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +2 -4
  180. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +2 -4
  181. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +2 -4
  182. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +2 -4
  183. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +2 -4
  184. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +2 -4
  185. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +2 -4
  186. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +2 -4
  187. data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +2 -4
  188. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +6 -10
  189. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +2 -4
  190. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +2 -4
  191. data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -4
  192. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +2 -4
  193. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -5
  194. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +2 -4
  195. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +2 -4
  196. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +2 -4
  197. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +5 -6
  198. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +2 -4
  199. data/src/core/lib/event_engine/posix_engine/timer.cc +4 -6
  200. data/src/core/lib/event_engine/posix_engine/timer.h +4 -6
  201. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +2 -4
  202. data/src/core/lib/event_engine/posix_engine/timer_heap.h +2 -4
  203. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -7
  204. data/src/core/lib/event_engine/posix_engine/timer_manager.h +4 -6
  205. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +4 -8
  206. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +24 -25
  207. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +2 -4
  208. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +2 -4
  209. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +2 -4
  210. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +2 -4
  211. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +2 -4
  212. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +2 -4
  213. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +2 -4
  214. data/src/core/lib/event_engine/query_extensions.h +2 -4
  215. data/src/core/lib/event_engine/ref_counted_dns_resolver_interface.h +2 -4
  216. data/src/core/lib/event_engine/resolved_address.cc +2 -4
  217. data/src/core/lib/event_engine/resolved_address_internal.h +2 -4
  218. data/src/core/lib/event_engine/shim.cc +2 -4
  219. data/src/core/lib/event_engine/shim.h +2 -4
  220. data/src/core/lib/event_engine/slice.cc +2 -4
  221. data/src/core/lib/event_engine/slice_buffer.cc +2 -4
  222. data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
  223. data/src/core/lib/event_engine/tcp_socket_utils.h +5 -7
  224. data/src/core/lib/event_engine/thread_local.cc +2 -4
  225. data/src/core/lib/event_engine/thread_local.h +2 -4
  226. data/src/core/lib/event_engine/thread_pool/thread_count.cc +2 -4
  227. data/src/core/lib/event_engine/thread_pool/thread_count.h +4 -18
  228. data/src/core/lib/event_engine/thread_pool/thread_pool.h +2 -4
  229. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +2 -4
  230. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +3 -5
  231. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +2 -4
  232. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +2 -4
  233. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +2 -4
  234. data/src/core/lib/event_engine/time_util.cc +2 -4
  235. data/src/core/lib/event_engine/time_util.h +2 -4
  236. data/src/core/lib/event_engine/utils.cc +2 -4
  237. data/src/core/lib/event_engine/utils.h +2 -4
  238. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +2 -4
  239. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +2 -4
  240. data/src/core/lib/event_engine/windows/iocp.cc +2 -4
  241. data/src/core/lib/event_engine/windows/iocp.h +2 -4
  242. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.cc +2 -4
  243. data/src/core/lib/event_engine/windows/native_windows_dns_resolver.h +2 -4
  244. data/src/core/lib/event_engine/windows/win_socket.cc +2 -4
  245. data/src/core/lib/event_engine/windows/win_socket.h +2 -4
  246. data/src/core/lib/event_engine/windows/windows_endpoint.cc +2 -4
  247. data/src/core/lib/event_engine/windows/windows_endpoint.h +4 -6
  248. data/src/core/lib/event_engine/windows/windows_engine.cc +2 -4
  249. data/src/core/lib/event_engine/windows/windows_engine.h +2 -4
  250. data/src/core/lib/event_engine/windows/windows_listener.cc +2 -4
  251. data/src/core/lib/event_engine/windows/windows_listener.h +2 -4
  252. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +2 -4
  253. data/src/core/lib/event_engine/work_queue/basic_work_queue.h +2 -4
  254. data/src/core/lib/event_engine/work_queue/work_queue.h +2 -4
  255. data/src/core/lib/experiments/experiments.cc +102 -213
  256. data/src/core/lib/experiments/experiments.h +53 -89
  257. data/src/core/lib/iomgr/buffer_list.h +22 -21
  258. data/src/core/lib/iomgr/cfstream_handle.cc +0 -2
  259. data/src/core/lib/iomgr/closure.h +1 -4
  260. data/src/core/lib/iomgr/combiner.cc +0 -1
  261. data/src/core/lib/iomgr/error.cc +2 -2
  262. data/src/core/lib/iomgr/event_engine_shims/closure.cc +0 -1
  263. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +0 -2
  264. data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +0 -1
  265. data/src/core/lib/iomgr/exec_ctx.cc +1 -7
  266. data/src/core/lib/iomgr/exec_ctx.h +1 -132
  267. data/src/core/lib/iomgr/executor.cc +0 -11
  268. data/src/core/lib/iomgr/resolve_address_posix.cc +0 -2
  269. data/src/core/lib/iomgr/resolve_address_windows.cc +0 -2
  270. data/src/core/lib/iomgr/socket_utils_posix.cc +3 -2
  271. data/src/core/lib/iomgr/tcp_posix.cc +3 -2
  272. data/src/core/lib/iomgr/tcp_server_posix.cc +1 -3
  273. data/src/core/lib/iomgr/tcp_server_windows.cc +0 -1
  274. data/src/core/lib/iomgr/timer_manager.cc +1 -9
  275. data/src/core/lib/promise/activity.h +4 -4
  276. data/src/core/lib/promise/detail/join_state.h +16 -68
  277. data/src/core/lib/promise/detail/promise_factory.h +85 -25
  278. data/src/core/lib/promise/detail/promise_like.h +16 -19
  279. data/src/core/lib/promise/detail/seq_state.h +102 -315
  280. data/src/core/lib/promise/for_each.h +14 -5
  281. data/src/core/lib/promise/if.h +48 -20
  282. data/src/core/lib/promise/interceptor_list.h +9 -9
  283. data/src/core/lib/promise/latch.h +14 -6
  284. data/src/core/lib/promise/loop.h +58 -18
  285. data/src/core/lib/promise/map.h +103 -49
  286. data/src/core/lib/promise/party.cc +48 -14
  287. data/src/core/lib/promise/party.h +216 -27
  288. data/src/core/lib/promise/pipe.h +12 -12
  289. data/src/core/lib/promise/poll.h +8 -5
  290. data/src/core/lib/promise/prioritized_race.h +16 -22
  291. data/src/core/lib/promise/promise.h +2 -3
  292. data/src/core/lib/promise/race.h +4 -12
  293. data/src/core/lib/promise/seq.h +41 -6
  294. data/src/core/lib/promise/sleep.cc +3 -3
  295. data/src/core/lib/promise/sleep.h +14 -1
  296. data/src/core/lib/promise/status_flag.h +9 -3
  297. data/src/core/lib/promise/try_join.h +119 -5
  298. data/src/core/lib/promise/try_seq.h +39 -12
  299. data/src/core/lib/resource_quota/arena.h +79 -0
  300. data/src/core/lib/resource_quota/memory_quota.cc +53 -49
  301. data/src/core/lib/resource_quota/memory_quota.h +4 -4
  302. data/src/core/lib/security/authorization/evaluate_args.cc +3 -3
  303. data/src/core/lib/security/authorization/evaluate_args.h +3 -3
  304. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +0 -7
  305. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +6 -6
  306. data/src/core/lib/security/authorization/matchers.h +3 -3
  307. data/src/core/lib/security/authorization/rbac_policy.cc +1 -1
  308. data/src/core/lib/security/authorization/rbac_policy.h +3 -3
  309. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +1 -2
  310. data/src/core/lib/security/credentials/external/external_account_credentials.cc +1 -3
  311. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
  312. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -1
  313. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +2 -2
  314. data/src/core/lib/security/credentials/iam/iam_credentials.cc +1 -1
  315. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  316. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -2
  317. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  318. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +0 -1
  319. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +4 -4
  320. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -3
  321. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
  322. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +2 -2
  323. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +12 -13
  324. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +14 -14
  325. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +23 -15
  326. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +3 -3
  327. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +0 -1
  328. data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h +1 -2
  329. data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -2
  330. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.cc +4 -5
  331. data/src/core/lib/security/credentials/token_fetcher/token_fetcher_credentials.h +4 -4
  332. data/src/core/lib/security/credentials/xds/xds_credentials.cc +2 -1
  333. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
  334. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +3 -3
  335. data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
  336. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +9 -9
  337. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +13 -13
  338. data/src/core/lib/security/transport/auth_filters.h +95 -7
  339. data/src/core/lib/security/transport/client_auth_filter.cc +96 -6
  340. data/src/core/lib/security/transport/server_auth_filter.cc +0 -8
  341. data/src/core/lib/slice/slice_buffer.cc +2 -2
  342. data/src/core/lib/slice/slice_buffer.h +2 -2
  343. data/src/core/lib/surface/call.cc +0 -4
  344. data/src/core/lib/surface/call.h +4 -3
  345. data/src/core/lib/surface/call_utils.cc +2 -2
  346. data/src/core/lib/surface/call_utils.h +8 -4
  347. data/src/core/lib/surface/channel.cc +6 -14
  348. data/src/core/lib/surface/channel.h +3 -3
  349. data/src/core/lib/surface/channel_init.cc +1 -1
  350. data/src/core/lib/surface/client_call.cc +13 -6
  351. data/src/core/lib/surface/client_call.h +2 -2
  352. data/src/core/lib/surface/completion_queue.cc +10 -49
  353. data/src/core/lib/surface/filter_stack_call.cc +2 -4
  354. data/src/core/lib/surface/filter_stack_call.h +1 -1
  355. data/src/core/lib/surface/init.cc +17 -12
  356. data/src/core/lib/surface/legacy_channel.cc +10 -8
  357. data/src/core/lib/surface/legacy_channel.h +2 -2
  358. data/src/core/lib/surface/server_call.cc +23 -6
  359. data/src/core/lib/surface/server_call.h +2 -0
  360. data/src/core/lib/surface/version.cc +2 -2
  361. data/src/core/lib/transport/call_filters.h +100 -59
  362. data/src/core/lib/transport/call_spine.cc +32 -34
  363. data/src/core/lib/transport/call_spine.h +66 -23
  364. data/src/core/lib/transport/call_state.h +8 -8
  365. data/src/core/lib/transport/connectivity_state.cc +8 -9
  366. data/src/core/lib/transport/connectivity_state.h +2 -4
  367. data/src/core/lib/transport/http2_errors.h +5 -3
  368. data/src/core/lib/transport/interception_chain.h +27 -7
  369. data/src/core/lib/transport/metadata.h +88 -0
  370. data/src/core/lib/transport/metadata_batch.cc +2 -2
  371. data/src/core/lib/transport/metadata_batch.h +79 -18
  372. data/src/core/lib/transport/timeout_encoding.cc +15 -15
  373. data/src/core/lib/transport/timeout_encoding.h +3 -2
  374. data/src/core/lib/transport/transport.cc +0 -1
  375. data/src/core/lib/transport/transport.h +12 -7
  376. data/src/core/load_balancing/backend_metric_parser.cc +21 -28
  377. data/src/core/load_balancing/endpoint_list.cc +1 -1
  378. data/src/core/load_balancing/endpoint_list.h +7 -7
  379. data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -6
  380. data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +4 -4
  381. data/src/core/load_balancing/grpclb/grpclb.cc +21 -38
  382. data/src/core/load_balancing/health_check_client.cc +16 -48
  383. data/src/core/load_balancing/health_check_client_internal.h +7 -7
  384. data/src/core/load_balancing/lb_policy.cc +4 -6
  385. data/src/core/load_balancing/lb_policy.h +4 -4
  386. data/src/core/load_balancing/lb_policy_registry.cc +10 -8
  387. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +57 -68
  388. data/src/core/load_balancing/outlier_detection/outlier_detection.h +4 -3
  389. data/src/core/load_balancing/pick_first/pick_first.cc +21 -21
  390. data/src/core/load_balancing/priority/priority.cc +8 -13
  391. data/src/core/load_balancing/ring_hash/ring_hash.cc +54 -90
  392. data/src/core/load_balancing/rls/rls.cc +105 -194
  393. data/src/core/load_balancing/rls/rls.h +97 -1
  394. data/src/core/load_balancing/round_robin/round_robin.cc +5 -5
  395. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.cc +4 -4
  396. data/src/core/load_balancing/weighted_round_robin/static_stride_scheduler.h +2 -2
  397. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +8 -14
  398. data/src/core/load_balancing/weighted_target/weighted_target.cc +7 -15
  399. data/src/core/load_balancing/xds/cds.cc +11 -15
  400. data/src/core/load_balancing/xds/xds_cluster_impl.cc +15 -18
  401. data/src/core/load_balancing/xds/xds_cluster_manager.cc +10 -18
  402. data/src/core/load_balancing/xds/xds_override_host.cc +45 -92
  403. data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
  404. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +7 -7
  405. data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +10 -15
  406. data/src/core/resolver/dns/native/dns_resolver.cc +1 -1
  407. data/src/core/resolver/fake/fake_resolver.cc +10 -11
  408. data/src/core/resolver/fake/fake_resolver.h +2 -2
  409. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +9 -12
  410. data/src/core/resolver/polling_resolver.cc +2 -5
  411. data/src/core/resolver/polling_resolver.h +3 -3
  412. data/src/core/resolver/resolver_registry.cc +4 -3
  413. data/src/core/resolver/xds/xds_config.cc +6 -6
  414. data/src/core/resolver/xds/xds_config.h +2 -2
  415. data/src/core/resolver/xds/xds_dependency_manager.cc +80 -77
  416. data/src/core/resolver/xds/xds_dependency_manager.h +4 -0
  417. data/src/core/resolver/xds/xds_resolver.cc +53 -75
  418. data/src/core/server/server.cc +71 -79
  419. data/src/core/server/server.h +16 -5
  420. data/src/core/server/server_call_tracer_filter.cc +3 -7
  421. data/src/core/server/server_config_selector_filter.cc +8 -15
  422. data/src/core/server/xds_server_config_fetcher.cc +16 -18
  423. data/src/core/service_config/service_config_channel_arg_filter.cc +7 -19
  424. data/src/core/service_config/service_config_impl.cc +3 -3
  425. data/src/core/telemetry/call_tracer.cc +8 -8
  426. data/src/core/telemetry/call_tracer.h +6 -5
  427. data/src/core/telemetry/metrics.cc +3 -3
  428. data/src/core/telemetry/metrics.h +2 -8
  429. data/src/core/telemetry/tcp_tracer.h +32 -32
  430. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -2
  431. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -14
  432. data/src/core/tsi/fake_transport_security.cc +5 -0
  433. data/src/core/util/dump_args.h +1 -9
  434. data/src/core/util/env.h +3 -4
  435. data/src/core/util/examine_stack.cc +2 -2
  436. data/src/core/util/examine_stack.h +3 -4
  437. data/src/core/util/gpr_time.cc +0 -2
  438. data/src/core/util/http_client/httpcli.cc +4 -5
  439. data/src/core/util/http_client/httpcli.h +4 -4
  440. data/src/core/util/http_client/httpcli_security_connector.cc +2 -2
  441. data/src/core/util/json/json_channel_args.h +2 -1
  442. data/src/core/util/json/json_object_loader.cc +4 -4
  443. data/src/core/util/json/json_object_loader.h +12 -12
  444. data/src/core/util/json/json_reader.cc +4 -4
  445. data/src/core/util/json/json_writer.cc +3 -3
  446. data/src/core/util/latent_see.cc +3 -3
  447. data/src/core/util/latent_see.h +2 -2
  448. data/src/core/util/linux/env.cc +3 -4
  449. data/src/core/util/lru_cache.h +4 -4
  450. data/src/core/util/match.h +7 -7
  451. data/src/core/util/matchers.cc +1 -2
  452. data/src/core/util/matchers.h +2 -2
  453. data/src/core/util/posix/env.cc +2 -2
  454. data/src/core/util/posix/sync.cc +0 -1
  455. data/src/core/util/posix/time.cc +0 -1
  456. data/src/core/util/ring_buffer.h +4 -5
  457. data/src/core/util/status_helper.cc +16 -20
  458. data/src/core/util/status_helper.h +5 -5
  459. data/src/core/util/sync_abseil.cc +0 -1
  460. data/src/core/util/table.h +6 -21
  461. data/src/core/util/time.cc +1 -1
  462. data/src/core/util/time.h +3 -3
  463. data/src/core/util/time_precise.cc +0 -1
  464. data/src/core/util/type_list.h +56 -0
  465. data/src/core/util/uri.cc +6 -4
  466. data/src/core/util/uri.h +7 -0
  467. data/src/core/util/useful.h +4 -4
  468. data/src/core/util/validation_errors.cc +5 -5
  469. data/src/core/util/wait_for_single_owner.h +62 -0
  470. data/src/core/util/windows/env.cc +3 -3
  471. data/src/core/util/windows/sync.cc +0 -1
  472. data/src/core/util/windows/time.cc +0 -1
  473. data/src/core/util/work_serializer.cc +27 -267
  474. data/src/core/util/work_serializer.h +3 -27
  475. data/src/core/xds/grpc/certificate_provider_store.cc +12 -17
  476. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +2 -2
  477. data/src/core/xds/grpc/xds_audit_logger_registry.cc +1 -1
  478. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +11 -14
  479. data/src/core/xds/grpc/xds_bootstrap_grpc.h +2 -2
  480. data/src/core/xds/grpc/xds_certificate_provider.cc +15 -15
  481. data/src/core/xds/grpc/xds_client_grpc.cc +7 -8
  482. data/src/core/xds/grpc/xds_cluster.h +4 -4
  483. data/src/core/xds/grpc/xds_cluster_parser.cc +26 -26
  484. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +4 -4
  485. data/src/core/xds/grpc/xds_common_types.cc +2 -2
  486. data/src/core/xds/grpc/xds_common_types.h +4 -4
  487. data/src/core/xds/grpc/xds_common_types_parser.cc +29 -31
  488. data/src/core/xds/grpc/xds_common_types_parser.h +8 -7
  489. data/src/core/xds/grpc/xds_endpoint.cc +3 -4
  490. data/src/core/xds/grpc/xds_endpoint_parser.cc +14 -14
  491. data/src/core/xds/grpc/xds_health_status.cc +4 -4
  492. data/src/core/xds/grpc/xds_health_status.h +4 -3
  493. data/src/core/xds/grpc/xds_http_fault_filter.cc +18 -20
  494. data/src/core/xds/grpc/xds_http_fault_filter.h +4 -3
  495. data/src/core/xds/grpc/xds_http_filter.h +3 -3
  496. data/src/core/xds/grpc/xds_http_filter_registry.cc +7 -7
  497. data/src/core/xds/grpc/xds_http_filter_registry.h +3 -3
  498. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +7 -7
  499. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +4 -3
  500. data/src/core/xds/grpc/xds_http_rbac_filter.cc +30 -23
  501. data/src/core/xds/grpc/xds_http_rbac_filter.h +4 -3
  502. data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +10 -10
  503. data/src/core/xds/grpc/xds_http_stateful_session_filter.h +4 -3
  504. data/src/core/xds/grpc/xds_lb_policy_registry.cc +4 -4
  505. data/src/core/xds/grpc/xds_listener.cc +4 -6
  506. data/src/core/xds/grpc/xds_listener.h +10 -10
  507. data/src/core/xds/grpc/xds_listener_parser.cc +58 -51
  508. data/src/core/xds/grpc/xds_listener_parser.h +2 -1
  509. data/src/core/xds/grpc/xds_metadata.cc +5 -5
  510. data/src/core/xds/grpc/xds_metadata_parser.cc +65 -52
  511. data/src/core/xds/grpc/xds_route_config.cc +9 -15
  512. data/src/core/xds/grpc/xds_route_config.h +9 -9
  513. data/src/core/xds/grpc/xds_route_config_parser.cc +114 -116
  514. data/src/core/xds/grpc/xds_route_config_parser.h +4 -4
  515. data/src/core/xds/grpc/xds_routing.cc +6 -6
  516. data/src/core/xds/grpc/xds_routing.h +5 -5
  517. data/src/core/xds/grpc/xds_server_grpc.cc +22 -1
  518. data/src/core/xds/grpc/xds_server_grpc.h +5 -2
  519. data/src/core/xds/grpc/xds_server_grpc_interface.h +33 -0
  520. data/src/core/xds/grpc/xds_transport_grpc.cc +5 -6
  521. data/src/core/xds/xds_client/lrs_client.cc +71 -83
  522. data/src/core/xds/xds_client/lrs_client.h +8 -8
  523. data/src/core/xds/xds_client/xds_api.cc +5 -5
  524. data/src/core/xds/xds_client/xds_bootstrap.cc +11 -1
  525. data/src/core/xds/xds_client/xds_bootstrap.h +7 -0
  526. data/src/core/xds/xds_client/xds_client.cc +552 -359
  527. data/src/core/xds/xds_client/xds_client.h +39 -14
  528. data/src/core/xds/xds_client/xds_resource_type.h +2 -3
  529. data/src/core/xds/xds_client/xds_resource_type_impl.h +3 -3
  530. data/src/ruby/lib/grpc/version.rb +1 -1
  531. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +13 -55
  532. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.cc +13 -55
  533. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.cc +13 -55
  534. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.cc +13 -55
  535. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.cc +17 -59
  536. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.cc +13 -55
  537. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +13 -55
  538. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.cc +13 -55
  539. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.cc +13 -55
  540. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.cc +13 -55
  541. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.cc +13 -55
  542. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.cc +13 -55
  543. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.cc +41 -76
  544. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.cc +13 -55
  545. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.cc +17 -91
  546. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.cc +13 -55
  547. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.cc +13 -55
  548. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.cc +13 -55
  549. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.cc +13 -55
  550. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.cc +13 -55
  551. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +13 -57
  552. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.cc +13 -13
  553. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +13 -55
  554. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +13 -55
  555. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.cc +13 -55
  556. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.cc +13 -55
  557. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +13 -55
  558. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.cc +13 -55
  559. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.cc +13 -55
  560. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +13 -13
  561. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.cc +13 -55
  562. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.cc +13 -55
  563. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +16 -57
  564. data/third_party/boringssl-with-bazel/src/crypto/bio/errno.cc +13 -55
  565. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.cc +14 -56
  566. data/third_party/boringssl-with-bazel/src/crypto/bio/file.cc +14 -56
  567. data/third_party/boringssl-with-bazel/src/crypto/bio/hexdump.cc +18 -58
  568. data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +13 -55
  569. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.cc +15 -51
  570. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.cc +17 -60
  571. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +13 -55
  572. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +13 -13
  573. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.cc +13 -13
  574. data/third_party/boringssl-with-bazel/src/crypto/{bn_extra → bn}/bn_asn1.cc +13 -13
  575. data/third_party/boringssl-with-bazel/src/crypto/{bn_extra → bn}/convert.cc +13 -55
  576. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.cc +14 -57
  577. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.cc +13 -13
  578. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.cc +13 -13
  579. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +13 -13
  580. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +23 -15
  581. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +13 -13
  582. data/third_party/boringssl-with-bazel/src/crypto/bytestring/unicode.cc +13 -13
  583. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.cc +13 -13
  584. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +18 -18
  585. data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +110 -0
  586. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/e_aesctrhmac.cc +18 -23
  587. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/e_aesgcmsiv.cc +20 -13
  588. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/e_chacha20poly1305.cc +13 -13
  589. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/e_des.cc +13 -55
  590. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_null.cc +51 -0
  591. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/e_rc2.cc +27 -69
  592. data/third_party/boringssl-with-bazel/src/crypto/cipher/e_rc4.cc +54 -0
  593. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/e_tls.cc +13 -13
  594. data/third_party/boringssl-with-bazel/src/crypto/cipher/get_cipher.cc +85 -0
  595. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/internal.h +29 -69
  596. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → cipher}/tls_cbc.cc +13 -51
  597. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.cc +14 -58
  598. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +13 -13
  599. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.cc +13 -13
  600. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_fuchsia.cc +13 -13
  601. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_linux.cc +13 -13
  602. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.cc +13 -13
  603. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_sysreg.cc +13 -13
  604. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_win.cc +14 -14
  605. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.cc +13 -13
  606. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +13 -13
  607. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +13 -13
  608. data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +13 -67
  609. data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +14 -14
  610. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.cc +13 -13
  611. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_64_adx.cc +13 -13
  612. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +13 -13
  613. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +13 -13
  614. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.cc +15 -13
  615. data/third_party/boringssl-with-bazel/src/crypto/des/des.cc +13 -55
  616. data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +27 -69
  617. data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +124 -0
  618. data/third_party/boringssl-with-bazel/src/crypto/{dh_extra → dh}/params.cc +13 -51
  619. data/third_party/boringssl-with-bazel/src/crypto/{digest_extra → digest}/digest_extra.cc +13 -55
  620. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +13 -58
  621. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +13 -53
  622. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +13 -13
  623. data/third_party/boringssl-with-bazel/src/crypto/{ec_extra → ec}/ec_asn1.cc +24 -61
  624. data/third_party/boringssl-with-bazel/src/crypto/{ec_extra → ec}/ec_derive.cc +13 -13
  625. data/third_party/boringssl-with-bazel/src/crypto/{ec_extra → ec}/hash_to_curve.cc +14 -14
  626. data/third_party/boringssl-with-bazel/src/crypto/{ec_extra → ec}/internal.h +13 -13
  627. data/third_party/boringssl-with-bazel/src/crypto/ecdh/ecdh.cc +73 -0
  628. data/third_party/boringssl-with-bazel/src/crypto/{ecdsa_extra → ecdsa}/ecdsa_asn1.cc +17 -61
  629. data/third_party/boringssl-with-bazel/src/crypto/engine/engine.cc +13 -13
  630. data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +17 -107
  631. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +13 -13
  632. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.cc +29 -79
  633. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +122 -198
  634. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +13 -55
  635. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +13 -55
  636. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh.cc +15 -8
  637. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.cc +13 -8
  638. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +56 -110
  639. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.cc +13 -54
  640. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +20 -66
  641. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.cc +13 -13
  642. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +13 -13
  643. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.cc +13 -13
  644. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.cc +19 -57
  645. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +13 -54
  646. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.cc +13 -13
  647. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +13 -13
  648. data/third_party/boringssl-with-bazel/src/crypto/evp/pbkdf.cc +29 -77
  649. data/third_party/boringssl-with-bazel/src/crypto/evp/print.cc +13 -51
  650. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.cc +13 -8
  651. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +13 -55
  652. data/third_party/boringssl-with-bazel/src/crypto/ex_data.cc +13 -107
  653. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +112 -48
  654. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.cc.inc +13 -13
  655. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{modes → aes}/cbc.cc.inc +13 -47
  656. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{modes → aes}/cfb.cc.inc +13 -47
  657. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ctr.cc.inc +100 -0
  658. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{modes → aes}/gcm.cc.inc +127 -314
  659. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{modes → aes}/gcm_nohw.cc.inc +13 -13
  660. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +419 -66
  661. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +13 -47
  662. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +13 -53
  663. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/ofb.cc.inc +53 -0
  664. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{modes → aes}/polyval.cc.inc +13 -13
  665. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +28 -20
  666. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +501 -14
  667. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/add.cc.inc +13 -55
  668. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +15 -2
  669. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.cc.inc +13 -55
  670. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.cc.inc +13 -55
  671. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.cc.inc +13 -55
  672. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.cc.inc +16 -57
  673. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +13 -55
  674. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.cc.inc +13 -13
  675. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +16 -109
  676. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +13 -107
  677. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +13 -13
  678. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.cc.inc +13 -55
  679. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +25 -134
  680. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +13 -51
  681. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +14 -109
  682. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.cc.inc +13 -13
  683. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +13 -55
  684. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +13 -107
  685. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.cc.inc +13 -107
  686. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.cc.inc +18 -13
  687. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +20 -17
  688. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +13 -55
  689. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +13 -53
  690. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.cc.inc +13 -13
  691. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.cc.inc +14 -56
  692. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +69 -283
  693. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aesccm.cc.inc +21 -58
  694. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +14 -65
  695. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/cmac.cc.inc +13 -47
  696. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +13 -13
  697. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +13 -55
  698. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +13 -55
  699. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +13 -13
  700. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +13 -55
  701. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.cc.inc +13 -55
  702. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +13 -55
  703. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +13 -47
  704. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/digestsign.cc.inc +13 -54
  705. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +91 -91
  706. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +14 -66
  707. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +14 -72
  708. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.cc.inc +14 -66
  709. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.cc.inc +13 -13
  710. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +19 -66
  711. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +14 -66
  712. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.cc.inc +13 -13
  713. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +15 -10
  714. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.cc.inc +22 -17
  715. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +22 -17
  716. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.cc.inc +13 -13
  717. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +13 -13
  718. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.cc.inc +21 -15
  719. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +14 -66
  720. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.cc.inc +13 -13
  721. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.cc.inc +13 -13
  722. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.cc.inc +14 -66
  723. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.cc.inc +14 -65
  724. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +13 -51
  725. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +13 -13
  726. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.cc +13 -13
  727. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/hkdf.cc.inc +13 -13
  728. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.cc.inc +13 -55
  729. data/third_party/boringssl-with-bazel/src/crypto/{keccak → fipsmodule/keccak}/internal.h +13 -13
  730. data/third_party/boringssl-with-bazel/src/crypto/{keccak/keccak.cc → fipsmodule/keccak/keccak.cc.inc} +14 -14
  731. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +1993 -0
  732. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +1165 -0
  733. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.cc.inc +18 -25
  734. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +18 -24
  735. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +15 -13
  736. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.cc.inc +14 -109
  737. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +13 -56
  738. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +13 -54
  739. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +18 -77
  740. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +38 -90
  741. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.cc.inc +13 -13
  742. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +13 -13
  743. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +34 -34
  744. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +13 -13
  745. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +44 -56
  746. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.cc.inc +13 -55
  747. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.cc.inc +13 -55
  748. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.cc.inc +13 -55
  749. data/third_party/boringssl-with-bazel/src/crypto/{slhdsa → fipsmodule/slhdsa}/address.h +28 -32
  750. data/third_party/boringssl-with-bazel/src/crypto/{slhdsa/fors.cc → fipsmodule/slhdsa/fors.cc.inc} +44 -44
  751. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fors.h +58 -0
  752. data/third_party/boringssl-with-bazel/src/crypto/{slhdsa/merkle.cc → fipsmodule/slhdsa/merkle.cc.inc} +46 -46
  753. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/merkle.h +70 -0
  754. data/third_party/boringssl-with-bazel/src/crypto/{slhdsa → fipsmodule/slhdsa}/params.h +20 -25
  755. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +329 -0
  756. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.cc.inc +173 -0
  757. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/thash.h +85 -0
  758. data/third_party/boringssl-with-bazel/src/crypto/{slhdsa/wots.cc → fipsmodule/slhdsa/wots.cc.inc} +46 -46
  759. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/wots.h +50 -0
  760. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +13 -13
  761. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.cc.inc +13 -51
  762. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.cc +13 -13
  763. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.cc +21 -13
  764. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +13 -13
  765. data/third_party/boringssl-with-bazel/src/crypto/internal.h +62 -205
  766. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +13 -13
  767. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.cc +52 -28
  768. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +31 -75
  769. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.cc +13 -55
  770. data/third_party/boringssl-with-bazel/src/crypto/md4/md4.cc +13 -55
  771. data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +13 -13
  772. data/third_party/boringssl-with-bazel/src/crypto/md5/md5.cc +13 -55
  773. data/third_party/boringssl-with-bazel/src/crypto/mem.cc +13 -55
  774. data/third_party/boringssl-with-bazel/src/crypto/mldsa/mldsa.cc +47 -1747
  775. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +97 -1042
  776. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +13 -55
  777. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +14 -56
  778. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_xref.cc +13 -55
  779. data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +44 -0
  780. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.cc +13 -107
  781. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.cc +18 -58
  782. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +56 -103
  783. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.cc +13 -55
  784. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.cc +13 -55
  785. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.cc +13 -55
  786. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.cc +13 -55
  787. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.cc +13 -55
  788. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +13 -13
  789. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +13 -13
  790. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +15 -13
  791. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +13 -54
  792. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +13 -54
  793. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +13 -54
  794. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +13 -54
  795. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +13 -13
  796. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.cc +13 -13
  797. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.cc +13 -13
  798. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.cc +13 -13
  799. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +13 -13
  800. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.cc +13 -13
  801. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra → rand}/deterministic.cc +13 -13
  802. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra → rand}/fork_detect.cc +13 -13
  803. data/third_party/boringssl-with-bazel/src/crypto/rand/forkunsafe.cc +44 -0
  804. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra → rand}/getentropy.cc +13 -13
  805. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra → rand}/getrandom_fillin.h +13 -13
  806. data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +42 -0
  807. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra → rand}/passive.cc +13 -13
  808. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra/rand_extra.cc → rand/rand.cc} +13 -13
  809. data/third_party/boringssl-with-bazel/src/crypto/rand/sysrand_internal.h +37 -0
  810. data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +46 -0
  811. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra → rand}/urandom.cc +13 -13
  812. data/third_party/boringssl-with-bazel/src/crypto/{rand_extra → rand}/windows.cc +13 -13
  813. data/third_party/boringssl-with-bazel/src/crypto/rc4/rc4.cc +13 -55
  814. data/third_party/boringssl-with-bazel/src/crypto/refcount.cc +13 -13
  815. data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +36 -0
  816. data/third_party/boringssl-with-bazel/src/crypto/{rsa_extra → rsa}/rsa_asn1.cc +13 -54
  817. data/third_party/boringssl-with-bazel/src/crypto/{rsa_extra → rsa}/rsa_crypt.cc +13 -55
  818. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_extra.cc +19 -0
  819. data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_print.cc +27 -0
  820. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +13 -13
  821. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +13 -13
  822. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +13 -13
  823. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.cc +13 -13
  824. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +62 -256
  825. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +204 -0
  826. data/third_party/boringssl-with-bazel/src/crypto/spake2plus/spake2plus.cc +501 -0
  827. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.cc +13 -55
  828. data/third_party/boringssl-with-bazel/src/crypto/thread.cc +13 -55
  829. data/third_party/boringssl-with-bazel/src/crypto/thread_none.cc +13 -13
  830. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.cc +13 -13
  831. data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +13 -13
  832. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +13 -13
  833. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.cc +14 -14
  834. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.cc +14 -14
  835. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.cc +14 -14
  836. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.cc +13 -55
  837. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +13 -55
  838. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.cc +13 -55
  839. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.cc +13 -55
  840. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +14 -56
  841. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.cc +25 -71
  842. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.cc +13 -55
  843. data/third_party/boringssl-with-bazel/src/crypto/x509/ext_dat.h +13 -55
  844. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.cc +13 -55
  845. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +13 -57
  846. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.cc +13 -55
  847. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.cc +13 -13
  848. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.cc +13 -54
  849. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.cc +13 -55
  850. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.cc +13 -55
  851. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.cc +13 -55
  852. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.cc +13 -55
  853. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akey.cc +13 -55
  854. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_akeya.cc +13 -55
  855. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_alt.cc +13 -54
  856. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bcons.cc +13 -55
  857. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_bitst.cc +13 -55
  858. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +13 -55
  859. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_cpols.cc +13 -57
  860. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_crld.cc +13 -55
  861. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_enum.cc +13 -55
  862. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_extku.cc +13 -55
  863. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_genn.cc +13 -55
  864. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ia5.cc +13 -57
  865. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +17 -66
  866. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_int.cc +13 -55
  867. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_lib.cc +14 -57
  868. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ncons.cc +13 -54
  869. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_ocsp.cc +13 -8
  870. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pcons.cc +13 -54
  871. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_pmaps.cc +13 -54
  872. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_prn.cc +13 -55
  873. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_purp.cc +13 -55
  874. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_skey.cc +13 -55
  875. data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.cc +17 -70
  876. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.cc +13 -55
  877. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.cc +13 -55
  878. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.cc +13 -55
  879. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.cc +13 -55
  880. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.cc +13 -55
  881. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.cc +13 -55
  882. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.cc +14 -60
  883. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.cc +13 -55
  884. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.cc +13 -55
  885. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.cc +13 -55
  886. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.cc +13 -55
  887. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.cc +13 -55
  888. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.cc +13 -55
  889. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +13 -55
  890. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.cc +13 -55
  891. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.cc +13 -55
  892. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.cc +13 -55
  893. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.cc +13 -55
  894. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.cc +13 -55
  895. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +13 -55
  896. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.cc +13 -55
  897. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.cc +13 -55
  898. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.cc +13 -55
  899. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.cc +13 -55
  900. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +13 -55
  901. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.cc +13 -55
  902. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.cc +13 -55
  903. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.cc +13 -55
  904. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.cc +13 -58
  905. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.cc +13 -55
  906. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +13 -55
  907. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +13 -55
  908. data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +465 -451
  909. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +13 -13
  910. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +13 -47
  911. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +13 -51
  912. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +14 -14
  913. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +23 -62
  914. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +13 -13
  915. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +14 -56
  916. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +15 -53
  917. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +13 -55
  918. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +13 -13
  919. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +13 -55
  920. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +13 -13
  921. data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +13 -55
  922. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +14 -121
  923. data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +13 -55
  924. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +13 -13
  925. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +31 -16
  926. data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +13 -55
  927. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +13 -13
  928. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +31 -59
  929. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +13 -13
  930. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +13 -55
  931. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +13 -13
  932. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +13 -13
  933. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +13 -13
  934. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +13 -13
  935. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +13 -55
  936. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +13 -55
  937. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +13 -55
  938. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +13 -58
  939. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +13 -13
  940. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +13 -13
  941. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +14 -66
  942. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +14 -71
  943. data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +14 -65
  944. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +13 -51
  945. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +13 -13
  946. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +13 -107
  947. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +13 -55
  948. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +13 -55
  949. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +13 -107
  950. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +13 -13
  951. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +13 -13
  952. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +13 -55
  953. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +13 -13
  954. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +13 -13
  955. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +13 -13
  956. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +13 -13
  957. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +13 -55
  958. data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +13 -55
  959. data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +13 -55
  960. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +13 -55
  961. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +13 -19
  962. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +13 -37
  963. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +27 -69
  964. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +13 -55
  965. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +13 -13
  966. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +13 -13
  967. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +13 -13
  968. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +13 -13
  969. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +13 -13
  970. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +22 -60
  971. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +13 -13
  972. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +13 -13
  973. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +13 -55
  974. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +13 -13
  975. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +13 -13
  976. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +13 -13
  977. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +13 -13
  978. data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +13 -55
  979. data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +13 -55
  980. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +13 -58
  981. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +13 -13
  982. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +13 -13
  983. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +13 -55
  984. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +13 -13
  985. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +54 -13
  986. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +19 -32
  987. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +13 -13
  988. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +198 -174
  989. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +14 -114
  990. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +13 -55
  991. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +23 -13
  992. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +13 -55
  993. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +13 -13
  994. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +27 -156
  995. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +15 -15
  996. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +13 -55
  997. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +14 -61
  998. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +13 -13
  999. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +13 -13
  1000. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +13 -53
  1001. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +13 -8
  1002. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +15 -114
  1003. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +13 -55
  1004. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +13 -110
  1005. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +17 -115
  1006. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -55
  1007. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +16 -115
  1008. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +32 -34
  1009. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +314 -132
  1010. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +19 -16
  1011. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +23 -123
  1012. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +55 -174
  1013. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +26 -157
  1014. data/third_party/boringssl-with-bazel/src/ssl/internal.h +104 -240
  1015. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +22 -120
  1016. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +16 -148
  1017. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +16 -110
  1018. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +16 -16
  1019. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +14 -81
  1020. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +15 -20
  1021. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +14 -113
  1022. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +19 -145
  1023. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +164 -37
  1024. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +13 -109
  1025. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +15 -17
  1026. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -184
  1027. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +23 -67
  1028. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +25 -144
  1029. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +14 -82
  1030. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +20 -143
  1031. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +15 -15
  1032. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +15 -139
  1033. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +28 -156
  1034. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +16 -16
  1035. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +91 -43
  1036. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +68 -80
  1037. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +154 -52
  1038. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +13 -55
  1039. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +15 -109
  1040. metadata +75 -66
  1041. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.cc +0 -127
  1042. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.cc +0 -152
  1043. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.cc +0 -93
  1044. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.cc +0 -96
  1045. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.cc +0 -165
  1046. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.cc +0 -124
  1047. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.cc.inc +0 -196
  1048. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +0 -448
  1049. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.cc.inc +0 -87
  1050. data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +0 -76
  1051. data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +0 -90
  1052. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/forkunsafe.cc +0 -44
  1053. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/ios.cc +0 -42
  1054. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +0 -37
  1055. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/trusty.cc +0 -46
  1056. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +0 -79
  1057. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_extra.cc +0 -17
  1058. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_print.cc +0 -22
  1059. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/fors.h +0 -58
  1060. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/internal.h +0 -63
  1061. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/merkle.h +0 -70
  1062. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.cc +0 -173
  1063. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.h +0 -85
  1064. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/wots.h +0 -50
@@ -1,16 +1,16 @@
1
- /* Copyright 2017 The BoringSSL Authors
2
- *
3
- * Permission to use, copy, modify, and/or distribute this software for any
4
- * purpose with or without fee is hereby granted, provided that the above
5
- * copyright notice and this permission notice appear in all copies.
6
- *
7
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
1
+ // Copyright 2017 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
14
 
15
15
  #ifndef OPENSSL_HEADER_SSL_SPAN_H
16
16
  #define OPENSSL_HEADER_SSL_SPAN_H
@@ -24,17 +24,12 @@ extern "C++" {
24
24
  #include <stdlib.h>
25
25
 
26
26
  #include <algorithm>
27
- #include <type_traits>
28
-
29
- #if __cplusplus >= 201703L
30
27
  #include <string_view>
31
- #endif
28
+ #include <type_traits>
32
29
 
33
- #if defined(__has_include)
34
30
  #if __has_include(<version>)
35
31
  #include <version>
36
32
  #endif
37
- #endif
38
33
 
39
34
  #if defined(__cpp_lib_ranges) && __cpp_lib_ranges >= 201911L
40
35
  #include <ranges>
@@ -74,12 +69,10 @@ class SpanBase {
74
69
 
75
70
  // Heuristically test whether C is a container type that can be converted into
76
71
  // a Span<T> by checking for data() and size() member functions.
77
- //
78
- // TODO(davidben): Require C++17 support for std::is_convertible_v, etc.
79
72
  template <typename C, typename T>
80
73
  using EnableIfContainer = std::enable_if_t<
81
- std::is_convertible<decltype(std::declval<C>().data()), T *>::value &&
82
- std::is_integral<decltype(std::declval<C>().size())>::value>;
74
+ std::is_convertible_v<decltype(std::declval<C>().data()), T *> &&
75
+ std::is_integral_v<decltype(std::declval<C>().size())>>;
83
76
 
84
77
  } // namespace internal
85
78
 
@@ -106,10 +99,10 @@ using EnableIfContainer = std::enable_if_t<
106
99
  //
107
100
  // FooMutate(bssl::Span<uint8_t>(vec));
108
101
  //
109
- // You can also use the |MakeSpan| and |MakeConstSpan| factory methods to
110
- // construct Spans in order to deduce the type of the Span automatically.
102
+ // You can also use C++17 class template argument deduction to construct Spans
103
+ // in order to deduce the type of the Span automatically.
111
104
  //
112
- // FooMutate(bssl::MakeSpan(vec));
105
+ // FooMutate(bssl::Span(vec));
113
106
  //
114
107
  // Note that Spans have value type sematics. They are cheap to construct and
115
108
  // copy, and should be passed by value whenever a method would otherwise accept
@@ -210,7 +203,6 @@ class Span : private internal::SpanBase<const T> {
210
203
  template <typename T>
211
204
  const size_t Span<T>::npos;
212
205
 
213
- #if __cplusplus >= 201703L
214
206
  template <typename T>
215
207
  Span(T *, size_t) -> Span<T>;
216
208
  template <typename T, size_t size>
@@ -220,10 +212,7 @@ template <
220
212
  typename T = std::remove_pointer_t<decltype(std::declval<C>().data())>,
221
213
  typename = internal::EnableIfContainer<C, T>>
222
214
  Span(C &) -> Span<T>;
223
- #endif
224
215
 
225
- // C++17 callers can instead rely on CTAD and the deduction guides defined
226
- // above.
227
216
  template <typename T>
228
217
  constexpr Span<T> MakeSpan(T *ptr, size_t size) {
229
218
  return Span<T>(ptr, size);
@@ -255,7 +244,6 @@ constexpr Span<const T> MakeConstSpan(T (&array)[size]) {
255
244
  return array;
256
245
  }
257
246
 
258
- #if __cplusplus >= 201703L
259
247
  inline Span<const uint8_t> StringAsBytes(std::string_view s) {
260
248
  return MakeConstSpan(reinterpret_cast<const uint8_t *>(s.data()), s.size());
261
249
  }
@@ -263,7 +251,6 @@ inline Span<const uint8_t> StringAsBytes(std::string_view s) {
263
251
  inline std::string_view BytesAsStringView(bssl::Span<const uint8_t> b) {
264
252
  return std::string_view(reinterpret_cast<const char *>(b.data()), b.size());
265
253
  }
266
- #endif
267
254
 
268
255
  BSSL_NAMESPACE_END
269
256
 
@@ -1,16 +1,16 @@
1
- /* Copyright 2015 The BoringSSL Authors
2
- *
3
- * Permission to use, copy, modify, and/or distribute this software for any
4
- * purpose with or without fee is hereby granted, provided that the above
5
- * copyright notice and this permission notice appear in all copies.
6
- *
7
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
1
+ // Copyright 2015 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
14
 
15
15
  /* This header is provided in order to make compiling against code that expects
16
16
  OpenSSL easier. */
@@ -1,143 +1,18 @@
1
- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
- * All rights reserved.
3
- *
4
- * This package is an SSL implementation written
5
- * by Eric Young (eay@cryptsoft.com).
6
- * The implementation was written so as to conform with Netscapes SSL.
7
- *
8
- * This library is free for commercial and non-commercial use as long as
9
- * the following conditions are aheared to. The following conditions
10
- * apply to all code found in this distribution, be it the RC4, RSA,
11
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12
- * included with this distribution is covered by the same copyright terms
13
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
- *
15
- * Copyright remains Eric Young's, and as such any Copyright notices in
16
- * the code are not to be removed.
17
- * If this package is used in a product, Eric Young should be given attribution
18
- * as the author of the parts of the library used.
19
- * This can be in the form of a textual message at program startup or
20
- * in documentation (online or textual) provided with the package.
21
- *
22
- * Redistribution and use in source and binary forms, with or without
23
- * modification, are permitted provided that the following conditions
24
- * are met:
25
- * 1. Redistributions of source code must retain the copyright
26
- * notice, this list of conditions and the following disclaimer.
27
- * 2. Redistributions in binary form must reproduce the above copyright
28
- * notice, this list of conditions and the following disclaimer in the
29
- * documentation and/or other materials provided with the distribution.
30
- * 3. All advertising materials mentioning features or use of this software
31
- * must display the following acknowledgement:
32
- * "This product includes cryptographic software written by
33
- * Eric Young (eay@cryptsoft.com)"
34
- * The word 'cryptographic' can be left out if the rouines from the library
35
- * being used are not cryptographic related :-).
36
- * 4. If you include any Windows specific code (or a derivative thereof) from
37
- * the apps directory (application code) you must include an acknowledgement:
38
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
- *
40
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
- * SUCH DAMAGE.
51
- *
52
- * The licence and distribution terms for any publically available version or
53
- * derivative of this code cannot be changed. i.e. this code cannot simply be
54
- * copied and put under another distribution licence
55
- * [including the GNU Public Licence.]
56
- */
57
- /* ====================================================================
58
- * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved.
59
- *
60
- * Redistribution and use in source and binary forms, with or without
61
- * modification, are permitted provided that the following conditions
62
- * are met:
63
- *
64
- * 1. Redistributions of source code must retain the above copyright
65
- * notice, this list of conditions and the following disclaimer.
66
- *
67
- * 2. Redistributions in binary form must reproduce the above copyright
68
- * notice, this list of conditions and the following disclaimer in
69
- * the documentation and/or other materials provided with the
70
- * distribution.
71
- *
72
- * 3. All advertising materials mentioning features or use of this
73
- * software must display the following acknowledgment:
74
- * "This product includes software developed by the OpenSSL Project
75
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
76
- *
77
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
78
- * endorse or promote products derived from this software without
79
- * prior written permission. For written permission, please contact
80
- * openssl-core@openssl.org.
81
- *
82
- * 5. Products derived from this software may not be called "OpenSSL"
83
- * nor may "OpenSSL" appear in their names without prior written
84
- * permission of the OpenSSL Project.
85
- *
86
- * 6. Redistributions of any form whatsoever must retain the following
87
- * acknowledgment:
88
- * "This product includes software developed by the OpenSSL Project
89
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
90
- *
91
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
92
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
93
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
94
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
95
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
96
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
97
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
98
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
99
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
100
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
101
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
102
- * OF THE POSSIBILITY OF SUCH DAMAGE.
103
- * ====================================================================
104
- *
105
- * This product includes cryptographic software written by Eric Young
106
- * (eay@cryptsoft.com). This product includes software written by Tim
107
- * Hudson (tjh@cryptsoft.com).
108
- *
109
- */
110
- /* ====================================================================
111
- * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
112
- * ECC cipher suite support in OpenSSL originally developed by
113
- * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
114
- */
115
- /* ====================================================================
116
- * Copyright 2005 Nokia. All rights reserved.
117
- *
118
- * The portions of the attached software ("Contribution") is developed by
119
- * Nokia Corporation and is licensed pursuant to the OpenSSL open source
120
- * license.
121
- *
122
- * The Contribution, originally written by Mika Kousa and Pasi Eronen of
123
- * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites
124
- * support (see RFC 4279) to OpenSSL.
125
- *
126
- * No patent licenses or other rights except those expressly stated in
127
- * the OpenSSL open source license shall be deemed granted or received
128
- * expressly, by implication, estoppel, or otherwise.
129
- *
130
- * No assurances are provided by Nokia that the Contribution does not
131
- * infringe the patent or other intellectual property rights of any third
132
- * party or that the license provides you with all the necessary rights
133
- * to make use of the Contribution.
134
- *
135
- * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN
136
- * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA
137
- * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY
138
- * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR
139
- * OTHERWISE.
140
- */
1
+ // Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
2
+ // Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
3
+ // Copyright 2005 Nokia. All rights reserved.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // https://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
141
16
 
142
17
  #ifndef OPENSSL_HEADER_SSL_H
143
18
  #define OPENSSL_HEADER_SSL_H
@@ -1272,17 +1147,29 @@ OPENSSL_EXPORT const EVP_MD *SSL_get_signature_algorithm_digest(
1272
1147
  OPENSSL_EXPORT int SSL_is_signature_algorithm_rsa_pss(uint16_t sigalg);
1273
1148
 
1274
1149
  // SSL_CTX_set_signing_algorithm_prefs configures |ctx| to use |prefs| as the
1275
- // preference list when signing with |ctx|'s private key. It returns one on
1276
- // success and zero on error. |prefs| should not include the internal-only value
1277
- // |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
1150
+ // preference list when signing with |ctx|'s private key in TLS 1.2 and up. It
1151
+ // returns one on success and zero on error. |prefs| should not include the
1152
+ // internal-only TLS 1.0 value |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
1153
+ //
1154
+ // This setting is not used in TLS 1.0 and 1.1. Those protocols always sign a
1155
+ // hardcoded algorithm (an MD5/SHA-1 concatenation for RSA, and SHA-1 for
1156
+ // ECDSA). BoringSSL will use those algorithms if and only if those versions are
1157
+ // used. To disable them, set the minimum version to TLS 1.2 (default) or
1158
+ // higher.
1278
1159
  OPENSSL_EXPORT int SSL_CTX_set_signing_algorithm_prefs(SSL_CTX *ctx,
1279
1160
  const uint16_t *prefs,
1280
1161
  size_t num_prefs);
1281
1162
 
1282
1163
  // SSL_set_signing_algorithm_prefs configures |ssl| to use |prefs| as the
1283
- // preference list when signing with |ssl|'s private key. It returns one on
1284
- // success and zero on error. |prefs| should not include the internal-only value
1285
- // |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
1164
+ // preference list when signing with |ssl|'s private key in TLS 1.2 and up. It
1165
+ // returns one on success and zero on error. |prefs| should not include the
1166
+ // internal-only TLS 1.0 value |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
1167
+ //
1168
+ // This setting is not used in TLS 1.0 and 1.1. Those protocols always sign a
1169
+ // hardcoded algorithm (an MD5/SHA-1 concatenation for RSA, and SHA-1 for
1170
+ // ECDSA). BoringSSL will use those algorithms if and only if those versions are
1171
+ // used. To disable them, set the minimum version to TLS 1.2 (default) or
1172
+ // higher.
1286
1173
  OPENSSL_EXPORT int SSL_set_signing_algorithm_prefs(SSL *ssl,
1287
1174
  const uint16_t *prefs,
1288
1175
  size_t num_prefs);
@@ -1912,10 +1799,11 @@ OPENSSL_EXPORT int SSL_session_reused(const SSL *ssl);
1912
1799
  // renegotiation (RFC 5746) or TLS 1.3. Otherwise, it returns zero.
1913
1800
  OPENSSL_EXPORT int SSL_get_secure_renegotiation_support(const SSL *ssl);
1914
1801
 
1915
- // SSL_export_keying_material exports a value derived from the master secret, as
1916
- // specified in RFC 5705. It writes |out_len| bytes to |out| given a label and
1917
- // optional context. (Since a zero length context is allowed, the |use_context|
1918
- // flag controls whether a context is included.)
1802
+ // SSL_export_keying_material exports a connection-specific secret from |ssl|,
1803
+ // as specified in RFC 5705. It writes |out_len| bytes to |out| given a label
1804
+ // and optional context. If |use_context| is zero, the |context| parameter is
1805
+ // ignored. Prior to TLS 1.3, using a zero-length context and using no context
1806
+ // would give different output.
1919
1807
  //
1920
1808
  // It returns one on success and zero otherwise.
1921
1809
  OPENSSL_EXPORT int SSL_export_keying_material(
@@ -2971,17 +2859,29 @@ OPENSSL_EXPORT int SSL_set0_verify_cert_store(SSL *ssl, X509_STORE *store);
2971
2859
  OPENSSL_EXPORT int SSL_set1_verify_cert_store(SSL *ssl, X509_STORE *store);
2972
2860
 
2973
2861
  // SSL_CTX_set_verify_algorithm_prefs configures |ctx| to use |prefs| as the
2974
- // preference list when verifying signatures from the peer's long-term key. It
2975
- // returns one on zero on error. |prefs| should not include the internal-only
2976
- // value |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
2862
+ // preference list when verifying signatures from the peer's long-term key in
2863
+ // TLS 1.2 and up. It returns one on zero on error. |prefs| should not include
2864
+ // the internal-only TLS 1.0 value |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
2865
+ //
2866
+ // This setting is not used in TLS 1.0 and 1.1. Those protocols always sign a
2867
+ // hardcoded algorithm (an MD5/SHA-1 concatenation for RSA, and SHA-1 for
2868
+ // ECDSA). BoringSSL will accept those algorithms if and only if those versions
2869
+ // are used. To disable them, set the minimum version to TLS 1.2 (default) or
2870
+ // higher.
2977
2871
  OPENSSL_EXPORT int SSL_CTX_set_verify_algorithm_prefs(SSL_CTX *ctx,
2978
2872
  const uint16_t *prefs,
2979
2873
  size_t num_prefs);
2980
2874
 
2981
2875
  // SSL_set_verify_algorithm_prefs configures |ssl| to use |prefs| as the
2982
- // preference list when verifying signatures from the peer's long-term key. It
2983
- // returns one on zero on error. |prefs| should not include the internal-only
2984
- // value |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
2876
+ // preference list when verifying signatures from the peer's long-term key in
2877
+ // TLS 1.2 and up. It returns one on zero on error. |prefs| should not include
2878
+ // the internal-only TLS 1.0 value |SSL_SIGN_RSA_PKCS1_MD5_SHA1|.
2879
+ //
2880
+ // This setting is not used in TLS 1.0 and 1.1. Those protocols always sign a
2881
+ // hardcoded algorithm (an MD5/SHA-1 concatenation for RSA, and SHA-1 for
2882
+ // ECDSA). BoringSSL will accept those algorithms if and only if those versions
2883
+ // are used. To disable them, set the minimum version to TLS 1.2 (default) or
2884
+ // higher.
2985
2885
  OPENSSL_EXPORT int SSL_set_verify_algorithm_prefs(SSL *ssl,
2986
2886
  const uint16_t *prefs,
2987
2887
  size_t num_prefs);
@@ -3621,6 +3521,120 @@ OPENSSL_EXPORT int SSL_CREDENTIAL_set1_delegated_credential(
3621
3521
  SSL_CREDENTIAL *cred, CRYPTO_BUFFER *dc);
3622
3522
 
3623
3523
 
3524
+ // Password Authenticated Key Exchange (PAKE).
3525
+ //
3526
+ // Password Authenticated Key Exchange protocols allow client and server to
3527
+ // mutually authenticate one another using knowledge of a password or other
3528
+ // low-entropy secret. While the TLS 1.3 pre-shared key (PSK) mechanism can
3529
+ // authenticate a high-entropy secret, it cannot be used with low-entropy
3530
+ // secrets as the PSK binder values can be used to mount a dictionary attack on
3531
+ // a low-entropy PSK. Using TLS 1.3 with a PAKE limits an attacker to confirming
3532
+ // one password guess per handshake attempt.
3533
+ //
3534
+ // WARNING: The PAKE mode in TLS is not a general-purpose authentication scheme.
3535
+ // As the underlying secret is still low-entropy, callers must limit brute force
3536
+ // attacks across multiple connections, especially in multi-connection protocols
3537
+ // such as HTTP. The |error_limit| and |rate_limit| parameters in the functions
3538
+ // below may be used to implement this, provided the same |SSL_CREDENTIAL|
3539
+ // object is used across connections. Applications using multiple connections
3540
+ // should use the PAKE credential only once to authenticate a high-entropy
3541
+ // secret, e.g. exporting a PSK from |SSL_export_keying_material|, and use the
3542
+ // high-entropy secret for subsequent connections.
3543
+ //
3544
+ // TODO(crbug.com/369963041): Implement RFC 9258 so one can actually do that.
3545
+ //
3546
+ // WARNING: PAKE support in TLS is still experimental and may change as the
3547
+ // standard evolves. See
3548
+ // https://chris-wood.github.io/draft-bmw-tls-pake13/draft-bmw-tls-pake13.html
3549
+ //
3550
+ // Currently, only the SPAKE2PLUS_V1 named PAKE algorithm is implemented; see
3551
+ // https://chris-wood.github.io/draft-bmw-tls-pake13/draft-bmw-tls-pake13.html#section-8.1.
3552
+
3553
+ // SSL_PAKE_SPAKE2PLUSV1 is the codepoint for SPAKE2PLUS_V1. See
3554
+ // https://chris-wood.github.io/draft-bmw-tls-pake13/draft-bmw-tls-pake13.html#name-named-pake-registry.
3555
+ #define SSL_PAKE_SPAKE2PLUSV1 0x7d96
3556
+
3557
+ // SSL_spake2plusv1_register computes the values that the client (w0,
3558
+ // w1) and server (w0, registration_record) require to run SPAKE2+. These values
3559
+ // can be used when calling |SSL_CREDENTIAL_new_spake2plusv1_client| and
3560
+ // |SSL_CREDENTIAL_new_spake2plusv1_server|. The client and server identities
3561
+ // must match the values passed to those functions.
3562
+ //
3563
+ // Returns one on success and zero on error.
3564
+ OPENSSL_EXPORT int SSL_spake2plusv1_register(
3565
+ uint8_t out_w0[32], uint8_t out_w1[32], uint8_t out_registration_record[65],
3566
+ const uint8_t *password, size_t password_len,
3567
+ const uint8_t *client_identity, size_t client_identity_len,
3568
+ const uint8_t *server_identity, size_t server_identity_len);
3569
+
3570
+ // SSL_CREDENTIAL_new_spake2plusv1_client creates a new |SSL_CREDENTIAL| that
3571
+ // authenticates using SPAKE2+. It is to be used with a TLS client.
3572
+ //
3573
+ // The |context|, |client_identity|, and |server_identity| fields serve to
3574
+ // identity the SPAKE2+ settings and both sides of a connection must agree on
3575
+ // these values. If |context| is |NULL|, a default value will be used.
3576
+ //
3577
+ // |error_limit| is the number of failed handshakes allowed on the credential.
3578
+ // After the limit is reached, using the credential will fail. Ideally this
3579
+ // value is set to 1. Setting it to a higher value allows an attacker to have
3580
+ // that many attempts at guessing the password using this |SSL_CREDENTIAL|.
3581
+ // (Assuming that multiple TLS connections are allowed.)
3582
+ //
3583
+ // |w0| and |w1| come from calling |SSL_spake2plusv1_register|.
3584
+ //
3585
+ // Unlike most |SSL_CREDENTIAL|s, PAKE client credentials must be the only
3586
+ // credential configured on the connection. BoringSSL does not currently support
3587
+ // configuring multiple PAKE credentials as a client, or configuring a mix of
3588
+ // PAKE and non-PAKE credentials. Once a PAKE credential is configured, the
3589
+ // connection will require the server to authenticate with the same secret, so a
3590
+ // successful connection then implies that the server supported the PAKE and
3591
+ // knew the password.
3592
+ OPENSSL_EXPORT SSL_CREDENTIAL *SSL_CREDENTIAL_new_spake2plusv1_client(
3593
+ const uint8_t *context, size_t context_len, const uint8_t *client_identity,
3594
+ size_t client_identity_len, const uint8_t *server_identity,
3595
+ size_t server_identity_len, uint32_t error_limit, const uint8_t *w0,
3596
+ size_t w0_len, const uint8_t *w1, size_t w1_len);
3597
+
3598
+ // SSL_CREDENTIAL_new_spake2plusv1_server creates a new |SSL_CREDENTIAL| that
3599
+ // authenticates using SPAKE2+. It is to be used with a TLS server.
3600
+ //
3601
+ // The |context|, |client_identity|, and |server_identity| fields serve to
3602
+ // identity the SPAKE2+ settings and both sides of a connection must agree on
3603
+ // these values. If |context| is |NULL|, a default value will be used.
3604
+ //
3605
+ // |rate_limit| is the number of failed or unfinished handshakes allowed on the
3606
+ // credential. After the limit is reached, using the credential will fail.
3607
+ // Ideally this value is set to 1. Setting it to a higher value allows an
3608
+ // attacker to have that many attempts at guessing the password using this
3609
+ // |SSL_CREDENTIAL|. (Assuming that multiple TLS connections are allowed.)
3610
+ //
3611
+ // WARNING: |rate_limit| differs from the client's |error_limit| parameter.
3612
+ // Server PAKE credentials must temporarily deduct incomplete handshakes from
3613
+ // the limit, until the peer completes the handshake correctly. Thus
3614
+ // applications use that multiple connections in parallel may need a higher
3615
+ // limit, and thus higher attacker exposure, to avoid failures. Such
3616
+ // applications should instead use one PAKE-based connection to established a
3617
+ // high-entropy secret (e.g. with |SSL_export_keying_material|) instead of
3618
+ // repeating the PAKE exchange for each connection.
3619
+ //
3620
+ // |w0| and |registration_record| come from calling |SSL_spake2plusv1_register|,
3621
+ // which may be computed externally so that the server does not know the
3622
+ // password, or a password-equivalent secret.
3623
+ //
3624
+ // A server wishing to support a PAKE should install one of these credentials.
3625
+ // It is also possible to install certificate-based credentials, in which case
3626
+ // both PAKE and non-PAKE clients can be supported. However, if only a PAKE
3627
+ // credential is installed then the server knows that any successfully-connected
3628
+ // clients also knows the password. Otherwise, the server must be careful to
3629
+ // inspect the credential used for a connection before assuming that.
3630
+ OPENSSL_EXPORT SSL_CREDENTIAL *SSL_CREDENTIAL_new_spake2plusv1_server(
3631
+ const uint8_t *context, size_t context_len, const uint8_t *client_identity,
3632
+ size_t client_identity_len, const uint8_t *server_identity,
3633
+ size_t server_identity_len, uint32_t rate_limit, const uint8_t *w0,
3634
+ size_t w0_len, const uint8_t *registration_record,
3635
+ size_t registration_record_len);
3636
+
3637
+
3624
3638
  // QUIC integration.
3625
3639
  //
3626
3640
  // QUIC acts as an underlying transport for the TLS 1.3 handshake. The following
@@ -4907,23 +4921,18 @@ OPENSSL_EXPORT int SSL_used_hello_retry_request(const SSL *ssl);
4907
4921
  // https://bugs.openjdk.java.net/browse/JDK-8213202
4908
4922
  OPENSSL_EXPORT void SSL_set_jdk11_workaround(SSL *ssl, int enable);
4909
4923
 
4910
- // SSL_set_check_client_certificate_type configures whether the client, in
4911
- // TLS 1.2 and below, will check its certificate against the server's requested
4912
- // certificate types.
4924
+ // SSL_parse_client_hello decodes a ClientHello structure from |len| bytes in
4925
+ // |in|. On success, it returns one and writes the result to |*out|. Otherwise,
4926
+ // it returns zero. |ssl| will be saved into |*out| and determines how the
4927
+ // ClientHello is parsed, notably TLS vs DTLS. The fields in |*out| will alias
4928
+ // |in| and are only valid as long as |in| is valid and unchanged.
4913
4929
  //
4914
- // By default, this option is enabled. If disabled, certificate selection within
4915
- // the library may not function correctly. This flag is provided temporarily in
4916
- // case of compatibility issues. It will be removed sometime after June 2024.
4917
- OPENSSL_EXPORT void SSL_set_check_client_certificate_type(SSL *ssl, int enable);
4918
-
4919
- // SSL_set_check_ecdsa_curve configures whether the server, in TLS 1.2 and
4920
- // below, will check its certificate against the client's supported ECDSA
4921
- // curves.
4922
- //
4923
- // By default, this option is enabled. If disabled, certificate selection within
4924
- // the library may not function correctly. This flag is provided temporarily in
4925
- // case of compatibility issues. It will be removed sometime after June 2024.
4926
- OPENSSL_EXPORT void SSL_set_check_ecdsa_curve(SSL *ssl, int enable);
4930
+ // |in| should contain just the ClientHello structure (RFC 8446 and RFC 9147),
4931
+ // excluding the handshake header and already reassembled from record layer.
4932
+ // That is, |in| should begin with the legacy_version field, not the
4933
+ // client_hello HandshakeType constant or the handshake ContentType constant.
4934
+ OPENSSL_EXPORT int SSL_parse_client_hello(const SSL *ssl, SSL_CLIENT_HELLO *out,
4935
+ const uint8_t *in, size_t len);
4927
4936
 
4928
4937
 
4929
4938
  // Deprecated functions.
@@ -5674,7 +5683,7 @@ enum ssl_compliance_policy_t BORINGSSL_ENUM_INT {
5674
5683
  // other than by the supported signature algorithms. But WPA3's "192-bit"
5675
5684
  // mode requires at least P-384 or 3072-bit along the chain. The caller must
5676
5685
  // enforce this themselves on the verified chain using functions such as
5677
- // `X509_STORE_CTX_get0_chain`.
5686
+ // |X509_STORE_CTX_get0_chain|.
5678
5687
  //
5679
5688
  // Note that this setting is less secure than the default. The
5680
5689
  // implementation risks of using a more obscure primitive like P-384
@@ -5698,11 +5707,20 @@ enum ssl_compliance_policy_t BORINGSSL_ENUM_INT {
5698
5707
  OPENSSL_EXPORT int SSL_CTX_set_compliance_policy(
5699
5708
  SSL_CTX *ctx, enum ssl_compliance_policy_t policy);
5700
5709
 
5710
+ // SSL_CTX_get_compliance_policy returns the compliance policy configured on
5711
+ // |ctx|.
5712
+ OPENSSL_EXPORT enum ssl_compliance_policy_t SSL_CTX_get_compliance_policy(
5713
+ const SSL_CTX *ctx);
5714
+
5701
5715
  // SSL_set_compliance_policy acts the same as |SSL_CTX_set_compliance_policy|,
5702
5716
  // but only configures a single |SSL*|.
5703
5717
  OPENSSL_EXPORT int SSL_set_compliance_policy(
5704
5718
  SSL *ssl, enum ssl_compliance_policy_t policy);
5705
5719
 
5720
+ // SSL_get_compliance_policy returns the compliance policy configured on
5721
+ // |ssl|.
5722
+ OPENSSL_EXPORT enum ssl_compliance_policy_t SSL_get_compliance_policy(
5723
+ const SSL *ssl);
5706
5724
 
5707
5725
  // Nodejs compatibility section (hidden).
5708
5726
  //
@@ -5725,7 +5743,7 @@ OPENSSL_EXPORT int SSL_set_compliance_policy(
5725
5743
  //
5726
5744
  // See PORTING.md in the BoringSSL source tree for a table of corresponding
5727
5745
  // functions.
5728
- // https://boringssl.googlesource.com/boringssl/+/master/PORTING.md#Replacements-for-values
5746
+ // https://boringssl.googlesource.com/boringssl/+/main/PORTING.md#Replacements-for-values
5729
5747
 
5730
5748
  #define DTLS_CTRL_GET_TIMEOUT doesnt_exist
5731
5749
  #define DTLS_CTRL_HANDLE_TIMEOUT doesnt_exist
@@ -6187,6 +6205,11 @@ BSSL_NAMESPACE_END
6187
6205
  #define SSL_R_INVALID_OUTER_EXTENSION 320
6188
6206
  #define SSL_R_INCONSISTENT_ECH_NEGOTIATION 321
6189
6207
  #define SSL_R_INVALID_ALPS_CODEPOINT 322
6208
+ #define SSL_R_NO_MATCHING_ISSUER 323
6209
+ #define SSL_R_INVALID_SPAKE2PLUSV1_VALUE 324
6210
+ #define SSL_R_PAKE_EXHAUSTED 325
6211
+ #define SSL_R_PEER_PAKE_MISMATCH 326
6212
+ #define SSL_R_UNSUPPORTED_CREDENTIAL_LIST 327
6190
6213
  #define SSL_R_SSLV3_ALERT_CLOSE_NOTIFY 1000
6191
6214
  #define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
6192
6215
  #define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020
@@ -6221,5 +6244,6 @@ BSSL_NAMESPACE_END
6221
6244
  #define SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED 1116
6222
6245
  #define SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL 1120
6223
6246
  #define SSL_R_TLSV1_ALERT_ECH_REQUIRED 1121
6247
+ #define SSL_R_PAKE_AND_KEY_SHARE_NOT_ALLOWED 1122
6224
6248
 
6225
6249
  #endif // OPENSSL_HEADER_SSL_H