grpc 1.84.1 → 1.85.0.pre1

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.

Potentially problematic release.


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

Files changed (1005) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +40 -27
  3. data/etc/roots.pem +7940 -6467
  4. data/include/grpc/event_engine/memory_allocator.h +1 -0
  5. data/include/grpc/grpc.h +3 -0
  6. data/include/grpc/grpc_security_constants.h +2 -0
  7. data/include/grpc/impl/channel_arg_names.h +4 -0
  8. data/src/core/call/call_filters.h +10 -10
  9. data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
  10. data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
  11. data/src/core/call/filter_fusion.h +15 -15
  12. data/src/core/call/interception_chain.h +3 -3
  13. data/src/core/call/metadata_batch.cc +1 -0
  14. data/src/core/call/metadata_batch.h +45 -33
  15. data/src/core/call/parsed_metadata.h +3 -3
  16. data/src/core/call/request_buffer.cc +6 -6
  17. data/src/core/call/request_buffer.h +1 -1
  18. data/src/core/channelz/channel_trace.cc +5 -5
  19. data/src/core/channelz/channel_trace.h +1 -1
  20. data/src/core/channelz/channelz.cc +9 -9
  21. data/src/core/channelz/channelz.h +12 -12
  22. data/src/core/channelz/channelz_registry.cc +10 -10
  23. data/src/core/channelz/ztrace_collector.h +5 -5
  24. data/src/core/client_channel/client_channel.cc +4 -4
  25. data/src/core/client_channel/client_channel_filter.cc +14 -14
  26. data/src/core/client_channel/global_subchannel_pool.cc +4 -4
  27. data/src/core/client_channel/subchannel.cc +24 -23
  28. data/src/core/client_channel/subchannel_stream_client.cc +5 -5
  29. data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
  30. data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
  31. data/src/core/credentials/call/external/external_account_credentials.cc +4 -4
  32. data/src/core/credentials/call/regional_access_boundary_fetcher.cc +9 -9
  33. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +4 -4
  34. data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
  35. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +1 -1
  36. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +9 -9
  37. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +1 -1
  38. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +6 -6
  39. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
  40. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +4 -4
  41. data/src/core/credentials/transport/tls/ssl_utils.cc +10 -0
  42. data/src/core/credentials/transport/tls/tls_security_connector.cc +10 -10
  43. data/src/core/credentials/transport/tls/tls_security_connector.h +6 -6
  44. data/src/core/credentials/transport/tls/tls_utils.h +9 -0
  45. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
  46. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  47. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  48. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
  49. data/src/core/ext/filters/http/message_compress/compression_filter.cc +15 -0
  50. data/src/core/ext/filters/rbac/rbac_filter.h +1 -1
  51. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -5
  52. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -21
  53. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -11
  54. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +14 -11
  55. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
  56. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -4
  57. data/src/core/ext/transport/chttp2/transport/frame.h +9 -0
  58. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -9
  59. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -2
  60. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +16 -18
  61. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +2 -1
  62. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +277 -189
  63. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +40 -17
  64. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +12 -24
  65. data/src/core/ext/transport/chttp2/transport/http2_transport.h +3 -29
  66. data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
  67. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
  68. data/src/core/ext/transport/chttp2/transport/read_context.h +96 -3
  69. data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
  70. data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
  71. data/src/core/ext/transport/chttp2/transport/security_frame.h +8 -8
  72. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +17 -9
  73. data/src/core/ext/transport/chttp2/transport/write_cycle.h +23 -3
  74. data/src/core/ext/transport/inproc/inproc_transport.cc +5 -5
  75. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h +137 -73
  76. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +45 -25
  77. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +6 -6
  78. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.c +4 -4
  79. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -5
  80. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +46 -26
  81. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.c +17 -14
  82. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -5
  83. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +5 -5
  84. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.c +3 -3
  85. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.h +5 -5
  86. data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
  87. data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
  88. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -5
  89. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +5 -5
  90. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.c +3 -3
  91. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.h +5 -5
  92. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb.h +185 -23
  93. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.c +20 -12
  94. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -5
  95. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +58 -42
  96. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.c +17 -12
  97. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.h +5 -5
  98. data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +567 -549
  99. data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
  100. data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
  101. data/src/core/filter/ext_proc/ext_proc_filter.cc +1603 -46
  102. data/src/core/filter/ext_proc/ext_proc_filter.h +55 -22
  103. data/src/core/filter/ext_proc/ext_proc_messages.cc +106 -51
  104. data/src/core/filter/ext_proc/ext_proc_messages.h +36 -9
  105. data/src/core/handshaker/handshaker.cc +4 -4
  106. data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
  107. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
  108. data/src/core/handshaker/security/secure_endpoint.cc +13 -13
  109. data/src/core/handshaker/security/security_handshaker.cc +6 -6
  110. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
  111. data/src/core/lib/channel/channel_args.cc +20 -0
  112. data/src/core/lib/channel/channel_args.h +17 -17
  113. data/src/core/lib/channel/promise_based_filter.cc +2 -2
  114. data/src/core/lib/channel/promise_based_filter.h +66 -27
  115. data/src/core/lib/debug/trace_flags.cc +2 -0
  116. data/src/core/lib/debug/trace_flags.h +1 -0
  117. data/src/core/lib/event_engine/ares_resolver.cc +14 -14
  118. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
  119. data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
  120. data/src/core/lib/event_engine/default_event_engine.cc +5 -5
  121. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -9
  122. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +16 -14
  123. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
  124. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
  125. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1 -1
  126. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +7 -7
  127. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +17 -17
  128. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -3
  129. data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
  130. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
  131. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
  132. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -1
  133. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
  134. data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
  135. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
  136. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
  137. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +3 -3
  138. data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
  139. data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
  140. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
  141. data/src/core/lib/experiments/experiments.cc +48 -0
  142. data/src/core/lib/experiments/experiments.h +24 -0
  143. data/src/core/lib/iomgr/buffer_list.cc +3 -3
  144. data/src/core/lib/iomgr/buffer_list.h +1 -1
  145. data/src/core/lib/iomgr/combiner.cc +0 -1
  146. data/src/core/lib/iomgr/ev_apple.cc +4 -4
  147. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  148. data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
  149. data/src/core/lib/iomgr/tcp_posix.cc +7 -7
  150. data/src/core/lib/promise/activity.cc +1 -1
  151. data/src/core/lib/promise/activity.h +1 -1
  152. data/src/core/lib/promise/arena_promise.h +7 -7
  153. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  154. data/src/core/lib/promise/detail/promise_like.h +4 -4
  155. data/src/core/lib/promise/inter_activity_latch.h +6 -6
  156. data/src/core/lib/promise/inter_activity_pipe.h +1 -1
  157. data/src/core/lib/promise/observable.h +3 -3
  158. data/src/core/lib/promise/party.cc +1 -1
  159. data/src/core/lib/promise/try_seq.h +2 -2
  160. data/src/core/lib/resource_quota/arena.h +3 -3
  161. data/src/core/lib/resource_quota/memory_quota.cc +16 -16
  162. data/src/core/lib/resource_quota/memory_quota.h +1 -1
  163. data/src/core/lib/resource_quota/thread_quota.cc +3 -3
  164. data/src/core/lib/security/authorization/audit_logging.cc +5 -5
  165. data/src/core/lib/security/authorization/authorization_engine.h +1 -1
  166. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
  167. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  168. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  169. data/src/core/lib/security/authorization/matchers.h +1 -1
  170. data/src/core/lib/surface/call.cc +8 -7
  171. data/src/core/lib/surface/call.h +3 -3
  172. data/src/core/lib/surface/call_utils.h +4 -0
  173. data/src/core/lib/surface/channel.cc +1 -1
  174. data/src/core/lib/surface/channel.h +1 -1
  175. data/src/core/lib/surface/channel_init.cc +1 -1
  176. data/src/core/lib/surface/init.cc +7 -7
  177. data/src/core/lib/surface/lame_client.cc +1 -1
  178. data/src/core/lib/surface/legacy_channel.cc +2 -2
  179. data/src/core/lib/surface/version.cc +1 -1
  180. data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
  181. data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
  182. data/src/core/load_balancing/autosharding/autosharding.h +78 -0
  183. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
  184. data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
  185. data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
  186. data/src/core/load_balancing/health_check_client.cc +7 -7
  187. data/src/core/load_balancing/lb_policy.cc +1 -1
  188. data/src/core/load_balancing/oob_backend_metric.cc +5 -5
  189. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
  190. data/src/core/load_balancing/ring_hash/ring_hash.cc +109 -37
  191. data/src/core/load_balancing/rls/rls.cc +23 -17
  192. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +10 -10
  193. data/src/core/load_balancing/xds/cds.cc +6 -5
  194. data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -2
  195. data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
  196. data/src/core/mitigation_engine/mitigation_engine.h +28 -4
  197. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  198. data/src/core/resolver/dns/dns_resolver.cc +7 -7
  199. data/src/core/resolver/fake/fake_resolver.cc +5 -5
  200. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -30
  201. data/src/core/server/server.cc +30 -30
  202. data/src/core/server/server.h +4 -3
  203. data/src/core/server/server_config_selector_filter.cc +3 -3
  204. data/src/core/server/xds_server_config_fetcher_legacy.cc +15 -15
  205. data/src/core/telemetry/default_tcp_tracer.cc +1 -1
  206. data/src/core/telemetry/instrument.cc +30 -16
  207. data/src/core/telemetry/instrument.h +3 -3
  208. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
  209. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -4
  210. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
  211. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  212. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
  213. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
  214. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
  215. data/src/core/tsi/ssl_transport_security.cc +46 -13
  216. data/src/core/tsi/ssl_transport_security.h +7 -0
  217. data/src/core/tsi/ssl_transport_security_utils.cc +16 -6
  218. data/src/core/util/event_log.cc +3 -3
  219. data/src/core/util/http_client/httpcli.cc +5 -5
  220. data/src/core/util/http_client/httpcli.h +1 -1
  221. data/src/core/util/json/json_object_loader.cc +7 -0
  222. data/src/core/util/json/json_object_loader.h +17 -2
  223. data/src/core/util/latent_see.cc +123 -36
  224. data/src/core/util/latent_see.h +14 -1
  225. data/src/core/util/mpscq.cc +1 -1
  226. data/src/core/util/notification.h +4 -4
  227. data/src/core/util/sync.h +20 -6
  228. data/src/core/util/table.h +20 -22
  229. data/src/core/util/work_serializer.cc +2 -2
  230. data/src/core/xds/grpc/blackboard.cc +4 -3
  231. data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
  232. data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
  233. data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
  234. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +2 -2
  235. data/src/core/xds/grpc/xds_client_grpc.cc +8 -8
  236. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  237. data/src/core/xds/grpc/xds_endpoint.cc +1 -1
  238. data/src/core/xds/grpc/xds_endpoint_parser.cc +11 -0
  239. data/src/core/xds/grpc/xds_grpc_service_parser.cc +12 -10
  240. data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +17 -14
  241. data/src/core/xds/grpc/xds_matcher.h +2 -2
  242. data/src/core/xds/grpc/xds_transport_grpc.cc +125 -85
  243. data/src/core/xds/grpc/xds_transport_grpc.h +19 -4
  244. data/src/core/xds/xds_client/lrs_client.cc +22 -19
  245. data/src/core/xds/xds_client/xds_client.cc +19 -16
  246. data/src/core/xds/xds_client/xds_transport.h +49 -3
  247. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  248. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  249. data/src/ruby/lib/grpc/version.rb +1 -1
  250. data/src/ruby/pb/README.md +1 -1
  251. data/src/ruby/pb/generate_proto_ruby.sh +1 -1
  252. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
  253. data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
  254. data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
  255. data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
  256. data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
  257. data/third_party/abseil-cpp/absl/base/casts.h +135 -2
  258. data/third_party/abseil-cpp/absl/base/config.h +63 -41
  259. data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
  260. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  261. data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
  262. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
  263. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
  264. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
  265. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
  266. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  267. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
  268. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
  269. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
  270. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
  271. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
  272. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
  273. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  274. data/third_party/abseil-cpp/absl/base/macros.h +76 -37
  275. data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
  276. data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
  277. data/third_party/abseil-cpp/absl/base/options.h +46 -18
  278. data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
  279. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
  280. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
  281. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
  282. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
  283. data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
  284. data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
  285. data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
  286. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
  287. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
  288. data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
  289. data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
  290. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
  291. data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
  292. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  293. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
  294. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
  295. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
  296. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
  297. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
  298. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
  299. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
  300. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
  301. data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
  302. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
  303. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
  304. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
  305. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
  306. data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
  307. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
  308. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
  309. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
  310. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
  311. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
  312. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
  313. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
  314. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  315. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  316. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
  317. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  318. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
  319. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
  320. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
  321. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
  322. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
  323. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
  324. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  325. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
  326. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
  327. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
  328. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
  329. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
  330. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
  331. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
  332. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
  333. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  334. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
  335. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  336. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
  337. data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
  338. data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
  339. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  340. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
  341. data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
  342. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
  343. data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
  344. data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
  345. data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
  346. data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
  347. data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
  348. data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
  349. data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
  350. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
  351. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
  352. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
  353. data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
  354. data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
  355. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
  356. data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
  357. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
  358. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  359. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
  360. data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
  361. data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
  362. data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  363. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
  364. data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
  365. data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
  366. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
  367. data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
  368. data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
  369. data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
  370. data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
  371. data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
  372. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  373. data/third_party/abseil-cpp/absl/log/log.h +2 -2
  374. data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
  375. data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
  376. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
  377. data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
  378. data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
  379. data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
  380. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  381. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  382. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
  383. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
  384. data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
  385. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
  386. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
  387. data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
  388. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
  389. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
  390. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
  391. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
  392. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  393. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
  394. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
  395. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
  396. data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
  397. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
  398. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
  399. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
  400. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
  401. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
  402. data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
  403. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
  404. data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
  405. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  406. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
  407. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
  408. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
  409. data/third_party/abseil-cpp/absl/status/status.cc +66 -70
  410. data/third_party/abseil-cpp/absl/status/status.h +254 -23
  411. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
  412. data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
  413. data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
  414. data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
  415. data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
  416. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
  417. data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
  418. data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
  419. data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  420. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
  421. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
  422. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
  423. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
  424. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
  425. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
  426. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
  427. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
  428. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
  429. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
  430. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
  431. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
  432. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  433. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
  434. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
  435. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
  436. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
  437. data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
  438. data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
  439. data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
  440. data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
  441. data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
  442. data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
  443. data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
  444. data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
  445. data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
  446. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
  447. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
  448. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
  449. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
  450. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  451. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
  452. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
  453. data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
  454. data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
  455. data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
  456. data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
  457. data/third_party/abseil-cpp/absl/time/clock.h +3 -0
  458. data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
  459. data/third_party/abseil-cpp/absl/time/format.cc +3 -10
  460. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
  461. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
  462. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  463. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
  464. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  465. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
  466. data/third_party/abseil-cpp/absl/time/time.cc +4 -4
  467. data/third_party/abseil-cpp/absl/time/time.h +14 -13
  468. data/third_party/abseil-cpp/absl/types/compare.h +64 -63
  469. data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
  470. data/third_party/abseil-cpp/absl/types/optional.h +31 -4
  471. data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
  472. data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
  473. data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
  474. data/third_party/abseil-cpp/absl/types/span.h +67 -38
  475. data/third_party/abseil-cpp/absl/types/variant.h +75 -18
  476. data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
  477. data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
  478. data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
  479. data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
  480. data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
  481. data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
  482. data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
  483. data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
  484. data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
  485. data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
  486. data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
  487. data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
  488. data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
  489. data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
  490. data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
  491. data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
  492. data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
  493. data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
  494. data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
  495. data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
  496. data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
  497. data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
  498. data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
  499. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
  500. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
  501. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
  502. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
  503. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
  504. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
  505. data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
  506. data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
  507. data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
  508. data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
  509. data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
  510. data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
  511. data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
  512. data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
  513. data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
  514. data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
  515. data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
  516. data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
  517. data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
  518. data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
  519. data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
  520. data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
  521. data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
  522. data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
  523. data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
  524. data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
  525. data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
  526. data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
  527. data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
  528. data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
  529. data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
  530. data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
  531. data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
  532. data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
  533. data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
  534. data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
  535. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
  536. data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
  537. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
  538. data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
  539. data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
  540. data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
  541. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
  542. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
  543. data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
  544. data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
  545. data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
  546. data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
  547. data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
  548. data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
  549. data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
  550. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
  551. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
  552. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
  553. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
  554. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
  555. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
  556. data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
  557. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
  558. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
  559. data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
  560. data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
  561. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
  562. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
  563. data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
  564. data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
  565. data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
  566. data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
  567. data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
  568. data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
  569. data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
  570. data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
  571. data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
  572. data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
  573. data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
  574. data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
  575. data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
  576. data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
  577. data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
  578. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
  579. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  580. data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
  581. data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
  582. data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
  583. data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
  584. data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
  585. data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
  586. data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
  587. data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
  588. data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
  589. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
  590. data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
  591. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
  592. data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
  593. data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
  594. data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
  595. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
  596. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
  597. data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
  598. data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
  599. data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
  600. data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
  601. data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
  602. data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
  603. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
  604. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
  605. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
  606. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
  607. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
  608. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
  609. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
  610. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
  611. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
  612. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
  613. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
  614. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
  615. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
  616. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
  617. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
  618. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
  619. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
  620. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
  621. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
  622. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
  623. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
  624. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
  625. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
  626. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
  627. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
  628. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
  629. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
  630. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
  631. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
  632. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
  633. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
  634. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
  635. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
  636. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
  637. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
  638. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
  639. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
  640. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
  641. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
  642. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
  643. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
  644. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
  645. data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
  646. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
  647. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
  648. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
  649. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
  650. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
  651. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
  652. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
  653. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
  654. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
  655. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
  656. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
  657. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
  658. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
  659. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
  660. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
  661. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
  662. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
  663. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
  664. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
  665. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
  666. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
  667. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
  668. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
  669. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
  670. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
  671. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
  672. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  673. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
  674. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
  675. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
  676. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
  677. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
  678. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
  679. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
  680. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
  681. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  682. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
  683. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
  684. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
  685. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
  686. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
  687. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
  688. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
  689. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
  690. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
  691. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
  692. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
  693. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
  694. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
  695. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
  696. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
  697. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
  698. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
  699. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
  700. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
  701. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
  702. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
  703. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
  704. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
  705. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
  706. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
  707. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
  708. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
  709. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
  710. data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
  711. data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
  712. data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
  713. data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
  714. data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
  715. data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
  716. data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
  717. data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
  718. data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
  719. data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
  720. data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
  721. data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
  722. data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
  723. data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
  724. data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
  725. data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
  726. data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
  727. data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
  728. data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
  729. data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
  730. data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
  731. data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
  732. data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
  733. data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
  734. data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
  735. data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
  736. data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
  737. data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
  738. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
  739. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
  740. data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
  741. data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
  742. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
  743. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
  744. data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
  745. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
  746. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
  747. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
  748. data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
  749. data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
  750. data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
  751. data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
  752. data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
  753. data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
  754. data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
  755. data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
  756. data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
  757. data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
  758. data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
  759. data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
  760. data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
  761. data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
  762. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
  763. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
  764. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
  765. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
  766. data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
  767. data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
  768. data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
  769. data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
  770. data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
  771. data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
  772. data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
  773. data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
  774. data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
  775. data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
  776. data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
  777. data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
  778. data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
  779. data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
  780. data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
  781. data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
  782. data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
  783. data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
  784. data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
  785. data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
  786. data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
  787. data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
  788. data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
  789. data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
  790. data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
  791. data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
  792. data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
  793. data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
  794. data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
  795. data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
  796. data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
  797. data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
  798. data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
  799. data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
  800. data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
  801. data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
  802. data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
  803. data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
  804. data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
  805. data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
  806. data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
  807. data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
  808. data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
  809. data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
  810. data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
  811. data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
  812. data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
  813. data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
  814. data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
  815. data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
  816. data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
  817. data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
  818. data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
  819. data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
  820. data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
  821. data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
  822. data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
  823. data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
  824. data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
  825. data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
  826. data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
  827. data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
  828. data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
  829. data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
  830. data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
  831. data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
  832. data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
  833. data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
  834. data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
  835. data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
  836. data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
  837. data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
  838. data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
  839. data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
  840. data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
  841. data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
  842. data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
  843. data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
  844. data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
  845. data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
  846. data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
  847. data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
  848. data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
  849. data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
  850. data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
  851. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
  852. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
  853. data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
  854. data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
  855. data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
  856. data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
  857. data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
  858. data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
  859. data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
  860. data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
  861. data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
  862. data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
  863. data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
  864. data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
  865. data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
  866. data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
  867. data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
  868. data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
  869. data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
  870. data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
  871. data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
  872. data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
  873. data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
  874. data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
  875. data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
  876. data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
  877. data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
  878. data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
  879. data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
  880. data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
  881. data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
  882. data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
  883. data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
  884. data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
  885. data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
  886. data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
  887. data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
  888. data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
  889. data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
  890. data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
  891. data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
  892. data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
  893. data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
  894. data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
  895. data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
  896. data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
  897. data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
  898. data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
  899. data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
  900. data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
  901. data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
  902. data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
  903. data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
  904. data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
  905. data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
  906. data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
  907. data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
  908. data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
  909. data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
  910. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
  911. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
  912. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
  913. data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
  914. data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
  915. data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
  916. data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
  917. data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
  918. data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
  919. data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
  920. data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
  921. data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
  922. data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
  923. data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
  924. data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
  925. data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
  926. data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
  927. data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
  928. data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
  929. data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
  930. data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
  931. data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
  932. data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
  933. data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
  934. data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
  935. data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
  936. data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
  937. data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
  938. data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
  939. data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
  940. data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
  941. data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
  942. data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
  943. data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
  944. data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
  945. data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
  946. data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
  947. data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
  948. data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
  949. data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
  950. data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
  951. data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
  952. data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
  953. data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
  954. data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
  955. data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
  956. data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
  957. data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
  958. data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
  959. data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
  960. data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
  961. data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
  962. data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
  963. data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
  964. data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
  965. data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
  966. data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
  967. data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
  968. data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
  969. data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
  970. data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
  971. data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
  972. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  973. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  974. data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
  975. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
  976. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
  977. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
  978. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
  979. data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
  980. metadata +77 -52
  981. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -240
  982. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
  983. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -157
  984. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -72
  985. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
  986. data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
  987. data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
  988. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
  989. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
  990. data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
  991. data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
  992. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
  993. data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
  994. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
  995. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
  996. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
  997. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
  998. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
  999. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
  1000. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
  1001. data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
  1002. data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
  1003. data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
  1004. data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
  1005. data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
@@ -26,6 +26,8 @@
26
26
  #include "internal.h"
27
27
 
28
28
 
29
+ using namespace bssl;
30
+
29
31
  static int cbs_get(CBS *cbs, const uint8_t **p, size_t n) {
30
32
  if (cbs->len < n) {
31
33
  return 0;
@@ -44,14 +46,14 @@ int CBS_skip(CBS *cbs, size_t len) {
44
46
 
45
47
  int CBS_stow(const CBS *cbs, uint8_t **out_ptr, size_t *out_len) {
46
48
  OPENSSL_free(*out_ptr);
47
- *out_ptr = NULL;
49
+ *out_ptr = nullptr;
48
50
  *out_len = 0;
49
51
 
50
52
  if (cbs->len == 0) {
51
53
  return 1;
52
54
  }
53
55
  *out_ptr = reinterpret_cast<uint8_t *>(OPENSSL_memdup(cbs->data, cbs->len));
54
- if (*out_ptr == NULL) {
56
+ if (*out_ptr == nullptr) {
55
57
  return 0;
56
58
  }
57
59
  *out_len = cbs->len;
@@ -59,15 +61,15 @@ int CBS_stow(const CBS *cbs, uint8_t **out_ptr, size_t *out_len) {
59
61
  }
60
62
 
61
63
  int CBS_strdup(const CBS *cbs, char **out_ptr) {
62
- if (*out_ptr != NULL) {
64
+ if (*out_ptr != nullptr) {
63
65
  OPENSSL_free(*out_ptr);
64
66
  }
65
67
  *out_ptr = OPENSSL_strndup((const char *)cbs->data, cbs->len);
66
- return (*out_ptr != NULL);
68
+ return (*out_ptr != nullptr);
67
69
  }
68
70
 
69
71
  int CBS_contains_zero_byte(const CBS *cbs) {
70
- return OPENSSL_memchr(cbs->data, 0, cbs->len) != NULL;
72
+ return OPENSSL_memchr(cbs->data, 0, cbs->len) != nullptr;
71
73
  }
72
74
 
73
75
  int CBS_mem_equal(const CBS *cbs, const uint8_t *data, size_t len) {
@@ -144,6 +146,8 @@ int CBS_get_u32le(CBS *cbs, uint32_t *out) {
144
146
  return 1;
145
147
  }
146
148
 
149
+ int CBS_get_u48(CBS *cbs, uint64_t *out) { return cbs_get_u(cbs, out, 6); }
150
+
147
151
  int CBS_get_u64(CBS *cbs, uint64_t *out) { return cbs_get_u(cbs, out, 8); }
148
152
 
149
153
  int CBS_get_u64le(CBS *cbs, uint64_t *out) {
@@ -186,7 +190,7 @@ static int cbs_get_length_prefixed(CBS *cbs, CBS *out, size_t len_len) {
186
190
  if (!cbs_get_u(cbs, &len, len_len)) {
187
191
  return 0;
188
192
  }
189
- // If |len_len| <= 3 then we know that |len| will fit into a |size_t|, even on
193
+ // If `len_len` <= 3 then we know that `len` will fit into a `size_t`, even on
190
194
  // 32-bit systems.
191
195
  assert(len_len <= 3);
192
196
  return CBS_get_bytes(cbs, out, len);
@@ -207,12 +211,48 @@ int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out) {
207
211
  int CBS_get_until_first(CBS *cbs, CBS *out, uint8_t c) {
208
212
  const uint8_t *split = reinterpret_cast<const uint8_t *>(
209
213
  OPENSSL_memchr(CBS_data(cbs), c, CBS_len(cbs)));
210
- if (split == NULL) {
214
+ if (split == nullptr) {
211
215
  return 0;
212
216
  }
213
217
  return CBS_get_bytes(cbs, out, split - CBS_data(cbs));
214
218
  }
215
219
 
220
+ int CBS_get_until_first_of(CBS *cbs, CBS *out, const char *chars) {
221
+ size_t pos = 0;
222
+ while (pos < CBS_len(cbs)) {
223
+ uint8_t c = CBS_data(cbs)[pos];
224
+ // Special-case for \0 characters. We don't want to match on a null byte,
225
+ // even though strchr will happily return the \0 at the end of `chars`.
226
+ if (!c || !strchr(chars, c)) {
227
+ pos++;
228
+ } else {
229
+ break;
230
+ }
231
+ }
232
+ if (pos == CBS_len(cbs)) {
233
+ return 0;
234
+ }
235
+ return CBS_get_bytes(cbs, out, pos);
236
+ }
237
+
238
+ int CBS_get_until_first_not_of(CBS *cbs, CBS *out, const char *chars) {
239
+ size_t pos = 0;
240
+ while (pos < CBS_len(cbs)) {
241
+ uint8_t c = CBS_data(cbs)[pos];
242
+ // Special-case for \0 characters. We don't want to match on a null byte,
243
+ // even though strchr will happily return the \0 at the end of `chars`.
244
+ if (c && strchr(chars, c)) {
245
+ pos++;
246
+ } else {
247
+ break;
248
+ }
249
+ }
250
+ if (pos == CBS_len(cbs)) {
251
+ return 0;
252
+ }
253
+ return CBS_get_bytes(cbs, out, pos);
254
+ }
255
+
216
256
  int CBS_get_u64_decimal(CBS *cbs, uint64_t *out) {
217
257
  uint64_t v = 0;
218
258
  int seen_digit = 0;
@@ -237,8 +277,8 @@ int CBS_get_u64_decimal(CBS *cbs, uint64_t *out) {
237
277
  return seen_digit;
238
278
  }
239
279
 
240
- // parse_base128_integer reads a big-endian base-128 integer from |cbs| and sets
241
- // |*out| to the result. This is the encoding used in DER for both high tag
280
+ // parse_base128_integer reads a big-endian base-128 integer from `cbs` and sets
281
+ // `*out` to the result. This is the encoding used in DER for both high tag
242
282
  // number form and OID components.
243
283
  static int parse_base128_integer(CBS *cbs, uint64_t *out) {
244
284
  uint64_t v = 0;
@@ -309,22 +349,22 @@ static int cbs_get_any_asn1_element(CBS *cbs, CBS *out, CBS_ASN1_TAG *out_tag,
309
349
  CBS header = *cbs;
310
350
  CBS throwaway;
311
351
 
312
- if (out == NULL) {
352
+ if (out == nullptr) {
313
353
  out = &throwaway;
314
354
  }
315
355
  if (ber_ok) {
316
356
  *out_ber_found = 0;
317
357
  *out_indefinite = 0;
318
358
  } else {
319
- assert(out_ber_found == NULL);
320
- assert(out_indefinite == NULL);
359
+ assert(out_ber_found == nullptr);
360
+ assert(out_indefinite == nullptr);
321
361
  }
322
362
 
323
363
  CBS_ASN1_TAG tag;
324
364
  if (!parse_asn1_tag(&header, &tag)) {
325
365
  return 0;
326
366
  }
327
- if (out_tag != NULL) {
367
+ if (out_tag != nullptr) {
328
368
  *out_tag = tag;
329
369
  }
330
370
 
@@ -341,7 +381,7 @@ static int cbs_get_any_asn1_element(CBS *cbs, CBS *out, CBS_ASN1_TAG *out_tag,
341
381
  if ((length_byte & 0x80) == 0) {
342
382
  // Short form length.
343
383
  len = ((size_t)length_byte) + header_len;
344
- if (out_header_len != NULL) {
384
+ if (out_header_len != nullptr) {
345
385
  *out_header_len = header_len;
346
386
  }
347
387
  } else {
@@ -353,7 +393,7 @@ static int cbs_get_any_asn1_element(CBS *cbs, CBS *out, CBS_ASN1_TAG *out_tag,
353
393
 
354
394
  if (ber_ok && (tag & CBS_ASN1_CONSTRUCTED) != 0 && num_bytes == 0) {
355
395
  // indefinite length
356
- if (out_header_len != NULL) {
396
+ if (out_header_len != nullptr) {
357
397
  *out_header_len = header_len;
358
398
  }
359
399
  *out_ber_found = 1;
@@ -373,7 +413,7 @@ static int cbs_get_any_asn1_element(CBS *cbs, CBS *out, CBS_ASN1_TAG *out_tag,
373
413
  // ITU-T X.690 section 10.1 (DER length forms) requires encoding the
374
414
  // length with the minimum number of octets. BER could, technically, have
375
415
  // 125 superfluous zero bytes. We do not attempt to handle that and still
376
- // require that the length fit in a |uint32_t| for BER.
416
+ // require that the length fit in a `uint32_t` for BER.
377
417
  if (len64 < 128) {
378
418
  // Length should have used short-form encoding.
379
419
  if (ber_ok) {
@@ -396,7 +436,7 @@ static int cbs_get_any_asn1_element(CBS *cbs, CBS *out, CBS_ASN1_TAG *out_tag,
396
436
  return 0;
397
437
  }
398
438
  len += header_len + num_bytes;
399
- if (out_header_len != NULL) {
439
+ if (out_header_len != nullptr) {
400
440
  *out_header_len = header_len + num_bytes;
401
441
  }
402
442
  }
@@ -420,7 +460,8 @@ int CBS_get_any_asn1(CBS *cbs, CBS *out, CBS_ASN1_TAG *out_tag) {
420
460
 
421
461
  int CBS_get_any_asn1_element(CBS *cbs, CBS *out, CBS_ASN1_TAG *out_tag,
422
462
  size_t *out_header_len) {
423
- return cbs_get_any_asn1_element(cbs, out, out_tag, out_header_len, NULL, NULL,
463
+ return cbs_get_any_asn1_element(cbs, out, out_tag, out_header_len, nullptr,
464
+ nullptr,
424
465
  /*ber_ok=*/0);
425
466
  }
426
467
 
@@ -440,7 +481,7 @@ static int cbs_get_asn1(CBS *cbs, CBS *out, CBS_ASN1_TAG tag_value,
440
481
  CBS_ASN1_TAG tag;
441
482
  CBS throwaway;
442
483
 
443
- if (out == NULL) {
484
+ if (out == nullptr) {
444
485
  out = &throwaway;
445
486
  }
446
487
 
@@ -465,10 +506,20 @@ int CBS_get_asn1_element(CBS *cbs, CBS *out, CBS_ASN1_TAG tag_value) {
465
506
  return cbs_get_asn1(cbs, out, tag_value, 0 /* include header */);
466
507
  }
467
508
 
468
- int CBS_peek_asn1_tag(const CBS *cbs, CBS_ASN1_TAG tag_value) {
509
+ CBS_ASN1_TAG CBS_peek_any_asn1_tag(const CBS *cbs) {
469
510
  CBS copy = *cbs;
470
- CBS_ASN1_TAG actual_tag;
471
- return parse_asn1_tag(&copy, &actual_tag) && tag_value == actual_tag;
511
+ CBS_ASN1_TAG tag;
512
+ if (!parse_asn1_tag(&copy, &tag)) {
513
+ return 0;
514
+ }
515
+ return tag;
516
+ }
517
+
518
+ int CBS_peek_asn1_tag(const CBS *cbs, CBS_ASN1_TAG tag_value) {
519
+ CBS_ASN1_TAG actual_tag = CBS_peek_any_asn1_tag(cbs);
520
+ // The caller should never pass zero as |tag_value|, but return zero if they
521
+ // did.
522
+ return actual_tag != 0 && actual_tag == tag_value;
472
523
  }
473
524
 
474
525
  int CBS_get_asn1_uint64(CBS *cbs, uint64_t *out) {
@@ -546,7 +597,7 @@ int CBS_get_optional_asn1(CBS *cbs, CBS *out, int *out_present,
546
597
  present = 1;
547
598
  }
548
599
 
549
- if (out_present != NULL) {
600
+ if (out_present != nullptr) {
550
601
  *out_present = present;
551
602
  }
552
603
 
@@ -567,7 +618,7 @@ int CBS_get_optional_asn1_octet_string(CBS *cbs, CBS *out, int *out_present,
567
618
  return 0;
568
619
  }
569
620
  } else {
570
- CBS_init(out, NULL, 0);
621
+ CBS_init(out, nullptr, 0);
571
622
  }
572
623
  if (out_present) {
573
624
  *out_present = present;
@@ -663,7 +714,7 @@ int CBS_is_valid_asn1_integer(const CBS *cbs, int *out_is_negative) {
663
714
  if (!CBS_get_u8(&copy, &first_byte)) {
664
715
  return 0; // INTEGERs may not be empty.
665
716
  }
666
- if (out_is_negative != NULL) {
717
+ if (out_is_negative != nullptr) {
667
718
  *out_is_negative = (first_byte & 0x80) != 0;
668
719
  }
669
720
  if (!CBS_get_u8(&copy, &second_byte)) {
@@ -696,8 +747,8 @@ int CBS_is_valid_asn1_oid(const CBS *cbs) {
696
747
  uint8_t v, prev = 0;
697
748
  while (CBS_get_u8(&copy, &v)) {
698
749
  // OID encodings are a sequence of minimally-encoded base-128 integers (see
699
- // |parse_base128_integer|). If |prev|'s MSB was clear, it was the last byte
700
- // of an integer (or |v| is the first byte). |v| is then the first byte of
750
+ // `parse_base128_integer`). If `prev`'s MSB was clear, it was the last byte
751
+ // of an integer (or `v` is the first byte). `v` is then the first byte of
701
752
  // the next integer. If first byte of an integer is 0x80, it is not
702
753
  // minimally-encoded.
703
754
  if ((prev & 0x80) == 0 && v == 0x80) {
@@ -750,7 +801,40 @@ char *CBS_asn1_oid_to_text(const CBS *cbs) {
750
801
 
751
802
  err:
752
803
  CBB_cleanup(&cbb);
753
- return NULL;
804
+ return nullptr;
805
+ }
806
+
807
+ int CBS_is_valid_asn1_relative_oid(const CBS *cbs) {
808
+ return CBS_is_valid_asn1_oid(cbs);
809
+ }
810
+
811
+ char *CBS_asn1_relative_oid_to_text(const CBS *cbs) {
812
+ CBS copy = *cbs;
813
+ ScopedCBB cbb;
814
+ if (!CBB_init(cbb.get(), 32)) {
815
+ return nullptr;
816
+ }
817
+
818
+ // Relative OIDs must have at least one component.
819
+ uint64_t v;
820
+ if (!parse_base128_integer(&copy, &v) || !add_decimal(cbb.get(), v)) {
821
+ return nullptr;
822
+ }
823
+
824
+ while (CBS_len(&copy) != 0) {
825
+ if (!parse_base128_integer(&copy, &v) || !CBB_add_u8(cbb.get(), '.') ||
826
+ !add_decimal(cbb.get(), v)) {
827
+ return nullptr;
828
+ }
829
+ }
830
+
831
+ uint8_t *txt;
832
+ size_t txt_len;
833
+ if (!CBB_add_u8(cbb.get(), '\0') || !CBB_finish(cbb.get(), &txt, &txt_len)) {
834
+ return nullptr;
835
+ }
836
+
837
+ return reinterpret_cast<char *>(txt);
754
838
  }
755
839
 
756
840
  static int cbs_get_two_digits(CBS *cbs, int *out) {
@@ -846,10 +930,10 @@ static int CBS_parse_rfc5280_time_internal(const CBS *cbs, int is_gentime,
846
930
  case 'Z':
847
931
  break; // We correctly have 'Z' on the end as per spec.
848
932
  case '+':
849
- offset_sign = 1;
933
+ offset_sign = -1;
850
934
  break; // Should not be allowed per RFC 5280.
851
935
  case '-':
852
- offset_sign = -1;
936
+ offset_sign = 1;
853
937
  break; // Should not be allowed per RFC 5280.
854
938
  default:
855
939
  return 0; // Reject anything else after the time.
@@ -886,7 +970,7 @@ static int CBS_parse_rfc5280_time_internal(const CBS *cbs, int is_gentime,
886
970
  return 0; // Reject invalid lengths.
887
971
  }
888
972
 
889
- if (out_tm != NULL) {
973
+ if (out_tm != nullptr) {
890
974
  // Fill in the tm fields corresponding to what we validated.
891
975
  out_tm->tm_year = year - 1900;
892
976
  out_tm->tm_mon = month - 1;
@@ -15,25 +15,29 @@
15
15
  #ifndef OPENSSL_HEADER_CRYPTO_BYTESTRING_INTERNAL_H
16
16
  #define OPENSSL_HEADER_CRYPTO_BYTESTRING_INTERNAL_H
17
17
 
18
- #include <openssl/base.h>
18
+ #include <openssl/asn1.h>
19
+ #include <openssl/bytestring.h>
20
+ #include <openssl/err.h>
19
21
 
20
- #if defined(__cplusplus)
21
- extern "C" {
22
- #endif
22
+ #include <type_traits>
23
23
 
24
+ #include "../mem_internal.h"
24
25
 
25
- // CBS_asn1_ber_to_der reads a BER element from |in|. If it finds
26
+
27
+ BSSL_NAMESPACE_BEGIN
28
+
29
+ // CBS_asn1_ber_to_der reads a BER element from `in`. If it finds
26
30
  // indefinite-length elements or constructed strings then it converts the BER
27
- // data to DER, sets |out| to the converted contents and |*out_storage| to a
28
- // buffer which the caller must release with |OPENSSL_free|. Otherwise, it sets
29
- // |out| to the original BER element in |in| and |*out_storage| to NULL.
30
- // Additionally, |*in| will be advanced over the BER element.
31
+ // data to DER, sets `out` to the converted contents and `*out_storage` to a
32
+ // buffer which the caller must release with `OPENSSL_free`. Otherwise, it sets
33
+ // `out` to the original BER element in `in` and `*out_storage` to NULL.
34
+ // Additionally, `*in` will be advanced over the BER element.
31
35
  //
32
36
  // This function should successfully process any valid BER input, however it
33
37
  // will not convert all of BER's deviations from DER. BER is ambiguous between
34
38
  // implicitly-tagged SEQUENCEs of strings and implicitly-tagged constructed
35
39
  // strings. Implicitly-tagged strings must be parsed with
36
- // |CBS_get_ber_implicitly_tagged_string| instead of |CBS_get_asn1|. The caller
40
+ // `CBS_get_ber_implicitly_tagged_string` instead of `CBS_get_asn1`. The caller
37
41
  // must also account for BER variations in the contents of a primitive.
38
42
  //
39
43
  // It returns one on success and zero otherwise.
@@ -41,15 +45,15 @@ OPENSSL_EXPORT int CBS_asn1_ber_to_der(CBS *in, CBS *out,
41
45
  uint8_t **out_storage);
42
46
 
43
47
  // CBS_get_asn1_implicit_string parses a BER string of primitive type
44
- // |inner_tag| implicitly-tagged with |outer_tag|. It sets |out| to the
45
- // contents. If concatenation was needed, it sets |*out_storage| to a buffer
46
- // which the caller must release with |OPENSSL_free|. Otherwise, it sets
47
- // |*out_storage| to NULL.
48
+ // `inner_tag` implicitly-tagged with `outer_tag`. It sets `out` to the
49
+ // contents. If concatenation was needed, it sets `*out_storage` to a buffer
50
+ // which the caller must release with `OPENSSL_free`. Otherwise, it sets
51
+ // `*out_storage` to NULL.
48
52
  //
49
53
  // This function does not parse all of BER. It requires the string be
50
54
  // definite-length. Constructed strings are allowed, but all children of the
51
55
  // outermost element must be primitive. The caller should use
52
- // |CBS_asn1_ber_to_der| before running this function.
56
+ // `CBS_asn1_ber_to_der` before running this function.
53
57
  //
54
58
  // It returns one on success and zero otherwise.
55
59
  OPENSSL_EXPORT int CBS_get_asn1_implicit_string(CBS *in, CBS *out,
@@ -57,18 +61,69 @@ OPENSSL_EXPORT int CBS_get_asn1_implicit_string(CBS *in, CBS *out,
57
61
  CBS_ASN1_TAG outer_tag,
58
62
  CBS_ASN1_TAG inner_tag);
59
63
 
60
- // CBB_finish_i2d calls |CBB_finish| on |cbb| which must have been initialized
61
- // with |CBB_init|. If |outp| is not NULL then the result is written to |*outp|
62
- // and |*outp| is advanced just past the output. It returns the number of bytes
63
- // in the result, whether written or not, or a negative value on error. On
64
- // error, it calls |CBB_cleanup| on |cbb|.
64
+ // CBB_finish_i2d calls `CBB_finish` on `cbb` which must have been initialized
65
+ // with `CBB_init`. If `outp` is not NULL then the result is written to `*outp`
66
+ // and `*outp` is advanced just past the output. It returns the number of bytes
67
+ // in the result, whether written or not, or a negative value on error.
65
68
  //
66
69
  // This function may be used to help implement legacy i2d ASN.1 functions.
67
- int CBB_finish_i2d(CBB *cbb, uint8_t **outp);
70
+ OPENSSL_EXPORT int CBB_finish_i2d(CBB *cbb, uint8_t **outp);
71
+
72
+ // CBBAsSpan returns a span containing `cbb`'s contents. It does not flush
73
+ // `cbb`. The span is valid until the next operation to `cbb`.
74
+ //
75
+ // To avoid unfinalized length prefixes, it is a fatal error to call this on a
76
+ // CBB with any active children.
77
+ inline Span<uint8_t> CBBAsSpan(const CBB *cbb) {
78
+ return Span(CBB_data(cbb), CBB_len(cbb));
79
+ }
80
+
81
+ // CBBFinishArray behaves like `CBB_finish` but stores the result in an Array.
82
+ OPENSSL_EXPORT bool CBBFinishArray(CBB *cbb, Array<uint8_t> *out);
83
+
84
+ // D2IFromCBS takes a functor of type `Unique<T>(CBS*)` and implements the d2i
85
+ // calling convention. For compatibility with functions that don't tag their
86
+ // return value (e.g. public APIs), `T*(CBS)` is also accepted. The callback can
87
+ // assume that the `CBS`'s length fits in `long`. The callback should not access
88
+ // `out`, `inp`, or `len` directly.
89
+ template <typename T, typename CBSFunc>
90
+ inline T *D2IFromCBS(T **out, const uint8_t **inp, long len, CBSFunc func) {
91
+ static_assert(std::is_invocable_v<CBSFunc, CBS *>);
92
+ static_assert(
93
+ std::is_same_v<std::invoke_result_t<CBSFunc, CBS *>, UniquePtr<T>> ||
94
+ std::is_same_v<std::invoke_result_t<CBSFunc, CBS *>, T *>);
95
+ if (len < 0) {
96
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BUFFER_TOO_SMALL);
97
+ return nullptr;
98
+ }
99
+ CBS cbs;
100
+ CBS_init(&cbs, *inp, len);
101
+ UniquePtr<T> ret(func(&cbs));
102
+ if (ret == nullptr) {
103
+ return nullptr;
104
+ }
105
+ if (out != nullptr) {
106
+ UniquePtr<T> free_out(*out);
107
+ *out = ret.get();
108
+ }
109
+ *inp = CBS_data(&cbs);
110
+ return ret.release();
111
+ }
68
112
 
113
+ // I2DFromCBB takes a functor of type `bool(CBB*)` and implements the i2d
114
+ // calling convention. It internally makes a `CBB` with the specified initial
115
+ // capacity. The callback should not access `outp` directly.
116
+ template <typename CBBFunc>
117
+ inline int I2DFromCBB(size_t initial_capacity, uint8_t **outp, CBBFunc func) {
118
+ static_assert(std::is_invocable_v<CBBFunc, CBB *>);
119
+ static_assert(std::is_same_v<std::invoke_result_t<CBBFunc, CBB *>, bool>);
120
+ ScopedCBB cbb;
121
+ if (!CBB_init(cbb.get(), initial_capacity) || !func(cbb.get())) {
122
+ return -1;
123
+ }
124
+ return CBB_finish_i2d(cbb.get(), outp);
125
+ }
69
126
 
70
- #if defined(__cplusplus)
71
- } // extern C
72
- #endif
127
+ BSSL_NAMESPACE_END
73
128
 
74
129
  #endif // OPENSSL_HEADER_CRYPTO_BYTESTRING_INTERNAL_H
@@ -33,10 +33,10 @@ static int is_valid_code_point(uint32_t v) {
33
33
  return 1;
34
34
  }
35
35
 
36
- // BOTTOM_BITS returns a byte with the bottom |n| bits set.
36
+ // BOTTOM_BITS returns a byte with the bottom `n` bits set.
37
37
  #define BOTTOM_BITS(n) (uint8_t)((1u << (n)) - 1)
38
38
 
39
- // TOP_BITS returns a byte with the top |n| bits set.
39
+ // TOP_BITS returns a byte with the top `n` bits set.
40
40
  #define TOP_BITS(n) ((uint8_t)~BOTTOM_BITS(8 - (n)))
41
41
 
42
42
  int CBS_get_utf8(CBS *cbs, uint32_t *out) {
@@ -24,6 +24,8 @@
24
24
 
25
25
 
26
26
  // sigma contains the ChaCha constants, which happen to be an ASCII string.
27
+ using namespace bssl;
28
+
27
29
  static const uint8_t sigma[16] = { 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3',
28
30
  '2', '-', 'b', 'y', 't', 'e', ' ', 'k' };
29
31
 
@@ -38,8 +40,8 @@ static const uint8_t sigma[16] = { 'e', 'x', 'p', 'a', 'n', 'd', ' ', '3',
38
40
  x[c] += x[d]; \
39
41
  x[b] = CRYPTO_rotl_u32(x[b] ^ x[c], 7);
40
42
 
41
- void CRYPTO_hchacha20(uint8_t out[32], const uint8_t key[32],
42
- const uint8_t nonce[16]) {
43
+ void bssl::CRYPTO_hchacha20(uint8_t out[32], const uint8_t key[32],
44
+ const uint8_t nonce[16]) {
43
45
  uint32_t x[16];
44
46
  OPENSSL_memcpy(x, sigma, sizeof(sigma));
45
47
  OPENSSL_memcpy(&x[4], key, 32);
@@ -148,7 +150,7 @@ void CRYPTO_chacha_20(uint8_t *out, const uint8_t *in, size_t in_len,
148
150
  #else
149
151
 
150
152
  // chacha_core performs 20 rounds of ChaCha on the input words in
151
- // |input| and writes the 64 output bytes to |output|.
153
+ // `input` and writes the 64 output bytes to `output`.
152
154
  static void chacha_core(uint8_t output[64], const uint32_t input[16]) {
153
155
  uint32_t x[16];
154
156
  int i;
@@ -19,10 +19,8 @@
19
19
 
20
20
  #include "../internal.h"
21
21
 
22
- #if defined(__cplusplus)
23
- extern "C" {
24
- #endif
25
22
 
23
+ BSSL_NAMESPACE_BEGIN
26
24
 
27
25
  // CRYPTO_hchacha20 computes the HChaCha20 function, which should only be used
28
26
  // as part of XChaCha20.
@@ -39,8 +37,9 @@ inline int ChaCha20_ctr32_ssse3_capable(size_t len) {
39
37
  // lengths.
40
38
  return len > 0 && CRYPTO_is_SSSE3_capable();
41
39
  }
42
- void ChaCha20_ctr32_ssse3(uint8_t *out, const uint8_t *in, size_t in_len,
43
- const uint32_t key[8], const uint32_t counter[4]);
40
+ extern "C" void ChaCha20_ctr32_ssse3(uint8_t *out, const uint8_t *in,
41
+ size_t in_len, const uint32_t key[8],
42
+ const uint32_t counter[4]);
44
43
 
45
44
  #elif !defined(OPENSSL_NO_ASM) && \
46
45
  (defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64))
@@ -51,8 +50,9 @@ void ChaCha20_ctr32_ssse3(uint8_t *out, const uint8_t *in, size_t in_len,
51
50
  inline int ChaCha20_ctr32_neon_capable(size_t len) {
52
51
  return len >= 192 && CRYPTO_is_NEON_capable();
53
52
  }
54
- void ChaCha20_ctr32_neon(uint8_t *out, const uint8_t *in, size_t in_len,
55
- const uint32_t key[8], const uint32_t counter[4]);
53
+ extern "C" void ChaCha20_ctr32_neon(uint8_t *out, const uint8_t *in,
54
+ size_t in_len, const uint32_t key[8],
55
+ const uint32_t counter[4]);
56
56
  #elif !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64)
57
57
  #define CHACHA20_ASM_NOHW
58
58
 
@@ -60,8 +60,9 @@ void ChaCha20_ctr32_neon(uint8_t *out, const uint8_t *in, size_t in_len,
60
60
  inline int ChaCha20_ctr32_avx2_capable(size_t len) {
61
61
  return len > 128 && CRYPTO_is_AVX2_capable();
62
62
  }
63
- void ChaCha20_ctr32_avx2(uint8_t *out, const uint8_t *in, size_t in_len,
64
- const uint32_t key[8], const uint32_t counter[4]);
63
+ extern "C" void ChaCha20_ctr32_avx2(uint8_t *out, const uint8_t *in,
64
+ size_t in_len, const uint32_t key[8],
65
+ const uint32_t counter[4]);
65
66
 
66
67
  #define CHACHA20_ASM_SSSE3_4X
67
68
  inline int ChaCha20_ctr32_ssse3_4x_capable(size_t len) {
@@ -69,34 +70,34 @@ inline int ChaCha20_ctr32_ssse3_4x_capable(size_t len) {
69
70
  int faster = len > 192 || !CRYPTO_cpu_perf_is_like_silvermont();
70
71
  return capable && faster;
71
72
  }
72
- void ChaCha20_ctr32_ssse3_4x(uint8_t *out, const uint8_t *in, size_t in_len,
73
- const uint32_t key[8], const uint32_t counter[4]);
73
+ extern "C" void ChaCha20_ctr32_ssse3_4x(uint8_t *out, const uint8_t *in,
74
+ size_t in_len, const uint32_t key[8],
75
+ const uint32_t counter[4]);
74
76
 
75
77
  #define CHACHA20_ASM_SSSE3
76
78
  inline int ChaCha20_ctr32_ssse3_capable(size_t len) {
77
79
  return len > 128 && CRYPTO_is_SSSE3_capable();
78
80
  }
79
- void ChaCha20_ctr32_ssse3(uint8_t *out, const uint8_t *in, size_t in_len,
80
- const uint32_t key[8], const uint32_t counter[4]);
81
+ extern "C" void ChaCha20_ctr32_ssse3(uint8_t *out, const uint8_t *in,
82
+ size_t in_len, const uint32_t key[8],
83
+ const uint32_t counter[4]);
81
84
  #endif
82
85
 
83
86
  #if defined(CHACHA20_ASM_NOHW)
84
- // ChaCha20_ctr32_nohw encrypts |in_len| bytes from |in| and writes the result
85
- // to |out|. If |in| and |out| alias, they must be equal. |in_len| may not be
87
+ // ChaCha20_ctr32_nohw encrypts `in_len` bytes from `in` and writes the result
88
+ // to `out`. If `in` and `out` alias, they must be equal. `in_len` may not be
86
89
  // zero.
87
90
  //
88
- // |counter[0]| is the initial 32-bit block counter, and the remainder is the
91
+ // `counter[0]` is the initial 32-bit block counter, and the remainder is the
89
92
  // 96-bit nonce. If the counter overflows, the output is undefined. The function
90
93
  // will produce output, but the output may vary by machine and may not be
91
94
  // self-consistent. (On some architectures, the assembly implements a mix of
92
95
  // 64-bit and 32-bit counters.)
93
- void ChaCha20_ctr32_nohw(uint8_t *out, const uint8_t *in, size_t in_len,
94
- const uint32_t key[8], const uint32_t counter[4]);
96
+ extern "C" void ChaCha20_ctr32_nohw(uint8_t *out, const uint8_t *in,
97
+ size_t in_len, const uint32_t key[8],
98
+ const uint32_t counter[4]);
95
99
  #endif
96
100
 
97
-
98
- #if defined(__cplusplus)
99
- } // extern C
100
- #endif
101
+ BSSL_NAMESPACE_END
101
102
 
102
103
  #endif // OPENSSL_HEADER_CRYPTO_CHACHA_INTERNAL_H