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
|
@@ -14,13 +14,18 @@
|
|
|
14
14
|
|
|
15
15
|
#include <openssl/bn.h>
|
|
16
16
|
|
|
17
|
+
#include <iterator>
|
|
18
|
+
|
|
17
19
|
#include <openssl/err.h>
|
|
18
20
|
#include <openssl/mem.h>
|
|
19
21
|
|
|
20
22
|
#include "../../internal.h"
|
|
23
|
+
#include "../../mem_internal.h"
|
|
21
24
|
#include "internal.h"
|
|
22
25
|
|
|
23
26
|
|
|
27
|
+
using namespace bssl;
|
|
28
|
+
|
|
24
29
|
// kPrimes contains the first 1024 primes.
|
|
25
30
|
static const uint16_t kPrimes[] = {
|
|
26
31
|
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
|
|
@@ -115,9 +120,9 @@ static const uint16_t kPrimes[] = {
|
|
|
115
120
|
// necessary for generating a 'bits'-bit candidate prime.
|
|
116
121
|
//
|
|
117
122
|
//
|
|
118
|
-
// This table is generated using the algorithm of FIPS PUB 186-
|
|
119
|
-
// Digital Signature Standard (DSS), section
|
|
120
|
-
// (https://doi.org/10.6028/NIST.FIPS.186-
|
|
123
|
+
// This table is generated using the algorithm of FIPS PUB 186-5
|
|
124
|
+
// Digital Signature Standard (DSS), section C.1, page 72.
|
|
125
|
+
// (https://doi.org/10.6028/NIST.FIPS.186-5).
|
|
121
126
|
// The following magma script was used to generate the output:
|
|
122
127
|
// securitybits:=125;
|
|
123
128
|
// k:=1024;
|
|
@@ -193,15 +198,15 @@ static int BN_prime_checks_for_size(int bits) {
|
|
|
193
198
|
// of excluding a candidate with trial division is larger.
|
|
194
199
|
static size_t num_trial_division_primes(const BIGNUM *n) {
|
|
195
200
|
if (n->width * BN_BITS2 > 1024) {
|
|
196
|
-
return
|
|
201
|
+
return std::size(kPrimes);
|
|
197
202
|
}
|
|
198
|
-
return
|
|
203
|
+
return std::size(kPrimes) / 2;
|
|
199
204
|
}
|
|
200
205
|
|
|
201
206
|
// BN_PRIME_CHECKS_BLINDED is the iteration count for blinding the constant-time
|
|
202
|
-
// primality test. See
|
|
203
|
-
// so that, for a candidate N-bit RSA prime, picking
|
|
204
|
-
// random N-bit numbers will have at least
|
|
207
|
+
// primality test. See `BN_primality_test` for details. This number is selected
|
|
208
|
+
// so that, for a candidate N-bit RSA prime, picking `BN_PRIME_CHECKS_BLINDED`
|
|
209
|
+
// random N-bit numbers will have at least `BN_prime_checks_for_size(N)` values
|
|
205
210
|
// in range with high probability.
|
|
206
211
|
//
|
|
207
212
|
// The following Python script computes the blinding factor needed for the
|
|
@@ -226,8 +231,8 @@ def choose(a, b):
|
|
|
226
231
|
return r
|
|
227
232
|
|
|
228
233
|
def failure_rate(min_uniform, iterations):
|
|
229
|
-
""" Returns the probability that, for
|
|
230
|
-
than
|
|
234
|
+
""" Returns the probability that, for `iterations` candidate witnesses, fewer
|
|
235
|
+
than `min_uniform` of them will be uniform. """
|
|
231
236
|
prob = 0.0
|
|
232
237
|
for i in xrange(min_uniform):
|
|
233
238
|
prob += (choose(iterations, i) *
|
|
@@ -265,11 +270,9 @@ static int probable_prime_dh(BIGNUM *rnd, int bits, const BIGNUM *add,
|
|
|
265
270
|
static int probable_prime_dh_safe(BIGNUM *rnd, int bits, const BIGNUM *add,
|
|
266
271
|
const BIGNUM *rem, BN_CTX *ctx);
|
|
267
272
|
|
|
268
|
-
BN_GENCB *BN_GENCB_new(
|
|
269
|
-
return reinterpret_cast<BN_GENCB *>(OPENSSL_zalloc(sizeof(BN_GENCB)));
|
|
270
|
-
}
|
|
273
|
+
BN_GENCB *BN_GENCB_new() { return New<BN_GENCB>(); }
|
|
271
274
|
|
|
272
|
-
void BN_GENCB_free(BN_GENCB *callback) {
|
|
275
|
+
void BN_GENCB_free(BN_GENCB *callback) { Delete(callback); }
|
|
273
276
|
|
|
274
277
|
void BN_GENCB_set(BN_GENCB *callback,
|
|
275
278
|
int (*f)(int event, int n, struct bn_gencb_st *), void *arg) {
|
|
@@ -290,9 +293,7 @@ void *BN_GENCB_get_arg(const BN_GENCB *callback) { return callback->arg; }
|
|
|
290
293
|
int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add,
|
|
291
294
|
const BIGNUM *rem, BN_GENCB *cb) {
|
|
292
295
|
BIGNUM *t;
|
|
293
|
-
int found = 0;
|
|
294
296
|
int i, j, c1 = 0;
|
|
295
|
-
BN_CTX *ctx;
|
|
296
297
|
int checks = BN_prime_checks_for_size(bits);
|
|
297
298
|
|
|
298
299
|
if (bits < 2) {
|
|
@@ -305,43 +306,43 @@ int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add,
|
|
|
305
306
|
return 0;
|
|
306
307
|
}
|
|
307
308
|
|
|
308
|
-
ctx
|
|
309
|
-
if (ctx ==
|
|
310
|
-
|
|
309
|
+
UniquePtr<BN_CTX> ctx(BN_CTX_new());
|
|
310
|
+
if (ctx == nullptr) {
|
|
311
|
+
return 0;
|
|
311
312
|
}
|
|
312
|
-
|
|
313
|
-
t = BN_CTX_get(ctx);
|
|
313
|
+
BN_CTXScope scope(ctx.get());
|
|
314
|
+
t = BN_CTX_get(ctx.get());
|
|
314
315
|
if (!t) {
|
|
315
|
-
|
|
316
|
+
return 0;
|
|
316
317
|
}
|
|
317
318
|
|
|
318
319
|
loop:
|
|
319
320
|
// make a random number and set the top and bottom bits
|
|
320
|
-
if (add ==
|
|
321
|
+
if (add == nullptr) {
|
|
321
322
|
if (!probable_prime(ret, bits)) {
|
|
322
|
-
|
|
323
|
+
return 0;
|
|
323
324
|
}
|
|
324
325
|
} else {
|
|
325
326
|
if (safe) {
|
|
326
|
-
if (!probable_prime_dh_safe(ret, bits, add, rem, ctx)) {
|
|
327
|
-
|
|
327
|
+
if (!probable_prime_dh_safe(ret, bits, add, rem, ctx.get())) {
|
|
328
|
+
return 0;
|
|
328
329
|
}
|
|
329
330
|
} else {
|
|
330
|
-
if (!probable_prime_dh(ret, bits, add, rem, ctx)) {
|
|
331
|
-
|
|
331
|
+
if (!probable_prime_dh(ret, bits, add, rem, ctx.get())) {
|
|
332
|
+
return 0;
|
|
332
333
|
}
|
|
333
334
|
}
|
|
334
335
|
}
|
|
335
336
|
|
|
336
337
|
if (!BN_GENCB_call(cb, BN_GENCB_GENERATED, c1++)) {
|
|
337
338
|
// aborted
|
|
338
|
-
|
|
339
|
+
return 0;
|
|
339
340
|
}
|
|
340
341
|
|
|
341
342
|
if (!safe) {
|
|
342
|
-
i = BN_is_prime_fasttest_ex(ret, checks, ctx, 0, cb);
|
|
343
|
+
i = BN_is_prime_fasttest_ex(ret, checks, ctx.get(), 0, cb);
|
|
343
344
|
if (i == -1) {
|
|
344
|
-
|
|
345
|
+
return 0;
|
|
345
346
|
} else if (i == 0) {
|
|
346
347
|
goto loop;
|
|
347
348
|
}
|
|
@@ -349,52 +350,44 @@ loop:
|
|
|
349
350
|
// for "safe prime" generation, check that (p-1)/2 is prime. Since a prime
|
|
350
351
|
// is odd, We just need to divide by 2
|
|
351
352
|
if (!BN_rshift1(t, ret)) {
|
|
352
|
-
|
|
353
|
+
return 0;
|
|
353
354
|
}
|
|
354
355
|
|
|
355
|
-
// Interleave
|
|
356
|
-
// iteration count on
|
|
356
|
+
// Interleave `ret` and `t`'s primality tests to avoid paying the full
|
|
357
|
+
// iteration count on `ret` only to quickly discover `t` is composite.
|
|
357
358
|
//
|
|
358
359
|
// TODO(davidben): This doesn't quite work because an iteration count of 1
|
|
359
360
|
// still runs the blinding mechanism.
|
|
360
361
|
for (i = 0; i < checks; i++) {
|
|
361
|
-
j = BN_is_prime_fasttest_ex(ret, 1, ctx, 0,
|
|
362
|
+
j = BN_is_prime_fasttest_ex(ret, 1, ctx.get(), 0, nullptr);
|
|
362
363
|
if (j == -1) {
|
|
363
|
-
|
|
364
|
+
return 0;
|
|
364
365
|
} else if (j == 0) {
|
|
365
366
|
goto loop;
|
|
366
367
|
}
|
|
367
368
|
|
|
368
|
-
j = BN_is_prime_fasttest_ex(t, 1, ctx, 0,
|
|
369
|
+
j = BN_is_prime_fasttest_ex(t, 1, ctx.get(), 0, nullptr);
|
|
369
370
|
if (j == -1) {
|
|
370
|
-
|
|
371
|
+
return 0;
|
|
371
372
|
} else if (j == 0) {
|
|
372
373
|
goto loop;
|
|
373
374
|
}
|
|
374
375
|
|
|
375
376
|
if (!BN_GENCB_call(cb, BN_GENCB_PRIME_TEST, i)) {
|
|
376
|
-
|
|
377
|
+
return 0;
|
|
377
378
|
}
|
|
378
379
|
// We have a safe prime test pass
|
|
379
380
|
}
|
|
380
381
|
}
|
|
381
382
|
|
|
382
383
|
// we have a prime :-)
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
err:
|
|
386
|
-
if (ctx != NULL) {
|
|
387
|
-
BN_CTX_end(ctx);
|
|
388
|
-
BN_CTX_free(ctx);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
return found;
|
|
384
|
+
return 1;
|
|
392
385
|
}
|
|
393
386
|
|
|
394
387
|
static int bn_trial_division(uint16_t *out, const BIGNUM *bn) {
|
|
395
388
|
const size_t num_primes = num_trial_division_primes(bn);
|
|
396
389
|
for (size_t i = 1; i < num_primes; i++) {
|
|
397
|
-
// During RSA key generation,
|
|
390
|
+
// During RSA key generation, `bn` may be secret, but only if `bn` was
|
|
398
391
|
// prime, so it is safe to leak failed trial divisions.
|
|
399
392
|
if (constant_time_declassify_int(bn_mod_u16_consttime(bn, kPrimes[i]) ==
|
|
400
393
|
0)) {
|
|
@@ -405,29 +398,29 @@ static int bn_trial_division(uint16_t *out, const BIGNUM *bn) {
|
|
|
405
398
|
return 0;
|
|
406
399
|
}
|
|
407
400
|
|
|
408
|
-
int bn_odd_number_is_obviously_composite(const BIGNUM *bn) {
|
|
401
|
+
int bssl::bn_odd_number_is_obviously_composite(const BIGNUM *bn) {
|
|
409
402
|
uint16_t prime;
|
|
410
403
|
return bn_trial_division(&prime, bn) && !BN_is_word(bn, prime);
|
|
411
404
|
}
|
|
412
405
|
|
|
413
|
-
int bn_miller_rabin_init(BN_MILLER_RABIN *miller_rabin,
|
|
414
|
-
|
|
415
|
-
// This function corresponds to steps 1 through 3 of FIPS 186-
|
|
406
|
+
int bssl::bn_miller_rabin_init(BN_MILLER_RABIN *miller_rabin,
|
|
407
|
+
const BN_MONT_CTX *mont, BN_CTX *ctx) {
|
|
408
|
+
// This function corresponds to steps 1 through 3 of FIPS 186-5, B.3.1.
|
|
416
409
|
const BIGNUM *w = &mont->N;
|
|
417
|
-
// Note we do not call
|
|
410
|
+
// Note we do not call `BN_CTX_start` in this function. We intentionally
|
|
418
411
|
// allocate values in the containing scope so they outlive this function.
|
|
419
412
|
miller_rabin->w1 = BN_CTX_get(ctx);
|
|
420
413
|
miller_rabin->m = BN_CTX_get(ctx);
|
|
421
414
|
miller_rabin->one_mont = BN_CTX_get(ctx);
|
|
422
415
|
miller_rabin->w1_mont = BN_CTX_get(ctx);
|
|
423
|
-
if (miller_rabin->w1 ==
|
|
424
|
-
miller_rabin->m ==
|
|
425
|
-
miller_rabin->one_mont ==
|
|
426
|
-
miller_rabin->w1_mont ==
|
|
416
|
+
if (miller_rabin->w1 == nullptr || //
|
|
417
|
+
miller_rabin->m == nullptr || //
|
|
418
|
+
miller_rabin->one_mont == nullptr || //
|
|
419
|
+
miller_rabin->w1_mont == nullptr) {
|
|
427
420
|
return 0;
|
|
428
421
|
}
|
|
429
422
|
|
|
430
|
-
// See FIPS 186-
|
|
423
|
+
// See FIPS 186-5, B.3.1, steps 1 through 3.
|
|
431
424
|
if (!bn_usub_consttime(miller_rabin->w1, w, BN_value_one())) {
|
|
432
425
|
return 0;
|
|
433
426
|
}
|
|
@@ -441,7 +434,7 @@ int bn_miller_rabin_init(BN_MILLER_RABIN *miller_rabin, const BN_MONT_CTX *mont,
|
|
|
441
434
|
// Precompute some values in Montgomery form.
|
|
442
435
|
if (!bn_one_to_montgomery(miller_rabin->one_mont, mont, ctx) ||
|
|
443
436
|
// w - 1 is -1 mod w, so we can compute it in the Montgomery domain, -R,
|
|
444
|
-
// with a subtraction. (
|
|
437
|
+
// with a subtraction. (`one_mont` cannot be zero.)
|
|
445
438
|
!bn_usub_consttime(miller_rabin->w1_mont, w, miller_rabin->one_mont)) {
|
|
446
439
|
return 0;
|
|
447
440
|
}
|
|
@@ -449,26 +442,25 @@ int bn_miller_rabin_init(BN_MILLER_RABIN *miller_rabin, const BN_MONT_CTX *mont,
|
|
|
449
442
|
return 1;
|
|
450
443
|
}
|
|
451
444
|
|
|
452
|
-
int bn_miller_rabin_iteration(const BN_MILLER_RABIN *miller_rabin,
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
// This function corresponds to steps 4.3 through 4.5 of FIPS 186-
|
|
456
|
-
|
|
457
|
-
BN_CTX_start(ctx);
|
|
445
|
+
int bssl::bn_miller_rabin_iteration(const BN_MILLER_RABIN *miller_rabin,
|
|
446
|
+
int *out_is_possibly_prime, const BIGNUM *b,
|
|
447
|
+
const BN_MONT_CTX *mont, BN_CTX *ctx) {
|
|
448
|
+
// This function corresponds to steps 4.3 through 4.5 of FIPS 186-5, B.3.1.
|
|
449
|
+
BN_CTXScope scope(ctx);
|
|
458
450
|
|
|
459
451
|
// Step 4.3. We use Montgomery-encoding for better performance and to avoid
|
|
460
452
|
// timing leaks.
|
|
461
453
|
const BIGNUM *w = &mont->N;
|
|
462
454
|
BIGNUM *z = BN_CTX_get(ctx);
|
|
463
455
|
crypto_word_t is_possibly_prime;
|
|
464
|
-
if (z ==
|
|
456
|
+
if (z == nullptr ||
|
|
465
457
|
!BN_mod_exp_mont_consttime(z, b, miller_rabin->m, w, ctx, mont) ||
|
|
466
458
|
!BN_to_montgomery(z, z, mont, ctx)) {
|
|
467
|
-
|
|
459
|
+
return 0;
|
|
468
460
|
}
|
|
469
461
|
|
|
470
|
-
// is_possibly_prime is all ones if we have determined
|
|
471
|
-
// witness for
|
|
462
|
+
// is_possibly_prime is all ones if we have determined `b` is not a composite
|
|
463
|
+
// witness for `w`. This is equivalent to going to step 4.7 in the original
|
|
472
464
|
// algorithm. To avoid timing leaks, we run the algorithm to the end for prime
|
|
473
465
|
// inputs.
|
|
474
466
|
is_possibly_prime = 0;
|
|
@@ -481,8 +473,8 @@ int bn_miller_rabin_iteration(const BN_MILLER_RABIN *miller_rabin,
|
|
|
481
473
|
|
|
482
474
|
// Step 4.5.
|
|
483
475
|
//
|
|
484
|
-
// To avoid leaking
|
|
485
|
-
// iterations once
|
|
476
|
+
// To avoid leaking `a`, we run the loop to `w_bits` and mask off all
|
|
477
|
+
// iterations once `j` = `a`.
|
|
486
478
|
for (int j = 1; j < miller_rabin->w_bits; j++) {
|
|
487
479
|
if (constant_time_declassify_w(constant_time_eq_int(j, miller_rabin->a) &
|
|
488
480
|
~is_possibly_prime)) {
|
|
@@ -493,14 +485,14 @@ int bn_miller_rabin_iteration(const BN_MILLER_RABIN *miller_rabin,
|
|
|
493
485
|
|
|
494
486
|
// Step 4.5.1.
|
|
495
487
|
if (!BN_mod_mul_montgomery(z, z, z, mont, ctx)) {
|
|
496
|
-
|
|
488
|
+
return 0;
|
|
497
489
|
}
|
|
498
490
|
|
|
499
491
|
// Step 4.5.2. If z = w-1 and the loop is not done, this is not a composite
|
|
500
492
|
// witness.
|
|
501
493
|
crypto_word_t z_is_w1_mont = BN_equal_consttime(z, miller_rabin->w1_mont);
|
|
502
494
|
z_is_w1_mont = 0 - z_is_w1_mont; // Make it all zeros or all ones.
|
|
503
|
-
is_possibly_prime |= z_is_w1_mont; // Go to step 4.7 if
|
|
495
|
+
is_possibly_prime |= z_is_w1_mont; // Go to step 4.7 if `z_is_w1_mont`.
|
|
504
496
|
|
|
505
497
|
// Step 4.5.3. If z = 1 and the loop is not done, the previous value of z
|
|
506
498
|
// was not -1. There are no non-trivial square roots of 1 modulo a prime, so
|
|
@@ -513,11 +505,7 @@ int bn_miller_rabin_iteration(const BN_MILLER_RABIN *miller_rabin,
|
|
|
513
505
|
}
|
|
514
506
|
|
|
515
507
|
*out_is_possibly_prime = constant_time_declassify_w(is_possibly_prime) & 1;
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
err:
|
|
519
|
-
BN_CTX_end(ctx);
|
|
520
|
-
return ret;
|
|
508
|
+
return 1;
|
|
521
509
|
}
|
|
522
510
|
|
|
523
511
|
int BN_primality_test(int *out_is_probably_prime, const BIGNUM *w, int checks,
|
|
@@ -526,35 +514,35 @@ int BN_primality_test(int *out_is_probably_prime, const BIGNUM *w, int checks,
|
|
|
526
514
|
// generation. We generate RSA keys by selecting two large, secret primes with
|
|
527
515
|
// rejection sampling.
|
|
528
516
|
//
|
|
529
|
-
// We thus treat
|
|
530
|
-
//
|
|
531
|
-
//
|
|
517
|
+
// We thus treat `w` as secret if turns out to be a large prime. However, if
|
|
518
|
+
// `w` is composite, we treat this and `w` itself as public. (Conversely, if
|
|
519
|
+
// `w` is prime, that it is prime is public. Only the value is secret.) This
|
|
532
520
|
// is fine for RSA key generation, but note it is important that we use
|
|
533
521
|
// rejection sampling, with each candidate prime chosen independently. This
|
|
534
522
|
// would not work for, e.g., an algorithm which looked for primes in
|
|
535
523
|
// consecutive integers. These assumptions allow us to discard composites
|
|
536
|
-
// quickly. We additionally treat
|
|
524
|
+
// quickly. We additionally treat `w` as public when it is a small prime to
|
|
537
525
|
// simplify trial decryption and some edge cases.
|
|
538
526
|
//
|
|
539
527
|
// One RSA key generation will call this function on exactly two primes and
|
|
540
528
|
// many more composites. The overall cost is a combination of several factors:
|
|
541
529
|
//
|
|
542
|
-
// 1. Checking if
|
|
530
|
+
// 1. Checking if `w` is divisible by a small prime is much faster than
|
|
543
531
|
// learning it is composite by Miller-Rabin (see below for details on that
|
|
544
532
|
// cost). Trial division by p saves 1/p of Miller-Rabin calls, so this is
|
|
545
533
|
// worthwhile until p exceeds the ratio of the two costs.
|
|
546
534
|
//
|
|
547
535
|
// 2. For a random (i.e. non-adversarial) candidate large prime and candidate
|
|
548
536
|
// witness, the probability of false witness is very low. (This is why FIPS
|
|
549
|
-
// 186-
|
|
537
|
+
// 186-5 only requires a few iterations.) Thus composites not discarded by
|
|
550
538
|
// trial decryption, in practice, cost one Miller-Rabin iteration. Only the
|
|
551
539
|
// two actual primes cost the full iteration count.
|
|
552
540
|
//
|
|
553
|
-
// 3. A Miller-Rabin iteration is a modular exponentiation plus
|
|
554
|
-
// modular squares, where
|
|
541
|
+
// 3. A Miller-Rabin iteration is a modular exponentiation plus `a` additional
|
|
542
|
+
// modular squares, where `a` is the number of factors of two in `w-1`. `a`
|
|
555
543
|
// is likely small (the distribution falls exponentially), but it is also
|
|
556
|
-
// potentially secret, so we loop up to its log(w) upper bound when
|
|
557
|
-
// prime. When
|
|
544
|
+
// potentially secret, so we loop up to its log(w) upper bound when `w` is
|
|
545
|
+
// prime. When `w` is composite, we break early, so only two calls pay this
|
|
558
546
|
// cost. (Note that all calls pay the modular exponentiation which is,
|
|
559
547
|
// itself, log(w) modular multiplications and squares.)
|
|
560
548
|
//
|
|
@@ -598,57 +586,56 @@ int BN_primality_test(int *out_is_probably_prime, const BIGNUM *w, int checks,
|
|
|
598
586
|
checks = BN_prime_checks_for_size(BN_num_bits(w));
|
|
599
587
|
}
|
|
600
588
|
|
|
601
|
-
BN_CTX
|
|
602
|
-
if (ctx ==
|
|
603
|
-
new_ctx
|
|
604
|
-
if (new_ctx ==
|
|
589
|
+
UniquePtr<BN_CTX> new_ctx;
|
|
590
|
+
if (ctx == nullptr) {
|
|
591
|
+
new_ctx.reset(BN_CTX_new());
|
|
592
|
+
if (new_ctx == nullptr) {
|
|
605
593
|
return 0;
|
|
606
594
|
}
|
|
607
|
-
ctx = new_ctx;
|
|
595
|
+
ctx = new_ctx.get();
|
|
608
596
|
}
|
|
609
597
|
|
|
610
|
-
// See
|
|
611
|
-
|
|
612
|
-
BN_CTX_start(ctx);
|
|
598
|
+
// See B.3.1 from FIPS 186-5.
|
|
599
|
+
BN_CTXScope scope(ctx);
|
|
613
600
|
BIGNUM *b = BN_CTX_get(ctx);
|
|
614
|
-
BN_MONT_CTX
|
|
601
|
+
UniquePtr<BN_MONT_CTX> mont(BN_MONT_CTX_new_consttime(w, ctx));
|
|
615
602
|
BN_MILLER_RABIN miller_rabin;
|
|
616
603
|
crypto_word_t uniform_iterations = 0;
|
|
617
|
-
if (b ==
|
|
604
|
+
if (b == nullptr || mont == nullptr ||
|
|
618
605
|
// Steps 1-3.
|
|
619
|
-
!bn_miller_rabin_init(&miller_rabin, mont, ctx)) {
|
|
620
|
-
|
|
606
|
+
!bn_miller_rabin_init(&miller_rabin, mont.get(), ctx)) {
|
|
607
|
+
return 0;
|
|
621
608
|
}
|
|
622
609
|
|
|
623
610
|
// The following loop performs in inner iteration of the Miller-Rabin
|
|
624
611
|
// Primality test (Step 4).
|
|
625
612
|
//
|
|
626
|
-
// The algorithm as specified in FIPS 186-
|
|
613
|
+
// The algorithm as specified in FIPS 186-5 leaks information on `w`, the RSA
|
|
627
614
|
// private key. Instead, we run through each iteration unconditionally,
|
|
628
615
|
// performing modular multiplications, masking off any effects to behave
|
|
629
616
|
// equivalently to the specified algorithm.
|
|
630
617
|
//
|
|
631
|
-
// We also blind the number of values of
|
|
632
|
-
// discard out-of-range values. To avoid leaking information on
|
|
633
|
-
//
|
|
618
|
+
// We also blind the number of values of `b` we try. Steps 4.1–4.2 say to
|
|
619
|
+
// discard out-of-range values. To avoid leaking information on `w`, we use
|
|
620
|
+
// `bn_rand_secret_range` which, rather than discarding bad values, adjusts
|
|
634
621
|
// them to be in range. Though not uniformly selected, these adjusted values
|
|
635
622
|
// are still usable as Miller-Rabin checks.
|
|
636
623
|
//
|
|
637
624
|
// Miller-Rabin is already probabilistic, so we could reach the desired
|
|
638
625
|
// confidence levels by just suitably increasing the iteration count. However,
|
|
639
|
-
// to align with FIPS 186-
|
|
626
|
+
// to align with FIPS 186-5, we use a more pessimal analysis: we do not count
|
|
640
627
|
// the non-uniform values towards the iteration count. As a result, this
|
|
641
628
|
// function is more complex and has more timing risk than necessary.
|
|
642
629
|
//
|
|
643
630
|
// We count both total iterations and uniform ones and iterate until we've
|
|
644
|
-
// reached at least
|
|
631
|
+
// reached at least `BN_PRIME_CHECKS_BLINDED` and `iterations`, respectively.
|
|
645
632
|
// If the latter is large enough, it will be the limiting factor with high
|
|
646
633
|
// probability and we won't leak information.
|
|
647
634
|
//
|
|
648
635
|
// Note this blinding does not impact most calls when picking primes because
|
|
649
636
|
// composites are rejected early. Only the two secret primes see extra work.
|
|
650
637
|
|
|
651
|
-
// Using
|
|
638
|
+
// Using `constant_time_lt_w` seems to prevent the compiler from optimizing
|
|
652
639
|
// this into two jumps.
|
|
653
640
|
for (int i = 1; constant_time_declassify_w(
|
|
654
641
|
(i <= BN_PRIME_CHECKS_BLINDED) |
|
|
@@ -657,39 +644,32 @@ int BN_primality_test(int *out_is_probably_prime, const BIGNUM *w, int checks,
|
|
|
657
644
|
// Step 4.1-4.2
|
|
658
645
|
int is_uniform;
|
|
659
646
|
if (!bn_rand_secret_range(b, &is_uniform, 2, miller_rabin.w1)) {
|
|
660
|
-
|
|
647
|
+
return 0;
|
|
661
648
|
}
|
|
662
649
|
uniform_iterations += is_uniform;
|
|
663
650
|
|
|
664
651
|
// Steps 4.3-4.5
|
|
665
652
|
int is_possibly_prime = 0;
|
|
666
|
-
if (!bn_miller_rabin_iteration(&miller_rabin, &is_possibly_prime, b,
|
|
667
|
-
ctx)) {
|
|
668
|
-
|
|
653
|
+
if (!bn_miller_rabin_iteration(&miller_rabin, &is_possibly_prime, b,
|
|
654
|
+
mont.get(), ctx)) {
|
|
655
|
+
return 0;
|
|
669
656
|
}
|
|
670
657
|
|
|
671
658
|
if (!is_possibly_prime) {
|
|
672
659
|
// Step 4.6. We did not see z = w-1 before z = 1, so w must be composite.
|
|
673
660
|
*out_is_probably_prime = 0;
|
|
674
|
-
|
|
675
|
-
goto err;
|
|
661
|
+
return 1;
|
|
676
662
|
}
|
|
677
663
|
|
|
678
664
|
// Step 4.7
|
|
679
665
|
if (!BN_GENCB_call(cb, BN_GENCB_PRIME_TEST, i - 1)) {
|
|
680
|
-
|
|
666
|
+
return 0;
|
|
681
667
|
}
|
|
682
668
|
}
|
|
683
669
|
|
|
684
670
|
declassify_assert(uniform_iterations >= (crypto_word_t)checks);
|
|
685
671
|
*out_is_probably_prime = 1;
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
err:
|
|
689
|
-
BN_MONT_CTX_free(mont);
|
|
690
|
-
BN_CTX_end(ctx);
|
|
691
|
-
BN_CTX_free(new_ctx);
|
|
692
|
-
return ret;
|
|
672
|
+
return 1;
|
|
693
673
|
}
|
|
694
674
|
|
|
695
675
|
int BN_is_prime_ex(const BIGNUM *candidate, int checks, BN_CTX *ctx,
|
|
@@ -720,41 +700,36 @@ int BN_enhanced_miller_rabin_primality_test(
|
|
|
720
700
|
checks = BN_prime_checks_for_size(BN_num_bits(w));
|
|
721
701
|
}
|
|
722
702
|
|
|
723
|
-
|
|
724
|
-
BN_MONT_CTX *mont = NULL;
|
|
725
|
-
|
|
726
|
-
BN_CTX_start(ctx);
|
|
727
|
-
|
|
703
|
+
BN_CTXScope scope(ctx);
|
|
728
704
|
BIGNUM *w1 = BN_CTX_get(ctx);
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
if (w1 == NULL || !BN_copy(w1, w) || !BN_sub_word(w1, 1)) {
|
|
732
|
-
goto err;
|
|
705
|
+
if (w1 == nullptr || !BN_copy(w1, w) || !BN_sub_word(w1, 1)) {
|
|
706
|
+
return 0;
|
|
733
707
|
}
|
|
734
708
|
|
|
735
709
|
// Write w1 as m*2^a (Steps 1 and 2).
|
|
736
|
-
a = 0;
|
|
710
|
+
int a = 0;
|
|
737
711
|
while (!BN_is_bit_set(w1, a)) {
|
|
738
712
|
a++;
|
|
739
713
|
}
|
|
740
|
-
m = BN_CTX_get(ctx);
|
|
741
|
-
if (m ==
|
|
742
|
-
|
|
714
|
+
BIGNUM *m = BN_CTX_get(ctx);
|
|
715
|
+
if (m == nullptr || !BN_rshift(m, w1, a)) {
|
|
716
|
+
return 0;
|
|
743
717
|
}
|
|
744
718
|
|
|
745
|
-
b = BN_CTX_get(ctx);
|
|
746
|
-
g = BN_CTX_get(ctx);
|
|
747
|
-
z = BN_CTX_get(ctx);
|
|
748
|
-
x = BN_CTX_get(ctx);
|
|
749
|
-
x1 = BN_CTX_get(ctx);
|
|
750
|
-
if (b ==
|
|
751
|
-
|
|
719
|
+
BIGNUM *b = BN_CTX_get(ctx);
|
|
720
|
+
BIGNUM *g = BN_CTX_get(ctx);
|
|
721
|
+
BIGNUM *z = BN_CTX_get(ctx);
|
|
722
|
+
BIGNUM *x = BN_CTX_get(ctx);
|
|
723
|
+
BIGNUM *x1 = BN_CTX_get(ctx);
|
|
724
|
+
if (b == nullptr || g == nullptr || z == nullptr || x == nullptr ||
|
|
725
|
+
x1 == nullptr) {
|
|
726
|
+
return 0;
|
|
752
727
|
}
|
|
753
728
|
|
|
754
729
|
// Montgomery setup for computations mod w
|
|
755
|
-
mont
|
|
756
|
-
if (mont ==
|
|
757
|
-
|
|
730
|
+
UniquePtr<BN_MONT_CTX> mont(BN_MONT_CTX_new_for_modulus(w, ctx));
|
|
731
|
+
if (mont == nullptr) {
|
|
732
|
+
return 0;
|
|
758
733
|
}
|
|
759
734
|
|
|
760
735
|
// The following loop performs in inner iteration of the Enhanced Miller-Rabin
|
|
@@ -762,22 +737,21 @@ int BN_enhanced_miller_rabin_primality_test(
|
|
|
762
737
|
for (int i = 1; i <= checks; i++) {
|
|
763
738
|
// Step 4.1-4.2
|
|
764
739
|
if (!BN_rand_range_ex(b, 2, w1)) {
|
|
765
|
-
|
|
740
|
+
return 0;
|
|
766
741
|
}
|
|
767
742
|
|
|
768
743
|
// Step 4.3-4.4
|
|
769
744
|
if (!BN_gcd(g, b, w, ctx)) {
|
|
770
|
-
|
|
745
|
+
return 0;
|
|
771
746
|
}
|
|
772
747
|
if (BN_cmp_word(g, 1) > 0) {
|
|
773
748
|
*out_result = bn_composite;
|
|
774
|
-
|
|
775
|
-
goto err;
|
|
749
|
+
return 1;
|
|
776
750
|
}
|
|
777
751
|
|
|
778
752
|
// Step 4.5
|
|
779
|
-
if (!BN_mod_exp_mont(z, b, m, w, ctx, mont)) {
|
|
780
|
-
|
|
753
|
+
if (!BN_mod_exp_mont(z, b, m, w, ctx, mont.get())) {
|
|
754
|
+
return 0;
|
|
781
755
|
}
|
|
782
756
|
|
|
783
757
|
// Step 4.6
|
|
@@ -788,7 +762,7 @@ int BN_enhanced_miller_rabin_primality_test(
|
|
|
788
762
|
// Step 4.7
|
|
789
763
|
for (int j = 1; j < a; j++) {
|
|
790
764
|
if (!BN_copy(x, z) || !BN_mod_mul(z, x, x, w, ctx)) {
|
|
791
|
-
|
|
765
|
+
return 0;
|
|
792
766
|
}
|
|
793
767
|
if (BN_cmp(z, w1) == 0) {
|
|
794
768
|
goto loop;
|
|
@@ -800,18 +774,18 @@ int BN_enhanced_miller_rabin_primality_test(
|
|
|
800
774
|
|
|
801
775
|
// Step 4.8-4.9
|
|
802
776
|
if (!BN_copy(x, z) || !BN_mod_mul(z, x, x, w, ctx)) {
|
|
803
|
-
|
|
777
|
+
return 0;
|
|
804
778
|
}
|
|
805
779
|
|
|
806
780
|
// Step 4.10-4.11
|
|
807
781
|
if (!BN_is_one(z) && !BN_copy(x, z)) {
|
|
808
|
-
|
|
782
|
+
return 0;
|
|
809
783
|
}
|
|
810
784
|
|
|
811
785
|
composite:
|
|
812
786
|
// Step 4.12-4.14
|
|
813
787
|
if (!BN_copy(x1, x) || !BN_sub_word(x1, 1) || !BN_gcd(g, x1, w, ctx)) {
|
|
814
|
-
|
|
788
|
+
return 0;
|
|
815
789
|
}
|
|
816
790
|
if (BN_cmp_word(g, 1) > 0) {
|
|
817
791
|
*out_result = bn_composite;
|
|
@@ -819,24 +793,17 @@ int BN_enhanced_miller_rabin_primality_test(
|
|
|
819
793
|
*out_result = bn_non_prime_power_composite;
|
|
820
794
|
}
|
|
821
795
|
|
|
822
|
-
|
|
823
|
-
goto err;
|
|
796
|
+
return 1;
|
|
824
797
|
|
|
825
798
|
loop:
|
|
826
799
|
// Step 4.15
|
|
827
800
|
if (!BN_GENCB_call(cb, BN_GENCB_PRIME_TEST, i - 1)) {
|
|
828
|
-
|
|
801
|
+
return 0;
|
|
829
802
|
}
|
|
830
803
|
}
|
|
831
804
|
|
|
832
805
|
*out_result = bn_probably_prime;
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
err:
|
|
836
|
-
BN_MONT_CTX_free(mont);
|
|
837
|
-
BN_CTX_end(ctx);
|
|
838
|
-
|
|
839
|
-
return ret;
|
|
806
|
+
return 1;
|
|
840
807
|
}
|
|
841
808
|
|
|
842
809
|
static int probable_prime(BIGNUM *rnd, int bits) {
|
|
@@ -850,111 +817,99 @@ static int probable_prime(BIGNUM *rnd, int bits) {
|
|
|
850
817
|
|
|
851
818
|
static int probable_prime_dh(BIGNUM *rnd, int bits, const BIGNUM *add,
|
|
852
819
|
const BIGNUM *rem, BN_CTX *ctx) {
|
|
853
|
-
|
|
820
|
+
BN_CTXScope scope(ctx);
|
|
854
821
|
BIGNUM *t1;
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
size_t num_primes;
|
|
858
|
-
if ((t1 = BN_CTX_get(ctx)) == NULL) {
|
|
859
|
-
goto err;
|
|
822
|
+
if ((t1 = BN_CTX_get(ctx)) == nullptr) {
|
|
823
|
+
return 0;
|
|
860
824
|
}
|
|
861
825
|
|
|
862
826
|
if (!BN_rand(rnd, bits, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ODD)) {
|
|
863
|
-
|
|
827
|
+
return 0;
|
|
864
828
|
}
|
|
865
829
|
|
|
866
830
|
// we need ((rnd-rem) % add) == 0
|
|
867
|
-
|
|
868
831
|
if (!BN_mod(t1, rnd, add, ctx)) {
|
|
869
|
-
|
|
832
|
+
return 0;
|
|
870
833
|
}
|
|
871
834
|
if (!BN_sub(rnd, rnd, t1)) {
|
|
872
|
-
|
|
835
|
+
return 0;
|
|
873
836
|
}
|
|
874
|
-
if (rem ==
|
|
837
|
+
if (rem == nullptr) {
|
|
875
838
|
if (!BN_add_word(rnd, 1)) {
|
|
876
|
-
|
|
839
|
+
return 0;
|
|
877
840
|
}
|
|
878
841
|
} else {
|
|
879
842
|
if (!BN_add(rnd, rnd, rem)) {
|
|
880
|
-
|
|
843
|
+
return 0;
|
|
881
844
|
}
|
|
882
845
|
}
|
|
883
846
|
// we now have a random number 'rand' to test.
|
|
884
847
|
|
|
885
|
-
num_primes = num_trial_division_primes(rnd);
|
|
848
|
+
size_t num_primes = num_trial_division_primes(rnd);
|
|
886
849
|
loop:
|
|
887
850
|
for (size_t i = 1; i < num_primes; i++) {
|
|
888
851
|
// check that rnd is a prime
|
|
889
852
|
if (bn_mod_u16_consttime(rnd, kPrimes[i]) <= 1) {
|
|
890
853
|
if (!BN_add(rnd, rnd, add)) {
|
|
891
|
-
|
|
854
|
+
return 0;
|
|
892
855
|
}
|
|
893
856
|
goto loop;
|
|
894
857
|
}
|
|
895
858
|
}
|
|
896
859
|
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
err:
|
|
900
|
-
BN_CTX_end(ctx);
|
|
901
|
-
return ret;
|
|
860
|
+
return 1;
|
|
902
861
|
}
|
|
903
862
|
|
|
904
863
|
static int probable_prime_dh_safe(BIGNUM *p, int bits, const BIGNUM *padd,
|
|
905
864
|
const BIGNUM *rem, BN_CTX *ctx) {
|
|
906
|
-
int ret = 0;
|
|
907
|
-
BIGNUM *t1, *qadd, *q;
|
|
908
|
-
|
|
909
865
|
bits--;
|
|
910
|
-
|
|
911
|
-
t1 = BN_CTX_get(ctx);
|
|
912
|
-
q = BN_CTX_get(ctx);
|
|
913
|
-
qadd = BN_CTX_get(ctx);
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
goto err;
|
|
866
|
+
BN_CTXScope scope(ctx);
|
|
867
|
+
BIGNUM *t1 = BN_CTX_get(ctx);
|
|
868
|
+
BIGNUM *q = BN_CTX_get(ctx);
|
|
869
|
+
BIGNUM *qadd = BN_CTX_get(ctx);
|
|
870
|
+
if (qadd == nullptr) {
|
|
871
|
+
return 0;
|
|
917
872
|
}
|
|
918
873
|
|
|
919
874
|
if (!BN_rshift1(qadd, padd)) {
|
|
920
|
-
|
|
875
|
+
return 0;
|
|
921
876
|
}
|
|
922
877
|
|
|
923
878
|
if (!BN_rand(q, bits, BN_RAND_TOP_ONE, BN_RAND_BOTTOM_ODD)) {
|
|
924
|
-
|
|
879
|
+
return 0;
|
|
925
880
|
}
|
|
926
881
|
|
|
927
882
|
// we need ((rnd-rem) % add) == 0
|
|
928
883
|
if (!BN_mod(t1, q, qadd, ctx)) {
|
|
929
|
-
|
|
884
|
+
return 0;
|
|
930
885
|
}
|
|
931
886
|
|
|
932
887
|
if (!BN_sub(q, q, t1)) {
|
|
933
|
-
|
|
888
|
+
return 0;
|
|
934
889
|
}
|
|
935
890
|
|
|
936
|
-
if (rem ==
|
|
891
|
+
if (rem == nullptr) {
|
|
937
892
|
if (!BN_add_word(q, 1)) {
|
|
938
|
-
|
|
893
|
+
return 0;
|
|
939
894
|
}
|
|
940
895
|
} else {
|
|
941
896
|
if (!BN_rshift1(t1, rem)) {
|
|
942
|
-
|
|
897
|
+
return 0;
|
|
943
898
|
}
|
|
944
899
|
if (!BN_add(q, q, t1)) {
|
|
945
|
-
|
|
900
|
+
return 0;
|
|
946
901
|
}
|
|
947
902
|
}
|
|
948
903
|
|
|
949
904
|
// we now have a random number 'rand' to test.
|
|
950
905
|
if (!BN_lshift1(p, q)) {
|
|
951
|
-
|
|
906
|
+
return 0;
|
|
952
907
|
}
|
|
953
908
|
if (!BN_add_word(p, 1)) {
|
|
954
|
-
|
|
909
|
+
return 0;
|
|
955
910
|
}
|
|
956
911
|
|
|
957
|
-
num_primes = num_trial_division_primes(p);
|
|
912
|
+
size_t num_primes = num_trial_division_primes(p);
|
|
958
913
|
loop:
|
|
959
914
|
for (size_t i = 1; i < num_primes; i++) {
|
|
960
915
|
// check that p and q are prime
|
|
@@ -963,18 +918,14 @@ loop:
|
|
|
963
918
|
if (bn_mod_u16_consttime(p, kPrimes[i]) == 0 ||
|
|
964
919
|
bn_mod_u16_consttime(q, kPrimes[i]) == 0) {
|
|
965
920
|
if (!BN_add(p, p, padd)) {
|
|
966
|
-
|
|
921
|
+
return 0;
|
|
967
922
|
}
|
|
968
923
|
if (!BN_add(q, q, qadd)) {
|
|
969
|
-
|
|
924
|
+
return 0;
|
|
970
925
|
}
|
|
971
926
|
goto loop;
|
|
972
927
|
}
|
|
973
928
|
}
|
|
974
929
|
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
err:
|
|
978
|
-
BN_CTX_end(ctx);
|
|
979
|
-
return ret;
|
|
930
|
+
return 1;
|
|
980
931
|
}
|