grpc 1.84.0 → 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.
Files changed (1004) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +40 -27
  3. data/include/grpc/event_engine/memory_allocator.h +1 -0
  4. data/include/grpc/grpc.h +3 -0
  5. data/include/grpc/grpc_security_constants.h +2 -0
  6. data/include/grpc/impl/channel_arg_names.h +4 -0
  7. data/src/core/call/call_filters.h +10 -10
  8. data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
  9. data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
  10. data/src/core/call/filter_fusion.h +15 -15
  11. data/src/core/call/interception_chain.h +3 -3
  12. data/src/core/call/metadata_batch.cc +1 -0
  13. data/src/core/call/metadata_batch.h +45 -33
  14. data/src/core/call/parsed_metadata.h +3 -3
  15. data/src/core/call/request_buffer.cc +6 -6
  16. data/src/core/call/request_buffer.h +1 -1
  17. data/src/core/channelz/channel_trace.cc +5 -5
  18. data/src/core/channelz/channel_trace.h +1 -1
  19. data/src/core/channelz/channelz.cc +9 -9
  20. data/src/core/channelz/channelz.h +12 -12
  21. data/src/core/channelz/channelz_registry.cc +10 -10
  22. data/src/core/channelz/ztrace_collector.h +5 -5
  23. data/src/core/client_channel/client_channel.cc +4 -4
  24. data/src/core/client_channel/client_channel_filter.cc +14 -14
  25. data/src/core/client_channel/global_subchannel_pool.cc +4 -4
  26. data/src/core/client_channel/subchannel.cc +24 -23
  27. data/src/core/client_channel/subchannel_stream_client.cc +5 -5
  28. data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
  29. data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
  30. data/src/core/credentials/call/external/external_account_credentials.cc +4 -4
  31. data/src/core/credentials/call/regional_access_boundary_fetcher.cc +9 -9
  32. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +4 -4
  33. data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
  34. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +1 -1
  35. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +9 -9
  36. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +1 -1
  37. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +6 -6
  38. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
  39. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +4 -4
  40. data/src/core/credentials/transport/tls/ssl_utils.cc +10 -0
  41. data/src/core/credentials/transport/tls/tls_security_connector.cc +10 -10
  42. data/src/core/credentials/transport/tls/tls_security_connector.h +6 -6
  43. data/src/core/credentials/transport/tls/tls_utils.h +9 -0
  44. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
  45. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  46. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  47. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
  48. data/src/core/ext/filters/http/message_compress/compression_filter.cc +15 -0
  49. data/src/core/ext/filters/rbac/rbac_filter.h +1 -1
  50. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -5
  51. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -21
  52. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -11
  53. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +14 -11
  54. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
  55. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -4
  56. data/src/core/ext/transport/chttp2/transport/frame.h +9 -0
  57. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -9
  58. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -2
  59. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +16 -18
  60. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +2 -1
  61. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +277 -189
  62. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +40 -17
  63. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +12 -24
  64. data/src/core/ext/transport/chttp2/transport/http2_transport.h +3 -29
  65. data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
  66. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
  67. data/src/core/ext/transport/chttp2/transport/read_context.h +96 -3
  68. data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
  69. data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
  70. data/src/core/ext/transport/chttp2/transport/security_frame.h +8 -8
  71. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +17 -9
  72. data/src/core/ext/transport/chttp2/transport/write_cycle.h +23 -3
  73. data/src/core/ext/transport/inproc/inproc_transport.cc +5 -5
  74. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h +137 -73
  75. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +45 -25
  76. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +6 -6
  77. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.c +4 -4
  78. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -5
  79. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +46 -26
  80. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.c +17 -14
  81. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -5
  82. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +5 -5
  83. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.c +3 -3
  84. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.h +5 -5
  85. data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
  86. data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
  87. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -5
  88. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +5 -5
  89. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.c +3 -3
  90. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.h +5 -5
  91. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb.h +185 -23
  92. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.c +20 -12
  93. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -5
  94. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +58 -42
  95. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.c +17 -12
  96. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.h +5 -5
  97. data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +567 -549
  98. data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
  99. data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
  100. data/src/core/filter/ext_proc/ext_proc_filter.cc +1603 -46
  101. data/src/core/filter/ext_proc/ext_proc_filter.h +55 -22
  102. data/src/core/filter/ext_proc/ext_proc_messages.cc +106 -51
  103. data/src/core/filter/ext_proc/ext_proc_messages.h +36 -9
  104. data/src/core/handshaker/handshaker.cc +4 -4
  105. data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
  106. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
  107. data/src/core/handshaker/security/secure_endpoint.cc +13 -13
  108. data/src/core/handshaker/security/security_handshaker.cc +6 -6
  109. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
  110. data/src/core/lib/channel/channel_args.cc +20 -0
  111. data/src/core/lib/channel/channel_args.h +17 -17
  112. data/src/core/lib/channel/promise_based_filter.cc +2 -2
  113. data/src/core/lib/channel/promise_based_filter.h +66 -27
  114. data/src/core/lib/debug/trace_flags.cc +2 -0
  115. data/src/core/lib/debug/trace_flags.h +1 -0
  116. data/src/core/lib/event_engine/ares_resolver.cc +14 -14
  117. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
  118. data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
  119. data/src/core/lib/event_engine/default_event_engine.cc +5 -5
  120. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -9
  121. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +16 -14
  122. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
  123. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
  124. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1 -1
  125. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +7 -7
  126. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +17 -17
  127. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -3
  128. data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
  129. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
  130. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
  131. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -1
  132. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
  133. data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
  134. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
  135. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
  136. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +3 -3
  137. data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
  138. data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
  139. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
  140. data/src/core/lib/experiments/experiments.cc +48 -0
  141. data/src/core/lib/experiments/experiments.h +24 -0
  142. data/src/core/lib/iomgr/buffer_list.cc +3 -3
  143. data/src/core/lib/iomgr/buffer_list.h +1 -1
  144. data/src/core/lib/iomgr/combiner.cc +0 -1
  145. data/src/core/lib/iomgr/ev_apple.cc +4 -4
  146. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  147. data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
  148. data/src/core/lib/iomgr/tcp_posix.cc +7 -7
  149. data/src/core/lib/promise/activity.cc +1 -1
  150. data/src/core/lib/promise/activity.h +1 -1
  151. data/src/core/lib/promise/arena_promise.h +7 -7
  152. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  153. data/src/core/lib/promise/detail/promise_like.h +4 -4
  154. data/src/core/lib/promise/inter_activity_latch.h +6 -6
  155. data/src/core/lib/promise/inter_activity_pipe.h +1 -1
  156. data/src/core/lib/promise/observable.h +3 -3
  157. data/src/core/lib/promise/party.cc +1 -1
  158. data/src/core/lib/promise/try_seq.h +2 -2
  159. data/src/core/lib/resource_quota/arena.h +3 -3
  160. data/src/core/lib/resource_quota/memory_quota.cc +16 -16
  161. data/src/core/lib/resource_quota/memory_quota.h +1 -1
  162. data/src/core/lib/resource_quota/thread_quota.cc +3 -3
  163. data/src/core/lib/security/authorization/audit_logging.cc +5 -5
  164. data/src/core/lib/security/authorization/authorization_engine.h +1 -1
  165. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
  166. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  167. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  168. data/src/core/lib/security/authorization/matchers.h +1 -1
  169. data/src/core/lib/surface/call.cc +8 -7
  170. data/src/core/lib/surface/call.h +3 -3
  171. data/src/core/lib/surface/call_utils.h +4 -0
  172. data/src/core/lib/surface/channel.cc +1 -1
  173. data/src/core/lib/surface/channel.h +1 -1
  174. data/src/core/lib/surface/channel_init.cc +1 -1
  175. data/src/core/lib/surface/init.cc +7 -7
  176. data/src/core/lib/surface/lame_client.cc +1 -1
  177. data/src/core/lib/surface/legacy_channel.cc +2 -2
  178. data/src/core/lib/surface/version.cc +1 -1
  179. data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
  180. data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
  181. data/src/core/load_balancing/autosharding/autosharding.h +78 -0
  182. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
  183. data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
  184. data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
  185. data/src/core/load_balancing/health_check_client.cc +7 -7
  186. data/src/core/load_balancing/lb_policy.cc +1 -1
  187. data/src/core/load_balancing/oob_backend_metric.cc +5 -5
  188. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
  189. data/src/core/load_balancing/ring_hash/ring_hash.cc +109 -37
  190. data/src/core/load_balancing/rls/rls.cc +23 -17
  191. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +10 -10
  192. data/src/core/load_balancing/xds/cds.cc +6 -5
  193. data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -2
  194. data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
  195. data/src/core/mitigation_engine/mitigation_engine.h +28 -4
  196. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  197. data/src/core/resolver/dns/dns_resolver.cc +7 -7
  198. data/src/core/resolver/fake/fake_resolver.cc +5 -5
  199. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -30
  200. data/src/core/server/server.cc +30 -30
  201. data/src/core/server/server.h +4 -3
  202. data/src/core/server/server_config_selector_filter.cc +3 -3
  203. data/src/core/server/xds_server_config_fetcher_legacy.cc +15 -15
  204. data/src/core/telemetry/default_tcp_tracer.cc +1 -1
  205. data/src/core/telemetry/instrument.cc +30 -16
  206. data/src/core/telemetry/instrument.h +3 -3
  207. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
  208. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -4
  209. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
  210. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  211. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
  212. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
  213. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
  214. data/src/core/tsi/ssl_transport_security.cc +46 -13
  215. data/src/core/tsi/ssl_transport_security.h +7 -0
  216. data/src/core/tsi/ssl_transport_security_utils.cc +16 -6
  217. data/src/core/util/event_log.cc +3 -3
  218. data/src/core/util/http_client/httpcli.cc +5 -5
  219. data/src/core/util/http_client/httpcli.h +1 -1
  220. data/src/core/util/json/json_object_loader.cc +7 -0
  221. data/src/core/util/json/json_object_loader.h +17 -2
  222. data/src/core/util/latent_see.cc +123 -36
  223. data/src/core/util/latent_see.h +14 -1
  224. data/src/core/util/mpscq.cc +1 -1
  225. data/src/core/util/notification.h +4 -4
  226. data/src/core/util/sync.h +20 -6
  227. data/src/core/util/table.h +20 -22
  228. data/src/core/util/work_serializer.cc +2 -2
  229. data/src/core/xds/grpc/blackboard.cc +4 -3
  230. data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
  231. data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
  232. data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
  233. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +2 -2
  234. data/src/core/xds/grpc/xds_client_grpc.cc +8 -8
  235. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  236. data/src/core/xds/grpc/xds_endpoint.cc +1 -1
  237. data/src/core/xds/grpc/xds_endpoint_parser.cc +11 -0
  238. data/src/core/xds/grpc/xds_grpc_service_parser.cc +12 -10
  239. data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +17 -14
  240. data/src/core/xds/grpc/xds_matcher.h +2 -2
  241. data/src/core/xds/grpc/xds_transport_grpc.cc +125 -85
  242. data/src/core/xds/grpc/xds_transport_grpc.h +19 -4
  243. data/src/core/xds/xds_client/lrs_client.cc +22 -19
  244. data/src/core/xds/xds_client/xds_client.cc +19 -16
  245. data/src/core/xds/xds_client/xds_transport.h +49 -3
  246. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  247. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  248. data/src/ruby/lib/grpc/version.rb +1 -1
  249. data/src/ruby/pb/README.md +1 -1
  250. data/src/ruby/pb/generate_proto_ruby.sh +1 -1
  251. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
  252. data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
  253. data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
  254. data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
  255. data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
  256. data/third_party/abseil-cpp/absl/base/casts.h +135 -2
  257. data/third_party/abseil-cpp/absl/base/config.h +63 -41
  258. data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
  259. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  260. data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
  261. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
  262. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
  263. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
  264. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
  265. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  266. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
  267. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
  268. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
  269. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
  270. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
  271. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
  272. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  273. data/third_party/abseil-cpp/absl/base/macros.h +76 -37
  274. data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
  275. data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
  276. data/third_party/abseil-cpp/absl/base/options.h +46 -18
  277. data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
  278. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
  279. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
  280. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
  281. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
  282. data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
  283. data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
  284. data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
  285. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
  286. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
  287. data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
  288. data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
  289. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
  290. data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
  291. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  292. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
  293. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
  294. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
  295. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
  296. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
  297. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
  298. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
  299. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
  300. data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
  301. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
  302. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
  303. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
  304. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
  305. data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
  306. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
  307. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
  308. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
  309. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
  310. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
  311. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
  312. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
  313. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  314. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  315. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
  316. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  317. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
  318. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
  319. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
  320. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
  321. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
  322. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
  323. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  324. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
  325. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
  326. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
  327. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
  328. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
  329. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
  330. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
  331. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
  332. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  333. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
  334. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  335. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
  336. data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
  337. data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
  338. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  339. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
  340. data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
  341. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
  342. data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
  343. data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
  344. data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
  345. data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
  346. data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
  347. data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
  348. data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
  349. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
  350. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
  351. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
  352. data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
  353. data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
  354. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
  355. data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
  356. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
  357. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  358. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
  359. data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
  360. data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
  361. data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  362. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
  363. data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
  364. data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
  365. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
  366. data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
  367. data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
  368. data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
  369. data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
  370. data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
  371. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  372. data/third_party/abseil-cpp/absl/log/log.h +2 -2
  373. data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
  374. data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
  375. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
  376. data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
  377. data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
  378. data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
  379. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  380. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  381. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
  382. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
  383. data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
  384. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
  385. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
  386. data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
  387. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
  388. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
  389. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
  390. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
  391. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  392. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
  393. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
  394. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
  395. data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
  396. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
  397. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
  398. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
  399. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
  400. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
  401. data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
  402. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
  403. data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
  404. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  405. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
  406. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
  407. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
  408. data/third_party/abseil-cpp/absl/status/status.cc +66 -70
  409. data/third_party/abseil-cpp/absl/status/status.h +254 -23
  410. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
  411. data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
  412. data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
  413. data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
  414. data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
  415. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
  416. data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
  417. data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
  418. data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  419. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
  420. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
  421. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
  422. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
  423. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
  424. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
  425. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
  426. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
  427. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
  428. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
  429. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
  430. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
  431. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  432. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
  433. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
  434. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
  435. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
  436. data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
  437. data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
  438. data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
  439. data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
  440. data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
  441. data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
  442. data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
  443. data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
  444. data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
  445. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
  446. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
  447. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
  448. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
  449. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  450. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
  451. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
  452. data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
  453. data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
  454. data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
  455. data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
  456. data/third_party/abseil-cpp/absl/time/clock.h +3 -0
  457. data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
  458. data/third_party/abseil-cpp/absl/time/format.cc +3 -10
  459. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
  460. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
  461. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  462. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
  463. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  464. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
  465. data/third_party/abseil-cpp/absl/time/time.cc +4 -4
  466. data/third_party/abseil-cpp/absl/time/time.h +14 -13
  467. data/third_party/abseil-cpp/absl/types/compare.h +64 -63
  468. data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
  469. data/third_party/abseil-cpp/absl/types/optional.h +31 -4
  470. data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
  471. data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
  472. data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
  473. data/third_party/abseil-cpp/absl/types/span.h +67 -38
  474. data/third_party/abseil-cpp/absl/types/variant.h +75 -18
  475. data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
  476. data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
  477. data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
  478. data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
  479. data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
  480. data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
  481. data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
  482. data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
  483. data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
  484. data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
  485. data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
  486. data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
  487. data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
  488. data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
  489. data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
  490. data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
  491. data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
  492. data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
  493. data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
  494. data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
  495. data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
  496. data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
  497. data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
  498. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
  499. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
  500. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
  501. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
  502. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
  503. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
  504. data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
  505. data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
  506. data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
  507. data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
  508. data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
  509. data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
  510. data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
  511. data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
  512. data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
  513. data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
  514. data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
  515. data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
  516. data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
  517. data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
  518. data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
  519. data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
  520. data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
  521. data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
  522. data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
  523. data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
  524. data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
  525. data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
  526. data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
  527. data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
  528. data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
  529. data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
  530. data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
  531. data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
  532. data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
  533. data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
  534. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
  535. data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
  536. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
  537. data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
  538. data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
  539. data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
  540. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
  541. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
  542. data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
  543. data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
  544. data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
  545. data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
  546. data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
  547. data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
  548. data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
  549. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
  550. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
  551. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
  552. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
  553. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
  554. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
  555. data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
  556. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
  557. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
  558. data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
  559. data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
  560. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
  561. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
  562. data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
  563. data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
  564. data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
  565. data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
  566. data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
  567. data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
  568. data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
  569. data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
  570. data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
  571. data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
  572. data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
  573. data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
  574. data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
  575. data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
  576. data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
  577. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
  578. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  579. data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
  580. data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
  581. data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
  582. data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
  583. data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
  584. data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
  585. data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
  586. data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
  587. data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
  588. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
  589. data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
  590. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
  591. data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
  592. data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
  593. data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
  594. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
  595. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
  596. data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
  597. data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
  598. data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
  599. data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
  600. data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
  601. data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
  602. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
  603. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
  604. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
  605. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
  606. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
  607. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
  608. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
  609. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
  610. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
  611. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
  612. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
  613. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
  614. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
  615. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
  616. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
  617. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
  618. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
  619. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
  620. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
  621. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
  622. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
  623. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
  624. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
  625. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
  626. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
  627. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
  628. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
  629. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
  630. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
  631. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
  632. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
  633. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
  634. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
  635. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
  636. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
  637. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
  638. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
  639. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
  640. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
  641. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
  642. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
  643. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
  644. data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
  645. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
  646. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
  647. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
  648. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
  649. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
  650. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
  651. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
  652. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
  653. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
  654. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
  655. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
  656. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
  657. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
  658. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
  659. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
  660. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
  661. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
  662. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
  663. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
  664. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
  665. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
  666. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
  667. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
  668. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
  669. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
  670. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
  671. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  672. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
  673. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
  674. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
  675. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
  676. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
  677. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
  678. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
  679. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
  680. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  681. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
  682. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
  683. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
  684. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
  685. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
  686. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
  687. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
  688. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
  689. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
  690. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
  691. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
  692. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
  693. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
  694. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
  695. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
  696. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
  697. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
  698. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
  699. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
  700. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
  701. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
  702. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
  703. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
  704. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
  705. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
  706. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
  707. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
  708. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
  709. data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
  710. data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
  711. data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
  712. data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
  713. data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
  714. data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
  715. data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
  716. data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
  717. data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
  718. data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
  719. data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
  720. data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
  721. data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
  722. data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
  723. data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
  724. data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
  725. data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
  726. data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
  727. data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
  728. data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
  729. data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
  730. data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
  731. data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
  732. data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
  733. data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
  734. data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
  735. data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
  736. data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
  737. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
  738. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
  739. data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
  740. data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
  741. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
  742. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
  743. data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
  744. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
  745. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
  746. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
  747. data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
  748. data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
  749. data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
  750. data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
  751. data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
  752. data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
  753. data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
  754. data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
  755. data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
  756. data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
  757. data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
  758. data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
  759. data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
  760. data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
  761. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
  762. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
  763. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
  764. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
  765. data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
  766. data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
  767. data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
  768. data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
  769. data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
  770. data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
  771. data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
  772. data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
  773. data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
  774. data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
  775. data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
  776. data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
  777. data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
  778. data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
  779. data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
  780. data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
  781. data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
  782. data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
  783. data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
  784. data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
  785. data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
  786. data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
  787. data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
  788. data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
  789. data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
  790. data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
  791. data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
  792. data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
  793. data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
  794. data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
  795. data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
  796. data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
  797. data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
  798. data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
  799. data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
  800. data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
  801. data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
  802. data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
  803. data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
  804. data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
  805. data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
  806. data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
  807. data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
  808. data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
  809. data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
  810. data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
  811. data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
  812. data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
  813. data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
  814. data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
  815. data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
  816. data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
  817. data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
  818. data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
  819. data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
  820. data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
  821. data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
  822. data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
  823. data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
  824. data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
  825. data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
  826. data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
  827. data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
  828. data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
  829. data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
  830. data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
  831. data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
  832. data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
  833. data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
  834. data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
  835. data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
  836. data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
  837. data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
  838. data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
  839. data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
  840. data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
  841. data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
  842. data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
  843. data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
  844. data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
  845. data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
  846. data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
  847. data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
  848. data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
  849. data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
  850. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
  851. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
  852. data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
  853. data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
  854. data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
  855. data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
  856. data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
  857. data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
  858. data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
  859. data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
  860. data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
  861. data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
  862. data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
  863. data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
  864. data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
  865. data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
  866. data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
  867. data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
  868. data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
  869. data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
  870. data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
  871. data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
  872. data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
  873. data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
  874. data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
  875. data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
  876. data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
  877. data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
  878. data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
  879. data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
  880. data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
  881. data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
  882. data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
  883. data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
  884. data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
  885. data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
  886. data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
  887. data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
  888. data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
  889. data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
  890. data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
  891. data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
  892. data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
  893. data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
  894. data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
  895. data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
  896. data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
  897. data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
  898. data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
  899. data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
  900. data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
  901. data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
  902. data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
  903. data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
  904. data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
  905. data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
  906. data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
  907. data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
  908. data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
  909. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
  910. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
  911. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
  912. data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
  913. data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
  914. data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
  915. data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
  916. data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
  917. data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
  918. data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
  919. data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
  920. data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
  921. data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
  922. data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
  923. data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
  924. data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
  925. data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
  926. data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
  927. data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
  928. data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
  929. data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
  930. data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
  931. data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
  932. data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
  933. data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
  934. data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
  935. data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
  936. data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
  937. data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
  938. data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
  939. data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
  940. data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
  941. data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
  942. data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
  943. data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
  944. data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
  945. data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
  946. data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
  947. data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
  948. data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
  949. data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
  950. data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
  951. data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
  952. data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
  953. data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
  954. data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
  955. data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
  956. data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
  957. data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
  958. data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
  959. data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
  960. data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
  961. data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
  962. data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
  963. data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
  964. data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
  965. data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
  966. data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
  967. data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
  968. data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
  969. data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
  970. data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
  971. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  972. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  973. data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
  974. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
  975. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
  976. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
  977. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
  978. data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
  979. metadata +77 -52
  980. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -240
  981. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
  982. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -157
  983. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -72
  984. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
  985. data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
  986. data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
  987. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
  988. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
  989. data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
  990. data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
  991. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
  992. data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
  993. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
  994. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
  995. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
  996. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
  997. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
  998. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
  999. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
  1000. data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
  1001. data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
  1002. data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
  1003. data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
  1004. data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
@@ -17,13 +17,15 @@
17
17
  #include <assert.h>
18
18
  #include <stdio.h>
19
19
  #include <stdlib.h>
20
+
21
+ #include <iterator>
20
22
  #include <type_traits>
21
23
 
22
24
  #include <openssl/bn.h>
23
25
  #include <openssl/hmac.h>
24
26
  #include <openssl/mem.h>
25
27
  #include <openssl/rand.h>
26
- #include <openssl/sha.h>
28
+ #include <openssl/sha2.h>
27
29
 
28
30
  #include "../internal.h"
29
31
  #include "internal.h"
@@ -36,6 +38,9 @@
36
38
  #include <arm_neon.h>
37
39
  #endif
38
40
 
41
+
42
+ using namespace bssl;
43
+
39
44
  // This is an implementation of [HRSS], but with a KEM transformation based on
40
45
  // [SXY]. The primary references are:
41
46
 
@@ -48,12 +53,11 @@
48
53
  // NTRUCOMP: https://eprint.iacr.org/2018/1174
49
54
  // SAFEGCD: https://gcd.cr.yp.to/papers.html#safegcd
50
55
 
51
-
52
56
  // Vector operations.
53
57
  //
54
58
  // A couple of functions in this file can use vector operations to meaningful
55
59
  // effect. If we're building for a target that has a supported vector unit,
56
- // |HRSS_HAVE_VECTOR_UNIT| will be defined and |vec_t| will be typedefed to a
60
+ // `HRSS_HAVE_VECTOR_UNIT` will be defined and `vec_t` will be typedefed to a
57
61
  // 128-bit vector. The following functions abstract over the differences between
58
62
  // NEON and SSE2 for implementing some vector operations.
59
63
 
@@ -62,31 +66,32 @@
62
66
  #if defined(OPENSSL_SSE2) && (defined(__clang__) || !defined(_MSC_VER))
63
67
 
64
68
  #define HRSS_HAVE_VECTOR_UNIT
69
+
65
70
  typedef __m128i vec_t;
66
71
 
67
72
  // vec_capable returns one iff the current platform supports SSE2.
68
- static int vec_capable(void) { return 1; }
73
+ static int vec_capable() { return 1; }
69
74
 
70
- // vec_add performs a pair-wise addition of four uint16s from |a| and |b|.
71
- static inline vec_t vec_add(vec_t a, vec_t b) { return _mm_add_epi16(a, b); }
75
+ // vec_add performs a pair-wise addition of four uint16s from `a` and `b`.
76
+ static vec_t vec_add(vec_t a, vec_t b) { return _mm_add_epi16(a, b); }
72
77
 
73
- // vec_sub performs a pair-wise subtraction of four uint16s from |a| and |b|.
74
- static inline vec_t vec_sub(vec_t a, vec_t b) { return _mm_sub_epi16(a, b); }
78
+ // vec_sub performs a pair-wise subtraction of four uint16s from `a` and `b`.
79
+ static vec_t vec_sub(vec_t a, vec_t b) { return _mm_sub_epi16(a, b); }
75
80
 
76
- // vec_mul multiplies each uint16_t in |a| by |b| and returns the resulting
81
+ // vec_mul multiplies each uint16_t in `a` by `b` and returns the resulting
77
82
  // vector.
78
- static inline vec_t vec_mul(vec_t a, uint16_t b) {
83
+ static vec_t vec_mul(vec_t a, uint16_t b) {
79
84
  return _mm_mullo_epi16(a, _mm_set1_epi16(b));
80
85
  }
81
86
 
82
- // vec_fma multiplies each uint16_t in |b| by |c|, adds the result to |a|, and
87
+ // vec_fma multiplies each uint16_t in `b` by `c`, adds the result to `a`, and
83
88
  // returns the resulting vector.
84
- static inline vec_t vec_fma(vec_t a, vec_t b, uint16_t c) {
89
+ static vec_t vec_fma(vec_t a, vec_t b, uint16_t c) {
85
90
  return _mm_add_epi16(a, _mm_mullo_epi16(b, _mm_set1_epi16(c)));
86
91
  }
87
92
 
88
- // vec3_rshift_word right-shifts the 24 uint16_t's in |v| by one uint16.
89
- static inline void vec3_rshift_word(vec_t v[3]) {
93
+ // vec3_rshift_word right-shifts the 24 uint16_t's in `v` by one uint16.
94
+ static void vec3_rshift_word(vec_t v[3]) {
90
95
  // Intel's left and right shifting is backwards compared to the order in
91
96
  // memory because they're based on little-endian order of words (and not just
92
97
  // bytes). So the shifts in this function will be backwards from what one
@@ -102,8 +107,8 @@ static inline void vec3_rshift_word(vec_t v[3]) {
102
107
  v[2] |= carry1;
103
108
  }
104
109
 
105
- // vec4_rshift_word right-shifts the 32 uint16_t's in |v| by one uint16.
106
- static inline void vec4_rshift_word(vec_t v[4]) {
110
+ // vec4_rshift_word right-shifts the 32 uint16_t's in `v` by one uint16.
111
+ static void vec4_rshift_word(vec_t v[4]) {
107
112
  // Intel's left and right shifting is backwards compared to the order in
108
113
  // memory because they're based on little-endian order of words (and not just
109
114
  // bytes). So the shifts in this function will be backwards from what one
@@ -123,15 +128,15 @@ static inline void vec4_rshift_word(vec_t v[4]) {
123
128
  v[3] |= carry2;
124
129
  }
125
130
 
126
- // vec_merge_3_5 takes the final three uint16_t's from |left|, appends the first
127
- // five from |right|, and returns the resulting vector.
128
- static inline vec_t vec_merge_3_5(vec_t left, vec_t right) {
131
+ // vec_merge_3_5 takes the final three uint16_t's from `left`, appends the first
132
+ // five from `right`, and returns the resulting vector.
133
+ static vec_t vec_merge_3_5(vec_t left, vec_t right) {
129
134
  return _mm_srli_si128(left, 10) | _mm_slli_si128(right, 6);
130
135
  }
131
136
 
132
- // poly3_vec_lshift1 left-shifts the 768 bits in |a_s|, and in |a_a|, by one
137
+ // poly3_vec_lshift1 left-shifts the 768 bits in `a_s`, and in `a_a`, by one
133
138
  // bit.
134
- static inline void poly3_vec_lshift1(vec_t a_s[6], vec_t a_a[6]) {
139
+ static void poly3_vec_lshift1(vec_t a_s[6], vec_t a_a[6]) {
135
140
  vec_t carry_s = {0};
136
141
  vec_t carry_a = {0};
137
142
 
@@ -150,9 +155,9 @@ static inline void poly3_vec_lshift1(vec_t a_s[6], vec_t a_a[6]) {
150
155
  }
151
156
  }
152
157
 
153
- // poly3_vec_rshift1 right-shifts the 768 bits in |a_s|, and in |a_a|, by one
158
+ // poly3_vec_rshift1 right-shifts the 768 bits in `a_s`, and in `a_a`, by one
154
159
  // bit.
155
- static inline void poly3_vec_rshift1(vec_t a_s[6], vec_t a_a[6]) {
160
+ static void poly3_vec_rshift1(vec_t a_s[6], vec_t a_a[6]) {
156
161
  vec_t carry_s = {0};
157
162
  vec_t carry_a = {0};
158
163
 
@@ -171,15 +176,15 @@ static inline void poly3_vec_rshift1(vec_t a_s[6], vec_t a_a[6]) {
171
176
  }
172
177
  }
173
178
 
174
- // vec_broadcast_bit duplicates the least-significant bit in |a| to all bits in
179
+ // vec_broadcast_bit duplicates the least-significant bit in `a` to all bits in
175
180
  // a vector and returns the result.
176
- static inline vec_t vec_broadcast_bit(vec_t a) {
181
+ static vec_t vec_broadcast_bit(vec_t a) {
177
182
  return _mm_shuffle_epi32(_mm_srai_epi32(_mm_slli_epi64(a, 63), 31),
178
183
  0b01010101);
179
184
  }
180
185
 
181
- // vec_get_word returns the |i|th uint16_t in |v|. (This is a macro because the
182
- // compiler requires that |i| be a compile-time constant.)
186
+ // vec_get_word returns the `i`th uint16_t in `v`. (This is a macro because the
187
+ // compiler requires that `i` be a compile-time constant.)
183
188
  #define vec_get_word(v, i) _mm_extract_epi16(v, i)
184
189
 
185
190
  #elif (defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)) && defined(__ARM_NEON)
@@ -190,26 +195,26 @@ typedef uint16x8_t vec_t;
190
195
  // These functions perform the same actions as the SSE2 function of the same
191
196
  // name, above.
192
197
 
193
- static int vec_capable(void) { return CRYPTO_is_NEON_capable(); }
198
+ static int vec_capable() { return CRYPTO_is_NEON_capable(); }
194
199
 
195
- static inline vec_t vec_add(vec_t a, vec_t b) { return a + b; }
200
+ static vec_t vec_add(vec_t a, vec_t b) { return a + b; }
196
201
 
197
- static inline vec_t vec_sub(vec_t a, vec_t b) { return a - b; }
202
+ static vec_t vec_sub(vec_t a, vec_t b) { return a - b; }
198
203
 
199
- static inline vec_t vec_mul(vec_t a, uint16_t b) { return vmulq_n_u16(a, b); }
204
+ static vec_t vec_mul(vec_t a, uint16_t b) { return vmulq_n_u16(a, b); }
200
205
 
201
- static inline vec_t vec_fma(vec_t a, vec_t b, uint16_t c) {
206
+ static vec_t vec_fma(vec_t a, vec_t b, uint16_t c) {
202
207
  return vmlaq_n_u16(a, b, c);
203
208
  }
204
209
 
205
- static inline void vec3_rshift_word(vec_t v[3]) {
210
+ static void vec3_rshift_word(vec_t v[3]) {
206
211
  const uint16x8_t kZero = {0};
207
212
  v[2] = vextq_u16(v[1], v[2], 7);
208
213
  v[1] = vextq_u16(v[0], v[1], 7);
209
214
  v[0] = vextq_u16(kZero, v[0], 7);
210
215
  }
211
216
 
212
- static inline void vec4_rshift_word(vec_t v[4]) {
217
+ static void vec4_rshift_word(vec_t v[4]) {
213
218
  const uint16x8_t kZero = {0};
214
219
  v[3] = vextq_u16(v[2], v[3], 7);
215
220
  v[2] = vextq_u16(v[1], v[2], 7);
@@ -217,20 +222,20 @@ static inline void vec4_rshift_word(vec_t v[4]) {
217
222
  v[0] = vextq_u16(kZero, v[0], 7);
218
223
  }
219
224
 
220
- static inline vec_t vec_merge_3_5(vec_t left, vec_t right) {
225
+ static vec_t vec_merge_3_5(vec_t left, vec_t right) {
221
226
  return vextq_u16(left, right, 5);
222
227
  }
223
228
 
224
- static inline uint16_t vec_get_word(vec_t v, unsigned i) { return v[i]; }
229
+ static uint16_t vec_get_word(vec_t v, unsigned i) { return v[i]; }
225
230
 
226
231
  #if !defined(OPENSSL_AARCH64)
227
232
 
228
- static inline vec_t vec_broadcast_bit(vec_t a) {
233
+ static vec_t vec_broadcast_bit(vec_t a) {
229
234
  a = (vec_t)vshrq_n_s16(((int16x8_t)a) << 15, 15);
230
235
  return vdupq_lane_u16(vget_low_u16(a), 0);
231
236
  }
232
237
 
233
- static inline void poly3_vec_lshift1(vec_t a_s[6], vec_t a_a[6]) {
238
+ static void poly3_vec_lshift1(vec_t a_s[6], vec_t a_a[6]) {
234
239
  vec_t carry_s = {0};
235
240
  vec_t carry_a = {0};
236
241
  const vec_t kZero = {0};
@@ -250,7 +255,7 @@ static inline void poly3_vec_lshift1(vec_t a_s[6], vec_t a_a[6]) {
250
255
  }
251
256
  }
252
257
 
253
- static inline void poly3_vec_rshift1(vec_t a_s[6], vec_t a_a[6]) {
258
+ static void poly3_vec_rshift1(vec_t a_s[6], vec_t a_a[6]) {
254
259
  vec_t carry_s = {0};
255
260
  vec_t carry_a = {0};
256
261
  const vec_t kZero = {0};
@@ -275,7 +280,7 @@ static inline void poly3_vec_rshift1(vec_t a_s[6], vec_t a_a[6]) {
275
280
  #endif // (ARM || AARCH64) && NEON
276
281
 
277
282
  // Polynomials in this scheme have N terms.
278
- // #define N 701
283
+ #define N HRSS_N
279
284
 
280
285
  // Underlying data types and arithmetic operations.
281
286
  // ------------------------------------------------
@@ -295,7 +300,7 @@ static void poly2_zero(struct poly2 *p) {
295
300
  OPENSSL_memset(&p->v[0], 0, sizeof(crypto_word_t) * WORDS_PER_POLY);
296
301
  }
297
302
 
298
- // word_reverse returns |in| with the bits in reverse order.
303
+ // word_reverse returns `in` with the bits in reverse order.
299
304
  static crypto_word_t word_reverse(crypto_word_t in) {
300
305
  #if defined(OPENSSL_64_BIT)
301
306
  static const crypto_word_t kMasks[6] = {
@@ -309,19 +314,19 @@ static crypto_word_t word_reverse(crypto_word_t in) {
309
314
  };
310
315
  #endif
311
316
 
312
- for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(kMasks); i++) {
317
+ for (size_t i = 0; i < std::size(kMasks); i++) {
313
318
  in = ((in >> (1 << i)) & kMasks[i]) | ((in & kMasks[i]) << (1 << i));
314
319
  }
315
320
 
316
321
  return in;
317
322
  }
318
323
 
319
- // lsb_to_all replicates the least-significant bit of |v| to all bits of the
324
+ // lsb_to_all replicates the least-significant bit of `v` to all bits of the
320
325
  // word. This is used in bit-slicing operations to make a vector from a fixed
321
326
  // value.
322
327
  static crypto_word_t lsb_to_all(crypto_word_t v) { return 0u - (v & 1); }
323
328
 
324
- // poly2_mod_phiN reduces |p| by Φ(N).
329
+ // poly2_mod_phiN reduces `p` by Φ(N).
325
330
  static void poly2_mod_phiN(struct poly2 *p) {
326
331
  // m is the term at x^700, replicated to every bit.
327
332
  const crypto_word_t m =
@@ -332,8 +337,8 @@ static void poly2_mod_phiN(struct poly2 *p) {
332
337
  p->v[WORDS_PER_POLY - 1] &= (UINT64_C(1) << (BITS_IN_LAST_WORD - 1)) - 1;
333
338
  }
334
339
 
335
- // poly2_reverse_700 reverses the order of the first 700 bits of |in| and writes
336
- // the result to |out|.
340
+ // poly2_reverse_700 reverses the order of the first 700 bits of `in` and writes
341
+ // the result to `out`.
337
342
  static void poly2_reverse_700(struct poly2 *out, const struct poly2 *in) {
338
343
  struct poly2 t;
339
344
  for (size_t i = 0; i < WORDS_PER_POLY; i++) {
@@ -348,7 +353,7 @@ static void poly2_reverse_700(struct poly2 *out, const struct poly2 *in) {
348
353
  out->v[WORDS_PER_POLY - 1] = t.v[0] >> shift;
349
354
  }
350
355
 
351
- // poly2_cswap exchanges the values of |a| and |b| if |swap| is all ones.
356
+ // poly2_cswap exchanges the values of `a` and `b` if `swap` is all ones.
352
357
  static void poly2_cswap(struct poly2 *a, struct poly2 *b, crypto_word_t swap) {
353
358
  for (size_t i = 0; i < WORDS_PER_POLY; i++) {
354
359
  const crypto_word_t sum = swap & (a->v[i] ^ b->v[i]);
@@ -357,8 +362,8 @@ static void poly2_cswap(struct poly2 *a, struct poly2 *b, crypto_word_t swap) {
357
362
  }
358
363
  }
359
364
 
360
- // poly2_fmadd sets |out| to |out| + |in| * m, where m is either
361
- // |CONSTTIME_TRUE_W| or |CONSTTIME_FALSE_W|.
365
+ // poly2_fmadd sets `out` to `out` + `in` * m, where m is either
366
+ // `CONSTTIME_TRUE_W` or `CONSTTIME_FALSE_W`.
362
367
  static void poly2_fmadd(struct poly2 *out, const struct poly2 *in,
363
368
  crypto_word_t m) {
364
369
  for (size_t i = 0; i < WORDS_PER_POLY; i++) {
@@ -366,7 +371,7 @@ static void poly2_fmadd(struct poly2 *out, const struct poly2 *in,
366
371
  }
367
372
  }
368
373
 
369
- // poly2_lshift1 left-shifts |p| by one bit.
374
+ // poly2_lshift1 left-shifts `p` by one bit.
370
375
  static void poly2_lshift1(struct poly2 *p) {
371
376
  crypto_word_t carry = 0;
372
377
  for (size_t i = 0; i < WORDS_PER_POLY; i++) {
@@ -377,7 +382,7 @@ static void poly2_lshift1(struct poly2 *p) {
377
382
  }
378
383
  }
379
384
 
380
- // poly2_rshift1 right-shifts |p| by one bit.
385
+ // poly2_rshift1 right-shifts `p` by one bit.
381
386
  static void poly2_rshift1(struct poly2 *p) {
382
387
  crypto_word_t carry = 0;
383
388
  for (size_t i = WORDS_PER_POLY - 1; i < WORDS_PER_POLY; i--) {
@@ -397,7 +402,7 @@ static void poly2_clear_top_bits(struct poly2 *p) {
397
402
  // Ternary polynomials.
398
403
 
399
404
  // poly3 represents a degree-N polynomial over GF(3). Each coefficient is
400
- // bitsliced across the |s| and |a| arrays, like this:
405
+ // bitsliced across the `s` and `a` arrays, like this:
401
406
  //
402
407
  // s | a | value
403
408
  // -----------------
@@ -436,14 +441,14 @@ static void poly3_zero(struct poly3 *p) {
436
441
  poly2_zero(&p->a);
437
442
  }
438
443
 
439
- // poly3_reverse_700 reverses the order of the first 700 terms of |in| and
440
- // writes them to |out|.
444
+ // poly3_reverse_700 reverses the order of the first 700 terms of `in` and
445
+ // writes them to `out`.
441
446
  static void poly3_reverse_700(struct poly3 *out, const struct poly3 *in) {
442
447
  poly2_reverse_700(&out->a, &in->a);
443
448
  poly2_reverse_700(&out->s, &in->s);
444
449
  }
445
450
 
446
- // poly3_word_mul sets (|out_s|, |out_a|) to (|s1|, |a1|) × (|s2|, |a2|).
451
+ // poly3_word_mul sets (`out_s`, `out_a`) to (`s1`, `a1`) × (`s2`, `a2`).
447
452
  static void poly3_word_mul(crypto_word_t *out_s, crypto_word_t *out_a,
448
453
  const crypto_word_t s1, const crypto_word_t a1,
449
454
  const crypto_word_t s2, const crypto_word_t a2) {
@@ -451,7 +456,7 @@ static void poly3_word_mul(crypto_word_t *out_s, crypto_word_t *out_a,
451
456
  *out_s = (s1 ^ s2) & *out_a;
452
457
  }
453
458
 
454
- // poly3_word_add sets (|out_s|, |out_a|) to (|s1|, |a1|) + (|s2|, |a2|).
459
+ // poly3_word_add sets (`out_s`, `out_a`) to (`s1`, `a1`) + (`s2`, `a2`).
455
460
  static void poly3_word_add(crypto_word_t *out_s, crypto_word_t *out_a,
456
461
  const crypto_word_t s1, const crypto_word_t a1,
457
462
  const crypto_word_t s2, const crypto_word_t a2) {
@@ -460,7 +465,7 @@ static void poly3_word_add(crypto_word_t *out_s, crypto_word_t *out_a,
460
465
  *out_a = (a1 ^ a2) | (t ^ s2);
461
466
  }
462
467
 
463
- // poly3_word_sub sets (|out_s|, |out_a|) to (|s1|, |a1|) - (|s2|, |a2|).
468
+ // poly3_word_sub sets (`out_s`, `out_a`) to (`s1`, `a1`) - (`s2`, `a2`).
464
469
  static void poly3_word_sub(crypto_word_t *out_s, crypto_word_t *out_a,
465
470
  const crypto_word_t s1, const crypto_word_t a1,
466
471
  const crypto_word_t s2, const crypto_word_t a2) {
@@ -469,7 +474,7 @@ static void poly3_word_sub(crypto_word_t *out_s, crypto_word_t *out_a,
469
474
  *out_a = t | (s1 ^ s2);
470
475
  }
471
476
 
472
- // poly3_mul_const sets |p| to |p|×m, where m = (ms, ma).
477
+ // poly3_mul_const sets `p` to `p`×m, where m = (ms, ma).
473
478
  static void poly3_mul_const(struct poly3 *p, crypto_word_t ms,
474
479
  crypto_word_t ma) {
475
480
  ms = lsb_to_all(ms);
@@ -480,7 +485,7 @@ static void poly3_mul_const(struct poly3 *p, crypto_word_t ms,
480
485
  }
481
486
  }
482
487
 
483
- // poly3_fmadd sets |out| to |out| - |in|×m, where m is (ms, ma).
488
+ // poly3_fmadd sets `out` to `out` - `in`×m, where m is (ms, ma).
484
489
  static void poly3_fmsub(struct poly3 *out, const struct poly3 *in,
485
490
  crypto_word_t ms, crypto_word_t ma) {
486
491
  crypto_word_t product_s, product_a;
@@ -497,7 +502,7 @@ static crypto_word_t final_bit_to_all(crypto_word_t v) {
497
502
  return lsb_to_all(v >> (BITS_IN_LAST_WORD - 1));
498
503
  }
499
504
 
500
- // poly3_mod_phiN reduces |p| by Φ(N).
505
+ // poly3_mod_phiN reduces `p` by Φ(N).
501
506
  static void poly3_mod_phiN(struct poly3 *p) {
502
507
  // In order to reduce by Φ(N) we subtract by the value of the greatest
503
508
  // coefficient.
@@ -534,8 +539,8 @@ struct poly3_span {
534
539
  crypto_word_t *a;
535
540
  };
536
541
 
537
- // poly3_span_add adds |n| words of values from |a| and |b| and writes the
538
- // result to |out|.
542
+ // poly3_span_add adds `n` words of values from `a` and `b` and writes the
543
+ // result to `out`.
539
544
  static void poly3_span_add(const struct poly3_span *out,
540
545
  const struct poly3_span *a,
541
546
  const struct poly3_span *b, size_t n) {
@@ -544,7 +549,7 @@ static void poly3_span_add(const struct poly3_span *out,
544
549
  }
545
550
  }
546
551
 
547
- // poly3_span_sub subtracts |n| words of |b| from |n| words of |a|.
552
+ // poly3_span_sub subtracts `n` words of `b` from `n` words of `a`.
548
553
  static void poly3_span_sub(const struct poly3_span *a,
549
554
  const struct poly3_span *b, size_t n) {
550
555
  for (size_t i = 0; i < n; i++) {
@@ -552,11 +557,11 @@ static void poly3_span_sub(const struct poly3_span *a,
552
557
  }
553
558
  }
554
559
 
555
- // poly3_mul_aux is a recursive function that multiplies |n| words from |a| and
556
- // |b| and writes 2×|n| words to |out|. Each call uses 2*ceil(n/2) elements of
557
- // |scratch| and the function recurses, except if |n| == 1, when |scratch| isn't
558
- // used and the recursion stops. For |n| in {11, 22}, the transitive total
559
- // amount of |scratch| needed happens to be 2n+2.
560
+ // poly3_mul_aux is a recursive function that multiplies `n` words from `a` and
561
+ // `b` and writes 2×`n` words to `out`. Each call uses 2*ceil(n/2) elements of
562
+ // `scratch` and the function recurses, except if `n` == 1, when `scratch` isn't
563
+ // used and the recursion stops. For `n` in {11, 22}, the transitive total
564
+ // amount of `scratch` needed happens to be 2n+2.
560
565
  static void poly3_mul_aux(const struct poly3_span *out,
561
566
  const struct poly3_span *scratch,
562
567
  const struct poly3_span *a,
@@ -603,14 +608,14 @@ static void poly3_mul_aux(const struct poly3_span *out,
603
608
  // Karatsuba multiplication.
604
609
  // https://en.wikipedia.org/wiki/Karatsuba_algorithm
605
610
 
606
- // When |n| is odd, the two "halves" will have different lengths. The first
611
+ // When `n` is odd, the two "halves" will have different lengths. The first
607
612
  // is always the smaller.
608
613
  const size_t low_len = n / 2;
609
614
  const size_t high_len = n - low_len;
610
615
  const struct poly3_span a_high = {&a->s[low_len], &a->a[low_len]};
611
616
  const struct poly3_span b_high = {&b->s[low_len], &b->a[low_len]};
612
617
 
613
- // Store a_1 + a_0 in the first half of |out| and b_1 + b_0 in the second
618
+ // Store a_1 + a_0 in the first half of `out` and b_1 + b_0 in the second
614
619
  // half.
615
620
  const struct poly3_span a_cross_sum = *out;
616
621
  const struct poly3_span b_cross_sum = {&out->s[high_len], &out->a[high_len]};
@@ -644,9 +649,9 @@ static void poly3_mul_aux(const struct poly3_span *out,
644
649
  poly3_span_add(&out_mid, &out_mid, scratch, high_len * 2);
645
650
  }
646
651
 
647
- // HRSS_poly3_mul sets |*out| to |x|×|y| mod Φ(N).
648
- void HRSS_poly3_mul(struct poly3 *out, const struct poly3 *x,
649
- const struct poly3 *y) {
652
+ // HRSS_poly3_mul sets `*out` to `x`×`y` mod Φ(N).
653
+ void bssl::HRSS_poly3_mul(struct poly3 *out, const struct poly3 *x,
654
+ const struct poly3 *y) {
650
655
  crypto_word_t prod_s[WORDS_PER_POLY * 2];
651
656
  crypto_word_t prod_a[WORDS_PER_POLY * 2];
652
657
  crypto_word_t scratch_s[WORDS_PER_POLY * 2 + 2];
@@ -660,7 +665,7 @@ void HRSS_poly3_mul(struct poly3 *out, const struct poly3 *x,
660
665
 
661
666
  poly3_mul_aux(&prod_span, &scratch_span, &x_span, &y_span, WORDS_PER_POLY);
662
667
 
663
- // |prod| needs to be reduced mod (𝑥^n - 1), which just involves adding the
668
+ // `prod` needs to be reduced mod (𝑥^n - 1), which just involves adding the
664
669
  // upper-half to the lower-half. However, N is 701, which isn't a multiple of
665
670
  // BITS_PER_WORD, so the upper-half vectors all have to be shifted before
666
671
  // being added to the lower-half.
@@ -678,10 +683,10 @@ void HRSS_poly3_mul(struct poly3 *out, const struct poly3 *x,
678
683
 
679
684
  #if defined(HRSS_HAVE_VECTOR_UNIT) && !defined(OPENSSL_AARCH64)
680
685
 
681
- // poly3_vec_cswap swaps (|a_s|, |a_a|) and (|b_s|, |b_a|) if |swap| is
682
- // |0xff..ff|. Otherwise, |swap| must be zero.
683
- static inline void poly3_vec_cswap(vec_t a_s[6], vec_t a_a[6], vec_t b_s[6],
684
- vec_t b_a[6], const vec_t swap) {
686
+ // poly3_vec_cswap swaps (`a_s`, `a_a`) and (`b_s`, `b_a`) if `swap` is
687
+ // `0xff..ff`. Otherwise, `swap` must be zero.
688
+ static void poly3_vec_cswap(vec_t a_s[6], vec_t a_a[6], vec_t b_s[6],
689
+ vec_t b_a[6], const vec_t swap) {
685
690
  for (int i = 0; i < 6; i++) {
686
691
  const vec_t sum_s = swap & (a_s[i] ^ b_s[i]);
687
692
  a_s[i] ^= sum_s;
@@ -693,10 +698,9 @@ static inline void poly3_vec_cswap(vec_t a_s[6], vec_t a_a[6], vec_t b_s[6],
693
698
  }
694
699
  }
695
700
 
696
- // poly3_vec_fmsub subtracts (|ms|, |ma|) × (|b_s|, |b_a|) from (|a_s|, |a_a|).
697
- static inline void poly3_vec_fmsub(vec_t a_s[6], vec_t a_a[6], vec_t b_s[6],
698
- vec_t b_a[6], const vec_t ms,
699
- const vec_t ma) {
701
+ // poly3_vec_fmsub subtracts (`ms`, `ma`) × (`b_s`, `b_a`) from (`a_s`, `a_a`).
702
+ static void poly3_vec_fmsub(vec_t a_s[6], vec_t a_a[6], vec_t b_s[6],
703
+ vec_t b_a[6], const vec_t ms, const vec_t ma) {
700
704
  for (int i = 0; i < 6; i++) {
701
705
  // See the bitslice formula, above.
702
706
  const vec_t s = b_s[i];
@@ -712,7 +716,7 @@ static inline void poly3_vec_fmsub(vec_t a_s[6], vec_t a_a[6], vec_t b_s[6],
712
716
  }
713
717
  }
714
718
 
715
- // poly3_invert_vec sets |*out| to |in|^-1, i.e. such that |out|×|in| == 1 mod
719
+ // poly3_invert_vec sets `*out` to `in`^-1, i.e. such that `out`×`in` == 1 mod
716
720
  // Φ(N).
717
721
  static void poly3_invert_vec(struct poly3 *out, const struct poly3 *in) {
718
722
  // This algorithm is taken from section 7.1 of [SAFEGCD].
@@ -733,7 +737,7 @@ static void poly3_invert_vec(struct poly3 *out, const struct poly3 *in) {
733
737
  memset(f_s, 0, sizeof(f_s));
734
738
  memset(f_a, 0xff, 5 * sizeof(vec_t));
735
739
  memcpy(&f_a[5], kBottomSixtyOne, sizeof(kBottomSixtyOne));
736
- // g is the reversal of |in|.
740
+ // g is the reversal of `in`.
737
741
  struct poly3 in_reversed;
738
742
  poly3_reverse_700(&in_reversed, in);
739
743
  g_s[5] = kZero;
@@ -751,7 +755,7 @@ static void poly3_invert_vec(struct poly3 *out, const struct poly3 *in) {
751
755
  const crypto_word_t delta_is_non_zero = ~constant_time_is_zero_w(delta);
752
756
  const vec_t g_has_constant_term = vec_broadcast_bit(g_a[0]);
753
757
  const vec_t mask_w = {
754
- static_cast<std::remove_reference<decltype(mask_w[0])>::type>(
758
+ static_cast<std::remove_reference_t<decltype(mask_w[0])>>(
755
759
  delta_is_non_negative & delta_is_non_zero)};
756
760
  const vec_t mask = vec_broadcast_bit(mask_w) & g_has_constant_term;
757
761
 
@@ -778,9 +782,9 @@ static void poly3_invert_vec(struct poly3 *out, const struct poly3 *in) {
778
782
 
779
783
  #endif // HRSS_HAVE_VECTOR_UNIT
780
784
 
781
- // HRSS_poly3_invert sets |*out| to |in|^-1, i.e. such that |out|×|in| == 1 mod
785
+ // HRSS_poly3_invert sets `*out` to `in`^-1, i.e. such that `out`×`in` == 1 mod
782
786
  // Φ(N).
783
- void HRSS_poly3_invert(struct poly3 *out, const struct poly3 *in) {
787
+ void bssl::HRSS_poly3_invert(struct poly3 *out, const struct poly3 *in) {
784
788
  // The vector version of this function seems slightly slower on AArch64, but
785
789
  // is useful on ARMv7 and x86-64.
786
790
  #if defined(HRSS_HAVE_VECTOR_UNIT) && !defined(OPENSSL_AARCH64)
@@ -801,7 +805,7 @@ void HRSS_poly3_invert(struct poly3 *out, const struct poly3 *in) {
801
805
  OPENSSL_memset(&f.s, 0, sizeof(struct poly2));
802
806
  OPENSSL_memset(&f.a, 0xff, sizeof(struct poly2));
803
807
  f.a.v[WORDS_PER_POLY - 1] >>= BITS_PER_WORD - BITS_IN_LAST_WORD;
804
- // g is the reversal of |in|.
808
+ // g is the reversal of `in`.
805
809
  poly3_reverse_700(&g, in);
806
810
  int delta = 1;
807
811
 
@@ -870,14 +874,14 @@ struct poly {
870
874
  };
871
875
  } // namespace
872
876
 
873
- // poly_normalize zeros out the excess elements of |x| which are included only
877
+ // poly_normalize zeros out the excess elements of `x` which are included only
874
878
  // for alignment.
875
879
  static void poly_normalize(struct poly *x) {
876
880
  OPENSSL_memset(&x->v[N], 0, 3 * sizeof(uint16_t));
877
881
  }
878
882
 
879
- // poly_assert_normalized asserts that the excess elements of |x| are zeroed out
880
- // for the cases that case. (E.g. |poly_mul_vec|.)
883
+ // poly_assert_normalized asserts that the excess elements of `x` are zeroed out
884
+ // for the cases that case. (E.g. `poly_mul_vec`.)
881
885
  static void poly_assert_normalized(const struct poly *x) {
882
886
  assert(x->v[N] == 0);
883
887
  assert(x->v[N + 1] == 0);
@@ -886,20 +890,20 @@ static void poly_assert_normalized(const struct poly *x) {
886
890
 
887
891
  namespace {
888
892
  // POLY_MUL_SCRATCH contains space for the working variables needed by
889
- // |poly_mul|. The contents afterwards may be discarded, but the object may also
890
- // be reused with future |poly_mul| calls to save heap allocations.
893
+ // `poly_mul`. The contents afterwards may be discarded, but the object may also
894
+ // be reused with future `poly_mul` calls to save heap allocations.
891
895
  //
892
896
  // This object must have 32-byte alignment.
893
897
  struct POLY_MUL_SCRATCH {
894
898
  union {
895
- // This is used by |poly_mul_novec|.
899
+ // This is used by `poly_mul_novec`.
896
900
  struct {
897
901
  uint16_t prod[2 * N];
898
902
  uint16_t scratch[1318];
899
903
  } novec;
900
904
 
901
905
  #if defined(HRSS_HAVE_VECTOR_UNIT)
902
- // This is used by |poly_mul_vec|.
906
+ // This is used by `poly_mul_vec`.
903
907
  struct {
904
908
  vec_t prod[VECS_PER_POLY * 2];
905
909
  vec_t scratch[172];
@@ -907,7 +911,7 @@ struct POLY_MUL_SCRATCH {
907
911
  #endif
908
912
 
909
913
  #if defined(POLY_RQ_MUL_ASM)
910
- // This is the space used by |poly_Rq_mul|.
914
+ // This is the space used by `poly_Rq_mul`.
911
915
  uint8_t rq[POLY_MUL_RQ_SCRATCH_SPACE];
912
916
  #endif
913
917
  } u;
@@ -916,10 +920,10 @@ struct POLY_MUL_SCRATCH {
916
920
 
917
921
  #if defined(HRSS_HAVE_VECTOR_UNIT)
918
922
 
919
- // poly_mul_vec_aux is a recursive function that multiplies |n| words from |a|
920
- // and |b| and writes 2×|n| words to |out|. Each call uses 2*ceil(n/2) elements
921
- // of |scratch| and the function recurses, except if |n| < 3, when |scratch|
922
- // isn't used and the recursion stops. If |n| == |VECS_PER_POLY| then |scratch|
923
+ // poly_mul_vec_aux is a recursive function that multiplies `n` words from `a`
924
+ // and `b` and writes 2×`n` words to `out`. Each call uses 2*ceil(n/2) elements
925
+ // of `scratch` and the function recurses, except if `n` < 3, when `scratch`
926
+ // isn't used and the recursion stops. If `n` == `VECS_PER_POLY` then `scratch`
923
927
  // needs 172 elements.
924
928
  static void poly_mul_vec_aux(vec_t *out, vec_t *scratch, const vec_t *a,
925
929
  const vec_t *b, const size_t n) {
@@ -1115,14 +1119,14 @@ static void poly_mul_vec_aux(vec_t *out, vec_t *scratch, const vec_t *a,
1115
1119
  // Karatsuba multiplication.
1116
1120
  // https://en.wikipedia.org/wiki/Karatsuba_algorithm
1117
1121
 
1118
- // When |n| is odd, the two "halves" will have different lengths. The first is
1122
+ // When `n` is odd, the two "halves" will have different lengths. The first is
1119
1123
  // always the smaller.
1120
1124
  const size_t low_len = n / 2;
1121
1125
  const size_t high_len = n - low_len;
1122
1126
  const vec_t *a_high = &a[low_len];
1123
1127
  const vec_t *b_high = &b[low_len];
1124
1128
 
1125
- // Store a_1 + a_0 in the first half of |out| and b_1 + b_0 in the second
1129
+ // Store a_1 + a_0 in the first half of `out` and b_1 + b_0 in the second
1126
1130
  // half.
1127
1131
  for (size_t i = 0; i < low_len; i++) {
1128
1132
  out[i] = vec_add(a_high[i], a[i]);
@@ -1157,7 +1161,7 @@ static void poly_mul_vec_aux(vec_t *out, vec_t *scratch, const vec_t *a,
1157
1161
  }
1158
1162
  }
1159
1163
 
1160
- // poly_mul_vec sets |*out| to |x|×|y| mod (𝑥^n - 1).
1164
+ // poly_mul_vec sets `*out` to `x`×`y` mod (𝑥^n - 1).
1161
1165
  static void poly_mul_vec(struct POLY_MUL_SCRATCH *scratch, struct poly *out,
1162
1166
  const struct poly *x, const struct poly *y) {
1163
1167
  static_assert(sizeof(out->v) == sizeof(vec_t) * VECS_PER_POLY,
@@ -1171,7 +1175,7 @@ static void poly_mul_vec(struct POLY_MUL_SCRATCH *scratch, struct poly *out,
1171
1175
  vec_t *const aux_scratch = scratch->u.vec.scratch;
1172
1176
  poly_mul_vec_aux(prod, aux_scratch, x->vectors, y->vectors, VECS_PER_POLY);
1173
1177
 
1174
- // |prod| needs to be reduced mod (𝑥^n - 1), which just involves adding the
1178
+ // `prod` needs to be reduced mod (𝑥^n - 1), which just involves adding the
1175
1179
  // upper-half to the lower-half. However, N is 701, which isn't a multiple of
1176
1180
  // the vector size, so the upper-half vectors all have to be shifted before
1177
1181
  // being added to the lower-half.
@@ -1188,11 +1192,11 @@ static void poly_mul_vec(struct POLY_MUL_SCRATCH *scratch, struct poly *out,
1188
1192
 
1189
1193
  #endif // HRSS_HAVE_VECTOR_UNIT
1190
1194
 
1191
- // poly_mul_novec_aux writes the product of |a| and |b| to |out|, using
1192
- // |scratch| as scratch space. It'll use Karatsuba if the inputs are large
1193
- // enough to warrant it. Each call uses 2*ceil(n/2) elements of |scratch| and
1194
- // the function recurses, except if |n| < 64, when |scratch| isn't used and the
1195
- // recursion stops. If |n| == |N| then |scratch| needs 1318 elements.
1195
+ // poly_mul_novec_aux writes the product of `a` and `b` to `out`, using
1196
+ // `scratch` as scratch space. It'll use Karatsuba if the inputs are large
1197
+ // enough to warrant it. Each call uses 2*ceil(n/2) elements of `scratch` and
1198
+ // the function recurses, except if `n` < 64, when `scratch` isn't used and the
1199
+ // recursion stops. If `n` == `N` then `scratch` needs 1318 elements.
1196
1200
  static void poly_mul_novec_aux(uint16_t *out, uint16_t *scratch,
1197
1201
  const uint16_t *a, const uint16_t *b, size_t n) {
1198
1202
  static const size_t kSchoolbookLimit = 64;
@@ -1210,7 +1214,7 @@ static void poly_mul_novec_aux(uint16_t *out, uint16_t *scratch,
1210
1214
  // Karatsuba multiplication.
1211
1215
  // https://en.wikipedia.org/wiki/Karatsuba_algorithm
1212
1216
 
1213
- // When |n| is odd, the two "halves" will have different lengths. The
1217
+ // When `n` is odd, the two "halves" will have different lengths. The
1214
1218
  // first is always the smaller.
1215
1219
  const size_t low_len = n / 2;
1216
1220
  const size_t high_len = n - low_len;
@@ -1245,7 +1249,7 @@ static void poly_mul_novec_aux(uint16_t *out, uint16_t *scratch,
1245
1249
  }
1246
1250
  }
1247
1251
 
1248
- // poly_mul_novec sets |*out| to |x|×|y| mod (𝑥^n - 1).
1252
+ // poly_mul_novec sets `*out` to `x`×`y` mod (𝑥^n - 1).
1249
1253
  static void poly_mul_novec(struct POLY_MUL_SCRATCH *scratch, struct poly *out,
1250
1254
  const struct poly *x, const struct poly *y) {
1251
1255
  uint16_t *const prod = scratch->u.novec.prod;
@@ -1281,7 +1285,7 @@ static void poly_mul(struct POLY_MUL_SCRATCH *scratch, struct poly *r,
1281
1285
  poly_assert_normalized(r);
1282
1286
  }
1283
1287
 
1284
- // poly_mul_x_minus_1 sets |p| to |p|×(𝑥 - 1) mod (𝑥^n - 1).
1288
+ // poly_mul_x_minus_1 sets `p` to `p`×(𝑥 - 1) mod (𝑥^n - 1).
1285
1289
  static void poly_mul_x_minus_1(struct poly *p) {
1286
1290
  // Multiplying by (𝑥 - 1) means negating each coefficient and adding in
1287
1291
  // the value of the previous one.
@@ -1293,7 +1297,7 @@ static void poly_mul_x_minus_1(struct poly *p) {
1293
1297
  p->v[0] = orig_final_coefficient - p->v[0];
1294
1298
  }
1295
1299
 
1296
- // poly_mod_phiN sets |p| to |p| mod Φ(N).
1300
+ // poly_mod_phiN sets `p` to `p` mod Φ(N).
1297
1301
  static void poly_mod_phiN(struct poly *p) {
1298
1302
  const uint16_t coeff700 = p->v[N - 1];
1299
1303
 
@@ -1313,7 +1317,7 @@ static void poly_clamp(struct poly *p) {
1313
1317
  // Conversion functions
1314
1318
  // --------------------
1315
1319
 
1316
- // poly2_from_poly sets |*out| to |in| mod 2.
1320
+ // poly2_from_poly sets `*out` to `in` mod 2.
1317
1321
  static void poly2_from_poly(struct poly2 *out, const struct poly *in) {
1318
1322
  crypto_word_t *words = out->v;
1319
1323
  unsigned shift = 0;
@@ -1336,16 +1340,16 @@ static void poly2_from_poly(struct poly2 *out, const struct poly *in) {
1336
1340
  *words = word;
1337
1341
  }
1338
1342
 
1339
- // mod3 treats |a| as a signed number and returns |a| mod 3.
1343
+ // mod3 treats `a` as a signed number and returns `a` mod 3.
1340
1344
  static uint16_t mod3(int16_t a) {
1341
1345
  const int16_t q = ((int32_t)a * 21845) >> 16;
1342
1346
  int16_t ret = a - 3 * q;
1343
- // At this point, |ret| is in {0, 1, 2, 3} and that needs to be mapped to {0,
1347
+ // At this point, `ret` is in {0, 1, 2, 3} and that needs to be mapped to {0,
1344
1348
  // 1, 2, 0}.
1345
1349
  return ret & ((ret & (ret >> 1)) - 1);
1346
1350
  }
1347
1351
 
1348
- // poly3_from_poly sets |*out| to |in|.
1352
+ // poly3_from_poly sets `*out` to `in`.
1349
1353
  static void poly3_from_poly(struct poly3 *out, const struct poly *in) {
1350
1354
  crypto_word_t *words_s = out->s.v;
1351
1355
  crypto_word_t *words_a = out->a.v;
@@ -1381,7 +1385,7 @@ static void poly3_from_poly(struct poly3 *out, const struct poly *in) {
1381
1385
  *words_a = a;
1382
1386
  }
1383
1387
 
1384
- // poly3_from_poly_checked sets |*out| to |in|, which has coefficients in {0, 1,
1388
+ // poly3_from_poly_checked sets `*out` to `in`, which has coefficients in {0, 1,
1385
1389
  // Q-1}. It returns a mask indicating whether all coefficients were found to be
1386
1390
  // in that set.
1387
1391
  static crypto_word_t poly3_from_poly_checked(struct poly3 *out,
@@ -1476,7 +1480,7 @@ static void poly_from_poly3(struct poly *out, const struct poly3 *in) {
1476
1480
  // Polynomial inversion
1477
1481
  // --------------------
1478
1482
 
1479
- // poly_invert_mod2 sets |*out| to |in^-1| (i.e. such that |*out|×|in| = 1 mod
1483
+ // poly_invert_mod2 sets `*out` to `in^-1` (i.e. such that `*out`×`in` = 1 mod
1480
1484
  // Φ(N)), all mod 2. This isn't useful in itself, but is part of doing inversion
1481
1485
  // mod Q.
1482
1486
  static void poly_invert_mod2(struct poly *out, const struct poly *in) {
@@ -1491,7 +1495,7 @@ static void poly_invert_mod2(struct poly *out, const struct poly *in) {
1491
1495
  // f = all ones.
1492
1496
  OPENSSL_memset(&f, 0xff, sizeof(struct poly2));
1493
1497
  f.v[WORDS_PER_POLY - 1] >>= BITS_PER_WORD - BITS_IN_LAST_WORD;
1494
- // g is the reversal of |in|.
1498
+ // g is the reversal of `in`.
1495
1499
  poly2_from_poly(&g, in);
1496
1500
  poly2_mod_phiN(&g);
1497
1501
  poly2_reverse_700(&g, &g);
@@ -1527,7 +1531,7 @@ static void poly_invert_mod2(struct poly *out, const struct poly *in) {
1527
1531
  poly_assert_normalized(out);
1528
1532
  }
1529
1533
 
1530
- // poly_invert sets |*out| to |in^-1| (i.e. such that |*out|×|in| = 1 mod Φ(N)).
1534
+ // poly_invert sets `*out` to `in^-1` (i.e. such that `*out`×`in` = 1 mod Φ(N)).
1531
1535
  static void poly_invert(struct POLY_MUL_SCRATCH *scratch, struct poly *out,
1532
1536
  const struct poly *in) {
1533
1537
  // Inversion mod Q, which is done based on the result of inverting mod
@@ -1560,7 +1564,7 @@ static void poly_invert(struct POLY_MUL_SCRATCH *scratch, struct poly *out,
1560
1564
 
1561
1565
  #define POLY_BYTES 1138
1562
1566
 
1563
- // poly_marshal serialises all but the final coefficient of |in| to |out|.
1567
+ // poly_marshal serialises all but the final coefficient of `in` to `out`.
1564
1568
  static void poly_marshal(uint8_t out[POLY_BYTES], const struct poly *in) {
1565
1569
  const uint16_t *p = in->v;
1566
1570
 
@@ -1593,10 +1597,10 @@ static void poly_marshal(uint8_t out[POLY_BYTES], const struct poly *in) {
1593
1597
  out[6] = 0xf & (p[3] >> 9);
1594
1598
  }
1595
1599
 
1596
- // poly_unmarshal parses the output of |poly_marshal| and sets |out| such that
1600
+ // poly_unmarshal parses the output of `poly_marshal` and sets `out` such that
1597
1601
  // all but the final coefficients match, and the final coefficient is calculated
1598
- // such that evaluating |out| at one results in zero. It returns one on success
1599
- // or zero if |in| is an invalid encoding.
1602
+ // such that evaluating `out` at one results in zero. It returns one on success
1603
+ // or zero if `in` is an invalid encoding.
1600
1604
  static int poly_unmarshal(struct poly *out, const uint8_t in[POLY_BYTES]) {
1601
1605
  uint16_t *p = out->v;
1602
1606
 
@@ -1635,7 +1639,7 @@ static int poly_unmarshal(struct poly *out, const uint8_t in[POLY_BYTES]) {
1635
1639
  return 0;
1636
1640
  }
1637
1641
 
1638
- // Set the final coefficient as specifed in [HRSSNIST] 1.9.2 step 6.
1642
+ // Set the final coefficient as specified in [HRSSNIST] 1.9.2 step 6.
1639
1643
  uint32_t sum = 0;
1640
1644
  for (size_t i = 0; i < N - 1; i++) {
1641
1645
  sum += out->v[i];
@@ -1647,15 +1651,15 @@ static int poly_unmarshal(struct poly *out, const uint8_t in[POLY_BYTES]) {
1647
1651
  return 1;
1648
1652
  }
1649
1653
 
1650
- // mod3_from_modQ maps {0, 1, Q-1, 65535} -> {0, 1, 2, 2}. Note that |v| may
1654
+ // mod3_from_modQ maps {0, 1, Q-1, 65535} -> {0, 1, 2, 2}. Note that `v` may
1651
1655
  // have an invalid value when processing attacker-controlled inputs.
1652
1656
  static uint16_t mod3_from_modQ(uint16_t v) {
1653
1657
  v &= 3;
1654
1658
  return v ^ (v >> 1);
1655
1659
  }
1656
1660
 
1657
- // poly_marshal_mod3 marshals |in| to |out| where the coefficients of |in| are
1658
- // all in {0, 1, Q-1, 65535} and |in| is mod Φ(N). (Note that coefficients may
1661
+ // poly_marshal_mod3 marshals `in` to `out` where the coefficients of `in` are
1662
+ // all in {0, 1, Q-1, 65535} and `in` is mod Φ(N). (Note that coefficients may
1659
1663
  // have invalid values when processing attacker-controlled inputs.)
1660
1664
  static void poly_marshal_mod3(uint8_t out[HRSS_POLY3_BYTES],
1661
1665
  const struct poly *in) {
@@ -1703,7 +1707,7 @@ static void poly_short_sample_plus(struct poly *out,
1703
1707
  poly_short_sample(out, in);
1704
1708
 
1705
1709
  // sum (and the product in the for loop) will overflow. But that's fine
1706
- // because |sum| is bound by +/- (N-2), and N < 2^15 so it works out.
1710
+ // because `sum` is bound by +/- (N-2), and N < 2^15 so it works out.
1707
1711
  uint16_t sum = 0;
1708
1712
  for (unsigned i = 0; i < N - 2; i++) {
1709
1713
  sum += (unsigned)out->v[i] * out->v[i + 1];
@@ -1854,7 +1858,7 @@ struct private_key {
1854
1858
  // but we need 16-byte alignment. We could annotate the external struct with
1855
1859
  // that alignment but we can only assume that malloced pointers are 8-byte
1856
1860
  // aligned in any case. (Even if the underlying malloc returns values with
1857
- // 16-byte alignment, |OPENSSL_malloc| will store an 8-byte size prefix and mess
1861
+ // 16-byte alignment, `OPENSSL_malloc` will store an 8-byte size prefix and mess
1858
1862
  // that up.)
1859
1863
  static struct public_key *public_key_from_external(
1860
1864
  struct HRSS_public_key *ext) {
@@ -1865,7 +1869,7 @@ static struct public_key *public_key_from_external(
1865
1869
  return reinterpret_cast<public_key *>(align_pointer(ext->opaque, 16));
1866
1870
  }
1867
1871
 
1868
- // private_key_from_external does the same thing as |public_key_from_external|,
1872
+ // private_key_from_external does the same thing as `public_key_from_external`,
1869
1873
  // but for private keys. See the comment on that function about alignment
1870
1874
  // issues.
1871
1875
  static struct private_key *private_key_from_external(
@@ -1877,14 +1881,14 @@ static struct private_key *private_key_from_external(
1877
1881
  return reinterpret_cast<private_key *>(align_pointer(ext->opaque, 16));
1878
1882
  }
1879
1883
 
1880
- // malloc_align32 returns a pointer to |size| bytes of 32-byte-aligned heap and
1881
- // sets |*out_ptr| to a value that can be passed to |OPENSSL_free| to release
1884
+ // malloc_align32 returns a pointer to `size` bytes of 32-byte-aligned heap and
1885
+ // sets `*out_ptr` to a value that can be passed to `OPENSSL_free` to release
1882
1886
  // it. It returns NULL if out of memory.
1883
1887
  static void *malloc_align32(void **out_ptr, size_t size) {
1884
1888
  void *ptr = OPENSSL_malloc(size + 31);
1885
1889
  if (!ptr) {
1886
- *out_ptr = NULL;
1887
- return NULL;
1890
+ *out_ptr = nullptr;
1891
+ return nullptr;
1888
1892
  }
1889
1893
 
1890
1894
  *out_ptr = ptr;
@@ -1911,7 +1915,7 @@ int HRSS_generate_key(
1911
1915
  if (!vars) {
1912
1916
  // If the caller ignores the return value the output will still be safe.
1913
1917
  // The private key output is randomised in case it's later passed to
1914
- // |HRSS_encap|.
1918
+ // `HRSS_encap`.
1915
1919
  memset(out_pub, 0, sizeof(struct HRSS_public_key));
1916
1920
  RAND_bytes((uint8_t *)out_priv, sizeof(struct HRSS_private_key));
1917
1921
  return 0;
@@ -2056,7 +2060,7 @@ int HRSS_decap(uint8_t out_shared_key[HRSS_KEY_BYTES],
2056
2060
  OPENSSL_memset(vars, 0xff, sizeof(struct vars));
2057
2061
  #endif
2058
2062
 
2059
- // This is HMAC, expanded inline rather than using the |HMAC| function so that
2063
+ // This is HMAC, expanded inline rather than using the `HMAC` function so that
2060
2064
  // we can avoid dealing with possible allocation failures and so keep this
2061
2065
  // function infallible.
2062
2066
  static_assert(sizeof(priv->hmac_key) <= sizeof(vars->masked_key),
@@ -2115,26 +2119,26 @@ int HRSS_decap(uint8_t out_shared_key[HRSS_KEY_BYTES],
2115
2119
  ok = poly3_from_poly_checked(&vars->r3, &vars->r);
2116
2120
 
2117
2121
  // [NTRUCOMP] section 5.1 includes ReEnc2 and a proof that it's valid. Rather
2118
- // than do an expensive |poly_mul|, it rebuilds |c'| from |c - lift(m)|
2119
- // (called |b|) with:
2122
+ // than do an expensive `poly_mul`, it rebuilds `c'` from `c - lift(m)`
2123
+ // (called `b`) with:
2120
2124
  // t = (−b(1)/N) mod Q
2121
2125
  // c' = b + tΦ(N) + lift(m) mod Q
2122
2126
  //
2123
2127
  // When polynomials are transmitted, the final coefficient is omitted and
2124
- // |poly_unmarshal| sets it such that f(1) == 0. Thus c(1) == 0. Also,
2125
- // |poly_lift| multiplies the result by (x-1) and therefore evaluating a
2128
+ // `poly_unmarshal` sets it such that f(1) == 0. Thus c(1) == 0. Also,
2129
+ // `poly_lift` multiplies the result by (x-1) and therefore evaluating a
2126
2130
  // lifted polynomial at 1 is also zero. Thus lift(m)(1) == 0 and so
2127
2131
  // (c - lift(m))(1) == 0.
2128
2132
  //
2129
- // Although we defer the reduction above, |b| is conceptually reduced mod
2130
- // Φ(N). In order to do that reduction one subtracts |c[N-1]| from every
2131
- // coefficient. Therefore b(1) = -c[N-1]×N. The value of |t|, above, then is
2132
- // just recovering |c[N-1]|, and adding tΦ(N) is simply undoing the reduction.
2133
+ // Although we defer the reduction above, `b` is conceptually reduced mod
2134
+ // Φ(N). In order to do that reduction one subtracts `c[N-1]` from every
2135
+ // coefficient. Therefore b(1) = -c[N-1]×N. The value of `t`, above, then is
2136
+ // just recovering `c[N-1]`, and adding tΦ(N) is simply undoing the reduction.
2133
2137
  // Therefore b + tΦ(N) + lift(m) = c by construction and we don't need to
2134
- // recover |c| at all so long as we do the checks in
2135
- // |poly3_from_poly_checked|.
2138
+ // recover `c` at all so long as we do the checks in
2139
+ // `poly3_from_poly_checked`.
2136
2140
  //
2137
- // The |poly_marshal| here then is just confirming that |poly_unmarshal| is
2141
+ // The `poly_marshal` here then is just confirming that `poly_unmarshal` is
2138
2142
  // strict and could be omitted.
2139
2143
 
2140
2144
  static_assert(HRSS_CIPHERTEXT_BYTES == POLY_BYTES,