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.
- checksums.yaml +4 -4
- data/Makefile +40 -27
- data/include/grpc/event_engine/memory_allocator.h +1 -0
- data/include/grpc/grpc.h +3 -0
- data/include/grpc/grpc_security_constants.h +2 -0
- data/include/grpc/impl/channel_arg_names.h +4 -0
- data/src/core/call/call_filters.h +10 -10
- data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
- data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
- data/src/core/call/filter_fusion.h +15 -15
- data/src/core/call/interception_chain.h +3 -3
- data/src/core/call/metadata_batch.cc +1 -0
- data/src/core/call/metadata_batch.h +45 -33
- data/src/core/call/parsed_metadata.h +3 -3
- data/src/core/call/request_buffer.cc +6 -6
- data/src/core/call/request_buffer.h +1 -1
- data/src/core/channelz/channel_trace.cc +5 -5
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +9 -9
- data/src/core/channelz/channelz.h +12 -12
- data/src/core/channelz/channelz_registry.cc +10 -10
- data/src/core/channelz/ztrace_collector.h +5 -5
- data/src/core/client_channel/client_channel.cc +4 -4
- data/src/core/client_channel/client_channel_filter.cc +14 -14
- data/src/core/client_channel/global_subchannel_pool.cc +4 -4
- data/src/core/client_channel/subchannel.cc +24 -23
- data/src/core/client_channel/subchannel_stream_client.cc +5 -5
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
- data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
- data/src/core/credentials/call/external/external_account_credentials.cc +4 -4
- data/src/core/credentials/call/regional_access_boundary_fetcher.cc +9 -9
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +4 -4
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +1 -1
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +9 -9
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +1 -1
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +6 -6
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
- data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +4 -4
- data/src/core/credentials/transport/tls/ssl_utils.cc +10 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +10 -10
- data/src/core/credentials/transport/tls/tls_security_connector.h +6 -6
- data/src/core/credentials/transport/tls/tls_utils.h +9 -0
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +15 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -21
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -11
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +14 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame.h +9 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -9
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -2
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +16 -18
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +2 -1
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +277 -189
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +40 -17
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +12 -24
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +3 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/read_context.h +96 -3
- data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
- data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +8 -8
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +17 -9
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +23 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +5 -5
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h +137 -73
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +45 -25
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +6 -6
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +46 -26
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.c +17 -14
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb.h +185 -23
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +58 -42
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.c +17 -12
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.h +5 -5
- data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +567 -549
- data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
- data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
- data/src/core/filter/ext_proc/ext_proc_filter.cc +1603 -46
- data/src/core/filter/ext_proc/ext_proc_filter.h +55 -22
- data/src/core/filter/ext_proc/ext_proc_messages.cc +106 -51
- data/src/core/filter/ext_proc/ext_proc_messages.h +36 -9
- data/src/core/handshaker/handshaker.cc +4 -4
- data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
- data/src/core/handshaker/security/secure_endpoint.cc +13 -13
- data/src/core/handshaker/security/security_handshaker.cc +6 -6
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
- data/src/core/lib/channel/channel_args.cc +20 -0
- data/src/core/lib/channel/channel_args.h +17 -17
- data/src/core/lib/channel/promise_based_filter.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.h +66 -27
- data/src/core/lib/debug/trace_flags.cc +2 -0
- data/src/core/lib/debug/trace_flags.h +1 -0
- data/src/core/lib/event_engine/ares_resolver.cc +14 -14
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
- data/src/core/lib/event_engine/default_event_engine.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -9
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +16 -14
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +7 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +17 -17
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
- data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
- data/src/core/lib/experiments/experiments.cc +48 -0
- data/src/core/lib/experiments/experiments.h +24 -0
- data/src/core/lib/iomgr/buffer_list.cc +3 -3
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/combiner.cc +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +4 -4
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_posix.cc +7 -7
- data/src/core/lib/promise/activity.cc +1 -1
- data/src/core/lib/promise/activity.h +1 -1
- data/src/core/lib/promise/arena_promise.h +7 -7
- data/src/core/lib/promise/detail/promise_factory.h +8 -8
- data/src/core/lib/promise/detail/promise_like.h +4 -4
- data/src/core/lib/promise/inter_activity_latch.h +6 -6
- data/src/core/lib/promise/inter_activity_pipe.h +1 -1
- data/src/core/lib/promise/observable.h +3 -3
- data/src/core/lib/promise/party.cc +1 -1
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/arena.h +3 -3
- data/src/core/lib/resource_quota/memory_quota.cc +16 -16
- data/src/core/lib/resource_quota/memory_quota.h +1 -1
- data/src/core/lib/resource_quota/thread_quota.cc +3 -3
- data/src/core/lib/security/authorization/audit_logging.cc +5 -5
- data/src/core/lib/security/authorization/authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.h +1 -1
- data/src/core/lib/surface/call.cc +8 -7
- data/src/core/lib/surface/call.h +3 -3
- data/src/core/lib/surface/call_utils.h +4 -0
- data/src/core/lib/surface/channel.cc +1 -1
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/init.cc +7 -7
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +2 -2
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
- data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
- data/src/core/load_balancing/autosharding/autosharding.h +78 -0
- data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
- data/src/core/load_balancing/health_check_client.cc +7 -7
- data/src/core/load_balancing/lb_policy.cc +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +5 -5
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
- data/src/core/load_balancing/ring_hash/ring_hash.cc +109 -37
- data/src/core/load_balancing/rls/rls.cc +23 -17
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +10 -10
- data/src/core/load_balancing/xds/cds.cc +6 -5
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -2
- data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
- data/src/core/mitigation_engine/mitigation_engine.h +28 -4
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
- data/src/core/resolver/dns/dns_resolver.cc +7 -7
- data/src/core/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -30
- data/src/core/server/server.cc +30 -30
- data/src/core/server/server.h +4 -3
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/xds_server_config_fetcher_legacy.cc +15 -15
- data/src/core/telemetry/default_tcp_tracer.cc +1 -1
- data/src/core/telemetry/instrument.cc +30 -16
- data/src/core/telemetry/instrument.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
- data/src/core/tsi/ssl_transport_security.cc +46 -13
- data/src/core/tsi/ssl_transport_security.h +7 -0
- data/src/core/tsi/ssl_transport_security_utils.cc +16 -6
- data/src/core/util/event_log.cc +3 -3
- data/src/core/util/http_client/httpcli.cc +5 -5
- data/src/core/util/http_client/httpcli.h +1 -1
- data/src/core/util/json/json_object_loader.cc +7 -0
- data/src/core/util/json/json_object_loader.h +17 -2
- data/src/core/util/latent_see.cc +123 -36
- data/src/core/util/latent_see.h +14 -1
- data/src/core/util/mpscq.cc +1 -1
- data/src/core/util/notification.h +4 -4
- data/src/core/util/sync.h +20 -6
- data/src/core/util/table.h +20 -22
- data/src/core/util/work_serializer.cc +2 -2
- data/src/core/xds/grpc/blackboard.cc +4 -3
- data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
- data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
- data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +2 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +8 -8
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_endpoint.cc +1 -1
- data/src/core/xds/grpc/xds_endpoint_parser.cc +11 -0
- data/src/core/xds/grpc/xds_grpc_service_parser.cc +12 -10
- data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +17 -14
- data/src/core/xds/grpc/xds_matcher.h +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +125 -85
- data/src/core/xds/grpc/xds_transport_grpc.h +19 -4
- data/src/core/xds/xds_client/lrs_client.cc +22 -19
- data/src/core/xds/xds_client/xds_client.cc +19 -16
- data/src/core/xds/xds_client/xds_transport.h +49 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
- data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
- data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
- data/third_party/abseil-cpp/absl/base/casts.h +135 -2
- data/third_party/abseil-cpp/absl/base/config.h +63 -41
- data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
- data/third_party/abseil-cpp/absl/base/macros.h +76 -37
- data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
- data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
- data/third_party/abseil-cpp/absl/base/options.h +46 -18
- data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
- data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
- data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
- data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
- data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
- data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
- data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
- data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
- data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
- data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
- data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
- data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
- data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
- data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
- data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
- data/third_party/abseil-cpp/absl/log/log.h +2 -2
- data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
- data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
- data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
- data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
- data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
- data/third_party/abseil-cpp/absl/status/status.cc +66 -70
- data/third_party/abseil-cpp/absl/status/status.h +254 -23
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
- data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
- data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
- data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
- data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
- data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
- data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
- data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
- data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
- data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
- data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
- data/third_party/abseil-cpp/absl/time/clock.h +3 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
- data/third_party/abseil-cpp/absl/time/format.cc +3 -10
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- data/third_party/abseil-cpp/absl/time/time.cc +4 -4
- data/third_party/abseil-cpp/absl/time/time.h +14 -13
- data/third_party/abseil-cpp/absl/types/compare.h +64 -63
- data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
- data/third_party/abseil-cpp/absl/types/optional.h +31 -4
- data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
- data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
- data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
- data/third_party/abseil-cpp/absl/types/span.h +67 -38
- data/third_party/abseil-cpp/absl/types/variant.h +75 -18
- data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
- data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
- data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
- data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
- data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
- data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
- data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
- data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
- data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
- data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
- data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
- data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
- data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
- data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
- data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
- data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
- data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
- data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
- data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
- data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
- data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
- data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
- data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
- data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
- data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
- data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
- data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
- data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
- data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
- data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
- data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
- data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
- data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
- data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
- data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
- data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
- data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
- data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
- data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
- data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
- data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
- data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
- data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
- data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
- data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
- data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
- data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
- data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
- data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
- data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
- data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
- data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
- data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
- data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
- data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
- data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
- data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
- data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
- data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
- data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
- data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
- data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
- data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
- data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
- data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
- data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
- data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
- data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
- data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
- data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
- data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
- data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
- data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
- data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
- data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
- data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
- data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
- data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
- data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
- data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
- data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
- data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
- data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
- data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
- data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
- data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
- data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
- data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
- data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
- data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
- data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
- data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
- data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
- data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
- data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
- data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
- data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
- data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
- data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
- data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
- data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
- data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
- data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
- data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
- data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
- data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
- data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
- data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
- data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
- data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
- data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
- data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
- data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
- data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
- data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
- data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
- data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
- data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
- data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
- data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
- data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
- data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
- data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
- data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
- data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
- data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
- data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
- data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
- data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
- data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
- data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
- data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
- data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
- data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
- data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
- data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
- data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
- data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
- data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
- data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
- data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
- data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
- data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
- data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
- data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
- data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
- data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
- data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
- data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
- data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
- data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
- data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
- data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
- data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
- data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
- data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
- data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
- data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
- data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
- data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
- data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
- data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
- data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
- data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
- data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
- data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
- data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
- data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
- data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
- data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
- data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
- data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
- data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
- data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
- data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
- data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
- data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
- data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
- data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
- data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
- data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
- data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
- data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
- data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
- data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
- data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
- data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
- data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
- data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
- data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
- data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
- data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
- data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
- data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
- data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
- data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
- data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
- data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
- data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
- data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
- data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
- data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
- data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
- data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
- data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
- data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
- data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
- data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
- data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
- data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
- data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
- data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
- data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
- data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
- data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
- data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
- data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
- data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
- data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
- data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
- data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
- data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
- data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
- data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
- data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
- data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
- data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
- data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
- data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
- data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
- data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
- data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
- data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
- data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
- data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
- data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
- data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
- data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
- data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
- data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
- data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
- data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
- data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
- data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
- data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
- data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
- data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
- data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
- data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
- data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
- data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
- data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
- data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
- data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
- data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
- data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
- data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
- data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
- data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
- data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
- data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
- data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
- data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
- data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
- data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
- data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
- data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
- data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
- data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
- data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
- data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
- data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
- data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
- data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
- data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
- metadata +77 -52
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -240
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -157
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -72
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
- data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
- data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
- data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
- data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
- data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
- data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
- data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
- data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
|
@@ -22,14 +22,16 @@
|
|
|
22
22
|
#include <openssl/evp.h>
|
|
23
23
|
#include <openssl/mem.h>
|
|
24
24
|
#include <openssl/obj.h>
|
|
25
|
-
#include <openssl/thread.h>
|
|
26
25
|
#include <openssl/x509.h>
|
|
27
26
|
|
|
28
27
|
#include "../internal.h"
|
|
28
|
+
#include "../mem_internal.h"
|
|
29
29
|
#include "internal.h"
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
|
|
32
|
+
using namespace bssl;
|
|
33
|
+
|
|
34
|
+
static ExDataClass g_ex_data_class(/*with_app_data=*/true);
|
|
33
35
|
|
|
34
36
|
// CRL score values
|
|
35
37
|
|
|
@@ -82,14 +84,15 @@ static int internal_verify(X509_STORE_CTX *ctx);
|
|
|
82
84
|
|
|
83
85
|
static int null_callback(int ok, X509_STORE_CTX *e) { return ok; }
|
|
84
86
|
|
|
85
|
-
// cert_self_signed checks if
|
|
86
|
-
// one and sets
|
|
87
|
+
// cert_self_signed checks if `x` is self-signed. If `x` is valid, it returns
|
|
88
|
+
// one and sets `*out_is_self_signed` to the result. If `x` is invalid, it
|
|
87
89
|
// returns zero.
|
|
88
90
|
static int cert_self_signed(X509 *x, int *out_is_self_signed) {
|
|
89
91
|
if (!x509v3_cache_extensions(x)) {
|
|
90
92
|
return 0;
|
|
91
93
|
}
|
|
92
|
-
*
|
|
94
|
+
auto *impl = FromOpaque(x);
|
|
95
|
+
*out_is_self_signed = (impl->ex_flags & EXFLAG_SS) != 0;
|
|
93
96
|
return 1;
|
|
94
97
|
}
|
|
95
98
|
|
|
@@ -99,7 +102,7 @@ static int call_verify_cb(int ok, X509_STORE_CTX *ctx) {
|
|
|
99
102
|
// of success or failure. Insert that callers check correctly.
|
|
100
103
|
//
|
|
101
104
|
// TODO(davidben): Also use this wrapper to constrain which errors may be
|
|
102
|
-
// suppressed, and ensure all
|
|
105
|
+
// suppressed, and ensure all `verify_cb` calls remember to fill in an error.
|
|
103
106
|
BSSL_CHECK(ok == 0 || ok == 1);
|
|
104
107
|
return ok;
|
|
105
108
|
}
|
|
@@ -107,12 +110,12 @@ static int call_verify_cb(int ok, X509_STORE_CTX *ctx) {
|
|
|
107
110
|
// Given a certificate try and find an exact match in the store
|
|
108
111
|
static X509 *lookup_cert_match(X509_STORE_CTX *ctx, X509 *x) {
|
|
109
112
|
STACK_OF(X509) *certs;
|
|
110
|
-
X509 *xtmp =
|
|
113
|
+
X509 *xtmp = nullptr;
|
|
111
114
|
size_t i;
|
|
112
115
|
// Lookup all certs with matching subject name
|
|
113
116
|
certs = X509_STORE_CTX_get1_certs(ctx, X509_get_subject_name(x));
|
|
114
|
-
if (certs ==
|
|
115
|
-
return
|
|
117
|
+
if (certs == nullptr) {
|
|
118
|
+
return nullptr;
|
|
116
119
|
}
|
|
117
120
|
// Look for exact match
|
|
118
121
|
for (i = 0; i < sk_X509_num(certs); i++) {
|
|
@@ -124,28 +127,28 @@ static X509 *lookup_cert_match(X509_STORE_CTX *ctx, X509 *x) {
|
|
|
124
127
|
if (i < sk_X509_num(certs)) {
|
|
125
128
|
X509_up_ref(xtmp);
|
|
126
129
|
} else {
|
|
127
|
-
xtmp =
|
|
130
|
+
xtmp = nullptr;
|
|
128
131
|
}
|
|
129
132
|
sk_X509_pop_free(certs, X509_free);
|
|
130
133
|
return xtmp;
|
|
131
134
|
}
|
|
132
135
|
|
|
133
136
|
int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
134
|
-
X509 *chain_ss =
|
|
137
|
+
X509 *chain_ss = nullptr;
|
|
135
138
|
int bad_chain = 0;
|
|
136
139
|
X509_VERIFY_PARAM *param = ctx->param;
|
|
137
140
|
int i, ok = 0;
|
|
138
141
|
int j, retry, trust;
|
|
139
|
-
STACK_OF(X509) *sktmp =
|
|
142
|
+
STACK_OF(X509) *sktmp = nullptr;
|
|
140
143
|
|
|
141
144
|
{
|
|
142
|
-
if (ctx->cert ==
|
|
145
|
+
if (ctx->cert == nullptr) {
|
|
143
146
|
OPENSSL_PUT_ERROR(X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY);
|
|
144
147
|
ctx->error = X509_V_ERR_INVALID_CALL;
|
|
145
148
|
return 0;
|
|
146
149
|
}
|
|
147
150
|
|
|
148
|
-
if (ctx->chain !=
|
|
151
|
+
if (ctx->chain != nullptr) {
|
|
149
152
|
// This X509_STORE_CTX has already been used to verify a cert. We
|
|
150
153
|
// cannot do another one.
|
|
151
154
|
OPENSSL_PUT_ERROR(X509, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
@@ -166,7 +169,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
166
169
|
// first we make sure the chain we are going to build is present and that
|
|
167
170
|
// the first entry is in place
|
|
168
171
|
ctx->chain = sk_X509_new_null();
|
|
169
|
-
if (ctx->chain ==
|
|
172
|
+
if (ctx->chain == nullptr || !sk_X509_push(ctx->chain, ctx->cert)) {
|
|
170
173
|
ctx->error = X509_V_ERR_OUT_OF_MEM;
|
|
171
174
|
goto end;
|
|
172
175
|
}
|
|
@@ -174,15 +177,15 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
174
177
|
ctx->last_untrusted = 1;
|
|
175
178
|
|
|
176
179
|
// We use a temporary STACK so we can chop and hack at it.
|
|
177
|
-
if (ctx->untrusted !=
|
|
178
|
-
(sktmp = sk_X509_dup(ctx->untrusted)) ==
|
|
180
|
+
if (ctx->untrusted != nullptr &&
|
|
181
|
+
(sktmp = sk_X509_dup(ctx->untrusted)) == nullptr) {
|
|
179
182
|
ctx->error = X509_V_ERR_OUT_OF_MEM;
|
|
180
183
|
goto end;
|
|
181
184
|
}
|
|
182
185
|
|
|
183
186
|
int num = (int)sk_X509_num(ctx->chain);
|
|
184
187
|
X509 *x = sk_X509_value(ctx->chain, num - 1);
|
|
185
|
-
//
|
|
188
|
+
// `param->depth` does not include the leaf certificate or the trust anchor,
|
|
186
189
|
// so the maximum size is 2 more.
|
|
187
190
|
int max_chain = param->depth >= INT_MAX - 2 ? INT_MAX : param->depth + 2;
|
|
188
191
|
|
|
@@ -206,7 +209,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
206
209
|
// If asked see if we can find issuer in trusted store first
|
|
207
210
|
if (ctx->param->flags & X509_V_FLAG_TRUSTED_FIRST) {
|
|
208
211
|
X509 *issuer = get_trusted_issuer(ctx, x);
|
|
209
|
-
if (issuer !=
|
|
212
|
+
if (issuer != nullptr) {
|
|
210
213
|
// Free the certificate. It will be picked up again later.
|
|
211
214
|
X509_free(issuer);
|
|
212
215
|
break;
|
|
@@ -214,9 +217,9 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
214
217
|
}
|
|
215
218
|
|
|
216
219
|
// If we were passed a cert chain, use it first
|
|
217
|
-
if (sktmp !=
|
|
220
|
+
if (sktmp != nullptr) {
|
|
218
221
|
X509 *issuer = find_issuer(ctx, sktmp, x);
|
|
219
|
-
if (issuer !=
|
|
222
|
+
if (issuer != nullptr) {
|
|
220
223
|
if (!sk_X509_push(ctx->chain, issuer)) {
|
|
221
224
|
ctx->error = X509_V_ERR_OUT_OF_MEM;
|
|
222
225
|
goto end;
|
|
@@ -257,7 +260,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
257
260
|
// find it in the store. We must have an exact match to avoid
|
|
258
261
|
// possible impersonation.
|
|
259
262
|
X509 *issuer = get_trusted_issuer(ctx, x);
|
|
260
|
-
if (issuer ==
|
|
263
|
+
if (issuer == nullptr || X509_cmp(x, issuer) != 0) {
|
|
261
264
|
X509_free(issuer);
|
|
262
265
|
ctx->error = X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT;
|
|
263
266
|
ctx->current_cert = x;
|
|
@@ -300,7 +303,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
300
303
|
break;
|
|
301
304
|
}
|
|
302
305
|
X509 *issuer = get_trusted_issuer(ctx, x);
|
|
303
|
-
if (issuer ==
|
|
306
|
+
if (issuer == nullptr) {
|
|
304
307
|
break;
|
|
305
308
|
}
|
|
306
309
|
x = issuer;
|
|
@@ -331,7 +334,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
331
334
|
X509 *issuer =
|
|
332
335
|
get_trusted_issuer(ctx, sk_X509_value(ctx->chain, j - 1));
|
|
333
336
|
// Check if we found an alternate chain
|
|
334
|
-
if (issuer !=
|
|
337
|
+
if (issuer != nullptr) {
|
|
335
338
|
// Free up the found cert we'll add it again later
|
|
336
339
|
X509_free(issuer);
|
|
337
340
|
|
|
@@ -353,7 +356,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
353
356
|
// self signed certificate in which case we've indicated an error already
|
|
354
357
|
// and set bad_chain == 1
|
|
355
358
|
if (trust != X509_TRUST_TRUSTED && !bad_chain) {
|
|
356
|
-
if (chain_ss ==
|
|
359
|
+
if (chain_ss == nullptr ||
|
|
357
360
|
!x509_check_issued_with_callback(ctx, x, chain_ss)) {
|
|
358
361
|
if (ctx->last_untrusted >= num) {
|
|
359
362
|
ctx->error = X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY;
|
|
@@ -370,7 +373,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
370
373
|
ctx->last_untrusted = num;
|
|
371
374
|
ctx->current_cert = chain_ss;
|
|
372
375
|
ctx->error = X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN;
|
|
373
|
-
chain_ss =
|
|
376
|
+
chain_ss = nullptr;
|
|
374
377
|
}
|
|
375
378
|
|
|
376
379
|
ctx->error_depth = num - 1;
|
|
@@ -388,7 +391,7 @@ int X509_verify_cert(X509_STORE_CTX *ctx) {
|
|
|
388
391
|
!check_revocation(ctx) || //
|
|
389
392
|
!internal_verify(ctx) || //
|
|
390
393
|
!check_name_constraints(ctx) ||
|
|
391
|
-
// TODO(davidben): Does
|
|
394
|
+
// TODO(davidben): Does `check_policy` still need to be conditioned on
|
|
392
395
|
// |!bad_chain|? DoS concerns have been resolved.
|
|
393
396
|
(!bad_chain && !check_policy(ctx))) {
|
|
394
397
|
goto end;
|
|
@@ -419,13 +422,13 @@ static X509 *find_issuer(X509_STORE_CTX *ctx, STACK_OF(X509) *sk, X509 *x) {
|
|
|
419
422
|
return issuer;
|
|
420
423
|
}
|
|
421
424
|
}
|
|
422
|
-
return
|
|
425
|
+
return nullptr;
|
|
423
426
|
}
|
|
424
427
|
|
|
425
428
|
// Given a possible certificate and issuer check them
|
|
426
429
|
|
|
427
|
-
int x509_check_issued_with_callback(X509_STORE_CTX *ctx, X509 *x,
|
|
428
|
-
|
|
430
|
+
int bssl::x509_check_issued_with_callback(X509_STORE_CTX *ctx, const X509 *x,
|
|
431
|
+
const X509 *issuer) {
|
|
429
432
|
int ret;
|
|
430
433
|
ret = X509_check_issued(issuer, x);
|
|
431
434
|
if (ret == X509_V_OK) {
|
|
@@ -437,23 +440,23 @@ int x509_check_issued_with_callback(X509_STORE_CTX *ctx, X509 *x,
|
|
|
437
440
|
}
|
|
438
441
|
|
|
439
442
|
ctx->error = ret;
|
|
440
|
-
ctx->current_cert = x;
|
|
443
|
+
ctx->current_cert = const_cast<X509 *>(x);
|
|
441
444
|
return call_verify_cb(0, ctx);
|
|
442
445
|
}
|
|
443
446
|
|
|
444
447
|
static X509 *get_trusted_issuer(X509_STORE_CTX *ctx, X509 *x) {
|
|
445
448
|
X509 *issuer;
|
|
446
|
-
if (ctx->trusted_stack !=
|
|
449
|
+
if (ctx->trusted_stack != nullptr) {
|
|
447
450
|
// Ignore the store and use the configured stack instead.
|
|
448
451
|
issuer = find_issuer(ctx, ctx->trusted_stack, x);
|
|
449
|
-
if (issuer !=
|
|
452
|
+
if (issuer != nullptr) {
|
|
450
453
|
X509_up_ref(issuer);
|
|
451
454
|
}
|
|
452
455
|
return issuer;
|
|
453
456
|
}
|
|
454
457
|
|
|
455
458
|
if (!X509_STORE_CTX_get1_issuer(&issuer, ctx, x)) {
|
|
456
|
-
return
|
|
459
|
+
return nullptr;
|
|
457
460
|
}
|
|
458
461
|
return issuer;
|
|
459
462
|
}
|
|
@@ -467,7 +470,7 @@ static int check_chain_extensions(X509_STORE_CTX *ctx) {
|
|
|
467
470
|
|
|
468
471
|
// Check all untrusted certificates
|
|
469
472
|
for (int i = 0; i < ctx->last_untrusted; i++) {
|
|
470
|
-
|
|
473
|
+
X509Impl *x = FromOpaque(sk_X509_value(ctx->chain, i));
|
|
471
474
|
if (!(ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL) &&
|
|
472
475
|
(x->ex_flags & EXFLAG_CRITICAL)) {
|
|
473
476
|
ctx->error = X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION;
|
|
@@ -532,7 +535,7 @@ static int reject_dns_name_in_common_name(X509 *x509) {
|
|
|
532
535
|
return X509_V_ERR_OUT_OF_MEM;
|
|
533
536
|
}
|
|
534
537
|
// Only process attributes that look like host names. Note it is
|
|
535
|
-
// important that this check be mirrored in
|
|
538
|
+
// important that this check be mirrored in `X509_check_host`.
|
|
536
539
|
int looks_like_dns = x509v3_looks_like_dns_name(idval, (size_t)idlen);
|
|
537
540
|
OPENSSL_free(idval);
|
|
538
541
|
if (looks_like_dns) {
|
|
@@ -546,7 +549,7 @@ static int check_name_constraints(X509_STORE_CTX *ctx) {
|
|
|
546
549
|
int has_name_constraints = 0;
|
|
547
550
|
// Check name constraints for all certificates
|
|
548
551
|
for (i = (int)sk_X509_num(ctx->chain) - 1; i >= 0; i--) {
|
|
549
|
-
|
|
552
|
+
X509Impl *x = FromOpaque(sk_X509_value(ctx->chain, i));
|
|
550
553
|
// Ignore self issued certs unless last in chain
|
|
551
554
|
if (i && (x->ex_flags & EXFLAG_SI)) {
|
|
552
555
|
continue;
|
|
@@ -556,7 +559,7 @@ static int check_name_constraints(X509_STORE_CTX *ctx) {
|
|
|
556
559
|
// but if it includes constraints it is to be assumed it expects them
|
|
557
560
|
// to be obeyed.
|
|
558
561
|
for (j = (int)sk_X509_num(ctx->chain) - 1; j > i; j--) {
|
|
559
|
-
NAME_CONSTRAINTS *nc = sk_X509_value(ctx->chain, j)->nc;
|
|
562
|
+
NAME_CONSTRAINTS *nc = FromOpaque(sk_X509_value(ctx->chain, j))->nc;
|
|
560
563
|
if (nc) {
|
|
561
564
|
has_name_constraints = 1;
|
|
562
565
|
rv = NAME_CONSTRAINTS_check(x, nc);
|
|
@@ -580,7 +583,7 @@ static int check_name_constraints(X509_STORE_CTX *ctx) {
|
|
|
580
583
|
}
|
|
581
584
|
|
|
582
585
|
// Name constraints do not match against the common name, but
|
|
583
|
-
//
|
|
586
|
+
// `X509_check_host` still implements the legacy behavior where, on
|
|
584
587
|
// certificates lacking a SAN list, DNS-like names in the common name are
|
|
585
588
|
// checked instead.
|
|
586
589
|
//
|
|
@@ -589,8 +592,8 @@ static int check_name_constraints(X509_STORE_CTX *ctx) {
|
|
|
589
592
|
// standard. Note this does not make "DNS-like" heuristic failures any
|
|
590
593
|
// worse. A decorative common-name misidentified as a DNS name would fail
|
|
591
594
|
// the name constraint anyway.
|
|
592
|
-
|
|
593
|
-
if (has_name_constraints && leaf->altname ==
|
|
595
|
+
X509Impl *leaf = FromOpaque(sk_X509_value(ctx->chain, 0));
|
|
596
|
+
if (has_name_constraints && leaf->altname == nullptr) {
|
|
594
597
|
rv = reject_dns_name_in_common_name(leaf);
|
|
595
598
|
switch (rv) {
|
|
596
599
|
case X509_V_OK:
|
|
@@ -600,7 +603,7 @@ static int check_name_constraints(X509_STORE_CTX *ctx) {
|
|
|
600
603
|
return 0;
|
|
601
604
|
default:
|
|
602
605
|
ctx->error = rv;
|
|
603
|
-
ctx->error_depth =
|
|
606
|
+
ctx->error_depth = 0;
|
|
604
607
|
ctx->current_cert = leaf;
|
|
605
608
|
if (!call_verify_cb(0, ctx)) {
|
|
606
609
|
return 0;
|
|
@@ -626,7 +629,7 @@ static int check_hosts(X509 *x, X509_VERIFY_PARAM *param) {
|
|
|
626
629
|
|
|
627
630
|
for (i = 0; i < n; ++i) {
|
|
628
631
|
name = sk_OPENSSL_STRING_value(param->hosts, i);
|
|
629
|
-
if (X509_check_host(x, name, strlen(name), param->hostflags,
|
|
632
|
+
if (X509_check_host(x, name, strlen(name), param->hostflags, nullptr) > 0) {
|
|
630
633
|
return 1;
|
|
631
634
|
}
|
|
632
635
|
}
|
|
@@ -660,7 +663,7 @@ static int check_id(X509_STORE_CTX *ctx) {
|
|
|
660
663
|
}
|
|
661
664
|
|
|
662
665
|
static int check_trust(X509_STORE_CTX *ctx) {
|
|
663
|
-
X509 *x =
|
|
666
|
+
X509 *x = nullptr;
|
|
664
667
|
// Check all trusted certificates in chain
|
|
665
668
|
for (size_t i = ctx->last_untrusted; i < sk_X509_num(ctx->chain); i++) {
|
|
666
669
|
x = sk_X509_value(ctx->chain, i);
|
|
@@ -722,15 +725,15 @@ static int check_revocation(X509_STORE_CTX *ctx) {
|
|
|
722
725
|
}
|
|
723
726
|
|
|
724
727
|
static int check_cert(X509_STORE_CTX *ctx) {
|
|
725
|
-
X509_CRL *crl =
|
|
728
|
+
X509_CRL *crl = nullptr;
|
|
726
729
|
int ok = 0, cnum = ctx->error_depth;
|
|
727
730
|
X509 *x = sk_X509_value(ctx->chain, cnum);
|
|
728
731
|
ctx->current_cert = x;
|
|
729
|
-
ctx->current_crl_issuer =
|
|
732
|
+
ctx->current_crl_issuer = nullptr;
|
|
730
733
|
ctx->current_crl_score = 0;
|
|
731
734
|
|
|
732
|
-
// Try to retrieve the relevant CRL. Note that
|
|
733
|
-
//
|
|
735
|
+
// Try to retrieve the relevant CRL. Note that `get_crl` sets
|
|
736
|
+
// `current_crl_issuer` and `current_crl_score`, which `check_crl` then reads.
|
|
734
737
|
//
|
|
735
738
|
// TODO(davidben): The awkward internal calling convention is a historical
|
|
736
739
|
// artifact of when these functions were user-overridable callbacks, even
|
|
@@ -752,7 +755,7 @@ static int check_cert(X509_STORE_CTX *ctx) {
|
|
|
752
755
|
|
|
753
756
|
err:
|
|
754
757
|
X509_CRL_free(crl);
|
|
755
|
-
ctx->current_crl =
|
|
758
|
+
ctx->current_crl = nullptr;
|
|
756
759
|
return ok;
|
|
757
760
|
}
|
|
758
761
|
|
|
@@ -769,7 +772,7 @@ static int check_crl_time(X509_STORE_CTX *ctx, X509_CRL *crl, int notify) {
|
|
|
769
772
|
if (ctx->param->flags & X509_V_FLAG_USE_CHECK_TIME) {
|
|
770
773
|
ptime = ctx->param->check_time;
|
|
771
774
|
} else {
|
|
772
|
-
ptime = time(
|
|
775
|
+
ptime = time(nullptr);
|
|
773
776
|
}
|
|
774
777
|
|
|
775
778
|
int i = X509_cmp_time_posix(X509_CRL_get0_lastUpdate(crl), ptime);
|
|
@@ -817,7 +820,7 @@ static int check_crl_time(X509_STORE_CTX *ctx, X509_CRL *crl, int notify) {
|
|
|
817
820
|
}
|
|
818
821
|
|
|
819
822
|
if (notify) {
|
|
820
|
-
ctx->current_crl =
|
|
823
|
+
ctx->current_crl = nullptr;
|
|
821
824
|
}
|
|
822
825
|
|
|
823
826
|
return 1;
|
|
@@ -827,8 +830,8 @@ static int get_crl_sk(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509 **pissuer,
|
|
|
827
830
|
int *pscore, STACK_OF(X509_CRL) *crls) {
|
|
828
831
|
int crl_score, best_score = *pscore;
|
|
829
832
|
X509 *x = ctx->current_cert;
|
|
830
|
-
X509_CRL *best_crl =
|
|
831
|
-
X509 *crl_issuer =
|
|
833
|
+
X509_CRL *best_crl = nullptr;
|
|
834
|
+
X509 *crl_issuer = nullptr, *best_crl_issuer = nullptr;
|
|
832
835
|
|
|
833
836
|
for (size_t i = 0; i < sk_X509_CRL_num(crls); i++) {
|
|
834
837
|
X509_CRL *crl = sk_X509_CRL_value(crls, i);
|
|
@@ -837,14 +840,14 @@ static int get_crl_sk(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509 **pissuer,
|
|
|
837
840
|
continue;
|
|
838
841
|
}
|
|
839
842
|
// If current CRL is equivalent use it if it is newer
|
|
840
|
-
if (crl_score == best_score && best_crl !=
|
|
843
|
+
if (crl_score == best_score && best_crl != nullptr) {
|
|
841
844
|
int day, sec;
|
|
842
845
|
if (ASN1_TIME_diff(&day, &sec, X509_CRL_get0_lastUpdate(best_crl),
|
|
843
846
|
X509_CRL_get0_lastUpdate(crl)) == 0) {
|
|
844
847
|
continue;
|
|
845
848
|
}
|
|
846
|
-
// ASN1_TIME_diff never returns inconsistent signs for
|
|
847
|
-
// and
|
|
849
|
+
// ASN1_TIME_diff never returns inconsistent signs for `day`
|
|
850
|
+
// and `sec`.
|
|
848
851
|
if (day <= 0 && sec <= 0) {
|
|
849
852
|
continue;
|
|
850
853
|
}
|
|
@@ -919,7 +922,7 @@ static int get_crl_score(X509_STORE_CTX *ctx, X509 **pissuer, X509_CRL *crl,
|
|
|
919
922
|
|
|
920
923
|
static int crl_akid_check(X509_STORE_CTX *ctx, X509_CRL *crl, X509 **pissuer,
|
|
921
924
|
int *pcrl_score) {
|
|
922
|
-
X509 *crl_issuer =
|
|
925
|
+
X509 *crl_issuer = nullptr;
|
|
923
926
|
X509_NAME *cnm = X509_CRL_get_issuer(crl);
|
|
924
927
|
int cidx = ctx->error_depth;
|
|
925
928
|
|
|
@@ -955,8 +958,8 @@ static int crl_akid_check(X509_STORE_CTX *ctx, X509_CRL *crl, X509 **pissuer,
|
|
|
955
958
|
// relative. Compare X509_NAME to GENERAL_NAMES. 3. Both are full names and
|
|
956
959
|
// compare two GENERAL_NAMES. 4. One is NULL: automatic match.
|
|
957
960
|
static int idp_check_dp(DIST_POINT_NAME *a, DIST_POINT_NAME *b) {
|
|
958
|
-
X509_NAME *nm =
|
|
959
|
-
GENERAL_NAMES *gens =
|
|
961
|
+
X509_NAME *nm = nullptr;
|
|
962
|
+
GENERAL_NAMES *gens = nullptr;
|
|
960
963
|
GENERAL_NAME *gena, *genb;
|
|
961
964
|
size_t i, j;
|
|
962
965
|
if (!a || !b) {
|
|
@@ -1020,12 +1023,13 @@ static int idp_check_dp(DIST_POINT_NAME *a, DIST_POINT_NAME *b) {
|
|
|
1020
1023
|
|
|
1021
1024
|
// Check CRLDP and IDP
|
|
1022
1025
|
static int crl_crldp_check(X509 *x, X509_CRL *crl, int crl_score) {
|
|
1026
|
+
auto *impl = FromOpaque(x);
|
|
1023
1027
|
// TODO(bbe): crbug.com/409778435 Make tests for the corner cases we hit
|
|
1024
1028
|
// here so that we stay correct for RFC 5280 6.3.3 steps b.1 and b.2
|
|
1025
1029
|
if (crl->idp_flags & IDP_ONLYATTR) {
|
|
1026
1030
|
return 0;
|
|
1027
1031
|
}
|
|
1028
|
-
if (
|
|
1032
|
+
if (impl->ex_flags & EXFLAG_CA) {
|
|
1029
1033
|
if (crl->idp_flags & IDP_ONLYUSER) {
|
|
1030
1034
|
return 0;
|
|
1031
1035
|
}
|
|
@@ -1034,8 +1038,8 @@ static int crl_crldp_check(X509 *x, X509_CRL *crl, int crl_score) {
|
|
|
1034
1038
|
return 0;
|
|
1035
1039
|
}
|
|
1036
1040
|
}
|
|
1037
|
-
for (size_t i = 0; i < sk_DIST_POINT_num(
|
|
1038
|
-
DIST_POINT *dp = sk_DIST_POINT_value(
|
|
1041
|
+
for (size_t i = 0; i < sk_DIST_POINT_num(impl->crldp); i++) {
|
|
1042
|
+
DIST_POINT *dp = sk_DIST_POINT_value(impl->crldp, i);
|
|
1039
1043
|
// Skip distribution points with a reasons field or a CRL issuer:
|
|
1040
1044
|
//
|
|
1041
1045
|
// We do not support CRLs partitioned by reason code. RFC 5280 requires CAs
|
|
@@ -1043,7 +1047,7 @@ static int crl_crldp_check(X509 *x, X509_CRL *crl, int crl_score) {
|
|
|
1043
1047
|
//
|
|
1044
1048
|
// We also do not support indirect CRLs, and a CRL issuer can only match
|
|
1045
1049
|
// indirect CRLs (RFC 5280, section 6.3.3, step b.1).
|
|
1046
|
-
if (dp->reasons !=
|
|
1050
|
+
if (dp->reasons != nullptr || dp->CRLissuer != nullptr) {
|
|
1047
1051
|
continue;
|
|
1048
1052
|
}
|
|
1049
1053
|
// At this point we have already checked that the CRL issuer matches
|
|
@@ -1065,10 +1069,10 @@ static int crl_crldp_check(X509 *x, X509_CRL *crl, int crl_score) {
|
|
|
1065
1069
|
|
|
1066
1070
|
// Retrieve CRL corresponding to current certificate.
|
|
1067
1071
|
static int get_crl(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509 *x) {
|
|
1068
|
-
X509 *issuer =
|
|
1072
|
+
X509 *issuer = nullptr;
|
|
1069
1073
|
int crl_score = 0;
|
|
1070
|
-
X509_CRL *crl =
|
|
1071
|
-
STACK_OF(X509_CRL) *skcrl =
|
|
1074
|
+
X509_CRL *crl = nullptr;
|
|
1075
|
+
STACK_OF(X509_CRL) *skcrl = nullptr;
|
|
1072
1076
|
if (get_crl_sk(ctx, &crl, &issuer, &crl_score, ctx->crls)) {
|
|
1073
1077
|
goto done;
|
|
1074
1078
|
}
|
|
@@ -1099,17 +1103,17 @@ done:
|
|
|
1099
1103
|
|
|
1100
1104
|
// Check CRL validity
|
|
1101
1105
|
static int check_crl(X509_STORE_CTX *ctx, X509_CRL *crl) {
|
|
1102
|
-
|
|
1106
|
+
X509Impl *issuer = nullptr;
|
|
1103
1107
|
int cnum = ctx->error_depth;
|
|
1104
1108
|
int chnum = (int)sk_X509_num(ctx->chain) - 1;
|
|
1105
1109
|
// If we have an alternative CRL issuer cert use that. Otherwise, it is the
|
|
1106
1110
|
// issuer of the current certificate.
|
|
1107
1111
|
if (ctx->current_crl_issuer) {
|
|
1108
|
-
issuer = ctx->current_crl_issuer;
|
|
1112
|
+
issuer = FromOpaque(ctx->current_crl_issuer);
|
|
1109
1113
|
} else if (cnum < chnum) {
|
|
1110
|
-
issuer = sk_X509_value(ctx->chain, cnum + 1);
|
|
1114
|
+
issuer = FromOpaque(sk_X509_value(ctx->chain, cnum + 1));
|
|
1111
1115
|
} else {
|
|
1112
|
-
issuer = sk_X509_value(ctx->chain, chnum);
|
|
1116
|
+
issuer = FromOpaque(sk_X509_value(ctx->chain, chnum));
|
|
1113
1117
|
// If not self signed, can't check signature
|
|
1114
1118
|
if (!x509_check_issued_with_callback(ctx, issuer, issuer)) {
|
|
1115
1119
|
ctx->error = X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER;
|
|
@@ -1196,7 +1200,7 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x) {
|
|
|
1196
1200
|
}
|
|
1197
1201
|
|
|
1198
1202
|
static int check_policy(X509_STORE_CTX *ctx) {
|
|
1199
|
-
X509 *current_cert =
|
|
1203
|
+
X509 *current_cert = nullptr;
|
|
1200
1204
|
int ret = X509_policy_check(ctx->chain, ctx->param->policies,
|
|
1201
1205
|
ctx->param->flags, ¤t_cert);
|
|
1202
1206
|
if (ret != X509_V_OK) {
|
|
@@ -1220,7 +1224,7 @@ static int check_cert_time(X509_STORE_CTX *ctx, X509 *x) {
|
|
|
1220
1224
|
if (ctx->param->flags & X509_V_FLAG_USE_CHECK_TIME) {
|
|
1221
1225
|
ptime = ctx->param->check_time;
|
|
1222
1226
|
} else {
|
|
1223
|
-
ptime = time(
|
|
1227
|
+
ptime = time(nullptr);
|
|
1224
1228
|
}
|
|
1225
1229
|
|
|
1226
1230
|
int i = X509_cmp_time_posix(X509_get_notBefore(x), ptime);
|
|
@@ -1266,7 +1270,7 @@ static int internal_verify(X509_STORE_CTX *ctx) {
|
|
|
1266
1270
|
// First, don't allow the verify callback to suppress
|
|
1267
1271
|
// X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY, which will simplify the
|
|
1268
1272
|
// signature check. Then replace jumping into the middle of the loop. It's
|
|
1269
|
-
// trying to ensure that all certificates see
|
|
1273
|
+
// trying to ensure that all certificates see `check_cert_time`, then checking
|
|
1270
1274
|
// the root's self signature when requested, but not breaking partial chains
|
|
1271
1275
|
// in the process.
|
|
1272
1276
|
int n = (int)sk_X509_num(ctx->chain);
|
|
@@ -1300,7 +1304,7 @@ static int internal_verify(X509_STORE_CTX *ctx) {
|
|
|
1300
1304
|
// time.
|
|
1301
1305
|
if (xs != xi || (ctx->param->flags & X509_V_FLAG_CHECK_SS_SIGNATURE)) {
|
|
1302
1306
|
EVP_PKEY *pkey = X509_get0_pubkey(xi);
|
|
1303
|
-
if (pkey ==
|
|
1307
|
+
if (pkey == nullptr) {
|
|
1304
1308
|
ctx->error = X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY;
|
|
1305
1309
|
ctx->current_cert = xi;
|
|
1306
1310
|
if (!call_verify_cb(0, ctx)) {
|
|
@@ -1337,11 +1341,11 @@ static int internal_verify(X509_STORE_CTX *ctx) {
|
|
|
1337
1341
|
}
|
|
1338
1342
|
|
|
1339
1343
|
int X509_cmp_current_time(const ASN1_TIME *ctm) {
|
|
1340
|
-
return X509_cmp_time_posix(ctm, time(
|
|
1344
|
+
return X509_cmp_time_posix(ctm, time(nullptr));
|
|
1341
1345
|
}
|
|
1342
1346
|
|
|
1343
1347
|
int X509_cmp_time(const ASN1_TIME *ctm, const time_t *cmp_time) {
|
|
1344
|
-
int64_t compare_time = (cmp_time ==
|
|
1348
|
+
int64_t compare_time = (cmp_time == nullptr) ? time(nullptr) : *cmp_time;
|
|
1345
1349
|
return X509_cmp_time_posix(ctm, compare_time);
|
|
1346
1350
|
}
|
|
1347
1351
|
|
|
@@ -1355,7 +1359,7 @@ int X509_cmp_time_posix(const ASN1_TIME *ctm, int64_t cmp_time) {
|
|
|
1355
1359
|
}
|
|
1356
1360
|
|
|
1357
1361
|
ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long offset_sec) {
|
|
1358
|
-
return X509_time_adj(s, offset_sec,
|
|
1362
|
+
return X509_time_adj(s, offset_sec, nullptr);
|
|
1359
1363
|
}
|
|
1360
1364
|
|
|
1361
1365
|
ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec, const time_t *in_tm) {
|
|
@@ -1369,7 +1373,7 @@ ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, int offset_day, long offset_sec,
|
|
|
1369
1373
|
if (in_tm) {
|
|
1370
1374
|
t = *in_tm;
|
|
1371
1375
|
} else {
|
|
1372
|
-
t = time(
|
|
1376
|
+
t = time(nullptr);
|
|
1373
1377
|
}
|
|
1374
1378
|
|
|
1375
1379
|
return ASN1_TIME_adj(s, t, offset_day, offset_sec);
|
|
@@ -1414,7 +1418,7 @@ STACK_OF(X509) *X509_STORE_CTX_get0_chain(const X509_STORE_CTX *ctx) {
|
|
|
1414
1418
|
|
|
1415
1419
|
STACK_OF(X509) *X509_STORE_CTX_get1_chain(const X509_STORE_CTX *ctx) {
|
|
1416
1420
|
if (!ctx->chain) {
|
|
1417
|
-
return
|
|
1421
|
+
return nullptr;
|
|
1418
1422
|
}
|
|
1419
1423
|
return X509_chain_up_ref(ctx->chain);
|
|
1420
1424
|
}
|
|
@@ -1424,10 +1428,10 @@ X509_CRL *X509_STORE_CTX_get0_current_crl(const X509_STORE_CTX *ctx) {
|
|
|
1424
1428
|
}
|
|
1425
1429
|
|
|
1426
1430
|
X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(const X509_STORE_CTX *ctx) {
|
|
1427
|
-
// In OpenSSL, an
|
|
1431
|
+
// In OpenSSL, an `X509_STORE_CTX` sometimes has a parent context during CRL
|
|
1428
1432
|
// path validation for indirect CRLs. We require the CRL to be issued
|
|
1429
1433
|
// somewhere along the certificate path, so this is always NULL.
|
|
1430
|
-
return
|
|
1434
|
+
return nullptr;
|
|
1431
1435
|
}
|
|
1432
1436
|
|
|
1433
1437
|
void X509_STORE_CTX_set_chain(X509_STORE_CTX *ctx, STACK_OF(X509) *sk) {
|
|
@@ -1443,13 +1447,13 @@ void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk) {
|
|
|
1443
1447
|
}
|
|
1444
1448
|
|
|
1445
1449
|
int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose) {
|
|
1446
|
-
// If
|
|
1450
|
+
// If `purpose` is zero, this function historically silently did nothing.
|
|
1447
1451
|
if (purpose == 0) {
|
|
1448
1452
|
return 1;
|
|
1449
1453
|
}
|
|
1450
1454
|
|
|
1451
1455
|
const X509_PURPOSE *pobj = X509_PURPOSE_get0(purpose);
|
|
1452
|
-
if (pobj ==
|
|
1456
|
+
if (pobj == nullptr) {
|
|
1453
1457
|
OPENSSL_PUT_ERROR(X509, X509_R_UNKNOWN_PURPOSE_ID);
|
|
1454
1458
|
return 0;
|
|
1455
1459
|
}
|
|
@@ -1466,7 +1470,7 @@ int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose) {
|
|
|
1466
1470
|
}
|
|
1467
1471
|
|
|
1468
1472
|
int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust) {
|
|
1469
|
-
// If
|
|
1473
|
+
// If `trust` is zero, this function historically silently did nothing.
|
|
1470
1474
|
if (trust == 0) {
|
|
1471
1475
|
return 1;
|
|
1472
1476
|
}
|
|
@@ -1482,17 +1486,14 @@ int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust) {
|
|
|
1482
1486
|
return 1;
|
|
1483
1487
|
}
|
|
1484
1488
|
|
|
1485
|
-
X509_STORE_CTX *X509_STORE_CTX_new(
|
|
1486
|
-
return reinterpret_cast<X509_STORE_CTX *>(
|
|
1487
|
-
OPENSSL_zalloc(sizeof(X509_STORE_CTX)));
|
|
1488
|
-
}
|
|
1489
|
+
X509_STORE_CTX *X509_STORE_CTX_new() { return New<X509_STORE_CTX>(); }
|
|
1489
1490
|
|
|
1490
1491
|
void X509_STORE_CTX_free(X509_STORE_CTX *ctx) {
|
|
1491
|
-
if (ctx ==
|
|
1492
|
+
if (ctx == nullptr) {
|
|
1492
1493
|
return;
|
|
1493
1494
|
}
|
|
1494
1495
|
X509_STORE_CTX_cleanup(ctx);
|
|
1495
|
-
|
|
1496
|
+
Delete(ctx);
|
|
1496
1497
|
}
|
|
1497
1498
|
|
|
1498
1499
|
int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
|
|
@@ -1505,7 +1506,7 @@ int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
|
|
|
1505
1506
|
|
|
1506
1507
|
CRYPTO_new_ex_data(&ctx->ex_data);
|
|
1507
1508
|
|
|
1508
|
-
if (store ==
|
|
1509
|
+
if (store == nullptr) {
|
|
1509
1510
|
OPENSSL_PUT_ERROR(X509, ERR_R_PASSED_NULL_PARAMETER);
|
|
1510
1511
|
goto err;
|
|
1511
1512
|
}
|
|
@@ -1515,31 +1516,29 @@ int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509,
|
|
|
1515
1516
|
goto err;
|
|
1516
1517
|
}
|
|
1517
1518
|
|
|
1518
|
-
|
|
1519
|
+
{
|
|
1520
|
+
// Inherit callbacks and flags from X509_STORE.
|
|
1519
1521
|
|
|
1520
|
-
|
|
1522
|
+
auto *store_impl = FromOpaque(store);
|
|
1523
|
+
ctx->verify_cb = store_impl->verify_cb;
|
|
1521
1524
|
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1525
|
+
if (!X509_VERIFY_PARAM_inherit(ctx->param, store_impl->param.get()) ||
|
|
1526
|
+
!X509_VERIFY_PARAM_inherit(ctx->param,
|
|
1527
|
+
X509_VERIFY_PARAM_lookup("default"))) {
|
|
1528
|
+
goto err;
|
|
1529
|
+
}
|
|
1527
1530
|
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1531
|
+
if (store_impl->verify_cb) {
|
|
1532
|
+
ctx->verify_cb = store_impl->verify_cb;
|
|
1533
|
+
} else {
|
|
1534
|
+
ctx->verify_cb = null_callback;
|
|
1535
|
+
}
|
|
1532
1536
|
}
|
|
1533
1537
|
|
|
1534
1538
|
return 1;
|
|
1535
1539
|
|
|
1536
1540
|
err:
|
|
1537
|
-
|
|
1538
|
-
if (ctx->param != NULL) {
|
|
1539
|
-
X509_VERIFY_PARAM_free(ctx->param);
|
|
1540
|
-
}
|
|
1541
|
-
|
|
1542
|
-
OPENSSL_memset(ctx, 0, sizeof(X509_STORE_CTX));
|
|
1541
|
+
X509_STORE_CTX_cleanup(ctx);
|
|
1543
1542
|
return 0;
|
|
1544
1543
|
}
|
|
1545
1544
|
|
|
@@ -1556,7 +1555,7 @@ void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk) {
|
|
|
1556
1555
|
}
|
|
1557
1556
|
|
|
1558
1557
|
void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx) {
|
|
1559
|
-
CRYPTO_free_ex_data(&g_ex_data_class,
|
|
1558
|
+
CRYPTO_free_ex_data(&g_ex_data_class, &ctx->ex_data);
|
|
1560
1559
|
X509_VERIFY_PARAM_free(ctx->param);
|
|
1561
1560
|
sk_X509_pop_free(ctx->chain, X509_free);
|
|
1562
1561
|
OPENSSL_memset(ctx, 0, sizeof(X509_STORE_CTX));
|