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
|
@@ -17,18 +17,18 @@
|
|
|
17
17
|
|
|
18
18
|
#include <stdlib.h>
|
|
19
19
|
|
|
20
|
-
#include "../bcm_interface.h"
|
|
21
20
|
#include "../../internal.h"
|
|
21
|
+
#include "../bcm_interface.h"
|
|
22
22
|
|
|
23
|
-
extern "C" {
|
|
24
23
|
|
|
24
|
+
BSSL_NAMESPACE_BEGIN
|
|
25
25
|
|
|
26
26
|
// block128_f is the type of an AES block cipher implementation.
|
|
27
27
|
//
|
|
28
28
|
// Unlike upstream OpenSSL, it and the other functions in this file hard-code
|
|
29
|
-
//
|
|
30
|
-
// other than the original type. Thus we either must match
|
|
31
|
-
// type signature of
|
|
29
|
+
// `AES_KEY`. It is undefined in C to call a function pointer with anything
|
|
30
|
+
// other than the original type. Thus we either must match `block128_f` to the
|
|
31
|
+
// type signature of `BCM_aes_encrypt` and friends or pass in `void*` wrapper
|
|
32
32
|
// functions.
|
|
33
33
|
//
|
|
34
34
|
// These functions are called exclusively with AES, so we use the former.
|
|
@@ -39,9 +39,9 @@ typedef void (*block128_f)(const uint8_t in[16], uint8_t out[16],
|
|
|
39
39
|
typedef void (*ctr128_f)(const uint8_t *in, uint8_t *out, size_t blocks,
|
|
40
40
|
const AES_KEY *key, const uint8_t ivec[16]);
|
|
41
41
|
|
|
42
|
-
// aes_ctr_set_key initialises
|
|
43
|
-
// where
|
|
44
|
-
// set to a function that encrypts single blocks. If not NULL,
|
|
42
|
+
// aes_ctr_set_key initialises `*aes_key` using `key_bytes` bytes from `key`,
|
|
43
|
+
// where `key_bytes` must either be 16, 24 or 32. If not NULL, `*out_block` is
|
|
44
|
+
// set to a function that encrypts single blocks. If not NULL, `*out_is_hwaes`
|
|
45
45
|
// is set to whether the hardware AES implementation was used. It returns a
|
|
46
46
|
// function for optimised CTR-mode.
|
|
47
47
|
ctr128_f aes_ctr_set_key(AES_KEY *aes_key, int *out_is_hwaes,
|
|
@@ -57,28 +57,28 @@ ctr128_f aes_ctr_set_key(AES_KEY *aes_key, int *out_is_hwaes,
|
|
|
57
57
|
#define HWAES
|
|
58
58
|
#define HWAES_ECB
|
|
59
59
|
|
|
60
|
-
inline int hwaes_capable(
|
|
60
|
+
inline int hwaes_capable() { return CRYPTO_is_AESNI_capable(); }
|
|
61
61
|
|
|
62
62
|
#define VPAES
|
|
63
63
|
#define VPAES_CBC
|
|
64
|
-
inline int vpaes_capable(
|
|
64
|
+
inline int vpaes_capable() { return CRYPTO_is_SSSE3_capable(); }
|
|
65
65
|
|
|
66
66
|
#elif defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
|
|
67
67
|
#define HWAES
|
|
68
68
|
|
|
69
|
-
inline int hwaes_capable(
|
|
69
|
+
inline int hwaes_capable() { return CRYPTO_is_ARMv8_AES_capable(); }
|
|
70
70
|
|
|
71
71
|
#if defined(OPENSSL_ARM)
|
|
72
72
|
#define BSAES
|
|
73
73
|
#define VPAES
|
|
74
|
-
inline int bsaes_capable(
|
|
75
|
-
inline int vpaes_capable(
|
|
74
|
+
inline int bsaes_capable() { return CRYPTO_is_NEON_capable(); }
|
|
75
|
+
inline int vpaes_capable() { return CRYPTO_is_NEON_capable(); }
|
|
76
76
|
#endif
|
|
77
77
|
|
|
78
78
|
#if defined(OPENSSL_AARCH64)
|
|
79
79
|
#define VPAES
|
|
80
80
|
#define VPAES_CBC
|
|
81
|
-
inline int vpaes_capable(
|
|
81
|
+
inline int vpaes_capable() { return CRYPTO_is_NEON_capable(); }
|
|
82
82
|
#endif
|
|
83
83
|
|
|
84
84
|
#endif
|
|
@@ -88,19 +88,25 @@ inline int vpaes_capable(void) { return CRYPTO_is_NEON_capable(); }
|
|
|
88
88
|
|
|
89
89
|
#if defined(HWAES)
|
|
90
90
|
|
|
91
|
-
int aes_hw_set_encrypt_key(const uint8_t *user_key, int bits,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
void
|
|
96
|
-
|
|
97
|
-
void
|
|
98
|
-
|
|
91
|
+
extern "C" int aes_hw_set_encrypt_key(const uint8_t *user_key, int bits,
|
|
92
|
+
AES_KEY *key);
|
|
93
|
+
extern "C" int aes_hw_set_decrypt_key(const uint8_t *user_key, int bits,
|
|
94
|
+
AES_KEY *key);
|
|
95
|
+
extern "C" void aes_hw_encrypt(const uint8_t *in, uint8_t *out,
|
|
96
|
+
const AES_KEY *key);
|
|
97
|
+
extern "C" void aes_hw_decrypt(const uint8_t *in, uint8_t *out,
|
|
98
|
+
const AES_KEY *key);
|
|
99
|
+
extern "C" void aes_hw_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
|
100
|
+
size_t length, const AES_KEY *key,
|
|
101
|
+
uint8_t *ivec, int enc);
|
|
102
|
+
extern "C" void aes_hw_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out,
|
|
103
|
+
size_t len, const AES_KEY *key,
|
|
104
|
+
const uint8_t ivec[16]);
|
|
99
105
|
|
|
100
106
|
#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)
|
|
101
|
-
// On x86 and x86_64,
|
|
102
|
-
//
|
|
103
|
-
void aes_hw_encrypt_key_to_decrypt_key(AES_KEY *key);
|
|
107
|
+
// On x86 and x86_64, `aes_hw_set_decrypt_key` is implemented in terms of
|
|
108
|
+
// `aes_hw_set_encrypt_key` and a conversion function.
|
|
109
|
+
extern "C" void aes_hw_encrypt_key_to_decrypt_key(AES_KEY *key);
|
|
104
110
|
|
|
105
111
|
// There are two variants of this function, one which uses aeskeygenassist
|
|
106
112
|
// ("base") and one which uses aesenclast + pshufb ("alt"). aesenclast is
|
|
@@ -112,22 +118,23 @@ void aes_hw_encrypt_key_to_decrypt_key(AES_KEY *key);
|
|
|
112
118
|
// worthwhile. However, the aesenclast version requires SSSE3. SSSE3 long
|
|
113
119
|
// predates AES-NI, but it's not clear if AES-NI implies SSSE3. In OpenSSL, the
|
|
114
120
|
// CCM AES-NI assembly seems to assume it does.
|
|
115
|
-
inline int aes_hw_set_encrypt_key_alt_capable(
|
|
121
|
+
inline int aes_hw_set_encrypt_key_alt_capable() {
|
|
116
122
|
return hwaes_capable() && CRYPTO_is_SSSE3_capable();
|
|
117
123
|
}
|
|
118
|
-
inline int aes_hw_set_encrypt_key_alt_preferred(
|
|
124
|
+
inline int aes_hw_set_encrypt_key_alt_preferred() {
|
|
119
125
|
return hwaes_capable() && CRYPTO_is_AVX_capable();
|
|
120
126
|
}
|
|
121
|
-
int aes_hw_set_encrypt_key_base(const uint8_t *user_key, int bits,
|
|
122
|
-
|
|
123
|
-
int aes_hw_set_encrypt_key_alt(const uint8_t *user_key, int bits,
|
|
127
|
+
extern "C" int aes_hw_set_encrypt_key_base(const uint8_t *user_key, int bits,
|
|
128
|
+
AES_KEY *key);
|
|
129
|
+
extern "C" int aes_hw_set_encrypt_key_alt(const uint8_t *user_key, int bits,
|
|
130
|
+
AES_KEY *key);
|
|
124
131
|
#endif // OPENSSL_X86 || OPENSSL_X86_64
|
|
125
132
|
|
|
126
133
|
#else
|
|
127
134
|
|
|
128
135
|
// If HWAES isn't defined then we provide dummy functions for each of the hwaes
|
|
129
136
|
// functions.
|
|
130
|
-
inline int hwaes_capable(
|
|
137
|
+
inline int hwaes_capable() { return 0; }
|
|
131
138
|
|
|
132
139
|
inline int aes_hw_set_encrypt_key(const uint8_t *user_key, int bits,
|
|
133
140
|
AES_KEY *key) {
|
|
@@ -164,68 +171,53 @@ inline void aes_hw_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out,
|
|
|
164
171
|
|
|
165
172
|
|
|
166
173
|
#if defined(HWAES_ECB)
|
|
167
|
-
void aes_hw_ecb_encrypt(const uint8_t *in, uint8_t *out,
|
|
168
|
-
|
|
174
|
+
extern "C" void aes_hw_ecb_encrypt(const uint8_t *in, uint8_t *out,
|
|
175
|
+
size_t length, const AES_KEY *key, int enc);
|
|
169
176
|
#endif // HWAES_ECB
|
|
170
177
|
|
|
171
178
|
|
|
172
179
|
#if defined(BSAES)
|
|
173
|
-
// Note
|
|
174
|
-
void bsaes_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
180
|
+
// Note `bsaes_cbc_encrypt` requires `enc` to be zero.
|
|
181
|
+
extern "C" void bsaes_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
|
182
|
+
size_t length, const AES_KEY *key,
|
|
183
|
+
uint8_t ivec[16], int enc);
|
|
184
|
+
extern "C" void bsaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out,
|
|
185
|
+
size_t len, const AES_KEY *key,
|
|
186
|
+
const uint8_t ivec[16]);
|
|
178
187
|
// VPAES to BSAES conversions are available on all BSAES platforms.
|
|
179
|
-
void vpaes_encrypt_key_to_bsaes(AES_KEY *out_bsaes,
|
|
180
|
-
|
|
188
|
+
extern "C" void vpaes_encrypt_key_to_bsaes(AES_KEY *out_bsaes,
|
|
189
|
+
const AES_KEY *vpaes);
|
|
190
|
+
extern "C" void vpaes_decrypt_key_to_bsaes(AES_KEY *out_bsaes,
|
|
191
|
+
const AES_KEY *vpaes);
|
|
181
192
|
void vpaes_ctr32_encrypt_blocks_with_bsaes(const uint8_t *in, uint8_t *out,
|
|
182
193
|
size_t blocks, const AES_KEY *key,
|
|
183
194
|
const uint8_t ivec[16]);
|
|
184
|
-
#else
|
|
185
|
-
inline int bsaes_capable(void) { return 0; }
|
|
186
|
-
|
|
187
|
-
// On other platforms, bsaes_capable() will always return false and so the
|
|
188
|
-
// following will never be called.
|
|
189
|
-
inline void bsaes_cbc_encrypt(const uint8_t *in, uint8_t *out, size_t length,
|
|
190
|
-
const AES_KEY *key, uint8_t ivec[16], int enc) {
|
|
191
|
-
abort();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
inline void bsaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out,
|
|
195
|
-
size_t len, const AES_KEY *key,
|
|
196
|
-
const uint8_t ivec[16]) {
|
|
197
|
-
abort();
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
inline void vpaes_encrypt_key_to_bsaes(AES_KEY *out_bsaes,
|
|
201
|
-
const AES_KEY *vpaes) {
|
|
202
|
-
abort();
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
inline void vpaes_decrypt_key_to_bsaes(AES_KEY *out_bsaes,
|
|
206
|
-
const AES_KEY *vpaes) {
|
|
207
|
-
abort();
|
|
208
|
-
}
|
|
209
195
|
#endif // !BSAES
|
|
210
196
|
|
|
211
197
|
|
|
212
198
|
#if defined(VPAES)
|
|
213
199
|
// On platforms where VPAES gets defined (just above), then these functions are
|
|
214
200
|
// provided by asm.
|
|
215
|
-
int vpaes_set_encrypt_key(const uint8_t *userKey, int bits,
|
|
216
|
-
|
|
201
|
+
extern "C" int vpaes_set_encrypt_key(const uint8_t *userKey, int bits,
|
|
202
|
+
AES_KEY *key);
|
|
203
|
+
extern "C" int vpaes_set_decrypt_key(const uint8_t *userKey, int bits,
|
|
204
|
+
AES_KEY *key);
|
|
217
205
|
|
|
218
|
-
void vpaes_encrypt(const uint8_t *in, uint8_t *out,
|
|
219
|
-
|
|
206
|
+
extern "C" void vpaes_encrypt(const uint8_t *in, uint8_t *out,
|
|
207
|
+
const AES_KEY *key);
|
|
208
|
+
extern "C" void vpaes_decrypt(const uint8_t *in, uint8_t *out,
|
|
209
|
+
const AES_KEY *key);
|
|
220
210
|
|
|
221
211
|
#if defined(VPAES_CBC)
|
|
222
|
-
void vpaes_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
|
223
|
-
|
|
212
|
+
extern "C" void vpaes_cbc_encrypt(const uint8_t *in, uint8_t *out,
|
|
213
|
+
size_t length, const AES_KEY *key,
|
|
214
|
+
uint8_t *ivec, int enc);
|
|
224
215
|
#endif
|
|
225
|
-
void vpaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out,
|
|
226
|
-
|
|
216
|
+
extern "C" void vpaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out,
|
|
217
|
+
size_t len, const AES_KEY *key,
|
|
218
|
+
const uint8_t ivec[16]);
|
|
227
219
|
#else
|
|
228
|
-
inline int vpaes_capable(
|
|
220
|
+
inline int vpaes_capable() { return 0; }
|
|
229
221
|
|
|
230
222
|
// On other platforms, vpaes_capable() will always return false and so the
|
|
231
223
|
// following will never be called.
|
|
@@ -272,8 +264,8 @@ void aes_nohw_cbc_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
|
272
264
|
inline void CRYPTO_xor16(uint8_t out[16], const uint8_t a[16],
|
|
273
265
|
const uint8_t b[16]) {
|
|
274
266
|
// TODO(davidben): Ideally we'd leave this to the compiler, which could use
|
|
275
|
-
// vector registers, etc. But the compiler doesn't know that
|
|
276
|
-
// cannot partially alias.
|
|
267
|
+
// vector registers, etc. But the compiler doesn't know that `in` and `out`
|
|
268
|
+
// cannot partially alias. `restrict` is slightly two strict (we allow exact
|
|
277
269
|
// aliasing), but perhaps in-place could be a separate function?
|
|
278
270
|
static_assert(16 % sizeof(crypto_word_t) == 0,
|
|
279
271
|
"block cannot be evenly divided into words");
|
|
@@ -287,12 +279,12 @@ inline void CRYPTO_xor16(uint8_t out[16], const uint8_t a[16],
|
|
|
287
279
|
// CTR.
|
|
288
280
|
|
|
289
281
|
// CRYPTO_ctr128_encrypt_ctr32 encrypts (or decrypts, it's the same in CTR mode)
|
|
290
|
-
//
|
|
291
|
-
// requirement that
|
|
292
|
-
// stored in
|
|
293
|
-
// call. The counter is a 128-bit, big-endian value in
|
|
282
|
+
// `len` bytes from `in` to `out` using `block` in counter mode. There's no
|
|
283
|
+
// requirement that `len` be a multiple of any value and any partial blocks are
|
|
284
|
+
// stored in `ecount_buf` and `*num`, which must be zeroed before the initial
|
|
285
|
+
// call. The counter is a 128-bit, big-endian value in `ivec` and is
|
|
294
286
|
// incremented by this function. If the counter overflows, it wraps around.
|
|
295
|
-
//
|
|
287
|
+
// `ctr` must be a function that performs CTR mode but only deals with the lower
|
|
296
288
|
// 32 bits of the counter.
|
|
297
289
|
void CRYPTO_ctr128_encrypt_ctr32(const uint8_t *in, uint8_t *out, size_t len,
|
|
298
290
|
const AES_KEY *key, uint8_t ivec[16],
|
|
@@ -302,10 +294,10 @@ void CRYPTO_ctr128_encrypt_ctr32(const uint8_t *in, uint8_t *out, size_t len,
|
|
|
302
294
|
|
|
303
295
|
// GCM.
|
|
304
296
|
//
|
|
305
|
-
// This API differs from the upstream API slightly. The
|
|
306
|
-
// not have a
|
|
307
|
-
// Instead, every function takes a
|
|
308
|
-
// can be safely copied. Additionally,
|
|
297
|
+
// This API differs from the upstream API slightly. The `GCM128_CONTEXT` does
|
|
298
|
+
// not have a `key` pointer that points to the key as upstream's version does.
|
|
299
|
+
// Instead, every function takes a `key` parameter. This way `GCM128_CONTEXT`
|
|
300
|
+
// can be safely copied. Additionally, `gcm_key` is split into a separate
|
|
309
301
|
// struct.
|
|
310
302
|
|
|
311
303
|
// gcm_impl_t specifies an assembly implementation of AES-GCM.
|
|
@@ -315,16 +307,17 @@ enum gcm_impl_t {
|
|
|
315
307
|
gcm_x86_vaes_avx2,
|
|
316
308
|
gcm_x86_vaes_avx512,
|
|
317
309
|
gcm_arm64_aes,
|
|
310
|
+
gcm_arm64_aes_eor3,
|
|
318
311
|
};
|
|
319
312
|
|
|
320
313
|
typedef struct { uint64_t hi,lo; } u128;
|
|
321
314
|
|
|
322
|
-
// gmult_func multiplies
|
|
323
|
-
//
|
|
315
|
+
// gmult_func multiplies `Xi` by the GCM key and writes the result back to
|
|
316
|
+
// `Xi`.
|
|
324
317
|
typedef void (*gmult_func)(uint8_t Xi[16], const u128 Htable[16]);
|
|
325
318
|
|
|
326
|
-
// ghash_func repeatedly multiplies
|
|
327
|
-
//
|
|
319
|
+
// ghash_func repeatedly multiplies `Xi` by the GCM key and adds in blocks from
|
|
320
|
+
// `inp`. The result is written back to `Xi` and the `len` argument must be a
|
|
328
321
|
// multiple of 16.
|
|
329
322
|
typedef void (*ghash_func)(uint8_t Xi[16], const u128 Htable[16],
|
|
330
323
|
const uint8_t *inp, size_t len);
|
|
@@ -358,51 +351,51 @@ typedef struct {
|
|
|
358
351
|
#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)
|
|
359
352
|
// crypto_gcm_clmul_enabled returns one if the CLMUL implementation of GCM is
|
|
360
353
|
// used.
|
|
361
|
-
int crypto_gcm_clmul_enabled(
|
|
354
|
+
int crypto_gcm_clmul_enabled();
|
|
362
355
|
#endif
|
|
363
356
|
|
|
364
|
-
// CRYPTO_ghash_init writes a precomputed table of powers of
|
|
365
|
-
//
|
|
357
|
+
// CRYPTO_ghash_init writes a precomputed table of powers of `gcm_key` to
|
|
358
|
+
// `out_table` and sets `*out_mult` and `*out_hash` to (potentially hardware
|
|
366
359
|
// accelerated) functions for performing operations in the GHASH field.
|
|
367
360
|
void CRYPTO_ghash_init(gmult_func *out_mult, ghash_func *out_hash,
|
|
368
361
|
u128 out_table[16], const uint8_t gcm_key[16]);
|
|
369
362
|
|
|
370
|
-
// CRYPTO_gcm128_init_aes_key initialises
|
|
363
|
+
// CRYPTO_gcm128_init_aes_key initialises `gcm_key` to with AES key `key`.
|
|
371
364
|
void CRYPTO_gcm128_init_aes_key(GCM128_KEY *gcm_key, const uint8_t *key,
|
|
372
365
|
size_t key_bytes);
|
|
373
366
|
|
|
374
|
-
// CRYPTO_gcm128_init_ctx initializes
|
|
367
|
+
// CRYPTO_gcm128_init_ctx initializes `ctx` to encrypt with `key` and `iv`.
|
|
375
368
|
void CRYPTO_gcm128_init_ctx(const GCM128_KEY *key, GCM128_CONTEXT *ctx,
|
|
376
369
|
const uint8_t *iv, size_t iv_len);
|
|
377
370
|
|
|
378
371
|
// CRYPTO_gcm128_aad adds to the authenticated data for an instance of GCM.
|
|
379
|
-
// This must be called before and data is encrypted.
|
|
380
|
-
// value that was passed to
|
|
372
|
+
// This must be called before and data is encrypted. `key` must be the same
|
|
373
|
+
// value that was passed to `CRYPTO_gcm128_init_ctx`. It returns one on success
|
|
381
374
|
// and zero otherwise.
|
|
382
375
|
int CRYPTO_gcm128_aad(const GCM128_KEY *key, GCM128_CONTEXT *ctx,
|
|
383
376
|
const uint8_t *aad, size_t aad_len);
|
|
384
377
|
|
|
385
|
-
// CRYPTO_gcm128_encrypt encrypts
|
|
386
|
-
// the same value that was passed to
|
|
378
|
+
// CRYPTO_gcm128_encrypt encrypts `len` bytes from `in` to `out`. `key` must be
|
|
379
|
+
// the same value that was passed to `CRYPTO_gcm128_init_ctx`. It returns one on
|
|
387
380
|
// success and zero otherwise.
|
|
388
381
|
int CRYPTO_gcm128_encrypt(const GCM128_KEY *key, GCM128_CONTEXT *ctx,
|
|
389
382
|
const uint8_t *in, uint8_t *out, size_t len);
|
|
390
383
|
|
|
391
|
-
// CRYPTO_gcm128_decrypt decrypts
|
|
392
|
-
// the same value that was passed to
|
|
384
|
+
// CRYPTO_gcm128_decrypt decrypts `len` bytes from `in` to `out`. `key` must be
|
|
385
|
+
// the same value that was passed to `CRYPTO_gcm128_init_ctx`. It returns one on
|
|
393
386
|
// success and zero otherwise.
|
|
394
387
|
int CRYPTO_gcm128_decrypt(const GCM128_KEY *key, GCM128_CONTEXT *ctx,
|
|
395
388
|
const uint8_t *in, uint8_t *out, size_t len);
|
|
396
389
|
|
|
397
390
|
// CRYPTO_gcm128_finish calculates the authenticator and compares it against
|
|
398
|
-
//
|
|
399
|
-
//
|
|
391
|
+
// `len` bytes of `tag`. `key` must be the same value that was passed to
|
|
392
|
+
// `CRYPTO_gcm128_init_ctx`. It returns one on success and zero otherwise.
|
|
400
393
|
int CRYPTO_gcm128_finish(const GCM128_KEY *key, GCM128_CONTEXT *ctx,
|
|
401
394
|
const uint8_t *tag, size_t len);
|
|
402
395
|
|
|
403
|
-
// CRYPTO_gcm128_tag calculates the authenticator and copies it into
|
|
404
|
-
// The minimum of
|
|
405
|
-
// same value that was passed to
|
|
396
|
+
// CRYPTO_gcm128_tag calculates the authenticator and copies it into `tag`.
|
|
397
|
+
// The minimum of `len` and 16 bytes are copied into `tag`. `key` must be the
|
|
398
|
+
// same value that was passed to `CRYPTO_gcm128_init_ctx`.
|
|
406
399
|
void CRYPTO_gcm128_tag(const GCM128_KEY *key, GCM128_CONTEXT *ctx, uint8_t *tag,
|
|
407
400
|
size_t len);
|
|
408
401
|
|
|
@@ -418,53 +411,65 @@ void gcm_ghash_nohw(uint8_t Xi[16], const u128 Htable[16], const uint8_t *inp,
|
|
|
418
411
|
|
|
419
412
|
#if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)
|
|
420
413
|
#define GCM_FUNCREF
|
|
421
|
-
void gcm_init_clmul(u128 Htable[16], const uint64_t Xi[2]);
|
|
422
|
-
void gcm_gmult_clmul(uint8_t Xi[16], const u128 Htable[16]);
|
|
423
|
-
void gcm_ghash_clmul(uint8_t Xi[16], const u128 Htable[16],
|
|
424
|
-
|
|
414
|
+
extern "C" void gcm_init_clmul(u128 Htable[16], const uint64_t Xi[2]);
|
|
415
|
+
extern "C" void gcm_gmult_clmul(uint8_t Xi[16], const u128 Htable[16]);
|
|
416
|
+
extern "C" void gcm_ghash_clmul(uint8_t Xi[16], const u128 Htable[16],
|
|
417
|
+
const uint8_t *inp, size_t len);
|
|
425
418
|
|
|
426
419
|
void gcm_init_ssse3(u128 Htable[16], const uint64_t Xi[2]);
|
|
427
|
-
void gcm_gmult_ssse3(uint8_t Xi[16], const u128 Htable[16]);
|
|
428
|
-
void gcm_ghash_ssse3(uint8_t Xi[16], const u128 Htable[16],
|
|
429
|
-
|
|
420
|
+
extern "C" void gcm_gmult_ssse3(uint8_t Xi[16], const u128 Htable[16]);
|
|
421
|
+
extern "C" void gcm_ghash_ssse3(uint8_t Xi[16], const u128 Htable[16],
|
|
422
|
+
const uint8_t *in, size_t len);
|
|
430
423
|
|
|
431
424
|
#if defined(OPENSSL_X86_64)
|
|
432
425
|
#define GHASH_ASM_X86_64
|
|
433
|
-
void gcm_init_avx(u128 Htable[16], const uint64_t Xi[2]);
|
|
434
|
-
void gcm_gmult_avx(uint8_t Xi[16], const u128 Htable[16]);
|
|
435
|
-
void gcm_ghash_avx(uint8_t Xi[16], const u128 Htable[16],
|
|
436
|
-
|
|
426
|
+
extern "C" void gcm_init_avx(u128 Htable[16], const uint64_t Xi[2]);
|
|
427
|
+
extern "C" void gcm_gmult_avx(uint8_t Xi[16], const u128 Htable[16]);
|
|
428
|
+
extern "C" void gcm_ghash_avx(uint8_t Xi[16], const u128 Htable[16],
|
|
429
|
+
const uint8_t *in, size_t len);
|
|
437
430
|
|
|
438
431
|
#define HW_GCM
|
|
439
|
-
size_t aesni_gcm_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
440
|
-
|
|
441
|
-
const u128 Htable[16], uint8_t Xi[16]);
|
|
442
|
-
size_t aesni_gcm_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
443
|
-
const AES_KEY *key, uint8_t ivec[16],
|
|
444
|
-
const u128 Htable[16], uint8_t Xi[16]);
|
|
445
|
-
|
|
446
|
-
void gcm_init_vpclmulqdq_avx2(u128 Htable[16], const uint64_t H[2]);
|
|
447
|
-
void gcm_gmult_vpclmulqdq_avx2(uint8_t Xi[16], const u128 Htable[16]);
|
|
448
|
-
void gcm_ghash_vpclmulqdq_avx2(uint8_t Xi[16], const u128 Htable[16],
|
|
449
|
-
const uint8_t *in, size_t len);
|
|
450
|
-
void aes_gcm_enc_update_vaes_avx2(const uint8_t *in, uint8_t *out, size_t len,
|
|
451
|
-
const AES_KEY *key, const uint8_t ivec[16],
|
|
452
|
-
const u128 Htable[16], uint8_t Xi[16]);
|
|
453
|
-
void aes_gcm_dec_update_vaes_avx2(const uint8_t *in, uint8_t *out, size_t len,
|
|
454
|
-
const AES_KEY *key, const uint8_t ivec[16],
|
|
455
|
-
const u128 Htable[16], uint8_t Xi[16]);
|
|
456
|
-
|
|
457
|
-
void gcm_init_vpclmulqdq_avx512(u128 Htable[16], const uint64_t H[2]);
|
|
458
|
-
void gcm_gmult_vpclmulqdq_avx512(uint8_t Xi[16], const u128 Htable[16]);
|
|
459
|
-
void gcm_ghash_vpclmulqdq_avx512(uint8_t Xi[16], const u128 Htable[16],
|
|
460
|
-
const uint8_t *in, size_t len);
|
|
461
|
-
void aes_gcm_enc_update_vaes_avx512(const uint8_t *in, uint8_t *out, size_t len,
|
|
462
|
-
const AES_KEY *key, const uint8_t ivec[16],
|
|
432
|
+
extern "C" size_t aesni_gcm_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
433
|
+
const AES_KEY *key, uint8_t ivec[16],
|
|
463
434
|
const u128 Htable[16], uint8_t Xi[16]);
|
|
464
|
-
|
|
465
|
-
const AES_KEY *key,
|
|
435
|
+
extern "C" size_t aesni_gcm_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
436
|
+
const AES_KEY *key, uint8_t ivec[16],
|
|
466
437
|
const u128 Htable[16], uint8_t Xi[16]);
|
|
467
438
|
|
|
439
|
+
extern "C" void gcm_init_vpclmulqdq_avx2(u128 Htable[16], const uint64_t H[2]);
|
|
440
|
+
extern "C" void gcm_gmult_vpclmulqdq_avx2(uint8_t Xi[16],
|
|
441
|
+
const u128 Htable[16]);
|
|
442
|
+
extern "C" void gcm_ghash_vpclmulqdq_avx2(uint8_t Xi[16], const u128 Htable[16],
|
|
443
|
+
const uint8_t *in, size_t len);
|
|
444
|
+
extern "C" void aes_gcm_enc_update_vaes_avx2(const uint8_t *in, uint8_t *out,
|
|
445
|
+
size_t len, const AES_KEY *key,
|
|
446
|
+
const uint8_t ivec[16],
|
|
447
|
+
const u128 Htable[16],
|
|
448
|
+
uint8_t Xi[16]);
|
|
449
|
+
extern "C" void aes_gcm_dec_update_vaes_avx2(const uint8_t *in, uint8_t *out,
|
|
450
|
+
size_t len, const AES_KEY *key,
|
|
451
|
+
const uint8_t ivec[16],
|
|
452
|
+
const u128 Htable[16],
|
|
453
|
+
uint8_t Xi[16]);
|
|
454
|
+
|
|
455
|
+
extern "C" void gcm_init_vpclmulqdq_avx512(u128 Htable[16],
|
|
456
|
+
const uint64_t H[2]);
|
|
457
|
+
extern "C" void gcm_gmult_vpclmulqdq_avx512(uint8_t Xi[16],
|
|
458
|
+
const u128 Htable[16]);
|
|
459
|
+
extern "C" void gcm_ghash_vpclmulqdq_avx512(uint8_t Xi[16],
|
|
460
|
+
const u128 Htable[16],
|
|
461
|
+
const uint8_t *in, size_t len);
|
|
462
|
+
extern "C" void aes_gcm_enc_update_vaes_avx512(const uint8_t *in, uint8_t *out,
|
|
463
|
+
size_t len, const AES_KEY *key,
|
|
464
|
+
const uint8_t ivec[16],
|
|
465
|
+
const u128 Htable[16],
|
|
466
|
+
uint8_t Xi[16]);
|
|
467
|
+
extern "C" void aes_gcm_dec_update_vaes_avx512(const uint8_t *in, uint8_t *out,
|
|
468
|
+
size_t len, const AES_KEY *key,
|
|
469
|
+
const uint8_t ivec[16],
|
|
470
|
+
const u128 Htable[16],
|
|
471
|
+
uint8_t Xi[16]);
|
|
472
|
+
|
|
468
473
|
#endif // OPENSSL_X86_64
|
|
469
474
|
|
|
470
475
|
#if defined(OPENSSL_X86)
|
|
@@ -476,29 +481,41 @@ void aes_gcm_dec_update_vaes_avx512(const uint8_t *in, uint8_t *out, size_t len,
|
|
|
476
481
|
#define GHASH_ASM_ARM
|
|
477
482
|
#define GCM_FUNCREF
|
|
478
483
|
|
|
479
|
-
inline int gcm_pmull_capable(
|
|
484
|
+
inline int gcm_pmull_capable() { return CRYPTO_is_ARMv8_PMULL_capable(); }
|
|
485
|
+
inline int gcm_eor3_capable() {
|
|
486
|
+
// SHA3 and EOR3 belong to the same ISA extension.
|
|
487
|
+
return CRYPTO_is_ARMv8_PMULL_capable() && CRYPTO_is_ARMv8_SHA3_capable();
|
|
488
|
+
}
|
|
480
489
|
|
|
481
|
-
void gcm_init_v8(u128 Htable[16], const uint64_t H[2]);
|
|
482
|
-
void gcm_gmult_v8(uint8_t Xi[16], const u128 Htable[16]);
|
|
483
|
-
void gcm_ghash_v8(uint8_t Xi[16], const u128 Htable[16],
|
|
484
|
-
|
|
490
|
+
extern "C" void gcm_init_v8(u128 Htable[16], const uint64_t H[2]);
|
|
491
|
+
extern "C" void gcm_gmult_v8(uint8_t Xi[16], const u128 Htable[16]);
|
|
492
|
+
extern "C" void gcm_ghash_v8(uint8_t Xi[16], const u128 Htable[16],
|
|
493
|
+
const uint8_t *inp, size_t len);
|
|
485
494
|
|
|
486
|
-
inline int gcm_neon_capable(
|
|
495
|
+
inline int gcm_neon_capable() { return CRYPTO_is_NEON_capable(); }
|
|
487
496
|
|
|
488
|
-
void gcm_init_neon(u128 Htable[16], const uint64_t H[2]);
|
|
489
|
-
void gcm_gmult_neon(uint8_t Xi[16], const u128 Htable[16]);
|
|
490
|
-
void gcm_ghash_neon(uint8_t Xi[16], const u128 Htable[16],
|
|
491
|
-
|
|
497
|
+
extern "C" void gcm_init_neon(u128 Htable[16], const uint64_t H[2]);
|
|
498
|
+
extern "C" void gcm_gmult_neon(uint8_t Xi[16], const u128 Htable[16]);
|
|
499
|
+
extern "C" void gcm_ghash_neon(uint8_t Xi[16], const u128 Htable[16],
|
|
500
|
+
const uint8_t *inp, size_t len);
|
|
492
501
|
|
|
493
502
|
#if defined(OPENSSL_AARCH64)
|
|
494
503
|
#define HW_GCM
|
|
495
504
|
// These functions are defined in aesv8-gcm-armv8.pl.
|
|
496
|
-
void aes_gcm_enc_kernel(const uint8_t *in, uint64_t in_bits,
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
void aes_gcm_dec_kernel(const uint8_t *in, uint64_t in_bits,
|
|
500
|
-
|
|
501
|
-
|
|
505
|
+
extern "C" void aes_gcm_enc_kernel(const uint8_t *in, uint64_t in_bits,
|
|
506
|
+
void *out, void *Xi, uint8_t *ivec,
|
|
507
|
+
const AES_KEY *key, const u128 Htable[16]);
|
|
508
|
+
extern "C" void aes_gcm_dec_kernel(const uint8_t *in, uint64_t in_bits,
|
|
509
|
+
void *out, void *Xi, uint8_t *ivec,
|
|
510
|
+
const AES_KEY *key, const u128 Htable[16]);
|
|
511
|
+
extern "C" void aes_gcm_enc_kernel_eor3(const uint8_t *in, uint64_t in_bits,
|
|
512
|
+
void *out, void *Xi, uint8_t *ivec,
|
|
513
|
+
const AES_KEY *key,
|
|
514
|
+
const u128 Htable[16]);
|
|
515
|
+
extern "C" void aes_gcm_dec_kernel_eor3(const uint8_t *in, uint64_t in_bits,
|
|
516
|
+
void *out, void *Xi, uint8_t *ivec,
|
|
517
|
+
const AES_KEY *key,
|
|
518
|
+
const u128 Htable[16]);
|
|
502
519
|
#endif
|
|
503
520
|
|
|
504
521
|
#endif
|
|
@@ -511,7 +528,7 @@ void aes_gcm_dec_kernel(const uint8_t *in, uint64_t in_bits, void *out,
|
|
|
511
528
|
typedef void (*cbc128_f)(const uint8_t *in, uint8_t *out, size_t len,
|
|
512
529
|
const AES_KEY *key, uint8_t ivec[16], int enc);
|
|
513
530
|
|
|
514
|
-
// CRYPTO_cbc128_encrypt encrypts
|
|
531
|
+
// CRYPTO_cbc128_encrypt encrypts `len` bytes from `in` to `out` using the
|
|
515
532
|
// given IV and block cipher in CBC mode. The input need not be a multiple of
|
|
516
533
|
// 128 bits long, but the output will round up to the nearest 128 bit multiple,
|
|
517
534
|
// zero padding the input if needed. The IV will be updated on return.
|
|
@@ -519,10 +536,10 @@ void CRYPTO_cbc128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
|
519
536
|
const AES_KEY *key, uint8_t ivec[16],
|
|
520
537
|
block128_f block);
|
|
521
538
|
|
|
522
|
-
// CRYPTO_cbc128_decrypt decrypts
|
|
523
|
-
// given IV and block cipher in CBC mode. If
|
|
539
|
+
// CRYPTO_cbc128_decrypt decrypts `len` bytes from `in` to `out` using the
|
|
540
|
+
// given IV and block cipher in CBC mode. If `len` is not a multiple of 128
|
|
524
541
|
// bits then only that many bytes will be written, but a multiple of 128 bits
|
|
525
|
-
// is always read from
|
|
542
|
+
// is always read from `in`. The IV will be updated on return.
|
|
526
543
|
void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
527
544
|
const AES_KEY *key, uint8_t ivec[16],
|
|
528
545
|
block128_f block);
|
|
@@ -531,9 +548,9 @@ void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
|
531
548
|
// OFB.
|
|
532
549
|
|
|
533
550
|
// CRYPTO_ofb128_encrypt encrypts (or decrypts, it's the same with OFB mode)
|
|
534
|
-
//
|
|
535
|
-
// requirement that
|
|
536
|
-
// stored in
|
|
551
|
+
// `len` bytes from `in` to `out` using `block` in OFB mode. There's no
|
|
552
|
+
// requirement that `len` be a multiple of any value and any partial blocks are
|
|
553
|
+
// stored in `ivec` and `*num`, the latter must be zero before the initial
|
|
537
554
|
// call.
|
|
538
555
|
void CRYPTO_ofb128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
539
556
|
const AES_KEY *key, uint8_t ivec[16], unsigned *num,
|
|
@@ -542,24 +559,24 @@ void CRYPTO_ofb128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
|
542
559
|
|
|
543
560
|
// CFB.
|
|
544
561
|
|
|
545
|
-
// CRYPTO_cfb128_encrypt encrypts (or decrypts, if
|
|
546
|
-
// from
|
|
547
|
-
//
|
|
548
|
-
// and
|
|
562
|
+
// CRYPTO_cfb128_encrypt encrypts (or decrypts, if `enc` is zero) `len` bytes
|
|
563
|
+
// from `in` to `out` using `block` in CFB mode. There's no requirement that
|
|
564
|
+
// `len` be a multiple of any value and any partial blocks are stored in `ivec`
|
|
565
|
+
// and `*num`, the latter must be zero before the initial call.
|
|
549
566
|
void CRYPTO_cfb128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
550
567
|
const AES_KEY *key, uint8_t ivec[16], unsigned *num,
|
|
551
568
|
int enc, block128_f block);
|
|
552
569
|
|
|
553
|
-
// CRYPTO_cfb128_8_encrypt encrypts (or decrypts, if
|
|
554
|
-
// from
|
|
555
|
-
//
|
|
570
|
+
// CRYPTO_cfb128_8_encrypt encrypts (or decrypts, if `enc` is zero) `len` bytes
|
|
571
|
+
// from `in` to `out` using `block` in CFB-8 mode. Prior to the first call
|
|
572
|
+
// `num` should be set to zero.
|
|
556
573
|
void CRYPTO_cfb128_8_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
557
574
|
const AES_KEY *key, uint8_t ivec[16],
|
|
558
575
|
unsigned *num, int enc, block128_f block);
|
|
559
576
|
|
|
560
|
-
// CRYPTO_cfb128_1_encrypt encrypts (or decrypts, if
|
|
561
|
-
// from
|
|
562
|
-
//
|
|
577
|
+
// CRYPTO_cfb128_1_encrypt encrypts (or decrypts, if `enc` is zero) `len` bytes
|
|
578
|
+
// from `in` to `out` using `block` in CFB-1 mode. Prior to the first call
|
|
579
|
+
// `num` should be set to zero.
|
|
563
580
|
void CRYPTO_cfb128_1_encrypt(const uint8_t *in, uint8_t *out, size_t bits,
|
|
564
581
|
const AES_KEY *key, uint8_t ivec[16],
|
|
565
582
|
unsigned *num, int enc, block128_f block);
|
|
@@ -568,7 +585,6 @@ size_t CRYPTO_cts128_encrypt_block(const uint8_t *in, uint8_t *out, size_t len,
|
|
|
568
585
|
const AES_KEY *key, uint8_t ivec[16],
|
|
569
586
|
block128_f block);
|
|
570
587
|
|
|
571
|
-
|
|
572
|
-
} // extern C
|
|
588
|
+
BSSL_NAMESPACE_END
|
|
573
589
|
|
|
574
590
|
#endif // OPENSSL_HEADER_CRYPTO_FIPSMODULE_AES_INTERNAL_H
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
#include "../service_indicator/internal.h"
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
using namespace bssl;
|
|
29
|
+
|
|
28
30
|
// kDefaultIV is the default IV value given in RFC 3394, 2.2.3.1.
|
|
29
31
|
static const uint8_t kDefaultIV[] = {
|
|
30
32
|
0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6,
|
|
@@ -41,7 +43,7 @@ int AES_wrap_key(const AES_KEY *key, const uint8_t *iv, uint8_t *out,
|
|
|
41
43
|
return -1;
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
if (iv ==
|
|
46
|
+
if (iv == nullptr) {
|
|
45
47
|
iv = kDefaultIV;
|
|
46
48
|
}
|
|
47
49
|
|
|
@@ -113,7 +115,7 @@ int AES_unwrap_key(const AES_KEY *key, const uint8_t *iv, uint8_t *out,
|
|
|
113
115
|
return -1;
|
|
114
116
|
}
|
|
115
117
|
|
|
116
|
-
if (iv ==
|
|
118
|
+
if (iv == nullptr) {
|
|
117
119
|
iv = kDefaultIV;
|
|
118
120
|
}
|
|
119
121
|
if (CRYPTO_memcmp(calculated_iv, iv, 8) != 0) {
|
|
@@ -152,7 +154,7 @@ int AES_wrap_key_padded(const AES_KEY *key, uint8_t *out, size_t *out_len,
|
|
|
152
154
|
}
|
|
153
155
|
|
|
154
156
|
uint8_t *padded_in = reinterpret_cast<uint8_t *>(OPENSSL_malloc(padded_len));
|
|
155
|
-
if (padded_in ==
|
|
157
|
+
if (padded_in == nullptr) {
|
|
156
158
|
return 0;
|
|
157
159
|
}
|
|
158
160
|
assert(padded_len >= 8);
|