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
|
@@ -16,12 +16,119 @@
|
|
|
16
16
|
#define OPENSSL_HEADER_CRYPTO_KYBER_INTERNAL_H
|
|
17
17
|
|
|
18
18
|
#include <openssl/base.h>
|
|
19
|
-
#include <openssl/experimental/kyber.h>
|
|
20
19
|
|
|
21
|
-
#if defined(__cplusplus)
|
|
22
|
-
extern "C" {
|
|
23
|
-
#endif
|
|
24
20
|
|
|
21
|
+
BSSL_NAMESPACE_BEGIN
|
|
22
|
+
|
|
23
|
+
// Kyber is the pre-standard version of ML-KEM. This was once exported as public
|
|
24
|
+
// API, but is now internal and only used by libssl. It will be removed entirely
|
|
25
|
+
// in the future.
|
|
26
|
+
//
|
|
27
|
+
// This implements the round-3 specification of Kyber, defined at
|
|
28
|
+
// https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf
|
|
29
|
+
|
|
30
|
+
// KYBER_public_key contains a Kyber768 public key. The contents of this
|
|
31
|
+
// object should never leave the address space since the format is unstable.
|
|
32
|
+
struct KYBER_public_key {
|
|
33
|
+
union {
|
|
34
|
+
uint8_t bytes[512 * (3 + 9) + 32 + 32];
|
|
35
|
+
uint16_t alignment;
|
|
36
|
+
} opaque;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// KYBER_private_key contains a Kyber768 private key. The contents of this
|
|
40
|
+
// object should never leave the address space since the format is unstable.
|
|
41
|
+
struct KYBER_private_key {
|
|
42
|
+
union {
|
|
43
|
+
uint8_t bytes[512 * (3 + 3 + 9) + 32 + 32 + 32];
|
|
44
|
+
uint16_t alignment;
|
|
45
|
+
} opaque;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// KYBER_PUBLIC_KEY_BYTES is the number of bytes in an encoded Kyber768 public
|
|
49
|
+
// key.
|
|
50
|
+
#define KYBER_PUBLIC_KEY_BYTES 1184
|
|
51
|
+
|
|
52
|
+
// KYBER_SHARED_SECRET_BYTES is the number of bytes in the Kyber768 shared
|
|
53
|
+
// secret. Although the round-3 specification has a variable-length output, the
|
|
54
|
+
// final ML-KEM construction is expected to use a fixed 32-byte output. To
|
|
55
|
+
// simplify the future transition, we apply the same restriction.
|
|
56
|
+
#define KYBER_SHARED_SECRET_BYTES 32
|
|
57
|
+
|
|
58
|
+
// KYBER_generate_key generates a random public/private key pair, writes the
|
|
59
|
+
// encoded public key to `out_encoded_public_key` and sets `out_private_key` to
|
|
60
|
+
// the private key.
|
|
61
|
+
OPENSSL_EXPORT void KYBER_generate_key(
|
|
62
|
+
uint8_t out_encoded_public_key[KYBER_PUBLIC_KEY_BYTES],
|
|
63
|
+
struct KYBER_private_key *out_private_key);
|
|
64
|
+
|
|
65
|
+
// KYBER_public_from_private sets `*out_public_key` to the public key that
|
|
66
|
+
// corresponds to `private_key`. (This is faster than parsing the output of
|
|
67
|
+
// `KYBER_generate_key` if, for some reason, you need to encapsulate to a key
|
|
68
|
+
// that was just generated.)
|
|
69
|
+
OPENSSL_EXPORT void KYBER_public_from_private(
|
|
70
|
+
struct KYBER_public_key *out_public_key,
|
|
71
|
+
const struct KYBER_private_key *private_key);
|
|
72
|
+
|
|
73
|
+
// KYBER_CIPHERTEXT_BYTES is number of bytes in the Kyber768 ciphertext.
|
|
74
|
+
#define KYBER_CIPHERTEXT_BYTES 1088
|
|
75
|
+
|
|
76
|
+
// KYBER_encap encrypts a random shared secret for `public_key`, writes the
|
|
77
|
+
// ciphertext to `out_ciphertext`, and writes the random shared secret to
|
|
78
|
+
// `out_shared_secret`.
|
|
79
|
+
OPENSSL_EXPORT void KYBER_encap(
|
|
80
|
+
uint8_t out_ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
81
|
+
uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
82
|
+
const struct KYBER_public_key *public_key);
|
|
83
|
+
|
|
84
|
+
// KYBER_decap decrypts a shared secret from `ciphertext` using `private_key`
|
|
85
|
+
// and writes it to `out_shared_secret`. If `ciphertext` is invalid,
|
|
86
|
+
// `out_shared_secret` is filled with a key that will always be the same for the
|
|
87
|
+
// same `ciphertext` and `private_key`, but which appears to be random unless
|
|
88
|
+
// one has access to `private_key`. These alternatives occur in constant time.
|
|
89
|
+
// Any subsequent symmetric encryption using `out_shared_secret` must use an
|
|
90
|
+
// authenticated encryption scheme in order to discover the decapsulation
|
|
91
|
+
// failure.
|
|
92
|
+
OPENSSL_EXPORT void KYBER_decap(
|
|
93
|
+
uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
94
|
+
const uint8_t ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
95
|
+
const struct KYBER_private_key *private_key);
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
// Serialisation of keys.
|
|
99
|
+
|
|
100
|
+
// KYBER_marshal_public_key serializes `public_key` to `out` in the standard
|
|
101
|
+
// format for Kyber public keys. It returns one on success or zero on allocation
|
|
102
|
+
// error.
|
|
103
|
+
OPENSSL_EXPORT int KYBER_marshal_public_key(
|
|
104
|
+
CBB *out, const struct KYBER_public_key *public_key);
|
|
105
|
+
|
|
106
|
+
// KYBER_parse_public_key parses a public key, in the format generated by
|
|
107
|
+
// `KYBER_marshal_public_key`, from `in` and writes the result to
|
|
108
|
+
// `out_public_key`. It returns one on success or zero on parse error or if
|
|
109
|
+
// there are trailing bytes in `in`.
|
|
110
|
+
OPENSSL_EXPORT int KYBER_parse_public_key(
|
|
111
|
+
struct KYBER_public_key *out_public_key, CBS *in);
|
|
112
|
+
|
|
113
|
+
// KYBER_marshal_private_key serializes `private_key` to `out` in the standard
|
|
114
|
+
// format for Kyber private keys. It returns one on success or zero on
|
|
115
|
+
// allocation error.
|
|
116
|
+
OPENSSL_EXPORT int KYBER_marshal_private_key(
|
|
117
|
+
CBB *out, const struct KYBER_private_key *private_key);
|
|
118
|
+
|
|
119
|
+
// KYBER_PRIVATE_KEY_BYTES is the length of the data produced by
|
|
120
|
+
// `KYBER_marshal_private_key`.
|
|
121
|
+
#define KYBER_PRIVATE_KEY_BYTES 2400
|
|
122
|
+
|
|
123
|
+
// KYBER_parse_private_key parses a private key, in the format generated by
|
|
124
|
+
// `KYBER_marshal_private_key`, from `in` and writes the result to
|
|
125
|
+
// `out_private_key`. It returns one on success or zero on parse error or if
|
|
126
|
+
// there are trailing bytes in `in`.
|
|
127
|
+
OPENSSL_EXPORT int KYBER_parse_private_key(
|
|
128
|
+
struct KYBER_private_key *out_private_key, CBS *in);
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
// Internal symbols.
|
|
25
132
|
|
|
26
133
|
// KYBER_ENCAP_ENTROPY is the number of bytes of uniformly random entropy
|
|
27
134
|
// necessary to encapsulate a secret. The entropy will be leaked to the
|
|
@@ -35,26 +142,24 @@ extern "C" {
|
|
|
35
142
|
// KYBER_generate_key_external_entropy is a deterministic function to create a
|
|
36
143
|
// pair of Kyber768 keys, using the supplied entropy. The entropy needs to be
|
|
37
144
|
// uniformly random generated. This function is should only be used for tests,
|
|
38
|
-
// regular callers should use the non-deterministic
|
|
145
|
+
// regular callers should use the non-deterministic `KYBER_generate_key`
|
|
39
146
|
// directly.
|
|
40
147
|
OPENSSL_EXPORT void KYBER_generate_key_external_entropy(
|
|
41
148
|
uint8_t out_encoded_public_key[KYBER_PUBLIC_KEY_BYTES],
|
|
42
149
|
struct KYBER_private_key *out_private_key,
|
|
43
150
|
const uint8_t entropy[KYBER_GENERATE_KEY_ENTROPY]);
|
|
44
151
|
|
|
45
|
-
// KYBER_encap_external_entropy behaves like
|
|
46
|
-
//
|
|
47
|
-
// side will be able to recover
|
|
152
|
+
// KYBER_encap_external_entropy behaves like `KYBER_encap`, but uses
|
|
153
|
+
// `KYBER_ENCAP_ENTROPY` bytes of `entropy` for randomization. The decapsulating
|
|
154
|
+
// side will be able to recover `entropy` in full. This function should only be
|
|
48
155
|
// used for tests, regular callers should use the non-deterministic
|
|
49
|
-
//
|
|
156
|
+
// `KYBER_encap` directly.
|
|
50
157
|
OPENSSL_EXPORT void KYBER_encap_external_entropy(
|
|
51
158
|
uint8_t out_ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
52
159
|
uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
53
160
|
const struct KYBER_public_key *public_key,
|
|
54
161
|
const uint8_t entropy[KYBER_ENCAP_ENTROPY]);
|
|
55
162
|
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
#endif
|
|
163
|
+
BSSL_NAMESPACE_END
|
|
59
164
|
|
|
60
165
|
#endif // OPENSSL_HEADER_CRYPTO_KYBER_INTERNAL_H
|
|
@@ -12,9 +12,6 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
|
|
15
|
-
#define OPENSSL_UNSTABLE_EXPERIMENTAL_KYBER
|
|
16
|
-
#include <openssl/experimental/kyber.h>
|
|
17
|
-
|
|
18
15
|
#include <assert.h>
|
|
19
16
|
#include <stdlib.h>
|
|
20
17
|
|
|
@@ -29,6 +26,8 @@
|
|
|
29
26
|
// See
|
|
30
27
|
// https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf
|
|
31
28
|
|
|
29
|
+
using namespace bssl;
|
|
30
|
+
|
|
32
31
|
static void prf(uint8_t *out, size_t out_len, const uint8_t in[33]) {
|
|
33
32
|
BORINGSSL_keccak(out, out_len, in, 33, boringssl_shake256);
|
|
34
33
|
}
|
|
@@ -146,7 +145,7 @@ static uint16_t reduce_once(uint16_t x) {
|
|
|
146
145
|
// We usually add value barriers to selects because Clang turns consecutive
|
|
147
146
|
// selects with the same condition into a branch instead of CMOV/CSEL. This
|
|
148
147
|
// condition does not occur in Kyber, so omitting it seems to be safe so far,
|
|
149
|
-
// but see
|
|
148
|
+
// but see `scalar_centered_binomial_distribution_eta_2_with_prf`.
|
|
150
149
|
return (mask & x) | (~mask & subtracted);
|
|
151
150
|
}
|
|
152
151
|
|
|
@@ -167,9 +166,9 @@ static void vector_zero(vector *out) { OPENSSL_memset(out, 0, sizeof(*out)); }
|
|
|
167
166
|
// In place number theoretic transform of a given scalar.
|
|
168
167
|
// Note that Kyber's kPrime 3329 does not have a 512th root of unity, so this
|
|
169
168
|
// transform leaves off the last iteration of the usual FFT code, with the 128
|
|
170
|
-
// relevant roots of unity being stored in
|
|
169
|
+
// relevant roots of unity being stored in `kNTTRoots`. This means the output
|
|
171
170
|
// should be seen as 128 elements in GF(3329^2), with the coefficients of the
|
|
172
|
-
// elements being consecutive entries in
|
|
171
|
+
// elements being consecutive entries in `s->c`.
|
|
173
172
|
static void scalar_ntt(scalar *s) {
|
|
174
173
|
int offset = DEGREE;
|
|
175
174
|
// `int` is used here because using `size_t` throughout caused a ~5% slowdown
|
|
@@ -200,7 +199,7 @@ static void vector_ntt(vector *a) {
|
|
|
200
199
|
// entries of s->v being interpreted as elements of GF(3329^2). Just as with the
|
|
201
200
|
// number theoretic transform, this leaves off the first step of the normal iFFT
|
|
202
201
|
// to account for the fact that 3329 does not have a 512th root of unity, using
|
|
203
|
-
// the precomputed 128 roots of unity stored in
|
|
202
|
+
// the precomputed 128 roots of unity stored in `kInverseNTTRoots`.
|
|
204
203
|
static void scalar_inverse_ntt(scalar *s) {
|
|
205
204
|
int step = DEGREE / 2;
|
|
206
205
|
// `int` is used here because using `size_t` throughout caused a ~5% slowdown
|
|
@@ -246,8 +245,8 @@ static void scalar_sub(scalar *lhs, const scalar *rhs) {
|
|
|
246
245
|
// 3329 does not have a 512th root of unity, this means we have to interpret
|
|
247
246
|
// the 2*ith and (2*i+1)th entries of the scalar as elements of GF(3329)[X]/(X^2
|
|
248
247
|
// - 17^(2*bitreverse(i)+1)) The value of 17^(2*bitreverse(i)+1) mod 3329 is
|
|
249
|
-
// stored in the precomputed
|
|
250
|
-
// only allows us to
|
|
248
|
+
// stored in the precomputed `kModRoots` table. Note that our Barrett transform
|
|
249
|
+
// only allows us to multiply two reduced numbers together, so we need some
|
|
251
250
|
// intermediate reduction steps, even if an uint64_t could hold 3 multiplied
|
|
252
251
|
// numbers.
|
|
253
252
|
static void scalar_mult(scalar *out, const scalar *lhs, const scalar *rhs) {
|
|
@@ -328,7 +327,7 @@ static void scalar_from_keccak_vartime(scalar *out,
|
|
|
328
327
|
}
|
|
329
328
|
|
|
330
329
|
// Algorithm 2 of the Kyber spec, with eta fixed to two and the PRF call
|
|
331
|
-
// included. Creates binominally distributed elements by sampling 2
|
|
330
|
+
// included. Creates binominally distributed elements by sampling 2*`eta` bits,
|
|
332
331
|
// and setting the coefficient to the count of the first bits minus the count of
|
|
333
332
|
// the second bits, resulting in a centered binomial distribution. Since eta is
|
|
334
333
|
// two this gives -2/2 with a probability of 1/16, -1/1 with probability 1/4,
|
|
@@ -336,7 +335,7 @@ static void scalar_from_keccak_vartime(scalar *out,
|
|
|
336
335
|
static void scalar_centered_binomial_distribution_eta_2_with_prf(
|
|
337
336
|
scalar *out, const uint8_t input[33]) {
|
|
338
337
|
uint8_t entropy[128];
|
|
339
|
-
static_assert(sizeof(entropy) == 2 * /*kEta=*/2 * DEGREE / 8
|
|
338
|
+
static_assert(sizeof(entropy) == 2 * /*kEta=*/2 * DEGREE / 8);
|
|
340
339
|
prf(entropy, sizeof(entropy), input);
|
|
341
340
|
|
|
342
341
|
for (int i = 0; i < DEGREE; i += 2) {
|
|
@@ -344,10 +343,10 @@ static void scalar_centered_binomial_distribution_eta_2_with_prf(
|
|
|
344
343
|
|
|
345
344
|
uint16_t value = (byte & 1) + ((byte >> 1) & 1);
|
|
346
345
|
value -= ((byte >> 2) & 1) + ((byte >> 3) & 1);
|
|
347
|
-
// Add
|
|
346
|
+
// Add `kPrime` if `value` underflowed. See `reduce_once` for a discussion
|
|
348
347
|
// on why the value barrier is omitted. While this could have been written
|
|
349
348
|
// reduce_once(value + kPrime), this is one extra addition and small range
|
|
350
|
-
// of
|
|
349
|
+
// of `value` tempts some versions of Clang to emit a branch.
|
|
351
350
|
uint16_t mask = 0u - (value >> 15);
|
|
352
351
|
out->c[i] = value + (kPrime & mask);
|
|
353
352
|
|
|
@@ -361,8 +360,8 @@ static void scalar_centered_binomial_distribution_eta_2_with_prf(
|
|
|
361
360
|
}
|
|
362
361
|
|
|
363
362
|
// Generates a secret vector by using
|
|
364
|
-
//
|
|
365
|
-
// appending and incrementing
|
|
363
|
+
// `scalar_centered_binomial_distribution_eta_2_with_prf`, using the given seed
|
|
364
|
+
// appending and incrementing `counter` for entry of the vector.
|
|
366
365
|
static void vector_generate_secret_eta_2(vector *out, uint8_t *counter,
|
|
367
366
|
const uint8_t seed[32]) {
|
|
368
367
|
uint8_t input[33];
|
|
@@ -427,7 +426,7 @@ static void scalar_encode(uint8_t *out, const scalar *s, int bits) {
|
|
|
427
426
|
}
|
|
428
427
|
}
|
|
429
428
|
|
|
430
|
-
// scalar_encode_1 is
|
|
429
|
+
// scalar_encode_1 is `scalar_encode` specialised for `bits` == 1.
|
|
431
430
|
static void scalar_encode_1(uint8_t out[32], const scalar *s) {
|
|
432
431
|
for (int i = 0; i < DEGREE; i += 8) {
|
|
433
432
|
uint8_t out_byte = 0;
|
|
@@ -439,7 +438,7 @@ static void scalar_encode_1(uint8_t out[32], const scalar *s) {
|
|
|
439
438
|
}
|
|
440
439
|
}
|
|
441
440
|
|
|
442
|
-
// Encodes an entire vector into 32
|
|
441
|
+
// Encodes an entire vector into 32*`RANK`*`bits` bytes. Note that since 256
|
|
443
442
|
// (DEGREE) is divisible by 8, the individual vector entries will always fill a
|
|
444
443
|
// whole number of bytes, so we do not need to worry about bit packing here.
|
|
445
444
|
static void vector_encode(uint8_t *out, const vector *a, int bits) {
|
|
@@ -448,9 +447,9 @@ static void vector_encode(uint8_t *out, const vector *a, int bits) {
|
|
|
448
447
|
}
|
|
449
448
|
}
|
|
450
449
|
|
|
451
|
-
// scalar_decode parses
|
|
452
|
-
//
|
|
453
|
-
//
|
|
450
|
+
// scalar_decode parses `DEGREE * bits` bits from `in` into `DEGREE` values in
|
|
451
|
+
// `out`. It returns one on success and zero if any parsed value is >=
|
|
452
|
+
// `kPrime`.
|
|
454
453
|
static int scalar_decode(scalar *out, const uint8_t *in, int bits) {
|
|
455
454
|
assert(bits <= (int)sizeof(*out->c) * 8 && bits != 1);
|
|
456
455
|
|
|
@@ -491,7 +490,7 @@ static int scalar_decode(scalar *out, const uint8_t *in, int bits) {
|
|
|
491
490
|
return 1;
|
|
492
491
|
}
|
|
493
492
|
|
|
494
|
-
// scalar_decode_1 is
|
|
493
|
+
// scalar_decode_1 is `scalar_decode` specialised for `bits` == 1.
|
|
495
494
|
static void scalar_decode_1(scalar *out, const uint8_t in[32]) {
|
|
496
495
|
for (int i = 0; i < DEGREE; i += 8) {
|
|
497
496
|
uint8_t in_byte = *in;
|
|
@@ -503,8 +502,8 @@ static void scalar_decode_1(scalar *out, const uint8_t in[32]) {
|
|
|
503
502
|
}
|
|
504
503
|
}
|
|
505
504
|
|
|
506
|
-
// Decodes 32
|
|
507
|
-
// success or zero if any parsed value is >=
|
|
505
|
+
// Decodes 32*`RANK`*`bits` bytes from `in` into `out`. It returns one on
|
|
506
|
+
// success or zero if any parsed value is >= `kPrime`.
|
|
508
507
|
static int vector_decode(vector *out, const uint8_t *in, int bits) {
|
|
509
508
|
for (int i = 0; i < RANK; i++) {
|
|
510
509
|
if (!scalar_decode(&out->v[i], in + i * bits * DEGREE / 8, bits)) {
|
|
@@ -514,12 +513,12 @@ static int vector_decode(vector *out, const uint8_t *in, int bits) {
|
|
|
514
513
|
return 1;
|
|
515
514
|
}
|
|
516
515
|
|
|
517
|
-
// Compresses (lossily) an input
|
|
516
|
+
// Compresses (lossily) an input `x` mod 3329 into `bits` many bits by grouping
|
|
518
517
|
// numbers close to each other together. The formula used is
|
|
519
|
-
// round(2
|
|
518
|
+
// round(2^`bits`/kPrime*x) mod 2^`bits`.
|
|
520
519
|
// Uses Barrett reduction to achieve constant time. Since we need both the
|
|
521
520
|
// remainder (for rounding) and the quotient (as the result), we cannot use
|
|
522
|
-
//
|
|
521
|
+
// `reduce` here, but need to do the Barrett reduction directly.
|
|
523
522
|
static uint16_t compress(uint16_t x, int bits) {
|
|
524
523
|
uint32_t shifted = (uint32_t)x << bits;
|
|
525
524
|
uint64_t product = (uint64_t)shifted * kBarrettMultiplier;
|
|
@@ -536,19 +535,19 @@ static uint16_t compress(uint16_t x, int bits) {
|
|
|
536
535
|
return quotient & ((1 << bits) - 1);
|
|
537
536
|
}
|
|
538
537
|
|
|
539
|
-
// Decompresses
|
|
540
|
-
// round(kPrime/2
|
|
538
|
+
// Decompresses `x` by using an equi-distant representative. The formula is
|
|
539
|
+
// round(kPrime/2^`bits`*x). Note that 2^`bits` being the divisor allows us to
|
|
541
540
|
// implement this logic using only bit operations.
|
|
542
541
|
static uint16_t decompress(uint16_t x, int bits) {
|
|
543
542
|
uint32_t product = (uint32_t)x * kPrime;
|
|
544
543
|
uint32_t power = 1 << bits;
|
|
545
|
-
// This is
|
|
544
|
+
// This is `product` % power, since `power` is a power of 2.
|
|
546
545
|
uint32_t remainder = product & (power - 1);
|
|
547
|
-
// This is
|
|
546
|
+
// This is `product` / power, since `power` is a power of 2.
|
|
548
547
|
uint32_t lower = product >> bits;
|
|
549
|
-
// The rounding logic works since the first half of numbers mod
|
|
550
|
-
// 0 as first bit, and the second half has a 1 as first bit, since
|
|
551
|
-
// a power of 2. As a 12 bit number,
|
|
548
|
+
// The rounding logic works since the first half of numbers mod `power` have a
|
|
549
|
+
// 0 as first bit, and the second half has a 1 as first bit, since `power` is
|
|
550
|
+
// a power of 2. As a 12 bit number, `remainder` is always positive, so we
|
|
552
551
|
// will shift in 0s for a right shift.
|
|
553
552
|
return lower + (remainder >> (bits - 1));
|
|
554
553
|
}
|
|
@@ -613,10 +612,11 @@ static struct private_key *private_key_from_external(
|
|
|
613
612
|
|
|
614
613
|
} // namespace
|
|
615
614
|
|
|
616
|
-
// Calls
|
|
617
|
-
//
|
|
618
|
-
void KYBER_generate_key(
|
|
619
|
-
|
|
615
|
+
// Calls `KYBER_generate_key_external_entropy` with random bytes from
|
|
616
|
+
// `RAND_bytes`.
|
|
617
|
+
void bssl::KYBER_generate_key(
|
|
618
|
+
uint8_t out_encoded_public_key[KYBER_PUBLIC_KEY_BYTES],
|
|
619
|
+
struct KYBER_private_key *out_private_key) {
|
|
620
620
|
uint8_t entropy[KYBER_GENERATE_KEY_ENTROPY];
|
|
621
621
|
RAND_bytes(entropy, sizeof(entropy));
|
|
622
622
|
CONSTTIME_SECRET(entropy, sizeof(entropy));
|
|
@@ -639,7 +639,7 @@ static int kyber_marshal_public_key(CBB *out, const struct public_key *pub) {
|
|
|
639
639
|
// Algorithms 4 and 7 of the Kyber spec. Algorithms are combined since key
|
|
640
640
|
// generation is not part of the FO transform, and the spec uses Algorithm 7 to
|
|
641
641
|
// specify the actual key format.
|
|
642
|
-
void KYBER_generate_key_external_entropy(
|
|
642
|
+
void bssl::KYBER_generate_key_external_entropy(
|
|
643
643
|
uint8_t out_encoded_public_key[KYBER_PUBLIC_KEY_BYTES],
|
|
644
644
|
struct KYBER_private_key *out_private_key,
|
|
645
645
|
const uint8_t entropy[KYBER_GENERATE_KEY_ENTROPY]) {
|
|
@@ -674,15 +674,16 @@ void KYBER_generate_key_external_entropy(
|
|
|
674
674
|
OPENSSL_memcpy(priv->fo_failure_secret, entropy + 32, 32);
|
|
675
675
|
}
|
|
676
676
|
|
|
677
|
-
void KYBER_public_from_private(
|
|
678
|
-
|
|
677
|
+
void bssl::KYBER_public_from_private(
|
|
678
|
+
struct KYBER_public_key *out_public_key,
|
|
679
|
+
const struct KYBER_private_key *private_key) {
|
|
679
680
|
struct public_key *const pub = public_key_from_external(out_public_key);
|
|
680
681
|
const struct private_key *const priv = private_key_from_external(private_key);
|
|
681
682
|
*pub = priv->pub;
|
|
682
683
|
}
|
|
683
684
|
|
|
684
685
|
// Algorithm 5 of the Kyber spec. Encrypts a message with given randomness to
|
|
685
|
-
// the ciphertext in
|
|
686
|
+
// the ciphertext in `out`. Without applying the Fujisaki-Okamoto transform this
|
|
686
687
|
// would not result in a CCA secure scheme, since lattice schemes are vulnerable
|
|
687
688
|
// to decryption failure oracles.
|
|
688
689
|
static void encrypt_cpa(uint8_t out[KYBER_CIPHERTEXT_BYTES],
|
|
@@ -717,10 +718,10 @@ static void encrypt_cpa(uint8_t out[KYBER_CIPHERTEXT_BYTES],
|
|
|
717
718
|
scalar_encode(out + kCompressedVectorSize, &v, kDV);
|
|
718
719
|
}
|
|
719
720
|
|
|
720
|
-
// Calls KYBER_encap_external_entropy
|
|
721
|
-
void KYBER_encap(uint8_t out_ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
722
|
-
|
|
723
|
-
|
|
721
|
+
// Calls `KYBER_encap_external_entropy` with random bytes from `RAND_bytes`
|
|
722
|
+
void bssl::KYBER_encap(uint8_t out_ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
723
|
+
uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
724
|
+
const struct KYBER_public_key *public_key) {
|
|
724
725
|
uint8_t entropy[KYBER_ENCAP_ENTROPY];
|
|
725
726
|
RAND_bytes(entropy, KYBER_ENCAP_ENTROPY);
|
|
726
727
|
CONSTTIME_SECRET(entropy, KYBER_ENCAP_ENTROPY);
|
|
@@ -734,7 +735,7 @@ void KYBER_encap(uint8_t out_ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
|
734
735
|
// this when a secure random number generator is used. When an insecure random
|
|
735
736
|
// number generator is used, the caller should switch to a secure one before
|
|
736
737
|
// calling this method.
|
|
737
|
-
void KYBER_encap_external_entropy(
|
|
738
|
+
void bssl::KYBER_encap_external_entropy(
|
|
738
739
|
uint8_t out_ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
739
740
|
uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
740
741
|
const struct KYBER_public_key *public_key,
|
|
@@ -777,9 +778,9 @@ static void decrypt_cpa(uint8_t out[32], const struct private_key *priv,
|
|
|
777
778
|
// failure to be passed on to the caller, and instead returns a result that is
|
|
778
779
|
// deterministic but unpredictable to anyone without knowledge of the private
|
|
779
780
|
// key.
|
|
780
|
-
void KYBER_decap(uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
781
|
-
|
|
782
|
-
|
|
781
|
+
void bssl::KYBER_decap(uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
782
|
+
const uint8_t ciphertext[KYBER_CIPHERTEXT_BYTES],
|
|
783
|
+
const struct KYBER_private_key *private_key) {
|
|
783
784
|
const struct private_key *priv = private_key_from_external(private_key);
|
|
784
785
|
uint8_t decrypted[64];
|
|
785
786
|
decrypt_cpa(decrypted, priv, ciphertext);
|
|
@@ -803,13 +804,13 @@ void KYBER_decap(uint8_t out_shared_secret[KYBER_SHARED_SECRET_BYTES],
|
|
|
803
804
|
kdf(out_shared_secret, KYBER_SHARED_SECRET_BYTES, input, sizeof(input));
|
|
804
805
|
}
|
|
805
806
|
|
|
806
|
-
int KYBER_marshal_public_key(CBB *out,
|
|
807
|
-
|
|
807
|
+
int bssl::KYBER_marshal_public_key(CBB *out,
|
|
808
|
+
const struct KYBER_public_key *public_key) {
|
|
808
809
|
return kyber_marshal_public_key(out, public_key_from_external(public_key));
|
|
809
810
|
}
|
|
810
811
|
|
|
811
|
-
// kyber_parse_public_key_no_hash parses
|
|
812
|
-
// the value of
|
|
812
|
+
// kyber_parse_public_key_no_hash parses `in` into `pub` but doesn't calculate
|
|
813
|
+
// the value of `pub->public_key_hash`.
|
|
813
814
|
static int kyber_parse_public_key_no_hash(struct public_key *pub, CBS *in) {
|
|
814
815
|
CBS t_bytes;
|
|
815
816
|
if (!CBS_get_bytes(in, &t_bytes, kEncodedVectorSize) ||
|
|
@@ -821,7 +822,7 @@ static int kyber_parse_public_key_no_hash(struct public_key *pub, CBS *in) {
|
|
|
821
822
|
return 1;
|
|
822
823
|
}
|
|
823
824
|
|
|
824
|
-
int KYBER_parse_public_key(struct KYBER_public_key *public_key, CBS *in) {
|
|
825
|
+
int bssl::KYBER_parse_public_key(struct KYBER_public_key *public_key, CBS *in) {
|
|
825
826
|
struct public_key *pub = public_key_from_external(public_key);
|
|
826
827
|
CBS orig_in = *in;
|
|
827
828
|
if (!kyber_parse_public_key_no_hash(pub, in) || //
|
|
@@ -832,8 +833,8 @@ int KYBER_parse_public_key(struct KYBER_public_key *public_key, CBS *in) {
|
|
|
832
833
|
return 1;
|
|
833
834
|
}
|
|
834
835
|
|
|
835
|
-
int KYBER_marshal_private_key(
|
|
836
|
-
|
|
836
|
+
int bssl::KYBER_marshal_private_key(
|
|
837
|
+
CBB *out, const struct KYBER_private_key *private_key) {
|
|
837
838
|
const struct private_key *const priv = private_key_from_external(private_key);
|
|
838
839
|
uint8_t *s_output;
|
|
839
840
|
if (!CBB_add_space(out, &s_output, kEncodedVectorSize)) {
|
|
@@ -850,8 +851,8 @@ int KYBER_marshal_private_key(CBB *out,
|
|
|
850
851
|
return 1;
|
|
851
852
|
}
|
|
852
853
|
|
|
853
|
-
int KYBER_parse_private_key(struct KYBER_private_key *out_private_key,
|
|
854
|
-
|
|
854
|
+
int bssl::KYBER_parse_private_key(struct KYBER_private_key *out_private_key,
|
|
855
|
+
CBS *in) {
|
|
855
856
|
struct private_key *const priv = private_key_from_external(out_private_key);
|
|
856
857
|
|
|
857
858
|
CBS s_bytes;
|
|
@@ -15,20 +15,17 @@
|
|
|
15
15
|
#ifndef OPENSSL_HEADER_CRYPTO_LHASH_INTERNAL_H
|
|
16
16
|
#define OPENSSL_HEADER_CRYPTO_LHASH_INTERNAL_H
|
|
17
17
|
|
|
18
|
-
#include <openssl/
|
|
18
|
+
#include <openssl/base.h>
|
|
19
19
|
|
|
20
|
-
#if defined(__cplusplus)
|
|
21
|
-
extern "C" {
|
|
22
|
-
#endif
|
|
23
20
|
|
|
21
|
+
BSSL_NAMESPACE_BEGIN
|
|
24
22
|
|
|
25
23
|
// lhash is a traditional, chaining hash table that automatically expands and
|
|
26
24
|
// contracts as needed. One should not use the lh_* functions directly, rather
|
|
27
25
|
// use the type-safe macro wrappers:
|
|
28
26
|
//
|
|
29
|
-
// A hash table of a specific type of object has type
|
|
30
|
-
// can be defined (once) with
|
|
31
|
-
// with |DECLARE_LHASH_OF(type)|. For example:
|
|
27
|
+
// A hash table of a specific type of object has type `LHASH_OF(type)`. This
|
|
28
|
+
// can be defined (once) with `DEFINE_LHASH_OF(type)`.
|
|
32
29
|
//
|
|
33
30
|
// struct foo {
|
|
34
31
|
// int bar;
|
|
@@ -36,19 +33,24 @@ extern "C" {
|
|
|
36
33
|
//
|
|
37
34
|
// DEFINE_LHASH_OF(struct foo)
|
|
38
35
|
//
|
|
39
|
-
// Although note that the hash table will contain /pointers/ to
|
|
36
|
+
// Although note that the hash table will contain /pointers/ to `foo`.
|
|
40
37
|
//
|
|
41
|
-
// A macro will be defined for each of the
|
|
42
|
-
//
|
|
38
|
+
// A macro will be defined for each of the `OPENSSL_lh_*` functions below. For
|
|
39
|
+
// `LHASH_OF(foo)`, the macros would be `lh_foo_new`, `lh_foo_num_items` etc.
|
|
40
|
+
//
|
|
41
|
+
// TODO(davidben): Now that this type is completely internal, this can just be a
|
|
42
|
+
// C++ template without any macros.
|
|
43
|
+
|
|
43
44
|
|
|
45
|
+
#define LHASH_OF(type) struct bssl::type##_lhash_st
|
|
44
46
|
|
|
45
47
|
// lhash_cmp_func is a comparison function that returns a value equal, or not
|
|
46
|
-
// equal, to zero depending on whether
|
|
47
|
-
// respectively. Note the difference between this and
|
|
48
|
+
// equal, to zero depending on whether `*a` is equal, or not equal to `*b`,
|
|
49
|
+
// respectively. Note the difference between this and `stack_cmp_func` in that
|
|
48
50
|
// this takes pointers to the objects directly.
|
|
49
51
|
//
|
|
50
52
|
// This function's actual type signature is int (*)(const T*, const T*). The
|
|
51
|
-
// low-level
|
|
53
|
+
// low-level `lh_*` functions will be passed a type-specific wrapper to call it
|
|
52
54
|
// correctly.
|
|
53
55
|
typedef int (*lhash_cmp_func)(const void *a, const void *b);
|
|
54
56
|
typedef int (*lhash_cmp_func_helper)(lhash_cmp_func func, const void *a,
|
|
@@ -58,74 +60,76 @@ typedef int (*lhash_cmp_func_helper)(lhash_cmp_func func, const void *a,
|
|
|
58
60
|
// uint32_t.
|
|
59
61
|
//
|
|
60
62
|
// This function's actual type signature is uint32_t (*)(const T*). The
|
|
61
|
-
// low-level
|
|
63
|
+
// low-level `lh_*` functions will be passed a type-specific wrapper to call it
|
|
62
64
|
// correctly.
|
|
63
65
|
typedef uint32_t (*lhash_hash_func)(const void *a);
|
|
64
66
|
typedef uint32_t (*lhash_hash_func_helper)(lhash_hash_func func, const void *a);
|
|
65
67
|
|
|
66
|
-
|
|
68
|
+
struct _LHASH;
|
|
67
69
|
|
|
68
70
|
// OPENSSL_lh_new returns a new, empty hash table or NULL on error.
|
|
69
71
|
OPENSSL_EXPORT _LHASH *OPENSSL_lh_new(lhash_hash_func hash,
|
|
70
72
|
lhash_cmp_func comp);
|
|
71
73
|
|
|
72
74
|
// OPENSSL_lh_free frees the hash table itself but none of the elements. See
|
|
73
|
-
//
|
|
75
|
+
// `OPENSSL_lh_doall`.
|
|
74
76
|
OPENSSL_EXPORT void OPENSSL_lh_free(_LHASH *lh);
|
|
75
77
|
|
|
76
|
-
// OPENSSL_lh_num_items returns the number of items in
|
|
78
|
+
// OPENSSL_lh_num_items returns the number of items in `lh`.
|
|
77
79
|
OPENSSL_EXPORT size_t OPENSSL_lh_num_items(const _LHASH *lh);
|
|
78
80
|
|
|
79
|
-
// OPENSSL_lh_retrieve finds an element equal to
|
|
81
|
+
// OPENSSL_lh_retrieve finds an element equal to `data` in the hash table and
|
|
80
82
|
// returns it. If no such element exists, it returns NULL.
|
|
81
83
|
OPENSSL_EXPORT void *OPENSSL_lh_retrieve(const _LHASH *lh, const void *data,
|
|
82
84
|
lhash_hash_func_helper call_hash_func,
|
|
83
85
|
lhash_cmp_func_helper call_cmp_func);
|
|
84
86
|
|
|
85
|
-
// OPENSSL_lh_retrieve_key finds an element matching
|
|
86
|
-
// hash and comparison function. This differs from
|
|
87
|
-
// the key may be a different type than the values stored in
|
|
88
|
-
// and
|
|
89
|
-
//
|
|
87
|
+
// OPENSSL_lh_retrieve_key finds an element matching `key`, given the specified
|
|
88
|
+
// hash and comparison function. This differs from `OPENSSL_lh_retrieve` in that
|
|
89
|
+
// the key may be a different type than the values stored in `lh`. `key_hash`
|
|
90
|
+
// and `cmp_key` must be compatible with the functions passed into
|
|
91
|
+
// `OPENSSL_lh_new`.
|
|
90
92
|
OPENSSL_EXPORT void *OPENSSL_lh_retrieve_key(const _LHASH *lh, const void *key,
|
|
91
93
|
uint32_t key_hash,
|
|
92
94
|
int (*cmp_key)(const void *key,
|
|
93
95
|
const void *value));
|
|
94
96
|
|
|
95
|
-
// OPENSSL_lh_insert inserts
|
|
96
|
-
// is equal to
|
|
97
|
+
// OPENSSL_lh_insert inserts `data` into the hash table. If an existing element
|
|
98
|
+
// is equal to `data` (with respect to the comparison function) then `*old_data`
|
|
97
99
|
// will be set to that value and it will be replaced. Otherwise, or in the
|
|
98
|
-
// event of an error,
|
|
100
|
+
// event of an error, `*old_data` will be set to NULL. It returns one on
|
|
99
101
|
// success or zero in the case of an allocation error.
|
|
100
102
|
OPENSSL_EXPORT int OPENSSL_lh_insert(_LHASH *lh, void **old_data, void *data,
|
|
101
103
|
lhash_hash_func_helper call_hash_func,
|
|
102
104
|
lhash_cmp_func_helper call_cmp_func);
|
|
103
105
|
|
|
104
|
-
// OPENSSL_lh_delete removes an element equal to
|
|
106
|
+
// OPENSSL_lh_delete removes an element equal to `data` from the hash table and
|
|
105
107
|
// returns it. If no such element is found, it returns NULL.
|
|
106
108
|
OPENSSL_EXPORT void *OPENSSL_lh_delete(_LHASH *lh, const void *data,
|
|
107
109
|
lhash_hash_func_helper call_hash_func,
|
|
108
110
|
lhash_cmp_func_helper call_cmp_func);
|
|
109
111
|
|
|
110
|
-
// OPENSSL_lh_doall_arg calls
|
|
111
|
-
// passes
|
|
112
|
+
// OPENSSL_lh_doall_arg calls `func` on each element of the hash table and also
|
|
113
|
+
// passes `arg` as the second argument.
|
|
112
114
|
// TODO(fork): rename this
|
|
113
115
|
OPENSSL_EXPORT void OPENSSL_lh_doall_arg(_LHASH *lh,
|
|
114
116
|
void (*func)(void *, void *),
|
|
115
117
|
void *arg);
|
|
116
118
|
|
|
119
|
+
// DEFINE_LHASH_OF creates (inline) definitions of hash table. It must be used
|
|
120
|
+
// from within the bssl namespace.
|
|
117
121
|
#define DEFINE_LHASH_OF(type) \
|
|
118
122
|
/* We disable MSVC C4191 in this macro, which warns when pointers are cast \
|
|
119
123
|
* to the wrong type. While the cast itself is valid, it is often a bug \
|
|
120
124
|
* because calling it through the cast is UB. However, we never actually \
|
|
121
|
-
* call functions as
|
|
125
|
+
* call functions as `lhash_cmp_func`. The type is just a type-erased \
|
|
122
126
|
* function pointer. (C does not guarantee function pointers fit in \
|
|
123
|
-
*
|
|
127
|
+
* `void*`, and GCC will warn on this.) Thus we just disable the false \
|
|
124
128
|
* positive warning. */ \
|
|
125
129
|
OPENSSL_MSVC_PRAGMA(warning(push)) \
|
|
126
130
|
OPENSSL_MSVC_PRAGMA(warning(disable : 4191)) \
|
|
127
131
|
\
|
|
128
|
-
|
|
132
|
+
struct type##_lhash_st; \
|
|
129
133
|
\
|
|
130
134
|
typedef int (*lhash_##type##_cmp_func)(const type *, const type *); \
|
|
131
135
|
typedef uint32_t (*lhash_##type##_hash_func)(const type *); \
|
|
@@ -181,7 +185,7 @@ OPENSSL_EXPORT void OPENSSL_lh_doall_arg(_LHASH *lh,
|
|
|
181
185
|
\
|
|
182
186
|
inline int lh_##type##_insert(LHASH_OF(type) *lh, type **old_data, \
|
|
183
187
|
type *data) { \
|
|
184
|
-
void *old_data_void =
|
|
188
|
+
void *old_data_void = nullptr; \
|
|
185
189
|
int ret = OPENSSL_lh_insert((_LHASH *)lh, &old_data_void, data, \
|
|
186
190
|
lh_##type##_call_hash_func, \
|
|
187
191
|
lh_##type##_call_cmp_func); \
|
|
@@ -213,9 +217,6 @@ OPENSSL_EXPORT void OPENSSL_lh_doall_arg(_LHASH *lh,
|
|
|
213
217
|
\
|
|
214
218
|
OPENSSL_MSVC_PRAGMA(warning(pop))
|
|
215
219
|
|
|
216
|
-
|
|
217
|
-
#if defined(__cplusplus)
|
|
218
|
-
} // extern C
|
|
219
|
-
#endif
|
|
220
|
+
BSSL_NAMESPACE_END
|
|
220
221
|
|
|
221
222
|
#endif // OPENSSL_HEADER_CRYPTO_LHASH_INTERNAL_H
|