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
|
@@ -18,12 +18,15 @@
|
|
|
18
18
|
#include <stdio.h>
|
|
19
19
|
#include <string.h>
|
|
20
20
|
|
|
21
|
+
#include <utility>
|
|
22
|
+
|
|
21
23
|
#include <openssl/bn.h>
|
|
22
24
|
#include <openssl/bytestring.h>
|
|
23
25
|
#include <openssl/conf.h>
|
|
24
26
|
#include <openssl/err.h>
|
|
25
27
|
#include <openssl/mem.h>
|
|
26
28
|
#include <openssl/obj.h>
|
|
29
|
+
#include <openssl/stack.h>
|
|
27
30
|
#include <openssl/x509.h>
|
|
28
31
|
|
|
29
32
|
#include "../conf/internal.h"
|
|
@@ -31,12 +34,14 @@
|
|
|
31
34
|
#include "internal.h"
|
|
32
35
|
|
|
33
36
|
|
|
37
|
+
using namespace bssl;
|
|
38
|
+
|
|
34
39
|
static char *strip_spaces(char *name);
|
|
35
40
|
static int sk_strcmp(const char *const *a, const char *const *b);
|
|
36
|
-
static STACK_OF(OPENSSL_STRING)
|
|
37
|
-
|
|
41
|
+
static UniquePtr<STACK_OF(OPENSSL_STRING)> get_email(const X509_NAME *name,
|
|
42
|
+
const GENERAL_NAMES *gens);
|
|
38
43
|
static void str_free(OPENSSL_STRING str);
|
|
39
|
-
static int append_ia5(STACK_OF(OPENSSL_STRING)
|
|
44
|
+
static int append_ia5(UniquePtr<STACK_OF(OPENSSL_STRING)> *sk,
|
|
40
45
|
const ASN1_IA5STRING *email);
|
|
41
46
|
|
|
42
47
|
static int ipv4_from_asc(uint8_t v4[4], const char *in);
|
|
@@ -49,20 +54,20 @@ static int ipv6_hex(uint8_t *out, const char *in, size_t inlen);
|
|
|
49
54
|
static int x509V3_add_len_value(const char *name, const char *value,
|
|
50
55
|
size_t value_len, int omit_value,
|
|
51
56
|
STACK_OF(CONF_VALUE) **extlist) {
|
|
52
|
-
CONF_VALUE *vtmp =
|
|
53
|
-
char *tname =
|
|
54
|
-
int extlist_was_null = *extlist ==
|
|
57
|
+
CONF_VALUE *vtmp = nullptr;
|
|
58
|
+
char *tname = nullptr, *tvalue = nullptr;
|
|
59
|
+
int extlist_was_null = *extlist == nullptr;
|
|
55
60
|
if (name && !(tname = OPENSSL_strdup(name))) {
|
|
56
61
|
goto err;
|
|
57
62
|
}
|
|
58
63
|
if (!omit_value) {
|
|
59
|
-
//
|
|
64
|
+
// `CONF_VALUE` cannot represent strings with NULs.
|
|
60
65
|
if (OPENSSL_memchr(value, 0, value_len)) {
|
|
61
66
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_VALUE);
|
|
62
67
|
goto err;
|
|
63
68
|
}
|
|
64
69
|
tvalue = OPENSSL_strndup(value, value_len);
|
|
65
|
-
if (tvalue ==
|
|
70
|
+
if (tvalue == nullptr) {
|
|
66
71
|
goto err;
|
|
67
72
|
}
|
|
68
73
|
}
|
|
@@ -72,7 +77,7 @@ static int x509V3_add_len_value(const char *name, const char *value,
|
|
|
72
77
|
if (!*extlist && !(*extlist = sk_CONF_VALUE_new_null())) {
|
|
73
78
|
goto err;
|
|
74
79
|
}
|
|
75
|
-
vtmp->section =
|
|
80
|
+
vtmp->section = nullptr;
|
|
76
81
|
vtmp->name = tname;
|
|
77
82
|
vtmp->value = tvalue;
|
|
78
83
|
if (!sk_CONF_VALUE_push(*extlist, vtmp)) {
|
|
@@ -82,7 +87,7 @@ static int x509V3_add_len_value(const char *name, const char *value,
|
|
|
82
87
|
err:
|
|
83
88
|
if (extlist_was_null) {
|
|
84
89
|
sk_CONF_VALUE_free(*extlist);
|
|
85
|
-
*extlist =
|
|
90
|
+
*extlist = nullptr;
|
|
86
91
|
}
|
|
87
92
|
OPENSSL_free(vtmp);
|
|
88
93
|
OPENSSL_free(tname);
|
|
@@ -90,14 +95,15 @@ err:
|
|
|
90
95
|
return 0;
|
|
91
96
|
}
|
|
92
97
|
|
|
93
|
-
int X509V3_add_value(const char *name, const char *value,
|
|
94
|
-
|
|
95
|
-
return x509V3_add_len_value(name, value, value !=
|
|
96
|
-
/*omit_value=*/value ==
|
|
98
|
+
int bssl::X509V3_add_value(const char *name, const char *value,
|
|
99
|
+
STACK_OF(CONF_VALUE) **extlist) {
|
|
100
|
+
return x509V3_add_len_value(name, value, value != nullptr ? strlen(value) : 0,
|
|
101
|
+
/*omit_value=*/value == nullptr, extlist);
|
|
97
102
|
}
|
|
98
103
|
|
|
99
|
-
int x509V3_add_value_asn1_string(const char *name,
|
|
100
|
-
|
|
104
|
+
int bssl::x509V3_add_value_asn1_string(const char *name,
|
|
105
|
+
const ASN1_STRING *value,
|
|
106
|
+
STACK_OF(CONF_VALUE) **extlist) {
|
|
101
107
|
return x509V3_add_len_value(name, (const char *)value->data, value->length,
|
|
102
108
|
/*omit_value=*/0, extlist);
|
|
103
109
|
}
|
|
@@ -114,8 +120,8 @@ void X509V3_conf_free(CONF_VALUE *conf) {
|
|
|
114
120
|
OPENSSL_free(conf);
|
|
115
121
|
}
|
|
116
122
|
|
|
117
|
-
int X509V3_add_value_bool(const char *name, int asn1_bool,
|
|
118
|
-
|
|
123
|
+
int bssl::X509V3_add_value_bool(const char *name, int asn1_bool,
|
|
124
|
+
STACK_OF(CONF_VALUE) **extlist) {
|
|
119
125
|
if (asn1_bool) {
|
|
120
126
|
return X509V3_add_value(name, "TRUE", extlist);
|
|
121
127
|
}
|
|
@@ -133,8 +139,8 @@ static char *bignum_to_string(const BIGNUM *bn) {
|
|
|
133
139
|
}
|
|
134
140
|
|
|
135
141
|
tmp = BN_bn2hex(bn);
|
|
136
|
-
if (tmp ==
|
|
137
|
-
return
|
|
142
|
+
if (tmp == nullptr) {
|
|
143
|
+
return nullptr;
|
|
138
144
|
}
|
|
139
145
|
|
|
140
146
|
// Prepend "0x", but place it after the "-" if negative.
|
|
@@ -148,12 +154,12 @@ static char *bignum_to_string(const BIGNUM *bn) {
|
|
|
148
154
|
|
|
149
155
|
char *i2s_ASN1_ENUMERATED(const X509V3_EXT_METHOD *method,
|
|
150
156
|
const ASN1_ENUMERATED *a) {
|
|
151
|
-
BIGNUM *bntmp =
|
|
152
|
-
char *strtmp =
|
|
157
|
+
BIGNUM *bntmp = nullptr;
|
|
158
|
+
char *strtmp = nullptr;
|
|
153
159
|
if (!a) {
|
|
154
|
-
return
|
|
160
|
+
return nullptr;
|
|
155
161
|
}
|
|
156
|
-
if (!(bntmp = ASN1_ENUMERATED_to_BN(a,
|
|
162
|
+
if (!(bntmp = ASN1_ENUMERATED_to_BN(a, nullptr)) ||
|
|
157
163
|
!(strtmp = bignum_to_string(bntmp))) {
|
|
158
164
|
}
|
|
159
165
|
BN_free(bntmp);
|
|
@@ -161,12 +167,12 @@ char *i2s_ASN1_ENUMERATED(const X509V3_EXT_METHOD *method,
|
|
|
161
167
|
}
|
|
162
168
|
|
|
163
169
|
char *i2s_ASN1_INTEGER(const X509V3_EXT_METHOD *method, const ASN1_INTEGER *a) {
|
|
164
|
-
BIGNUM *bntmp =
|
|
165
|
-
char *strtmp =
|
|
170
|
+
BIGNUM *bntmp = nullptr;
|
|
171
|
+
char *strtmp = nullptr;
|
|
166
172
|
if (!a) {
|
|
167
|
-
return
|
|
173
|
+
return nullptr;
|
|
168
174
|
}
|
|
169
|
-
if (!(bntmp = ASN1_INTEGER_to_BN(a,
|
|
175
|
+
if (!(bntmp = ASN1_INTEGER_to_BN(a, nullptr)) ||
|
|
170
176
|
!(strtmp = bignum_to_string(bntmp))) {
|
|
171
177
|
}
|
|
172
178
|
BN_free(bntmp);
|
|
@@ -175,13 +181,13 @@ char *i2s_ASN1_INTEGER(const X509V3_EXT_METHOD *method, const ASN1_INTEGER *a) {
|
|
|
175
181
|
|
|
176
182
|
ASN1_INTEGER *s2i_ASN1_INTEGER(const X509V3_EXT_METHOD *method,
|
|
177
183
|
const char *value) {
|
|
178
|
-
BIGNUM *bn =
|
|
184
|
+
BIGNUM *bn = nullptr;
|
|
179
185
|
ASN1_INTEGER *aint;
|
|
180
186
|
int isneg, ishex;
|
|
181
187
|
int ret;
|
|
182
188
|
if (!value) {
|
|
183
189
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_NULL_VALUE);
|
|
184
|
-
return
|
|
190
|
+
return nullptr;
|
|
185
191
|
}
|
|
186
192
|
bn = BN_new();
|
|
187
193
|
if (value[0] == '-') {
|
|
@@ -203,13 +209,13 @@ ASN1_INTEGER *s2i_ASN1_INTEGER(const X509V3_EXT_METHOD *method,
|
|
|
203
209
|
} else {
|
|
204
210
|
// Decoding from decimal scales quadratically in the input length. Bound the
|
|
205
211
|
// largest decimal input we accept in the config parser. 8,192 decimal
|
|
206
|
-
// digits allows values up to 27,213 bits.
|
|
207
|
-
// or DH modulus we support, and those are not usefully represented in
|
|
212
|
+
// digits allows values up to 27,213 bits. This exceeds the largest RSA,
|
|
213
|
+
// DSA, or DH modulus we support, and those are not usefully represented in
|
|
208
214
|
// decimal.
|
|
209
215
|
if (strlen(value) > 8192) {
|
|
210
216
|
BN_free(bn);
|
|
211
217
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_NUMBER);
|
|
212
|
-
return
|
|
218
|
+
return nullptr;
|
|
213
219
|
}
|
|
214
220
|
ret = BN_dec2bn(&bn, value);
|
|
215
221
|
}
|
|
@@ -217,18 +223,18 @@ ASN1_INTEGER *s2i_ASN1_INTEGER(const X509V3_EXT_METHOD *method,
|
|
|
217
223
|
if (!ret || value[ret]) {
|
|
218
224
|
BN_free(bn);
|
|
219
225
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_BN_DEC2BN_ERROR);
|
|
220
|
-
return
|
|
226
|
+
return nullptr;
|
|
221
227
|
}
|
|
222
228
|
|
|
223
229
|
if (isneg && BN_is_zero(bn)) {
|
|
224
230
|
isneg = 0;
|
|
225
231
|
}
|
|
226
232
|
|
|
227
|
-
aint = BN_to_ASN1_INTEGER(bn,
|
|
233
|
+
aint = BN_to_ASN1_INTEGER(bn, nullptr);
|
|
228
234
|
BN_free(bn);
|
|
229
235
|
if (!aint) {
|
|
230
236
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR);
|
|
231
|
-
return
|
|
237
|
+
return nullptr;
|
|
232
238
|
}
|
|
233
239
|
if (isneg) {
|
|
234
240
|
aint->type |= V_ASN1_NEG;
|
|
@@ -236,14 +242,14 @@ ASN1_INTEGER *s2i_ASN1_INTEGER(const X509V3_EXT_METHOD *method,
|
|
|
236
242
|
return aint;
|
|
237
243
|
}
|
|
238
244
|
|
|
239
|
-
int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,
|
|
240
|
-
|
|
245
|
+
int bssl::X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,
|
|
246
|
+
STACK_OF(CONF_VALUE) **extlist) {
|
|
241
247
|
char *strtmp;
|
|
242
248
|
int ret;
|
|
243
249
|
if (!aint) {
|
|
244
250
|
return 1;
|
|
245
251
|
}
|
|
246
|
-
if (!(strtmp = i2s_ASN1_INTEGER(
|
|
252
|
+
if (!(strtmp = i2s_ASN1_INTEGER(nullptr, aint))) {
|
|
247
253
|
return 0;
|
|
248
254
|
}
|
|
249
255
|
ret = X509V3_add_value(name, strtmp, extlist);
|
|
@@ -251,7 +257,7 @@ int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint,
|
|
|
251
257
|
return ret;
|
|
252
258
|
}
|
|
253
259
|
|
|
254
|
-
int X509V3_bool_from_string(const char *str, ASN1_BOOLEAN *out_bool) {
|
|
260
|
+
int bssl::X509V3_bool_from_string(const char *str, ASN1_BOOLEAN *out_bool) {
|
|
255
261
|
if (!strcmp(str, "TRUE") || !strcmp(str, "true") || !strcmp(str, "Y") ||
|
|
256
262
|
!strcmp(str, "y") || !strcmp(str, "YES") || !strcmp(str, "yes")) {
|
|
257
263
|
*out_bool = ASN1_BOOLEAN_TRUE;
|
|
@@ -266,9 +272,10 @@ int X509V3_bool_from_string(const char *str, ASN1_BOOLEAN *out_bool) {
|
|
|
266
272
|
return 0;
|
|
267
273
|
}
|
|
268
274
|
|
|
269
|
-
int X509V3_get_value_bool(const CONF_VALUE *value,
|
|
275
|
+
int bssl::X509V3_get_value_bool(const CONF_VALUE *value,
|
|
276
|
+
ASN1_BOOLEAN *out_bool) {
|
|
270
277
|
const char *btmp = value->value;
|
|
271
|
-
if (btmp ==
|
|
278
|
+
if (btmp == nullptr) {
|
|
272
279
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_BOOLEAN_STRING);
|
|
273
280
|
goto err;
|
|
274
281
|
}
|
|
@@ -282,9 +289,9 @@ err:
|
|
|
282
289
|
return 0;
|
|
283
290
|
}
|
|
284
291
|
|
|
285
|
-
int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint) {
|
|
292
|
+
int bssl::X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint) {
|
|
286
293
|
ASN1_INTEGER *itmp;
|
|
287
|
-
if (!(itmp = s2i_ASN1_INTEGER(
|
|
294
|
+
if (!(itmp = s2i_ASN1_INTEGER(nullptr, value->value))) {
|
|
288
295
|
X509V3_conf_err(value);
|
|
289
296
|
return 0;
|
|
290
297
|
}
|
|
@@ -298,19 +305,19 @@ int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint) {
|
|
|
298
305
|
|
|
299
306
|
// #define DEBUG
|
|
300
307
|
|
|
301
|
-
STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line) {
|
|
308
|
+
STACK_OF(CONF_VALUE) *bssl::X509V3_parse_list(const char *line) {
|
|
302
309
|
char *p, *q, c;
|
|
303
310
|
char *ntmp, *vtmp;
|
|
304
|
-
STACK_OF(CONF_VALUE) *values =
|
|
311
|
+
STACK_OF(CONF_VALUE) *values = nullptr;
|
|
305
312
|
char *linebuf;
|
|
306
313
|
int state;
|
|
307
314
|
// We are going to modify the line so copy it first
|
|
308
315
|
linebuf = OPENSSL_strdup(line);
|
|
309
|
-
if (linebuf ==
|
|
316
|
+
if (linebuf == nullptr) {
|
|
310
317
|
goto err;
|
|
311
318
|
}
|
|
312
319
|
state = HDR_NAME;
|
|
313
|
-
ntmp =
|
|
320
|
+
ntmp = nullptr;
|
|
314
321
|
// Go through all characters
|
|
315
322
|
for (p = linebuf, q = linebuf; (c = *p) && (c != '\r') && (c != '\n'); p++) {
|
|
316
323
|
switch (state) {
|
|
@@ -335,7 +342,7 @@ STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line) {
|
|
|
335
342
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_NULL_NAME);
|
|
336
343
|
goto err;
|
|
337
344
|
}
|
|
338
|
-
X509V3_add_value(ntmp,
|
|
345
|
+
X509V3_add_value(ntmp, nullptr, &values);
|
|
339
346
|
}
|
|
340
347
|
break;
|
|
341
348
|
|
|
@@ -352,7 +359,7 @@ STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line) {
|
|
|
352
359
|
goto err;
|
|
353
360
|
}
|
|
354
361
|
X509V3_add_value(ntmp, vtmp, &values);
|
|
355
|
-
ntmp =
|
|
362
|
+
ntmp = nullptr;
|
|
356
363
|
q = p + 1;
|
|
357
364
|
}
|
|
358
365
|
}
|
|
@@ -377,7 +384,7 @@ STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line) {
|
|
|
377
384
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_NULL_NAME);
|
|
378
385
|
goto err;
|
|
379
386
|
}
|
|
380
|
-
X509V3_add_value(ntmp,
|
|
387
|
+
X509V3_add_value(ntmp, nullptr, &values);
|
|
381
388
|
}
|
|
382
389
|
OPENSSL_free(linebuf);
|
|
383
390
|
return values;
|
|
@@ -385,7 +392,7 @@ STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line) {
|
|
|
385
392
|
err:
|
|
386
393
|
OPENSSL_free(linebuf);
|
|
387
394
|
sk_CONF_VALUE_pop_free(values, X509V3_conf_free);
|
|
388
|
-
return
|
|
395
|
+
return nullptr;
|
|
389
396
|
}
|
|
390
397
|
|
|
391
398
|
// Delete leading and trailing spaces from a string
|
|
@@ -397,7 +404,7 @@ static char *strip_spaces(char *name) {
|
|
|
397
404
|
p++;
|
|
398
405
|
}
|
|
399
406
|
if (!*p) {
|
|
400
|
-
return
|
|
407
|
+
return nullptr;
|
|
401
408
|
}
|
|
402
409
|
q = p + strlen(p) - 1;
|
|
403
410
|
while ((q != p) && OPENSSL_isspace((unsigned char)*q)) {
|
|
@@ -407,14 +414,14 @@ static char *strip_spaces(char *name) {
|
|
|
407
414
|
q[1] = 0;
|
|
408
415
|
}
|
|
409
416
|
if (!*p) {
|
|
410
|
-
return
|
|
417
|
+
return nullptr;
|
|
411
418
|
}
|
|
412
419
|
return p;
|
|
413
420
|
}
|
|
414
421
|
|
|
415
422
|
// hex string utilities
|
|
416
423
|
|
|
417
|
-
char *x509v3_bytes_to_hex(const uint8_t *in, size_t len) {
|
|
424
|
+
char *bssl::x509v3_bytes_to_hex(const uint8_t *in, size_t len) {
|
|
418
425
|
CBB cbb;
|
|
419
426
|
if (!CBB_init(&cbb, len * 3 + 1)) {
|
|
420
427
|
goto err;
|
|
@@ -437,16 +444,16 @@ char *x509v3_bytes_to_hex(const uint8_t *in, size_t len) {
|
|
|
437
444
|
|
|
438
445
|
err:
|
|
439
446
|
CBB_cleanup(&cbb);
|
|
440
|
-
return
|
|
447
|
+
return nullptr;
|
|
441
448
|
}
|
|
442
449
|
|
|
443
|
-
unsigned char *x509v3_hex_to_bytes(const char *str, size_t *len) {
|
|
450
|
+
unsigned char *bssl::x509v3_hex_to_bytes(const char *str, size_t *len) {
|
|
444
451
|
unsigned char *hexbuf, *q;
|
|
445
452
|
unsigned char ch, cl, *p;
|
|
446
453
|
uint8_t high, low;
|
|
447
454
|
if (!str) {
|
|
448
455
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_NULL_ARGUMENT);
|
|
449
|
-
return
|
|
456
|
+
return nullptr;
|
|
450
457
|
}
|
|
451
458
|
if (!(hexbuf =
|
|
452
459
|
reinterpret_cast<uint8_t *>(OPENSSL_malloc(strlen(str) >> 1)))) {
|
|
@@ -461,7 +468,7 @@ unsigned char *x509v3_hex_to_bytes(const char *str, size_t *len) {
|
|
|
461
468
|
if (!cl) {
|
|
462
469
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_ODD_NUMBER_OF_DIGITS);
|
|
463
470
|
OPENSSL_free(hexbuf);
|
|
464
|
-
return
|
|
471
|
+
return nullptr;
|
|
465
472
|
}
|
|
466
473
|
if (!OPENSSL_fromxdigit(&high, ch)) {
|
|
467
474
|
goto badhex;
|
|
@@ -480,21 +487,21 @@ unsigned char *x509v3_hex_to_bytes(const char *str, size_t *len) {
|
|
|
480
487
|
|
|
481
488
|
err:
|
|
482
489
|
OPENSSL_free(hexbuf);
|
|
483
|
-
return
|
|
490
|
+
return nullptr;
|
|
484
491
|
|
|
485
492
|
badhex:
|
|
486
493
|
OPENSSL_free(hexbuf);
|
|
487
494
|
OPENSSL_PUT_ERROR(X509V3, X509V3_R_ILLEGAL_HEX_DIGIT);
|
|
488
|
-
return
|
|
495
|
+
return nullptr;
|
|
489
496
|
}
|
|
490
497
|
|
|
491
|
-
int x509v3_conf_name_matches(const char *name, const char *cmp) {
|
|
492
|
-
//
|
|
498
|
+
int bssl::x509v3_conf_name_matches(const char *name, const char *cmp) {
|
|
499
|
+
// `name` must begin with `cmp`.
|
|
493
500
|
size_t len = strlen(cmp);
|
|
494
501
|
if (strncmp(name, cmp, len) != 0) {
|
|
495
502
|
return 0;
|
|
496
503
|
}
|
|
497
|
-
//
|
|
504
|
+
// `name` must either be equal to `cmp` or begin with `cmp`, followed by '.'.
|
|
498
505
|
return name[len] == '\0' || name[len] == '.';
|
|
499
506
|
}
|
|
500
507
|
|
|
@@ -503,128 +510,90 @@ static int sk_strcmp(const char *const *a, const char *const *b) {
|
|
|
503
510
|
}
|
|
504
511
|
|
|
505
512
|
STACK_OF(OPENSSL_STRING) *X509_get1_email(const X509 *x) {
|
|
506
|
-
GENERAL_NAMES
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
gens = reinterpret_cast<GENERAL_NAMES *>(
|
|
510
|
-
X509_get_ext_d2i(x, NID_subject_alt_name, NULL, NULL));
|
|
511
|
-
ret = get_email(X509_get_subject_name(x), gens);
|
|
512
|
-
sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free);
|
|
513
|
-
return ret;
|
|
513
|
+
UniquePtr<GENERAL_NAMES> gens(reinterpret_cast<GENERAL_NAMES *>(
|
|
514
|
+
X509_get_ext_d2i(x, NID_subject_alt_name, nullptr, nullptr)));
|
|
515
|
+
return get_email(X509_get_subject_name(x), gens.get()).release();
|
|
514
516
|
}
|
|
515
517
|
|
|
516
518
|
STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(const X509 *x) {
|
|
517
|
-
AUTHORITY_INFO_ACCESS
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
info = reinterpret_cast<AUTHORITY_INFO_ACCESS *>(
|
|
522
|
-
X509_get_ext_d2i(x, NID_info_access, NULL, NULL));
|
|
519
|
+
UniquePtr<AUTHORITY_INFO_ACCESS> info(
|
|
520
|
+
reinterpret_cast<AUTHORITY_INFO_ACCESS *>(
|
|
521
|
+
X509_get_ext_d2i(x, NID_info_access, nullptr, nullptr)));
|
|
523
522
|
if (!info) {
|
|
524
|
-
return
|
|
523
|
+
return nullptr;
|
|
525
524
|
}
|
|
526
|
-
|
|
527
|
-
|
|
525
|
+
UniquePtr<STACK_OF(OPENSSL_STRING)> ret;
|
|
526
|
+
for (const ACCESS_DESCRIPTION *ad : info.get()) {
|
|
528
527
|
if (OBJ_obj2nid(ad->method) == NID_ad_OCSP) {
|
|
529
528
|
if (ad->location->type == GEN_URI) {
|
|
530
529
|
if (!append_ia5(&ret, ad->location->d.uniformResourceIdentifier)) {
|
|
531
|
-
|
|
530
|
+
return nullptr;
|
|
532
531
|
}
|
|
533
532
|
}
|
|
534
533
|
}
|
|
535
534
|
}
|
|
536
|
-
|
|
537
|
-
return ret;
|
|
535
|
+
sk_OPENSSL_STRING_sort_and_dedup(ret.get(), str_free);
|
|
536
|
+
return ret.release();
|
|
538
537
|
}
|
|
539
538
|
|
|
540
539
|
STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(const X509_REQ *x) {
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
exts = X509_REQ_get_extensions(x);
|
|
546
|
-
gens = reinterpret_cast<GENERAL_NAMES *>(
|
|
547
|
-
X509V3_get_d2i(exts, NID_subject_alt_name, NULL, NULL));
|
|
548
|
-
ret = get_email(X509_REQ_get_subject_name(x), gens);
|
|
549
|
-
sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free);
|
|
550
|
-
sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
|
|
551
|
-
return ret;
|
|
540
|
+
UniquePtr<STACK_OF(X509_EXTENSION)> exts(X509_REQ_get_extensions(x));
|
|
541
|
+
UniquePtr<GENERAL_NAMES> gens(reinterpret_cast<GENERAL_NAMES *>(
|
|
542
|
+
X509V3_get_d2i(exts.get(), NID_subject_alt_name, nullptr, nullptr)));
|
|
543
|
+
return get_email(X509_REQ_get_subject_name(x), gens.get()).release();
|
|
552
544
|
}
|
|
553
545
|
|
|
554
|
-
static STACK_OF(OPENSSL_STRING)
|
|
555
|
-
|
|
556
|
-
STACK_OF(OPENSSL_STRING)
|
|
557
|
-
// Now add any email address(es) to STACK
|
|
546
|
+
static UniquePtr<STACK_OF(OPENSSL_STRING)> get_email(
|
|
547
|
+
const X509_NAME *name, const GENERAL_NAMES *gens) {
|
|
548
|
+
UniquePtr<STACK_OF(OPENSSL_STRING)> ret;
|
|
558
549
|
int i = -1;
|
|
559
|
-
// First supplied X509_NAME
|
|
560
550
|
while ((i = X509_NAME_get_index_by_NID(name, NID_pkcs9_emailAddress, i)) >=
|
|
561
551
|
0) {
|
|
562
552
|
const X509_NAME_ENTRY *ne = X509_NAME_get_entry(name, i);
|
|
563
553
|
const ASN1_IA5STRING *email = X509_NAME_ENTRY_get_data(ne);
|
|
564
554
|
if (!append_ia5(&ret, email)) {
|
|
565
|
-
return
|
|
555
|
+
return nullptr;
|
|
566
556
|
}
|
|
567
557
|
}
|
|
568
|
-
for (
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
continue;
|
|
572
|
-
}
|
|
573
|
-
if (!append_ia5(&ret, gen->d.ia5)) {
|
|
574
|
-
return NULL;
|
|
558
|
+
for (const GENERAL_NAME *gen : gens) {
|
|
559
|
+
if (gen->type == GEN_EMAIL && !append_ia5(&ret, gen->d.ia5)) {
|
|
560
|
+
return nullptr;
|
|
575
561
|
}
|
|
576
562
|
}
|
|
563
|
+
sk_OPENSSL_STRING_sort_and_dedup(ret.get(), str_free);
|
|
577
564
|
return ret;
|
|
578
565
|
}
|
|
579
566
|
|
|
580
567
|
static void str_free(OPENSSL_STRING str) { OPENSSL_free(str); }
|
|
581
568
|
|
|
582
|
-
static int append_ia5(STACK_OF(OPENSSL_STRING)
|
|
569
|
+
static int append_ia5(UniquePtr<STACK_OF(OPENSSL_STRING)> *sk,
|
|
583
570
|
const ASN1_IA5STRING *email) {
|
|
584
571
|
// First some sanity checks
|
|
585
572
|
if (email->type != V_ASN1_IA5STRING) {
|
|
586
573
|
return 1;
|
|
587
574
|
}
|
|
588
|
-
if (email->data ==
|
|
575
|
+
if (email->data == nullptr || email->length == 0) {
|
|
589
576
|
return 1;
|
|
590
577
|
}
|
|
591
|
-
//
|
|
578
|
+
// `OPENSSL_STRING` cannot represent strings with embedded NULs. Do not
|
|
592
579
|
// report them as outputs.
|
|
593
|
-
if (OPENSSL_memchr(email->data, 0, email->length) !=
|
|
580
|
+
if (OPENSSL_memchr(email->data, 0, email->length) != nullptr) {
|
|
594
581
|
return 1;
|
|
595
582
|
}
|
|
596
583
|
|
|
597
|
-
char *emtmp = NULL;
|
|
598
584
|
if (!*sk) {
|
|
599
|
-
|
|
585
|
+
sk->reset(sk_OPENSSL_STRING_new(sk_strcmp));
|
|
600
586
|
}
|
|
601
587
|
if (!*sk) {
|
|
602
|
-
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
emtmp = OPENSSL_strndup((char *)email->data, email->length);
|
|
606
|
-
if (emtmp == NULL) {
|
|
607
|
-
goto err;
|
|
588
|
+
return 0;
|
|
608
589
|
}
|
|
609
590
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
if (
|
|
613
|
-
|
|
614
|
-
return 1;
|
|
615
|
-
}
|
|
616
|
-
if (!sk_OPENSSL_STRING_push(*sk, emtmp)) {
|
|
617
|
-
goto err;
|
|
591
|
+
UniquePtr<char> emtmp(
|
|
592
|
+
OPENSSL_strndup((const char *)email->data, email->length));
|
|
593
|
+
if (emtmp == nullptr || !PushToStack(sk->get(), std::move(emtmp))) {
|
|
594
|
+
return 0;
|
|
618
595
|
}
|
|
619
596
|
return 1;
|
|
620
|
-
|
|
621
|
-
err:
|
|
622
|
-
// TODO(davidben): Fix the error-handling in this file. It currently relies
|
|
623
|
-
// on |append_ia5| leaving |*sk| at NULL on error.
|
|
624
|
-
OPENSSL_free(emtmp);
|
|
625
|
-
X509_email_free(*sk);
|
|
626
|
-
*sk = NULL;
|
|
627
|
-
return 0;
|
|
628
597
|
}
|
|
629
598
|
|
|
630
599
|
void X509_email_free(STACK_OF(OPENSSL_STRING) *sk) {
|
|
@@ -754,7 +723,7 @@ static int wildcard_match(const unsigned char *prefix, size_t prefix_len,
|
|
|
754
723
|
|
|
755
724
|
static const unsigned char *valid_star(const unsigned char *p, size_t len,
|
|
756
725
|
unsigned int flags) {
|
|
757
|
-
const unsigned char *star =
|
|
726
|
+
const unsigned char *star = nullptr;
|
|
758
727
|
size_t i;
|
|
759
728
|
int state = LABEL_START;
|
|
760
729
|
int dots = 0;
|
|
@@ -767,12 +736,12 @@ static const unsigned char *valid_star(const unsigned char *p, size_t len,
|
|
|
767
736
|
// At most one wildcard per pattern.
|
|
768
737
|
// No wildcards in IDNA labels.
|
|
769
738
|
// No wildcards after the first label.
|
|
770
|
-
if (star !=
|
|
771
|
-
return
|
|
739
|
+
if (star != nullptr || (state & LABEL_IDNA) != 0 || dots) {
|
|
740
|
+
return nullptr;
|
|
772
741
|
}
|
|
773
742
|
// Only full-label '*.example.com' wildcards.
|
|
774
743
|
if (!atstart || !atend) {
|
|
775
|
-
return
|
|
744
|
+
return nullptr;
|
|
776
745
|
}
|
|
777
746
|
star = &p[i];
|
|
778
747
|
state &= ~LABEL_START;
|
|
@@ -784,25 +753,25 @@ static const unsigned char *valid_star(const unsigned char *p, size_t len,
|
|
|
784
753
|
state &= ~(LABEL_HYPHEN | LABEL_START);
|
|
785
754
|
} else if (p[i] == '.') {
|
|
786
755
|
if ((state & (LABEL_HYPHEN | LABEL_START)) != 0) {
|
|
787
|
-
return
|
|
756
|
+
return nullptr;
|
|
788
757
|
}
|
|
789
758
|
state = LABEL_START;
|
|
790
759
|
++dots;
|
|
791
760
|
} else if (p[i] == '-') {
|
|
792
761
|
// no domain/subdomain starts with '-'
|
|
793
762
|
if ((state & LABEL_START) != 0) {
|
|
794
|
-
return
|
|
763
|
+
return nullptr;
|
|
795
764
|
}
|
|
796
765
|
state |= LABEL_HYPHEN;
|
|
797
766
|
} else {
|
|
798
|
-
return
|
|
767
|
+
return nullptr;
|
|
799
768
|
}
|
|
800
769
|
}
|
|
801
770
|
|
|
802
771
|
// The final label must not end in a hyphen or ".", and
|
|
803
772
|
// there must be at least two dots after the star.
|
|
804
773
|
if ((state & (LABEL_START | LABEL_HYPHEN)) != 0 || dots < 2) {
|
|
805
|
-
return
|
|
774
|
+
return nullptr;
|
|
806
775
|
}
|
|
807
776
|
return star;
|
|
808
777
|
}
|
|
@@ -811,14 +780,14 @@ static const unsigned char *valid_star(const unsigned char *p, size_t len,
|
|
|
811
780
|
static int equal_wildcard(const unsigned char *pattern, size_t pattern_len,
|
|
812
781
|
const unsigned char *subject, size_t subject_len,
|
|
813
782
|
unsigned int flags) {
|
|
814
|
-
const unsigned char *star =
|
|
783
|
+
const unsigned char *star = nullptr;
|
|
815
784
|
|
|
816
785
|
// Subject names starting with '.' can only match a wildcard pattern
|
|
817
786
|
// via a subject sub-domain pattern suffix match.
|
|
818
787
|
if (!(subject_len > 1 && subject[0] == '.')) {
|
|
819
788
|
star = valid_star(pattern, pattern_len, flags);
|
|
820
789
|
}
|
|
821
|
-
if (star ==
|
|
790
|
+
if (star == nullptr) {
|
|
822
791
|
return equal_nocase(pattern, pattern_len, subject, subject_len, flags);
|
|
823
792
|
}
|
|
824
793
|
return wildcard_match(pattern, star - pattern, star + 1,
|
|
@@ -826,7 +795,7 @@ static int equal_wildcard(const unsigned char *pattern, size_t pattern_len,
|
|
|
826
795
|
subject_len, flags);
|
|
827
796
|
}
|
|
828
797
|
|
|
829
|
-
int x509v3_looks_like_dns_name(const unsigned char *in, size_t len) {
|
|
798
|
+
int bssl::x509v3_looks_like_dns_name(const unsigned char *in, size_t len) {
|
|
830
799
|
// This function is used as a heuristic for whether a common name is a
|
|
831
800
|
// hostname to be matched, or merely a decorative name to describe the
|
|
832
801
|
// subject. This heuristic must be applied to both name constraints and the
|
|
@@ -892,7 +861,7 @@ static int do_check_string(const ASN1_STRING *a, int cmp_type, equal_fn equal,
|
|
|
892
861
|
}
|
|
893
862
|
if (rv > 0 && peername) {
|
|
894
863
|
*peername = OPENSSL_strndup((char *)a->data, a->length);
|
|
895
|
-
if (*peername ==
|
|
864
|
+
if (*peername == nullptr) {
|
|
896
865
|
return -1;
|
|
897
866
|
}
|
|
898
867
|
}
|
|
@@ -904,7 +873,7 @@ static int do_check_string(const ASN1_STRING *a, int cmp_type, equal_fn equal,
|
|
|
904
873
|
return -1;
|
|
905
874
|
}
|
|
906
875
|
// We check the common name against DNS name constraints if it passes
|
|
907
|
-
//
|
|
876
|
+
// `x509v3_looks_like_dns_name`. Thus we must not consider common names
|
|
908
877
|
// for DNS fallbacks if they fail this check.
|
|
909
878
|
if (check_type == GEN_DNS && !x509v3_looks_like_dns_name(astr, astrlen)) {
|
|
910
879
|
rv = 0;
|
|
@@ -913,7 +882,7 @@ static int do_check_string(const ASN1_STRING *a, int cmp_type, equal_fn equal,
|
|
|
913
882
|
}
|
|
914
883
|
if (rv > 0 && peername) {
|
|
915
884
|
*peername = OPENSSL_strndup((char *)astr, astrlen);
|
|
916
|
-
if (*peername ==
|
|
885
|
+
if (*peername == nullptr) {
|
|
917
886
|
return -1;
|
|
918
887
|
}
|
|
919
888
|
}
|
|
@@ -945,11 +914,11 @@ static int do_x509_check(const X509 *x, const char *chk, size_t chklen,
|
|
|
945
914
|
equal = equal_case;
|
|
946
915
|
}
|
|
947
916
|
|
|
948
|
-
|
|
949
|
-
|
|
917
|
+
int critical;
|
|
918
|
+
UniquePtr<GENERAL_NAMES> gens(reinterpret_cast<GENERAL_NAMES *>(
|
|
919
|
+
X509_get_ext_d2i(x, NID_subject_alt_name, &critical, nullptr)));
|
|
950
920
|
if (gens) {
|
|
951
|
-
for (
|
|
952
|
-
const GENERAL_NAME *gen = sk_GENERAL_NAME_value(gens, i);
|
|
921
|
+
for (const GENERAL_NAME *gen : gens.get()) {
|
|
953
922
|
if (gen->type != check_type) {
|
|
954
923
|
continue;
|
|
955
924
|
}
|
|
@@ -967,8 +936,10 @@ static int do_x509_check(const X509 *x, const char *chk, size_t chklen,
|
|
|
967
936
|
break;
|
|
968
937
|
}
|
|
969
938
|
}
|
|
970
|
-
GENERAL_NAMES_free(gens);
|
|
971
939
|
return rv;
|
|
940
|
+
} else if (critical != -1) {
|
|
941
|
+
// Syntax error in the subjectAltName extension.
|
|
942
|
+
return 0;
|
|
972
943
|
}
|
|
973
944
|
|
|
974
945
|
// We're done if CN-ID is not pertinent
|
|
@@ -992,7 +963,7 @@ static int do_x509_check(const X509 *x, const char *chk, size_t chklen,
|
|
|
992
963
|
|
|
993
964
|
int X509_check_host(const X509 *x, const char *chk, size_t chklen,
|
|
994
965
|
unsigned int flags, char **peername) {
|
|
995
|
-
if (chk ==
|
|
966
|
+
if (chk == nullptr) {
|
|
996
967
|
return -2;
|
|
997
968
|
}
|
|
998
969
|
if (OPENSSL_memchr(chk, '\0', chklen)) {
|
|
@@ -1003,35 +974,36 @@ int X509_check_host(const X509 *x, const char *chk, size_t chklen,
|
|
|
1003
974
|
|
|
1004
975
|
int X509_check_email(const X509 *x, const char *chk, size_t chklen,
|
|
1005
976
|
unsigned int flags) {
|
|
1006
|
-
if (chk ==
|
|
977
|
+
if (chk == nullptr) {
|
|
1007
978
|
return -2;
|
|
1008
979
|
}
|
|
1009
980
|
if (OPENSSL_memchr(chk, '\0', chklen)) {
|
|
1010
981
|
return -2;
|
|
1011
982
|
}
|
|
1012
|
-
return do_x509_check(x, chk, chklen, flags, GEN_EMAIL,
|
|
983
|
+
return do_x509_check(x, chk, chklen, flags, GEN_EMAIL, nullptr);
|
|
1013
984
|
}
|
|
1014
985
|
|
|
1015
986
|
int X509_check_ip(const X509 *x, const unsigned char *chk, size_t chklen,
|
|
1016
987
|
unsigned int flags) {
|
|
1017
|
-
if (chk ==
|
|
988
|
+
if (chk == nullptr) {
|
|
1018
989
|
return -2;
|
|
1019
990
|
}
|
|
1020
|
-
return do_x509_check(x, (const char *)chk, chklen, flags, GEN_IPADD,
|
|
991
|
+
return do_x509_check(x, (const char *)chk, chklen, flags, GEN_IPADD, nullptr);
|
|
1021
992
|
}
|
|
1022
993
|
|
|
1023
994
|
int X509_check_ip_asc(const X509 *x, const char *ipasc, unsigned int flags) {
|
|
1024
995
|
unsigned char ipout[16];
|
|
1025
996
|
size_t iplen;
|
|
1026
997
|
|
|
1027
|
-
if (ipasc ==
|
|
998
|
+
if (ipasc == nullptr) {
|
|
1028
999
|
return -2;
|
|
1029
1000
|
}
|
|
1030
1001
|
iplen = (size_t)x509v3_a2i_ipadd(ipout, ipasc);
|
|
1031
1002
|
if (iplen == 0) {
|
|
1032
1003
|
return -2;
|
|
1033
1004
|
}
|
|
1034
|
-
return do_x509_check(x, (const char *)ipout, iplen, flags, GEN_IPADD,
|
|
1005
|
+
return do_x509_check(x, (const char *)ipout, iplen, flags, GEN_IPADD,
|
|
1006
|
+
nullptr);
|
|
1035
1007
|
}
|
|
1036
1008
|
|
|
1037
1009
|
// Convert IP addresses both IPv4 and IPv6 into an OCTET STRING compatible
|
|
@@ -1044,33 +1016,33 @@ ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc) {
|
|
|
1044
1016
|
|
|
1045
1017
|
iplen = x509v3_a2i_ipadd(ipout, ipasc);
|
|
1046
1018
|
if (!iplen) {
|
|
1047
|
-
return
|
|
1019
|
+
return nullptr;
|
|
1048
1020
|
}
|
|
1049
1021
|
|
|
1050
1022
|
ret = ASN1_OCTET_STRING_new();
|
|
1051
1023
|
if (!ret) {
|
|
1052
|
-
return
|
|
1024
|
+
return nullptr;
|
|
1053
1025
|
}
|
|
1054
1026
|
if (!ASN1_OCTET_STRING_set(ret, ipout, iplen)) {
|
|
1055
1027
|
ASN1_OCTET_STRING_free(ret);
|
|
1056
|
-
return
|
|
1028
|
+
return nullptr;
|
|
1057
1029
|
}
|
|
1058
1030
|
return ret;
|
|
1059
1031
|
}
|
|
1060
1032
|
|
|
1061
1033
|
ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc) {
|
|
1062
|
-
ASN1_OCTET_STRING *ret =
|
|
1034
|
+
ASN1_OCTET_STRING *ret = nullptr;
|
|
1063
1035
|
unsigned char ipout[32];
|
|
1064
|
-
char *iptmp =
|
|
1036
|
+
char *iptmp = nullptr, *p;
|
|
1065
1037
|
int iplen1, iplen2;
|
|
1066
1038
|
// FIXME: yes, this function takes a const pointer and writes to it!
|
|
1067
1039
|
p = const_cast<char *>(strchr(ipasc, '/'));
|
|
1068
1040
|
if (!p) {
|
|
1069
|
-
return
|
|
1041
|
+
return nullptr;
|
|
1070
1042
|
}
|
|
1071
1043
|
iptmp = OPENSSL_strdup(ipasc);
|
|
1072
1044
|
if (!iptmp) {
|
|
1073
|
-
return
|
|
1045
|
+
return nullptr;
|
|
1074
1046
|
}
|
|
1075
1047
|
p = iptmp + (p - ipasc);
|
|
1076
1048
|
*p++ = 0;
|
|
@@ -1084,7 +1056,7 @@ ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc) {
|
|
|
1084
1056
|
iplen2 = x509v3_a2i_ipadd(ipout + iplen1, p);
|
|
1085
1057
|
|
|
1086
1058
|
OPENSSL_free(iptmp);
|
|
1087
|
-
iptmp =
|
|
1059
|
+
iptmp = nullptr;
|
|
1088
1060
|
|
|
1089
1061
|
if (!iplen2 || (iplen1 != iplen2)) {
|
|
1090
1062
|
goto err;
|
|
@@ -1103,10 +1075,10 @@ ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc) {
|
|
|
1103
1075
|
err:
|
|
1104
1076
|
OPENSSL_free(iptmp);
|
|
1105
1077
|
ASN1_OCTET_STRING_free(ret);
|
|
1106
|
-
return
|
|
1078
|
+
return nullptr;
|
|
1107
1079
|
}
|
|
1108
1080
|
|
|
1109
|
-
int x509v3_a2i_ipadd(uint8_t ipout[16], const char *ipasc) {
|
|
1081
|
+
int bssl::x509v3_a2i_ipadd(uint8_t ipout[16], const char *ipasc) {
|
|
1110
1082
|
// If string contains a ':' assume IPv6
|
|
1111
1083
|
|
|
1112
1084
|
if (strchr(ipasc, ':')) {
|
|
@@ -1123,8 +1095,8 @@ int x509v3_a2i_ipadd(uint8_t ipout[16], const char *ipasc) {
|
|
|
1123
1095
|
}
|
|
1124
1096
|
|
|
1125
1097
|
// get_ipv4_component consumes one IPv4 component, terminated by either '.' or
|
|
1126
|
-
// the end of the string, from
|
|
1127
|
-
// to the component, and advances
|
|
1098
|
+
// the end of the string, from `*str`. On success, it returns one, sets `*out`
|
|
1099
|
+
// to the component, and advances `*str` to the first unconsumed character. On
|
|
1128
1100
|
// invalid input, it returns zero.
|
|
1129
1101
|
static int get_ipv4_component(uint8_t *out_byte, const char **str) {
|
|
1130
1102
|
// Store a slightly larger intermediary so the overflow check is easier.
|
|
@@ -1151,8 +1123,8 @@ static int get_ipv4_component(uint8_t *out_byte, const char **str) {
|
|
|
1151
1123
|
}
|
|
1152
1124
|
}
|
|
1153
1125
|
|
|
1154
|
-
// get_ipv4_dot consumes a '.' from
|
|
1155
|
-
// success and zero if
|
|
1126
|
+
// get_ipv4_dot consumes a '.' from `*str` and advances it. It returns one on
|
|
1127
|
+
// success and zero if `*str` does not point to a '.'.
|
|
1156
1128
|
static int get_ipv4_dot(const char **str) {
|
|
1157
1129
|
if (**str != '.') {
|
|
1158
1130
|
return 0;
|
|
@@ -1307,8 +1279,9 @@ static int ipv6_hex(uint8_t *out, const char *in, size_t inlen) {
|
|
|
1307
1279
|
return 1;
|
|
1308
1280
|
}
|
|
1309
1281
|
|
|
1310
|
-
int X509V3_NAME_from_section(X509_NAME *nm,
|
|
1311
|
-
|
|
1282
|
+
int bssl::X509V3_NAME_from_section(X509_NAME *nm,
|
|
1283
|
+
const STACK_OF(CONF_VALUE) *dn_sk,
|
|
1284
|
+
int chtype) {
|
|
1312
1285
|
if (!nm) {
|
|
1313
1286
|
return 0;
|
|
1314
1287
|
}
|