grpc 1.84.1 → 1.85.0
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 +76 -51
- 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
|
@@ -27,7 +27,7 @@ extern "C" {
|
|
|
27
27
|
|
|
28
28
|
// Cipher primitives.
|
|
29
29
|
//
|
|
30
|
-
// The following functions return
|
|
30
|
+
// The following functions return `EVP_CIPHER` objects that implement the named
|
|
31
31
|
// cipher algorithm.
|
|
32
32
|
|
|
33
33
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_rc4(void);
|
|
@@ -73,54 +73,95 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_get_cipherbynid(int nid);
|
|
|
73
73
|
|
|
74
74
|
// Cipher context allocation.
|
|
75
75
|
//
|
|
76
|
-
// An
|
|
76
|
+
// An `EVP_CIPHER_CTX` represents the state of an encryption or decryption in
|
|
77
77
|
// progress.
|
|
78
78
|
|
|
79
|
-
// EVP_CIPHER_CTX_init
|
|
79
|
+
// EVP_CIPHER_CTX_init sets an uninitialized `EVP_CIPHER_CTX` to the zero state.
|
|
80
|
+
// This is the same as setting the structure to zero.
|
|
81
|
+
//
|
|
82
|
+
// This function is used for initializing uninitialized memory in an
|
|
83
|
+
// `EVP_CIPHER_CTX`, e.g. if it is declared as a local variable on the stack.
|
|
84
|
+
// This function should not be used on objects that have already been
|
|
85
|
+
// initialized.
|
|
80
86
|
OPENSSL_EXPORT void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx);
|
|
81
87
|
|
|
82
|
-
// EVP_CIPHER_CTX_new
|
|
83
|
-
//
|
|
88
|
+
// EVP_CIPHER_CTX_new returns a newly-allocated `EVP_CIPHER_CTX` in the zero
|
|
89
|
+
// state, or NULL on allocation failure. The caller must use
|
|
90
|
+
// `EVP_CIPHER_CTX_free` to release the resulting object.
|
|
84
91
|
OPENSSL_EXPORT EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
|
|
85
92
|
|
|
86
|
-
// EVP_CIPHER_CTX_cleanup frees any memory referenced by
|
|
93
|
+
// EVP_CIPHER_CTX_cleanup frees any memory referenced by `ctx`. It returns
|
|
87
94
|
// one.
|
|
88
95
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx);
|
|
89
96
|
|
|
90
|
-
// EVP_CIPHER_CTX_free calls
|
|
91
|
-
//
|
|
97
|
+
// EVP_CIPHER_CTX_free calls `EVP_CIPHER_CTX_cleanup` on `ctx` and then frees
|
|
98
|
+
// `ctx` itself.
|
|
92
99
|
OPENSSL_EXPORT void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx);
|
|
93
100
|
|
|
94
|
-
// EVP_CIPHER_CTX_copy sets
|
|
95
|
-
//
|
|
101
|
+
// EVP_CIPHER_CTX_copy sets `out` to be a duplicate of the current state of
|
|
102
|
+
// `in`. The `out` argument must have been previously initialised, e.g. with
|
|
103
|
+
// `EVP_CIPHER_CTX_init` or `EVP_CIPHER_CTX_new`.
|
|
96
104
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out,
|
|
97
105
|
const EVP_CIPHER_CTX *in);
|
|
98
106
|
|
|
99
|
-
// EVP_CIPHER_CTX_reset calls
|
|
100
|
-
//
|
|
107
|
+
// EVP_CIPHER_CTX_reset calls `EVP_CIPHER_CTX_cleanup` followed by
|
|
108
|
+
// `EVP_CIPHER_CTX_init` and returns one.
|
|
101
109
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx);
|
|
102
110
|
|
|
103
111
|
|
|
104
112
|
// Cipher context configuration.
|
|
105
113
|
|
|
106
|
-
// EVP_CipherInit_ex configures
|
|
107
|
-
//
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
//
|
|
111
|
-
//
|
|
112
|
-
//
|
|
114
|
+
// EVP_CipherInit_ex configures `ctx` for a fresh encryption (or decryption, if
|
|
115
|
+
// `enc` is zero) operation using `cipher`. The memory in `ctx` must already
|
|
116
|
+
// have been initialized, e.g. with `EVP_CIPHER_CTX_init` or
|
|
117
|
+
// `EVP_CIPHER_CTX_new`. If non-NULL, `key` and `iv` will be used as the key and
|
|
118
|
+
// IV, respectively. These must point to `EVP_CIPHER_key_length` and
|
|
119
|
+
// `EVP_CIPHER_iv_length` bytes, respectively. It returns one on success and
|
|
120
|
+
// zero on error.
|
|
121
|
+
//
|
|
122
|
+
// This function may be called multiple times on a single `EVP_CIPHER_CTX`,
|
|
123
|
+
// either to reset an existing object, or to configure a single operation in
|
|
124
|
+
// multiple steps. In such cases:
|
|
125
|
+
//
|
|
126
|
+
// - `cipher` may be NULL to reuse the previous cipher state. A non-NULL
|
|
127
|
+
// `cipher` will reset all cipher state, including the key and IV, even if
|
|
128
|
+
// configuring the same `EVP_CIPHER` as before.
|
|
129
|
+
//
|
|
130
|
+
// - `key` and `iv` may be NULL to either reuse the previous value, or leave
|
|
131
|
+
// them unconfigured.
|
|
132
|
+
//
|
|
133
|
+
// - `enc` may be -1 to reuse the previous value. In ciphers that use a
|
|
134
|
+
// different key schedule between encryption and decryption (e.g. CBC and ECB
|
|
135
|
+
// modes), callers must configure `key` and `enc` together.
|
|
136
|
+
//
|
|
137
|
+
// Some example multi-step configuration patterns:
|
|
138
|
+
//
|
|
139
|
+
// - If setting a variable-length key with `EVP_CIPHER_CTX_set_key_length`,
|
|
140
|
+
// first configure only `cipher`, then use `EVP_CIPHER_CTX_set_key_length`,
|
|
141
|
+
// and finally configure `key`, leaving `cipher` NULL.
|
|
142
|
+
//
|
|
143
|
+
// - If setting a variable-length IV with `EVP_CTRL_AEAD_SET_IVLEN`, first
|
|
144
|
+
// configure `cipher` and `key`, then use `EVP_CTRL_AEAD_SET_IVLEN`, and
|
|
145
|
+
// finally configure `iv`, leaving other parameters NULL.
|
|
146
|
+
//
|
|
147
|
+
// - If retaining a long-lived context to reuse the key schedule across
|
|
148
|
+
// operations, first configure only `cipher` and `key` on the long-lived
|
|
149
|
+
// context, then copy the key schedule to a per-operation context with
|
|
150
|
+
// `EVP_CIPHER_CTX_copy`, and finally configure only `iv` on the per-operation
|
|
151
|
+
// context.
|
|
152
|
+
//
|
|
153
|
+
// WARNING: This API is difficult to use correctly. Use `EVP_AEAD` for AEADs.
|
|
113
154
|
OPENSSL_EXPORT int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,
|
|
114
155
|
const EVP_CIPHER *cipher, ENGINE *engine,
|
|
115
156
|
const uint8_t *key, const uint8_t *iv,
|
|
116
157
|
int enc);
|
|
117
158
|
|
|
118
|
-
// EVP_EncryptInit_ex calls
|
|
159
|
+
// EVP_EncryptInit_ex calls `EVP_CipherInit_ex` with `enc` equal to one.
|
|
119
160
|
OPENSSL_EXPORT int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,
|
|
120
161
|
const EVP_CIPHER *cipher, ENGINE *impl,
|
|
121
162
|
const uint8_t *key, const uint8_t *iv);
|
|
122
163
|
|
|
123
|
-
// EVP_DecryptInit_ex calls
|
|
164
|
+
// EVP_DecryptInit_ex calls `EVP_CipherInit_ex` with `enc` equal to zero.
|
|
124
165
|
OPENSSL_EXPORT int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,
|
|
125
166
|
const EVP_CIPHER *cipher, ENGINE *impl,
|
|
126
167
|
const uint8_t *key, const uint8_t *iv);
|
|
@@ -128,148 +169,211 @@ OPENSSL_EXPORT int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,
|
|
|
128
169
|
|
|
129
170
|
// Cipher operations.
|
|
130
171
|
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
// written to |*out_len|. It returns one on success and zero otherwise.
|
|
172
|
+
// EVP_EncryptUpdate_ex encrypts `in_len` bytes from `in` and writes up to
|
|
173
|
+
// `max_out_len` bytes of ciphertext to `out`. On success, it sets `*out_len` to
|
|
174
|
+
// the number of output bytes and returns one. Otherwise, it returns zero.
|
|
135
175
|
//
|
|
136
|
-
// If
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
OPENSSL_EXPORT int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
141
|
-
int *out_len, const uint8_t *in,
|
|
142
|
-
int in_len);
|
|
143
|
-
|
|
144
|
-
// EVP_EncryptFinal_ex writes at most a block of ciphertext to |out| and sets
|
|
145
|
-
// |*out_len| to the number of bytes written. If padding is enabled (the
|
|
146
|
-
// default) then standard padding is applied to create the final block. If
|
|
147
|
-
// padding is disabled (with |EVP_CIPHER_CTX_set_padding|) then any partial
|
|
148
|
-
// block remaining will cause an error. The function returns one on success and
|
|
149
|
-
// zero otherwise.
|
|
150
|
-
OPENSSL_EXPORT int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
151
|
-
int *out_len);
|
|
152
|
-
|
|
153
|
-
// EVP_DecryptUpdate decrypts |in_len| bytes from |in| to |out|. The number of
|
|
154
|
-
// output bytes may be up to |in_len| plus the block length minus one and |out|
|
|
155
|
-
// must have sufficient space. The number of bytes actually output is written
|
|
156
|
-
// to |*out_len|. It returns one on success and zero otherwise.
|
|
176
|
+
// If `max_out_len` is not large enough for the output, the function will return
|
|
177
|
+
// zero. The size of output buffer needed depends on the cipher and the number
|
|
178
|
+
// of bytes encrypted by `ctx` thus far. `EVP_CIPHER_CTX_max_next_update` will
|
|
179
|
+
// return the maximum output for this call.
|
|
157
180
|
//
|
|
158
|
-
//
|
|
159
|
-
//
|
|
160
|
-
// to
|
|
161
|
-
//
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
//
|
|
181
|
+
// In ciphers whose block size is not 1, such as CBC, individual calls to
|
|
182
|
+
// `EVP_EncryptUpdate_ex` may output more or less than `in_len` bytes: a single
|
|
183
|
+
// call to `EVP_EncryptUpdate_ex` may output at most `in_len + block_size - 1`
|
|
184
|
+
// bytes. Additionally, the total output across all `EVP_EncryptUpdate_ex` and
|
|
185
|
+
// `EVP_EncryptFinal_ex2` calls will be at most the total input plus one byte,
|
|
186
|
+
// rounded up to a multiple of the block size.
|
|
187
|
+
OPENSSL_EXPORT int EVP_EncryptUpdate_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
188
|
+
size_t *out_len, size_t max_out_len,
|
|
189
|
+
const uint8_t *in, size_t in_len);
|
|
190
|
+
|
|
191
|
+
// EVP_EncryptFinal_ex2 finishes an encryption operation and writes up to
|
|
192
|
+
// `max_out_len` bytes of output to out. On success, it sets `*out_len` to the
|
|
193
|
+
// number of bytes written and returns one. Otherwise, it returns zero.
|
|
169
194
|
//
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
//
|
|
176
|
-
//
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
//
|
|
182
|
-
//
|
|
183
|
-
OPENSSL_EXPORT int
|
|
184
|
-
|
|
195
|
+
// If `max_out_len` is not large enough for the output, the function will return
|
|
196
|
+
// zero. The size of output buffer needed depends on the cipher and the number
|
|
197
|
+
// of bytes encrypted. `EVP_CIPHER_CTX_max_final` will return the maximum output
|
|
198
|
+
// for this call.
|
|
199
|
+
//
|
|
200
|
+
// If the block size is 1, there will be no final output at all; otherwise, at
|
|
201
|
+
// most one block of ciphertext will be written to the output.
|
|
202
|
+
//
|
|
203
|
+
// If padding is enabled (the default) and the block size is not 1, then
|
|
204
|
+
// standard padding is applied to create the final block. If padding is
|
|
205
|
+
// disabled (with `EVP_CIPHER_CTX_set_padding`) then any partial block
|
|
206
|
+
// remaining will cause an error. The function returns one on success and zero
|
|
207
|
+
// otherwise.
|
|
208
|
+
OPENSSL_EXPORT int EVP_EncryptFinal_ex2(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
209
|
+
size_t *out_len, size_t max_out_len);
|
|
210
|
+
|
|
211
|
+
// EVP_DecryptUpdate_ex decrypts `in_len` bytes from `in` and writes up to
|
|
212
|
+
// `max_out_len` bytes of plaintext to `out`. On success, it sets `*out_len` to
|
|
213
|
+
// the number of output bytes and returns one. Otherwise, it returns zero.
|
|
214
|
+
//
|
|
215
|
+
// If `max_out_len` is not large enough for the output, the function will return
|
|
216
|
+
// zero. The size of output buffer needed depends on the cipher and the number
|
|
217
|
+
// of bytes decrypted by `ctx` thus far. `EVP_CIPHER_CTX_max_next_update` will
|
|
218
|
+
// return the maximum output for this call.
|
|
219
|
+
//
|
|
220
|
+
// In ciphers whose block size is not 1, such as CBC, individual calls to
|
|
221
|
+
// `EVP_DecryptUpdate_ex` may output more or less than `in_len` bytes: a single
|
|
222
|
+
// call to `EVP_DecryptUpdate_ex` may output at most `in_len + block_size - 1`
|
|
223
|
+
// bytes. Additionally, the total output across all `EVP_DecryptUpdate_ex` and
|
|
224
|
+
// `EVP_DecryptFinal_ex2` calls will be at most the total input.
|
|
225
|
+
//
|
|
226
|
+
// WARNING: if the cipher is an AEAD cipher, decrypted data should not be
|
|
227
|
+
// parsed or otherwise processed until success has been returned by
|
|
228
|
+
// `EVP_EncryptFinal_ex2`.
|
|
229
|
+
OPENSSL_EXPORT int EVP_DecryptUpdate_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
230
|
+
size_t *out_len, size_t max_out_len,
|
|
231
|
+
const uint8_t *in, size_t in_len);
|
|
232
|
+
|
|
233
|
+
// EVP_DecryptFinal_ex2 finishes a decryption operation and writes up to
|
|
234
|
+
// `max_out_len` bytes of output to out. On success, it sets `*out_len` to the
|
|
235
|
+
// number of bytes written and returns one. Otherwise, it returns zero.
|
|
236
|
+
//
|
|
237
|
+
// If `max_out_len` is not large enough for the output, the function will return
|
|
238
|
+
// zero. The size of output buffer needed depends on the cipher and the number
|
|
239
|
+
// of bytes decrypted. `EVP_CIPHER_CTX_max_final` will return the maximum output
|
|
240
|
+
// for this call.
|
|
241
|
+
//
|
|
242
|
+
// If the block size is 1, there will be no final output at all; otherwise, at
|
|
243
|
+
// most one block of ciphertext will be written to the output.
|
|
244
|
+
//
|
|
245
|
+
// If padding is enabled (the default) and the block size is not 1, then
|
|
246
|
+
// standard padding is removed from the final block.
|
|
247
|
+
//
|
|
248
|
+
// WARNING: it is unsafe to call this function after decrypting unauthenticated
|
|
249
|
+
// ciphertext if padding is enabled and the block size is not 1 ("padding
|
|
250
|
+
// oracle").
|
|
251
|
+
OPENSSL_EXPORT int EVP_DecryptFinal_ex2(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
252
|
+
size_t *out_len, size_t max_out_len);
|
|
253
|
+
|
|
254
|
+
// EVP_CipherUpdate_ex calls either `EVP_EncryptUpdate_ex` or
|
|
255
|
+
// `EVP_DecryptUpdate_ex` depending on how `ctx` has been setup.
|
|
256
|
+
OPENSSL_EXPORT int EVP_CipherUpdate_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
257
|
+
size_t *out_len, size_t max_out_len,
|
|
258
|
+
const uint8_t *in, size_t in_len);
|
|
259
|
+
|
|
260
|
+
// EVP_CipherUpdateAAD adds `in_len` bytes from `in` to the AAD. The AAD must
|
|
261
|
+
// be fully specified in this way before any plaintext or ciphertext is
|
|
262
|
+
// supplied to the other functions. Please consider moving to the `EVP_AEAD`
|
|
263
|
+
// APIs instead.
|
|
264
|
+
OPENSSL_EXPORT int EVP_CipherUpdateAAD(EVP_CIPHER_CTX *ctx, const uint8_t *in,
|
|
265
|
+
size_t in_len);
|
|
266
|
+
|
|
267
|
+
// EVP_CipherFinal_ex2 calls either `EVP_EncryptFinal_ex2` or
|
|
268
|
+
// `EVP_DecryptFinal_ex2` depending on how `ctx` has been setup.
|
|
269
|
+
OPENSSL_EXPORT int EVP_CipherFinal_ex2(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
270
|
+
size_t *out_len, size_t max_out_len);
|
|
271
|
+
|
|
272
|
+
// EVP_CIPHER_CTX_max_next_update returns the maximum number of bytes that may
|
|
273
|
+
// be output from `ctx` by a call to `EVP_CipherUpdate_ex` with `in_len` bytes
|
|
274
|
+
// of input. This takes the current state of `ctx` into account, so the output
|
|
275
|
+
// will change as bytes are passed in and out.
|
|
276
|
+
OPENSSL_EXPORT size_t EVP_CIPHER_CTX_max_next_update(const EVP_CIPHER_CTX *ctx,
|
|
277
|
+
size_t in_len);
|
|
278
|
+
|
|
279
|
+
// EVP_CIPHER_CTX_max_final returns the maximum number of bytes that may
|
|
280
|
+
// be output from `ctx` by a call to `EVP_CipherFinal_ex2`. This takes the
|
|
281
|
+
// current state of `ctx` into account, so the output will change as bytes are
|
|
282
|
+
// passed in and out.
|
|
283
|
+
OPENSSL_EXPORT size_t EVP_CIPHER_CTX_max_final(const EVP_CIPHER_CTX *ctx);
|
|
185
284
|
|
|
186
285
|
|
|
187
286
|
// Cipher context accessors.
|
|
188
287
|
|
|
189
|
-
// EVP_CIPHER_CTX_cipher returns the
|
|
288
|
+
// EVP_CIPHER_CTX_cipher returns the `EVP_CIPHER` underlying `ctx`, or NULL if
|
|
190
289
|
// none has been set.
|
|
191
290
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_CIPHER_CTX_cipher(
|
|
192
291
|
const EVP_CIPHER_CTX *ctx);
|
|
193
292
|
|
|
194
|
-
// EVP_CIPHER_CTX_nid returns a NID identifying the
|
|
195
|
-
//
|
|
293
|
+
// EVP_CIPHER_CTX_nid returns a NID identifying the `EVP_CIPHER` underlying
|
|
294
|
+
// `ctx` (e.g. `NID_aes_128_gcm`). It will crash if no cipher has been
|
|
196
295
|
// configured.
|
|
197
296
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
|
|
198
297
|
|
|
199
|
-
// EVP_CIPHER_CTX_encrypting returns one if
|
|
298
|
+
// EVP_CIPHER_CTX_encrypting returns one if `ctx` is configured for encryption
|
|
200
299
|
// and zero otherwise.
|
|
201
300
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx);
|
|
202
301
|
|
|
203
302
|
// EVP_CIPHER_CTX_block_size returns the block size, in bytes, of the cipher
|
|
204
|
-
// underlying
|
|
303
|
+
// underlying `ctx`, or one if the cipher is a stream cipher. It will crash if
|
|
205
304
|
// no cipher has been configured.
|
|
206
305
|
OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx);
|
|
207
306
|
|
|
208
307
|
// EVP_CIPHER_CTX_key_length returns the key size, in bytes, of the cipher
|
|
209
|
-
// underlying
|
|
308
|
+
// underlying `ctx` or zero if no cipher has been configured.
|
|
210
309
|
OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx);
|
|
211
310
|
|
|
212
311
|
// EVP_CIPHER_CTX_iv_length returns the IV size, in bytes, of the cipher
|
|
213
|
-
// underlying
|
|
312
|
+
// underlying `ctx`. It will crash if no cipher has been configured.
|
|
214
313
|
OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx);
|
|
215
314
|
|
|
216
315
|
// EVP_CIPHER_CTX_get_app_data returns the opaque, application data pointer for
|
|
217
|
-
//
|
|
316
|
+
// `ctx`, or NULL if none has been set.
|
|
218
317
|
OPENSSL_EXPORT void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
|
|
219
318
|
|
|
220
319
|
// EVP_CIPHER_CTX_set_app_data sets the opaque, application data pointer for
|
|
221
|
-
//
|
|
320
|
+
// `ctx` to `data`.
|
|
222
321
|
OPENSSL_EXPORT void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx,
|
|
223
322
|
void *data);
|
|
224
323
|
|
|
225
324
|
// EVP_CIPHER_CTX_flags returns a value which is the OR of zero or more
|
|
226
|
-
//
|
|
325
|
+
// `EVP_CIPH_*` flags. It will crash if no cipher has been configured.
|
|
227
326
|
OPENSSL_EXPORT uint32_t EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx);
|
|
228
327
|
|
|
229
|
-
// EVP_CIPHER_CTX_mode returns one of the
|
|
328
|
+
// EVP_CIPHER_CTX_mode returns one of the `EVP_CIPH_*` cipher mode values
|
|
230
329
|
// enumerated below. It will crash if no cipher has been configured.
|
|
231
330
|
OPENSSL_EXPORT uint32_t EVP_CIPHER_CTX_mode(const EVP_CIPHER_CTX *ctx);
|
|
232
331
|
|
|
233
|
-
// EVP_CIPHER_CTX_ctrl is an
|
|
234
|
-
// should be one of the
|
|
332
|
+
// EVP_CIPHER_CTX_ctrl is an `ioctl` like function. The `command` argument
|
|
333
|
+
// should be one of the `EVP_CTRL_*` values. The `arg` and `ptr` arguments are
|
|
235
334
|
// specific to the command in question.
|
|
236
335
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int command,
|
|
237
336
|
int arg, void *ptr);
|
|
238
337
|
|
|
239
|
-
// EVP_CIPHER_CTX_set_padding sets whether padding is enabled for
|
|
240
|
-
// returns one. Pass a non-zero
|
|
338
|
+
// EVP_CIPHER_CTX_set_padding sets whether padding is enabled for `ctx` and
|
|
339
|
+
// returns one. Pass a non-zero `pad` to enable padding (the default) or zero
|
|
241
340
|
// to disable.
|
|
242
341
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad);
|
|
243
342
|
|
|
244
|
-
// EVP_CIPHER_CTX_set_key_length sets the key length for
|
|
343
|
+
// EVP_CIPHER_CTX_set_key_length sets the key length for `ctx`. This is only
|
|
245
344
|
// valid for ciphers that can take a variable length key. It returns one on
|
|
246
345
|
// success and zero on error.
|
|
346
|
+
//
|
|
347
|
+
// In order to use this function, |ctx| must have been configured with an
|
|
348
|
+
// |EVP_CIPHER| with |EVP_CipherInit_ex|. Callers should first configure only
|
|
349
|
+
// the cipher, leaving |key| NULL, call |EVP_CIPHER_CTX_set_key_length|, and
|
|
350
|
+
// finally call |EVP_CipherInit_ex| with a NULL |cipher| and non-NULL |key|.
|
|
247
351
|
OPENSSL_EXPORT int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *ctx,
|
|
248
352
|
unsigned key_len);
|
|
249
353
|
|
|
250
354
|
|
|
251
355
|
// Cipher accessors.
|
|
252
356
|
|
|
253
|
-
// EVP_CIPHER_nid returns a NID identifying
|
|
254
|
-
//
|
|
357
|
+
// EVP_CIPHER_nid returns a NID identifying `cipher`. (For example,
|
|
358
|
+
// `NID_aes_128_gcm`.)
|
|
255
359
|
OPENSSL_EXPORT int EVP_CIPHER_nid(const EVP_CIPHER *cipher);
|
|
256
360
|
|
|
257
|
-
// EVP_CIPHER_block_size returns the block size, in bytes, for
|
|
258
|
-
// if
|
|
361
|
+
// EVP_CIPHER_block_size returns the block size, in bytes, for `cipher`, or one
|
|
362
|
+
// if `cipher` is a stream cipher.
|
|
259
363
|
OPENSSL_EXPORT unsigned EVP_CIPHER_block_size(const EVP_CIPHER *cipher);
|
|
260
364
|
|
|
261
|
-
// EVP_CIPHER_key_length returns the key size, in bytes, for
|
|
262
|
-
//
|
|
263
|
-
// default key length and
|
|
264
|
-
//
|
|
365
|
+
// EVP_CIPHER_key_length returns the key size, in bytes, for `cipher`. If
|
|
366
|
+
// `cipher` can take a variable key length then this function returns the
|
|
367
|
+
// default key length and `EVP_CIPHER_flags` will return a value with
|
|
368
|
+
// `EVP_CIPH_VARIABLE_LENGTH` set.
|
|
265
369
|
OPENSSL_EXPORT unsigned EVP_CIPHER_key_length(const EVP_CIPHER *cipher);
|
|
266
370
|
|
|
267
|
-
// EVP_CIPHER_iv_length returns the IV size, in bytes, of
|
|
268
|
-
//
|
|
371
|
+
// EVP_CIPHER_iv_length returns the IV size, in bytes, of `cipher`, or zero if
|
|
372
|
+
// `cipher` doesn't take an IV.
|
|
269
373
|
OPENSSL_EXPORT unsigned EVP_CIPHER_iv_length(const EVP_CIPHER *cipher);
|
|
270
374
|
|
|
271
375
|
// EVP_CIPHER_flags returns a value which is the OR of zero or more
|
|
272
|
-
//
|
|
376
|
+
// `EVP_CIPH_*` flags.
|
|
273
377
|
OPENSSL_EXPORT uint32_t EVP_CIPHER_flags(const EVP_CIPHER *cipher);
|
|
274
378
|
|
|
275
379
|
// EVP_CIPHER_mode returns one of the cipher mode values enumerated below.
|
|
@@ -278,31 +382,31 @@ OPENSSL_EXPORT uint32_t EVP_CIPHER_mode(const EVP_CIPHER *cipher);
|
|
|
278
382
|
|
|
279
383
|
// Key derivation.
|
|
280
384
|
|
|
281
|
-
// EVP_BytesToKey generates a key and IV for the cipher
|
|
282
|
-
//
|
|
283
|
-
//
|
|
284
|
-
// space to hold a key and IV for
|
|
285
|
-
// and
|
|
385
|
+
// EVP_BytesToKey generates a key and IV for the cipher `type` by iterating
|
|
386
|
+
// `md` `count` times using `data` and an optional `salt`, writing the result to
|
|
387
|
+
// `key` and `iv`. If not NULL, the `key` and `iv` buffers must have enough
|
|
388
|
+
// space to hold a key and IV for `type`, as returned by `EVP_CIPHER_key_length`
|
|
389
|
+
// and `EVP_CIPHER_iv_length`. This function returns the length of the key
|
|
286
390
|
// (without the IV) on success or zero on error.
|
|
287
391
|
//
|
|
288
|
-
// If
|
|
289
|
-
// than 0 and 8 are not supported by this function. Either of
|
|
392
|
+
// If `salt` is NULL, the empty string is used as the salt. Salt lengths other
|
|
393
|
+
// than 0 and 8 are not supported by this function. Either of `key` or `iv` may
|
|
290
394
|
// be NULL to skip that output.
|
|
291
395
|
//
|
|
292
|
-
// When the total data derived is less than the size of
|
|
396
|
+
// When the total data derived is less than the size of `md`, this function
|
|
293
397
|
// implements PBKDF1 from RFC 8018. Otherwise, it generalizes PBKDF1 by
|
|
294
|
-
// computing prepending the previous output to
|
|
398
|
+
// computing prepending the previous output to `data` and re-running PBKDF1 for
|
|
295
399
|
// further output.
|
|
296
400
|
//
|
|
297
401
|
// This function is provided for compatibility with legacy uses of PBKDF1. New
|
|
298
|
-
// applications should use a more modern algorithm, such as
|
|
402
|
+
// applications should use a more modern algorithm, such as `EVP_PBE_scrypt`.
|
|
299
403
|
OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
|
|
300
404
|
const uint8_t salt[8], const uint8_t *data,
|
|
301
405
|
size_t data_len, unsigned count, uint8_t *key,
|
|
302
406
|
uint8_t *iv);
|
|
303
407
|
|
|
304
408
|
|
|
305
|
-
// Cipher modes (for
|
|
409
|
+
// Cipher modes (for `EVP_CIPHER_mode`).
|
|
306
410
|
|
|
307
411
|
#define EVP_CIPH_STREAM_CIPHER 0x0
|
|
308
412
|
#define EVP_CIPH_ECB_MODE 0x1
|
|
@@ -313,30 +417,30 @@ OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
|
|
|
313
417
|
#define EVP_CIPH_GCM_MODE 0x6
|
|
314
418
|
#define EVP_CIPH_XTS_MODE 0x7
|
|
315
419
|
|
|
316
|
-
// The following values are never returned from
|
|
420
|
+
// The following values are never returned from `EVP_CIPHER_mode` and are
|
|
317
421
|
// included only to make it easier to compile code with BoringSSL.
|
|
318
422
|
#define EVP_CIPH_CCM_MODE 0x8
|
|
319
423
|
#define EVP_CIPH_OCB_MODE 0x9
|
|
320
424
|
#define EVP_CIPH_WRAP_MODE 0xa
|
|
321
425
|
|
|
322
426
|
|
|
323
|
-
// Cipher flags (for
|
|
427
|
+
// Cipher flags (for `EVP_CIPHER_flags`).
|
|
324
428
|
|
|
325
429
|
// EVP_CIPH_VARIABLE_LENGTH indicates that the cipher takes a variable length
|
|
326
430
|
// key.
|
|
327
431
|
#define EVP_CIPH_VARIABLE_LENGTH 0x40
|
|
328
432
|
|
|
329
|
-
// EVP_CIPH_ALWAYS_CALL_INIT indicates that the
|
|
433
|
+
// EVP_CIPH_ALWAYS_CALL_INIT indicates that the `init` function for the cipher
|
|
330
434
|
// should always be called when initialising a new operation, even if the key
|
|
331
435
|
// is NULL to indicate that the same key is being used.
|
|
332
436
|
#define EVP_CIPH_ALWAYS_CALL_INIT 0x80
|
|
333
437
|
|
|
334
438
|
// EVP_CIPH_CUSTOM_IV indicates that the cipher manages the IV itself rather
|
|
335
|
-
// than keeping it in the
|
|
439
|
+
// than keeping it in the `iv` member of `EVP_CIPHER_CTX`.
|
|
336
440
|
#define EVP_CIPH_CUSTOM_IV 0x100
|
|
337
441
|
|
|
338
442
|
// EVP_CIPH_CTRL_INIT indicates that EVP_CTRL_INIT should be used when
|
|
339
|
-
// initialising an
|
|
443
|
+
// initialising an `EVP_CIPHER_CTX`.
|
|
340
444
|
#define EVP_CIPH_CTRL_INIT 0x200
|
|
341
445
|
|
|
342
446
|
// EVP_CIPH_FLAG_CUSTOM_CIPHER indicates that the cipher manages blocking
|
|
@@ -348,8 +452,8 @@ OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
|
|
|
348
452
|
// one.
|
|
349
453
|
#define EVP_CIPH_FLAG_AEAD_CIPHER 0x800
|
|
350
454
|
|
|
351
|
-
// EVP_CIPH_CUSTOM_COPY indicates that the
|
|
352
|
-
// with
|
|
455
|
+
// EVP_CIPH_CUSTOM_COPY indicates that the `ctrl` callback should be called
|
|
456
|
+
// with `EVP_CTRL_COPY` at the end of normal `EVP_CIPHER_CTX_copy`
|
|
353
457
|
// processing.
|
|
354
458
|
#define EVP_CIPH_CUSTOM_COPY 0x1000
|
|
355
459
|
|
|
@@ -362,51 +466,129 @@ OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
|
|
|
362
466
|
|
|
363
467
|
// Deprecated functions
|
|
364
468
|
|
|
365
|
-
// EVP_CipherInit acts like EVP_CipherInit_ex except that
|
|
366
|
-
// is called on
|
|
469
|
+
// EVP_CipherInit acts like `EVP_CipherInit_ex` except that
|
|
470
|
+
// `EVP_CIPHER_CTX_init` is called on `cipher` first, if `cipher` is not NULL.
|
|
471
|
+
//
|
|
472
|
+
// `EVP_CIPHER_CTX_init` is used for initializing uninitialized memory in an
|
|
473
|
+
// `EVP_CIPHER_CTX`, e.g. if it is declared as a local variable on the stack.
|
|
474
|
+
// Thus this function should not be used on objects that have already been
|
|
475
|
+
// initialized.
|
|
476
|
+
//
|
|
477
|
+
// WARNING: This differs from OpenSSL 1.1.x, where `EVP_CipherInit` and
|
|
478
|
+
// `EVP_CipherInit_ex` are largely equivalent. This difference is because
|
|
479
|
+
// BoringSSL, like OpenSSL 1.0.x, still supports stack-allocating
|
|
480
|
+
// `EVP_CIPHER_CTX`. Implementing the OpenSSL 1.1.x semantics would introduce
|
|
481
|
+
// uninitialized reads in those callers.
|
|
367
482
|
OPENSSL_EXPORT int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
|
368
483
|
const uint8_t *key, const uint8_t *iv,
|
|
369
484
|
int enc);
|
|
370
485
|
|
|
371
|
-
// EVP_EncryptInit calls
|
|
486
|
+
// EVP_EncryptInit calls `EVP_CipherInit` with `enc` equal to one.
|
|
487
|
+
//
|
|
488
|
+
// WARNING: See discussion in `EVP_CipherInit`.
|
|
372
489
|
OPENSSL_EXPORT int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,
|
|
373
490
|
const EVP_CIPHER *cipher, const uint8_t *key,
|
|
374
491
|
const uint8_t *iv);
|
|
375
492
|
|
|
376
|
-
// EVP_DecryptInit calls
|
|
493
|
+
// EVP_DecryptInit calls `EVP_CipherInit` with `enc` equal to zero.
|
|
494
|
+
//
|
|
495
|
+
// WARNING: See discussion in `EVP_CipherInit`.
|
|
377
496
|
OPENSSL_EXPORT int EVP_DecryptInit(EVP_CIPHER_CTX *ctx,
|
|
378
497
|
const EVP_CIPHER *cipher, const uint8_t *key,
|
|
379
498
|
const uint8_t *iv);
|
|
380
499
|
|
|
381
|
-
//
|
|
500
|
+
// EVP_CipherUpdate does the same as `EVP_CipherUpdate_ex`, except that no
|
|
501
|
+
// output size is given and thus no bounds checking is performed.
|
|
502
|
+
//
|
|
503
|
+
// Additionally, if `ctx` is an AEAD cipher, e.g. `EVP_aes_128_gcm`, and `out`
|
|
504
|
+
// is NULL, this function instead behaves like `EVP_CipherUpdateAAD`.
|
|
505
|
+
//
|
|
506
|
+
// WARNING: This function does not check bounds on `out`, and correctly sizing
|
|
507
|
+
// the output buffer is difficult. Use `EVP_CipherUpdate_ex` or
|
|
508
|
+
// `EVP_CipherUpdateAAD` instead.
|
|
509
|
+
OPENSSL_EXPORT int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
510
|
+
int *out_len, const uint8_t *in,
|
|
511
|
+
int in_len);
|
|
512
|
+
|
|
513
|
+
// EVP_EncryptUpdate does the same as `EVP_EncryptUpdate_ex`, except that no
|
|
514
|
+
// output size is given and thus no bounds checking is performed.
|
|
515
|
+
//
|
|
516
|
+
// Additionally, if `ctx` is an AEAD cipher, e.g. `EVP_aes_128_gcm`, and `out`
|
|
517
|
+
// is NULL, this function instead behaves like `EVP_CipherUpdateAAD`.
|
|
518
|
+
//
|
|
519
|
+
// WARNING: This function does not check bounds on `out`, and correctly sizing
|
|
520
|
+
// the output buffer is difficult. Use `EVP_EncryptUpdate_ex` or
|
|
521
|
+
// `EVP_CipherUpdateAAD` instead.
|
|
522
|
+
OPENSSL_EXPORT int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
523
|
+
int *out_len, const uint8_t *in,
|
|
524
|
+
int in_len);
|
|
525
|
+
|
|
526
|
+
// EVP_DecryptUpdate does the same as `EVP_DecryptUpdate_ex`, except that no
|
|
527
|
+
// output size is given and thus no bounds checking is performed.
|
|
528
|
+
//
|
|
529
|
+
// Additionally, if `ctx` is an AEAD cipher, e.g. `EVP_aes_128_gcm`, and `out`
|
|
530
|
+
// is NULL, this function instead behaves like `EVP_CipherUpdateAAD`.
|
|
531
|
+
//
|
|
532
|
+
// WARNING: This function does not check bounds on out, and correctly sizing
|
|
533
|
+
// the output buffer is difficult. Use `EVP_DecryptUpdate_ex` or
|
|
534
|
+
// `EVP_CipherUpdateAAD` instead.
|
|
535
|
+
OPENSSL_EXPORT int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
536
|
+
int *out_len, const uint8_t *in,
|
|
537
|
+
int in_len);
|
|
538
|
+
|
|
539
|
+
// EVP_CipherFinal calls `EVP_CipherFinal_ex`.
|
|
382
540
|
OPENSSL_EXPORT int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
383
541
|
int *out_len);
|
|
384
542
|
|
|
385
|
-
//
|
|
543
|
+
// EVP_CipherFinal_ex does the same as `EVP_CipherFinal_ex2`, except that no
|
|
544
|
+
// output size is given and thus no bounds checking is performed.
|
|
545
|
+
//
|
|
546
|
+
// WARNING: This function does not check bounds on out, and correctly sizing
|
|
547
|
+
// the output buffer is difficult. Use `EVP_CipherFinal_ex2` instead.
|
|
548
|
+
OPENSSL_EXPORT int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
549
|
+
int *out_len);
|
|
550
|
+
|
|
551
|
+
// EVP_EncryptFinal calls `EVP_EncryptFinal_ex`.
|
|
386
552
|
OPENSSL_EXPORT int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
387
553
|
int *out_len);
|
|
388
554
|
|
|
389
|
-
//
|
|
555
|
+
// EVP_EncryptFinal_ex does the same as `EVP_EncryptFinal_ex2`, except that no
|
|
556
|
+
// output size is given and thus no bounds checking is performed.
|
|
557
|
+
//
|
|
558
|
+
// WARNING: This function does not check bounds on out, and correctly sizing
|
|
559
|
+
// the output buffer is difficult. Use `EVP_EncryptFinal_ex2` instead.
|
|
560
|
+
OPENSSL_EXPORT int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
561
|
+
int *out_len);
|
|
562
|
+
|
|
563
|
+
// EVP_DecryptFinal calls `EVP_DecryptFinal_ex`.
|
|
390
564
|
OPENSSL_EXPORT int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
391
565
|
int *out_len);
|
|
392
566
|
|
|
393
|
-
//
|
|
394
|
-
//
|
|
567
|
+
// EVP_DecryptFinal_ex does the same as `EVP_DecryptFinal_ex2`, except that no
|
|
568
|
+
// output size is given and thus no bounds checking is performed.
|
|
569
|
+
//
|
|
570
|
+
// WARNING: This function does not check bounds on out, and correctly sizing
|
|
571
|
+
// the output buffer is difficult. Use `EVP_DecryptFinal_ex2` instead.
|
|
572
|
+
OPENSSL_EXPORT int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
573
|
+
int *out_len);
|
|
574
|
+
|
|
575
|
+
// EVP_Cipher historically exposed an internal implementation detail of `ctx`
|
|
576
|
+
// and should not be used. Use `EVP_CipherUpdate` and `EVP_CipherFinal_ex`
|
|
395
577
|
// instead.
|
|
396
578
|
//
|
|
397
|
-
// If
|
|
398
|
-
// encrypts or decrypts
|
|
399
|
-
//
|
|
400
|
-
//
|
|
579
|
+
// If `ctx`'s cipher does not have the `EVP_CIPH_FLAG_CUSTOM_CIPHER` flag, it
|
|
580
|
+
// encrypts or decrypts `in_len` bytes from `in` and writes the resulting
|
|
581
|
+
// `in_len` bytes to `out`. It returns one on success and zero on error.
|
|
582
|
+
// `in_len` must be a multiple of the cipher's block size, or the behavior is
|
|
401
583
|
// undefined.
|
|
402
584
|
//
|
|
403
585
|
// TODO(davidben): Rather than being undefined (it'll often round the length up
|
|
404
586
|
// and likely read past the buffer), just fail the operation.
|
|
405
587
|
//
|
|
406
|
-
// If
|
|
407
|
-
// of two modes: If
|
|
408
|
-
//
|
|
409
|
-
//
|
|
588
|
+
// If `ctx`'s cipher has the `EVP_CIPH_FLAG_CUSTOM_CIPHER` flag, it runs in one
|
|
589
|
+
// of two modes: If `in` is non-NULL, it behaves like `EVP_CipherUpdate`. If
|
|
590
|
+
// `in` is NULL, it behaves like `EVP_CipherFinal_ex`. In both cases, it returns
|
|
591
|
+
// `*out_len` on success and -1 on error.
|
|
410
592
|
//
|
|
411
593
|
// WARNING: The two possible calling conventions of this function signal errors
|
|
412
594
|
// incompatibly. In the first, zero indicates an error. In the second, zero
|
|
@@ -417,20 +599,20 @@ OPENSSL_EXPORT int EVP_Cipher(EVP_CIPHER_CTX *ctx, uint8_t *out,
|
|
|
417
599
|
// EVP_add_cipher_alias does nothing and returns one.
|
|
418
600
|
OPENSSL_EXPORT int EVP_add_cipher_alias(const char *a, const char *b);
|
|
419
601
|
|
|
420
|
-
// EVP_get_cipherbyname returns an
|
|
421
|
-
//
|
|
602
|
+
// EVP_get_cipherbyname returns an `EVP_CIPHER` given a human readable name in
|
|
603
|
+
// `name`, or NULL if the name is unknown. Note using this function links almost
|
|
422
604
|
// every cipher implemented by BoringSSL into the binary, not just the ones the
|
|
423
605
|
// caller requests. Size-conscious callers, such as client software, should not
|
|
424
606
|
// use this function.
|
|
425
607
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_get_cipherbyname(const char *name);
|
|
426
608
|
|
|
427
609
|
// These AEADs are deprecated AES-GCM implementations that set
|
|
428
|
-
//
|
|
429
|
-
//
|
|
610
|
+
// `EVP_CIPH_FLAG_CUSTOM_CIPHER`. Use `EVP_aead_aes_128_gcm` and
|
|
611
|
+
// `EVP_aead_aes_256_gcm` instead.
|
|
430
612
|
//
|
|
431
613
|
// WARNING: Although these APIs allow streaming an individual AES-GCM operation,
|
|
432
|
-
// this is not secure. Until calling
|
|
433
|
-
// been checked and output released by
|
|
614
|
+
// this is not secure. Until calling `EVP_DecryptFinal_ex`, the tag has not yet
|
|
615
|
+
// been checked and output released by `EVP_DecryptUpdate` is unauthenticated
|
|
434
616
|
// and easily manipulated by attackers. Callers must buffer the output and may
|
|
435
617
|
// not act on it until the entire operation is complete.
|
|
436
618
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_gcm(void);
|
|
@@ -443,27 +625,27 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ctr(void);
|
|
|
443
625
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
|
|
444
626
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ofb(void);
|
|
445
627
|
|
|
446
|
-
// EVP_des_ede3_ecb is an alias for
|
|
628
|
+
// EVP_des_ede3_ecb is an alias for `EVP_des_ede3`. Use the former instead.
|
|
447
629
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_ecb(void);
|
|
448
630
|
|
|
449
631
|
// EVP_aes_128_cfb128 is only available in decrepit.
|
|
450
632
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb128(void);
|
|
451
633
|
|
|
452
|
-
// EVP_aes_128_cfb is an alias for
|
|
634
|
+
// EVP_aes_128_cfb is an alias for `EVP_aes_128_cfb128` and is only available in
|
|
453
635
|
// decrepit.
|
|
454
636
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb(void);
|
|
455
637
|
|
|
456
638
|
// EVP_aes_192_cfb128 is only available in decrepit.
|
|
457
639
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_cfb128(void);
|
|
458
640
|
|
|
459
|
-
// EVP_aes_192_cfb is an alias for
|
|
641
|
+
// EVP_aes_192_cfb is an alias for `EVP_aes_192_cfb128` and is only available in
|
|
460
642
|
// decrepit.
|
|
461
643
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_cfb(void);
|
|
462
644
|
|
|
463
645
|
// EVP_aes_256_cfb128 is only available in decrepit.
|
|
464
646
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_cfb128(void);
|
|
465
647
|
|
|
466
|
-
// EVP_aes_256_cfb is an alias for
|
|
648
|
+
// EVP_aes_256_cfb is an alias for `EVP_aes_256_cfb128` and is only available in
|
|
467
649
|
// decrepit.
|
|
468
650
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_cfb(void);
|
|
469
651
|
|
|
@@ -496,7 +678,7 @@ OPENSSL_EXPORT void EVP_CIPHER_CTX_set_flags(const EVP_CIPHER_CTX *ctx,
|
|
|
496
678
|
// EVP_CIPH_NO_PADDING disables padding in block ciphers.
|
|
497
679
|
#define EVP_CIPH_NO_PADDING 0x800
|
|
498
680
|
|
|
499
|
-
// The following are
|
|
681
|
+
// The following are `EVP_CIPHER_CTX_ctrl` commands.
|
|
500
682
|
#define EVP_CTRL_INIT 0x0
|
|
501
683
|
#define EVP_CTRL_SET_KEY_LENGTH 0x1
|
|
502
684
|
#define EVP_CTRL_GET_RC2_KEY_BITS 0x2
|
|
@@ -521,7 +703,7 @@ OPENSSL_EXPORT void EVP_CIPHER_CTX_set_flags(const EVP_CIPHER_CTX *ctx,
|
|
|
521
703
|
#define EVP_GCM_TLS_EXPLICIT_IV_LEN 8
|
|
522
704
|
#define EVP_GCM_TLS_TAG_LEN 16
|
|
523
705
|
|
|
524
|
-
// The following are legacy aliases for AEAD
|
|
706
|
+
// The following are legacy aliases for AEAD `EVP_CIPHER_CTX_ctrl` values.
|
|
525
707
|
#define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN
|
|
526
708
|
#define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG
|
|
527
709
|
#define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG
|
|
@@ -538,17 +720,17 @@ struct evp_cipher_ctx_st {
|
|
|
538
720
|
// app_data is a pointer to opaque, user data.
|
|
539
721
|
void *app_data; // application stuff
|
|
540
722
|
|
|
541
|
-
// cipher_data points to the
|
|
723
|
+
// cipher_data points to the `cipher` specific state.
|
|
542
724
|
void *cipher_data;
|
|
543
725
|
|
|
544
726
|
// key_len contains the length of the key, which may differ from
|
|
545
|
-
//
|
|
727
|
+
// `cipher->key_len` if the cipher can take a variable key length.
|
|
546
728
|
unsigned key_len;
|
|
547
729
|
|
|
548
730
|
// encrypt is one if encrypting and zero if decrypting.
|
|
549
731
|
int encrypt;
|
|
550
732
|
|
|
551
|
-
// flags contains the OR of zero or more
|
|
733
|
+
// flags contains the OR of zero or more `EVP_CIPH_*` flags, above.
|
|
552
734
|
uint32_t flags;
|
|
553
735
|
|
|
554
736
|
// oiv contains the original IV value.
|
|
@@ -562,14 +744,14 @@ struct evp_cipher_ctx_st {
|
|
|
562
744
|
uint8_t buf[EVP_MAX_BLOCK_LENGTH];
|
|
563
745
|
|
|
564
746
|
// buf_len contains the number of bytes of a partial block contained in
|
|
565
|
-
//
|
|
747
|
+
// `buf`.
|
|
566
748
|
int buf_len;
|
|
567
749
|
|
|
568
|
-
// num contains the number of bytes of
|
|
750
|
+
// num contains the number of bytes of `iv` which are valid for modes that
|
|
569
751
|
// manage partial blocks themselves.
|
|
570
752
|
unsigned num;
|
|
571
753
|
|
|
572
|
-
// final_used is non-zero if the
|
|
754
|
+
// final_used is non-zero if the `final` buffer contains plaintext.
|
|
573
755
|
int final_used;
|
|
574
756
|
|
|
575
757
|
uint8_t final[EVP_MAX_BLOCK_LENGTH]; // possible final block
|