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
@@ -21,21 +21,26 @@
21
21
  #include <openssl/bio.h>
22
22
  #include <openssl/buf.h>
23
23
  #include <openssl/bytestring.h>
24
+ #include <openssl/cipher.h>
24
25
  #include <openssl/digest.h>
25
26
  #include <openssl/err.h>
26
27
  #include <openssl/evp.h>
27
28
  #include <openssl/hmac.h>
28
29
  #include <openssl/mem.h>
30
+ #include <openssl/nid.h>
29
31
  #include <openssl/rand.h>
30
32
  #include <openssl/x509.h>
31
33
 
32
34
  #include "../bytestring/internal.h"
33
35
  #include "../internal.h"
36
+ #include "../mem_internal.h"
34
37
  #include "../x509/internal.h"
35
38
  #include "internal.h"
36
39
 
37
40
 
38
- int pkcs12_iterations_acceptable(uint64_t iterations) {
41
+ using namespace bssl;
42
+
43
+ int bssl::pkcs12_iterations_acceptable(uint64_t iterations) {
39
44
  #if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
40
45
  static const uint64_t kIterationsLimit = 2048;
41
46
  #else
@@ -55,26 +60,27 @@ ASN1_SEQUENCE(PKCS8_PRIV_KEY_INFO) = {
55
60
  ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, version, ASN1_INTEGER),
56
61
  ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, pkeyalg, X509_ALGOR),
57
62
  ASN1_SIMPLE(PKCS8_PRIV_KEY_INFO, pkey, ASN1_OCTET_STRING),
58
- ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, X509_ATTRIBUTE, 0),
63
+ ASN1_IMP_SET_OF_OPT(PKCS8_PRIV_KEY_INFO, attributes, bssl::X509_ATTRIBUTE,
64
+ 0),
59
65
  } ASN1_SEQUENCE_END(PKCS8_PRIV_KEY_INFO)
60
66
 
61
67
  IMPLEMENT_ASN1_FUNCTIONS_const(PKCS8_PRIV_KEY_INFO)
62
68
 
63
69
  EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8) {
64
- uint8_t *der = NULL;
70
+ uint8_t *der = nullptr;
65
71
  int der_len = i2d_PKCS8_PRIV_KEY_INFO(p8, &der);
66
72
  if (der_len < 0) {
67
- return NULL;
73
+ return nullptr;
68
74
  }
69
75
 
70
76
  CBS cbs;
71
77
  CBS_init(&cbs, der, (size_t)der_len);
72
78
  EVP_PKEY *ret = EVP_parse_private_key(&cbs);
73
- if (ret == NULL || CBS_len(&cbs) != 0) {
79
+ if (ret == nullptr || CBS_len(&cbs) != 0) {
74
80
  OPENSSL_PUT_ERROR(PKCS8, PKCS8_R_DECODE_ERROR);
75
81
  EVP_PKEY_free(ret);
76
82
  OPENSSL_free(der);
77
- return NULL;
83
+ return nullptr;
78
84
  }
79
85
 
80
86
  OPENSSL_free(der);
@@ -83,19 +89,19 @@ EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8) {
83
89
 
84
90
  PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(const EVP_PKEY *pkey) {
85
91
  CBB cbb;
86
- uint8_t *der = NULL;
92
+ uint8_t *der = nullptr;
87
93
  size_t der_len;
88
94
  if (!CBB_init(&cbb, 0) || !EVP_marshal_private_key(&cbb, pkey) ||
89
95
  !CBB_finish(&cbb, &der, &der_len) || der_len > LONG_MAX) {
90
96
  CBB_cleanup(&cbb);
91
97
  OPENSSL_PUT_ERROR(PKCS8, PKCS8_R_ENCODE_ERROR);
92
98
  OPENSSL_free(der);
93
- return NULL;
99
+ return nullptr;
94
100
  }
95
101
 
96
102
  const uint8_t *p = der;
97
- PKCS8_PRIV_KEY_INFO *p8 = d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, (long)der_len);
98
- if (p8 == NULL || p != der + der_len) {
103
+ PKCS8_PRIV_KEY_INFO *p8 = d2i_PKCS8_PRIV_KEY_INFO(nullptr, &p, (long)der_len);
104
+ if (p8 == nullptr || p != der + der_len) {
99
105
  PKCS8_PRIV_KEY_INFO_free(p8);
100
106
  OPENSSL_PUT_ERROR(PKCS8, PKCS8_R_DECODE_ERROR);
101
107
  goto err;
@@ -106,21 +112,21 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(const EVP_PKEY *pkey) {
106
112
 
107
113
  err:
108
114
  OPENSSL_free(der);
109
- return NULL;
115
+ return nullptr;
110
116
  }
111
117
 
112
118
  PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(X509_SIG *pkcs8, const char *pass,
113
119
  int pass_len_in) {
114
120
  size_t pass_len;
115
- if (pass_len_in == -1 && pass != NULL) {
121
+ if (pass_len_in == -1 && pass != nullptr) {
116
122
  pass_len = strlen(pass);
117
123
  } else {
118
124
  pass_len = (size_t)pass_len_in;
119
125
  }
120
126
 
121
- PKCS8_PRIV_KEY_INFO *ret = NULL;
122
- EVP_PKEY *pkey = NULL;
123
- uint8_t *in = NULL;
127
+ PKCS8_PRIV_KEY_INFO *ret = nullptr;
128
+ EVP_PKEY *pkey = nullptr;
129
+ uint8_t *in = nullptr;
124
130
 
125
131
  // Convert the legacy ASN.1 object to a byte string.
126
132
  int in_len = i2d_X509_SIG(pkcs8, &in);
@@ -131,7 +137,7 @@ PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(X509_SIG *pkcs8, const char *pass,
131
137
  CBS cbs;
132
138
  CBS_init(&cbs, in, in_len);
133
139
  pkey = PKCS8_parse_encrypted_private_key(&cbs, pass, pass_len);
134
- if (pkey == NULL || CBS_len(&cbs) != 0) {
140
+ if (pkey == nullptr || CBS_len(&cbs) != 0) {
135
141
  goto err;
136
142
  }
137
143
 
@@ -147,7 +153,7 @@ X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, const char *pass,
147
153
  int pass_len_in, const uint8_t *salt, size_t salt_len,
148
154
  int iterations, PKCS8_PRIV_KEY_INFO *p8inf) {
149
155
  size_t pass_len;
150
- if (pass_len_in == -1 && pass != NULL) {
156
+ if (pass_len_in == -1 && pass != nullptr) {
151
157
  pass_len = strlen(pass);
152
158
  } else {
153
159
  pass_len = (size_t)pass_len_in;
@@ -155,12 +161,12 @@ X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, const char *pass,
155
161
 
156
162
  // Parse out the private key.
157
163
  EVP_PKEY *pkey = EVP_PKCS82PKEY(p8inf);
158
- if (pkey == NULL) {
159
- return NULL;
164
+ if (pkey == nullptr) {
165
+ return nullptr;
160
166
  }
161
167
 
162
- X509_SIG *ret = NULL;
163
- uint8_t *der = NULL;
168
+ X509_SIG *ret = nullptr;
169
+ uint8_t *der = nullptr;
164
170
  const uint8_t *ptr;
165
171
  size_t der_len;
166
172
  CBB cbb;
@@ -175,11 +181,11 @@ X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, const char *pass,
175
181
 
176
182
  // Convert back to legacy ASN.1 objects.
177
183
  ptr = der;
178
- ret = d2i_X509_SIG(NULL, &ptr, der_len);
179
- if (ret == NULL || ptr != der + der_len) {
184
+ ret = d2i_X509_SIG(nullptr, &ptr, der_len);
185
+ if (ret == nullptr || ptr != der + der_len) {
180
186
  OPENSSL_PUT_ERROR(PKCS8, ERR_R_INTERNAL_ERROR);
181
187
  X509_SIG_free(ret);
182
- ret = NULL;
188
+ ret = nullptr;
183
189
  }
184
190
 
185
191
  err:
@@ -200,11 +206,11 @@ struct pkcs12_context {
200
206
  static int PKCS12_handle_sequence(
201
207
  CBS *sequence, struct pkcs12_context *ctx,
202
208
  int (*handle_element)(CBS *cbs, struct pkcs12_context *ctx)) {
203
- uint8_t *storage = NULL;
209
+ uint8_t *storage = nullptr;
204
210
  CBS in;
205
211
  int ret = 0;
206
212
 
207
- // Although a BER->DER conversion is done at the beginning of |PKCS12_parse|,
213
+ // Although a BER->DER conversion is done at the beginning of `PKCS12_parse`,
208
214
  // the ASN.1 data gets wrapped in OCTETSTRINGs and/or encrypted and the
209
215
  // conversion cannot see through those wrappings. So each time we step
210
216
  // through one we need to convert to DER again.
@@ -263,12 +269,12 @@ static const uint8_t kX509Certificate[] = {0x2a, 0x86, 0x48, 0x86, 0xf7,
263
269
  0x0d, 0x01, 0x09, 0x16, 0x01};
264
270
 
265
271
  // parse_bag_attributes parses the bagAttributes field of a SafeBag structure.
266
- // It sets |*out_friendly_name| to a newly-allocated copy of the friendly name,
272
+ // It sets `*out_friendly_name` to a newly-allocated copy of the friendly name,
267
273
  // encoded as a UTF-8 string, or NULL if there is none. It returns one on
268
274
  // success and zero on error.
269
275
  static int parse_bag_attributes(CBS *attrs, uint8_t **out_friendly_name,
270
276
  size_t *out_friendly_name_len) {
271
- *out_friendly_name = NULL;
277
+ *out_friendly_name = nullptr;
272
278
  *out_friendly_name_len = 0;
273
279
 
274
280
  // See https://tools.ietf.org/html/rfc7292#section-4.2.
@@ -283,7 +289,7 @@ static int parse_bag_attributes(CBS *attrs, uint8_t **out_friendly_name,
283
289
  if (CBS_mem_equal(&oid, kFriendlyName, sizeof(kFriendlyName))) {
284
290
  // See https://tools.ietf.org/html/rfc2985, section 5.5.1.
285
291
  CBS value;
286
- if (*out_friendly_name != NULL ||
292
+ if (*out_friendly_name != nullptr ||
287
293
  !CBS_get_asn1(&values, &value, CBS_ASN1_BMPSTRING) ||
288
294
  CBS_len(&values) != 0 || CBS_len(&value) == 0) {
289
295
  OPENSSL_PUT_ERROR(PKCS8, PKCS8_R_BAD_PKCS12_DATA);
@@ -313,7 +319,7 @@ static int parse_bag_attributes(CBS *attrs, uint8_t **out_friendly_name,
313
319
 
314
320
  err:
315
321
  OPENSSL_free(*out_friendly_name);
316
- *out_friendly_name = NULL;
322
+ *out_friendly_name = nullptr;
317
323
  *out_friendly_name_len = 0;
318
324
  return 0;
319
325
  }
@@ -329,7 +335,7 @@ static int PKCS12_handle_safe_bag(CBS *safe_bag, struct pkcs12_context *ctx) {
329
335
  return 0;
330
336
  }
331
337
  if (CBS_len(safe_bag) == 0) {
332
- CBS_init(&bag_attrs, NULL, 0);
338
+ CBS_init(&bag_attrs, nullptr, 0);
333
339
  } else if (!CBS_get_asn1(safe_bag, &bag_attrs, CBS_ASN1_SET) ||
334
340
  CBS_len(safe_bag) != 0) {
335
341
  OPENSSL_PUT_ERROR(PKCS8, PKCS8_R_BAD_PKCS12_DATA);
@@ -350,7 +356,7 @@ static int PKCS12_handle_safe_bag(CBS *safe_bag, struct pkcs12_context *ctx) {
350
356
  is_key_bag ? EVP_parse_private_key(&wrapped_value)
351
357
  : PKCS8_parse_encrypted_private_key(
352
358
  &wrapped_value, ctx->password, ctx->password_len);
353
- if (pkey == NULL) {
359
+ if (pkey == nullptr) {
354
360
  return 0;
355
361
  }
356
362
 
@@ -388,7 +394,7 @@ static int PKCS12_handle_safe_bag(CBS *safe_bag, struct pkcs12_context *ctx) {
388
394
  }
389
395
 
390
396
  const uint8_t *inp = CBS_data(&cert);
391
- X509 *x509 = d2i_X509(NULL, &inp, (long)CBS_len(&cert));
397
+ X509 *x509 = d2i_X509(nullptr, &inp, (long)CBS_len(&cert));
392
398
  if (!x509) {
393
399
  OPENSSL_PUT_ERROR(PKCS8, PKCS8_R_BAD_PKCS12_DATA);
394
400
  return 0;
@@ -435,7 +441,7 @@ static int PKCS12_handle_content_info(CBS *content_info,
435
441
  struct pkcs12_context *ctx) {
436
442
  CBS content_type, wrapped_contents, contents;
437
443
  int ret = 0;
438
- uint8_t *storage = NULL;
444
+ uint8_t *storage = nullptr;
439
445
 
440
446
  if (!CBS_get_asn1(content_info, &content_type, CBS_ASN1_OBJECT) ||
441
447
  !CBS_get_asn1(content_info, &wrapped_contents,
@@ -522,8 +528,8 @@ static int pkcs12_check_mac(int *out_mac_ok, const char *password,
522
528
 
523
529
  uint8_t hmac[EVP_MAX_MD_SIZE];
524
530
  unsigned hmac_len;
525
- if (NULL == HMAC(md, hmac_key, EVP_MD_size(md), CBS_data(authsafes),
526
- CBS_len(authsafes), hmac, &hmac_len)) {
531
+ if (nullptr == HMAC(md, hmac_key, EVP_MD_size(md), CBS_data(authsafes),
532
+ CBS_len(authsafes), hmac, &hmac_len)) {
527
533
  goto err;
528
534
  }
529
535
 
@@ -541,7 +547,7 @@ err:
541
547
 
542
548
  int PKCS12_get_key_and_certs(EVP_PKEY **out_key, STACK_OF(X509) *out_certs,
543
549
  CBS *ber_in, const char *password) {
544
- uint8_t *storage = NULL;
550
+ uint8_t *storage = nullptr;
545
551
  CBS in, pfx, mac_data, authsafe, content_type, wrapped_authsafes, authsafes;
546
552
  uint64_t version;
547
553
  int ret = 0;
@@ -554,7 +560,7 @@ int PKCS12_get_key_and_certs(EVP_PKEY **out_key, STACK_OF(X509) *out_certs,
554
560
  return 0;
555
561
  }
556
562
 
557
- *out_key = NULL;
563
+ *out_key = nullptr;
558
564
  OPENSSL_memset(&ctx, 0, sizeof(ctx));
559
565
 
560
566
  // See ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12v1.pdf, section
@@ -609,7 +615,7 @@ int PKCS12_get_key_and_certs(EVP_PKEY **out_key, STACK_OF(X509) *out_certs,
609
615
  ctx.out_key = out_key;
610
616
  ctx.out_certs = out_certs;
611
617
  ctx.password = password;
612
- ctx.password_len = password != NULL ? strlen(password) : 0;
618
+ ctx.password_len = password != nullptr ? strlen(password) : 0;
613
619
 
614
620
  // Verify the MAC.
615
621
  {
@@ -620,7 +626,7 @@ int PKCS12_get_key_and_certs(EVP_PKEY **out_key, STACK_OF(X509) *out_certs,
620
626
  }
621
627
 
622
628
  const EVP_MD *md = EVP_parse_digest_algorithm(&mac);
623
- if (md == NULL) {
629
+ if (md == nullptr) {
624
630
  goto err;
625
631
  }
626
632
 
@@ -653,7 +659,7 @@ int PKCS12_get_key_and_certs(EVP_PKEY **out_key, STACK_OF(X509) *out_certs,
653
659
  // array for "no password". OpenSSL considers a non-NULL password as {0,
654
660
  // 0} and a NULL password as {}. It then, in high-level PKCS#12 parsing
655
661
  // code, tries both options. We match this behavior.
656
- ctx.password = ctx.password != NULL ? NULL : "";
662
+ ctx.password = ctx.password != nullptr ? nullptr : "";
657
663
  if (!pkcs12_check_mac(&mac_ok, ctx.password, ctx.password_len, &salt,
658
664
  iterations, md, &authsafes, &expected_mac)) {
659
665
  goto err;
@@ -676,7 +682,7 @@ err:
676
682
  OPENSSL_free(storage);
677
683
  if (!ret) {
678
684
  EVP_PKEY_free(*out_key);
679
- *out_key = NULL;
685
+ *out_key = nullptr;
680
686
  while (sk_X509_num(out_certs) > original_out_certs_len) {
681
687
  X509 *x509 = sk_X509_pop(out_certs);
682
688
  X509_free(x509);
@@ -686,7 +692,7 @@ err:
686
692
  return ret;
687
693
  }
688
694
 
689
- void PKCS12_PBE_add(void) {}
695
+ void PKCS12_PBE_add() {}
690
696
 
691
697
  struct pkcs12_st {
692
698
  uint8_t *ber_bytes;
@@ -695,16 +701,16 @@ struct pkcs12_st {
695
701
 
696
702
  PKCS12 *d2i_PKCS12(PKCS12 **out_p12, const uint8_t **ber_bytes,
697
703
  size_t ber_len) {
698
- PKCS12 *p12 = reinterpret_cast<PKCS12 *>(OPENSSL_malloc(sizeof(PKCS12)));
704
+ PKCS12 *p12 = New<PKCS12>();
699
705
  if (!p12) {
700
- return NULL;
706
+ return nullptr;
701
707
  }
702
708
 
703
709
  p12->ber_bytes =
704
710
  reinterpret_cast<uint8_t *>(OPENSSL_memdup(*ber_bytes, ber_len));
705
711
  if (!p12->ber_bytes) {
706
- OPENSSL_free(p12);
707
- return NULL;
712
+ Delete(p12);
713
+ return nullptr;
708
714
  }
709
715
 
710
716
  p12->ber_len = ber_len;
@@ -723,11 +729,11 @@ PKCS12 *d2i_PKCS12_bio(BIO *bio, PKCS12 **out_p12) {
723
729
  BUF_MEM *buf;
724
730
  const uint8_t *dummy;
725
731
  static const size_t kMaxSize = 256 * 1024;
726
- PKCS12 *ret = NULL;
732
+ PKCS12 *ret = nullptr;
727
733
 
728
734
  buf = BUF_MEM_new();
729
- if (buf == NULL) {
730
- return NULL;
735
+ if (buf == nullptr) {
736
+ return nullptr;
731
737
  }
732
738
  if (BUF_MEM_grow(buf, 8192) == 0) {
733
739
  goto out;
@@ -774,7 +780,7 @@ PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **out_p12) {
774
780
 
775
781
  bio = BIO_new_fp(fp, 0 /* don't take ownership */);
776
782
  if (!bio) {
777
- return NULL;
783
+ return nullptr;
778
784
  }
779
785
 
780
786
  ret = d2i_PKCS12_bio(bio, out_p12);
@@ -788,14 +794,14 @@ int i2d_PKCS12(const PKCS12 *p12, uint8_t **out) {
788
794
  return -1;
789
795
  }
790
796
 
791
- if (out == NULL) {
797
+ if (out == nullptr) {
792
798
  return (int)p12->ber_len;
793
799
  }
794
800
 
795
- if (*out == NULL) {
801
+ if (*out == nullptr) {
796
802
  *out = reinterpret_cast<uint8_t *>(
797
803
  OPENSSL_memdup(p12->ber_bytes, p12->ber_len));
798
- if (*out == NULL) {
804
+ if (*out == nullptr) {
799
805
  return -1;
800
806
  }
801
807
  } else {
@@ -811,7 +817,7 @@ int i2d_PKCS12_bio(BIO *bio, const PKCS12 *p12) {
811
817
 
812
818
  int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12) {
813
819
  BIO *bio = BIO_new_fp(fp, 0 /* don't take ownership */);
814
- if (bio == NULL) {
820
+ if (bio == nullptr) {
815
821
  return 0;
816
822
  }
817
823
 
@@ -823,16 +829,16 @@ int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12) {
823
829
  int PKCS12_parse(const PKCS12 *p12, const char *password, EVP_PKEY **out_pkey,
824
830
  X509 **out_cert, STACK_OF(X509) **out_ca_certs) {
825
831
  CBS ber_bytes;
826
- STACK_OF(X509) *ca_certs = NULL;
832
+ STACK_OF(X509) *ca_certs = nullptr;
827
833
  char ca_certs_alloced = 0;
828
834
 
829
- if (out_ca_certs != NULL && *out_ca_certs != NULL) {
835
+ if (out_ca_certs != nullptr && *out_ca_certs != nullptr) {
830
836
  ca_certs = *out_ca_certs;
831
837
  }
832
838
 
833
839
  if (!ca_certs) {
834
840
  ca_certs = sk_X509_new_null();
835
- if (ca_certs == NULL) {
841
+ if (ca_certs == nullptr) {
836
842
  return 0;
837
843
  }
838
844
  ca_certs_alloced = 1;
@@ -847,10 +853,10 @@ int PKCS12_parse(const PKCS12 *p12, const char *password, EVP_PKEY **out_pkey,
847
853
  }
848
854
 
849
855
  // OpenSSL selects the last certificate which matches the private key as
850
- // |out_cert|.
851
- *out_cert = NULL;
856
+ // `out_cert`.
857
+ *out_cert = nullptr;
852
858
  size_t num_certs = sk_X509_num(ca_certs);
853
- if (*out_pkey != NULL && num_certs > 0) {
859
+ if (*out_pkey != nullptr && num_certs > 0) {
854
860
  for (size_t i = num_certs - 1; i < num_certs; i--) {
855
861
  X509 *cert = sk_X509_value(ca_certs, i);
856
862
  if (X509_check_private_key(cert, *out_pkey)) {
@@ -873,19 +879,19 @@ int PKCS12_parse(const PKCS12 *p12, const char *password, EVP_PKEY **out_pkey,
873
879
 
874
880
  int PKCS12_verify_mac(const PKCS12 *p12, const char *password,
875
881
  int password_len) {
876
- if (password == NULL) {
882
+ if (password == nullptr) {
877
883
  if (password_len != 0) {
878
884
  return 0;
879
885
  }
880
886
  } else if (password_len != -1 &&
881
887
  (password[password_len] != 0 ||
882
- OPENSSL_memchr(password, 0, password_len) != NULL)) {
888
+ OPENSSL_memchr(password, 0, password_len) != nullptr)) {
883
889
  return 0;
884
890
  }
885
891
 
886
- EVP_PKEY *pkey = NULL;
887
- X509 *cert = NULL;
888
- if (!PKCS12_parse(p12, password, &pkey, &cert, NULL)) {
892
+ EVP_PKEY *pkey = nullptr;
893
+ X509 *cert = nullptr;
894
+ if (!PKCS12_parse(p12, password, &pkey, &cert, nullptr)) {
889
895
  ERR_clear_error();
890
896
  return 0;
891
897
  }
@@ -900,19 +906,19 @@ int PKCS12_verify_mac(const PKCS12 *p12, const char *password,
900
906
  // containing the specified friendlyName and localKeyId attributes.
901
907
  static int add_bag_attributes(CBB *bag, const char *name, size_t name_len,
902
908
  const uint8_t *key_id, size_t key_id_len) {
903
- if (name == NULL && key_id_len == 0) {
909
+ if (name == nullptr && key_id_len == 0) {
904
910
  return 1; // Omit the OPTIONAL SET.
905
911
  }
906
912
  // See https://tools.ietf.org/html/rfc7292#section-4.2.
907
- CBB attrs, attr, oid, values, value;
913
+ CBB attrs, attr, values, value;
908
914
  if (!CBB_add_asn1(bag, &attrs, CBS_ASN1_SET)) {
909
915
  return 0;
910
916
  }
911
917
  if (name_len != 0) {
912
918
  // See https://tools.ietf.org/html/rfc2985, section 5.5.1.
913
919
  if (!CBB_add_asn1(&attrs, &attr, CBS_ASN1_SEQUENCE) ||
914
- !CBB_add_asn1(&attr, &oid, CBS_ASN1_OBJECT) ||
915
- !CBB_add_bytes(&oid, kFriendlyName, sizeof(kFriendlyName)) ||
920
+ !CBB_add_asn1_element(&attr, CBS_ASN1_OBJECT, kFriendlyName,
921
+ sizeof(kFriendlyName)) ||
916
922
  !CBB_add_asn1(&attr, &values, CBS_ASN1_SET) ||
917
923
  !CBB_add_asn1(&values, &value, CBS_ASN1_BMPSTRING)) {
918
924
  return 0;
@@ -931,11 +937,10 @@ static int add_bag_attributes(CBB *bag, const char *name, size_t name_len,
931
937
  if (key_id_len != 0) {
932
938
  // See https://tools.ietf.org/html/rfc2985, section 5.5.2.
933
939
  if (!CBB_add_asn1(&attrs, &attr, CBS_ASN1_SEQUENCE) ||
934
- !CBB_add_asn1(&attr, &oid, CBS_ASN1_OBJECT) ||
935
- !CBB_add_bytes(&oid, kLocalKeyID, sizeof(kLocalKeyID)) ||
940
+ !CBB_add_asn1_element(&attr, CBS_ASN1_OBJECT, kLocalKeyID,
941
+ sizeof(kLocalKeyID)) ||
936
942
  !CBB_add_asn1(&attr, &values, CBS_ASN1_SET) ||
937
- !CBB_add_asn1(&values, &value, CBS_ASN1_OCTETSTRING) ||
938
- !CBB_add_bytes(&value, key_id, key_id_len)) {
943
+ !CBB_add_asn1_octet_string(&values, key_id, key_id_len)) {
939
944
  return 0;
940
945
  }
941
946
  }
@@ -944,24 +949,24 @@ static int add_bag_attributes(CBB *bag, const char *name, size_t name_len,
944
949
 
945
950
  static int add_cert_bag(CBB *cbb, X509 *cert, const char *name,
946
951
  const uint8_t *key_id, size_t key_id_len) {
947
- CBB bag, bag_oid, bag_contents, cert_bag, cert_type, wrapped_cert, cert_value;
952
+ CBB bag, bag_contents, cert_bag, wrapped_cert, cert_value;
948
953
  if ( // See https://tools.ietf.org/html/rfc7292#section-4.2.
949
954
  !CBB_add_asn1(cbb, &bag, CBS_ASN1_SEQUENCE) ||
950
- !CBB_add_asn1(&bag, &bag_oid, CBS_ASN1_OBJECT) ||
951
- !CBB_add_bytes(&bag_oid, kCertBag, sizeof(kCertBag)) ||
955
+ !CBB_add_asn1_element(&bag, CBS_ASN1_OBJECT, kCertBag,
956
+ sizeof(kCertBag)) ||
952
957
  !CBB_add_asn1(&bag, &bag_contents,
953
958
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
954
959
  // See https://tools.ietf.org/html/rfc7292#section-4.2.3.
955
960
  !CBB_add_asn1(&bag_contents, &cert_bag, CBS_ASN1_SEQUENCE) ||
956
- !CBB_add_asn1(&cert_bag, &cert_type, CBS_ASN1_OBJECT) ||
957
- !CBB_add_bytes(&cert_type, kX509Certificate, sizeof(kX509Certificate)) ||
961
+ !CBB_add_asn1_element(&cert_bag, CBS_ASN1_OBJECT, kX509Certificate,
962
+ sizeof(kX509Certificate)) ||
958
963
  !CBB_add_asn1(&cert_bag, &wrapped_cert,
959
964
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
960
965
  !CBB_add_asn1(&wrapped_cert, &cert_value, CBS_ASN1_OCTETSTRING)) {
961
966
  return 0;
962
967
  }
963
968
  uint8_t *buf;
964
- int len = i2d_X509(cert, NULL);
969
+ int len = i2d_X509(cert, nullptr);
965
970
 
966
971
  int int_name_len = 0;
967
972
  const char *cert_name = (const char *)X509_alias_get0(cert, &int_name_len);
@@ -990,14 +995,15 @@ static int add_cert_safe_contents(CBB *cbb, X509 *cert,
990
995
  const uint8_t *key_id, size_t key_id_len) {
991
996
  CBB safe_contents;
992
997
  if (!CBB_add_asn1(cbb, &safe_contents, CBS_ASN1_SEQUENCE) ||
993
- (cert != NULL &&
998
+ (cert != nullptr &&
994
999
  !add_cert_bag(&safe_contents, cert, name, key_id, key_id_len))) {
995
1000
  return 0;
996
1001
  }
997
1002
 
998
1003
  for (size_t i = 0; i < sk_X509_num(chain); i++) {
999
1004
  // Only the leaf certificate gets attributes.
1000
- if (!add_cert_bag(&safe_contents, sk_X509_value(chain, i), NULL, NULL, 0)) {
1005
+ if (!add_cert_bag(&safe_contents, sk_X509_value(chain, i), nullptr, nullptr,
1006
+ 0)) {
1001
1007
  return 0;
1002
1008
  }
1003
1009
  }
@@ -1005,9 +1011,9 @@ static int add_cert_safe_contents(CBB *cbb, X509 *cert,
1005
1011
  return CBB_flush(cbb);
1006
1012
  }
1007
1013
 
1008
- // add_encrypted_data encrypts |in| with |pbe_nid| and |pbe_cipher|, writing the
1009
- // result to |out|. It returns one on success and zero on error. |pbe_nid| and
1010
- // |pbe_cipher| are interpreted as in |PKCS8_encrypt|.
1014
+ // add_encrypted_data encrypts `in` with `pbe_nid` and `pbe_cipher`, writing the
1015
+ // result to `out`. It returns one on success and zero on error. `pbe_nid` and
1016
+ // `pbe_cipher` are interpreted as in `PKCS8_encrypt`.
1011
1017
  static int add_encrypted_data(CBB *out, int pbe_nid,
1012
1018
  const EVP_CIPHER *pbe_cipher,
1013
1019
  const char *password, size_t password_len,
@@ -1018,13 +1024,13 @@ static int add_encrypted_data(CBB *out, int pbe_nid,
1018
1024
  return 0;
1019
1025
  }
1020
1026
 
1021
- bssl::ScopedEVP_CIPHER_CTX ctx;
1022
- CBB content_info, type, wrapper, encrypted_data, encrypted_content_info,
1023
- inner_type, encrypted_content;
1027
+ ScopedEVP_CIPHER_CTX ctx;
1028
+ CBB content_info, wrapper, encrypted_data, encrypted_content_info,
1029
+ encrypted_content;
1024
1030
  if ( // Add the ContentInfo wrapping.
1025
1031
  !CBB_add_asn1(out, &content_info, CBS_ASN1_SEQUENCE) ||
1026
- !CBB_add_asn1(&content_info, &type, CBS_ASN1_OBJECT) ||
1027
- !CBB_add_bytes(&type, kPKCS7EncryptedData, sizeof(kPKCS7EncryptedData)) ||
1032
+ !CBB_add_asn1_element(&content_info, CBS_ASN1_OBJECT, kPKCS7EncryptedData,
1033
+ sizeof(kPKCS7EncryptedData)) ||
1028
1034
  !CBB_add_asn1(&content_info, &wrapper,
1029
1035
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
1030
1036
  // See https://tools.ietf.org/html/rfc2315#section-13.
@@ -1033,8 +1039,8 @@ static int add_encrypted_data(CBB *out, int pbe_nid,
1033
1039
  // See https://tools.ietf.org/html/rfc2315#section-10.1.
1034
1040
  !CBB_add_asn1(&encrypted_data, &encrypted_content_info,
1035
1041
  CBS_ASN1_SEQUENCE) ||
1036
- !CBB_add_asn1(&encrypted_content_info, &inner_type, CBS_ASN1_OBJECT) ||
1037
- !CBB_add_bytes(&inner_type, kPKCS7Data, sizeof(kPKCS7Data)) ||
1042
+ !CBB_add_asn1_element(&encrypted_content_info, CBS_ASN1_OBJECT,
1043
+ kPKCS7Data, sizeof(kPKCS7Data)) ||
1038
1044
  // Set up encryption and fill in contentEncryptionAlgorithm.
1039
1045
  !pkcs12_pbe_encrypt_init(&encrypted_content_info, ctx.get(), pbe_nid,
1040
1046
  pbe_cipher, iterations, password, password_len,
@@ -1053,10 +1059,10 @@ static int add_encrypted_data(CBB *out, int pbe_nid,
1053
1059
  }
1054
1060
 
1055
1061
  uint8_t *ptr;
1056
- int n1, n2;
1062
+ size_t n1, n2;
1057
1063
  if (!CBB_reserve(&encrypted_content, &ptr, max_out) ||
1058
- !EVP_CipherUpdate(ctx.get(), ptr, &n1, in, in_len) ||
1059
- !EVP_CipherFinal_ex(ctx.get(), ptr + n1, &n2) ||
1064
+ !EVP_CipherUpdate_ex(ctx.get(), ptr, &n1, max_out, in, in_len) ||
1065
+ !EVP_CipherFinal_ex2(ctx.get(), ptr + n1, &n2, max_out - n1) ||
1060
1066
  !CBB_did_write(&encrypted_content, n1 + n2) || !CBB_flush(out)) {
1061
1067
  return 0;
1062
1068
  }
@@ -1068,18 +1074,17 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1068
1074
  const EVP_PKEY *pkey, X509 *cert,
1069
1075
  const STACK_OF(X509) *chain, int key_nid, int cert_nid,
1070
1076
  int iterations, int mac_iterations, int key_type) {
1071
- // TODO(crbug.com/396434682): Improve these defaults.
1072
1077
  if (key_nid == 0) {
1073
- key_nid = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
1078
+ key_nid = NID_aes_256_cbc;
1074
1079
  }
1075
1080
  if (cert_nid == 0) {
1076
- cert_nid = NID_pbe_WithSHA1And40BitRC2_CBC;
1081
+ cert_nid = NID_aes_256_cbc;
1077
1082
  }
1078
1083
  if (iterations == 0) {
1079
1084
  iterations = PKCS12_DEFAULT_ITER;
1080
1085
  }
1081
1086
  if (mac_iterations == 0) {
1082
- mac_iterations = 1;
1087
+ mac_iterations = PKCS12_DEFAULT_ITER;
1083
1088
  }
1084
1089
  if ( // In OpenSSL, this specifies a non-standard Microsoft key usage
1085
1090
  // extension which we do not currently support.
@@ -1089,9 +1094,9 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1089
1094
  // PKCS#12 file.
1090
1095
  mac_iterations < 0 ||
1091
1096
  // Don't encode empty objects.
1092
- (pkey == NULL && cert == NULL && sk_X509_num(chain) == 0)) {
1097
+ (pkey == nullptr && cert == nullptr && sk_X509_num(chain) == 0)) {
1093
1098
  OPENSSL_PUT_ERROR(PKCS8, PKCS8_R_UNSUPPORTED_OPTIONS);
1094
- return 0;
1099
+ return nullptr;
1095
1100
  }
1096
1101
 
1097
1102
  // PKCS#12 is a very confusing recursive data format, built out of another
@@ -1124,39 +1129,38 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1124
1129
  // key-specific encryption container, PKCS8ShroudedKeyBag, which is used
1125
1130
  // instead.
1126
1131
 
1127
- // Note that |password| may be NULL to specify no password, rather than the
1132
+ // Note that `password` may be NULL to specify no password, rather than the
1128
1133
  // empty string. They are encoded differently in PKCS#12. (One is the empty
1129
1134
  // byte array and the other is NUL-terminated UCS-2.)
1130
- size_t password_len = password != NULL ? strlen(password) : 0;
1135
+ size_t password_len = password != nullptr ? strlen(password) : 0;
1131
1136
 
1132
1137
  uint8_t key_id[EVP_MAX_MD_SIZE];
1133
1138
  unsigned key_id_len = 0;
1134
- if (cert != NULL && pkey != NULL) {
1139
+ if (cert != nullptr && pkey != nullptr) {
1135
1140
  if (!X509_check_private_key(cert, pkey) ||
1136
1141
  // Matching OpenSSL, use the SHA-1 hash of the certificate as the local
1137
1142
  // key ID. Some PKCS#12 consumers require one to connect the private key
1138
1143
  // and certificate.
1139
1144
  !X509_digest(cert, EVP_sha1(), key_id, &key_id_len)) {
1140
- return 0;
1145
+ return nullptr;
1141
1146
  }
1142
1147
  }
1143
1148
 
1144
1149
  // See https://tools.ietf.org/html/rfc7292#section-4.
1145
- PKCS12 *ret = NULL;
1146
- CBB cbb, pfx, auth_safe, auth_safe_oid, auth_safe_wrapper, auth_safe_data,
1147
- content_infos;
1150
+ PKCS12 *ret = nullptr;
1151
+ CBB cbb, pfx, auth_safe, auth_safe_wrapper, auth_safe_data, content_infos;
1148
1152
  uint8_t mac_key[EVP_MAX_MD_SIZE];
1149
1153
  if (!CBB_init(&cbb, 0) || !CBB_add_asn1(&cbb, &pfx, CBS_ASN1_SEQUENCE) ||
1150
1154
  !CBB_add_asn1_uint64(&pfx, 3) ||
1151
1155
  // auth_safe is a data ContentInfo.
1152
1156
  !CBB_add_asn1(&pfx, &auth_safe, CBS_ASN1_SEQUENCE) ||
1153
- !CBB_add_asn1(&auth_safe, &auth_safe_oid, CBS_ASN1_OBJECT) ||
1154
- !CBB_add_bytes(&auth_safe_oid, kPKCS7Data, sizeof(kPKCS7Data)) ||
1157
+ !CBB_add_asn1_element(&auth_safe, CBS_ASN1_OBJECT, kPKCS7Data,
1158
+ sizeof(kPKCS7Data)) ||
1155
1159
  !CBB_add_asn1(&auth_safe, &auth_safe_wrapper,
1156
1160
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
1157
1161
  !CBB_add_asn1(&auth_safe_wrapper, &auth_safe_data,
1158
1162
  CBS_ASN1_OCTETSTRING) ||
1159
- // See https://tools.ietf.org/html/rfc7292#section-4.1. |auth_safe|'s
1163
+ // See https://tools.ietf.org/html/rfc7292#section-4.1. `auth_safe`'s
1160
1164
  // contains a SEQUENCE of ContentInfos.
1161
1165
  !CBB_add_asn1(&auth_safe_data, &content_infos, CBS_ASN1_SEQUENCE)) {
1162
1166
  goto err;
@@ -1164,17 +1168,17 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1164
1168
 
1165
1169
  // If there are any certificates, place them in CertBags wrapped in a single
1166
1170
  // encrypted ContentInfo.
1167
- if (cert != NULL || sk_X509_num(chain) > 0) {
1171
+ if (cert != nullptr || sk_X509_num(chain) > 0) {
1168
1172
  if (cert_nid < 0) {
1169
1173
  // Place the certificates in an unencrypted ContentInfo. This could be
1170
1174
  // more compactly-encoded by reusing the same ContentInfo as the key, but
1171
1175
  // OpenSSL does not do this. We keep them separate for consistency. (Keys,
1172
1176
  // even when encrypted, are always placed in unencrypted ContentInfos.
1173
1177
  // PKCS#12 defines bag-level encryption for keys.)
1174
- CBB content_info, oid, wrapper, data;
1178
+ CBB content_info, wrapper, data;
1175
1179
  if (!CBB_add_asn1(&content_infos, &content_info, CBS_ASN1_SEQUENCE) ||
1176
- !CBB_add_asn1(&content_info, &oid, CBS_ASN1_OBJECT) ||
1177
- !CBB_add_bytes(&oid, kPKCS7Data, sizeof(kPKCS7Data)) ||
1180
+ !CBB_add_asn1_element(&content_info, CBS_ASN1_OBJECT, kPKCS7Data,
1181
+ sizeof(kPKCS7Data)) ||
1178
1182
  !CBB_add_asn1(&content_info, &wrapper,
1179
1183
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
1180
1184
  !CBB_add_asn1(&wrapper, &data, CBS_ASN1_OCTETSTRING) ||
@@ -1210,24 +1214,23 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1210
1214
  // wrapped in an unencrypted ContentInfo. (One could also place it in a KeyBag
1211
1215
  // inside an encrypted ContentInfo, but OpenSSL does not do this and some
1212
1216
  // PKCS#12 consumers do not support KeyBags.)
1213
- if (pkey != NULL) {
1214
- CBB content_info, oid, wrapper, data, safe_contents, bag, bag_oid,
1215
- bag_contents;
1217
+ if (pkey != nullptr) {
1218
+ CBB content_info, wrapper, data, safe_contents, bag, bag_contents;
1216
1219
  if ( // Add another data ContentInfo.
1217
1220
  !CBB_add_asn1(&content_infos, &content_info, CBS_ASN1_SEQUENCE) ||
1218
- !CBB_add_asn1(&content_info, &oid, CBS_ASN1_OBJECT) ||
1219
- !CBB_add_bytes(&oid, kPKCS7Data, sizeof(kPKCS7Data)) ||
1221
+ !CBB_add_asn1_element(&content_info, CBS_ASN1_OBJECT, kPKCS7Data,
1222
+ sizeof(kPKCS7Data)) ||
1220
1223
  !CBB_add_asn1(&content_info, &wrapper,
1221
1224
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
1222
1225
  !CBB_add_asn1(&wrapper, &data, CBS_ASN1_OCTETSTRING) ||
1223
1226
  !CBB_add_asn1(&data, &safe_contents, CBS_ASN1_SEQUENCE) ||
1224
1227
  // Add a SafeBag containing a PKCS8ShroudedKeyBag.
1225
- !CBB_add_asn1(&safe_contents, &bag, CBS_ASN1_SEQUENCE) ||
1226
- !CBB_add_asn1(&bag, &bag_oid, CBS_ASN1_OBJECT)) {
1228
+ !CBB_add_asn1(&safe_contents, &bag, CBS_ASN1_SEQUENCE)) {
1227
1229
  goto err;
1228
1230
  }
1229
1231
  if (key_nid < 0) {
1230
- if (!CBB_add_bytes(&bag_oid, kKeyBag, sizeof(kKeyBag)) ||
1232
+ if (!CBB_add_asn1_element(&bag, CBS_ASN1_OBJECT, kKeyBag,
1233
+ sizeof(kKeyBag)) ||
1231
1234
  !CBB_add_asn1(&bag, &bag_contents,
1232
1235
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
1233
1236
  !EVP_marshal_private_key(&bag_contents, pkey)) {
@@ -1241,13 +1244,13 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1241
1244
  if (cipher != nullptr) {
1242
1245
  key_nid = -1;
1243
1246
  }
1244
- if (!CBB_add_bytes(&bag_oid, kPKCS8ShroudedKeyBag,
1245
- sizeof(kPKCS8ShroudedKeyBag)) ||
1247
+ if (!CBB_add_asn1_element(&bag, CBS_ASN1_OBJECT, kPKCS8ShroudedKeyBag,
1248
+ sizeof(kPKCS8ShroudedKeyBag)) ||
1246
1249
  !CBB_add_asn1(&bag, &bag_contents,
1247
1250
  CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0) ||
1248
1251
  !PKCS8_marshal_encrypted_private_key(
1249
1252
  &bag_contents, key_nid, cipher, password, password_len,
1250
- NULL /* generate a random salt */,
1253
+ nullptr /* generate a random salt */,
1251
1254
  0 /* use default salt length */, iterations, pkey)) {
1252
1255
  goto err;
1253
1256
  }
@@ -1264,7 +1267,7 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1264
1267
 
1265
1268
  {
1266
1269
  // Compute the MAC. Match OpenSSL in using SHA-1 as the hash function. The
1267
- // MAC covers |auth_safe_data|.
1270
+ // MAC covers `auth_safe_data`.
1268
1271
  const EVP_MD *mac_md = EVP_sha1();
1269
1272
  uint8_t mac_salt[PKCS5_SALT_LEN];
1270
1273
  uint8_t mac[EVP_MAX_MD_SIZE];
@@ -1279,7 +1282,7 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1279
1282
  goto err;
1280
1283
  }
1281
1284
 
1282
- CBB mac_data, digest_info, mac_cbb, mac_salt_cbb;
1285
+ CBB mac_data, digest_info;
1283
1286
  if (!CBB_add_asn1(&pfx, &mac_data, CBS_ASN1_SEQUENCE) ||
1284
1287
  !CBB_add_asn1(&mac_data, &digest_info, CBS_ASN1_SEQUENCE) ||
1285
1288
  // OpenSSL and NSS always include a NULL parameter with the digest
@@ -1293,10 +1296,8 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1293
1296
  //
1294
1297
  // We match OpenSSL, NSS, and RSASSA-PKCS1-v1_5 in including the NULL.
1295
1298
  !EVP_marshal_digest_algorithm(&digest_info, mac_md) ||
1296
- !CBB_add_asn1(&digest_info, &mac_cbb, CBS_ASN1_OCTETSTRING) ||
1297
- !CBB_add_bytes(&mac_cbb, mac, mac_len) ||
1298
- !CBB_add_asn1(&mac_data, &mac_salt_cbb, CBS_ASN1_OCTETSTRING) ||
1299
- !CBB_add_bytes(&mac_salt_cbb, mac_salt, sizeof(mac_salt)) ||
1299
+ !CBB_add_asn1_octet_string(&digest_info, mac, mac_len) ||
1300
+ !CBB_add_asn1_octet_string(&mac_data, mac_salt, sizeof(mac_salt)) ||
1300
1301
  // The iteration count has a DEFAULT of 1, but RFC 7292 says "The
1301
1302
  // default is for historical reasons and its use is deprecated." Thus we
1302
1303
  // explicitly encode the iteration count, though it is not valid DER.
@@ -1304,10 +1305,10 @@ PKCS12 *PKCS12_create(const char *password, const char *name,
1304
1305
  goto err;
1305
1306
  }
1306
1307
 
1307
- ret = reinterpret_cast<PKCS12 *>(OPENSSL_malloc(sizeof(PKCS12)));
1308
- if (ret == NULL || !CBB_finish(&cbb, &ret->ber_bytes, &ret->ber_len)) {
1309
- OPENSSL_free(ret);
1310
- ret = NULL;
1308
+ ret = New<PKCS12>();
1309
+ if (ret == nullptr || !CBB_finish(&cbb, &ret->ber_bytes, &ret->ber_len)) {
1310
+ Delete(ret);
1311
+ ret = nullptr;
1311
1312
  goto err;
1312
1313
  }
1313
1314
  }
@@ -1319,9 +1320,9 @@ err:
1319
1320
  }
1320
1321
 
1321
1322
  void PKCS12_free(PKCS12 *p12) {
1322
- if (p12 == NULL) {
1323
+ if (p12 == nullptr) {
1323
1324
  return;
1324
1325
  }
1325
1326
  OPENSSL_free(p12->ber_bytes);
1326
- OPENSSL_free(p12);
1327
+ Delete(p12);
1327
1328
  }