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
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
|
|
20
20
|
#include <openssl/engine.h>
|
|
21
21
|
#include <openssl/ex_data.h>
|
|
22
|
-
#include <openssl/thread.h>
|
|
23
22
|
|
|
24
23
|
#if defined(__cplusplus)
|
|
25
24
|
extern "C" {
|
|
@@ -31,17 +30,17 @@ extern "C" {
|
|
|
31
30
|
|
|
32
31
|
// Allocation and destruction.
|
|
33
32
|
//
|
|
34
|
-
// An
|
|
33
|
+
// An `RSA` object represents a public or private RSA key. A given object may be
|
|
35
34
|
// used concurrently on multiple threads by non-mutating functions, provided no
|
|
36
35
|
// other thread is concurrently calling a mutating function. Unless otherwise
|
|
37
|
-
// documented, functions which take a
|
|
38
|
-
// functions which take a non
|
|
36
|
+
// documented, functions which take a `const` pointer are non-mutating and
|
|
37
|
+
// functions which take a non-`const` pointer are mutating.
|
|
39
38
|
|
|
40
|
-
// RSA_new_public_key returns a new
|
|
39
|
+
// RSA_new_public_key returns a new `RSA` object containing a public key with
|
|
41
40
|
// the specified parameters, or NULL on error or invalid input.
|
|
42
41
|
OPENSSL_EXPORT RSA *RSA_new_public_key(const BIGNUM *n, const BIGNUM *e);
|
|
43
42
|
|
|
44
|
-
// RSA_new_private_key returns a new
|
|
43
|
+
// RSA_new_private_key returns a new `RSA` object containing a private key with
|
|
45
44
|
// the specified parameters, or NULL on error or invalid input. All parameters
|
|
46
45
|
// are mandatory and may not be NULL.
|
|
47
46
|
//
|
|
@@ -51,19 +50,19 @@ OPENSSL_EXPORT RSA *RSA_new_private_key(const BIGNUM *n, const BIGNUM *e,
|
|
|
51
50
|
const BIGNUM *q, const BIGNUM *dmp1,
|
|
52
51
|
const BIGNUM *dmq1, const BIGNUM *iqmp);
|
|
53
52
|
|
|
54
|
-
// RSA_new returns a new, empty
|
|
55
|
-
//
|
|
53
|
+
// RSA_new returns a new, empty `RSA` object or NULL on error. Prefer using
|
|
54
|
+
// `RSA_new_public_key` or `RSA_new_private_key` to import an RSA key.
|
|
56
55
|
OPENSSL_EXPORT RSA *RSA_new(void);
|
|
57
56
|
|
|
58
|
-
// RSA_new_method acts the same as
|
|
57
|
+
// RSA_new_method acts the same as `RSA_new` but takes an explicit `ENGINE`.
|
|
59
58
|
OPENSSL_EXPORT RSA *RSA_new_method(const ENGINE *engine);
|
|
60
59
|
|
|
61
|
-
// RSA_free decrements the reference count of
|
|
60
|
+
// RSA_free decrements the reference count of `rsa` and frees it if the
|
|
62
61
|
// reference count drops to zero.
|
|
63
62
|
OPENSSL_EXPORT void RSA_free(RSA *rsa);
|
|
64
63
|
|
|
65
|
-
// RSA_up_ref increments the reference count of
|
|
66
|
-
// not mutate
|
|
64
|
+
// RSA_up_ref increments the reference count of `rsa` and returns one. It does
|
|
65
|
+
// not mutate `rsa` for thread-safety purposes and may be used concurrently.
|
|
67
66
|
OPENSSL_EXPORT int RSA_up_ref(RSA *rsa);
|
|
68
67
|
|
|
69
68
|
|
|
@@ -71,56 +70,63 @@ OPENSSL_EXPORT int RSA_up_ref(RSA *rsa);
|
|
|
71
70
|
|
|
72
71
|
// OPENSSL_RSA_MAX_MODULUS_BITS is the maximum supported RSA modulus, in bits.
|
|
73
72
|
//
|
|
74
|
-
//
|
|
73
|
+
// WARNING: RSA-16384 is extremely slow and may be a DoS risk. This value is set
|
|
74
|
+
// based on the largest RSA keys any caller of BoringSSL may need to use, and
|
|
75
|
+
// may be too high for a general-purpose application. Applications should impose
|
|
76
|
+
// their own limits before importing an RSA key. RSA-16384 is of particular DoS
|
|
77
|
+
// risk for RSA private key operations, which scale cubicly.
|
|
78
|
+
//
|
|
79
|
+
// In the future, BoringSSL may limit overly large RSA key sizes to application
|
|
80
|
+
// opt-in, or impose a tighter limit on private key operations.
|
|
75
81
|
#define OPENSSL_RSA_MAX_MODULUS_BITS 16384
|
|
76
82
|
|
|
77
|
-
// RSA_bits returns the size of
|
|
83
|
+
// RSA_bits returns the size of `rsa`, in bits.
|
|
78
84
|
OPENSSL_EXPORT unsigned RSA_bits(const RSA *rsa);
|
|
79
85
|
|
|
80
|
-
// RSA_get0_n returns
|
|
86
|
+
// RSA_get0_n returns `rsa`'s public modulus.
|
|
81
87
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_n(const RSA *rsa);
|
|
82
88
|
|
|
83
|
-
// RSA_get0_e returns
|
|
89
|
+
// RSA_get0_e returns `rsa`'s public exponent.
|
|
84
90
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_e(const RSA *rsa);
|
|
85
91
|
|
|
86
|
-
// RSA_get0_d returns
|
|
92
|
+
// RSA_get0_d returns `rsa`'s private exponent. If `rsa` is a public key, this
|
|
87
93
|
// value will be NULL.
|
|
88
94
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_d(const RSA *rsa);
|
|
89
95
|
|
|
90
|
-
// RSA_get0_p returns
|
|
96
|
+
// RSA_get0_p returns `rsa`'s first private prime factor. If `rsa` is a public
|
|
91
97
|
// key or lacks its prime factors, this value will be NULL.
|
|
92
98
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_p(const RSA *rsa);
|
|
93
99
|
|
|
94
|
-
// RSA_get0_q returns
|
|
100
|
+
// RSA_get0_q returns `rsa`'s second private prime factor. If `rsa` is a public
|
|
95
101
|
// key or lacks its prime factors, this value will be NULL.
|
|
96
102
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_q(const RSA *rsa);
|
|
97
103
|
|
|
98
|
-
// RSA_get0_dmp1 returns d (mod p-1) for
|
|
104
|
+
// RSA_get0_dmp1 returns d (mod p-1) for `rsa`. If `rsa` is a public key or
|
|
99
105
|
// lacks CRT parameters, this value will be NULL.
|
|
100
106
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_dmp1(const RSA *rsa);
|
|
101
107
|
|
|
102
|
-
// RSA_get0_dmq1 returns d (mod q-1) for
|
|
108
|
+
// RSA_get0_dmq1 returns d (mod q-1) for `rsa`. If `rsa` is a public key or
|
|
103
109
|
// lacks CRT parameters, this value will be NULL.
|
|
104
110
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_dmq1(const RSA *rsa);
|
|
105
111
|
|
|
106
|
-
// RSA_get0_iqmp returns q^-1 (mod p). If
|
|
112
|
+
// RSA_get0_iqmp returns q^-1 (mod p). If `rsa` is a public key or lacks CRT
|
|
107
113
|
// parameters, this value will be NULL.
|
|
108
114
|
OPENSSL_EXPORT const BIGNUM *RSA_get0_iqmp(const RSA *rsa);
|
|
109
115
|
|
|
110
|
-
// RSA_get0_key sets
|
|
111
|
-
// modulus, public exponent, and private exponent, respectively. If
|
|
116
|
+
// RSA_get0_key sets `*out_n`, `*out_e`, and `*out_d`, if non-NULL, to `rsa`'s
|
|
117
|
+
// modulus, public exponent, and private exponent, respectively. If `rsa` is a
|
|
112
118
|
// public key, the private exponent will be set to NULL.
|
|
113
119
|
OPENSSL_EXPORT void RSA_get0_key(const RSA *rsa, const BIGNUM **out_n,
|
|
114
120
|
const BIGNUM **out_e, const BIGNUM **out_d);
|
|
115
121
|
|
|
116
|
-
// RSA_get0_factors sets
|
|
117
|
-
// factors. If
|
|
122
|
+
// RSA_get0_factors sets `*out_p` and `*out_q`, if non-NULL, to `rsa`'s prime
|
|
123
|
+
// factors. If `rsa` is a public key, they will be set to NULL.
|
|
118
124
|
OPENSSL_EXPORT void RSA_get0_factors(const RSA *rsa, const BIGNUM **out_p,
|
|
119
125
|
const BIGNUM **out_q);
|
|
120
126
|
|
|
121
|
-
// RSA_get0_crt_params sets
|
|
122
|
-
// non-NULL, to
|
|
123
|
-
// q^-1 (mod p), respectively. If
|
|
127
|
+
// RSA_get0_crt_params sets `*out_dmp1`, `*out_dmq1`, and `*out_iqmp`, if
|
|
128
|
+
// non-NULL, to `rsa`'s CRT parameters. These are d (mod p-1), d (mod q-1) and
|
|
129
|
+
// q^-1 (mod p), respectively. If `rsa` is a public key, each parameter will be
|
|
124
130
|
// set to NULL.
|
|
125
131
|
OPENSSL_EXPORT void RSA_get0_crt_params(const RSA *rsa, const BIGNUM **out_dmp1,
|
|
126
132
|
const BIGNUM **out_dmq1,
|
|
@@ -129,10 +135,10 @@ OPENSSL_EXPORT void RSA_get0_crt_params(const RSA *rsa, const BIGNUM **out_dmp1,
|
|
|
129
135
|
|
|
130
136
|
// Setting individual properties.
|
|
131
137
|
//
|
|
132
|
-
// These functions allow setting individual properties of an
|
|
133
|
-
// is typically used with
|
|
134
|
-
// Prefer instead to use
|
|
135
|
-
// functions defer some initialization to the first use of an
|
|
138
|
+
// These functions allow setting individual properties of an `RSA` object. This
|
|
139
|
+
// is typically used with `RSA_new` to construct an RSA key field by field.
|
|
140
|
+
// Prefer instead to use `RSA_new_public_key` and `RSA_new_private_key`. These
|
|
141
|
+
// functions defer some initialization to the first use of an `RSA` object. This
|
|
136
142
|
// means invalid inputs may be caught late.
|
|
137
143
|
//
|
|
138
144
|
// TODO(crbug.com/boringssl/316): This deferred initialization also causes
|
|
@@ -140,35 +146,35 @@ OPENSSL_EXPORT void RSA_get0_crt_params(const RSA *rsa, const BIGNUM **out_dmp1,
|
|
|
140
146
|
// currently have the same issues, but they will initialize eagerly in the
|
|
141
147
|
// future.
|
|
142
148
|
|
|
143
|
-
// RSA_set0_key sets
|
|
144
|
-
//
|
|
149
|
+
// RSA_set0_key sets `rsa`'s modulus, public exponent, and private exponent to
|
|
150
|
+
// `n`, `e`, and `d` respectively, if non-NULL. On success, it takes ownership
|
|
145
151
|
// of each argument and returns one. Otherwise, it returns zero.
|
|
146
152
|
//
|
|
147
|
-
//
|
|
148
|
-
// configured on
|
|
153
|
+
// `d` may be NULL, but `n` and `e` must either be non-NULL or already
|
|
154
|
+
// configured on `rsa`.
|
|
149
155
|
//
|
|
150
|
-
// It is an error to call this function after
|
|
151
|
-
// cryptographic operation. Construct a new
|
|
156
|
+
// It is an error to call this function after `rsa` has been used for a
|
|
157
|
+
// cryptographic operation. Construct a new `RSA` object instead.
|
|
152
158
|
OPENSSL_EXPORT int RSA_set0_key(RSA *rsa, BIGNUM *n, BIGNUM *e, BIGNUM *d);
|
|
153
159
|
|
|
154
|
-
// RSA_set0_factors sets
|
|
160
|
+
// RSA_set0_factors sets `rsa`'s prime factors to `p` and `q`, if non-NULL, and
|
|
155
161
|
// takes ownership of them. On success, it takes ownership of each argument and
|
|
156
162
|
// returns one. Otherwise, it returns zero.
|
|
157
163
|
//
|
|
158
|
-
// Each argument must either be non-NULL or already configured on
|
|
164
|
+
// Each argument must either be non-NULL or already configured on `rsa`.
|
|
159
165
|
//
|
|
160
|
-
// It is an error to call this function after
|
|
161
|
-
// cryptographic operation. Construct a new
|
|
166
|
+
// It is an error to call this function after `rsa` has been used for a
|
|
167
|
+
// cryptographic operation. Construct a new `RSA` object instead.
|
|
162
168
|
OPENSSL_EXPORT int RSA_set0_factors(RSA *rsa, BIGNUM *p, BIGNUM *q);
|
|
163
169
|
|
|
164
|
-
// RSA_set0_crt_params sets
|
|
165
|
-
//
|
|
170
|
+
// RSA_set0_crt_params sets `rsa`'s CRT parameters to `dmp1`, `dmq1`, and
|
|
171
|
+
// `iqmp`, if non-NULL, and takes ownership of them. On success, it takes
|
|
166
172
|
// ownership of its parameters and returns one. Otherwise, it returns zero.
|
|
167
173
|
//
|
|
168
|
-
// Each argument must either be non-NULL or already configured on
|
|
174
|
+
// Each argument must either be non-NULL or already configured on `rsa`.
|
|
169
175
|
//
|
|
170
|
-
// It is an error to call this function after
|
|
171
|
-
// cryptographic operation. Construct a new
|
|
176
|
+
// It is an error to call this function after `rsa` has been used for a
|
|
177
|
+
// cryptographic operation. Construct a new `RSA` object instead.
|
|
172
178
|
OPENSSL_EXPORT int RSA_set0_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1,
|
|
173
179
|
BIGNUM *iqmp);
|
|
174
180
|
|
|
@@ -176,19 +182,19 @@ OPENSSL_EXPORT int RSA_set0_crt_params(RSA *rsa, BIGNUM *dmp1, BIGNUM *dmq1,
|
|
|
176
182
|
// Key generation.
|
|
177
183
|
|
|
178
184
|
// RSA_generate_key_ex generates a new RSA key where the modulus has size
|
|
179
|
-
//
|
|
180
|
-
// for
|
|
181
|
-
// process. In addition to the calls documented for
|
|
185
|
+
// `bits` and the public exponent is `e`. If unsure, `RSA_F4` is a good value
|
|
186
|
+
// for `e`. If `cb` is not NULL then it is called during the key generation
|
|
187
|
+
// process. In addition to the calls documented for `BN_generate_prime_ex`, it
|
|
182
188
|
// is called with event=2 when the n'th prime is rejected as unsuitable and
|
|
183
|
-
// with event=3 when a suitable value for
|
|
189
|
+
// with event=3 when a suitable value for `p` is found.
|
|
184
190
|
//
|
|
185
191
|
// It returns one on success or zero on error.
|
|
186
192
|
OPENSSL_EXPORT int RSA_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e,
|
|
187
193
|
BN_GENCB *cb);
|
|
188
194
|
|
|
189
|
-
// RSA_generate_key_fips behaves like
|
|
195
|
+
// RSA_generate_key_fips behaves like `RSA_generate_key_ex` but performs
|
|
190
196
|
// additional checks for FIPS compliance. The public exponent is always 65537
|
|
191
|
-
// and
|
|
197
|
+
// and `bits` must be either 2048 or 3072.
|
|
192
198
|
OPENSSL_EXPORT int RSA_generate_key_fips(RSA *rsa, int bits, BN_GENCB *cb);
|
|
193
199
|
|
|
194
200
|
|
|
@@ -215,32 +221,40 @@ OPENSSL_EXPORT int RSA_generate_key_fips(RSA *rsa, int bits, BN_GENCB *cb);
|
|
|
215
221
|
#define RSA_PKCS1_OAEP_PADDING 4
|
|
216
222
|
|
|
217
223
|
// RSA_PKCS1_PSS_PADDING denotes the RSASSA-PSS signature scheme. This value may
|
|
218
|
-
// not be passed into
|
|
219
|
-
// also
|
|
224
|
+
// not be passed into `RSA_sign_raw`, only `EVP_PKEY_CTX_set_rsa_padding`. See
|
|
225
|
+
// also `RSA_sign_pss_mgf1` and `RSA_verify_pss_mgf1`.
|
|
220
226
|
#define RSA_PKCS1_PSS_PADDING 6
|
|
221
227
|
|
|
222
|
-
// RSA_encrypt encrypts
|
|
223
|
-
// and writes, at most,
|
|
224
|
-
//
|
|
228
|
+
// RSA_encrypt encrypts `in_len` bytes from `in` to the public key from `rsa`
|
|
229
|
+
// and writes, at most, `max_out` bytes of encrypted data to `out`. The
|
|
230
|
+
// `max_out` argument must be, at least, `RSA_size` in order to ensure success.
|
|
225
231
|
//
|
|
226
232
|
// It returns 1 on success or zero on error.
|
|
227
233
|
//
|
|
228
|
-
// The
|
|
229
|
-
// doubt, use
|
|
234
|
+
// The `padding` argument must be one of the `RSA_*_PADDING` values. If in
|
|
235
|
+
// doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols. When `padding` is
|
|
236
|
+
// `RSA_PKCS1_OAEP_PADDING`, this function has no way to set the OAEP or MGF-1
|
|
237
|
+
// digest, so it is always SHA-1. For other OAEP parameters, wrap `rsa` in an
|
|
238
|
+
// `EVP_PKEY` and use `EVP_PKEY_encrypt` with `EVP_PKEY_CTX_set_rsa_padding` and
|
|
239
|
+
// related functions.
|
|
230
240
|
OPENSSL_EXPORT int RSA_encrypt(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
231
241
|
size_t max_out, const uint8_t *in, size_t in_len,
|
|
232
242
|
int padding);
|
|
233
243
|
|
|
234
|
-
// RSA_decrypt decrypts
|
|
235
|
-
//
|
|
236
|
-
//
|
|
244
|
+
// RSA_decrypt decrypts `in_len` bytes from `in` with the private key from
|
|
245
|
+
// `rsa` and writes, at most, `max_out` bytes of plaintext to `out`. The
|
|
246
|
+
// `max_out` argument must be, at least, `RSA_size` in order to ensure success.
|
|
237
247
|
//
|
|
238
248
|
// It returns 1 on success or zero on error.
|
|
239
249
|
//
|
|
240
|
-
// The
|
|
241
|
-
// doubt, use
|
|
250
|
+
// The `padding` argument must be one of the `RSA_*_PADDING` values. If in
|
|
251
|
+
// doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols. When `padding` is
|
|
252
|
+
// `RSA_PKCS1_OAEP_PADDING`, this function has no way to set the OAEP or MGF-1
|
|
253
|
+
// digest, so it is always SHA-1. For other OAEP parameters, wrap `rsa` in an
|
|
254
|
+
// `EVP_PKEY` and use `EVP_PKEY_decrypt` with `EVP_PKEY_CTX_set_rsa_padding` and
|
|
255
|
+
// related functions.
|
|
242
256
|
//
|
|
243
|
-
// WARNING: Passing
|
|
257
|
+
// WARNING: Passing `RSA_PKCS1_PADDING` into this function is deprecated and
|
|
244
258
|
// insecure. RSAES-PKCS1-v1_5 is vulnerable to a chosen-ciphertext attack.
|
|
245
259
|
// Decrypting attacker-supplied ciphertext with RSAES-PKCS1-v1_5 may give the
|
|
246
260
|
// attacker control over your private key. See "Chosen Ciphertext Attacks
|
|
@@ -249,32 +263,42 @@ OPENSSL_EXPORT int RSA_encrypt(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
|
249
263
|
//
|
|
250
264
|
// In some limited cases, such as TLS RSA key exchange, it is possible to
|
|
251
265
|
// mitigate this flaw with custom, protocol-specific padding logic. This
|
|
252
|
-
// should be implemented with
|
|
266
|
+
// should be implemented with `RSA_NO_PADDING`, not `RSA_PKCS1_PADDING`.
|
|
253
267
|
OPENSSL_EXPORT int RSA_decrypt(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
254
268
|
size_t max_out, const uint8_t *in, size_t in_len,
|
|
255
269
|
int padding);
|
|
256
270
|
|
|
257
|
-
// RSA_public_encrypt encrypts
|
|
258
|
-
//
|
|
259
|
-
// least
|
|
260
|
-
// -1 on error. The
|
|
261
|
-
// values. If in doubt, use
|
|
271
|
+
// RSA_public_encrypt encrypts `flen` bytes from `from` to the public key in
|
|
272
|
+
// `rsa` and writes the encrypted data to `to`. The `to` buffer must have at
|
|
273
|
+
// least `RSA_size` bytes of space. It returns the number of bytes written, or
|
|
274
|
+
// -1 on error. The `padding` argument must be one of the `RSA_*_PADDING`
|
|
275
|
+
// values. If in doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols.
|
|
276
|
+
//
|
|
277
|
+
// When `padding` is `RSA_PKCS1_OAEP_PADDING`, this function has no way to set
|
|
278
|
+
// the OAEP or MGF-1 digest, so it is always SHA-1. For other OAEP parameters,
|
|
279
|
+
// wrap `rsa` in an `EVP_PKEY` and use `EVP_PKEY_encrypt` with
|
|
280
|
+
// `EVP_PKEY_CTX_set_rsa_padding` and related functions.
|
|
262
281
|
//
|
|
263
282
|
// WARNING: this function is dangerous because it breaks the usual return value
|
|
264
|
-
// convention. Use
|
|
283
|
+
// convention. Use `RSA_encrypt` instead.
|
|
265
284
|
OPENSSL_EXPORT int RSA_public_encrypt(size_t flen, const uint8_t *from,
|
|
266
285
|
uint8_t *to, RSA *rsa, int padding);
|
|
267
286
|
|
|
268
|
-
// RSA_private_decrypt decrypts
|
|
269
|
-
//
|
|
270
|
-
//
|
|
271
|
-
// error. The
|
|
272
|
-
// in doubt, use
|
|
273
|
-
//
|
|
274
|
-
//
|
|
287
|
+
// RSA_private_decrypt decrypts `flen` bytes from `from` with the public key in
|
|
288
|
+
// `rsa` and writes the plaintext to `to`. The `to` buffer must have at least
|
|
289
|
+
// `RSA_size` bytes of space. It returns the number of bytes written, or -1 on
|
|
290
|
+
// error. The `padding` argument must be one of the `RSA_*_PADDING` values. If
|
|
291
|
+
// in doubt, use `RSA_PKCS1_OAEP_PADDING` for new protocols. Passing
|
|
292
|
+
// `RSA_PKCS1_PADDING` into this function is deprecated and insecure. See
|
|
293
|
+
// `RSA_decrypt`.
|
|
294
|
+
//
|
|
295
|
+
// When `padding` is `RSA_PKCS1_OAEP_PADDING`, this function has no way to set
|
|
296
|
+
// the OAEP or MGF-1 digest, so it is always SHA-1. For other OAEP parameters,
|
|
297
|
+
// wrap `rsa` in an `EVP_PKEY` and use `EVP_PKEY_decrypt` with
|
|
298
|
+
// `EVP_PKEY_CTX_set_rsa_padding` and related functions.
|
|
275
299
|
//
|
|
276
300
|
// WARNING: this function is dangerous because it breaks the usual return value
|
|
277
|
-
// convention. Use
|
|
301
|
+
// convention. Use `RSA_decrypt` instead.
|
|
278
302
|
OPENSSL_EXPORT int RSA_private_decrypt(size_t flen, const uint8_t *from,
|
|
279
303
|
uint8_t *to, RSA *rsa, int padding);
|
|
280
304
|
|
|
@@ -284,156 +308,166 @@ OPENSSL_EXPORT int RSA_private_decrypt(size_t flen, const uint8_t *from,
|
|
|
284
308
|
// These functions are considered non-mutating for thread-safety purposes and
|
|
285
309
|
// may be used concurrently.
|
|
286
310
|
|
|
287
|
-
// RSA_sign signs
|
|
288
|
-
// RSASSA-PKCS1-v1_5. It writes, at most,
|
|
311
|
+
// RSA_sign signs `digest_len` bytes of digest from `digest` with `rsa` using
|
|
312
|
+
// RSASSA-PKCS1-v1_5. It writes, at most, `RSA_size(rsa)` bytes to `out`. On
|
|
289
313
|
// successful return, the actual number of bytes written is written to
|
|
290
|
-
//
|
|
314
|
+
// `*out_len`.
|
|
291
315
|
//
|
|
292
|
-
// The
|
|
293
|
-
//
|
|
294
|
-
//
|
|
316
|
+
// The `hash_nid` argument identifies the hash function used to calculate
|
|
317
|
+
// `digest` and is embedded in the resulting signature. For example, it might be
|
|
318
|
+
// `NID_sha256`.
|
|
295
319
|
//
|
|
296
320
|
// It returns 1 on success and zero on error.
|
|
297
321
|
//
|
|
298
|
-
// WARNING:
|
|
299
|
-
//
|
|
322
|
+
// WARNING: `digest` must be the result of hashing the data to be signed with
|
|
323
|
+
// `hash_nid`. Passing unhashed inputs will not result in a secure signature
|
|
300
324
|
// scheme.
|
|
301
325
|
OPENSSL_EXPORT int RSA_sign(int hash_nid, const uint8_t *digest,
|
|
302
326
|
size_t digest_len, uint8_t *out, unsigned *out_len,
|
|
303
327
|
RSA *rsa);
|
|
304
328
|
|
|
305
|
-
//
|
|
306
|
-
//
|
|
307
|
-
|
|
308
|
-
//
|
|
329
|
+
// RSA_PSS_SALTLEN_DIGEST indicates a PSS salt length that matches the digest
|
|
330
|
+
// length. This is recommended.
|
|
331
|
+
#define RSA_PSS_SALTLEN_DIGEST (-1)
|
|
332
|
+
// RSA_PSS_SALTLEN_AUTO indicates a maximum possible PSS salt length when
|
|
333
|
+
// signing, and automatically detecting the salt length when verifying. This is
|
|
334
|
+
// not recommended. Neither the signing nor verifying behaviors are compliant
|
|
335
|
+
// with FIPS 186-5.
|
|
336
|
+
#define RSA_PSS_SALTLEN_AUTO (-2)
|
|
337
|
+
|
|
338
|
+
// RSA_sign_pss_mgf1 signs `digest_len` bytes from `digest` with the public key
|
|
339
|
+
// from `rsa` using RSASSA-PSS with MGF1 as the mask generation function. It
|
|
340
|
+
// writes, at most, `max_out` bytes of signature data to `out`. The `max_out`
|
|
341
|
+
// argument must be, at least, `RSA_size` in order to ensure success. It returns
|
|
309
342
|
// 1 on success or zero on error.
|
|
310
343
|
//
|
|
311
|
-
// The
|
|
312
|
-
// and the MGF1 hash, respectively. If
|
|
344
|
+
// The `md` and `mgf1_md` arguments identify the hash used to calculate `digest`
|
|
345
|
+
// and the MGF1 hash, respectively. If `mgf1_md` is NULL, `md` is
|
|
313
346
|
// used.
|
|
314
347
|
//
|
|
315
|
-
//
|
|
316
|
-
// then the salt length is the same as the hash
|
|
317
|
-
// length
|
|
348
|
+
// `salt_len` specifies the expected salt length in bytes. If `salt_len` is
|
|
349
|
+
// `RSA_PSS_SALTLEN_DIGEST`, then the salt length is the same as the hash
|
|
350
|
+
// length. If `RSA_PSS_SALTLEN_AUTO`, then the salt length is maximal given the
|
|
351
|
+
// size of `rsa`. If unsure, use `RSA_PSS_SALTLEN_DIGEST`.
|
|
318
352
|
//
|
|
319
|
-
// WARNING:
|
|
320
|
-
//
|
|
353
|
+
// WARNING: `digest` must be the result of hashing the data to be signed with
|
|
354
|
+
// `md`. Passing unhashed inputs will not result in a secure signature scheme.
|
|
321
355
|
OPENSSL_EXPORT int RSA_sign_pss_mgf1(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
322
356
|
size_t max_out, const uint8_t *digest,
|
|
323
357
|
size_t digest_len, const EVP_MD *md,
|
|
324
358
|
const EVP_MD *mgf1_md, int salt_len);
|
|
325
359
|
|
|
326
360
|
// RSA_sign_raw performs the private key portion of computing a signature with
|
|
327
|
-
//
|
|
328
|
-
//
|
|
361
|
+
// `rsa`. It writes, at most, `max_out` bytes of signature data to `out`. The
|
|
362
|
+
// `max_out` argument must be, at least, `RSA_size` in order to ensure the
|
|
329
363
|
// output fits. It returns 1 on success or zero on error.
|
|
330
364
|
//
|
|
331
|
-
// If
|
|
365
|
+
// If `padding` is `RSA_PKCS1_PADDING`, this function wraps `in` with the
|
|
332
366
|
// padding portion of RSASSA-PKCS1-v1_5 and then performs the raw private key
|
|
333
367
|
// operation. The caller is responsible for hashing the input and wrapping it in
|
|
334
368
|
// a DigestInfo structure.
|
|
335
369
|
//
|
|
336
|
-
// If
|
|
337
|
-
// key operation, interpreting
|
|
370
|
+
// If `padding` is `RSA_NO_PADDING`, this function only performs the raw private
|
|
371
|
+
// key operation, interpreting `in` as a integer modulo n. The caller is
|
|
338
372
|
// responsible for hashing the input and encoding it for the signature scheme
|
|
339
373
|
// being implemented.
|
|
340
374
|
//
|
|
341
375
|
// WARNING: This function is a building block for a signature scheme, not a
|
|
342
|
-
// complete one.
|
|
376
|
+
// complete one. `in` must be the result of hashing and encoding the data as
|
|
343
377
|
// needed for the scheme being implemented. Passing in arbitrary inputs will not
|
|
344
378
|
// result in a secure signature scheme.
|
|
345
379
|
OPENSSL_EXPORT int RSA_sign_raw(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
346
380
|
size_t max_out, const uint8_t *in,
|
|
347
381
|
size_t in_len, int padding);
|
|
348
382
|
|
|
349
|
-
// RSA_verify verifies that
|
|
350
|
-
// RSASSA-PKCS1-v1_5 signature of
|
|
383
|
+
// RSA_verify verifies that `sig_len` bytes from `sig` are a valid,
|
|
384
|
+
// RSASSA-PKCS1-v1_5 signature of `digest_len` bytes at `digest` by `rsa`.
|
|
351
385
|
//
|
|
352
|
-
// The
|
|
353
|
-
//
|
|
354
|
-
// confusion attacks. For example, it might be
|
|
386
|
+
// The `hash_nid` argument identifies the hash function used to calculate
|
|
387
|
+
// `digest` and is embedded in the resulting signature in order to prevent hash
|
|
388
|
+
// confusion attacks. For example, it might be `NID_sha256`.
|
|
355
389
|
//
|
|
356
390
|
// It returns one if the signature is valid and zero otherwise.
|
|
357
391
|
//
|
|
358
392
|
// WARNING: this differs from the original, OpenSSL function which additionally
|
|
359
393
|
// returned -1 on error.
|
|
360
394
|
//
|
|
361
|
-
// WARNING:
|
|
362
|
-
//
|
|
395
|
+
// WARNING: `digest` must be the result of hashing the data to be verified with
|
|
396
|
+
// `hash_nid`. Passing unhashed input will not result in a secure signature
|
|
363
397
|
// scheme.
|
|
364
398
|
OPENSSL_EXPORT int RSA_verify(int hash_nid, const uint8_t *digest,
|
|
365
399
|
size_t digest_len, const uint8_t *sig,
|
|
366
400
|
size_t sig_len, RSA *rsa);
|
|
367
401
|
|
|
368
|
-
// RSA_verify_pss_mgf1 verifies that
|
|
369
|
-
// RSASSA-PSS signature of
|
|
402
|
+
// RSA_verify_pss_mgf1 verifies that `sig_len` bytes from `sig` are a valid,
|
|
403
|
+
// RSASSA-PSS signature of `digest_len` bytes at `digest` by `rsa`. It returns
|
|
370
404
|
// one if the signature is valid and zero otherwise. MGF1 is used as the mask
|
|
371
405
|
// generation function.
|
|
372
406
|
//
|
|
373
|
-
// The
|
|
374
|
-
// and the MGF1 hash, respectively. If
|
|
375
|
-
// used.
|
|
407
|
+
// The `md` and `mgf1_md` arguments identify the hash used to calculate `digest`
|
|
408
|
+
// and the MGF1 hash, respectively. If `mgf1_md` is NULL, `md` is
|
|
409
|
+
// used. `salt_len` specifies the expected salt length in bytes.
|
|
376
410
|
//
|
|
377
|
-
// If
|
|
378
|
-
//
|
|
379
|
-
//
|
|
411
|
+
// If `salt_len` is `RSA_PSS_SALTLEN_DIGEST`, then the salt length is the same
|
|
412
|
+
// as the hash length. If `RSA_PSS_SALTLEN_AUTO`, then the salt length is
|
|
413
|
+
// recovered and all values accepted. If unsure, use `RSA_PSS_SALTLEN_DIGEST`.
|
|
380
414
|
//
|
|
381
|
-
// WARNING:
|
|
382
|
-
//
|
|
415
|
+
// WARNING: `digest` must be the result of hashing the data to be verified with
|
|
416
|
+
// `md`. Passing unhashed input will not result in a secure signature scheme.
|
|
383
417
|
OPENSSL_EXPORT int RSA_verify_pss_mgf1(RSA *rsa, const uint8_t *digest,
|
|
384
418
|
size_t digest_len, const EVP_MD *md,
|
|
385
419
|
const EVP_MD *mgf1_md, int salt_len,
|
|
386
420
|
const uint8_t *sig, size_t sig_len);
|
|
387
421
|
|
|
388
|
-
// RSA_verify_raw performs the public key portion of verifying
|
|
389
|
-
// signature from
|
|
390
|
-
// one and writes, at most,
|
|
391
|
-
// argument must be, at least,
|
|
422
|
+
// RSA_verify_raw performs the public key portion of verifying `in_len` bytes of
|
|
423
|
+
// signature from `in` using the public key from `rsa`. On success, it returns
|
|
424
|
+
// one and writes, at most, `max_out` bytes of output to `out`. The `max_out`
|
|
425
|
+
// argument must be, at least, `RSA_size` in order to ensure the output fits. On
|
|
392
426
|
// failure or invalid input, it returns zero.
|
|
393
427
|
//
|
|
394
|
-
// If
|
|
428
|
+
// If `padding` is `RSA_PKCS1_PADDING`, this function checks the padding portion
|
|
395
429
|
// of RSASSA-PKCS1-v1_5 and outputs the remainder of the encoded digest. The
|
|
396
430
|
// caller is responsible for checking the output is a DigestInfo-wrapped digest
|
|
397
431
|
// of the message.
|
|
398
432
|
//
|
|
399
|
-
// If
|
|
433
|
+
// If `padding` is `RSA_NO_PADDING`, this function only performs the raw public
|
|
400
434
|
// key operation. The caller is responsible for checking the output is a valid
|
|
401
435
|
// result for the signature scheme being implemented.
|
|
402
436
|
//
|
|
403
437
|
// WARNING: This function is a building block for a signature scheme, not a
|
|
404
|
-
// complete one. Checking for arbitrary strings in
|
|
438
|
+
// complete one. Checking for arbitrary strings in `out` will not result in a
|
|
405
439
|
// secure signature scheme.
|
|
406
440
|
OPENSSL_EXPORT int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
407
441
|
size_t max_out, const uint8_t *in,
|
|
408
442
|
size_t in_len, int padding);
|
|
409
443
|
|
|
410
444
|
// RSA_private_encrypt performs the private key portion of computing a signature
|
|
411
|
-
// with
|
|
412
|
-
// to
|
|
445
|
+
// with `rsa`. It takes `flen` bytes from `from` as input and writes the result
|
|
446
|
+
// to `to`. The `to` buffer must have at least `RSA_size` bytes of space. It
|
|
413
447
|
// returns the number of bytes written, or -1 on error.
|
|
414
448
|
//
|
|
415
|
-
// For the interpretation of
|
|
449
|
+
// For the interpretation of `padding` and the input, see `RSA_sign_raw`.
|
|
416
450
|
//
|
|
417
451
|
// WARNING: This function is a building block for a signature scheme, not a
|
|
418
|
-
// complete one. See
|
|
452
|
+
// complete one. See `RSA_sign_raw` for details.
|
|
419
453
|
//
|
|
420
454
|
// WARNING: This function is dangerous because it breaks the usual return value
|
|
421
|
-
// convention. Use
|
|
455
|
+
// convention. Use `RSA_sign_raw` instead.
|
|
422
456
|
OPENSSL_EXPORT int RSA_private_encrypt(size_t flen, const uint8_t *from,
|
|
423
457
|
uint8_t *to, RSA *rsa, int padding);
|
|
424
458
|
|
|
425
|
-
// RSA_public_decrypt performs the public key portion of verifying
|
|
426
|
-
// of signature from
|
|
427
|
-
// result to
|
|
459
|
+
// RSA_public_decrypt performs the public key portion of verifying `flen` bytes
|
|
460
|
+
// of signature from `from` using the public key from `rsa`. It writes the
|
|
461
|
+
// result to `to`, which must have at least `RSA_size` bytes of space. It
|
|
428
462
|
// returns the number of bytes written, or -1 on error.
|
|
429
463
|
//
|
|
430
|
-
// For the interpretation of
|
|
464
|
+
// For the interpretation of `padding` and the result, see `RSA_verify_raw`.
|
|
431
465
|
//
|
|
432
466
|
// WARNING: This function is a building block for a signature scheme, not a
|
|
433
|
-
// complete one. See
|
|
467
|
+
// complete one. See `RSA_verify_raw` for details.
|
|
434
468
|
//
|
|
435
469
|
// WARNING: This function is dangerous because it breaks the usual return value
|
|
436
|
-
// convention. Use
|
|
470
|
+
// convention. Use `RSA_verify_raw` instead.
|
|
437
471
|
OPENSSL_EXPORT int RSA_public_decrypt(size_t flen, const uint8_t *from,
|
|
438
472
|
uint8_t *to, RSA *rsa, int padding);
|
|
439
473
|
|
|
@@ -441,36 +475,36 @@ OPENSSL_EXPORT int RSA_public_decrypt(size_t flen, const uint8_t *from,
|
|
|
441
475
|
// Utility functions.
|
|
442
476
|
|
|
443
477
|
// RSA_size returns the number of bytes in the modulus, which is also the size
|
|
444
|
-
// of a signature or encrypted value using
|
|
478
|
+
// of a signature or encrypted value using `rsa`.
|
|
445
479
|
OPENSSL_EXPORT unsigned RSA_size(const RSA *rsa);
|
|
446
480
|
|
|
447
|
-
// RSA_is_opaque returns one if
|
|
481
|
+
// RSA_is_opaque returns one if `rsa` is opaque and doesn't expose its key
|
|
448
482
|
// material. Otherwise it returns zero.
|
|
449
483
|
OPENSSL_EXPORT int RSA_is_opaque(const RSA *rsa);
|
|
450
484
|
|
|
451
|
-
// RSAPublicKey_dup allocates a fresh
|
|
452
|
-
//
|
|
485
|
+
// RSAPublicKey_dup allocates a fresh `RSA` and copies the public key from
|
|
486
|
+
// `rsa` into it. It returns the fresh `RSA` object, or NULL on error.
|
|
453
487
|
OPENSSL_EXPORT RSA *RSAPublicKey_dup(const RSA *rsa);
|
|
454
488
|
|
|
455
|
-
// RSAPrivateKey_dup allocates a fresh
|
|
456
|
-
//
|
|
489
|
+
// RSAPrivateKey_dup allocates a fresh `RSA` and copies the private key from
|
|
490
|
+
// `rsa` into it. It returns the fresh `RSA` object, or NULL on error.
|
|
457
491
|
OPENSSL_EXPORT RSA *RSAPrivateKey_dup(const RSA *rsa);
|
|
458
492
|
|
|
459
|
-
// RSA_check_key performs basic validity tests on
|
|
493
|
+
// RSA_check_key performs basic validity tests on `rsa`. It returns one if
|
|
460
494
|
// they pass and zero otherwise. Opaque keys and public keys always pass. If it
|
|
461
495
|
// returns zero then a more detailed error is available on the error queue.
|
|
462
496
|
OPENSSL_EXPORT int RSA_check_key(const RSA *rsa);
|
|
463
497
|
|
|
464
|
-
// RSA_check_fips performs public key validity tests on
|
|
498
|
+
// RSA_check_fips performs public key validity tests on `key`. It returns one if
|
|
465
499
|
// they pass and zero otherwise. Opaque keys always fail. This function does not
|
|
466
|
-
// mutate
|
|
500
|
+
// mutate `rsa` for thread-safety purposes and may be used concurrently.
|
|
467
501
|
OPENSSL_EXPORT int RSA_check_fips(RSA *key);
|
|
468
502
|
|
|
469
|
-
// RSA_verify_PKCS1_PSS_mgf1 verifies that
|
|
470
|
-
//
|
|
471
|
-
// exactly
|
|
472
|
-
// hash function for generating the mask. If NULL,
|
|
473
|
-
// argument specifies the expected salt length in bytes. If
|
|
503
|
+
// RSA_verify_PKCS1_PSS_mgf1 verifies that `EM` is a correct PSS padding of
|
|
504
|
+
// `mHash`, where `mHash` is a digest produced by `Hash`. `EM` must point to
|
|
505
|
+
// exactly `RSA_size(rsa)` bytes of data. The `mgf1Hash` argument specifies the
|
|
506
|
+
// hash function for generating the mask. If NULL, `Hash` is used. The `sLen`
|
|
507
|
+
// argument specifies the expected salt length in bytes. If `sLen` is -1 then
|
|
474
508
|
// the salt length is the same as the hash length. If -2, then the salt length
|
|
475
509
|
// is recovered and all values accepted.
|
|
476
510
|
//
|
|
@@ -479,34 +513,34 @@ OPENSSL_EXPORT int RSA_check_fips(RSA *key);
|
|
|
479
513
|
// It returns one on success or zero on error.
|
|
480
514
|
//
|
|
481
515
|
// This function implements only the low-level padding logic. Use
|
|
482
|
-
//
|
|
516
|
+
// `RSA_verify_pss_mgf1` instead.
|
|
483
517
|
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS_mgf1(const RSA *rsa,
|
|
484
518
|
const uint8_t *mHash,
|
|
485
519
|
const EVP_MD *Hash,
|
|
486
520
|
const EVP_MD *mgf1Hash,
|
|
487
521
|
const uint8_t *EM, int sLen);
|
|
488
522
|
|
|
489
|
-
// RSA_padding_add_PKCS1_PSS_mgf1 writes a PSS padding of
|
|
490
|
-
// where
|
|
491
|
-
// output will be written to
|
|
492
|
-
// function for generating the mask. If NULL,
|
|
493
|
-
// argument specifies the expected salt length in bytes. If
|
|
523
|
+
// RSA_padding_add_PKCS1_PSS_mgf1 writes a PSS padding of `mHash` to `EM`,
|
|
524
|
+
// where `mHash` is a digest produced by `Hash`. `RSA_size(rsa)` bytes of
|
|
525
|
+
// output will be written to `EM`. The `mgf1Hash` argument specifies the hash
|
|
526
|
+
// function for generating the mask. If NULL, `Hash` is used. The `sLen`
|
|
527
|
+
// argument specifies the expected salt length in bytes. If `sLen` is -1 then
|
|
494
528
|
// the salt length is the same as the hash length. If -2, then the salt length
|
|
495
|
-
// is maximal given the space in
|
|
529
|
+
// is maximal given the space in `EM`.
|
|
496
530
|
//
|
|
497
531
|
// It returns one on success or zero on error.
|
|
498
532
|
//
|
|
499
533
|
// This function implements only the low-level padding logic. Use
|
|
500
|
-
//
|
|
534
|
+
// `RSA_sign_pss_mgf1` instead.
|
|
501
535
|
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS_mgf1(const RSA *rsa, uint8_t *EM,
|
|
502
536
|
const uint8_t *mHash,
|
|
503
537
|
const EVP_MD *Hash,
|
|
504
538
|
const EVP_MD *mgf1Hash,
|
|
505
539
|
int sLen);
|
|
506
540
|
|
|
507
|
-
// RSA_padding_add_PKCS1_OAEP_mgf1 writes an OAEP padding of
|
|
508
|
-
// with the given parameters and hash functions. If
|
|
509
|
-
// used. If
|
|
541
|
+
// RSA_padding_add_PKCS1_OAEP_mgf1 writes an OAEP padding of `from` to `to`
|
|
542
|
+
// with the given parameters and hash functions. If `md` is NULL then SHA-1 is
|
|
543
|
+
// used. If `mgf1md` is NULL then the value of `md` is used (which means SHA-1
|
|
510
544
|
// if that, in turn, is NULL).
|
|
511
545
|
//
|
|
512
546
|
// It returns one on success or zero on error.
|
|
@@ -515,10 +549,10 @@ OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP_mgf1(
|
|
|
515
549
|
const uint8_t *param, size_t param_len, const EVP_MD *md,
|
|
516
550
|
const EVP_MD *mgf1md);
|
|
517
551
|
|
|
518
|
-
// RSA_add_pkcs1_prefix builds a version of
|
|
519
|
-
// DigestInfo header for the given hash function and sets
|
|
520
|
-
// it. On successful return, if
|
|
521
|
-
//
|
|
552
|
+
// RSA_add_pkcs1_prefix builds a version of `digest` prefixed with the
|
|
553
|
+
// DigestInfo header for the given hash function and sets `out_msg` to point to
|
|
554
|
+
// it. On successful return, if `*is_alloced` is one, the caller must release
|
|
555
|
+
// `*out_msg` with `OPENSSL_free`.
|
|
522
556
|
OPENSSL_EXPORT int RSA_add_pkcs1_prefix(uint8_t **out_msg, size_t *out_msg_len,
|
|
523
557
|
int *is_alloced, int hash_nid,
|
|
524
558
|
const uint8_t *digest,
|
|
@@ -528,45 +562,45 @@ OPENSSL_EXPORT int RSA_add_pkcs1_prefix(uint8_t **out_msg, size_t *out_msg_len,
|
|
|
528
562
|
// ASN.1 functions.
|
|
529
563
|
|
|
530
564
|
// RSA_parse_public_key parses a DER-encoded RSAPublicKey structure (RFC 8017)
|
|
531
|
-
// from
|
|
565
|
+
// from `cbs` and advances `cbs`. It returns a newly-allocated `RSA` or NULL on
|
|
532
566
|
// error.
|
|
533
567
|
OPENSSL_EXPORT RSA *RSA_parse_public_key(CBS *cbs);
|
|
534
568
|
|
|
535
|
-
// RSA_public_key_from_bytes parses
|
|
536
|
-
// (RFC 8017). It returns a newly-allocated
|
|
569
|
+
// RSA_public_key_from_bytes parses `in` as a DER-encoded RSAPublicKey structure
|
|
570
|
+
// (RFC 8017). It returns a newly-allocated `RSA` or NULL on error.
|
|
537
571
|
OPENSSL_EXPORT RSA *RSA_public_key_from_bytes(const uint8_t *in, size_t in_len);
|
|
538
572
|
|
|
539
|
-
// RSA_marshal_public_key marshals
|
|
540
|
-
// (RFC 8017) and appends the result to
|
|
573
|
+
// RSA_marshal_public_key marshals `rsa` as a DER-encoded RSAPublicKey structure
|
|
574
|
+
// (RFC 8017) and appends the result to `cbb`. It returns one on success and
|
|
541
575
|
// zero on failure.
|
|
542
576
|
OPENSSL_EXPORT int RSA_marshal_public_key(CBB *cbb, const RSA *rsa);
|
|
543
577
|
|
|
544
|
-
// RSA_public_key_to_bytes marshals
|
|
545
|
-
// structure (RFC 8017) and, on success, sets
|
|
578
|
+
// RSA_public_key_to_bytes marshals `rsa` as a DER-encoded RSAPublicKey
|
|
579
|
+
// structure (RFC 8017) and, on success, sets `*out_bytes` to a newly allocated
|
|
546
580
|
// buffer containing the result and returns one. Otherwise, it returns zero. The
|
|
547
|
-
// result should be freed with
|
|
581
|
+
// result should be freed with `OPENSSL_free`.
|
|
548
582
|
OPENSSL_EXPORT int RSA_public_key_to_bytes(uint8_t **out_bytes, size_t *out_len,
|
|
549
583
|
const RSA *rsa);
|
|
550
584
|
|
|
551
585
|
// RSA_parse_private_key parses a DER-encoded RSAPrivateKey structure (RFC 8017)
|
|
552
|
-
// from
|
|
586
|
+
// from `cbs` and advances `cbs`. It returns a newly-allocated `RSA` or NULL on
|
|
553
587
|
// error.
|
|
554
588
|
OPENSSL_EXPORT RSA *RSA_parse_private_key(CBS *cbs);
|
|
555
589
|
|
|
556
|
-
// RSA_private_key_from_bytes parses
|
|
557
|
-
// structure (RFC 8017). It returns a newly-allocated
|
|
590
|
+
// RSA_private_key_from_bytes parses `in` as a DER-encoded RSAPrivateKey
|
|
591
|
+
// structure (RFC 8017). It returns a newly-allocated `RSA` or NULL on error.
|
|
558
592
|
OPENSSL_EXPORT RSA *RSA_private_key_from_bytes(const uint8_t *in,
|
|
559
593
|
size_t in_len);
|
|
560
594
|
|
|
561
|
-
// RSA_marshal_private_key marshals
|
|
562
|
-
// structure (RFC 8017) and appends the result to
|
|
595
|
+
// RSA_marshal_private_key marshals `rsa` as a DER-encoded RSAPrivateKey
|
|
596
|
+
// structure (RFC 8017) and appends the result to `cbb`. It returns one on
|
|
563
597
|
// success and zero on failure.
|
|
564
598
|
OPENSSL_EXPORT int RSA_marshal_private_key(CBB *cbb, const RSA *rsa);
|
|
565
599
|
|
|
566
|
-
// RSA_private_key_to_bytes marshals
|
|
567
|
-
// structure (RFC 8017) and, on success, sets
|
|
600
|
+
// RSA_private_key_to_bytes marshals `rsa` as a DER-encoded RSAPrivateKey
|
|
601
|
+
// structure (RFC 8017) and, on success, sets `*out_bytes` to a newly allocated
|
|
568
602
|
// buffer containing the result and returns one. Otherwise, it returns zero. The
|
|
569
|
-
// result should be freed with
|
|
603
|
+
// result should be freed with `OPENSSL_free`.
|
|
570
604
|
OPENSSL_EXPORT int RSA_private_key_to_bytes(uint8_t **out_bytes,
|
|
571
605
|
size_t *out_len, const RSA *rsa);
|
|
572
606
|
|
|
@@ -576,7 +610,7 @@ OPENSSL_EXPORT int RSA_private_key_to_bytes(uint8_t **out_bytes,
|
|
|
576
610
|
// These functions allow creating RSA keys with obscure combinations of
|
|
577
611
|
// parameters.
|
|
578
612
|
|
|
579
|
-
// RSA_new_private_key_no_crt behaves like
|
|
613
|
+
// RSA_new_private_key_no_crt behaves like `RSA_new_private_key` but constructs
|
|
580
614
|
// an RSA key without CRT coefficients.
|
|
581
615
|
//
|
|
582
616
|
// Keys created by this function will be less performant and cannot be
|
|
@@ -584,7 +618,7 @@ OPENSSL_EXPORT int RSA_private_key_to_bytes(uint8_t **out_bytes,
|
|
|
584
618
|
OPENSSL_EXPORT RSA *RSA_new_private_key_no_crt(const BIGNUM *n, const BIGNUM *e,
|
|
585
619
|
const BIGNUM *d);
|
|
586
620
|
|
|
587
|
-
// RSA_new_private_key_no_e behaves like
|
|
621
|
+
// RSA_new_private_key_no_e behaves like `RSA_new_private_key` but constructs an
|
|
588
622
|
// RSA key without CRT parameters or public exponent.
|
|
589
623
|
//
|
|
590
624
|
// Keys created by this function will be less performant, cannot be serialized,
|
|
@@ -592,21 +626,21 @@ OPENSSL_EXPORT RSA *RSA_new_private_key_no_crt(const BIGNUM *n, const BIGNUM *e,
|
|
|
592
626
|
// attacks.
|
|
593
627
|
OPENSSL_EXPORT RSA *RSA_new_private_key_no_e(const BIGNUM *n, const BIGNUM *d);
|
|
594
628
|
|
|
595
|
-
// RSA_new_public_key_large_e behaves like
|
|
596
|
-
//
|
|
629
|
+
// RSA_new_public_key_large_e behaves like `RSA_new_public_key` but allows any
|
|
630
|
+
// `e` up to `n`.
|
|
597
631
|
//
|
|
598
632
|
// BoringSSL typically bounds public exponents as a denial-of-service
|
|
599
633
|
// mitigation. Keys created by this function may perform worse than those
|
|
600
|
-
// created by
|
|
634
|
+
// created by `RSA_new_public_key`.
|
|
601
635
|
OPENSSL_EXPORT RSA *RSA_new_public_key_large_e(const BIGNUM *n,
|
|
602
636
|
const BIGNUM *e);
|
|
603
637
|
|
|
604
|
-
// RSA_new_private_key_large_e behaves like
|
|
605
|
-
//
|
|
638
|
+
// RSA_new_private_key_large_e behaves like `RSA_new_private_key` but allows any
|
|
639
|
+
// `e` up to `n`.
|
|
606
640
|
//
|
|
607
641
|
// BoringSSL typically bounds public exponents as a denial-of-service
|
|
608
642
|
// mitigation. Keys created by this function may perform worse than those
|
|
609
|
-
// created by
|
|
643
|
+
// created by `RSA_new_private_key`.
|
|
610
644
|
OPENSSL_EXPORT RSA *RSA_new_private_key_large_e(
|
|
611
645
|
const BIGNUM *n, const BIGNUM *e, const BIGNUM *d, const BIGNUM *p,
|
|
612
646
|
const BIGNUM *q, const BIGNUM *dmp1, const BIGNUM *dmq1,
|
|
@@ -615,7 +649,7 @@ OPENSSL_EXPORT RSA *RSA_new_private_key_large_e(
|
|
|
615
649
|
|
|
616
650
|
// ex_data functions.
|
|
617
651
|
//
|
|
618
|
-
// See
|
|
652
|
+
// See `ex_data.h` for details.
|
|
619
653
|
|
|
620
654
|
OPENSSL_EXPORT int RSA_get_ex_new_index(long argl, void *argp,
|
|
621
655
|
CRYPTO_EX_unused *unused,
|
|
@@ -632,9 +666,7 @@ OPENSSL_EXPORT void *RSA_get_ex_data(const RSA *rsa, int idx);
|
|
|
632
666
|
// API, like a platform key store.
|
|
633
667
|
#define RSA_FLAG_OPAQUE 1
|
|
634
668
|
|
|
635
|
-
// RSA_FLAG_NO_BLINDING
|
|
636
|
-
// dangerous thing to do. This flag is set internally as part of self-tests but
|
|
637
|
-
// is otherwise impossible to set externally.
|
|
669
|
+
// RSA_FLAG_NO_BLINDING does nothing.
|
|
638
670
|
#define RSA_FLAG_NO_BLINDING 8
|
|
639
671
|
|
|
640
672
|
// RSA_FLAG_EXT_PKEY is deprecated and ignored.
|
|
@@ -642,12 +674,12 @@ OPENSSL_EXPORT void *RSA_get_ex_data(const RSA *rsa, int idx);
|
|
|
642
674
|
|
|
643
675
|
// RSA_FLAG_NO_PUBLIC_EXPONENT indicates that private keys without a public
|
|
644
676
|
// exponent are allowed. This is an internal constant. Use
|
|
645
|
-
//
|
|
677
|
+
// `RSA_new_private_key_no_e` to construct such keys.
|
|
646
678
|
#define RSA_FLAG_NO_PUBLIC_EXPONENT 0x40
|
|
647
679
|
|
|
648
680
|
// RSA_FLAG_LARGE_PUBLIC_EXPONENT indicates that keys with a large public
|
|
649
681
|
// exponent are allowed. This is an internal constant. Use
|
|
650
|
-
//
|
|
682
|
+
// `RSA_new_public_key_large_e` and `RSA_new_private_key_large_e` to construct
|
|
651
683
|
// such keys.
|
|
652
684
|
#define RSA_FLAG_LARGE_PUBLIC_EXPONENT 0x80
|
|
653
685
|
|
|
@@ -662,11 +694,11 @@ OPENSSL_EXPORT void *RSA_get_ex_data(const RSA *rsa, int idx);
|
|
|
662
694
|
|
|
663
695
|
#define RSA_METHOD_FLAG_NO_CHECK RSA_FLAG_OPAQUE
|
|
664
696
|
|
|
665
|
-
// RSA_flags returns the flags for
|
|
697
|
+
// RSA_flags returns the flags for `rsa`. These are a bitwise OR of `RSA_FLAG_*`
|
|
666
698
|
// constants.
|
|
667
699
|
OPENSSL_EXPORT int RSA_flags(const RSA *rsa);
|
|
668
700
|
|
|
669
|
-
// RSA_test_flags returns the subset of flags in
|
|
701
|
+
// RSA_test_flags returns the subset of flags in `flags` which are set in `rsa`.
|
|
670
702
|
OPENSSL_EXPORT int RSA_test_flags(const RSA *rsa, int flags);
|
|
671
703
|
|
|
672
704
|
// RSA_blinding_on returns one.
|
|
@@ -675,57 +707,57 @@ OPENSSL_EXPORT int RSA_blinding_on(RSA *rsa, BN_CTX *ctx);
|
|
|
675
707
|
// RSA_blinding_off does nothing.
|
|
676
708
|
OPENSSL_EXPORT void RSA_blinding_off(RSA *rsa);
|
|
677
709
|
|
|
678
|
-
// RSA_generate_key behaves like
|
|
679
|
-
// should use instead. It returns NULL on error, or a newly-allocated
|
|
680
|
-
// success. This function is provided for compatibility only. The
|
|
681
|
-
// and
|
|
710
|
+
// RSA_generate_key behaves like `RSA_generate_key_ex`, which is what you
|
|
711
|
+
// should use instead. It returns NULL on error, or a newly-allocated `RSA` on
|
|
712
|
+
// success. This function is provided for compatibility only. The `callback`
|
|
713
|
+
// and `cb_arg` parameters must be NULL.
|
|
682
714
|
OPENSSL_EXPORT RSA *RSA_generate_key(int bits, uint64_t e, void *callback,
|
|
683
715
|
void *cb_arg);
|
|
684
716
|
|
|
685
717
|
// d2i_RSAPublicKey parses a DER-encoded RSAPublicKey structure (RFC 8017) from
|
|
686
|
-
//
|
|
718
|
+
// `len` bytes at `*inp`, as described in `d2i_SAMPLE`.
|
|
687
719
|
//
|
|
688
|
-
// Use
|
|
720
|
+
// Use `RSA_parse_public_key` instead.
|
|
689
721
|
OPENSSL_EXPORT RSA *d2i_RSAPublicKey(RSA **out, const uint8_t **inp, long len);
|
|
690
722
|
|
|
691
|
-
// i2d_RSAPublicKey marshals
|
|
692
|
-
// 8017), as described in
|
|
723
|
+
// i2d_RSAPublicKey marshals `in` to a DER-encoded RSAPublicKey structure (RFC
|
|
724
|
+
// 8017), as described in `i2d_SAMPLE`.
|
|
693
725
|
//
|
|
694
|
-
// Use
|
|
726
|
+
// Use `RSA_marshal_public_key` instead.
|
|
695
727
|
OPENSSL_EXPORT int i2d_RSAPublicKey(const RSA *in, uint8_t **outp);
|
|
696
728
|
|
|
697
729
|
// d2i_RSAPrivateKey parses a DER-encoded RSAPrivateKey structure (RFC 8017)
|
|
698
|
-
// from
|
|
730
|
+
// from `len` bytes at `*inp`, as described in `d2i_SAMPLE`.
|
|
699
731
|
//
|
|
700
|
-
// Use
|
|
732
|
+
// Use `RSA_parse_private_key` instead.
|
|
701
733
|
OPENSSL_EXPORT RSA *d2i_RSAPrivateKey(RSA **out, const uint8_t **inp, long len);
|
|
702
734
|
|
|
703
|
-
// i2d_RSAPrivateKey marshals
|
|
704
|
-
// 8017), as described in
|
|
735
|
+
// i2d_RSAPrivateKey marshals `in` to a DER-encoded RSAPrivateKey structure (RFC
|
|
736
|
+
// 8017), as described in `i2d_SAMPLE`.
|
|
705
737
|
//
|
|
706
|
-
// Use
|
|
738
|
+
// Use `RSA_marshal_private_key` instead.
|
|
707
739
|
OPENSSL_EXPORT int i2d_RSAPrivateKey(const RSA *in, uint8_t **outp);
|
|
708
740
|
|
|
709
|
-
// RSA_padding_add_PKCS1_PSS acts like
|
|
710
|
-
//
|
|
741
|
+
// RSA_padding_add_PKCS1_PSS acts like `RSA_padding_add_PKCS1_PSS_mgf1` but the
|
|
742
|
+
// `mgf1Hash` parameter of the latter is implicitly set to `Hash`.
|
|
711
743
|
//
|
|
712
744
|
// This function implements only the low-level padding logic. Use
|
|
713
|
-
//
|
|
745
|
+
// `RSA_sign_pss_mgf1` instead.
|
|
714
746
|
OPENSSL_EXPORT int RSA_padding_add_PKCS1_PSS(const RSA *rsa, uint8_t *EM,
|
|
715
747
|
const uint8_t *mHash,
|
|
716
748
|
const EVP_MD *Hash, int sLen);
|
|
717
749
|
|
|
718
|
-
// RSA_verify_PKCS1_PSS acts like
|
|
719
|
-
//
|
|
750
|
+
// RSA_verify_PKCS1_PSS acts like `RSA_verify_PKCS1_PSS_mgf1` but the
|
|
751
|
+
// `mgf1Hash` parameter of the latter is implicitly set to `Hash`.
|
|
720
752
|
//
|
|
721
753
|
// This function implements only the low-level padding logic. Use
|
|
722
|
-
//
|
|
754
|
+
// `RSA_verify_pss_mgf1` instead.
|
|
723
755
|
OPENSSL_EXPORT int RSA_verify_PKCS1_PSS(const RSA *rsa, const uint8_t *mHash,
|
|
724
756
|
const EVP_MD *Hash, const uint8_t *EM,
|
|
725
757
|
int sLen);
|
|
726
758
|
|
|
727
|
-
// RSA_padding_add_PKCS1_OAEP acts like
|
|
728
|
-
// the
|
|
759
|
+
// RSA_padding_add_PKCS1_OAEP acts like `RSA_padding_add_PKCS1_OAEP_mgf1` but
|
|
760
|
+
// the `md` and `mgf1md` parameters of the latter are implicitly set to NULL,
|
|
729
761
|
// which means SHA-1.
|
|
730
762
|
OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP(uint8_t *to, size_t to_len,
|
|
731
763
|
const uint8_t *from,
|
|
@@ -733,17 +765,22 @@ OPENSSL_EXPORT int RSA_padding_add_PKCS1_OAEP(uint8_t *to, size_t to_len,
|
|
|
733
765
|
const uint8_t *param,
|
|
734
766
|
size_t param_len);
|
|
735
767
|
|
|
736
|
-
// RSA_print prints a textual representation of
|
|
768
|
+
// RSA_print prints a textual representation of `rsa` to `bio`. It returns one
|
|
737
769
|
// on success or zero otherwise.
|
|
738
770
|
OPENSSL_EXPORT int RSA_print(BIO *bio, const RSA *rsa, int indent);
|
|
739
771
|
|
|
740
772
|
// RSA_get0_pss_params returns NULL. In OpenSSL, this function retries RSA-PSS
|
|
741
|
-
// parameters associated with
|
|
742
|
-
//
|
|
773
|
+
// parameters associated with `RSA` objects, but BoringSSL does not enable the
|
|
774
|
+
// id-RSASSA-PSS key encoding by default.
|
|
775
|
+
//
|
|
776
|
+
// WARNING: BoringSSL does support id-RSASSA-PSS parameters when callers opt in
|
|
777
|
+
// (see `EVP_pkey_rsa_pss_sha256` and others). We currently assume such callers
|
|
778
|
+
// do not need this function. Callers that opt into id-RSASSA-PSS support and
|
|
779
|
+
// require this functionality should contact the BoringSSL team.
|
|
743
780
|
OPENSSL_EXPORT const RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *rsa);
|
|
744
781
|
|
|
745
|
-
// RSA_new_method_no_e returns a newly-allocated
|
|
746
|
-
//
|
|
782
|
+
// RSA_new_method_no_e returns a newly-allocated `RSA` object backed by
|
|
783
|
+
// `engine`, with a public modulus of `n` and no known public exponent.
|
|
747
784
|
//
|
|
748
785
|
// Do not use this function. It exists only to support Conscrypt, whose use
|
|
749
786
|
// should be replaced with a more sound mechanism. See
|
|
@@ -762,17 +799,17 @@ struct rsa_meth_st {
|
|
|
762
799
|
int (*sign)(int type, const uint8_t *m, unsigned int m_length,
|
|
763
800
|
uint8_t *sigret, unsigned int *siglen, const RSA *rsa);
|
|
764
801
|
|
|
765
|
-
// These functions mirror the
|
|
802
|
+
// These functions mirror the `RSA_*` functions of the same name.
|
|
766
803
|
int (*sign_raw)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out,
|
|
767
804
|
const uint8_t *in, size_t in_len, int padding);
|
|
768
805
|
int (*decrypt)(RSA *rsa, size_t *out_len, uint8_t *out, size_t max_out,
|
|
769
806
|
const uint8_t *in, size_t in_len, int padding);
|
|
770
807
|
|
|
771
|
-
// private_transform takes a big-endian integer from
|
|
808
|
+
// private_transform takes a big-endian integer from `in`, calculates the
|
|
772
809
|
// d'th power of it, modulo the RSA modulus and writes the result as a
|
|
773
|
-
// big-endian integer to
|
|
774
|
-
//
|
|
775
|
-
// can be represented in fewer than
|
|
810
|
+
// big-endian integer to `out`. Both `in` and `out` are `len` bytes long and
|
|
811
|
+
// `len` is always equal to `RSA_size(rsa)`. If the result of the transform
|
|
812
|
+
// can be represented in fewer than `len` bytes, then `out` must be zero
|
|
776
813
|
// padded on the left.
|
|
777
814
|
//
|
|
778
815
|
// It returns one on success and zero otherwise.
|