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
@@ -19,7 +19,6 @@
19
19
 
20
20
  #include <openssl/engine.h>
21
21
  #include <openssl/ex_data.h>
22
- #include <openssl/thread.h>
23
22
 
24
23
  #if defined(__cplusplus)
25
24
  extern "C" {
@@ -31,17 +30,17 @@ extern "C" {
31
30
 
32
31
  // Allocation and destruction.
33
32
  //
34
- // An |RSA| object represents a public or private RSA key. A given object may be
33
+ // An `RSA` object represents a public or private RSA key. A given object may be
35
34
  // used concurrently on multiple threads by non-mutating functions, provided no
36
35
  // other thread is concurrently calling a mutating function. Unless otherwise
37
- // documented, functions which take a |const| pointer are non-mutating and
38
- // functions which take a non-|const| pointer are mutating.
36
+ // documented, functions which take a `const` pointer are non-mutating and
37
+ // functions which take a non-`const` pointer are mutating.
39
38
 
40
- // RSA_new_public_key returns a new |RSA| object containing a public key with
39
+ // RSA_new_public_key returns a new `RSA` object containing a public key with
41
40
  // the specified parameters, or NULL on error or invalid input.
42
41
  OPENSSL_EXPORT RSA *RSA_new_public_key(const BIGNUM *n, const BIGNUM *e);
43
42
 
44
- // RSA_new_private_key returns a new |RSA| object containing a private key with
43
+ // RSA_new_private_key returns a new `RSA` object containing a private key with
45
44
  // the specified parameters, or NULL on error or invalid input. All parameters
46
45
  // are mandatory and may not be NULL.
47
46
  //
@@ -51,19 +50,19 @@ OPENSSL_EXPORT RSA *RSA_new_private_key(const BIGNUM *n, const BIGNUM *e,
51
50
  const BIGNUM *q, const BIGNUM *dmp1,
52
51
  const BIGNUM *dmq1, const BIGNUM *iqmp);
53
52
 
54
- // RSA_new returns a new, empty |RSA| object or NULL on error. Prefer using
55
- // |RSA_new_public_key| or |RSA_new_private_key| to import an RSA key.
53
+ // RSA_new returns a new, empty `RSA` object or NULL on error. Prefer using
54
+ // `RSA_new_public_key` or `RSA_new_private_key` to import an RSA key.
56
55
  OPENSSL_EXPORT RSA *RSA_new(void);
57
56
 
58
- // RSA_new_method acts the same as |RSA_new| but takes an explicit |ENGINE|.
57
+ // RSA_new_method acts the same as `RSA_new` but takes an explicit `ENGINE`.
59
58
  OPENSSL_EXPORT RSA *RSA_new_method(const ENGINE *engine);
60
59
 
61
- // RSA_free decrements the reference count of |rsa| and frees it if the
60
+ // RSA_free decrements the reference count of `rsa` and frees it if the
62
61
  // reference count drops to zero.
63
62
  OPENSSL_EXPORT void RSA_free(RSA *rsa);
64
63
 
65
- // RSA_up_ref increments the reference count of |rsa| and returns one. It does
66
- // not mutate |rsa| for thread-safety purposes and may be used concurrently.
64
+ // RSA_up_ref increments the reference count of `rsa` and returns one. It does
65
+ // not mutate `rsa` for thread-safety purposes and may be used concurrently.
67
66
  OPENSSL_EXPORT int RSA_up_ref(RSA *rsa);
68
67
 
69
68
 
@@ -71,56 +70,63 @@ OPENSSL_EXPORT int RSA_up_ref(RSA *rsa);
71
70
 
72
71
  // OPENSSL_RSA_MAX_MODULUS_BITS is the maximum supported RSA modulus, in bits.
73
72
  //
74
- // TODO(crbug.com/402677800): Reduce this to 8192.
73
+ // WARNING: RSA-16384 is extremely slow and may be a DoS risk. This value is set
74
+ // based on the largest RSA keys any caller of BoringSSL may need to use, and
75
+ // may be too high for a general-purpose application. Applications should impose
76
+ // their own limits before importing an RSA key. RSA-16384 is of particular DoS
77
+ // risk for RSA private key operations, which scale cubicly.
78
+ //
79
+ // In the future, BoringSSL may limit overly large RSA key sizes to application
80
+ // opt-in, or impose a tighter limit on private key operations.
75
81
  #define OPENSSL_RSA_MAX_MODULUS_BITS 16384
76
82
 
77
- // RSA_bits returns the size of |rsa|, in bits.
83
+ // RSA_bits returns the size of `rsa`, in bits.
78
84
  OPENSSL_EXPORT unsigned RSA_bits(const RSA *rsa);
79
85
 
80
- // RSA_get0_n returns |rsa|'s public modulus.
86
+ // RSA_get0_n returns `rsa`'s public modulus.
81
87
  OPENSSL_EXPORT const BIGNUM *RSA_get0_n(const RSA *rsa);
82
88
 
83
- // RSA_get0_e returns |rsa|'s public exponent.
89
+ // RSA_get0_e returns `rsa`'s public exponent.
84
90
  OPENSSL_EXPORT const BIGNUM *RSA_get0_e(const RSA *rsa);
85
91
 
86
- // RSA_get0_d returns |rsa|'s private exponent. If |rsa| is a public key, this
92
+ // RSA_get0_d returns `rsa`'s private exponent. If `rsa` is a public key, this
87
93
  // value will be NULL.
88
94
  OPENSSL_EXPORT const BIGNUM *RSA_get0_d(const RSA *rsa);
89
95
 
90
- // RSA_get0_p returns |rsa|'s first private prime factor. If |rsa| is a public
96
+ // RSA_get0_p returns `rsa`'s first private prime factor. If `rsa` is a public
91
97
  // key or lacks its prime factors, this value will be NULL.
92
98
  OPENSSL_EXPORT const BIGNUM *RSA_get0_p(const RSA *rsa);
93
99
 
94
- // RSA_get0_q returns |rsa|'s second private prime factor. If |rsa| is a public
100
+ // RSA_get0_q returns `rsa`'s second private prime factor. If `rsa` is a public
95
101
  // key or lacks its prime factors, this value will be NULL.
96
102
  OPENSSL_EXPORT const BIGNUM *RSA_get0_q(const RSA *rsa);
97
103
 
98
- // RSA_get0_dmp1 returns d (mod p-1) for |rsa|. If |rsa| is a public key or
104
+ // RSA_get0_dmp1 returns d (mod p-1) for `rsa`. If `rsa` is a public key or
99
105
  // lacks CRT parameters, this value will be NULL.
100
106
  OPENSSL_EXPORT const BIGNUM *RSA_get0_dmp1(const RSA *rsa);
101
107
 
102
- // RSA_get0_dmq1 returns d (mod q-1) for |rsa|. If |rsa| is a public key or
108
+ // RSA_get0_dmq1 returns d (mod q-1) for `rsa`. If `rsa` is a public key or
103
109
  // lacks CRT parameters, this value will be NULL.
104
110
  OPENSSL_EXPORT const BIGNUM *RSA_get0_dmq1(const RSA *rsa);
105
111
 
106
- // RSA_get0_iqmp returns q^-1 (mod p). If |rsa| is a public key or lacks CRT
112
+ // RSA_get0_iqmp returns q^-1 (mod p). If `rsa` is a public key or lacks CRT
107
113
  // parameters, this value will be NULL.
108
114
  OPENSSL_EXPORT const BIGNUM *RSA_get0_iqmp(const RSA *rsa);
109
115
 
110
- // RSA_get0_key sets |*out_n|, |*out_e|, and |*out_d|, if non-NULL, to |rsa|'s
111
- // modulus, public exponent, and private exponent, respectively. If |rsa| is a
116
+ // RSA_get0_key sets `*out_n`, `*out_e`, and `*out_d`, if non-NULL, to `rsa`'s
117
+ // modulus, public exponent, and private exponent, respectively. If `rsa` is a
112
118
  // public key, the private exponent will be set to NULL.
113
119
  OPENSSL_EXPORT void RSA_get0_key(const RSA *rsa, const BIGNUM **out_n,
114
120
  const BIGNUM **out_e, const BIGNUM **out_d);
115
121
 
116
- // RSA_get0_factors sets |*out_p| and |*out_q|, if non-NULL, to |rsa|'s prime
117
- // factors. If |rsa| is a public key, they will be set to NULL.
122
+ // RSA_get0_factors sets `*out_p` and `*out_q`, if non-NULL, to `rsa`'s prime
123
+ // factors. If `rsa` is a public key, they will be set to NULL.
118
124
  OPENSSL_EXPORT void RSA_get0_factors(const RSA *rsa, const BIGNUM **out_p,
119
125
  const BIGNUM **out_q);
120
126
 
121
- // RSA_get0_crt_params sets |*out_dmp1|, |*out_dmq1|, and |*out_iqmp|, if
122
- // non-NULL, to |rsa|'s CRT parameters. These are d (mod p-1), d (mod q-1) and
123
- // q^-1 (mod p), respectively. If |rsa| is a public key, each parameter will be
127
+ // RSA_get0_crt_params sets `*out_dmp1`, `*out_dmq1`, and `*out_iqmp`, if
128
+ // non-NULL, to `rsa`'s CRT parameters. These are d (mod p-1), d (mod q-1) and
129
+ // q^-1 (mod p), respectively. If `rsa` is a public key, each parameter will be
124
130
  // set to NULL.
125
131
  OPENSSL_EXPORT void RSA_get0_crt_params(const RSA *rsa, const BIGNUM **out_dmp1,
126
132
  const BIGNUM **out_dmq1,
@@ -129,10 +135,10 @@ OPENSSL_EXPORT void RSA_get0_crt_params(const RSA *rsa, const BIGNUM **out_dmp1,
129
135
 
130
136
  // Setting individual properties.
131
137
  //
132
- // These functions allow setting individual properties of an |RSA| object. This
133
- // is typically used with |RSA_new| to construct an RSA key field by field.
134
- // Prefer instead to use |RSA_new_public_key| and |RSA_new_private_key|. These
135
- // functions defer some initialization to the first use of an |RSA| object. This
138
+ // These functions allow setting individual properties of an `RSA` object. This
139
+ // is typically used with `RSA_new` to construct an RSA key field by field.
140
+ // Prefer instead to use `RSA_new_public_key` and `RSA_new_private_key`. These
141
+ // functions defer some initialization to the first use of an `RSA` object. This
136
142
  // means invalid inputs may be caught late.
137
143
  //
138
144
  // TODO(crbug.com/boringssl/316): This deferred initialization also causes
@@ -140,35 +146,35 @@ OPENSSL_EXPORT void RSA_get0_crt_params(const RSA *rsa, const BIGNUM **out_dmp1,
140
146
  // currently have the same issues, but they will initialize eagerly in the
141
147
  // future.
142
148
 
143
- // RSA_set0_key sets |rsa|'s modulus, public exponent, and private exponent to
144
- // |n|, |e|, and |d| respectively, if non-NULL. On success, it takes ownership
149
+ // RSA_set0_key sets `rsa`'s modulus, public exponent, and private exponent to
150
+ // `n`, `e`, and `d` respectively, if non-NULL. On success, it takes ownership
145
151
  // of each argument and returns one. Otherwise, it returns zero.
146
152
  //
147
- // |d| may be NULL, but |n| and |e| must either be non-NULL or already
148
- // configured on |rsa|.
153
+ // `d` may be NULL, but `n` and `e` must either be non-NULL or already
154
+ // configured on `rsa`.
149
155
  //
150
- // It is an error to call this function after |rsa| has been used for a
151
- // cryptographic operation. Construct a new |RSA| object instead.
156
+ // It is an error to call this function after `rsa` has been used for a
157
+ // cryptographic operation. Construct a new `RSA` object instead.
152
158
  OPENSSL_EXPORT int RSA_set0_key(RSA *rsa, BIGNUM *n, BIGNUM *e, BIGNUM *d);
153
159
 
154
- // RSA_set0_factors sets |rsa|'s prime factors to |p| and |q|, if non-NULL, and
160
+ // RSA_set0_factors sets `rsa`'s prime factors to `p` and `q`, if non-NULL, and
155
161
  // takes ownership of them. On success, it takes ownership of each argument and
156
162
  // returns one. Otherwise, it returns zero.
157
163
  //
158
- // Each argument must either be non-NULL or already configured on |rsa|.
164
+ // Each argument must either be non-NULL or already configured on `rsa`.
159
165
  //
160
- // It is an error to call this function after |rsa| has been used for a
161
- // cryptographic operation. Construct a new |RSA| object instead.
166
+ // It is an error to call this function after `rsa` has been used for a
167
+ // cryptographic operation. Construct a new `RSA` object instead.
162
168
  OPENSSL_EXPORT int RSA_set0_factors(RSA *rsa, BIGNUM *p, BIGNUM *q);
163
169
 
164
- // RSA_set0_crt_params sets |rsa|'s CRT parameters to |dmp1|, |dmq1|, and
165
- // |iqmp|, if non-NULL, and takes ownership of them. On success, it takes
170
+ // RSA_set0_crt_params sets `rsa`'s CRT parameters to `dmp1`, `dmq1`, and
171
+ // `iqmp`, if non-NULL, and takes ownership of them. On success, it takes
166
172
  // ownership of its parameters and returns one. Otherwise, it returns zero.
167
173
  //
168
- // Each argument must either be non-NULL or already configured on |rsa|.
174
+ // Each argument must either be non-NULL or already configured on `rsa`.
169
175
  //
170
- // It is an error to call this function after |rsa| has been used for a
171
- // cryptographic operation. Construct a new |RSA| object instead.
176
+ // It is an error to call this function after `rsa` has been used for a
177
+ // cryptographic operation. Construct a new `RSA` object instead.
172
178
  OPENSSL_EXPORT int RSA_set0_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1,
173
179
  BIGNUM *iqmp);
174
180
 
@@ -176,19 +182,19 @@ OPENSSL_EXPORT int RSA_set0_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1,
176
182
  // Key generation.
177
183
 
178
184
  // RSA_generate_key_ex generates a new RSA key where the modulus has size
179
- // |bits| and the public exponent is |e|. If unsure, |RSA_F4| is a good value
180
- // for |e|. If |cb| is not NULL then it is called during the key generation
181
- // process. In addition to the calls documented for |BN_generate_prime_ex|, it
185
+ // `bits` and the public exponent is `e`. If unsure, `RSA_F4` is a good value
186
+ // for `e`. If `cb` is not NULL then it is called during the key generation
187
+ // process. In addition to the calls documented for `BN_generate_prime_ex`, it
182
188
  // is called with event=2 when the n'th prime is rejected as unsuitable and
183
- // with event=3 when a suitable value for |p| is found.
189
+ // with event=3 when a suitable value for `p` is found.
184
190
  //
185
191
  // It returns one on success or zero on error.
186
192
  OPENSSL_EXPORT int RSA_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e,
187
193
  BN_GENCB *cb);
188
194
 
189
- // RSA_generate_key_fips behaves like |RSA_generate_key_ex| but performs
195
+ // RSA_generate_key_fips behaves like `RSA_generate_key_ex` but performs
190
196
  // additional checks for FIPS compliance. The public exponent is always 65537
191
- // and |bits| must be either 2048 or 3072.
197
+ // and `bits` must be either 2048 or 3072.
192
198
  OPENSSL_EXPORT int RSA_generate_key_fips(RSA *rsa, int bits, BN_GENCB *cb);
193
199
 
194
200
 
@@ -215,32 +221,40 @@ OPENSSL_EXPORT int RSA_generate_key_fips(RSA *rsa, int bits, BN_GENCB *cb);
215
221
  #define RSA_PKCS1_OAEP_PADDING 4
216
222
 
217
223
  // RSA_PKCS1_PSS_PADDING denotes the RSASSA-PSS signature scheme. This value may
218
- // not be passed into |RSA_sign_raw|, only |EVP_PKEY_CTX_set_rsa_padding|. See
219
- // also |RSA_sign_pss_mgf1| and |RSA_verify_pss_mgf1|.
224
+ // not be passed into `RSA_sign_raw`, only `EVP_PKEY_CTX_set_rsa_padding`. See
225
+ // also `RSA_sign_pss_mgf1` and `RSA_verify_pss_mgf1`.
220
226
  #define RSA_PKCS1_PSS_PADDING 6
221
227
 
222
- // RSA_encrypt encrypts |in_len| bytes from |in| to the public key from |rsa|
223
- // and writes, at most, |max_out| bytes of encrypted data to |out|. The
224
- // |max_out| argument must be, at least, |RSA_size| in order to ensure success.
228
+ // RSA_encrypt encrypts `in_len` bytes from `in` to the public key from `rsa`
229
+ // and writes, at most, `max_out` bytes of encrypted data to `out`. The
230
+ // `max_out` argument must be, at least, `RSA_size` in order to ensure success.
225
231
  //
226
232
  // It returns 1 on success or zero on error.
227
233
  //
228
- // The |padding| argument must be one of the |RSA_*_PADDING| values. If in
229
- // doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols.
234
+ // The `padding` argument must be one of the `RSA_*_PADDING` values. If in
235
+ // doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols. When `padding` is
236
+ // `RSA_PKCS1_OAEP_PADDING`, this function has no way to set the OAEP or MGF-1
237
+ // digest, so it is always SHA-1. For other OAEP parameters, wrap `rsa` in an
238
+ // `EVP_PKEY` and use `EVP_PKEY_encrypt` with `EVP_PKEY_CTX_set_rsa_padding` and
239
+ // related functions.
230
240
  OPENSSL_EXPORT int RSA_encrypt(RSA *rsa, size_t *out_len, uint8_t *out,
231
241
  size_t max_out, const uint8_t *in, size_t in_len,
232
242
  int padding);
233
243
 
234
- // RSA_decrypt decrypts |in_len| bytes from |in| with the private key from
235
- // |rsa| and writes, at most, |max_out| bytes of plaintext to |out|. The
236
- // |max_out| argument must be, at least, |RSA_size| in order to ensure success.
244
+ // RSA_decrypt decrypts `in_len` bytes from `in` with the private key from
245
+ // `rsa` and writes, at most, `max_out` bytes of plaintext to `out`. The
246
+ // `max_out` argument must be, at least, `RSA_size` in order to ensure success.
237
247
  //
238
248
  // It returns 1 on success or zero on error.
239
249
  //
240
- // The |padding| argument must be one of the |RSA_*_PADDING| values. If in
241
- // doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols.
250
+ // The `padding` argument must be one of the `RSA_*_PADDING` values. If in
251
+ // doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols. When `padding` is
252
+ // `RSA_PKCS1_OAEP_PADDING`, this function has no way to set the OAEP or MGF-1
253
+ // digest, so it is always SHA-1. For other OAEP parameters, wrap `rsa` in an
254
+ // `EVP_PKEY` and use `EVP_PKEY_decrypt` with `EVP_PKEY_CTX_set_rsa_padding` and
255
+ // related functions.
242
256
  //
243
- // WARNING: Passing |RSA_PKCS1_PADDING| into this function is deprecated and
257
+ // WARNING: Passing `RSA_PKCS1_PADDING` into this function is deprecated and
244
258
  // insecure. RSAES-PKCS1-v1_5 is vulnerable to a chosen-ciphertext attack.
245
259
  // Decrypting attacker-supplied ciphertext with RSAES-PKCS1-v1_5 may give the
246
260
  // attacker control over your private key. See "Chosen Ciphertext Attacks
@@ -249,32 +263,42 @@ OPENSSL_EXPORT int RSA_encrypt(RSA *rsa, size_t *out_len, uint8_t *out,
249
263
  //
250
264
  // In some limited cases, such as TLS RSA key exchange, it is possible to
251
265
  // mitigate this flaw with custom, protocol-specific padding logic. This
252
- // should be implemented with |RSA_NO_PADDING|, not |RSA_PKCS1_PADDING|.
266
+ // should be implemented with `RSA_NO_PADDING`, not `RSA_PKCS1_PADDING`.
253
267
  OPENSSL_EXPORT int RSA_decrypt(RSA *rsa, size_t *out_len, uint8_t *out,
254
268
  size_t max_out, const uint8_t *in, size_t in_len,
255
269
  int padding);
256
270
 
257
- // RSA_public_encrypt encrypts |flen| bytes from |from| to the public key in
258
- // |rsa| and writes the encrypted data to |to|. The |to| buffer must have at
259
- // least |RSA_size| bytes of space. It returns the number of bytes written, or
260
- // -1 on error. The |padding| argument must be one of the |RSA_*_PADDING|
261
- // values. If in doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols.
271
+ // RSA_public_encrypt encrypts `flen` bytes from `from` to the public key in
272
+ // `rsa` and writes the encrypted data to `to`. The `to` buffer must have at
273
+ // least `RSA_size` bytes of space. It returns the number of bytes written, or
274
+ // -1 on error. The `padding` argument must be one of the `RSA_*_PADDING`
275
+ // values. If in doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols.
276
+ //
277
+ // When `padding` is `RSA_PKCS1_OAEP_PADDING`, this function has no way to set
278
+ // the OAEP or MGF-1 digest, so it is always SHA-1. For other OAEP parameters,
279
+ // wrap `rsa` in an `EVP_PKEY` and use `EVP_PKEY_encrypt` with
280
+ // `EVP_PKEY_CTX_set_rsa_padding` and related functions.
262
281
  //
263
282
  // WARNING: this function is dangerous because it breaks the usual return value
264
- // convention. Use |RSA_encrypt| instead.
283
+ // convention. Use `RSA_encrypt` instead.
265
284
  OPENSSL_EXPORT int RSA_public_encrypt(size_t flen, const uint8_t *from,
266
285
  uint8_t *to, RSA *rsa, int padding);
267
286
 
268
- // RSA_private_decrypt decrypts |flen| bytes from |from| with the public key in
269
- // |rsa| and writes the plaintext to |to|. The |to| buffer must have at least
270
- // |RSA_size| bytes of space. It returns the number of bytes written, or -1 on
271
- // error. The |padding| argument must be one of the |RSA_*_PADDING| values. If
272
- // in doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols. Passing
273
- // |RSA_PKCS1_PADDING| into this function is deprecated and insecure. See
274
- // |RSA_decrypt|.
287
+ // RSA_private_decrypt decrypts `flen` bytes from `from` with the public key in
288
+ // `rsa` and writes the plaintext to `to`. The `to` buffer must have at least
289
+ // `RSA_size` bytes of space. It returns the number of bytes written, or -1 on
290
+ // error. The `padding` argument must be one of the `RSA_*_PADDING` values. If
291
+ // in doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols. Passing
292
+ // `RSA_PKCS1_PADDING` into this function is deprecated and insecure. See
293
+ // `RSA_decrypt`.
294
+ //
295
+ // When `padding` is `RSA_PKCS1_OAEP_PADDING`, this function has no way to set
296
+ // the OAEP or MGF-1 digest, so it is always SHA-1. For other OAEP parameters,
297
+ // wrap `rsa` in an `EVP_PKEY` and use `EVP_PKEY_decrypt` with
298
+ // `EVP_PKEY_CTX_set_rsa_padding` and related functions.
275
299
  //
276
300
  // WARNING: this function is dangerous because it breaks the usual return value
277
- // convention. Use |RSA_decrypt| instead.
301
+ // convention. Use `RSA_decrypt` instead.
278
302
  OPENSSL_EXPORT int RSA_private_decrypt(size_t flen, const uint8_t *from,
279
303
  uint8_t *to, RSA *rsa, int padding);
280
304
 
@@ -284,156 +308,166 @@ OPENSSL_EXPORT int RSA_private_decrypt(size_t flen, const uint8_t *from,
284
308
  // These functions are considered non-mutating for thread-safety purposes and
285
309
  // may be used concurrently.
286
310
 
287
- // RSA_sign signs |digest_len| bytes of digest from |digest| with |rsa| using
288
- // RSASSA-PKCS1-v1_5. It writes, at most, |RSA_size(rsa)| bytes to |out|. On
311
+ // RSA_sign signs `digest_len` bytes of digest from `digest` with `rsa` using
312
+ // RSASSA-PKCS1-v1_5. It writes, at most, `RSA_size(rsa)` bytes to `out`. On
289
313
  // successful return, the actual number of bytes written is written to
290
- // |*out_len|.
314
+ // `*out_len`.
291
315
  //
292
- // The |hash_nid| argument identifies the hash function used to calculate
293
- // |digest| and is embedded in the resulting signature. For example, it might be
294
- // |NID_sha256|.
316
+ // The `hash_nid` argument identifies the hash function used to calculate
317
+ // `digest` and is embedded in the resulting signature. For example, it might be
318
+ // `NID_sha256`.
295
319
  //
296
320
  // It returns 1 on success and zero on error.
297
321
  //
298
- // WARNING: |digest| must be the result of hashing the data to be signed with
299
- // |hash_nid|. Passing unhashed inputs will not result in a secure signature
322
+ // WARNING: `digest` must be the result of hashing the data to be signed with
323
+ // `hash_nid`. Passing unhashed inputs will not result in a secure signature
300
324
  // scheme.
301
325
  OPENSSL_EXPORT int RSA_sign(int hash_nid, const uint8_t *digest,
302
326
  size_t digest_len, uint8_t *out, unsigned *out_len,
303
327
  RSA *rsa);
304
328
 
305
- // RSA_sign_pss_mgf1 signs |digest_len| bytes from |digest| with the public key
306
- // from |rsa| using RSASSA-PSS with MGF1 as the mask generation function. It
307
- // writes, at most, |max_out| bytes of signature data to |out|. The |max_out|
308
- // argument must be, at least, |RSA_size| in order to ensure success. It returns
329
+ // RSA_PSS_SALTLEN_DIGEST indicates a PSS salt length that matches the digest
330
+ // length. This is recommended.
331
+ #define RSA_PSS_SALTLEN_DIGEST (-1)
332
+ // RSA_PSS_SALTLEN_AUTO indicates a maximum possible PSS salt length when
333
+ // signing, and automatically detecting the salt length when verifying. This is
334
+ // not recommended. Neither the signing nor verifying behaviors are compliant
335
+ // with FIPS 186-5.
336
+ #define RSA_PSS_SALTLEN_AUTO (-2)
337
+
338
+ // RSA_sign_pss_mgf1 signs `digest_len` bytes from `digest` with the public key
339
+ // from `rsa` using RSASSA-PSS with MGF1 as the mask generation function. It
340
+ // writes, at most, `max_out` bytes of signature data to `out`. The `max_out`
341
+ // argument must be, at least, `RSA_size` in order to ensure success. It returns
309
342
  // 1 on success or zero on error.
310
343
  //
311
- // The |md| and |mgf1_md| arguments identify the hash used to calculate |digest|
312
- // and the MGF1 hash, respectively. If |mgf1_md| is NULL, |md| is
344
+ // The `md` and `mgf1_md` arguments identify the hash used to calculate `digest`
345
+ // and the MGF1 hash, respectively. If `mgf1_md` is NULL, `md` is
313
346
  // used.
314
347
  //
315
- // |salt_len| specifies the expected salt length in bytes. If |salt_len| is -1,
316
- // then the salt length is the same as the hash length. If -2, then the salt
317
- // length is maximal given the size of |rsa|. If unsure, use -1.
348
+ // `salt_len` specifies the expected salt length in bytes. If `salt_len` is
349
+ // `RSA_PSS_SALTLEN_DIGEST`, then the salt length is the same as the hash
350
+ // length. If `RSA_PSS_SALTLEN_AUTO`, then the salt length is maximal given the
351
+ // size of `rsa`. If unsure, use `RSA_PSS_SALTLEN_DIGEST`.
318
352
  //
319
- // WARNING: |digest| must be the result of hashing the data to be signed with
320
- // |md|. Passing unhashed inputs will not result in a secure signature scheme.
353
+ // WARNING: `digest` must be the result of hashing the data to be signed with
354
+ // `md`. Passing unhashed inputs will not result in a secure signature scheme.
321
355
  OPENSSL_EXPORT int RSA_sign_pss_mgf1(RSA *rsa, size_t *out_len, uint8_t *out,
322
356
  size_t max_out, const uint8_t *digest,
323
357
  size_t digest_len, const EVP_MD *md,
324
358
  const EVP_MD *mgf1_md, int salt_len);
325
359
 
326
360
  // RSA_sign_raw performs the private key portion of computing a signature with
327
- // |rsa|. It writes, at most, |max_out| bytes of signature data to |out|. The
328
- // |max_out| argument must be, at least, |RSA_size| in order to ensure the
361
+ // `rsa`. It writes, at most, `max_out` bytes of signature data to `out`. The
362
+ // `max_out` argument must be, at least, `RSA_size` in order to ensure the
329
363
  // output fits. It returns 1 on success or zero on error.
330
364
  //
331
- // If |padding| is |RSA_PKCS1_PADDING|, this function wraps |in| with the
365
+ // If `padding` is `RSA_PKCS1_PADDING`, this function wraps `in` with the
332
366
  // padding portion of RSASSA-PKCS1-v1_5 and then performs the raw private key
333
367
  // operation. The caller is responsible for hashing the input and wrapping it in
334
368
  // a DigestInfo structure.
335
369
  //
336
- // If |padding| is |RSA_NO_PADDING|, this function only performs the raw private
337
- // key operation, interpreting |in| as a integer modulo n. The caller is
370
+ // If `padding` is `RSA_NO_PADDING`, this function only performs the raw private
371
+ // key operation, interpreting `in` as a integer modulo n. The caller is
338
372
  // responsible for hashing the input and encoding it for the signature scheme
339
373
  // being implemented.
340
374
  //
341
375
  // WARNING: This function is a building block for a signature scheme, not a
342
- // complete one. |in| must be the result of hashing and encoding the data as
376
+ // complete one. `in` must be the result of hashing and encoding the data as
343
377
  // needed for the scheme being implemented. Passing in arbitrary inputs will not
344
378
  // result in a secure signature scheme.
345
379
  OPENSSL_EXPORT int RSA_sign_raw(RSA *rsa, size_t *out_len, uint8_t *out,
346
380
  size_t max_out, const uint8_t *in,
347
381
  size_t in_len, int padding);
348
382
 
349
- // RSA_verify verifies that |sig_len| bytes from |sig| are a valid,
350
- // RSASSA-PKCS1-v1_5 signature of |digest_len| bytes at |digest| by |rsa|.
383
+ // RSA_verify verifies that `sig_len` bytes from `sig` are a valid,
384
+ // RSASSA-PKCS1-v1_5 signature of `digest_len` bytes at `digest` by `rsa`.
351
385
  //
352
- // The |hash_nid| argument identifies the hash function used to calculate
353
- // |digest| and is embedded in the resulting signature in order to prevent hash
354
- // confusion attacks. For example, it might be |NID_sha256|.
386
+ // The `hash_nid` argument identifies the hash function used to calculate
387
+ // `digest` and is embedded in the resulting signature in order to prevent hash
388
+ // confusion attacks. For example, it might be `NID_sha256`.
355
389
  //
356
390
  // It returns one if the signature is valid and zero otherwise.
357
391
  //
358
392
  // WARNING: this differs from the original, OpenSSL function which additionally
359
393
  // returned -1 on error.
360
394
  //
361
- // WARNING: |digest| must be the result of hashing the data to be verified with
362
- // |hash_nid|. Passing unhashed input will not result in a secure signature
395
+ // WARNING: `digest` must be the result of hashing the data to be verified with
396
+ // `hash_nid`. Passing unhashed input will not result in a secure signature
363
397
  // scheme.
364
398
  OPENSSL_EXPORT int RSA_verify(int hash_nid, const uint8_t *digest,
365
399
  size_t digest_len, const uint8_t *sig,
366
400
  size_t sig_len, RSA *rsa);
367
401
 
368
- // RSA_verify_pss_mgf1 verifies that |sig_len| bytes from |sig| are a valid,
369
- // RSASSA-PSS signature of |digest_len| bytes at |digest| by |rsa|. It returns
402
+ // RSA_verify_pss_mgf1 verifies that `sig_len` bytes from `sig` are a valid,
403
+ // RSASSA-PSS signature of `digest_len` bytes at `digest` by `rsa`. It returns
370
404
  // one if the signature is valid and zero otherwise. MGF1 is used as the mask
371
405
  // generation function.
372
406
  //
373
- // The |md| and |mgf1_md| arguments identify the hash used to calculate |digest|
374
- // and the MGF1 hash, respectively. If |mgf1_md| is NULL, |md| is
375
- // used. |salt_len| specifies the expected salt length in bytes.
407
+ // The `md` and `mgf1_md` arguments identify the hash used to calculate `digest`
408
+ // and the MGF1 hash, respectively. If `mgf1_md` is NULL, `md` is
409
+ // used. `salt_len` specifies the expected salt length in bytes.
376
410
  //
377
- // If |salt_len| is -1, then the salt length is the same as the hash length. If
378
- // -2, then the salt length is recovered and all values accepted. If unsure, use
379
- // -1.
411
+ // If `salt_len` is `RSA_PSS_SALTLEN_DIGEST`, then the salt length is the same
412
+ // as the hash length. If `RSA_PSS_SALTLEN_AUTO`, then the salt length is
413
+ // recovered and all values accepted. If unsure, use `RSA_PSS_SALTLEN_DIGEST`.
380
414
  //
381
- // WARNING: |digest| must be the result of hashing the data to be verified with
382
- // |md|. Passing unhashed input will not result in a secure signature scheme.
415
+ // WARNING: `digest` must be the result of hashing the data to be verified with
416
+ // `md`. Passing unhashed input will not result in a secure signature scheme.
383
417
  OPENSSL_EXPORT int RSA_verify_pss_mgf1(RSA *rsa, const uint8_t *digest,
384
418
  size_t digest_len, const EVP_MD *md,
385
419
  const EVP_MD *mgf1_md, int salt_len,
386
420
  const uint8_t *sig, size_t sig_len);
387
421
 
388
- // RSA_verify_raw performs the public key portion of verifying |in_len| bytes of
389
- // signature from |in| using the public key from |rsa|. On success, it returns
390
- // one and writes, at most, |max_out| bytes of output to |out|. The |max_out|
391
- // argument must be, at least, |RSA_size| in order to ensure the output fits. On
422
+ // RSA_verify_raw performs the public key portion of verifying `in_len` bytes of
423
+ // signature from `in` using the public key from `rsa`. On success, it returns
424
+ // one and writes, at most, `max_out` bytes of output to `out`. The `max_out`
425
+ // argument must be, at least, `RSA_size` in order to ensure the output fits. On
392
426
  // failure or invalid input, it returns zero.
393
427
  //
394
- // If |padding| is |RSA_PKCS1_PADDING|, this function checks the padding portion
428
+ // If `padding` is `RSA_PKCS1_PADDING`, this function checks the padding portion
395
429
  // of RSASSA-PKCS1-v1_5 and outputs the remainder of the encoded digest. The
396
430
  // caller is responsible for checking the output is a DigestInfo-wrapped digest
397
431
  // of the message.
398
432
  //
399
- // If |padding| is |RSA_NO_PADDING|, this function only performs the raw public
433
+ // If `padding` is `RSA_NO_PADDING`, this function only performs the raw public
400
434
  // key operation. The caller is responsible for checking the output is a valid
401
435
  // result for the signature scheme being implemented.
402
436
  //
403
437
  // WARNING: This function is a building block for a signature scheme, not a
404
- // complete one. Checking for arbitrary strings in |out| will not result in a
438
+ // complete one. Checking for arbitrary strings in `out` will not result in a
405
439
  // secure signature scheme.
406
440
  OPENSSL_EXPORT int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out,
407
441
  size_t max_out, const uint8_t *in,
408
442
  size_t in_len, int padding);
409
443
 
410
444
  // RSA_private_encrypt performs the private key portion of computing a signature
411
- // with |rsa|. It takes |flen| bytes from |from| as input and writes the result
412
- // to |to|. The |to| buffer must have at least |RSA_size| bytes of space. It
445
+ // with `rsa`. It takes `flen` bytes from `from` as input and writes the result
446
+ // to `to`. The `to` buffer must have at least `RSA_size` bytes of space. It
413
447
  // returns the number of bytes written, or -1 on error.
414
448
  //
415
- // For the interpretation of |padding| and the input, see |RSA_sign_raw|.
449
+ // For the interpretation of `padding` and the input, see `RSA_sign_raw`.
416
450
  //
417
451
  // WARNING: This function is a building block for a signature scheme, not a
418
- // complete one. See |RSA_sign_raw| for details.
452
+ // complete one. See `RSA_sign_raw` for details.
419
453
  //
420
454
  // WARNING: This function is dangerous because it breaks the usual return value
421
- // convention. Use |RSA_sign_raw| instead.
455
+ // convention. Use `RSA_sign_raw` instead.
422
456
  OPENSSL_EXPORT int RSA_private_encrypt(size_t flen, const uint8_t *from,
423
457
  uint8_t *to, RSA *rsa, int padding);
424
458
 
425
- // RSA_public_decrypt performs the public key portion of verifying |flen| bytes
426
- // of signature from |from| using the public key from |rsa|. It writes the
427
- // result to |to|, which must have at least |RSA_size| bytes of space. It
459
+ // RSA_public_decrypt performs the public key portion of verifying `flen` bytes
460
+ // of signature from `from` using the public key from `rsa`. It writes the
461
+ // result to `to`, which must have at least `RSA_size` bytes of space. It
428
462
  // returns the number of bytes written, or -1 on error.
429
463
  //
430
- // For the interpretation of |padding| and the result, see |RSA_verify_raw|.
464
+ // For the interpretation of `padding` and the result, see `RSA_verify_raw`.
431
465
  //
432
466
  // WARNING: This function is a building block for a signature scheme, not a
433
- // complete one. See |RSA_verify_raw| for details.
467
+ // complete one. See `RSA_verify_raw` for details.
434
468
  //
435
469
  // WARNING: This function is dangerous because it breaks the usual return value
436
- // convention. Use |RSA_verify_raw| instead.
470
+ // convention. Use `RSA_verify_raw` instead.
437
471
  OPENSSL_EXPORT int RSA_public_decrypt(size_t flen, const uint8_t *from,
438
472
  uint8_t *to, RSA *rsa, int padding);
439
473
 
@@ -441,36 +475,36 @@ OPENSSL_EXPORT int RSA_public_decrypt(size_t flen, const uint8_t *from,
441
475
  // Utility functions.
442
476
 
443
477
  // RSA_size returns the number of bytes in the modulus, which is also the size
444
- // of a signature or encrypted value using |rsa|.
478
+ // of a signature or encrypted value using `rsa`.
445
479
  OPENSSL_EXPORT unsigned RSA_size(const RSA *rsa);
446
480
 
447
- // RSA_is_opaque returns one if |rsa| is opaque and doesn't expose its key
481
+ // RSA_is_opaque returns one if `rsa` is opaque and doesn't expose its key
448
482
  // material. Otherwise it returns zero.
449
483
  OPENSSL_EXPORT int RSA_is_opaque(const RSA *rsa);
450
484
 
451
- // RSAPublicKey_dup allocates a fresh |RSA| and copies the public key from
452
- // |rsa| into it. It returns the fresh |RSA| object, or NULL on error.
485
+ // RSAPublicKey_dup allocates a fresh `RSA` and copies the public key from
486
+ // `rsa` into it. It returns the fresh `RSA` object, or NULL on error.
453
487
  OPENSSL_EXPORT RSA *RSAPublicKey_dup(const RSA *rsa);
454
488
 
455
- // RSAPrivateKey_dup allocates a fresh |RSA| and copies the private key from
456
- // |rsa| into it. It returns the fresh |RSA| object, or NULL on error.
489
+ // RSAPrivateKey_dup allocates a fresh `RSA` and copies the private key from
490
+ // `rsa` into it. It returns the fresh `RSA` object, or NULL on error.
457
491
  OPENSSL_EXPORT RSA *RSAPrivateKey_dup(const RSA *rsa);
458
492
 
459
- // RSA_check_key performs basic validity tests on |rsa|. It returns one if
493
+ // RSA_check_key performs basic validity tests on `rsa`. It returns one if
460
494
  // they pass and zero otherwise. Opaque keys and public keys always pass. If it
461
495
  // returns zero then a more detailed error is available on the error queue.
462
496
  OPENSSL_EXPORT int RSA_check_key(const RSA *rsa);
463
497
 
464
- // RSA_check_fips performs public key validity tests on |key|. It returns one if
498
+ // RSA_check_fips performs public key validity tests on `key`. It returns one if
465
499
  // they pass and zero otherwise. Opaque keys always fail. This function does not
466
- // mutate |rsa| for thread-safety purposes and may be used concurrently.
500
+ // mutate `rsa` for thread-safety purposes and may be used concurrently.
467
501
  OPENSSL_EXPORT int RSA_check_fips(RSA *key);
468
502
 
469
- // RSA_verify_PKCS1_PSS_mgf1 verifies that |EM| is a correct PSS padding of
470
- // |mHash|, where |mHash| is a digest produced by |Hash|. |EM| must point to
471
- // exactly |RSA_size(rsa)| bytes of data. The |mgf1Hash| argument specifies the
472
- // hash function for generating the mask. If NULL, |Hash| is used. The |sLen|
473
- // argument specifies the expected salt length in bytes. If |sLen| is -1 then
503
+ // RSA_verify_PKCS1_PSS_mgf1 verifies that `EM` is a correct PSS padding of
504
+ // `mHash`, where `mHash` is a digest produced by `Hash`. `EM` must point to
505
+ // exactly `RSA_size(rsa)` bytes of data. The `mgf1Hash` argument specifies the
506
+ // hash function for generating the mask. If NULL, `Hash` is used. The `sLen`
507
+ // argument specifies the expected salt length in bytes. If `sLen` is -1 then
474
508
  // the salt length is the same as the hash length. If -2, then the salt length
475
509
  // is recovered and all values accepted.
476
510
  //
@@ -479,34 +513,34 @@ OPENSSL_EXPORT int RSA_check_fips(RSA *key);
479
513
  // It returns one on success or zero on error.
480
514
  //
481
515
  // This function implements only the low-level padding logic. Use
482
- // |RSA_verify_pss_mgf1| instead.
516
+ // `RSA_verify_pss_mgf1` instead.
483
517
  OPENSSL_EXPORT int RSA_verify_PKCS1_PSS_mgf1(const RSA *rsa,
484
518
  const uint8_t *mHash,
485
519
  const EVP_MD *Hash,
486
520
  const EVP_MD *mgf1Hash,
487
521
  const uint8_t *EM, int sLen);
488
522
 
489
- // RSA_padding_add_PKCS1_PSS_mgf1 writes a PSS padding of |mHash| to |EM|,
490
- // where |mHash| is a digest produced by |Hash|. |RSA_size(rsa)| bytes of
491
- // output will be written to |EM|. The |mgf1Hash| argument specifies the hash
492
- // function for generating the mask. If NULL, |Hash| is used. The |sLen|
493
- // argument specifies the expected salt length in bytes. If |sLen| is -1 then
523
+ // RSA_padding_add_PKCS1_PSS_mgf1 writes a PSS padding of `mHash` to `EM`,
524
+ // where `mHash` is a digest produced by `Hash`. `RSA_size(rsa)` bytes of
525
+ // output will be written to `EM`. The `mgf1Hash` argument specifies the hash
526
+ // function for generating the mask. If NULL, `Hash` is used. The `sLen`
527
+ // argument specifies the expected salt length in bytes. If `sLen` is -1 then
494
528
  // the salt length is the same as the hash length. If -2, then the salt length
495
- // is maximal given the space in |EM|.
529
+ // is maximal given the space in `EM`.
496
530
  //
497
531
  // It returns one on success or zero on error.
498
532
  //
499
533
  // This function implements only the low-level padding logic. Use
500
- // |RSA_sign_pss_mgf1| instead.
534
+ // `RSA_sign_pss_mgf1` instead.
501
535
  OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS_mgf1(const RSA *rsa, uint8_t *EM,
502
536
  const uint8_t *mHash,
503
537
  const EVP_MD *Hash,
504
538
  const EVP_MD *mgf1Hash,
505
539
  int sLen);
506
540
 
507
- // RSA_padding_add_PKCS1_OAEP_mgf1 writes an OAEP padding of |from| to |to|
508
- // with the given parameters and hash functions. If |md| is NULL then SHA-1 is
509
- // used. If |mgf1md| is NULL then the value of |md| is used (which means SHA-1
541
+ // RSA_padding_add_PKCS1_OAEP_mgf1 writes an OAEP padding of `from` to `to`
542
+ // with the given parameters and hash functions. If `md` is NULL then SHA-1 is
543
+ // used. If `mgf1md` is NULL then the value of `md` is used (which means SHA-1
510
544
  // if that, in turn, is NULL).
511
545
  //
512
546
  // It returns one on success or zero on error.
@@ -515,10 +549,10 @@ OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP_mgf1(
515
549
  const uint8_t *param, size_t param_len, const EVP_MD *md,
516
550
  const EVP_MD *mgf1md);
517
551
 
518
- // RSA_add_pkcs1_prefix builds a version of |digest| prefixed with the
519
- // DigestInfo header for the given hash function and sets |out_msg| to point to
520
- // it. On successful return, if |*is_alloced| is one, the caller must release
521
- // |*out_msg| with |OPENSSL_free|.
552
+ // RSA_add_pkcs1_prefix builds a version of `digest` prefixed with the
553
+ // DigestInfo header for the given hash function and sets `out_msg` to point to
554
+ // it. On successful return, if `*is_alloced` is one, the caller must release
555
+ // `*out_msg` with `OPENSSL_free`.
522
556
  OPENSSL_EXPORT int RSA_add_pkcs1_prefix(uint8_t **out_msg, size_t *out_msg_len,
523
557
  int *is_alloced, int hash_nid,
524
558
  const uint8_t *digest,
@@ -528,45 +562,45 @@ OPENSSL_EXPORT int RSA_add_pkcs1_prefix(uint8_t **out_msg, size_t *out_msg_len,
528
562
  // ASN.1 functions.
529
563
 
530
564
  // RSA_parse_public_key parses a DER-encoded RSAPublicKey structure (RFC 8017)
531
- // from |cbs| and advances |cbs|. It returns a newly-allocated |RSA| or NULL on
565
+ // from `cbs` and advances `cbs`. It returns a newly-allocated `RSA` or NULL on
532
566
  // error.
533
567
  OPENSSL_EXPORT RSA *RSA_parse_public_key(CBS *cbs);
534
568
 
535
- // RSA_public_key_from_bytes parses |in| as a DER-encoded RSAPublicKey structure
536
- // (RFC 8017). It returns a newly-allocated |RSA| or NULL on error.
569
+ // RSA_public_key_from_bytes parses `in` as a DER-encoded RSAPublicKey structure
570
+ // (RFC 8017). It returns a newly-allocated `RSA` or NULL on error.
537
571
  OPENSSL_EXPORT RSA *RSA_public_key_from_bytes(const uint8_t *in, size_t in_len);
538
572
 
539
- // RSA_marshal_public_key marshals |rsa| as a DER-encoded RSAPublicKey structure
540
- // (RFC 8017) and appends the result to |cbb|. It returns one on success and
573
+ // RSA_marshal_public_key marshals `rsa` as a DER-encoded RSAPublicKey structure
574
+ // (RFC 8017) and appends the result to `cbb`. It returns one on success and
541
575
  // zero on failure.
542
576
  OPENSSL_EXPORT int RSA_marshal_public_key(CBB *cbb, const RSA *rsa);
543
577
 
544
- // RSA_public_key_to_bytes marshals |rsa| as a DER-encoded RSAPublicKey
545
- // structure (RFC 8017) and, on success, sets |*out_bytes| to a newly allocated
578
+ // RSA_public_key_to_bytes marshals `rsa` as a DER-encoded RSAPublicKey
579
+ // structure (RFC 8017) and, on success, sets `*out_bytes` to a newly allocated
546
580
  // buffer containing the result and returns one. Otherwise, it returns zero. The
547
- // result should be freed with |OPENSSL_free|.
581
+ // result should be freed with `OPENSSL_free`.
548
582
  OPENSSL_EXPORT int RSA_public_key_to_bytes(uint8_t **out_bytes, size_t *out_len,
549
583
  const RSA *rsa);
550
584
 
551
585
  // RSA_parse_private_key parses a DER-encoded RSAPrivateKey structure (RFC 8017)
552
- // from |cbs| and advances |cbs|. It returns a newly-allocated |RSA| or NULL on
586
+ // from `cbs` and advances `cbs`. It returns a newly-allocated `RSA` or NULL on
553
587
  // error.
554
588
  OPENSSL_EXPORT RSA *RSA_parse_private_key(CBS *cbs);
555
589
 
556
- // RSA_private_key_from_bytes parses |in| as a DER-encoded RSAPrivateKey
557
- // structure (RFC 8017). It returns a newly-allocated |RSA| or NULL on error.
590
+ // RSA_private_key_from_bytes parses `in` as a DER-encoded RSAPrivateKey
591
+ // structure (RFC 8017). It returns a newly-allocated `RSA` or NULL on error.
558
592
  OPENSSL_EXPORT RSA *RSA_private_key_from_bytes(const uint8_t *in,
559
593
  size_t in_len);
560
594
 
561
- // RSA_marshal_private_key marshals |rsa| as a DER-encoded RSAPrivateKey
562
- // structure (RFC 8017) and appends the result to |cbb|. It returns one on
595
+ // RSA_marshal_private_key marshals `rsa` as a DER-encoded RSAPrivateKey
596
+ // structure (RFC 8017) and appends the result to `cbb`. It returns one on
563
597
  // success and zero on failure.
564
598
  OPENSSL_EXPORT int RSA_marshal_private_key(CBB *cbb, const RSA *rsa);
565
599
 
566
- // RSA_private_key_to_bytes marshals |rsa| as a DER-encoded RSAPrivateKey
567
- // structure (RFC 8017) and, on success, sets |*out_bytes| to a newly allocated
600
+ // RSA_private_key_to_bytes marshals `rsa` as a DER-encoded RSAPrivateKey
601
+ // structure (RFC 8017) and, on success, sets `*out_bytes` to a newly allocated
568
602
  // buffer containing the result and returns one. Otherwise, it returns zero. The
569
- // result should be freed with |OPENSSL_free|.
603
+ // result should be freed with `OPENSSL_free`.
570
604
  OPENSSL_EXPORT int RSA_private_key_to_bytes(uint8_t **out_bytes,
571
605
  size_t *out_len, const RSA *rsa);
572
606
 
@@ -576,7 +610,7 @@ OPENSSL_EXPORT int RSA_private_key_to_bytes(uint8_t **out_bytes,
576
610
  // These functions allow creating RSA keys with obscure combinations of
577
611
  // parameters.
578
612
 
579
- // RSA_new_private_key_no_crt behaves like |RSA_new_private_key| but constructs
613
+ // RSA_new_private_key_no_crt behaves like `RSA_new_private_key` but constructs
580
614
  // an RSA key without CRT coefficients.
581
615
  //
582
616
  // Keys created by this function will be less performant and cannot be
@@ -584,7 +618,7 @@ OPENSSL_EXPORT int RSA_private_key_to_bytes(uint8_t **out_bytes,
584
618
  OPENSSL_EXPORT RSA *RSA_new_private_key_no_crt(const BIGNUM *n, const BIGNUM *e,
585
619
  const BIGNUM *d);
586
620
 
587
- // RSA_new_private_key_no_e behaves like |RSA_new_private_key| but constructs an
621
+ // RSA_new_private_key_no_e behaves like `RSA_new_private_key` but constructs an
588
622
  // RSA key without CRT parameters or public exponent.
589
623
  //
590
624
  // Keys created by this function will be less performant, cannot be serialized,
@@ -592,21 +626,21 @@ OPENSSL_EXPORT RSA *RSA_new_private_key_no_crt(const BIGNUM *n, const BIGNUM *e,
592
626
  // attacks.
593
627
  OPENSSL_EXPORT RSA *RSA_new_private_key_no_e(const BIGNUM *n, const BIGNUM *d);
594
628
 
595
- // RSA_new_public_key_large_e behaves like |RSA_new_public_key| but allows any
596
- // |e| up to |n|.
629
+ // RSA_new_public_key_large_e behaves like `RSA_new_public_key` but allows any
630
+ // `e` up to `n`.
597
631
  //
598
632
  // BoringSSL typically bounds public exponents as a denial-of-service
599
633
  // mitigation. Keys created by this function may perform worse than those
600
- // created by |RSA_new_public_key|.
634
+ // created by `RSA_new_public_key`.
601
635
  OPENSSL_EXPORT RSA *RSA_new_public_key_large_e(const BIGNUM *n,
602
636
  const BIGNUM *e);
603
637
 
604
- // RSA_new_private_key_large_e behaves like |RSA_new_private_key| but allows any
605
- // |e| up to |n|.
638
+ // RSA_new_private_key_large_e behaves like `RSA_new_private_key` but allows any
639
+ // `e` up to `n`.
606
640
  //
607
641
  // BoringSSL typically bounds public exponents as a denial-of-service
608
642
  // mitigation. Keys created by this function may perform worse than those
609
- // created by |RSA_new_private_key|.
643
+ // created by `RSA_new_private_key`.
610
644
  OPENSSL_EXPORT RSA *RSA_new_private_key_large_e(
611
645
  const BIGNUM *n, const BIGNUM *e, const BIGNUM *d, const BIGNUM *p,
612
646
  const BIGNUM *q, const BIGNUM *dmp1, const BIGNUM *dmq1,
@@ -615,7 +649,7 @@ OPENSSL_EXPORT RSA *RSA_new_private_key_large_e(
615
649
 
616
650
  // ex_data functions.
617
651
  //
618
- // See |ex_data.h| for details.
652
+ // See `ex_data.h` for details.
619
653
 
620
654
  OPENSSL_EXPORT int RSA_get_ex_new_index(long argl, void *argp,
621
655
  CRYPTO_EX_unused *unused,
@@ -632,9 +666,7 @@ OPENSSL_EXPORT void *RSA_get_ex_data(const RSA *rsa, int idx);
632
666
  // API, like a platform key store.
633
667
  #define RSA_FLAG_OPAQUE 1
634
668
 
635
- // RSA_FLAG_NO_BLINDING disables blinding of private operations, which is a
636
- // dangerous thing to do. This flag is set internally as part of self-tests but
637
- // is otherwise impossible to set externally.
669
+ // RSA_FLAG_NO_BLINDING does nothing.
638
670
  #define RSA_FLAG_NO_BLINDING 8
639
671
 
640
672
  // RSA_FLAG_EXT_PKEY is deprecated and ignored.
@@ -642,12 +674,12 @@ OPENSSL_EXPORT void *RSA_get_ex_data(const RSA *rsa, int idx);
642
674
 
643
675
  // RSA_FLAG_NO_PUBLIC_EXPONENT indicates that private keys without a public
644
676
  // exponent are allowed. This is an internal constant. Use
645
- // |RSA_new_private_key_no_e| to construct such keys.
677
+ // `RSA_new_private_key_no_e` to construct such keys.
646
678
  #define RSA_FLAG_NO_PUBLIC_EXPONENT 0x40
647
679
 
648
680
  // RSA_FLAG_LARGE_PUBLIC_EXPONENT indicates that keys with a large public
649
681
  // exponent are allowed. This is an internal constant. Use
650
- // |RSA_new_public_key_large_e| and |RSA_new_private_key_large_e| to construct
682
+ // `RSA_new_public_key_large_e` and `RSA_new_private_key_large_e` to construct
651
683
  // such keys.
652
684
  #define RSA_FLAG_LARGE_PUBLIC_EXPONENT 0x80
653
685
 
@@ -662,11 +694,11 @@ OPENSSL_EXPORT void *RSA_get_ex_data(const RSA *rsa, int idx);
662
694
 
663
695
  #define RSA_METHOD_FLAG_NO_CHECK RSA_FLAG_OPAQUE
664
696
 
665
- // RSA_flags returns the flags for |rsa|. These are a bitwise OR of |RSA_FLAG_*|
697
+ // RSA_flags returns the flags for `rsa`. These are a bitwise OR of `RSA_FLAG_*`
666
698
  // constants.
667
699
  OPENSSL_EXPORT int RSA_flags(const RSA *rsa);
668
700
 
669
- // RSA_test_flags returns the subset of flags in |flags| which are set in |rsa|.
701
+ // RSA_test_flags returns the subset of flags in `flags` which are set in `rsa`.
670
702
  OPENSSL_EXPORT int RSA_test_flags(const RSA *rsa, int flags);
671
703
 
672
704
  // RSA_blinding_on returns one.
@@ -675,57 +707,57 @@ OPENSSL_EXPORT int RSA_blinding_on(RSA *rsa, BN_CTX *ctx);
675
707
  // RSA_blinding_off does nothing.
676
708
  OPENSSL_EXPORT void RSA_blinding_off(RSA *rsa);
677
709
 
678
- // RSA_generate_key behaves like |RSA_generate_key_ex|, which is what you
679
- // should use instead. It returns NULL on error, or a newly-allocated |RSA| on
680
- // success. This function is provided for compatibility only. The |callback|
681
- // and |cb_arg| parameters must be NULL.
710
+ // RSA_generate_key behaves like `RSA_generate_key_ex`, which is what you
711
+ // should use instead. It returns NULL on error, or a newly-allocated `RSA` on
712
+ // success. This function is provided for compatibility only. The `callback`
713
+ // and `cb_arg` parameters must be NULL.
682
714
  OPENSSL_EXPORT RSA *RSA_generate_key(int bits, uint64_t e, void *callback,
683
715
  void *cb_arg);
684
716
 
685
717
  // d2i_RSAPublicKey parses a DER-encoded RSAPublicKey structure (RFC 8017) from
686
- // |len| bytes at |*inp|, as described in |d2i_SAMPLE|.
718
+ // `len` bytes at `*inp`, as described in `d2i_SAMPLE`.
687
719
  //
688
- // Use |RSA_parse_public_key| instead.
720
+ // Use `RSA_parse_public_key` instead.
689
721
  OPENSSL_EXPORT RSA *d2i_RSAPublicKey(RSA **out, const uint8_t **inp, long len);
690
722
 
691
- // i2d_RSAPublicKey marshals |in| to a DER-encoded RSAPublicKey structure (RFC
692
- // 8017), as described in |i2d_SAMPLE|.
723
+ // i2d_RSAPublicKey marshals `in` to a DER-encoded RSAPublicKey structure (RFC
724
+ // 8017), as described in `i2d_SAMPLE`.
693
725
  //
694
- // Use |RSA_marshal_public_key| instead.
726
+ // Use `RSA_marshal_public_key` instead.
695
727
  OPENSSL_EXPORT int i2d_RSAPublicKey(const RSA *in, uint8_t **outp);
696
728
 
697
729
  // d2i_RSAPrivateKey parses a DER-encoded RSAPrivateKey structure (RFC 8017)
698
- // from |len| bytes at |*inp|, as described in |d2i_SAMPLE|.
730
+ // from `len` bytes at `*inp`, as described in `d2i_SAMPLE`.
699
731
  //
700
- // Use |RSA_parse_private_key| instead.
732
+ // Use `RSA_parse_private_key` instead.
701
733
  OPENSSL_EXPORT RSA *d2i_RSAPrivateKey(RSA **out, const uint8_t **inp, long len);
702
734
 
703
- // i2d_RSAPrivateKey marshals |in| to a DER-encoded RSAPrivateKey structure (RFC
704
- // 8017), as described in |i2d_SAMPLE|.
735
+ // i2d_RSAPrivateKey marshals `in` to a DER-encoded RSAPrivateKey structure (RFC
736
+ // 8017), as described in `i2d_SAMPLE`.
705
737
  //
706
- // Use |RSA_marshal_private_key| instead.
738
+ // Use `RSA_marshal_private_key` instead.
707
739
  OPENSSL_EXPORT int i2d_RSAPrivateKey(const RSA *in, uint8_t **outp);
708
740
 
709
- // RSA_padding_add_PKCS1_PSS acts like |RSA_padding_add_PKCS1_PSS_mgf1| but the
710
- // |mgf1Hash| parameter of the latter is implicitly set to |Hash|.
741
+ // RSA_padding_add_PKCS1_PSS acts like `RSA_padding_add_PKCS1_PSS_mgf1` but the
742
+ // `mgf1Hash` parameter of the latter is implicitly set to `Hash`.
711
743
  //
712
744
  // This function implements only the low-level padding logic. Use
713
- // |RSA_sign_pss_mgf1| instead.
745
+ // `RSA_sign_pss_mgf1` instead.
714
746
  OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS(const RSA *rsa, uint8_t *EM,
715
747
  const uint8_t *mHash,
716
748
  const EVP_MD *Hash, int sLen);
717
749
 
718
- // RSA_verify_PKCS1_PSS acts like |RSA_verify_PKCS1_PSS_mgf1| but the
719
- // |mgf1Hash| parameter of the latter is implicitly set to |Hash|.
750
+ // RSA_verify_PKCS1_PSS acts like `RSA_verify_PKCS1_PSS_mgf1` but the
751
+ // `mgf1Hash` parameter of the latter is implicitly set to `Hash`.
720
752
  //
721
753
  // This function implements only the low-level padding logic. Use
722
- // |RSA_verify_pss_mgf1| instead.
754
+ // `RSA_verify_pss_mgf1` instead.
723
755
  OPENSSL_EXPORT int RSA_verify_PKCS1_PSS(const RSA *rsa, const uint8_t *mHash,
724
756
  const EVP_MD *Hash, const uint8_t *EM,
725
757
  int sLen);
726
758
 
727
- // RSA_padding_add_PKCS1_OAEP acts like |RSA_padding_add_PKCS1_OAEP_mgf1| but
728
- // the |md| and |mgf1md| parameters of the latter are implicitly set to NULL,
759
+ // RSA_padding_add_PKCS1_OAEP acts like `RSA_padding_add_PKCS1_OAEP_mgf1` but
760
+ // the `md` and `mgf1md` parameters of the latter are implicitly set to NULL,
729
761
  // which means SHA-1.
730
762
  OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP(uint8_t *to, size_t to_len,
731
763
  const uint8_t *from,
@@ -733,17 +765,22 @@ OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP(uint8_t *to, size_t to_len,
733
765
  const uint8_t *param,
734
766
  size_t param_len);
735
767
 
736
- // RSA_print prints a textual representation of |rsa| to |bio|. It returns one
768
+ // RSA_print prints a textual representation of `rsa` to `bio`. It returns one
737
769
  // on success or zero otherwise.
738
770
  OPENSSL_EXPORT int RSA_print(BIO *bio, const RSA *rsa, int indent);
739
771
 
740
772
  // RSA_get0_pss_params returns NULL. In OpenSSL, this function retries RSA-PSS
741
- // parameters associated with |RSA| objects, but BoringSSL does not support
742
- // the id-RSASSA-PSS key encoding.
773
+ // parameters associated with `RSA` objects, but BoringSSL does not enable the
774
+ // id-RSASSA-PSS key encoding by default.
775
+ //
776
+ // WARNING: BoringSSL does support id-RSASSA-PSS parameters when callers opt in
777
+ // (see `EVP_pkey_rsa_pss_sha256` and others). We currently assume such callers
778
+ // do not need this function. Callers that opt into id-RSASSA-PSS support and
779
+ // require this functionality should contact the BoringSSL team.
743
780
  OPENSSL_EXPORT const RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *rsa);
744
781
 
745
- // RSA_new_method_no_e returns a newly-allocated |RSA| object backed by
746
- // |engine|, with a public modulus of |n| and no known public exponent.
782
+ // RSA_new_method_no_e returns a newly-allocated `RSA` object backed by
783
+ // `engine`, with a public modulus of `n` and no known public exponent.
747
784
  //
748
785
  // Do not use this function. It exists only to support Conscrypt, whose use
749
786
  // should be replaced with a more sound mechanism. See
@@ -762,17 +799,17 @@ struct rsa_meth_st {
762
799
  int (*sign)(int type, const uint8_t *m, unsigned int m_length,
763
800
  uint8_t *sigret, unsigned int *siglen, const RSA *rsa);
764
801
 
765
- // These functions mirror the |RSA_*| functions of the same name.
802
+ // These functions mirror the `RSA_*` functions of the same name.
766
803
  int (*sign_raw)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out,
767
804
  const uint8_t *in, size_t in_len, int padding);
768
805
  int (*decrypt)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out,
769
806
  const uint8_t *in, size_t in_len, int padding);
770
807
 
771
- // private_transform takes a big-endian integer from |in|, calculates the
808
+ // private_transform takes a big-endian integer from `in`, calculates the
772
809
  // d'th power of it, modulo the RSA modulus and writes the result as a
773
- // big-endian integer to |out|. Both |in| and |out| are |len| bytes long and
774
- // |len| is always equal to |RSA_size(rsa)|. If the result of the transform
775
- // can be represented in fewer than |len| bytes, then |out| must be zero
810
+ // big-endian integer to `out`. Both `in` and `out` are `len` bytes long and
811
+ // `len` is always equal to `RSA_size(rsa)`. If the result of the transform
812
+ // can be represented in fewer than `len` bytes, then `out` must be zero
776
813
  // padded on the left.
777
814
  //
778
815
  // It returns one on success and zero otherwise.