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 <assert.h>
|
|
19
19
|
#include <string.h>
|
|
20
20
|
|
|
21
|
+
#include <iterator>
|
|
22
|
+
|
|
21
23
|
#include <openssl/bn.h>
|
|
22
24
|
#include <openssl/err.h>
|
|
23
25
|
#include <openssl/mem.h>
|
|
24
26
|
#include <openssl/nid.h>
|
|
25
27
|
|
|
26
28
|
#include "../../internal.h"
|
|
29
|
+
#include "../../mem_internal.h"
|
|
27
30
|
#include "../bn/internal.h"
|
|
28
31
|
#include "../delocate.h"
|
|
29
32
|
#include "internal.h"
|
|
@@ -31,6 +34,8 @@
|
|
|
31
34
|
#include "builtin_curves.h"
|
|
32
35
|
|
|
33
36
|
|
|
37
|
+
using namespace bssl;
|
|
38
|
+
|
|
34
39
|
static void ec_point_free(EC_POINT *point, int free_group);
|
|
35
40
|
|
|
36
41
|
static void ec_group_init_static_mont(BN_MONT_CTX *mont, size_t num_words,
|
|
@@ -59,29 +64,21 @@ static void ec_group_set_a_minus3(EC_GROUP *group) {
|
|
|
59
64
|
DEFINE_METHOD_FUNCTION(EC_GROUP, EC_group_p224) {
|
|
60
65
|
out->curve_name = NID_secp224r1;
|
|
61
66
|
out->comment = "NIST P-224";
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
static const uint8_t kOIDP224[] = {OBJ_ENC_secp224r1};
|
|
68
|
+
static_assert(sizeof(kOIDP224) <= sizeof(out->oid));
|
|
64
69
|
OPENSSL_memcpy(out->oid, kOIDP224, sizeof(kOIDP224));
|
|
65
70
|
out->oid_len = sizeof(kOIDP224);
|
|
66
71
|
|
|
67
|
-
ec_group_init_static_mont(&out->field,
|
|
68
|
-
|
|
69
|
-
ec_group_init_static_mont(&out->order,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
#if defined(BORINGSSL_HAS_UINT128) && !defined(OPENSSL_SMALL)
|
|
73
|
-
out->meth = EC_GFp_nistp224_method();
|
|
74
|
-
OPENSSL_memcpy(out->generator.raw.X.words, kP224GX, sizeof(kP224GX));
|
|
75
|
-
OPENSSL_memcpy(out->generator.raw.Y.words, kP224GY, sizeof(kP224GY));
|
|
76
|
-
out->generator.raw.Z.words[0] = 1;
|
|
77
|
-
OPENSSL_memcpy(out->b.words, kP224B, sizeof(kP224B));
|
|
78
|
-
#else
|
|
72
|
+
ec_group_init_static_mont(&out->field, std::size(kP224Field), kP224Field,
|
|
73
|
+
kP224FieldRR, kP224FieldN0);
|
|
74
|
+
ec_group_init_static_mont(&out->order, std::size(kP224Order), kP224Order,
|
|
75
|
+
kP224OrderRR, kP224OrderN0);
|
|
76
|
+
|
|
79
77
|
out->meth = EC_GFp_mont_method();
|
|
80
78
|
OPENSSL_memcpy(out->generator.raw.X.words, kP224MontGX, sizeof(kP224MontGX));
|
|
81
79
|
OPENSSL_memcpy(out->generator.raw.Y.words, kP224MontGY, sizeof(kP224MontGY));
|
|
82
80
|
OPENSSL_memcpy(out->generator.raw.Z.words, kP224FieldR, sizeof(kP224FieldR));
|
|
83
81
|
OPENSSL_memcpy(out->b.words, kP224MontB, sizeof(kP224MontB));
|
|
84
|
-
#endif
|
|
85
82
|
out->generator.group = out;
|
|
86
83
|
|
|
87
84
|
ec_group_set_a_minus3(out);
|
|
@@ -92,24 +89,17 @@ DEFINE_METHOD_FUNCTION(EC_GROUP, EC_group_p224) {
|
|
|
92
89
|
DEFINE_METHOD_FUNCTION(EC_GROUP, EC_group_p256) {
|
|
93
90
|
out->curve_name = NID_X9_62_prime256v1;
|
|
94
91
|
out->comment = "NIST P-256";
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
0x3d, 0x03, 0x01, 0x07};
|
|
92
|
+
static const uint8_t kOIDP256[] = {OBJ_ENC_X9_62_prime256v1};
|
|
93
|
+
static_assert(sizeof(kOIDP256) <= sizeof(out->oid));
|
|
98
94
|
OPENSSL_memcpy(out->oid, kOIDP256, sizeof(kOIDP256));
|
|
99
95
|
out->oid_len = sizeof(kOIDP256);
|
|
100
96
|
|
|
101
|
-
ec_group_init_static_mont(&out->field,
|
|
102
|
-
|
|
103
|
-
ec_group_init_static_mont(&out->order,
|
|
104
|
-
|
|
97
|
+
ec_group_init_static_mont(&out->field, std::size(kP256Field), kP256Field,
|
|
98
|
+
kP256FieldRR, kP256FieldN0);
|
|
99
|
+
ec_group_init_static_mont(&out->order, std::size(kP256Order), kP256Order,
|
|
100
|
+
kP256OrderRR, kP256OrderN0);
|
|
105
101
|
|
|
106
|
-
#if !defined(OPENSSL_NO_ASM) && \
|
|
107
|
-
(defined(OPENSSL_X86_64) || defined(OPENSSL_AARCH64)) && \
|
|
108
|
-
!defined(OPENSSL_SMALL)
|
|
109
|
-
out->meth = EC_GFp_nistz256_method();
|
|
110
|
-
#else
|
|
111
102
|
out->meth = EC_GFp_nistp256_method();
|
|
112
|
-
#endif
|
|
113
103
|
out->generator.group = out;
|
|
114
104
|
OPENSSL_memcpy(out->generator.raw.X.words, kP256MontGX, sizeof(kP256MontGX));
|
|
115
105
|
OPENSSL_memcpy(out->generator.raw.Y.words, kP256MontGY, sizeof(kP256MontGY));
|
|
@@ -124,15 +114,15 @@ DEFINE_METHOD_FUNCTION(EC_GROUP, EC_group_p256) {
|
|
|
124
114
|
DEFINE_METHOD_FUNCTION(EC_GROUP, EC_group_p384) {
|
|
125
115
|
out->curve_name = NID_secp384r1;
|
|
126
116
|
out->comment = "NIST P-384";
|
|
127
|
-
|
|
128
|
-
|
|
117
|
+
static const uint8_t kOIDP384[] = {OBJ_ENC_secp384r1};
|
|
118
|
+
static_assert(sizeof(kOIDP384) <= sizeof(out->oid));
|
|
129
119
|
OPENSSL_memcpy(out->oid, kOIDP384, sizeof(kOIDP384));
|
|
130
120
|
out->oid_len = sizeof(kOIDP384);
|
|
131
121
|
|
|
132
|
-
ec_group_init_static_mont(&out->field,
|
|
133
|
-
|
|
134
|
-
ec_group_init_static_mont(&out->order,
|
|
135
|
-
|
|
122
|
+
ec_group_init_static_mont(&out->field, std::size(kP384Field), kP384Field,
|
|
123
|
+
kP384FieldRR, kP384FieldN0);
|
|
124
|
+
ec_group_init_static_mont(&out->order, std::size(kP384Order), kP384Order,
|
|
125
|
+
kP384OrderRR, kP384OrderN0);
|
|
136
126
|
|
|
137
127
|
out->meth = EC_GFp_mont_method();
|
|
138
128
|
out->generator.group = out;
|
|
@@ -149,15 +139,15 @@ DEFINE_METHOD_FUNCTION(EC_GROUP, EC_group_p384) {
|
|
|
149
139
|
DEFINE_METHOD_FUNCTION(EC_GROUP, EC_group_p521) {
|
|
150
140
|
out->curve_name = NID_secp521r1;
|
|
151
141
|
out->comment = "NIST P-521";
|
|
152
|
-
|
|
153
|
-
|
|
142
|
+
static const uint8_t kOIDP521[] = {OBJ_ENC_secp521r1};
|
|
143
|
+
static_assert(sizeof(kOIDP521) <= sizeof(out->oid));
|
|
154
144
|
OPENSSL_memcpy(out->oid, kOIDP521, sizeof(kOIDP521));
|
|
155
145
|
out->oid_len = sizeof(kOIDP521);
|
|
156
146
|
|
|
157
|
-
ec_group_init_static_mont(&out->field,
|
|
158
|
-
|
|
159
|
-
ec_group_init_static_mont(&out->order,
|
|
160
|
-
|
|
147
|
+
ec_group_init_static_mont(&out->field, std::size(kP521Field), kP521Field,
|
|
148
|
+
kP521FieldRR, kP521FieldN0);
|
|
149
|
+
ec_group_init_static_mont(&out->order, std::size(kP521Order), kP521Order,
|
|
150
|
+
kP521OrderRR, kP521OrderN0);
|
|
161
151
|
|
|
162
152
|
out->meth = EC_GFp_mont_method();
|
|
163
153
|
out->generator.group = out;
|
|
@@ -178,7 +168,7 @@ EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,
|
|
|
178
168
|
return nullptr;
|
|
179
169
|
}
|
|
180
170
|
|
|
181
|
-
|
|
171
|
+
UniquePtr<BN_CTX> new_ctx;
|
|
182
172
|
if (ctx == nullptr) {
|
|
183
173
|
new_ctx.reset(BN_CTX_new());
|
|
184
174
|
if (new_ctx == nullptr) {
|
|
@@ -187,9 +177,9 @@ EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,
|
|
|
187
177
|
ctx = new_ctx.get();
|
|
188
178
|
}
|
|
189
179
|
|
|
190
|
-
// Historically,
|
|
180
|
+
// Historically, `a` and `b` were not required to be fully reduced.
|
|
191
181
|
// TODO(davidben): Can this be removed?
|
|
192
|
-
|
|
182
|
+
BN_CTXScope scope(ctx);
|
|
193
183
|
BIGNUM *a_reduced = BN_CTX_get(ctx);
|
|
194
184
|
BIGNUM *b_reduced = BN_CTX_get(ctx);
|
|
195
185
|
if (a_reduced == nullptr || b_reduced == nullptr ||
|
|
@@ -198,16 +188,10 @@ EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,
|
|
|
198
188
|
return nullptr;
|
|
199
189
|
}
|
|
200
190
|
|
|
201
|
-
|
|
202
|
-
reinterpret_cast<EC_GROUP *>(OPENSSL_zalloc(sizeof(EC_GROUP))));
|
|
191
|
+
UniquePtr<ECCustomGroup> ret(New<ECCustomGroup>(EC_GFp_mont_method()));
|
|
203
192
|
if (ret == nullptr) {
|
|
204
193
|
return nullptr;
|
|
205
194
|
}
|
|
206
|
-
ret->references = 1;
|
|
207
|
-
ret->meth = EC_GFp_mont_method();
|
|
208
|
-
bn_mont_ctx_init(&ret->field);
|
|
209
|
-
bn_mont_ctx_init(&ret->order);
|
|
210
|
-
ret->generator.group = ret.get();
|
|
211
195
|
if (!ec_GFp_simple_group_set_curve(ret.get(), p, a_reduced, b_reduced, ctx)) {
|
|
212
196
|
return nullptr;
|
|
213
197
|
}
|
|
@@ -219,10 +203,10 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
|
|
|
219
203
|
const BIGNUM *order, const BIGNUM *cofactor) {
|
|
220
204
|
if (group->curve_name != NID_undef || group->has_order ||
|
|
221
205
|
generator->group != group) {
|
|
222
|
-
//
|
|
223
|
-
//
|
|
224
|
-
//
|
|
225
|
-
// copy, so that
|
|
206
|
+
// `EC_GROUP_set_generator` may only be used with `EC_GROUP`s returned by
|
|
207
|
+
// `EC_GROUP_new_curve_GFp` and may only used once on each group.
|
|
208
|
+
// `generator` must have been created from `EC_GROUP_new_curve_GFp`, not a
|
|
209
|
+
// copy, so that `generator->group->generator` is set correctly.
|
|
226
210
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
227
211
|
return 0;
|
|
228
212
|
}
|
|
@@ -241,9 +225,9 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
|
|
|
241
225
|
// Require that p < 2×order. This simplifies some ECDSA operations.
|
|
242
226
|
//
|
|
243
227
|
// Note any curve which did not satisfy this must have been invalid or use a
|
|
244
|
-
// tiny prime (less than 17). See the proof in
|
|
228
|
+
// tiny prime (less than 17). See the proof in `field_element_to_scalar` in
|
|
245
229
|
// the ECDSA implementation.
|
|
246
|
-
|
|
230
|
+
UniquePtr<BIGNUM> tmp(BN_new());
|
|
247
231
|
if (tmp == nullptr || !BN_lshift1(tmp.get(), order)) {
|
|
248
232
|
return 0;
|
|
249
233
|
}
|
|
@@ -254,14 +238,14 @@ int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
|
|
|
254
238
|
|
|
255
239
|
EC_AFFINE affine;
|
|
256
240
|
if (!ec_jacobian_to_affine(group, &affine, &generator->raw) ||
|
|
257
|
-
!BN_MONT_CTX_set(&group->order, order,
|
|
241
|
+
!BN_MONT_CTX_set(&group->order, order, nullptr)) {
|
|
258
242
|
return 0;
|
|
259
243
|
}
|
|
260
244
|
|
|
261
245
|
group->field_greater_than_order = BN_cmp(&group->field.N, order) > 0;
|
|
262
246
|
group->generator.raw.X = affine.X;
|
|
263
247
|
group->generator.raw.Y = affine.Y;
|
|
264
|
-
//
|
|
248
|
+
// `raw.Z` was set to 1 by `EC_GROUP_new_curve_GFp`.
|
|
265
249
|
group->has_order = 1;
|
|
266
250
|
return 1;
|
|
267
251
|
}
|
|
@@ -278,34 +262,45 @@ EC_GROUP *EC_GROUP_new_by_curve_name(int nid) {
|
|
|
278
262
|
return (EC_GROUP *)EC_group_p521();
|
|
279
263
|
default:
|
|
280
264
|
OPENSSL_PUT_ERROR(EC, EC_R_UNKNOWN_GROUP);
|
|
281
|
-
return
|
|
265
|
+
return nullptr;
|
|
282
266
|
}
|
|
283
267
|
}
|
|
284
268
|
|
|
269
|
+
ECCustomGroup::ECCustomGroup(const EC_METHOD *m)
|
|
270
|
+
: ec_group_st({}), RefCounted(CheckSubClass()) {
|
|
271
|
+
meth = m;
|
|
272
|
+
bn_mont_ctx_init(&field);
|
|
273
|
+
bn_mont_ctx_init(&order);
|
|
274
|
+
generator.group = this;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
ECCustomGroup::~ECCustomGroup() {
|
|
278
|
+
bn_mont_ctx_cleanup(&order);
|
|
279
|
+
bn_mont_ctx_cleanup(&field);
|
|
280
|
+
}
|
|
281
|
+
|
|
285
282
|
void EC_GROUP_free(EC_GROUP *group) {
|
|
286
|
-
if (group ==
|
|
283
|
+
if (group == nullptr ||
|
|
287
284
|
// Built-in curves are static.
|
|
288
|
-
group->curve_name != NID_undef
|
|
289
|
-
!CRYPTO_refcount_dec_and_test_zero(&group->references)) {
|
|
285
|
+
group->curve_name != NID_undef) {
|
|
290
286
|
return;
|
|
291
287
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
bn_mont_ctx_cleanup(&group->field);
|
|
295
|
-
OPENSSL_free(group);
|
|
288
|
+
auto *custom = static_cast<ECCustomGroup *>(group);
|
|
289
|
+
custom->DecRefInternal();
|
|
296
290
|
}
|
|
297
291
|
|
|
298
292
|
EC_GROUP *EC_GROUP_dup(const EC_GROUP *a) {
|
|
299
|
-
if (a ==
|
|
293
|
+
if (a == nullptr ||
|
|
300
294
|
// Built-in curves are static.
|
|
301
295
|
a->curve_name != NID_undef) {
|
|
302
296
|
return (EC_GROUP *)a;
|
|
303
297
|
}
|
|
298
|
+
auto *custom = static_cast<const ECCustomGroup *>(a);
|
|
304
299
|
|
|
305
|
-
// Groups are logically immutable (but for
|
|
300
|
+
// Groups are logically immutable (but for `EC_GROUP_set_generator` which must
|
|
306
301
|
// be called early on), so we simply take a reference.
|
|
307
|
-
|
|
308
|
-
|
|
302
|
+
ECCustomGroup *group = const_cast<ECCustomGroup *>(custom);
|
|
303
|
+
group->UpRefInternal();
|
|
309
304
|
return group;
|
|
310
305
|
}
|
|
311
306
|
|
|
@@ -322,8 +317,8 @@ int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ignored) {
|
|
|
322
317
|
return 0;
|
|
323
318
|
}
|
|
324
319
|
|
|
325
|
-
//
|
|
326
|
-
// structure. If
|
|
320
|
+
// `a` and `b` are both custom curves. We compare the entire curve
|
|
321
|
+
// structure. If `a` or `b` is incomplete (due to legacy OpenSSL mistakes,
|
|
327
322
|
// custom curve construction is sadly done in two parts) but otherwise not the
|
|
328
323
|
// same object, we consider them always unequal.
|
|
329
324
|
return a->meth != b->meth || //
|
|
@@ -336,7 +331,7 @@ int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ignored) {
|
|
|
336
331
|
}
|
|
337
332
|
|
|
338
333
|
const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group) {
|
|
339
|
-
return group->has_order ? &group->generator :
|
|
334
|
+
return group->has_order ? &group->generator : nullptr;
|
|
340
335
|
}
|
|
341
336
|
|
|
342
337
|
const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group) {
|
|
@@ -345,7 +340,7 @@ const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group) {
|
|
|
345
340
|
}
|
|
346
341
|
|
|
347
342
|
int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx) {
|
|
348
|
-
if (BN_copy(order, EC_GROUP_get0_order(group)) ==
|
|
343
|
+
if (BN_copy(order, EC_GROUP_get0_order(group)) == nullptr) {
|
|
349
344
|
return 0;
|
|
350
345
|
}
|
|
351
346
|
return 1;
|
|
@@ -357,7 +352,7 @@ int EC_GROUP_order_bits(const EC_GROUP *group) {
|
|
|
357
352
|
|
|
358
353
|
int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor,
|
|
359
354
|
BN_CTX *ctx) {
|
|
360
|
-
// All
|
|
355
|
+
// All `EC_GROUP`s have cofactor 1.
|
|
361
356
|
return BN_set_word(cofactor, 1);
|
|
362
357
|
}
|
|
363
358
|
|
|
@@ -383,7 +378,7 @@ const char *EC_curve_nid2nist(int nid) {
|
|
|
383
378
|
case NID_secp521r1:
|
|
384
379
|
return "P-521";
|
|
385
380
|
}
|
|
386
|
-
return
|
|
381
|
+
return nullptr;
|
|
387
382
|
}
|
|
388
383
|
|
|
389
384
|
int EC_curve_nist2nid(const char *name) {
|
|
@@ -403,14 +398,14 @@ int EC_curve_nist2nid(const char *name) {
|
|
|
403
398
|
}
|
|
404
399
|
|
|
405
400
|
EC_POINT *EC_POINT_new(const EC_GROUP *group) {
|
|
406
|
-
if (group ==
|
|
401
|
+
if (group == nullptr) {
|
|
407
402
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
|
408
|
-
return
|
|
403
|
+
return nullptr;
|
|
409
404
|
}
|
|
410
405
|
|
|
411
|
-
EC_POINT *ret =
|
|
412
|
-
if (ret ==
|
|
413
|
-
return
|
|
406
|
+
EC_POINT *ret = New<EC_POINT>();
|
|
407
|
+
if (ret == nullptr) {
|
|
408
|
+
return nullptr;
|
|
414
409
|
}
|
|
415
410
|
|
|
416
411
|
ret->group = EC_GROUP_dup(group);
|
|
@@ -425,7 +420,7 @@ static void ec_point_free(EC_POINT *point, int free_group) {
|
|
|
425
420
|
if (free_group) {
|
|
426
421
|
EC_GROUP_free(point->group);
|
|
427
422
|
}
|
|
428
|
-
|
|
423
|
+
Delete(point);
|
|
429
424
|
}
|
|
430
425
|
|
|
431
426
|
void EC_POINT_free(EC_POINT *point) {
|
|
@@ -435,7 +430,7 @@ void EC_POINT_free(EC_POINT *point) {
|
|
|
435
430
|
void EC_POINT_clear_free(EC_POINT *point) { EC_POINT_free(point); }
|
|
436
431
|
|
|
437
432
|
int EC_POINT_copy(EC_POINT *dest, const EC_POINT *src) {
|
|
438
|
-
if (EC_GROUP_cmp(dest->group, src->group,
|
|
433
|
+
if (EC_GROUP_cmp(dest->group, src->group, nullptr) != 0) {
|
|
439
434
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
440
435
|
return 0;
|
|
441
436
|
}
|
|
@@ -447,21 +442,21 @@ int EC_POINT_copy(EC_POINT *dest, const EC_POINT *src) {
|
|
|
447
442
|
}
|
|
448
443
|
|
|
449
444
|
EC_POINT *EC_POINT_dup(const EC_POINT *a, const EC_GROUP *group) {
|
|
450
|
-
if (a ==
|
|
451
|
-
return
|
|
445
|
+
if (a == nullptr) {
|
|
446
|
+
return nullptr;
|
|
452
447
|
}
|
|
453
448
|
|
|
454
449
|
EC_POINT *ret = EC_POINT_new(group);
|
|
455
|
-
if (ret ==
|
|
450
|
+
if (ret == nullptr || !EC_POINT_copy(ret, a)) {
|
|
456
451
|
EC_POINT_free(ret);
|
|
457
|
-
return
|
|
452
|
+
return nullptr;
|
|
458
453
|
}
|
|
459
454
|
|
|
460
455
|
return ret;
|
|
461
456
|
}
|
|
462
457
|
|
|
463
458
|
int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point) {
|
|
464
|
-
if (EC_GROUP_cmp(group, point->group,
|
|
459
|
+
if (EC_GROUP_cmp(group, point->group, nullptr) != 0) {
|
|
465
460
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
466
461
|
return 0;
|
|
467
462
|
}
|
|
@@ -470,7 +465,7 @@ int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point) {
|
|
|
470
465
|
}
|
|
471
466
|
|
|
472
467
|
int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *point) {
|
|
473
|
-
if (EC_GROUP_cmp(group, point->group,
|
|
468
|
+
if (EC_GROUP_cmp(group, point->group, nullptr) != 0) {
|
|
474
469
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
475
470
|
return 0;
|
|
476
471
|
}
|
|
@@ -479,7 +474,7 @@ int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *point) {
|
|
|
479
474
|
|
|
480
475
|
int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,
|
|
481
476
|
BN_CTX *ctx) {
|
|
482
|
-
if (EC_GROUP_cmp(group, point->group,
|
|
477
|
+
if (EC_GROUP_cmp(group, point->group, nullptr) != 0) {
|
|
483
478
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
484
479
|
return 0;
|
|
485
480
|
}
|
|
@@ -488,33 +483,33 @@ int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,
|
|
|
488
483
|
|
|
489
484
|
int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b,
|
|
490
485
|
BN_CTX *ctx) {
|
|
491
|
-
if (EC_GROUP_cmp(group, a->group,
|
|
492
|
-
EC_GROUP_cmp(group, b->group,
|
|
486
|
+
if (EC_GROUP_cmp(group, a->group, nullptr) != 0 ||
|
|
487
|
+
EC_GROUP_cmp(group, b->group, nullptr) != 0) {
|
|
493
488
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
494
489
|
return -1;
|
|
495
490
|
}
|
|
496
491
|
|
|
497
|
-
// Note
|
|
492
|
+
// Note `EC_POINT_cmp` returns zero for equality and non-zero for inequality.
|
|
498
493
|
return ec_GFp_simple_points_equal(group, &a->raw, &b->raw) ? 0 : 1;
|
|
499
494
|
}
|
|
500
495
|
|
|
501
496
|
int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
|
|
502
497
|
const EC_POINT *point, BIGNUM *x,
|
|
503
498
|
BIGNUM *y, BN_CTX *ctx) {
|
|
504
|
-
if (group->meth->point_get_affine_coordinates ==
|
|
499
|
+
if (group->meth->point_get_affine_coordinates == nullptr) {
|
|
505
500
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
506
501
|
return 0;
|
|
507
502
|
}
|
|
508
|
-
if (EC_GROUP_cmp(group, point->group,
|
|
503
|
+
if (EC_GROUP_cmp(group, point->group, nullptr) != 0) {
|
|
509
504
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
510
505
|
return 0;
|
|
511
506
|
}
|
|
512
507
|
EC_FELEM x_felem, y_felem;
|
|
513
|
-
if (!group->meth->point_get_affine_coordinates(
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
(x !=
|
|
517
|
-
(y !=
|
|
508
|
+
if (!group->meth->point_get_affine_coordinates(
|
|
509
|
+
group, &point->raw, x == nullptr ? nullptr : &x_felem,
|
|
510
|
+
y == nullptr ? nullptr : &y_felem) ||
|
|
511
|
+
(x != nullptr && !ec_felem_to_bignum(group, x, &x_felem)) ||
|
|
512
|
+
(y != nullptr && !ec_felem_to_bignum(group, y, &y_felem))) {
|
|
518
513
|
return 0;
|
|
519
514
|
}
|
|
520
515
|
return 1;
|
|
@@ -526,40 +521,36 @@ int EC_POINT_get_affine_coordinates(const EC_GROUP *group,
|
|
|
526
521
|
return EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx);
|
|
527
522
|
}
|
|
528
523
|
|
|
529
|
-
void ec_affine_to_jacobian(const EC_GROUP *group, EC_JACOBIAN *out,
|
|
530
|
-
|
|
524
|
+
void bssl::ec_affine_to_jacobian(const EC_GROUP *group, EC_JACOBIAN *out,
|
|
525
|
+
const EC_AFFINE *p) {
|
|
531
526
|
out->X = p->X;
|
|
532
527
|
out->Y = p->Y;
|
|
533
528
|
out->Z = *ec_felem_one(group);
|
|
534
529
|
}
|
|
535
530
|
|
|
536
|
-
int ec_jacobian_to_affine(const EC_GROUP *group, EC_AFFINE *out,
|
|
537
|
-
|
|
531
|
+
int bssl::ec_jacobian_to_affine(const EC_GROUP *group, EC_AFFINE *out,
|
|
532
|
+
const EC_JACOBIAN *p) {
|
|
538
533
|
return group->meth->point_get_affine_coordinates(group, p, &out->X, &out->Y);
|
|
539
534
|
}
|
|
540
535
|
|
|
541
|
-
int ec_jacobian_to_affine_batch(const EC_GROUP *group, EC_AFFINE *out,
|
|
542
|
-
|
|
543
|
-
if (group->meth->jacobian_to_affine_batch ==
|
|
536
|
+
int bssl::ec_jacobian_to_affine_batch(const EC_GROUP *group, EC_AFFINE *out,
|
|
537
|
+
const EC_JACOBIAN *in, size_t num) {
|
|
538
|
+
if (group->meth->jacobian_to_affine_batch == nullptr) {
|
|
544
539
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
545
540
|
return 0;
|
|
546
541
|
}
|
|
547
542
|
return group->meth->jacobian_to_affine_batch(group, out, in, num);
|
|
548
543
|
}
|
|
549
544
|
|
|
550
|
-
int ec_point_set_affine_coordinates(const EC_GROUP *group, EC_AFFINE *out,
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
const EC_FELEM *b) = group->meth->felem_mul;
|
|
554
|
-
void (*const felem_sqr)(const EC_GROUP *, EC_FELEM *r, const EC_FELEM *a) =
|
|
555
|
-
group->meth->felem_sqr;
|
|
556
|
-
|
|
545
|
+
int bssl::ec_point_set_affine_coordinates(const EC_GROUP *group, EC_AFFINE *out,
|
|
546
|
+
const EC_FELEM *x,
|
|
547
|
+
const EC_FELEM *y) {
|
|
557
548
|
// Check if the point is on the curve.
|
|
558
549
|
EC_FELEM lhs, rhs;
|
|
559
|
-
|
|
560
|
-
|
|
550
|
+
ec_felem_sqr(group, &lhs, y); // lhs = y^2
|
|
551
|
+
ec_felem_sqr(group, &rhs, x); // rhs = x^2
|
|
561
552
|
ec_felem_add(group, &rhs, &rhs, &group->a); // rhs = x^2 + a
|
|
562
|
-
|
|
553
|
+
ec_felem_mul(group, &rhs, &rhs, x); // rhs = x^3 + ax
|
|
563
554
|
ec_felem_add(group, &rhs, &rhs, &group->b); // rhs = x^3 + ax + b
|
|
564
555
|
if (!ec_felem_equal(group, &lhs, &rhs)) {
|
|
565
556
|
OPENSSL_PUT_ERROR(EC, EC_R_POINT_IS_NOT_ON_CURVE);
|
|
@@ -582,12 +573,12 @@ int ec_point_set_affine_coordinates(const EC_GROUP *group, EC_AFFINE *out,
|
|
|
582
573
|
int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *point,
|
|
583
574
|
const BIGNUM *x, const BIGNUM *y,
|
|
584
575
|
BN_CTX *ctx) {
|
|
585
|
-
if (EC_GROUP_cmp(group, point->group,
|
|
576
|
+
if (EC_GROUP_cmp(group, point->group, nullptr) != 0) {
|
|
586
577
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
587
578
|
return 0;
|
|
588
579
|
}
|
|
589
580
|
|
|
590
|
-
if (x ==
|
|
581
|
+
if (x == nullptr || y == nullptr) {
|
|
591
582
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
|
592
583
|
return 0;
|
|
593
584
|
}
|
|
@@ -615,9 +606,9 @@ int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *point,
|
|
|
615
606
|
|
|
616
607
|
int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
|
|
617
608
|
const EC_POINT *b, BN_CTX *ctx) {
|
|
618
|
-
if (EC_GROUP_cmp(group, r->group,
|
|
619
|
-
EC_GROUP_cmp(group, a->group,
|
|
620
|
-
EC_GROUP_cmp(group, b->group,
|
|
609
|
+
if (EC_GROUP_cmp(group, r->group, nullptr) != 0 ||
|
|
610
|
+
EC_GROUP_cmp(group, a->group, nullptr) != 0 ||
|
|
611
|
+
EC_GROUP_cmp(group, b->group, nullptr) != 0) {
|
|
621
612
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
622
613
|
return 0;
|
|
623
614
|
}
|
|
@@ -627,8 +618,8 @@ int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
|
|
|
627
618
|
|
|
628
619
|
int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
|
|
629
620
|
BN_CTX *ctx) {
|
|
630
|
-
if (EC_GROUP_cmp(group, r->group,
|
|
631
|
-
EC_GROUP_cmp(group, a->group,
|
|
621
|
+
if (EC_GROUP_cmp(group, r->group, nullptr) != 0 ||
|
|
622
|
+
EC_GROUP_cmp(group, a->group, nullptr) != 0) {
|
|
632
623
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
633
624
|
return 0;
|
|
634
625
|
}
|
|
@@ -638,7 +629,7 @@ int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
|
|
|
638
629
|
|
|
639
630
|
|
|
640
631
|
int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx) {
|
|
641
|
-
if (EC_GROUP_cmp(group, a->group,
|
|
632
|
+
if (EC_GROUP_cmp(group, a->group, nullptr) != 0) {
|
|
642
633
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
643
634
|
return 0;
|
|
644
635
|
}
|
|
@@ -655,43 +646,41 @@ static int arbitrary_bignum_to_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
|
|
655
646
|
ERR_clear_error();
|
|
656
647
|
|
|
657
648
|
// This is an unusual input, so we do not guarantee constant-time processing.
|
|
658
|
-
|
|
649
|
+
BN_CTXScope scope(ctx);
|
|
659
650
|
BIGNUM *tmp = BN_CTX_get(ctx);
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
BN_CTX_end(ctx);
|
|
663
|
-
return ok;
|
|
651
|
+
return tmp != nullptr && BN_nnmod(tmp, in, EC_GROUP_get0_order(group), ctx) &&
|
|
652
|
+
ec_bignum_to_scalar(group, out, tmp);
|
|
664
653
|
}
|
|
665
654
|
|
|
666
|
-
int ec_point_mul_no_self_test(const EC_GROUP *group, EC_POINT *r,
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
// Previously, this function set
|
|
655
|
+
int bssl::ec_point_mul_no_self_test(const EC_GROUP *group, EC_POINT *r,
|
|
656
|
+
const BIGNUM *g_scalar, const EC_POINT *p,
|
|
657
|
+
const BIGNUM *p_scalar, BN_CTX *ctx) {
|
|
658
|
+
// Previously, this function set `r` to the point at infinity if there was
|
|
670
659
|
// nothing to multiply. But, nobody should be calling this function with
|
|
671
660
|
// nothing to multiply in the first place.
|
|
672
|
-
if ((g_scalar ==
|
|
673
|
-
(p ==
|
|
661
|
+
if ((g_scalar == nullptr && p_scalar == nullptr) ||
|
|
662
|
+
(p == nullptr) != (p_scalar == nullptr)) {
|
|
674
663
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
|
675
664
|
return 0;
|
|
676
665
|
}
|
|
677
666
|
|
|
678
|
-
if (EC_GROUP_cmp(group, r->group,
|
|
679
|
-
(p !=
|
|
667
|
+
if (EC_GROUP_cmp(group, r->group, nullptr) != 0 ||
|
|
668
|
+
(p != nullptr && EC_GROUP_cmp(group, p->group, nullptr) != 0)) {
|
|
680
669
|
OPENSSL_PUT_ERROR(EC, EC_R_INCOMPATIBLE_OBJECTS);
|
|
681
670
|
return 0;
|
|
682
671
|
}
|
|
683
672
|
|
|
684
|
-
|
|
685
|
-
if (ctx ==
|
|
673
|
+
UniquePtr<BN_CTX> new_ctx;
|
|
674
|
+
if (ctx == nullptr) {
|
|
686
675
|
new_ctx.reset(BN_CTX_new());
|
|
687
|
-
if (new_ctx ==
|
|
676
|
+
if (new_ctx == nullptr) {
|
|
688
677
|
return 0;
|
|
689
678
|
}
|
|
690
679
|
ctx = new_ctx.get();
|
|
691
680
|
}
|
|
692
681
|
|
|
693
|
-
// If both
|
|
694
|
-
//
|
|
682
|
+
// If both `g_scalar` and `p_scalar` are non-NULL,
|
|
683
|
+
// `ec_point_mul_scalar_public` would share the doublings between the two
|
|
695
684
|
// products, which would be more efficient. However, we conservatively assume
|
|
696
685
|
// the caller needs a constant-time operation. (ECDSA verification does not
|
|
697
686
|
// use this function.)
|
|
@@ -701,7 +690,7 @@ int ec_point_mul_no_self_test(const EC_GROUP *group, EC_POINT *r,
|
|
|
701
690
|
// which combined the two multiplications did not avoid the doubling case
|
|
702
691
|
// in the incomplete addition formula and were not constant-time.
|
|
703
692
|
|
|
704
|
-
if (g_scalar !=
|
|
693
|
+
if (g_scalar != nullptr) {
|
|
705
694
|
EC_SCALAR scalar;
|
|
706
695
|
if (!arbitrary_bignum_to_scalar(group, &scalar, g_scalar, ctx) ||
|
|
707
696
|
!ec_point_mul_scalar_base(group, &r->raw, &scalar)) {
|
|
@@ -709,14 +698,14 @@ int ec_point_mul_no_self_test(const EC_GROUP *group, EC_POINT *r,
|
|
|
709
698
|
}
|
|
710
699
|
}
|
|
711
700
|
|
|
712
|
-
if (p_scalar !=
|
|
701
|
+
if (p_scalar != nullptr) {
|
|
713
702
|
EC_SCALAR scalar;
|
|
714
703
|
EC_JACOBIAN tmp;
|
|
715
704
|
if (!arbitrary_bignum_to_scalar(group, &scalar, p_scalar, ctx) ||
|
|
716
705
|
!ec_point_mul_scalar(group, &tmp, &p->raw, &scalar)) {
|
|
717
706
|
return 0;
|
|
718
707
|
}
|
|
719
|
-
if (g_scalar ==
|
|
708
|
+
if (g_scalar == nullptr) {
|
|
720
709
|
OPENSSL_memcpy(&r->raw, &tmp, sizeof(EC_JACOBIAN));
|
|
721
710
|
} else {
|
|
722
711
|
group->meth->add(group, &r->raw, &r->raw, &tmp);
|
|
@@ -733,15 +722,16 @@ int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *g_scalar,
|
|
|
733
722
|
return ec_point_mul_no_self_test(group, r, g_scalar, p, p_scalar, ctx);
|
|
734
723
|
}
|
|
735
724
|
|
|
736
|
-
int ec_point_mul_scalar_public(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
725
|
+
int bssl::ec_point_mul_scalar_public(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
726
|
+
const EC_SCALAR *g_scalar,
|
|
727
|
+
const EC_JACOBIAN *p,
|
|
728
|
+
const EC_SCALAR *p_scalar) {
|
|
729
|
+
if (g_scalar == nullptr || p_scalar == nullptr || p == nullptr) {
|
|
740
730
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
|
741
731
|
return 0;
|
|
742
732
|
}
|
|
743
733
|
|
|
744
|
-
if (group->meth->mul_public ==
|
|
734
|
+
if (group->meth->mul_public == nullptr) {
|
|
745
735
|
return group->meth->mul_public_batch(group, r, g_scalar, p, p_scalar, 1);
|
|
746
736
|
}
|
|
747
737
|
|
|
@@ -749,11 +739,10 @@ int ec_point_mul_scalar_public(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
|
749
739
|
return 1;
|
|
750
740
|
}
|
|
751
741
|
|
|
752
|
-
int ec_point_mul_scalar_public_batch(
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
if (group->meth->mul_public_batch == NULL) {
|
|
742
|
+
int bssl::ec_point_mul_scalar_public_batch(
|
|
743
|
+
const EC_GROUP *group, EC_JACOBIAN *r, const EC_SCALAR *g_scalar,
|
|
744
|
+
const EC_JACOBIAN *points, const EC_SCALAR *scalars, size_t num) {
|
|
745
|
+
if (group->meth->mul_public_batch == nullptr) {
|
|
757
746
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
758
747
|
return 0;
|
|
759
748
|
}
|
|
@@ -762,9 +751,9 @@ int ec_point_mul_scalar_public_batch(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
|
762
751
|
num);
|
|
763
752
|
}
|
|
764
753
|
|
|
765
|
-
int ec_point_mul_scalar(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
766
|
-
|
|
767
|
-
if (p ==
|
|
754
|
+
int bssl::ec_point_mul_scalar(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
755
|
+
const EC_JACOBIAN *p, const EC_SCALAR *scalar) {
|
|
756
|
+
if (p == nullptr || scalar == nullptr) {
|
|
768
757
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
|
769
758
|
return 0;
|
|
770
759
|
}
|
|
@@ -773,7 +762,7 @@ int ec_point_mul_scalar(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
|
773
762
|
|
|
774
763
|
// Check the result is on the curve to defend against fault attacks or bugs.
|
|
775
764
|
// This has negligible cost compared to the multiplication.
|
|
776
|
-
if (!ec_GFp_simple_is_on_curve(group, r)) {
|
|
765
|
+
if (!constant_time_declassify_int(ec_GFp_simple_is_on_curve(group, r))) {
|
|
777
766
|
OPENSSL_PUT_ERROR(EC, ERR_R_INTERNAL_ERROR);
|
|
778
767
|
return 0;
|
|
779
768
|
}
|
|
@@ -781,9 +770,9 @@ int ec_point_mul_scalar(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
|
781
770
|
return 1;
|
|
782
771
|
}
|
|
783
772
|
|
|
784
|
-
int ec_point_mul_scalar_base(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
785
|
-
|
|
786
|
-
if (scalar ==
|
|
773
|
+
int bssl::ec_point_mul_scalar_base(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
774
|
+
const EC_SCALAR *scalar) {
|
|
775
|
+
if (scalar == nullptr) {
|
|
787
776
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
|
788
777
|
return 0;
|
|
789
778
|
}
|
|
@@ -802,11 +791,11 @@ int ec_point_mul_scalar_base(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
|
802
791
|
return 1;
|
|
803
792
|
}
|
|
804
793
|
|
|
805
|
-
int ec_point_mul_scalar_batch(
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
if (group->meth->mul_batch ==
|
|
794
|
+
int bssl::ec_point_mul_scalar_batch(
|
|
795
|
+
const EC_GROUP *group, EC_JACOBIAN *r, const EC_JACOBIAN *p0,
|
|
796
|
+
const EC_SCALAR *scalar0, const EC_JACOBIAN *p1, const EC_SCALAR *scalar1,
|
|
797
|
+
const EC_JACOBIAN *p2, const EC_SCALAR *scalar2) {
|
|
798
|
+
if (group->meth->mul_batch == nullptr) {
|
|
810
799
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
811
800
|
return 0;
|
|
812
801
|
}
|
|
@@ -823,9 +812,9 @@ int ec_point_mul_scalar_batch(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
|
823
812
|
return 1;
|
|
824
813
|
}
|
|
825
814
|
|
|
826
|
-
int ec_init_precomp(const EC_GROUP *group, EC_PRECOMP *out,
|
|
827
|
-
|
|
828
|
-
if (group->meth->init_precomp ==
|
|
815
|
+
int bssl::ec_init_precomp(const EC_GROUP *group, EC_PRECOMP *out,
|
|
816
|
+
const EC_JACOBIAN *p) {
|
|
817
|
+
if (group->meth->init_precomp == nullptr) {
|
|
829
818
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
830
819
|
return 0;
|
|
831
820
|
}
|
|
@@ -833,12 +822,11 @@ int ec_init_precomp(const EC_GROUP *group, EC_PRECOMP *out,
|
|
|
833
822
|
return group->meth->init_precomp(group, out, p);
|
|
834
823
|
}
|
|
835
824
|
|
|
836
|
-
int ec_point_mul_scalar_precomp(
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
if (group->meth->mul_precomp == NULL) {
|
|
825
|
+
int bssl::ec_point_mul_scalar_precomp(
|
|
826
|
+
const EC_GROUP *group, EC_JACOBIAN *r, const EC_PRECOMP *p0,
|
|
827
|
+
const EC_SCALAR *scalar0, const EC_PRECOMP *p1, const EC_SCALAR *scalar1,
|
|
828
|
+
const EC_PRECOMP *p2, const EC_SCALAR *scalar2) {
|
|
829
|
+
if (group->meth->mul_precomp == nullptr) {
|
|
842
830
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
|
843
831
|
return 0;
|
|
844
832
|
}
|
|
@@ -855,35 +843,38 @@ int ec_point_mul_scalar_precomp(const EC_GROUP *group, EC_JACOBIAN *r,
|
|
|
855
843
|
return 1;
|
|
856
844
|
}
|
|
857
845
|
|
|
858
|
-
void ec_point_select(const EC_GROUP *group, EC_JACOBIAN *out,
|
|
859
|
-
|
|
846
|
+
void bssl::ec_point_select(const EC_GROUP *group, EC_JACOBIAN *out,
|
|
847
|
+
BN_ULONG mask, const EC_JACOBIAN *a,
|
|
848
|
+
const EC_JACOBIAN *b) {
|
|
860
849
|
ec_felem_select(group, &out->X, mask, &a->X, &b->X);
|
|
861
850
|
ec_felem_select(group, &out->Y, mask, &a->Y, &b->Y);
|
|
862
851
|
ec_felem_select(group, &out->Z, mask, &a->Z, &b->Z);
|
|
863
852
|
}
|
|
864
853
|
|
|
865
|
-
void ec_affine_select(const EC_GROUP *group, EC_AFFINE *out,
|
|
866
|
-
|
|
854
|
+
void bssl::ec_affine_select(const EC_GROUP *group, EC_AFFINE *out,
|
|
855
|
+
BN_ULONG mask, const EC_AFFINE *a,
|
|
856
|
+
const EC_AFFINE *b) {
|
|
867
857
|
ec_felem_select(group, &out->X, mask, &a->X, &b->X);
|
|
868
858
|
ec_felem_select(group, &out->Y, mask, &a->Y, &b->Y);
|
|
869
859
|
}
|
|
870
860
|
|
|
871
|
-
void ec_precomp_select(const EC_GROUP *group, EC_PRECOMP *out,
|
|
872
|
-
|
|
861
|
+
void bssl::ec_precomp_select(const EC_GROUP *group, EC_PRECOMP *out,
|
|
862
|
+
BN_ULONG mask, const EC_PRECOMP *a,
|
|
863
|
+
const EC_PRECOMP *b) {
|
|
873
864
|
static_assert(sizeof(out->comb) == sizeof(*out),
|
|
874
865
|
"out->comb does not span the entire structure");
|
|
875
|
-
for (size_t i = 0; i <
|
|
866
|
+
for (size_t i = 0; i < std::size(out->comb); i++) {
|
|
876
867
|
ec_affine_select(group, &out->comb[i], mask, &a->comb[i], &b->comb[i]);
|
|
877
868
|
}
|
|
878
869
|
}
|
|
879
870
|
|
|
880
|
-
int ec_cmp_x_coordinate(const EC_GROUP *group, const EC_JACOBIAN *p,
|
|
881
|
-
|
|
871
|
+
int bssl::ec_cmp_x_coordinate(const EC_GROUP *group, const EC_JACOBIAN *p,
|
|
872
|
+
const EC_SCALAR *r) {
|
|
882
873
|
return group->meth->cmp_x_coordinate(group, p, r);
|
|
883
874
|
}
|
|
884
875
|
|
|
885
|
-
int ec_get_x_coordinate_as_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
|
886
|
-
|
|
876
|
+
int bssl::ec_get_x_coordinate_as_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
|
877
|
+
const EC_JACOBIAN *p) {
|
|
887
878
|
uint8_t bytes[EC_MAX_BYTES];
|
|
888
879
|
size_t len;
|
|
889
880
|
if (!ec_get_x_coordinate_as_bytes(group, bytes, &len, sizeof(bytes), p)) {
|
|
@@ -894,7 +885,7 @@ int ec_get_x_coordinate_as_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
|
|
894
885
|
// order. These may not have the same size. However, we must have p < 2×order,
|
|
895
886
|
// assuming p is not tiny (p >= 17).
|
|
896
887
|
//
|
|
897
|
-
// Thus
|
|
888
|
+
// Thus `bytes` will fit in `order.width + 1` words, and we can reduce by
|
|
898
889
|
// performing at most one subtraction.
|
|
899
890
|
//
|
|
900
891
|
// Proof: We only work with prime order curves, so the number of points on
|
|
@@ -908,7 +899,7 @@ int ec_get_x_coordinate_as_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
|
|
908
899
|
// p < 2×order
|
|
909
900
|
//
|
|
910
901
|
// Additionally, one can manually check this property for built-in curves. It
|
|
911
|
-
// is enforced for legacy custom curves in
|
|
902
|
+
// is enforced for legacy custom curves in `EC_GROUP_set_generator`.
|
|
912
903
|
const BIGNUM *order = EC_GROUP_get0_order(group);
|
|
913
904
|
BN_ULONG words[EC_MAX_WORDS + 1] = {0};
|
|
914
905
|
bn_big_endian_to_words(words, order->width + 1, bytes, len);
|
|
@@ -917,9 +908,9 @@ int ec_get_x_coordinate_as_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
|
|
917
908
|
return 1;
|
|
918
909
|
}
|
|
919
910
|
|
|
920
|
-
int ec_get_x_coordinate_as_bytes(const EC_GROUP *group, uint8_t *out,
|
|
921
|
-
|
|
922
|
-
|
|
911
|
+
int bssl::ec_get_x_coordinate_as_bytes(const EC_GROUP *group, uint8_t *out,
|
|
912
|
+
size_t *out_len, size_t max_out,
|
|
913
|
+
const EC_JACOBIAN *p) {
|
|
923
914
|
size_t len = BN_num_bytes(&group->field.N);
|
|
924
915
|
assert(len <= EC_MAX_BYTES);
|
|
925
916
|
if (max_out < len) {
|
|
@@ -928,7 +919,7 @@ int ec_get_x_coordinate_as_bytes(const EC_GROUP *group, uint8_t *out,
|
|
|
928
919
|
}
|
|
929
920
|
|
|
930
921
|
EC_FELEM x;
|
|
931
|
-
if (!group->meth->point_get_affine_coordinates(group, p, &x,
|
|
922
|
+
if (!group->meth->point_get_affine_coordinates(group, p, &x, nullptr)) {
|
|
932
923
|
return 0;
|
|
933
924
|
}
|
|
934
925
|
|
|
@@ -937,7 +928,7 @@ int ec_get_x_coordinate_as_bytes(const EC_GROUP *group, uint8_t *out,
|
|
|
937
928
|
return 1;
|
|
938
929
|
}
|
|
939
930
|
|
|
940
|
-
void ec_set_to_safe_point(const EC_GROUP *group, EC_JACOBIAN *out) {
|
|
931
|
+
void bssl::ec_set_to_safe_point(const EC_GROUP *group, EC_JACOBIAN *out) {
|
|
941
932
|
if (group->has_order) {
|
|
942
933
|
ec_GFp_simple_point_copy(out, &group->generator.raw);
|
|
943
934
|
} else {
|
|
@@ -956,7 +947,7 @@ int EC_GROUP_get_asn1_flag(const EC_GROUP *group) {
|
|
|
956
947
|
|
|
957
948
|
const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group) {
|
|
958
949
|
// This function exists purely to give callers a way to call
|
|
959
|
-
//
|
|
950
|
+
// `EC_METHOD_get_field_type`. cryptography.io crashes if `EC_GROUP_method_of`
|
|
960
951
|
// returns NULL, so return some other garbage pointer.
|
|
961
952
|
return (const EC_METHOD *)0x12340000;
|
|
962
953
|
}
|