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
|
@@ -15,9 +15,11 @@
|
|
|
15
15
|
#ifndef OPENSSL_HEADER_CRYPTO_FIPSMODULE_BCM_INTERFACE_H
|
|
16
16
|
#define OPENSSL_HEADER_CRYPTO_FIPSMODULE_BCM_INTERFACE_H
|
|
17
17
|
|
|
18
|
-
// For the moment, we reach out for AES_KEY.
|
|
19
18
|
#include <openssl/aes.h>
|
|
20
|
-
#include <openssl/
|
|
19
|
+
#include <openssl/mldsa.h>
|
|
20
|
+
#include <openssl/mlkem.h>
|
|
21
|
+
#include <openssl/sha.h>
|
|
22
|
+
#include <openssl/sha2.h>
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
// This header will eventually become the interface between BCM and the
|
|
@@ -28,9 +30,7 @@
|
|
|
28
30
|
// Over time, calls from libcrypto to BCM will all move to this header
|
|
29
31
|
// and the separation will become more meaningful.
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
extern "C" {
|
|
33
|
-
#endif
|
|
33
|
+
BSSL_NAMESPACE_BEGIN
|
|
34
34
|
|
|
35
35
|
// Enumerated types for return values from bcm functions, both infallible
|
|
36
36
|
// and fallible functions. Two success values are used to correspond to the
|
|
@@ -73,111 +73,95 @@ inline bcm_status_t bcm_as_not_approved_status(int result) {
|
|
|
73
73
|
|
|
74
74
|
#endif // BORINGSSL_FIPS
|
|
75
75
|
|
|
76
|
-
//
|
|
77
|
-
// module. The |want_additional_input| parameter is true iff the entropy was
|
|
78
|
-
// obtained from a source other than the system, e.g. directly from the CPU.
|
|
79
|
-
bcm_infallible BCM_rand_load_entropy(const uint8_t *entropy, size_t entropy_len,
|
|
80
|
-
int want_additional_input);
|
|
81
|
-
|
|
82
|
-
// BCM_rand_bytes is the same as the public |RAND_bytes| function, other
|
|
76
|
+
// BCM_rand_bytes is the same as the public `RAND_bytes` function, other
|
|
83
77
|
// than returning a bcm_infallible status indicator.
|
|
84
|
-
|
|
78
|
+
bcm_infallible BCM_rand_bytes(uint8_t *out, size_t out_len);
|
|
85
79
|
|
|
86
|
-
// BCM_rand_bytes_hwrng attempts to fill
|
|
80
|
+
// BCM_rand_bytes_hwrng attempts to fill `out` with `len` bytes of entropy from
|
|
87
81
|
// the CPU hardware random number generator if one is present.
|
|
88
82
|
// bcm_status_approved is returned on success, and a failure status is
|
|
89
83
|
// returned otherwise.
|
|
90
84
|
bcm_status BCM_rand_bytes_hwrng(uint8_t *out, size_t len);
|
|
91
85
|
|
|
92
86
|
// BCM_rand_bytes_with_additional_data samples from the RNG after mixing 32
|
|
93
|
-
// bytes from
|
|
87
|
+
// bytes from `user_additional_data` in.
|
|
94
88
|
bcm_infallible BCM_rand_bytes_with_additional_data(
|
|
95
89
|
uint8_t *out, size_t out_len, const uint8_t user_additional_data[32]);
|
|
96
90
|
|
|
97
91
|
|
|
98
92
|
// SHA-1
|
|
99
93
|
|
|
100
|
-
//
|
|
101
|
-
#define BCM_SHA_DIGEST_LENGTH 20
|
|
102
|
-
|
|
103
|
-
// BCM_sha1_init initialises |sha|.
|
|
94
|
+
// BCM_sha1_init initialises `sha`.
|
|
104
95
|
bcm_infallible BCM_sha1_init(SHA_CTX *sha);
|
|
105
96
|
|
|
106
|
-
//
|
|
107
|
-
// block transformation using the state from
|
|
108
|
-
//
|
|
109
|
-
bcm_infallible BCM_sha1_transform(SHA_CTX *c,
|
|
110
|
-
const uint8_t data[BCM_SHA_CBLOCK]);
|
|
97
|
+
// SHA1_transform is a low-level function that performs a single, SHA-1
|
|
98
|
+
// block transformation using the state from `sha` and `SHA_CBLOCK` bytes from
|
|
99
|
+
// `block`.
|
|
100
|
+
bcm_infallible BCM_sha1_transform(SHA_CTX *c, const uint8_t data[SHA_CBLOCK]);
|
|
111
101
|
|
|
112
|
-
// BCM_sha1_update adds
|
|
102
|
+
// BCM_sha1_update adds `len` bytes from `data` to `sha`.
|
|
113
103
|
bcm_infallible BCM_sha1_update(SHA_CTX *c, const void *data, size_t len);
|
|
114
104
|
|
|
115
|
-
// BCM_sha1_final adds the final padding to
|
|
116
|
-
// digest to
|
|
117
|
-
bcm_infallible BCM_sha1_final(uint8_t out[
|
|
105
|
+
// BCM_sha1_final adds the final padding to `sha` and writes the resulting
|
|
106
|
+
// digest to `out`, which must have at least `SHA_DIGEST_LENGTH` bytes of space.
|
|
107
|
+
bcm_infallible BCM_sha1_final(uint8_t out[SHA_DIGEST_LENGTH], SHA_CTX *c);
|
|
118
108
|
|
|
119
109
|
|
|
120
|
-
// BCM_fips_186_2_prf derives
|
|
110
|
+
// BCM_fips_186_2_prf derives `out_len` bytes from `xkey` using the PRF
|
|
121
111
|
// defined in FIPS 186-2, Appendix 3.1, with change notice 1 applied. The b
|
|
122
112
|
// parameter is 160 and seed, XKEY, is also 160 bits. The optional XSEED user
|
|
123
113
|
// input is all zeros.
|
|
124
114
|
//
|
|
125
115
|
// The PRF generates a sequence of 320-bit numbers. Each number is encoded as a
|
|
126
|
-
// 40-byte string in big-endian and then concatenated to form
|
|
127
|
-
//
|
|
116
|
+
// 40-byte string in big-endian and then concatenated to form `out`. If
|
|
117
|
+
// `out_len` is not a multiple of 40, the result is truncated. This matches the
|
|
128
118
|
// construction used in Section 7 of RFC 4186 and Section 7 of RFC 4187.
|
|
129
119
|
//
|
|
130
120
|
// This PRF is based on SHA-1, a weak hash function, and should not be used
|
|
131
121
|
// in new protocols. It is provided for compatibility with some legacy EAP
|
|
132
122
|
// methods.
|
|
133
123
|
bcm_infallible BCM_fips_186_2_prf(uint8_t *out, size_t out_len,
|
|
134
|
-
const uint8_t xkey[
|
|
124
|
+
const uint8_t xkey[SHA_DIGEST_LENGTH]);
|
|
135
125
|
|
|
136
126
|
|
|
137
127
|
// SHA-224
|
|
138
128
|
|
|
139
|
-
//
|
|
140
|
-
#define BCM_SHA224_DIGEST_LENGTH 28
|
|
141
|
-
|
|
142
|
-
// BCM_sha224_unit initialises |sha|.
|
|
129
|
+
// BCM_sha224_unit initialises `sha`.
|
|
143
130
|
bcm_infallible BCM_sha224_init(SHA256_CTX *sha);
|
|
144
131
|
|
|
145
|
-
// BCM_sha224_update adds
|
|
132
|
+
// BCM_sha224_update adds `len` bytes from `data` to `sha`.
|
|
146
133
|
bcm_infallible BCM_sha224_update(SHA256_CTX *sha, const void *data, size_t len);
|
|
147
134
|
|
|
148
|
-
// BCM_sha224_final adds the final padding to
|
|
149
|
-
// digest to
|
|
135
|
+
// BCM_sha224_final adds the final padding to `sha` and writes the resulting
|
|
136
|
+
// digest to `out`, which must have at least `SHA224_DIGEST_LENGTH` bytes of
|
|
150
137
|
// space. It aborts on programmer error.
|
|
151
|
-
bcm_infallible BCM_sha224_final(uint8_t out[
|
|
138
|
+
bcm_infallible BCM_sha224_final(uint8_t out[SHA224_DIGEST_LENGTH],
|
|
152
139
|
SHA256_CTX *sha);
|
|
153
140
|
|
|
154
141
|
|
|
155
142
|
// SHA-256
|
|
156
143
|
|
|
157
|
-
//
|
|
158
|
-
#define BCM_SHA256_DIGEST_LENGTH 32
|
|
159
|
-
|
|
160
|
-
// BCM_sha256_init initialises |sha|.
|
|
144
|
+
// BCM_sha256_init initialises `sha`.
|
|
161
145
|
bcm_infallible BCM_sha256_init(SHA256_CTX *sha);
|
|
162
146
|
|
|
163
|
-
// BCM_sha256_update adds
|
|
147
|
+
// BCM_sha256_update adds `len` bytes from `data` to `sha`.
|
|
164
148
|
bcm_infallible BCM_sha256_update(SHA256_CTX *sha, const void *data, size_t len);
|
|
165
149
|
|
|
166
|
-
// BCM_sha256_final adds the final padding to
|
|
167
|
-
// digest to
|
|
150
|
+
// BCM_sha256_final adds the final padding to `sha` and writes the resulting
|
|
151
|
+
// digest to `out`, which must have at least `SHA256_DIGEST_LENGTH` bytes of
|
|
168
152
|
// space. It aborts on programmer error.
|
|
169
|
-
bcm_infallible BCM_sha256_final(uint8_t out[
|
|
153
|
+
bcm_infallible BCM_sha256_final(uint8_t out[SHA256_DIGEST_LENGTH],
|
|
170
154
|
SHA256_CTX *sha);
|
|
171
155
|
|
|
172
156
|
// BCM_sha256_transform is a low-level function that performs a single, SHA-256
|
|
173
|
-
// block transformation using the state from
|
|
174
|
-
// from
|
|
157
|
+
// block transformation using the state from `sha` and `SHA256_CBLOCK` bytes
|
|
158
|
+
// from `block`.
|
|
175
159
|
bcm_infallible BCM_sha256_transform(SHA256_CTX *sha,
|
|
176
|
-
const uint8_t block[
|
|
160
|
+
const uint8_t block[SHA256_CBLOCK]);
|
|
177
161
|
|
|
178
|
-
// BCM_sha256_transform_blocks is a low-level function that takes
|
|
179
|
-
//
|
|
180
|
-
//
|
|
162
|
+
// BCM_sha256_transform_blocks is a low-level function that takes `num_blocks` *
|
|
163
|
+
// `SHA256_CBLOCK` bytes of data and performs SHA-256 transforms on it to update
|
|
164
|
+
// `state`.
|
|
181
165
|
bcm_infallible BCM_sha256_transform_blocks(uint32_t state[8],
|
|
182
166
|
const uint8_t *data,
|
|
183
167
|
size_t num_blocks);
|
|
@@ -185,63 +169,55 @@ bcm_infallible BCM_sha256_transform_blocks(uint32_t state[8],
|
|
|
185
169
|
|
|
186
170
|
// SHA-384.
|
|
187
171
|
|
|
188
|
-
//
|
|
189
|
-
#define BCM_SHA384_DIGEST_LENGTH 48
|
|
190
|
-
|
|
191
|
-
// BCM_sha384_init initialises |sha|.
|
|
172
|
+
// BCM_sha384_init initialises `sha`.
|
|
192
173
|
bcm_infallible BCM_sha384_init(SHA512_CTX *sha);
|
|
193
174
|
|
|
194
|
-
// BCM_sha384_update adds
|
|
175
|
+
// BCM_sha384_update adds `len` bytes from `data` to `sha`.
|
|
195
176
|
bcm_infallible BCM_sha384_update(SHA512_CTX *sha, const void *data, size_t len);
|
|
196
177
|
|
|
197
|
-
// BCM_sha384_final adds the final padding to
|
|
198
|
-
// digest to
|
|
178
|
+
// BCM_sha384_final adds the final padding to `sha` and writes the resulting
|
|
179
|
+
// digest to `out`, which must have at least `SHA384_DIGEST_LENGTH` bytes of
|
|
199
180
|
// space. It may abort on programmer error.
|
|
200
|
-
bcm_infallible BCM_sha384_final(uint8_t out[
|
|
181
|
+
bcm_infallible BCM_sha384_final(uint8_t out[SHA384_DIGEST_LENGTH],
|
|
201
182
|
SHA512_CTX *sha);
|
|
202
183
|
|
|
203
184
|
|
|
204
185
|
// SHA-512.
|
|
205
186
|
|
|
206
|
-
//
|
|
207
|
-
#define BCM_SHA512_DIGEST_LENGTH 64
|
|
208
|
-
|
|
209
|
-
// BCM_sha512_init initialises |sha|.
|
|
187
|
+
// BCM_sha512_init initialises `sha`.
|
|
210
188
|
bcm_infallible BCM_sha512_init(SHA512_CTX *sha);
|
|
211
189
|
|
|
212
|
-
// BCM_sha512_update adds
|
|
190
|
+
// BCM_sha512_update adds `len` bytes from `data` to `sha`.
|
|
213
191
|
bcm_infallible BCM_sha512_update(SHA512_CTX *sha, const void *data, size_t len);
|
|
214
192
|
|
|
215
|
-
// BCM_sha512_final adds the final padding to
|
|
216
|
-
// digest to
|
|
193
|
+
// BCM_sha512_final adds the final padding to `sha` and writes the resulting
|
|
194
|
+
// digest to `out`, which must have at least `SHA512_DIGEST_LENGTH` bytes of
|
|
217
195
|
// space.
|
|
218
|
-
bcm_infallible BCM_sha512_final(uint8_t out[
|
|
196
|
+
bcm_infallible BCM_sha512_final(uint8_t out[SHA512_DIGEST_LENGTH],
|
|
219
197
|
SHA512_CTX *sha);
|
|
220
198
|
|
|
221
199
|
// BCM_sha512_transform is a low-level function that performs a single, SHA-512
|
|
222
|
-
// block transformation using the state from
|
|
223
|
-
// from
|
|
200
|
+
// block transformation using the state from `sha` and `SHA512_CBLOCK` bytes
|
|
201
|
+
// from `block`.
|
|
224
202
|
bcm_infallible BCM_sha512_transform(SHA512_CTX *sha,
|
|
225
|
-
const uint8_t block[
|
|
203
|
+
const uint8_t block[SHA512_CBLOCK]);
|
|
226
204
|
|
|
227
205
|
|
|
228
206
|
// SHA-512-256
|
|
229
207
|
//
|
|
230
208
|
// See https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf section 5.3.6
|
|
231
209
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
// BCM_sha512_256_init initialises |sha|.
|
|
210
|
+
// BCM_sha512_256_init initialises `sha`.
|
|
235
211
|
bcm_infallible BCM_sha512_256_init(SHA512_CTX *sha);
|
|
236
212
|
|
|
237
|
-
// BCM_sha512_256_update adds
|
|
213
|
+
// BCM_sha512_256_update adds `len` bytes from `data` to `sha`.
|
|
238
214
|
bcm_infallible BCM_sha512_256_update(SHA512_CTX *sha, const void *data,
|
|
239
215
|
size_t len);
|
|
240
216
|
|
|
241
|
-
// BCM_sha512_256_final adds the final padding to
|
|
242
|
-
// digest to
|
|
243
|
-
//
|
|
244
|
-
bcm_infallible BCM_sha512_256_final(uint8_t out[
|
|
217
|
+
// BCM_sha512_256_final adds the final padding to `sha` and writes the resulting
|
|
218
|
+
// digest to `out`, which must have at least `SHA512_256_DIGEST_LENGTH` bytes of
|
|
219
|
+
// space. It may abort on programmer error.
|
|
220
|
+
bcm_infallible BCM_sha512_256_final(uint8_t out[SHA512_256_DIGEST_LENGTH],
|
|
245
221
|
SHA512_CTX *sha);
|
|
246
222
|
|
|
247
223
|
|
|
@@ -254,227 +230,357 @@ bcm_infallible BCM_sha512_256_final(uint8_t out[BCM_SHA512_256_DIGEST_LENGTH],
|
|
|
254
230
|
// random entropy necessary to generate a signature in randomized mode.
|
|
255
231
|
#define BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES 32
|
|
256
232
|
|
|
257
|
-
// BCM_MLDSA_SEED_BYTES is the number of bytes in an ML-DSA seed value.
|
|
258
|
-
#define BCM_MLDSA_SEED_BYTES 32
|
|
259
|
-
|
|
260
233
|
// BCM_MLDSA65_PRIVATE_KEY_BYTES is the number of bytes in an encoded ML-DSA-65
|
|
261
234
|
// private key.
|
|
262
235
|
#define BCM_MLDSA65_PRIVATE_KEY_BYTES 4032
|
|
263
236
|
|
|
264
|
-
// BCM_MLDSA65_PUBLIC_KEY_BYTES is the number of bytes in an encoded ML-DSA-65
|
|
265
|
-
// public key.
|
|
266
|
-
#define BCM_MLDSA65_PUBLIC_KEY_BYTES 1952
|
|
267
|
-
|
|
268
|
-
// BCM_MLDSA65_SIGNATURE_BYTES is the number of bytes in an encoded ML-DSA-65
|
|
269
|
-
// signature.
|
|
270
|
-
#define BCM_MLDSA65_SIGNATURE_BYTES 3309
|
|
271
|
-
|
|
272
|
-
struct BCM_mldsa65_private_key {
|
|
273
|
-
union {
|
|
274
|
-
uint8_t bytes[32 + 32 + 64 + 256 * 4 * (5 + 6 + 6)];
|
|
275
|
-
uint32_t alignment;
|
|
276
|
-
} opaque;
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
struct BCM_mldsa65_public_key {
|
|
280
|
-
union {
|
|
281
|
-
uint8_t bytes[32 + 64 + 256 * 4 * 6];
|
|
282
|
-
uint32_t alignment;
|
|
283
|
-
} opaque;
|
|
284
|
-
};
|
|
285
|
-
|
|
286
237
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_generate_key(
|
|
287
|
-
uint8_t out_encoded_public_key[
|
|
288
|
-
uint8_t out_seed[
|
|
289
|
-
struct BCM_mldsa65_private_key *out_private_key);
|
|
238
|
+
uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES],
|
|
239
|
+
uint8_t out_seed[MLDSA_SEED_BYTES], MLDSA65_private_key *out_private_key);
|
|
290
240
|
|
|
291
241
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_private_key_from_seed(
|
|
292
|
-
|
|
293
|
-
const uint8_t seed[BCM_MLDSA_SEED_BYTES]);
|
|
242
|
+
MLDSA65_private_key *out_private_key, const uint8_t seed[MLDSA_SEED_BYTES]);
|
|
294
243
|
|
|
295
244
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_public_from_private(
|
|
296
|
-
|
|
297
|
-
|
|
245
|
+
MLDSA65_public_key *out_public_key, const MLDSA65_private_key *private_key);
|
|
246
|
+
|
|
247
|
+
// BCM_mldsa65_public_of_private returns the public half of `private_key`.
|
|
248
|
+
const MLDSA65_public_key *BCM_mldsa65_public_of_private(
|
|
249
|
+
const MLDSA65_private_key *private_key);
|
|
298
250
|
|
|
299
251
|
OPENSSL_EXPORT bcm_status
|
|
300
|
-
BCM_mldsa65_check_key_fips(
|
|
252
|
+
BCM_mldsa65_check_key_fips(MLDSA65_private_key *private_key);
|
|
301
253
|
|
|
302
254
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_generate_key_fips(
|
|
303
|
-
uint8_t out_encoded_public_key[
|
|
304
|
-
uint8_t out_seed[
|
|
305
|
-
struct BCM_mldsa65_private_key *out_private_key);
|
|
255
|
+
uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES],
|
|
256
|
+
uint8_t out_seed[MLDSA_SEED_BYTES], MLDSA65_private_key *out_private_key);
|
|
306
257
|
|
|
307
258
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_private_key_from_seed_fips(
|
|
308
|
-
|
|
309
|
-
const uint8_t seed[BCM_MLDSA_SEED_BYTES]);
|
|
259
|
+
MLDSA65_private_key *out_private_key, const uint8_t seed[MLDSA_SEED_BYTES]);
|
|
310
260
|
|
|
311
|
-
OPENSSL_EXPORT bcm_status
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
261
|
+
OPENSSL_EXPORT bcm_status
|
|
262
|
+
BCM_mldsa65_sign(uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES],
|
|
263
|
+
const MLDSA65_private_key *private_key, const uint8_t *msg,
|
|
264
|
+
size_t msg_len, const uint8_t *context, size_t context_len);
|
|
315
265
|
|
|
316
266
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_verify(
|
|
317
|
-
const
|
|
318
|
-
const uint8_t signature[
|
|
267
|
+
const MLDSA65_public_key *public_key,
|
|
268
|
+
const uint8_t signature[MLDSA65_SIGNATURE_BYTES], const uint8_t *msg,
|
|
319
269
|
size_t msg_len, const uint8_t *context, size_t context_len);
|
|
320
270
|
|
|
321
|
-
OPENSSL_EXPORT
|
|
322
|
-
|
|
271
|
+
OPENSSL_EXPORT void BCM_mldsa65_prehash_init(
|
|
272
|
+
MLDSA65_prehash *out_prehash_ctx, const MLDSA65_public_key *public_key,
|
|
273
|
+
const uint8_t *context, size_t context_len);
|
|
323
274
|
|
|
324
|
-
OPENSSL_EXPORT
|
|
325
|
-
|
|
275
|
+
OPENSSL_EXPORT void BCM_mldsa65_prehash_update(
|
|
276
|
+
MLDSA65_prehash *inout_prehash_ctx, const uint8_t *msg, size_t msg_len);
|
|
326
277
|
|
|
327
|
-
OPENSSL_EXPORT
|
|
328
|
-
|
|
278
|
+
OPENSSL_EXPORT void BCM_mldsa65_prehash_finalize(
|
|
279
|
+
uint8_t out_msg_rep[MLDSA_MU_BYTES], MLDSA65_prehash *inout_prehash_ctx);
|
|
280
|
+
|
|
281
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa65_sign_message_representative(
|
|
282
|
+
uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES],
|
|
283
|
+
const MLDSA65_private_key *private_key,
|
|
284
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES]);
|
|
285
|
+
|
|
286
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa65_verify_message_representative(
|
|
287
|
+
const MLDSA65_public_key *public_key,
|
|
288
|
+
const uint8_t signature[MLDSA65_SIGNATURE_BYTES],
|
|
289
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES]);
|
|
290
|
+
|
|
291
|
+
OPENSSL_EXPORT bcm_status
|
|
292
|
+
BCM_mldsa65_marshal_public_key(CBB *out, const MLDSA65_public_key *public_key);
|
|
293
|
+
|
|
294
|
+
OPENSSL_EXPORT bcm_status
|
|
295
|
+
BCM_mldsa65_parse_public_key(MLDSA65_public_key *public_key, CBS *in);
|
|
296
|
+
|
|
297
|
+
OPENSSL_EXPORT bcm_status
|
|
298
|
+
BCM_mldsa65_parse_private_key(MLDSA65_private_key *private_key, CBS *in);
|
|
329
299
|
|
|
330
300
|
// BCM_mldsa65_generate_key_external_entropy generates a public/private key pair
|
|
331
301
|
// using the given seed, writes the encoded public key to
|
|
332
|
-
//
|
|
302
|
+
// `out_encoded_public_key` and sets `out_private_key` to the private key.
|
|
333
303
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_generate_key_external_entropy(
|
|
334
|
-
uint8_t out_encoded_public_key[
|
|
335
|
-
|
|
336
|
-
const uint8_t entropy[
|
|
304
|
+
uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES],
|
|
305
|
+
MLDSA65_private_key *out_private_key,
|
|
306
|
+
const uint8_t entropy[MLDSA_SEED_BYTES]);
|
|
337
307
|
|
|
338
308
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_generate_key_external_entropy_fips(
|
|
339
|
-
uint8_t out_encoded_public_key[
|
|
340
|
-
|
|
341
|
-
const uint8_t entropy[
|
|
309
|
+
uint8_t out_encoded_public_key[MLDSA65_PUBLIC_KEY_BYTES],
|
|
310
|
+
MLDSA65_private_key *out_private_key,
|
|
311
|
+
const uint8_t entropy[MLDSA_SEED_BYTES]);
|
|
342
312
|
|
|
343
|
-
// BCM_mldsa5_sign_internal signs
|
|
344
|
-
// signature to
|
|
345
|
-
// prefixed to the message, in that order, before signing. The
|
|
313
|
+
// BCM_mldsa5_sign_internal signs `msg` using `private_key` and writes the
|
|
314
|
+
// signature to `out_encoded_signature`. The `context_prefix` and `context` are
|
|
315
|
+
// prefixed to the message, in that order, before signing. The `randomizer`
|
|
346
316
|
// value can be set to zero bytes in order to make a deterministic signature, or
|
|
347
|
-
// else filled with entropy for the usual
|
|
317
|
+
// else filled with entropy for the usual `MLDSA_sign` behavior.
|
|
348
318
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_sign_internal(
|
|
349
|
-
uint8_t out_encoded_signature[
|
|
350
|
-
const
|
|
351
|
-
|
|
319
|
+
uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES],
|
|
320
|
+
const MLDSA65_private_key *private_key, const uint8_t *msg, size_t msg_len,
|
|
321
|
+
const uint8_t *context_prefix, size_t context_prefix_len,
|
|
352
322
|
const uint8_t *context, size_t context_len,
|
|
353
323
|
const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]);
|
|
354
324
|
|
|
355
|
-
|
|
356
|
-
|
|
325
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa65_sign_mu_internal(
|
|
326
|
+
uint8_t out_encoded_signature[MLDSA65_SIGNATURE_BYTES],
|
|
327
|
+
const MLDSA65_private_key *private_key,
|
|
328
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES],
|
|
329
|
+
const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]);
|
|
330
|
+
|
|
331
|
+
// BCM_mldsa5_verify_internal verifies that `encoded_signature` is a valid
|
|
332
|
+
// signature of `msg` by `public_key`. The `context_prefix` and `context` are
|
|
357
333
|
// prefixed to the message before verification, in that order.
|
|
358
334
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_verify_internal(
|
|
359
|
-
const
|
|
360
|
-
const uint8_t encoded_signature[
|
|
335
|
+
const MLDSA65_public_key *public_key,
|
|
336
|
+
const uint8_t encoded_signature[MLDSA65_SIGNATURE_BYTES],
|
|
361
337
|
const uint8_t *msg, size_t msg_len, const uint8_t *context_prefix,
|
|
362
338
|
size_t context_prefix_len, const uint8_t *context, size_t context_len);
|
|
363
339
|
|
|
364
|
-
// BCM_mldsa65_marshal_private_key serializes
|
|
340
|
+
// BCM_mldsa65_marshal_private_key serializes `private_key` to `out` in the
|
|
365
341
|
// NIST format for ML-DSA-65 private keys.
|
|
366
342
|
OPENSSL_EXPORT bcm_status BCM_mldsa65_marshal_private_key(
|
|
367
|
-
CBB *out, const
|
|
343
|
+
CBB *out, const MLDSA65_private_key *private_key);
|
|
344
|
+
|
|
345
|
+
// BCM_mldsa65_public_keys_equal returns one if `a` and `b` are equal and zero
|
|
346
|
+
// otherwise.
|
|
347
|
+
int BCM_mldsa65_public_keys_equal(const MLDSA65_public_key *a,
|
|
348
|
+
const MLDSA65_public_key *b);
|
|
368
349
|
|
|
369
350
|
|
|
370
351
|
// BCM_MLDSA87_PRIVATE_KEY_BYTES is the number of bytes in an encoded ML-DSA-87
|
|
371
352
|
// private key.
|
|
372
353
|
#define BCM_MLDSA87_PRIVATE_KEY_BYTES 4896
|
|
373
354
|
|
|
374
|
-
// BCM_MLDSA87_PUBLIC_KEY_BYTES is the number of bytes in an encoded ML-DSA-87
|
|
375
|
-
// public key.
|
|
376
|
-
#define BCM_MLDSA87_PUBLIC_KEY_BYTES 2592
|
|
377
|
-
|
|
378
|
-
// BCM_MLDSA87_SIGNATURE_BYTES is the number of bytes in an encoded ML-DSA-87
|
|
379
|
-
// signature.
|
|
380
|
-
#define BCM_MLDSA87_SIGNATURE_BYTES 4627
|
|
381
|
-
|
|
382
|
-
struct BCM_mldsa87_private_key {
|
|
383
|
-
union {
|
|
384
|
-
uint8_t bytes[32 + 32 + 64 + 256 * 4 * (7 + 8 + 8)];
|
|
385
|
-
uint32_t alignment;
|
|
386
|
-
} opaque;
|
|
387
|
-
};
|
|
388
|
-
|
|
389
|
-
struct BCM_mldsa87_public_key {
|
|
390
|
-
union {
|
|
391
|
-
uint8_t bytes[32 + 64 + 256 * 4 * 8];
|
|
392
|
-
uint32_t alignment;
|
|
393
|
-
} opaque;
|
|
394
|
-
};
|
|
395
|
-
|
|
396
355
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_generate_key(
|
|
397
|
-
uint8_t out_encoded_public_key[
|
|
398
|
-
uint8_t out_seed[
|
|
399
|
-
struct BCM_mldsa87_private_key *out_private_key);
|
|
356
|
+
uint8_t out_encoded_public_key[MLDSA87_PUBLIC_KEY_BYTES],
|
|
357
|
+
uint8_t out_seed[MLDSA_SEED_BYTES], MLDSA87_private_key *out_private_key);
|
|
400
358
|
|
|
401
359
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_private_key_from_seed(
|
|
402
|
-
|
|
403
|
-
const uint8_t seed[BCM_MLDSA_SEED_BYTES]);
|
|
360
|
+
MLDSA87_private_key *out_private_key, const uint8_t seed[MLDSA_SEED_BYTES]);
|
|
404
361
|
|
|
405
362
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_public_from_private(
|
|
406
|
-
|
|
407
|
-
|
|
363
|
+
MLDSA87_public_key *out_public_key, const MLDSA87_private_key *private_key);
|
|
364
|
+
|
|
365
|
+
// BCM_mldsa87_public_of_private returns the public half of `private_key`.
|
|
366
|
+
const MLDSA87_public_key *BCM_mldsa87_public_of_private(
|
|
367
|
+
const MLDSA87_private_key *private_key);
|
|
408
368
|
|
|
409
369
|
OPENSSL_EXPORT bcm_status
|
|
410
|
-
BCM_mldsa87_check_key_fips(
|
|
370
|
+
BCM_mldsa87_check_key_fips(MLDSA87_private_key *private_key);
|
|
411
371
|
|
|
412
372
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_generate_key_fips(
|
|
413
|
-
uint8_t out_encoded_public_key[
|
|
414
|
-
uint8_t out_seed[
|
|
415
|
-
struct BCM_mldsa87_private_key *out_private_key);
|
|
373
|
+
uint8_t out_encoded_public_key[MLDSA87_PUBLIC_KEY_BYTES],
|
|
374
|
+
uint8_t out_seed[MLDSA_SEED_BYTES], MLDSA87_private_key *out_private_key);
|
|
416
375
|
|
|
417
376
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_private_key_from_seed_fips(
|
|
418
|
-
|
|
419
|
-
const uint8_t seed[BCM_MLDSA_SEED_BYTES]);
|
|
377
|
+
MLDSA87_private_key *out_private_key, const uint8_t seed[MLDSA_SEED_BYTES]);
|
|
420
378
|
|
|
421
|
-
OPENSSL_EXPORT bcm_status
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
379
|
+
OPENSSL_EXPORT bcm_status
|
|
380
|
+
BCM_mldsa87_sign(uint8_t out_encoded_signature[MLDSA87_SIGNATURE_BYTES],
|
|
381
|
+
const MLDSA87_private_key *private_key, const uint8_t *msg,
|
|
382
|
+
size_t msg_len, const uint8_t *context, size_t context_len);
|
|
425
383
|
|
|
426
384
|
OPENSSL_EXPORT bcm_status
|
|
427
|
-
BCM_mldsa87_verify(const
|
|
385
|
+
BCM_mldsa87_verify(const MLDSA87_public_key *public_key,
|
|
428
386
|
const uint8_t *signature, const uint8_t *msg, size_t msg_len,
|
|
429
387
|
const uint8_t *context, size_t context_len);
|
|
430
388
|
|
|
431
|
-
OPENSSL_EXPORT
|
|
432
|
-
|
|
389
|
+
OPENSSL_EXPORT void BCM_mldsa87_prehash_init(
|
|
390
|
+
MLDSA87_prehash *out_prehash_ctx, const MLDSA87_public_key *public_key,
|
|
391
|
+
const uint8_t *context, size_t context_len);
|
|
392
|
+
|
|
393
|
+
OPENSSL_EXPORT void BCM_mldsa87_prehash_update(
|
|
394
|
+
MLDSA87_prehash *inout_prehash_ctx, const uint8_t *msg, size_t msg_len);
|
|
395
|
+
|
|
396
|
+
OPENSSL_EXPORT void BCM_mldsa87_prehash_finalize(
|
|
397
|
+
uint8_t out_msg_rep[MLDSA_MU_BYTES], MLDSA87_prehash *inout_prehash_ctx);
|
|
398
|
+
|
|
399
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa87_sign_message_representative(
|
|
400
|
+
uint8_t out_encoded_signature[MLDSA87_SIGNATURE_BYTES],
|
|
401
|
+
const MLDSA87_private_key *private_key,
|
|
402
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES]);
|
|
403
|
+
|
|
404
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa87_verify_message_representative(
|
|
405
|
+
const MLDSA87_public_key *public_key,
|
|
406
|
+
const uint8_t signature[MLDSA87_SIGNATURE_BYTES],
|
|
407
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES]);
|
|
408
|
+
|
|
409
|
+
OPENSSL_EXPORT bcm_status
|
|
410
|
+
BCM_mldsa87_marshal_public_key(CBB *out, const MLDSA87_public_key *public_key);
|
|
433
411
|
|
|
434
|
-
OPENSSL_EXPORT bcm_status
|
|
435
|
-
|
|
412
|
+
OPENSSL_EXPORT bcm_status
|
|
413
|
+
BCM_mldsa87_parse_public_key(MLDSA87_public_key *public_key, CBS *in);
|
|
436
414
|
|
|
437
|
-
OPENSSL_EXPORT bcm_status
|
|
438
|
-
|
|
415
|
+
OPENSSL_EXPORT bcm_status
|
|
416
|
+
BCM_mldsa87_parse_private_key(MLDSA87_private_key *private_key, CBS *in);
|
|
439
417
|
|
|
440
418
|
// BCM_mldsa87_generate_key_external_entropy generates a public/private key pair
|
|
441
419
|
// using the given seed, writes the encoded public key to
|
|
442
|
-
//
|
|
420
|
+
// `out_encoded_public_key` and sets `out_private_key` to the private key.
|
|
443
421
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_generate_key_external_entropy(
|
|
444
|
-
uint8_t out_encoded_public_key[
|
|
445
|
-
|
|
446
|
-
const uint8_t entropy[
|
|
422
|
+
uint8_t out_encoded_public_key[MLDSA87_PUBLIC_KEY_BYTES],
|
|
423
|
+
MLDSA87_private_key *out_private_key,
|
|
424
|
+
const uint8_t entropy[MLDSA_SEED_BYTES]);
|
|
447
425
|
|
|
448
426
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_generate_key_external_entropy_fips(
|
|
449
|
-
uint8_t out_encoded_public_key[
|
|
450
|
-
|
|
451
|
-
const uint8_t entropy[
|
|
427
|
+
uint8_t out_encoded_public_key[MLDSA87_PUBLIC_KEY_BYTES],
|
|
428
|
+
MLDSA87_private_key *out_private_key,
|
|
429
|
+
const uint8_t entropy[MLDSA_SEED_BYTES]);
|
|
452
430
|
|
|
453
|
-
// BCM_mldsa87_sign_internal signs
|
|
454
|
-
// signature to
|
|
455
|
-
// prefixed to the message, in that order, before signing. The
|
|
431
|
+
// BCM_mldsa87_sign_internal signs `msg` using `private_key` and writes the
|
|
432
|
+
// signature to `out_encoded_signature`. The `context_prefix` and `context` are
|
|
433
|
+
// prefixed to the message, in that order, before signing. The `randomizer`
|
|
456
434
|
// value can be set to zero bytes in order to make a deterministic signature, or
|
|
457
|
-
// else filled with entropy for the usual
|
|
435
|
+
// else filled with entropy for the usual `MLDSA_sign` behavior.
|
|
458
436
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_sign_internal(
|
|
459
|
-
uint8_t out_encoded_signature[
|
|
460
|
-
const
|
|
461
|
-
|
|
437
|
+
uint8_t out_encoded_signature[MLDSA87_SIGNATURE_BYTES],
|
|
438
|
+
const MLDSA87_private_key *private_key, const uint8_t *msg, size_t msg_len,
|
|
439
|
+
const uint8_t *context_prefix, size_t context_prefix_len,
|
|
462
440
|
const uint8_t *context, size_t context_len,
|
|
463
441
|
const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]);
|
|
464
442
|
|
|
465
|
-
|
|
466
|
-
|
|
443
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa87_sign_mu_internal(
|
|
444
|
+
uint8_t out_encoded_signature[MLDSA87_SIGNATURE_BYTES],
|
|
445
|
+
const MLDSA87_private_key *private_key,
|
|
446
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES],
|
|
447
|
+
const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]);
|
|
448
|
+
|
|
449
|
+
// BCM_mldsa87_verify_internal verifies that `encoded_signature` is a valid
|
|
450
|
+
// signature of `msg` by `public_key`. The `context_prefix` and `context` are
|
|
467
451
|
// prefixed to the message before verification, in that order.
|
|
468
452
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_verify_internal(
|
|
469
|
-
const
|
|
470
|
-
const uint8_t encoded_signature[
|
|
453
|
+
const MLDSA87_public_key *public_key,
|
|
454
|
+
const uint8_t encoded_signature[MLDSA87_SIGNATURE_BYTES],
|
|
471
455
|
const uint8_t *msg, size_t msg_len, const uint8_t *context_prefix,
|
|
472
456
|
size_t context_prefix_len, const uint8_t *context, size_t context_len);
|
|
473
457
|
|
|
474
|
-
// BCM_mldsa87_marshal_private_key serializes
|
|
458
|
+
// BCM_mldsa87_marshal_private_key serializes `private_key` to `out` in the
|
|
475
459
|
// NIST format for ML-DSA-87 private keys.
|
|
476
460
|
OPENSSL_EXPORT bcm_status BCM_mldsa87_marshal_private_key(
|
|
477
|
-
CBB *out, const
|
|
461
|
+
CBB *out, const MLDSA87_private_key *private_key);
|
|
462
|
+
|
|
463
|
+
// BCM_mldsa87_public_keys_equal returns one if `a` and `b` are equal and zero
|
|
464
|
+
// otherwise.
|
|
465
|
+
int BCM_mldsa87_public_keys_equal(const MLDSA87_public_key *a,
|
|
466
|
+
const MLDSA87_public_key *b);
|
|
467
|
+
|
|
468
|
+
// BCM_MLDSA44_PRIVATE_KEY_BYTES is the number of bytes in an encoded ML-DSA-44
|
|
469
|
+
// private key.
|
|
470
|
+
#define BCM_MLDSA44_PRIVATE_KEY_BYTES 2560
|
|
471
|
+
|
|
472
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_generate_key(
|
|
473
|
+
uint8_t out_encoded_public_key[MLDSA44_PUBLIC_KEY_BYTES],
|
|
474
|
+
uint8_t out_seed[MLDSA_SEED_BYTES], MLDSA44_private_key *out_private_key);
|
|
475
|
+
|
|
476
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_private_key_from_seed(
|
|
477
|
+
MLDSA44_private_key *out_private_key, const uint8_t seed[MLDSA_SEED_BYTES]);
|
|
478
|
+
|
|
479
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_public_from_private(
|
|
480
|
+
MLDSA44_public_key *out_public_key, const MLDSA44_private_key *private_key);
|
|
481
|
+
|
|
482
|
+
// BCM_mldsa44_public_of_private returns the public half of `private_key`.
|
|
483
|
+
const MLDSA44_public_key *BCM_mldsa44_public_of_private(
|
|
484
|
+
const MLDSA44_private_key *private_key);
|
|
485
|
+
|
|
486
|
+
OPENSSL_EXPORT bcm_status
|
|
487
|
+
BCM_mldsa44_check_key_fips(MLDSA44_private_key *private_key);
|
|
488
|
+
|
|
489
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_generate_key_fips(
|
|
490
|
+
uint8_t out_encoded_public_key[MLDSA44_PUBLIC_KEY_BYTES],
|
|
491
|
+
uint8_t out_seed[MLDSA_SEED_BYTES], MLDSA44_private_key *out_private_key);
|
|
492
|
+
|
|
493
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_private_key_from_seed_fips(
|
|
494
|
+
MLDSA44_private_key *out_private_key, const uint8_t seed[MLDSA_SEED_BYTES]);
|
|
495
|
+
|
|
496
|
+
OPENSSL_EXPORT bcm_status
|
|
497
|
+
BCM_mldsa44_sign(uint8_t out_encoded_signature[MLDSA44_SIGNATURE_BYTES],
|
|
498
|
+
const MLDSA44_private_key *private_key, const uint8_t *msg,
|
|
499
|
+
size_t msg_len, const uint8_t *context, size_t context_len);
|
|
500
|
+
|
|
501
|
+
OPENSSL_EXPORT bcm_status
|
|
502
|
+
BCM_mldsa44_verify(const MLDSA44_public_key *public_key,
|
|
503
|
+
const uint8_t *signature, const uint8_t *msg, size_t msg_len,
|
|
504
|
+
const uint8_t *context, size_t context_len);
|
|
505
|
+
|
|
506
|
+
OPENSSL_EXPORT void BCM_mldsa44_prehash_init(
|
|
507
|
+
MLDSA44_prehash *out_prehash_ctx, const MLDSA44_public_key *public_key,
|
|
508
|
+
const uint8_t *context, size_t context_len);
|
|
509
|
+
|
|
510
|
+
OPENSSL_EXPORT void BCM_mldsa44_prehash_update(
|
|
511
|
+
MLDSA44_prehash *inout_prehash_ctx, const uint8_t *msg, size_t msg_len);
|
|
512
|
+
|
|
513
|
+
OPENSSL_EXPORT void BCM_mldsa44_prehash_finalize(
|
|
514
|
+
uint8_t out_msg_rep[MLDSA_MU_BYTES], MLDSA44_prehash *inout_prehash_ctx);
|
|
515
|
+
|
|
516
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_sign_message_representative(
|
|
517
|
+
uint8_t out_encoded_signature[MLDSA44_SIGNATURE_BYTES],
|
|
518
|
+
const MLDSA44_private_key *private_key,
|
|
519
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES]);
|
|
520
|
+
|
|
521
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_verify_message_representative(
|
|
522
|
+
const MLDSA44_public_key *public_key,
|
|
523
|
+
const uint8_t signature[MLDSA44_SIGNATURE_BYTES],
|
|
524
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES]);
|
|
525
|
+
|
|
526
|
+
OPENSSL_EXPORT bcm_status
|
|
527
|
+
BCM_mldsa44_marshal_public_key(CBB *out, const MLDSA44_public_key *public_key);
|
|
528
|
+
|
|
529
|
+
OPENSSL_EXPORT bcm_status
|
|
530
|
+
BCM_mldsa44_parse_public_key(MLDSA44_public_key *public_key, CBS *in);
|
|
531
|
+
|
|
532
|
+
OPENSSL_EXPORT bcm_status
|
|
533
|
+
BCM_mldsa44_parse_private_key(MLDSA44_private_key *private_key, CBS *in);
|
|
534
|
+
|
|
535
|
+
// BCM_mldsa44_generate_key_external_entropy generates a public/private key pair
|
|
536
|
+
// using the given seed, writes the encoded public key to
|
|
537
|
+
// `out_encoded_public_key` and sets `out_private_key` to the private key.
|
|
538
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_generate_key_external_entropy(
|
|
539
|
+
uint8_t out_encoded_public_key[MLDSA44_PUBLIC_KEY_BYTES],
|
|
540
|
+
MLDSA44_private_key *out_private_key,
|
|
541
|
+
const uint8_t entropy[MLDSA_SEED_BYTES]);
|
|
542
|
+
|
|
543
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_generate_key_external_entropy_fips(
|
|
544
|
+
uint8_t out_encoded_public_key[MLDSA44_PUBLIC_KEY_BYTES],
|
|
545
|
+
MLDSA44_private_key *out_private_key,
|
|
546
|
+
const uint8_t entropy[MLDSA_SEED_BYTES]);
|
|
547
|
+
|
|
548
|
+
// BCM_mldsa44_sign_internal signs `msg` using `private_key` and writes the
|
|
549
|
+
// signature to `out_encoded_signature`. The `context_prefix` and `context` are
|
|
550
|
+
// prefixed to the message, in that order, before signing. The `randomizer`
|
|
551
|
+
// value can be set to zero bytes in order to make a deterministic signature, or
|
|
552
|
+
// else filled with entropy for the usual `MLDSA_sign` behavior.
|
|
553
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_sign_internal(
|
|
554
|
+
uint8_t out_encoded_signature[MLDSA44_SIGNATURE_BYTES],
|
|
555
|
+
const MLDSA44_private_key *private_key, const uint8_t *msg, size_t msg_len,
|
|
556
|
+
const uint8_t *context_prefix, size_t context_prefix_len,
|
|
557
|
+
const uint8_t *context, size_t context_len,
|
|
558
|
+
const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]);
|
|
559
|
+
|
|
560
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_sign_mu_internal(
|
|
561
|
+
uint8_t out_encoded_signature[MLDSA44_SIGNATURE_BYTES],
|
|
562
|
+
const MLDSA44_private_key *private_key,
|
|
563
|
+
const uint8_t msg_rep[MLDSA_MU_BYTES],
|
|
564
|
+
const uint8_t randomizer[BCM_MLDSA_SIGNATURE_RANDOMIZER_BYTES]);
|
|
565
|
+
|
|
566
|
+
// BCM_mldsa44_verify_internal verifies that `encoded_signature` is a valid
|
|
567
|
+
// signature of `msg` by `public_key`. The `context_prefix` and `context` are
|
|
568
|
+
// prefixed to the message before verification, in that order.
|
|
569
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_verify_internal(
|
|
570
|
+
const MLDSA44_public_key *public_key,
|
|
571
|
+
const uint8_t encoded_signature[MLDSA44_SIGNATURE_BYTES],
|
|
572
|
+
const uint8_t *msg, size_t msg_len, const uint8_t *context_prefix,
|
|
573
|
+
size_t context_prefix_len, const uint8_t *context, size_t context_len);
|
|
574
|
+
|
|
575
|
+
// BCM_mldsa44_marshal_private_key serializes `private_key` to `out` in the
|
|
576
|
+
// NIST format for ML-DSA-44 private keys.
|
|
577
|
+
OPENSSL_EXPORT bcm_status BCM_mldsa44_marshal_private_key(
|
|
578
|
+
CBB *out, const MLDSA44_private_key *private_key);
|
|
579
|
+
|
|
580
|
+
// BCM_mldsa44_public_keys_equal returns one if `a` and `b` are equal and zero
|
|
581
|
+
// otherwise.
|
|
582
|
+
int BCM_mldsa44_public_keys_equal(const MLDSA44_public_key *a,
|
|
583
|
+
const MLDSA44_public_key *b);
|
|
478
584
|
|
|
479
585
|
|
|
480
586
|
// ML-KEM
|
|
@@ -487,218 +593,182 @@ OPENSSL_EXPORT bcm_status BCM_mldsa87_marshal_private_key(
|
|
|
487
593
|
// decapsulating party.
|
|
488
594
|
#define BCM_MLKEM_ENCAP_ENTROPY 32
|
|
489
595
|
|
|
490
|
-
// BCM_MLKEM768_PUBLIC_KEY_BYTES is the number of bytes in an encoded ML-KEM-768
|
|
491
|
-
// public key.
|
|
492
|
-
#define BCM_MLKEM768_PUBLIC_KEY_BYTES 1184
|
|
493
|
-
|
|
494
|
-
// BCM_MLKEM1024_PUBLIC_KEY_BYTES is the number of bytes in an encoded
|
|
495
|
-
// ML-KEM-1024 public key.
|
|
496
|
-
#define BCM_MLKEM1024_PUBLIC_KEY_BYTES 1568
|
|
497
|
-
|
|
498
|
-
// BCM_MLKEM768_CIPHERTEXT_BYTES is number of bytes in the ML-KEM-768
|
|
499
|
-
// ciphertext.
|
|
500
|
-
#define BCM_MLKEM768_CIPHERTEXT_BYTES 1088
|
|
501
|
-
|
|
502
|
-
// BCM_MLKEM1024_CIPHERTEXT_BYTES is number of bytes in the ML-KEM-1024
|
|
503
|
-
// ciphertext.
|
|
504
|
-
#define BCM_MLKEM1024_CIPHERTEXT_BYTES 1568
|
|
505
|
-
|
|
506
596
|
// BCM_MLKEM768_PRIVATE_KEY_BYTES is the length of the data produced by
|
|
507
|
-
//
|
|
597
|
+
// `BCM_mlkem768_marshal_private_key`.
|
|
508
598
|
#define BCM_MLKEM768_PRIVATE_KEY_BYTES 2400
|
|
509
599
|
|
|
510
600
|
// BCM_MLKEM1024_PRIVATE_KEY_BYTES is the length of the data produced by
|
|
511
|
-
//
|
|
601
|
+
// `BCM_mlkem1024_marshal_private_key`.
|
|
512
602
|
#define BCM_MLKEM1024_PRIVATE_KEY_BYTES 3168
|
|
513
603
|
|
|
514
|
-
// BCM_MLKEM_SEED_BYTES is the number of bytes in an ML-KEM seed.
|
|
515
|
-
#define BCM_MLKEM_SEED_BYTES 64
|
|
516
|
-
|
|
517
|
-
// BCM_mlkem_SHARED_SECRET_BYTES is the number of bytes in an ML-KEM shared
|
|
518
|
-
// secret.
|
|
519
|
-
#define BCM_MLKEM_SHARED_SECRET_BYTES 32
|
|
520
|
-
|
|
521
|
-
struct BCM_mlkem768_public_key {
|
|
522
|
-
union {
|
|
523
|
-
uint8_t bytes[512 * (3 + 9) + 32 + 32];
|
|
524
|
-
uint16_t alignment;
|
|
525
|
-
} opaque;
|
|
526
|
-
};
|
|
527
|
-
|
|
528
|
-
struct BCM_mlkem768_private_key {
|
|
529
|
-
union {
|
|
530
|
-
uint8_t bytes[512 * (3 + 3 + 9) + 32 + 32 + 32];
|
|
531
|
-
uint16_t alignment;
|
|
532
|
-
} opaque;
|
|
533
|
-
};
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
604
|
OPENSSL_EXPORT bcm_infallible BCM_mlkem768_generate_key(
|
|
538
|
-
uint8_t out_encoded_public_key[
|
|
539
|
-
uint8_t optional_out_seed[
|
|
540
|
-
|
|
605
|
+
uint8_t out_encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES],
|
|
606
|
+
uint8_t optional_out_seed[MLKEM_SEED_BYTES],
|
|
607
|
+
MLKEM768_private_key *out_private_key);
|
|
541
608
|
|
|
542
|
-
OPENSSL_EXPORT bcm_status
|
|
543
|
-
|
|
544
|
-
|
|
609
|
+
OPENSSL_EXPORT bcm_status
|
|
610
|
+
BCM_mlkem768_private_key_from_seed(MLKEM768_private_key *out_private_key,
|
|
611
|
+
const uint8_t *seed, size_t seed_len);
|
|
545
612
|
|
|
546
613
|
OPENSSL_EXPORT bcm_status BCM_mlkem768_generate_key_fips(
|
|
547
|
-
uint8_t out_encoded_public_key[
|
|
548
|
-
uint8_t optional_out_seed[
|
|
549
|
-
|
|
614
|
+
uint8_t out_encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES],
|
|
615
|
+
uint8_t optional_out_seed[MLKEM_SEED_BYTES],
|
|
616
|
+
MLKEM768_private_key *out_private_key);
|
|
550
617
|
|
|
551
618
|
OPENSSL_EXPORT bcm_status
|
|
552
|
-
BCM_mlkem768_check_fips(const
|
|
619
|
+
BCM_mlkem768_check_fips(const MLKEM768_private_key *private_key);
|
|
553
620
|
|
|
554
|
-
OPENSSL_EXPORT bcm_infallible
|
|
555
|
-
|
|
556
|
-
|
|
621
|
+
OPENSSL_EXPORT bcm_infallible
|
|
622
|
+
BCM_mlkem768_public_from_private(MLKEM768_public_key *out_public_key,
|
|
623
|
+
const MLKEM768_private_key *private_key);
|
|
624
|
+
|
|
625
|
+
OPENSSL_EXPORT const MLKEM768_public_key *BCM_mlkem768_public_of_private(
|
|
626
|
+
const MLKEM768_private_key *private_key);
|
|
557
627
|
|
|
558
628
|
OPENSSL_EXPORT bcm_infallible
|
|
559
|
-
BCM_mlkem768_encap(uint8_t out_ciphertext[
|
|
560
|
-
uint8_t out_shared_secret[
|
|
561
|
-
const
|
|
629
|
+
BCM_mlkem768_encap(uint8_t out_ciphertext[MLKEM768_CIPHERTEXT_BYTES],
|
|
630
|
+
uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES],
|
|
631
|
+
const MLKEM768_public_key *public_key);
|
|
562
632
|
|
|
563
633
|
OPENSSL_EXPORT bcm_status
|
|
564
|
-
BCM_mlkem768_decap(uint8_t out_shared_secret[
|
|
634
|
+
BCM_mlkem768_decap(uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES],
|
|
565
635
|
const uint8_t *ciphertext, size_t ciphertext_len,
|
|
566
|
-
const
|
|
636
|
+
const MLKEM768_private_key *private_key);
|
|
567
637
|
|
|
568
638
|
OPENSSL_EXPORT bcm_status BCM_mlkem768_marshal_public_key(
|
|
569
|
-
CBB *out, const
|
|
639
|
+
CBB *out, const MLKEM768_public_key *public_key);
|
|
640
|
+
|
|
641
|
+
// BCM_mlkem768_public_keys_equal returns one if `a` and `b` are equal and zero
|
|
642
|
+
// otherwise.
|
|
643
|
+
int BCM_mlkem768_public_keys_equal(const MLKEM768_public_key *a,
|
|
644
|
+
const MLKEM768_public_key *b);
|
|
570
645
|
|
|
571
|
-
OPENSSL_EXPORT bcm_status
|
|
572
|
-
|
|
646
|
+
OPENSSL_EXPORT bcm_status
|
|
647
|
+
BCM_mlkem768_parse_public_key(MLKEM768_public_key *out_public_key, CBS *in);
|
|
573
648
|
|
|
574
649
|
// BCM_mlkem768_parse_private_key parses a private key, in NIST's format for
|
|
575
|
-
// private keys, from
|
|
650
|
+
// private keys, from `in` and writes the result to `out_private_key`. It
|
|
576
651
|
// returns one on success or zero on parse error or if there are trailing bytes
|
|
577
|
-
// in
|
|
578
|
-
// stored as seeds and parsed using
|
|
579
|
-
OPENSSL_EXPORT bcm_status
|
|
580
|
-
|
|
652
|
+
// in `in`. This format is verbose and should be avoided. Private keys should be
|
|
653
|
+
// stored as seeds and parsed using `BCM_mlkem768_private_key_from_seed`.
|
|
654
|
+
OPENSSL_EXPORT bcm_status
|
|
655
|
+
BCM_mlkem768_parse_private_key(MLKEM768_private_key *out_private_key, CBS *in);
|
|
581
656
|
|
|
582
657
|
// BCM_mlkem768_generate_key_external_seed is a deterministic function to create
|
|
583
658
|
// a pair of ML-KEM-768 keys, using the supplied seed. The seed needs to be
|
|
584
659
|
// uniformly random. This function should only be used for tests; regular
|
|
585
|
-
// callers should use the non-deterministic
|
|
660
|
+
// callers should use the non-deterministic `BCM_mlkem768_generate_key`
|
|
586
661
|
// directly.
|
|
587
662
|
OPENSSL_EXPORT bcm_infallible BCM_mlkem768_generate_key_external_seed(
|
|
588
|
-
uint8_t out_encoded_public_key[
|
|
589
|
-
|
|
590
|
-
const uint8_t seed[
|
|
663
|
+
uint8_t out_encoded_public_key[MLKEM768_PUBLIC_KEY_BYTES],
|
|
664
|
+
MLKEM768_private_key *out_private_key,
|
|
665
|
+
const uint8_t seed[MLKEM_SEED_BYTES]);
|
|
591
666
|
|
|
592
|
-
// BCM_mlkem768_encap_external_entropy behaves like
|
|
593
|
-
//
|
|
594
|
-
// side will be able to recover
|
|
667
|
+
// BCM_mlkem768_encap_external_entropy behaves like `MLKEM768_encap`, but uses
|
|
668
|
+
// `MLKEM_ENCAP_ENTROPY` bytes of `entropy` for randomization. The decapsulating
|
|
669
|
+
// side will be able to recover `entropy` in full. This function should only be
|
|
595
670
|
// used for tests, regular callers should use the non-deterministic
|
|
596
|
-
//
|
|
671
|
+
// `BCM_mlkem768_encap` directly.
|
|
597
672
|
OPENSSL_EXPORT bcm_infallible BCM_mlkem768_encap_external_entropy(
|
|
598
|
-
uint8_t out_ciphertext[
|
|
599
|
-
uint8_t out_shared_secret[
|
|
600
|
-
const
|
|
673
|
+
uint8_t out_ciphertext[MLKEM768_CIPHERTEXT_BYTES],
|
|
674
|
+
uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES],
|
|
675
|
+
const MLKEM768_public_key *public_key,
|
|
601
676
|
const uint8_t entropy[BCM_MLKEM_ENCAP_ENTROPY]);
|
|
602
677
|
|
|
603
|
-
// BCM_mlkem768_marshal_private_key serializes
|
|
678
|
+
// BCM_mlkem768_marshal_private_key serializes `private_key` to `out` in the
|
|
604
679
|
// NIST format for ML-KEM-768 private keys. (Note that one can also save just
|
|
605
|
-
// the seed value produced by
|
|
680
|
+
// the seed value produced by `BCM_mlkem768_generate_key`, which is
|
|
606
681
|
// significantly smaller.)
|
|
607
682
|
OPENSSL_EXPORT bcm_status BCM_mlkem768_marshal_private_key(
|
|
608
|
-
CBB *out, const
|
|
609
|
-
|
|
610
|
-
struct BCM_mlkem1024_public_key {
|
|
611
|
-
union {
|
|
612
|
-
uint8_t bytes[512 * (4 + 16) + 32 + 32];
|
|
613
|
-
uint16_t alignment;
|
|
614
|
-
} opaque;
|
|
615
|
-
};
|
|
616
|
-
|
|
617
|
-
struct BCM_mlkem1024_private_key {
|
|
618
|
-
union {
|
|
619
|
-
uint8_t bytes[512 * (4 + 4 + 16) + 32 + 32 + 32];
|
|
620
|
-
uint16_t alignment;
|
|
621
|
-
} opaque;
|
|
622
|
-
};
|
|
683
|
+
CBB *out, const MLKEM768_private_key *private_key);
|
|
623
684
|
|
|
624
685
|
OPENSSL_EXPORT bcm_infallible BCM_mlkem1024_generate_key(
|
|
625
|
-
uint8_t out_encoded_public_key[
|
|
626
|
-
uint8_t optional_out_seed[
|
|
627
|
-
|
|
686
|
+
uint8_t out_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES],
|
|
687
|
+
uint8_t optional_out_seed[MLKEM_SEED_BYTES],
|
|
688
|
+
MLKEM1024_private_key *out_private_key);
|
|
628
689
|
|
|
629
690
|
OPENSSL_EXPORT bcm_status BCM_mlkem1024_generate_key_fips(
|
|
630
|
-
uint8_t out_encoded_public_key[
|
|
631
|
-
uint8_t optional_out_seed[
|
|
632
|
-
|
|
691
|
+
uint8_t out_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES],
|
|
692
|
+
uint8_t optional_out_seed[MLKEM_SEED_BYTES],
|
|
693
|
+
MLKEM1024_private_key *out_private_key);
|
|
633
694
|
|
|
634
695
|
OPENSSL_EXPORT bcm_status
|
|
635
|
-
BCM_mlkem1024_check_fips(const
|
|
696
|
+
BCM_mlkem1024_check_fips(const MLKEM1024_private_key *private_key);
|
|
636
697
|
|
|
637
|
-
OPENSSL_EXPORT bcm_status
|
|
638
|
-
|
|
639
|
-
|
|
698
|
+
OPENSSL_EXPORT bcm_status
|
|
699
|
+
BCM_mlkem1024_private_key_from_seed(MLKEM1024_private_key *out_private_key,
|
|
700
|
+
const uint8_t *seed, size_t seed_len);
|
|
640
701
|
|
|
641
|
-
OPENSSL_EXPORT bcm_infallible
|
|
642
|
-
|
|
643
|
-
|
|
702
|
+
OPENSSL_EXPORT bcm_infallible
|
|
703
|
+
BCM_mlkem1024_public_from_private(MLKEM1024_public_key *out_public_key,
|
|
704
|
+
const MLKEM1024_private_key *private_key);
|
|
705
|
+
|
|
706
|
+
OPENSSL_EXPORT const MLKEM1024_public_key *BCM_mlkem1024_public_of_private(
|
|
707
|
+
const MLKEM1024_private_key *private_key);
|
|
644
708
|
|
|
645
709
|
OPENSSL_EXPORT bcm_infallible
|
|
646
|
-
BCM_mlkem1024_encap(uint8_t out_ciphertext[
|
|
647
|
-
uint8_t out_shared_secret[
|
|
648
|
-
const
|
|
710
|
+
BCM_mlkem1024_encap(uint8_t out_ciphertext[MLKEM1024_CIPHERTEXT_BYTES],
|
|
711
|
+
uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES],
|
|
712
|
+
const MLKEM1024_public_key *public_key);
|
|
649
713
|
|
|
650
714
|
OPENSSL_EXPORT bcm_status
|
|
651
|
-
BCM_mlkem1024_decap(uint8_t out_shared_secret[
|
|
715
|
+
BCM_mlkem1024_decap(uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES],
|
|
652
716
|
const uint8_t *ciphertext, size_t ciphertext_len,
|
|
653
|
-
const
|
|
717
|
+
const MLKEM1024_private_key *private_key);
|
|
654
718
|
|
|
655
719
|
OPENSSL_EXPORT bcm_status BCM_mlkem1024_marshal_public_key(
|
|
656
|
-
CBB *out, const
|
|
720
|
+
CBB *out, const MLKEM1024_public_key *public_key);
|
|
657
721
|
|
|
658
|
-
|
|
659
|
-
|
|
722
|
+
// BCM_mlkem1024_public_keys_equal returns one if `a` and `b` are equal and zero
|
|
723
|
+
// otherwise.
|
|
724
|
+
int BCM_mlkem1024_public_keys_equal(const MLKEM1024_public_key *a,
|
|
725
|
+
const MLKEM1024_public_key *b);
|
|
726
|
+
|
|
727
|
+
OPENSSL_EXPORT bcm_status
|
|
728
|
+
BCM_mlkem1024_parse_public_key(MLKEM1024_public_key *out_public_key, CBS *in);
|
|
660
729
|
|
|
661
730
|
// BCM_mlkem1024_parse_private_key parses a private key, in NIST's format for
|
|
662
|
-
// private keys, from
|
|
731
|
+
// private keys, from `in` and writes the result to `out_private_key`. It
|
|
663
732
|
// returns one on success or zero on parse error or if there are trailing bytes
|
|
664
|
-
// in
|
|
665
|
-
// stored as seeds and parsed using
|
|
733
|
+
// in `in`. This format is verbose and should be avoided. Private keys should be
|
|
734
|
+
// stored as seeds and parsed using `BCM_mlkem1024_private_key_from_seed`.
|
|
666
735
|
OPENSSL_EXPORT bcm_status BCM_mlkem1024_parse_private_key(
|
|
667
|
-
|
|
736
|
+
MLKEM1024_private_key *out_private_key, CBS *in);
|
|
668
737
|
|
|
669
738
|
// BCM_mlkem1024_generate_key_external_seed is a deterministic function to
|
|
670
739
|
// create a pair of ML-KEM-1024 keys, using the supplied seed. The seed needs to
|
|
671
740
|
// be uniformly random. This function should only be used for tests, regular
|
|
672
|
-
// callers should use the non-deterministic
|
|
741
|
+
// callers should use the non-deterministic `BCM_mlkem1024_generate_key`
|
|
673
742
|
// directly.
|
|
674
743
|
OPENSSL_EXPORT bcm_infallible BCM_mlkem1024_generate_key_external_seed(
|
|
675
|
-
uint8_t out_encoded_public_key[
|
|
676
|
-
|
|
677
|
-
const uint8_t seed[
|
|
744
|
+
uint8_t out_encoded_public_key[MLKEM1024_PUBLIC_KEY_BYTES],
|
|
745
|
+
MLKEM1024_private_key *out_private_key,
|
|
746
|
+
const uint8_t seed[MLKEM_SEED_BYTES]);
|
|
678
747
|
|
|
679
|
-
// BCM_mlkem1024_encap_external_entropy behaves like
|
|
680
|
-
//
|
|
681
|
-
// decapsulating side will be able to recover
|
|
748
|
+
// BCM_mlkem1024_encap_external_entropy behaves like `MLKEM1024_encap`, but uses
|
|
749
|
+
// `MLKEM_ENCAP_ENTROPY` bytes of `entropy` for randomization. The
|
|
750
|
+
// decapsulating side will be able to recover `entropy` in full. This function
|
|
682
751
|
// should only be used for tests, regular callers should use the
|
|
683
|
-
// non-deterministic
|
|
752
|
+
// non-deterministic `BCM_mlkem1024_encap` directly.
|
|
684
753
|
OPENSSL_EXPORT bcm_infallible BCM_mlkem1024_encap_external_entropy(
|
|
685
|
-
uint8_t out_ciphertext[
|
|
686
|
-
uint8_t out_shared_secret[
|
|
687
|
-
const
|
|
754
|
+
uint8_t out_ciphertext[MLKEM1024_CIPHERTEXT_BYTES],
|
|
755
|
+
uint8_t out_shared_secret[MLKEM_SHARED_SECRET_BYTES],
|
|
756
|
+
const MLKEM1024_public_key *public_key,
|
|
688
757
|
const uint8_t entropy[BCM_MLKEM_ENCAP_ENTROPY]);
|
|
689
758
|
|
|
690
|
-
// BCM_mlkem1024_marshal_private_key serializes
|
|
759
|
+
// BCM_mlkem1024_marshal_private_key serializes `private_key` to `out` in the
|
|
691
760
|
// NIST format for ML-KEM-1024 private keys. (Note that one can also save just
|
|
692
|
-
// the seed value produced by
|
|
761
|
+
// the seed value produced by `BCM_mlkem1024_generate_key`, which is
|
|
693
762
|
// significantly smaller.)
|
|
694
763
|
OPENSSL_EXPORT bcm_status BCM_mlkem1024_marshal_private_key(
|
|
695
|
-
CBB *out, const
|
|
764
|
+
CBB *out, const MLKEM1024_private_key *private_key);
|
|
696
765
|
|
|
697
766
|
|
|
698
767
|
// SLH-DSA
|
|
699
768
|
|
|
700
769
|
// Output length of the hash function.
|
|
701
770
|
#define BCM_SLHDSA_SHA2_128S_N 16
|
|
771
|
+
#define BCM_SLHDSA_SHAKE_256F_N 32
|
|
702
772
|
|
|
703
773
|
// The number of bytes at the beginning of M', the augmented message, before the
|
|
704
774
|
// context.
|
|
@@ -707,23 +777,31 @@ OPENSSL_EXPORT bcm_status BCM_mlkem1024_marshal_private_key(
|
|
|
707
777
|
// SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES is the number of bytes in an
|
|
708
778
|
// SLH-DSA-SHA2-128s public key.
|
|
709
779
|
#define BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES 32
|
|
780
|
+
#define BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES 64
|
|
710
781
|
|
|
711
782
|
// BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES is the number of bytes in an
|
|
712
783
|
// SLH-DSA-SHA2-128s private key.
|
|
713
784
|
#define BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES 64
|
|
785
|
+
#define BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES 128
|
|
714
786
|
|
|
715
787
|
// BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES is the number of bytes in an
|
|
716
788
|
// SLH-DSA-SHA2-128s signature.
|
|
717
789
|
#define BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES 7856
|
|
790
|
+
#define BCM_SLHDSA_SHAKE_256F_SIGNATURE_BYTES 49856
|
|
718
791
|
|
|
719
792
|
// BCM_slhdsa_sha2_128s_generate_key_from_seed generates an SLH-DSA-SHA2-128s
|
|
720
|
-
// key pair from a 48-byte seed and writes the result to
|
|
721
|
-
//
|
|
793
|
+
// key pair from a 48-byte seed and writes the result to `out_public_key` and
|
|
794
|
+
// `out_secret_key`.
|
|
722
795
|
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_sha2_128s_generate_key_from_seed(
|
|
723
796
|
uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
|
|
724
797
|
uint8_t out_secret_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
|
|
725
798
|
const uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N]);
|
|
726
799
|
|
|
800
|
+
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_shake_256f_generate_key_from_seed(
|
|
801
|
+
uint8_t out_public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
802
|
+
uint8_t out_secret_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES],
|
|
803
|
+
const uint8_t seed[3 * BCM_SLHDSA_SHAKE_256F_N]);
|
|
804
|
+
|
|
727
805
|
// BCM_slhdsa_sha2_128s_generate_key_from_seed_fips does the same thing as
|
|
728
806
|
// `BCM_slhdsa_sha2_128s_generate_key_from_seed` but implements the required
|
|
729
807
|
// second check before generating a key by testing for nullptr arguments.
|
|
@@ -732,11 +810,16 @@ OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_generate_key_from_seed_fips(
|
|
|
732
810
|
uint8_t out_secret_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
|
|
733
811
|
const uint8_t seed[3 * BCM_SLHDSA_SHA2_128S_N]);
|
|
734
812
|
|
|
735
|
-
|
|
813
|
+
OPENSSL_EXPORT bcm_status BCM_slhdsa_shake_256f_generate_key_from_seed_fips(
|
|
814
|
+
uint8_t out_public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
815
|
+
uint8_t out_secret_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES],
|
|
816
|
+
const uint8_t seed[3 * BCM_SLHDSA_SHAKE_256F_N]);
|
|
817
|
+
|
|
818
|
+
// BCM_slhdsa_sha2_128s_sign_internal acts like `SLHDSA_SHA2_128S_sign` but
|
|
736
819
|
// accepts an explicit entropy input, which can be PK.seed (bytes 32..48 of
|
|
737
820
|
// the private key) to generate deterministic signatures. It also takes the
|
|
738
821
|
// input message in three parts so that the "internal" version of the signing
|
|
739
|
-
// function, from section 9.2, can be implemented. The
|
|
822
|
+
// function, from section 9.2, can be implemented. The `header` argument may be
|
|
740
823
|
// NULL to omit it.
|
|
741
824
|
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_sha2_128s_sign_internal(
|
|
742
825
|
uint8_t out_signature[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES],
|
|
@@ -745,9 +828,16 @@ OPENSSL_EXPORT bcm_infallible BCM_slhdsa_sha2_128s_sign_internal(
|
|
|
745
828
|
size_t context_len, const uint8_t *msg, size_t msg_len,
|
|
746
829
|
const uint8_t entropy[BCM_SLHDSA_SHA2_128S_N]);
|
|
747
830
|
|
|
748
|
-
|
|
831
|
+
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_shake_256f_sign_internal(
|
|
832
|
+
uint8_t out_signature[BCM_SLHDSA_SHAKE_256F_SIGNATURE_BYTES],
|
|
833
|
+
const uint8_t secret_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES],
|
|
834
|
+
const uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN], const uint8_t *context,
|
|
835
|
+
size_t context_len, const uint8_t *msg, size_t msg_len,
|
|
836
|
+
const uint8_t entropy[BCM_SLHDSA_SHAKE_256F_N]);
|
|
837
|
+
|
|
838
|
+
// BCM_slhdsa_sha2_128s_verify_internal acts like `SLHDSA_SHA2_128S_verify` but
|
|
749
839
|
// takes the input message in three parts so that the "internal" version of the
|
|
750
|
-
// verification function, from section 9.3, can be implemented. The
|
|
840
|
+
// verification function, from section 9.3, can be implemented. The `header`
|
|
751
841
|
// argument may be NULL to omit it.
|
|
752
842
|
OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_verify_internal(
|
|
753
843
|
const uint8_t *signature, size_t signature_len,
|
|
@@ -755,71 +845,109 @@ OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_verify_internal(
|
|
|
755
845
|
const uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN], const uint8_t *context,
|
|
756
846
|
size_t context_len, const uint8_t *msg, size_t msg_len);
|
|
757
847
|
|
|
848
|
+
OPENSSL_EXPORT bcm_status BCM_slhdsa_shake_256f_verify_internal(
|
|
849
|
+
const uint8_t *signature, size_t signature_len,
|
|
850
|
+
const uint8_t public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
851
|
+
const uint8_t header[BCM_SLHDSA_M_PRIME_HEADER_LEN], const uint8_t *context,
|
|
852
|
+
size_t context_len, const uint8_t *msg, size_t msg_len);
|
|
853
|
+
|
|
758
854
|
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_sha2_128s_generate_key(
|
|
759
855
|
uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
|
|
760
856
|
uint8_t out_private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]);
|
|
761
857
|
|
|
858
|
+
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_shake_256f_generate_key(
|
|
859
|
+
uint8_t out_public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
860
|
+
uint8_t out_private_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES]);
|
|
861
|
+
|
|
762
862
|
OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_generate_key_fips(
|
|
763
863
|
uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
|
|
764
864
|
uint8_t out_private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]);
|
|
765
865
|
|
|
866
|
+
OPENSSL_EXPORT bcm_status BCM_slhdsa_shake_256f_generate_key_fips(
|
|
867
|
+
uint8_t out_public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
868
|
+
uint8_t out_private_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES]);
|
|
869
|
+
|
|
766
870
|
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_sha2_128s_public_from_private(
|
|
767
871
|
uint8_t out_public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
|
|
768
872
|
const uint8_t private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES]);
|
|
769
873
|
|
|
874
|
+
OPENSSL_EXPORT bcm_infallible BCM_slhdsa_shake_256f_public_from_private(
|
|
875
|
+
uint8_t out_public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
876
|
+
const uint8_t private_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES]);
|
|
877
|
+
|
|
770
878
|
OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_sign(
|
|
771
879
|
uint8_t out_signature[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES],
|
|
772
880
|
const uint8_t private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
|
|
773
881
|
const uint8_t *msg, size_t msg_len, const uint8_t *context,
|
|
774
882
|
size_t context_len);
|
|
775
883
|
|
|
884
|
+
OPENSSL_EXPORT bcm_status BCM_slhdsa_shake_256f_sign(
|
|
885
|
+
uint8_t out_signature[BCM_SLHDSA_SHAKE_256F_SIGNATURE_BYTES],
|
|
886
|
+
const uint8_t private_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES],
|
|
887
|
+
const uint8_t *msg, size_t msg_len, const uint8_t *context,
|
|
888
|
+
size_t context_len);
|
|
889
|
+
|
|
776
890
|
OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_verify(
|
|
777
891
|
const uint8_t *signature, size_t signature_len,
|
|
778
892
|
const uint8_t public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
|
|
779
893
|
const uint8_t *msg, size_t msg_len, const uint8_t *context,
|
|
780
894
|
size_t context_len);
|
|
781
895
|
|
|
896
|
+
OPENSSL_EXPORT bcm_status BCM_slhdsa_shake_256f_verify(
|
|
897
|
+
const uint8_t *signature, size_t signature_len,
|
|
898
|
+
const uint8_t public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
899
|
+
const uint8_t *msg, size_t msg_len, const uint8_t *context,
|
|
900
|
+
size_t context_len);
|
|
901
|
+
|
|
782
902
|
OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_prehash_sign(
|
|
783
903
|
uint8_t out_signature[BCM_SLHDSA_SHA2_128S_SIGNATURE_BYTES],
|
|
784
904
|
const uint8_t private_key[BCM_SLHDSA_SHA2_128S_PRIVATE_KEY_BYTES],
|
|
785
905
|
const uint8_t *hashed_msg, size_t hashed_msg_len, int hash_nid,
|
|
786
906
|
const uint8_t *context, size_t context_len);
|
|
787
907
|
|
|
908
|
+
OPENSSL_EXPORT bcm_status BCM_slhdsa_shake_256f_prehash_sign(
|
|
909
|
+
uint8_t out_signature[BCM_SLHDSA_SHAKE_256F_SIGNATURE_BYTES],
|
|
910
|
+
const uint8_t private_key[BCM_SLHDSA_SHAKE_256F_PRIVATE_KEY_BYTES],
|
|
911
|
+
const uint8_t *hashed_msg, size_t hashed_msg_len, int hash_nid,
|
|
912
|
+
const uint8_t *context, size_t context_len);
|
|
913
|
+
|
|
788
914
|
OPENSSL_EXPORT bcm_status BCM_slhdsa_sha2_128s_prehash_verify(
|
|
789
915
|
const uint8_t *signature, size_t signature_len,
|
|
790
916
|
const uint8_t public_key[BCM_SLHDSA_SHA2_128S_PUBLIC_KEY_BYTES],
|
|
791
917
|
const uint8_t *hashed_msg, size_t hashed_msg_len, int hash_nid,
|
|
792
918
|
const uint8_t *context, size_t context_len);
|
|
793
919
|
|
|
920
|
+
OPENSSL_EXPORT bcm_status BCM_slhdsa_shake_256f_prehash_verify(
|
|
921
|
+
const uint8_t *signature, size_t signature_len,
|
|
922
|
+
const uint8_t public_key[BCM_SLHDSA_SHAKE_256F_PUBLIC_KEY_BYTES],
|
|
923
|
+
const uint8_t *hashed_msg, size_t hashed_msg_len, int hash_nid,
|
|
924
|
+
const uint8_t *context, size_t context_len);
|
|
925
|
+
|
|
794
926
|
|
|
795
927
|
// AES
|
|
796
928
|
|
|
797
|
-
// BCM_aes_encrypt encrypts a single block from
|
|
798
|
-
//
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
// BCM_aes_decrypt decrypts a single block from
|
|
802
|
-
//
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
// BCM_aes_set_encrypt_key configures
|
|
807
|
-
// key,
|
|
808
|
-
//
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
//
|
|
814
|
-
//
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
#if defined(__cplusplus)
|
|
822
|
-
} // extern C
|
|
823
|
-
#endif
|
|
929
|
+
// BCM_aes_encrypt encrypts a single block from `in` to `out` with `key`. The
|
|
930
|
+
// `in` and `out` pointers may overlap.
|
|
931
|
+
bcm_infallible BCM_aes_encrypt(const uint8_t *in, uint8_t *out,
|
|
932
|
+
const AES_KEY *key);
|
|
933
|
+
// BCM_aes_decrypt decrypts a single block from `in` to `out` with `key`. The
|
|
934
|
+
// `in` and `out` pointers may overlap.
|
|
935
|
+
bcm_infallible BCM_aes_decrypt(const uint8_t *in, uint8_t *out,
|
|
936
|
+
const AES_KEY *key);
|
|
937
|
+
|
|
938
|
+
// BCM_aes_set_encrypt_key configures `aeskey` to encrypt with the `bits`-bit
|
|
939
|
+
// key, `key`. `key` must point to `bits`/8 bytes. It will return failure if
|
|
940
|
+
// `bits` is an invalid AES key size.
|
|
941
|
+
bcm_status BCM_aes_set_encrypt_key(const uint8_t *key, unsigned bits,
|
|
942
|
+
AES_KEY *aeskey);
|
|
943
|
+
|
|
944
|
+
// BCM_aes_set_decrypt_key configures `aeskey` to decrypt with the `bits`-bit
|
|
945
|
+
// key, `key`. `key` must point to `bits`/8 bytes. It will return failure if
|
|
946
|
+
// `bits` is an invalid AES key size.
|
|
947
|
+
bcm_status BCM_aes_set_decrypt_key(const uint8_t *key, unsigned bits,
|
|
948
|
+
AES_KEY *aeskey);
|
|
949
|
+
|
|
950
|
+
BSSL_NAMESPACE_END
|
|
951
|
+
|
|
824
952
|
|
|
825
953
|
#endif // OPENSSL_HEADER_CRYPTO_FIPSMODULE_BCM_INTERFACE_H
|