grpc 1.84.0 → 1.85.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +40 -27
- data/include/grpc/event_engine/memory_allocator.h +1 -0
- data/include/grpc/grpc.h +3 -0
- data/include/grpc/grpc_security_constants.h +2 -0
- data/include/grpc/impl/channel_arg_names.h +4 -0
- data/src/core/call/call_filters.h +10 -10
- data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
- data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
- data/src/core/call/filter_fusion.h +15 -15
- data/src/core/call/interception_chain.h +3 -3
- data/src/core/call/metadata_batch.cc +1 -0
- data/src/core/call/metadata_batch.h +45 -33
- data/src/core/call/parsed_metadata.h +3 -3
- data/src/core/call/request_buffer.cc +6 -6
- data/src/core/call/request_buffer.h +1 -1
- data/src/core/channelz/channel_trace.cc +5 -5
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +9 -9
- data/src/core/channelz/channelz.h +12 -12
- data/src/core/channelz/channelz_registry.cc +10 -10
- data/src/core/channelz/ztrace_collector.h +5 -5
- data/src/core/client_channel/client_channel.cc +4 -4
- data/src/core/client_channel/client_channel_filter.cc +14 -14
- data/src/core/client_channel/global_subchannel_pool.cc +4 -4
- data/src/core/client_channel/subchannel.cc +24 -23
- data/src/core/client_channel/subchannel_stream_client.cc +5 -5
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
- data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
- data/src/core/credentials/call/external/external_account_credentials.cc +4 -4
- data/src/core/credentials/call/regional_access_boundary_fetcher.cc +9 -9
- data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +4 -4
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +1 -1
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +9 -9
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +1 -1
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +6 -6
- data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
- data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +4 -4
- data/src/core/credentials/transport/tls/ssl_utils.cc +10 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +10 -10
- data/src/core/credentials/transport/tls/tls_security_connector.h +6 -6
- data/src/core/credentials/transport/tls/tls_utils.h +9 -0
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +15 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -21
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -11
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +14 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame.h +9 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -9
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -2
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +16 -18
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +2 -1
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +277 -189
- data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +40 -17
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +12 -24
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +3 -29
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
- data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/read_context.h +96 -3
- data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
- data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
- data/src/core/ext/transport/chttp2/transport/security_frame.h +8 -8
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +17 -9
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +23 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +5 -5
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h +137 -73
- data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +45 -25
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +6 -6
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.c +4 -4
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +46 -26
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.c +17 -14
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
- data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.c +3 -3
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb.h +185 -23
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.c +20 -12
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -5
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +58 -42
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.c +17 -12
- data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.h +5 -5
- data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +567 -549
- data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
- data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
- data/src/core/filter/ext_proc/ext_proc_filter.cc +1603 -46
- data/src/core/filter/ext_proc/ext_proc_filter.h +55 -22
- data/src/core/filter/ext_proc/ext_proc_messages.cc +106 -51
- data/src/core/filter/ext_proc/ext_proc_messages.h +36 -9
- data/src/core/handshaker/handshaker.cc +4 -4
- data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
- data/src/core/handshaker/security/secure_endpoint.cc +13 -13
- data/src/core/handshaker/security/security_handshaker.cc +6 -6
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
- data/src/core/lib/channel/channel_args.cc +20 -0
- data/src/core/lib/channel/channel_args.h +17 -17
- data/src/core/lib/channel/promise_based_filter.cc +2 -2
- data/src/core/lib/channel/promise_based_filter.h +66 -27
- data/src/core/lib/debug/trace_flags.cc +2 -0
- data/src/core/lib/debug/trace_flags.h +1 -0
- data/src/core/lib/event_engine/ares_resolver.cc +14 -14
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
- data/src/core/lib/event_engine/default_event_engine.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -9
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +16 -14
- data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
- data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +7 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +17 -17
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
- data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
- data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
- data/src/core/lib/experiments/experiments.cc +48 -0
- data/src/core/lib/experiments/experiments.h +24 -0
- data/src/core/lib/iomgr/buffer_list.cc +3 -3
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/combiner.cc +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +4 -4
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_posix.cc +7 -7
- data/src/core/lib/promise/activity.cc +1 -1
- data/src/core/lib/promise/activity.h +1 -1
- data/src/core/lib/promise/arena_promise.h +7 -7
- data/src/core/lib/promise/detail/promise_factory.h +8 -8
- data/src/core/lib/promise/detail/promise_like.h +4 -4
- data/src/core/lib/promise/inter_activity_latch.h +6 -6
- data/src/core/lib/promise/inter_activity_pipe.h +1 -1
- data/src/core/lib/promise/observable.h +3 -3
- data/src/core/lib/promise/party.cc +1 -1
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resource_quota/arena.h +3 -3
- data/src/core/lib/resource_quota/memory_quota.cc +16 -16
- data/src/core/lib/resource_quota/memory_quota.h +1 -1
- data/src/core/lib/resource_quota/thread_quota.cc +3 -3
- data/src/core/lib/security/authorization/audit_logging.cc +5 -5
- data/src/core/lib/security/authorization/authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.h +1 -1
- data/src/core/lib/surface/call.cc +8 -7
- data/src/core/lib/surface/call.h +3 -3
- data/src/core/lib/surface/call_utils.h +4 -0
- data/src/core/lib/surface/channel.cc +1 -1
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/init.cc +7 -7
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +2 -2
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
- data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
- data/src/core/load_balancing/autosharding/autosharding.h +78 -0
- data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
- data/src/core/load_balancing/health_check_client.cc +7 -7
- data/src/core/load_balancing/lb_policy.cc +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +5 -5
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
- data/src/core/load_balancing/ring_hash/ring_hash.cc +109 -37
- data/src/core/load_balancing/rls/rls.cc +23 -17
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +10 -10
- data/src/core/load_balancing/xds/cds.cc +6 -5
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -2
- data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
- data/src/core/mitigation_engine/mitigation_engine.h +28 -4
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
- data/src/core/resolver/dns/dns_resolver.cc +7 -7
- data/src/core/resolver/fake/fake_resolver.cc +5 -5
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -30
- data/src/core/server/server.cc +30 -30
- data/src/core/server/server.h +4 -3
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/xds_server_config_fetcher_legacy.cc +15 -15
- data/src/core/telemetry/default_tcp_tracer.cc +1 -1
- data/src/core/telemetry/instrument.cc +30 -16
- data/src/core/telemetry/instrument.h +3 -3
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
- data/src/core/tsi/ssl_transport_security.cc +46 -13
- data/src/core/tsi/ssl_transport_security.h +7 -0
- data/src/core/tsi/ssl_transport_security_utils.cc +16 -6
- data/src/core/util/event_log.cc +3 -3
- data/src/core/util/http_client/httpcli.cc +5 -5
- data/src/core/util/http_client/httpcli.h +1 -1
- data/src/core/util/json/json_object_loader.cc +7 -0
- data/src/core/util/json/json_object_loader.h +17 -2
- data/src/core/util/latent_see.cc +123 -36
- data/src/core/util/latent_see.h +14 -1
- data/src/core/util/mpscq.cc +1 -1
- data/src/core/util/notification.h +4 -4
- data/src/core/util/sync.h +20 -6
- data/src/core/util/table.h +20 -22
- data/src/core/util/work_serializer.cc +2 -2
- data/src/core/xds/grpc/blackboard.cc +4 -3
- data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
- data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
- data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +2 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +8 -8
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_endpoint.cc +1 -1
- data/src/core/xds/grpc/xds_endpoint_parser.cc +11 -0
- data/src/core/xds/grpc/xds_grpc_service_parser.cc +12 -10
- data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +17 -14
- data/src/core/xds/grpc/xds_matcher.h +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +125 -85
- data/src/core/xds/grpc/xds_transport_grpc.h +19 -4
- data/src/core/xds/xds_client/lrs_client.cc +22 -19
- data/src/core/xds/xds_client/xds_client.cc +19 -16
- data/src/core/xds/xds_client/xds_transport.h +49 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
- data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
- data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
- data/third_party/abseil-cpp/absl/base/casts.h +135 -2
- data/third_party/abseil-cpp/absl/base/config.h +63 -41
- data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
- data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
- data/third_party/abseil-cpp/absl/base/macros.h +76 -37
- data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
- data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
- data/third_party/abseil-cpp/absl/base/options.h +46 -18
- data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
- data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
- data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
- data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
- data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
- data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
- data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
- data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
- data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
- data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
- data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
- data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
- data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
- data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
- data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
- data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
- data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
- data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
- data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
- data/third_party/abseil-cpp/absl/log/log.h +2 -2
- data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
- data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
- data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
- data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
- data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
- data/third_party/abseil-cpp/absl/status/status.cc +66 -70
- data/third_party/abseil-cpp/absl/status/status.h +254 -23
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
- data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
- data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
- data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
- data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
- data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
- data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
- data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
- data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
- data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
- data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
- data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
- data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
- data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
- data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
- data/third_party/abseil-cpp/absl/time/clock.h +3 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
- data/third_party/abseil-cpp/absl/time/format.cc +3 -10
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- data/third_party/abseil-cpp/absl/time/time.cc +4 -4
- data/third_party/abseil-cpp/absl/time/time.h +14 -13
- data/third_party/abseil-cpp/absl/types/compare.h +64 -63
- data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
- data/third_party/abseil-cpp/absl/types/optional.h +31 -4
- data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
- data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
- data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
- data/third_party/abseil-cpp/absl/types/span.h +67 -38
- data/third_party/abseil-cpp/absl/types/variant.h +75 -18
- data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
- data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
- data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
- data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
- data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
- data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
- data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
- data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
- data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
- data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
- data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
- data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
- data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
- data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
- data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
- data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
- data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
- data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
- data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
- data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
- data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
- data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
- data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
- data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
- data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
- data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
- data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
- data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
- data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
- data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
- data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
- data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
- data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
- data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
- data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
- data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
- data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
- data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
- data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
- data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
- data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
- data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
- data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
- data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
- data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
- data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
- data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
- data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
- data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
- data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
- data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
- data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
- data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
- data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
- data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
- data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
- data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
- data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
- data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
- data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
- data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
- data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
- data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
- data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
- data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
- data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
- data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
- data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
- data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
- data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
- data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
- data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
- data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
- data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
- data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
- data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
- data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
- data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
- data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
- data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
- data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
- data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
- data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
- data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
- data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
- data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
- data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
- data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
- data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
- data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
- data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
- data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
- data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
- data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
- data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
- data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
- data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
- data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
- data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
- data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
- data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
- data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
- data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
- data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
- data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
- data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
- data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
- data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
- data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
- data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
- data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
- data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
- data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
- data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
- data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
- data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
- data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
- data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
- data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
- data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
- data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
- data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
- data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
- data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
- data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
- data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
- data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
- data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
- data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
- data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
- data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
- data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
- data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
- data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
- data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
- data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
- data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
- data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
- data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
- data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
- data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
- data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
- data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
- data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
- data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
- data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
- data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
- data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
- data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
- data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
- data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
- data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
- data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
- data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
- data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
- data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
- data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
- data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
- data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
- data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
- data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
- data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
- data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
- data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
- data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
- data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
- data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
- data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
- data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
- data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
- data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
- data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
- data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
- data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
- data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
- data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
- data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
- data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
- data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
- data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
- data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
- data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
- data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
- data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
- data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
- data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
- data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
- data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
- data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
- data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
- data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
- data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
- data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
- data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
- data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
- data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
- data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
- data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
- data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
- data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
- data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
- data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
- data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
- data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
- data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
- data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
- data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
- data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
- data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
- data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
- data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
- data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
- data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
- data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
- data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
- data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
- data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
- data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
- data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
- data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
- data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
- data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
- data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
- data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
- data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
- data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
- data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
- data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
- data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
- data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
- data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
- data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
- data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
- data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
- data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
- data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
- data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
- data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
- data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
- data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
- data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
- data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
- data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
- data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
- data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
- data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
- data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
- data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
- data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
- data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
- data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
- data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
- data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
- data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
- data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
- data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
- data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
- data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
- data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
- data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
- data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
- data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
- data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
- data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
- data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
- data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
- data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
- data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
- data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
- data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
- data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
- data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
- data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
- data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
- data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
- data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
- data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
- data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
- data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
- data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
- data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
- data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
- data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
- data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
- data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
- data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
- data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
- data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
- data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
- data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
- data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
- data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
- data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
- data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
- data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
- data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
- data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
- data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
- data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
- data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
- data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
- data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
- data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
- data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
- data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
- data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
- data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
- data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
- data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
- data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
- data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
- data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
- data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
- data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
- metadata +77 -52
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -240
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -157
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -72
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
- data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
- data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
- data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
- data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
- data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
- data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
- data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
- data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
- data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
- data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
- data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
- data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
- data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
- data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
- data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
#include <openssl/err.h> // for ERR_print_errors_fp
|
|
24
24
|
#include <openssl/ex_data.h>
|
|
25
25
|
#include <openssl/stack.h>
|
|
26
|
-
#include <openssl/thread.h>
|
|
27
26
|
|
|
28
27
|
#if defined(__cplusplus)
|
|
29
28
|
extern "C" {
|
|
@@ -38,52 +37,66 @@ extern "C" {
|
|
|
38
37
|
DEFINE_STACK_OF(BIO)
|
|
39
38
|
|
|
40
39
|
// BIO_new creates a new BIO with the given method and a reference count of one.
|
|
41
|
-
// It returns the fresh
|
|
40
|
+
// It returns the fresh `BIO`, or NULL on error.
|
|
42
41
|
OPENSSL_EXPORT BIO *BIO_new(const BIO_METHOD *method);
|
|
43
42
|
|
|
44
|
-
// BIO_free decrements the reference count of
|
|
43
|
+
// BIO_free decrements the reference count of `bio`. If the reference count
|
|
45
44
|
// drops to zero, it calls the destroy callback, if present, on the method and
|
|
46
|
-
// frees
|
|
47
|
-
//
|
|
45
|
+
// frees `bio` itself. If `bio` is part of a chain (see `BIO_push`), this will
|
|
46
|
+
// also free the next `BIO` in the chain, and so on.
|
|
48
47
|
//
|
|
49
|
-
// It returns one
|
|
48
|
+
// It returns one if `bio` was NULL or freed. It returns zero if `bio` was
|
|
49
|
+
// shared and some other owner still owns a reference count to it.
|
|
50
|
+
//
|
|
51
|
+
// WARNING: Do not use the return value. Returning zero is not a sign of an
|
|
52
|
+
// error, nor an indication to retry the operation. `BIO` is a reference-counted
|
|
53
|
+
// type. A given `BIO` object may be shared between multiple parts of an
|
|
54
|
+
// application. To correctly track the reference count, without leaks or
|
|
55
|
+
// use-after-free, each part of the application must release only the reference
|
|
56
|
+
// counts it owns.
|
|
50
57
|
OPENSSL_EXPORT int BIO_free(BIO *bio);
|
|
51
58
|
|
|
52
|
-
// BIO_vfree performs the same actions as
|
|
59
|
+
// BIO_vfree performs the same actions as `BIO_free`, but has a void return
|
|
53
60
|
// value. This is provided for API-compat.
|
|
54
61
|
//
|
|
55
62
|
// TODO(fork): remove.
|
|
56
63
|
OPENSSL_EXPORT void BIO_vfree(BIO *bio);
|
|
57
64
|
|
|
58
|
-
// BIO_up_ref increments the reference count of
|
|
65
|
+
// BIO_up_ref increments the reference count of `bio` and returns one.
|
|
59
66
|
OPENSSL_EXPORT int BIO_up_ref(BIO *bio);
|
|
60
67
|
|
|
61
68
|
|
|
62
69
|
// Basic I/O.
|
|
63
70
|
|
|
64
|
-
// BIO_read attempts to read
|
|
71
|
+
// BIO_read attempts to read `len` bytes into `data`. It returns the number of
|
|
65
72
|
// bytes read, zero on EOF, or a negative number on error.
|
|
66
73
|
OPENSSL_EXPORT int BIO_read(BIO *bio, void *data, int len);
|
|
67
74
|
|
|
68
|
-
// BIO_gets reads a line from
|
|
75
|
+
// BIO_gets reads a line from `bio` and writes at most `size` bytes into `buf`.
|
|
69
76
|
// It returns the number of bytes read or a negative number on error. This
|
|
70
77
|
// function's output always includes a trailing NUL byte, so it will read at
|
|
71
|
-
// most
|
|
78
|
+
// most `size - 1` bytes.
|
|
72
79
|
//
|
|
73
80
|
// If the function read a complete line, the output will include the newline
|
|
74
|
-
// character, '\n'. If no newline was found before
|
|
81
|
+
// character, '\n'. If no newline was found before `size - 1` bytes or EOF, it
|
|
75
82
|
// outputs the bytes which were available.
|
|
76
83
|
OPENSSL_EXPORT int BIO_gets(BIO *bio, char *buf, int size);
|
|
77
84
|
|
|
78
|
-
//
|
|
85
|
+
// BIO_write_ex writes `len` bytes from `data` to `bio`. On success, it returns
|
|
86
|
+
// one and sets `*out_written` to the number of bytes written. Otherwise, it
|
|
87
|
+
// returns zero. `out_written` may be NULL to ignore the value.
|
|
88
|
+
OPENSSL_EXPORT int BIO_write_ex(BIO *bio, const void *data, size_t len,
|
|
89
|
+
size_t *out_written);
|
|
90
|
+
|
|
91
|
+
// BIO_write writes `len` bytes from `data` to `bio`. It returns the number of
|
|
79
92
|
// bytes written or a negative number on error.
|
|
80
93
|
OPENSSL_EXPORT int BIO_write(BIO *bio, const void *data, int len);
|
|
81
94
|
|
|
82
|
-
// BIO_write_all writes
|
|
95
|
+
// BIO_write_all writes `len` bytes from `data` to `bio`, looping as necessary.
|
|
83
96
|
// It returns one if all bytes were successfully written and zero on error.
|
|
84
97
|
OPENSSL_EXPORT int BIO_write_all(BIO *bio, const void *data, size_t len);
|
|
85
98
|
|
|
86
|
-
// BIO_puts writes a NUL terminated string from
|
|
99
|
+
// BIO_puts writes a NUL terminated string from `buf` to `bio`. It returns the
|
|
87
100
|
// number of bytes written or a negative number on error.
|
|
88
101
|
OPENSSL_EXPORT int BIO_puts(BIO *bio, const char *buf);
|
|
89
102
|
|
|
@@ -95,43 +108,53 @@ OPENSSL_EXPORT int BIO_flush(BIO *bio);
|
|
|
95
108
|
// Low-level control functions.
|
|
96
109
|
//
|
|
97
110
|
// These are generic functions for sending control requests to a BIO. In
|
|
98
|
-
// general one should use the wrapper functions like
|
|
111
|
+
// general one should use the wrapper functions like `BIO_get_close`.
|
|
99
112
|
|
|
100
|
-
// BIO_ctrl sends the control request
|
|
101
|
-
// be one of the
|
|
113
|
+
// BIO_ctrl sends the control request `cmd` to `bio`. The `cmd` argument should
|
|
114
|
+
// be one of the `BIO_C_*` values.
|
|
102
115
|
OPENSSL_EXPORT long BIO_ctrl(BIO *bio, int cmd, long larg, void *parg);
|
|
103
116
|
|
|
104
|
-
// BIO_ptr_ctrl acts like
|
|
105
|
-
// pointer as
|
|
117
|
+
// BIO_ptr_ctrl acts like `BIO_ctrl` but passes the address of a `void*`
|
|
118
|
+
// pointer as `parg` and returns the value that is written to it, or NULL if
|
|
106
119
|
// the control request returns <= 0.
|
|
107
120
|
OPENSSL_EXPORT char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg);
|
|
108
121
|
|
|
109
|
-
// BIO_int_ctrl acts like
|
|
110
|
-
// as
|
|
122
|
+
// BIO_int_ctrl acts like `BIO_ctrl` but passes the address of a copy of `iarg`
|
|
123
|
+
// as `parg`.
|
|
111
124
|
OPENSSL_EXPORT long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg);
|
|
112
125
|
|
|
113
|
-
// BIO_reset resets
|
|
114
|
-
// depends on the concrete type of
|
|
115
|
-
// otherwise.
|
|
126
|
+
// BIO_reset resets `bio` to its initial state, the precise meaning of which
|
|
127
|
+
// depends on the concrete type of `bio`. It normally returns one on success and
|
|
128
|
+
// <= 0 otherwise. However, for file and fd BIOs, it returns zero on success and
|
|
129
|
+
// a negative number on error.
|
|
130
|
+
//
|
|
131
|
+
// WARNING: This function's return value conventions differs from most functions
|
|
132
|
+
// in this library.
|
|
116
133
|
OPENSSL_EXPORT int BIO_reset(BIO *bio);
|
|
117
134
|
|
|
118
|
-
// BIO_eof returns non-zero when
|
|
119
|
-
// meaning of which depends on the concrete type of
|
|
135
|
+
// BIO_eof returns non-zero when `bio` has reached end-of-file. The precise
|
|
136
|
+
// meaning of which depends on the concrete type of `bio`. Note that in the
|
|
120
137
|
// case of BIO_pair this always returns non-zero.
|
|
121
138
|
OPENSSL_EXPORT int BIO_eof(BIO *bio);
|
|
122
139
|
|
|
123
|
-
// BIO_set_flags ORs
|
|
140
|
+
// BIO_set_flags ORs `flags` with `bio->flags`. Unless otherwise documented,
|
|
141
|
+
// flags are private to either BoringSSL or the custom `BIO_METHOD`.
|
|
124
142
|
OPENSSL_EXPORT void BIO_set_flags(BIO *bio, int flags);
|
|
125
143
|
|
|
126
|
-
//
|
|
144
|
+
// BIO_clear_flags ANDs `bio->flags` with the bitwise-complement of `flags`.
|
|
145
|
+
// Unless otherwise documented, flags are private to either BoringSSL or the
|
|
146
|
+
// custom `BIO_METHOD`.
|
|
147
|
+
OPENSSL_EXPORT void BIO_clear_flags(BIO *bio, int flags);
|
|
148
|
+
|
|
149
|
+
// BIO_test_flags returns `bio->flags` AND `flags`.
|
|
127
150
|
OPENSSL_EXPORT int BIO_test_flags(const BIO *bio, int flags);
|
|
128
151
|
|
|
129
|
-
// BIO_should_read returns non-zero if
|
|
152
|
+
// BIO_should_read returns non-zero if `bio` encountered a temporary error
|
|
130
153
|
// while reading (i.e. EAGAIN), indicating that the caller should retry the
|
|
131
154
|
// read.
|
|
132
155
|
OPENSSL_EXPORT int BIO_should_read(const BIO *bio);
|
|
133
156
|
|
|
134
|
-
// BIO_should_write returns non-zero if
|
|
157
|
+
// BIO_should_write returns non-zero if `bio` encountered a temporary error
|
|
135
158
|
// while writing (i.e. EAGAIN), indicating that the caller should retry the
|
|
136
159
|
// write.
|
|
137
160
|
OPENSSL_EXPORT int BIO_should_write(const BIO *bio);
|
|
@@ -141,10 +164,10 @@ OPENSSL_EXPORT int BIO_should_write(const BIO *bio);
|
|
|
141
164
|
// it was a permanent error and it returns zero.
|
|
142
165
|
OPENSSL_EXPORT int BIO_should_retry(const BIO *bio);
|
|
143
166
|
|
|
144
|
-
// BIO_should_io_special returns non-zero if
|
|
167
|
+
// BIO_should_io_special returns non-zero if `bio` encountered a temporary
|
|
145
168
|
// error while performing a special I/O operation, indicating that the caller
|
|
146
169
|
// should retry. The operation that caused the error is returned by
|
|
147
|
-
//
|
|
170
|
+
// `BIO_get_retry_reason`.
|
|
148
171
|
OPENSSL_EXPORT int BIO_should_io_special(const BIO *bio);
|
|
149
172
|
|
|
150
173
|
// BIO_RR_CONNECT indicates that a connect would have blocked
|
|
@@ -154,83 +177,62 @@ OPENSSL_EXPORT int BIO_should_io_special(const BIO *bio);
|
|
|
154
177
|
#define BIO_RR_ACCEPT 0x03
|
|
155
178
|
|
|
156
179
|
// BIO_get_retry_reason returns the special I/O operation that needs to be
|
|
157
|
-
// retried. The return value is one of the
|
|
180
|
+
// retried. The return value is one of the `BIO_RR_*` values.
|
|
158
181
|
OPENSSL_EXPORT int BIO_get_retry_reason(const BIO *bio);
|
|
159
182
|
|
|
160
183
|
// BIO_set_retry_reason sets the special I/O operation that needs to be retried
|
|
161
|
-
// to
|
|
184
|
+
// to `reason`, which should be one of the `BIO_RR_*` values.
|
|
162
185
|
OPENSSL_EXPORT void BIO_set_retry_reason(BIO *bio, int reason);
|
|
163
186
|
|
|
164
|
-
//
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
// BIO_set_retry_read sets the |BIO_FLAGS_READ| and |BIO_FLAGS_SHOULD_RETRY|
|
|
168
|
-
// flags on |bio|.
|
|
187
|
+
// BIO_set_retry_read sets the `BIO_FLAGS_READ` and `BIO_FLAGS_SHOULD_RETRY`
|
|
188
|
+
// flags on `bio`.
|
|
169
189
|
OPENSSL_EXPORT void BIO_set_retry_read(BIO *bio);
|
|
170
190
|
|
|
171
|
-
// BIO_set_retry_write sets the
|
|
172
|
-
// flags on
|
|
191
|
+
// BIO_set_retry_write sets the `BIO_FLAGS_WRITE` and `BIO_FLAGS_SHOULD_RETRY`
|
|
192
|
+
// flags on `bio`.
|
|
173
193
|
OPENSSL_EXPORT void BIO_set_retry_write(BIO *bio);
|
|
174
194
|
|
|
175
|
-
// BIO_get_retry_flags gets the
|
|
176
|
-
//
|
|
195
|
+
// BIO_get_retry_flags gets the `BIO_FLAGS_READ`, `BIO_FLAGS_WRITE`,
|
|
196
|
+
// `BIO_FLAGS_IO_SPECIAL` and `BIO_FLAGS_SHOULD_RETRY` flags from `bio`.
|
|
177
197
|
OPENSSL_EXPORT int BIO_get_retry_flags(BIO *bio);
|
|
178
198
|
|
|
179
|
-
// BIO_clear_retry_flags clears the
|
|
180
|
-
//
|
|
199
|
+
// BIO_clear_retry_flags clears the `BIO_FLAGS_READ`, `BIO_FLAGS_WRITE`,
|
|
200
|
+
// `BIO_FLAGS_IO_SPECIAL` and `BIO_FLAGS_SHOULD_RETRY` flags from `bio`.
|
|
181
201
|
OPENSSL_EXPORT void BIO_clear_retry_flags(BIO *bio);
|
|
182
202
|
|
|
183
|
-
// BIO_method_type returns the type of
|
|
203
|
+
// BIO_method_type returns the type of `bio`, which is one of the `BIO_TYPE_*`
|
|
184
204
|
// values.
|
|
185
205
|
OPENSSL_EXPORT int BIO_method_type(const BIO *bio);
|
|
186
206
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
#define BIO_CB_CTRL 0x06
|
|
194
|
-
|
|
195
|
-
// The callback is called before and after the underling operation,
|
|
196
|
-
// The BIO_CB_RETURN flag indicates if it is after the call
|
|
197
|
-
#define BIO_CB_RETURN 0x80
|
|
198
|
-
|
|
199
|
-
// bio_info_cb is the type of a callback function that can be called for most
|
|
200
|
-
// BIO operations. The |event| argument is one of |BIO_CB_*| and can be ORed
|
|
201
|
-
// with |BIO_CB_RETURN| if the callback is being made after the operation in
|
|
202
|
-
// question. In that case, |return_value| will contain the return value from
|
|
203
|
-
// the operation.
|
|
204
|
-
typedef long (*bio_info_cb)(BIO *bio, int event, const char *parg, int cmd,
|
|
205
|
-
long larg, long return_value);
|
|
206
|
-
|
|
207
|
-
// BIO_callback_ctrl allows the callback function to be manipulated. The |cmd|
|
|
208
|
-
// arg will generally be |BIO_CTRL_SET_CALLBACK| but arbitrary command values
|
|
209
|
-
// can be interpreted by the |BIO|.
|
|
210
|
-
OPENSSL_EXPORT long BIO_callback_ctrl(BIO *bio, int cmd, bio_info_cb fp);
|
|
207
|
+
typedef int BIO_info_cb(BIO *, int, int);
|
|
208
|
+
|
|
209
|
+
// BIO_callback_ctrl allows the callback function to be manipulated. The `cmd`
|
|
210
|
+
// arg will generally be `BIO_CTRL_SET_CALLBACK` but arbitrary command values
|
|
211
|
+
// can be interpreted by the `BIO`.
|
|
212
|
+
OPENSSL_EXPORT long BIO_callback_ctrl(BIO *bio, int cmd, BIO_info_cb *fp);
|
|
211
213
|
|
|
212
214
|
// BIO_pending returns the number of bytes pending to be read.
|
|
213
215
|
OPENSSL_EXPORT size_t BIO_pending(const BIO *bio);
|
|
214
216
|
|
|
215
|
-
// BIO_ctrl_pending calls
|
|
217
|
+
// BIO_ctrl_pending calls `BIO_pending` and exists only for compatibility with
|
|
216
218
|
// OpenSSL.
|
|
217
219
|
OPENSSL_EXPORT size_t BIO_ctrl_pending(const BIO *bio);
|
|
218
220
|
|
|
219
221
|
// BIO_wpending returns the number of bytes pending to be written.
|
|
220
222
|
OPENSSL_EXPORT size_t BIO_wpending(const BIO *bio);
|
|
221
223
|
|
|
222
|
-
// BIO_set_close sets the close flag for
|
|
223
|
-
// the type of
|
|
224
|
+
// BIO_set_close sets the close flag for `bio`. The meaning of which depends on
|
|
225
|
+
// the type of `bio` but, for example, a memory BIO interprets the close flag
|
|
224
226
|
// as meaning that it owns its buffer. It returns one on success and zero
|
|
225
227
|
// otherwise.
|
|
226
228
|
OPENSSL_EXPORT int BIO_set_close(BIO *bio, int close_flag);
|
|
227
229
|
|
|
228
230
|
// BIO_number_read returns the number of bytes that have been read from
|
|
229
|
-
//
|
|
231
|
+
// `bio`.
|
|
230
232
|
OPENSSL_EXPORT uint64_t BIO_number_read(const BIO *bio);
|
|
231
233
|
|
|
232
234
|
// BIO_number_written returns the number of bytes that have been written to
|
|
233
|
-
//
|
|
235
|
+
// `bio`.
|
|
234
236
|
OPENSSL_EXPORT uint64_t BIO_number_written(const BIO *bio);
|
|
235
237
|
|
|
236
238
|
|
|
@@ -240,40 +242,41 @@ OPENSSL_EXPORT uint64_t BIO_number_written(const BIO *bio);
|
|
|
240
242
|
// the next etc. The most common case is a buffering BIO, which accepts and
|
|
241
243
|
// buffers writes until flushed into the next BIO in the chain.
|
|
242
244
|
|
|
243
|
-
// BIO_push adds
|
|
244
|
-
// It returns
|
|
245
|
+
// BIO_push adds `appended_bio` to the end of the chain with `bio` at the head.
|
|
246
|
+
// It returns `bio`. Note that `appended_bio` may be the head of a chain itself
|
|
245
247
|
// and thus this function can be used to join two chains.
|
|
246
248
|
//
|
|
247
|
-
// BIO_push takes ownership of the caller's reference to
|
|
249
|
+
// BIO_push takes ownership of the caller's reference to `appended_bio`.
|
|
248
250
|
OPENSSL_EXPORT BIO *BIO_push(BIO *bio, BIO *appended_bio);
|
|
249
251
|
|
|
250
|
-
// BIO_pop removes
|
|
252
|
+
// BIO_pop removes `bio` from the head of a chain and returns the next BIO in
|
|
251
253
|
// the chain, or NULL if there is no next BIO.
|
|
252
254
|
//
|
|
253
|
-
// The caller takes ownership of the chain's reference to
|
|
255
|
+
// The caller takes ownership of the chain's reference to `bio`.
|
|
254
256
|
OPENSSL_EXPORT BIO *BIO_pop(BIO *bio);
|
|
255
257
|
|
|
256
|
-
// BIO_next returns the next BIO in the chain after
|
|
258
|
+
// BIO_next returns the next BIO in the chain after `bio`, or NULL if there is
|
|
257
259
|
// no such BIO.
|
|
258
260
|
OPENSSL_EXPORT BIO *BIO_next(BIO *bio);
|
|
259
261
|
|
|
260
|
-
// BIO_free_all calls |BIO_free|.
|
|
261
|
-
//
|
|
262
|
-
// TODO(fork): update callers and remove.
|
|
263
|
-
OPENSSL_EXPORT void BIO_free_all(BIO *bio);
|
|
264
|
-
|
|
265
262
|
// BIO_find_type walks a chain of BIOs and returns the first that matches
|
|
266
|
-
//
|
|
263
|
+
// `type`, which is one of the `BIO_TYPE_*` values.
|
|
264
|
+
//
|
|
265
|
+
// If `type & 0xff` is non-zero, i.e. `type` is a complete type and contains an
|
|
266
|
+
// "index" component, the function looks for an exact match. If `type & 0xff` is
|
|
267
|
+
// zero, i.e. `type` just specifies `BIO_TYPE_DESCRIPTOR`, `BIO_TYPE_FILTER`,
|
|
268
|
+
// and `BIO_TYPE_SOURCE_SINK` bits, the function looks for any BIO whose type
|
|
269
|
+
// contains at least one of those bits.
|
|
267
270
|
OPENSSL_EXPORT BIO *BIO_find_type(BIO *bio, int type);
|
|
268
271
|
|
|
269
|
-
// BIO_copy_next_retry sets the retry flags and
|
|
272
|
+
// BIO_copy_next_retry sets the retry flags and `retry_reason` of `bio` from
|
|
270
273
|
// the next BIO in the chain.
|
|
271
274
|
OPENSSL_EXPORT void BIO_copy_next_retry(BIO *bio);
|
|
272
275
|
|
|
273
276
|
|
|
274
277
|
// Printf functions.
|
|
275
278
|
|
|
276
|
-
// BIO_printf behaves like
|
|
279
|
+
// BIO_printf behaves like `printf` but outputs to `bio` rather than a `FILE`.
|
|
277
280
|
// It returns the number of bytes written or a negative number on error.
|
|
278
281
|
OPENSSL_EXPORT int BIO_printf(BIO *bio, const char *format, ...)
|
|
279
282
|
OPENSSL_PRINTF_FORMAT_FUNC(2, 3);
|
|
@@ -281,98 +284,98 @@ OPENSSL_EXPORT int BIO_printf(BIO *bio, const char *format, ...)
|
|
|
281
284
|
|
|
282
285
|
// Utility functions.
|
|
283
286
|
|
|
284
|
-
// BIO_indent prints min(
|
|
287
|
+
// BIO_indent prints min(`indent`, `max_indent`) spaces. It returns one on
|
|
285
288
|
// success and zero otherwise.
|
|
286
289
|
OPENSSL_EXPORT int BIO_indent(BIO *bio, unsigned indent, unsigned max_indent);
|
|
287
290
|
|
|
288
|
-
// BIO_hexdump writes a hex dump of
|
|
289
|
-
// by
|
|
291
|
+
// BIO_hexdump writes a hex dump of `data` to `bio`. Each line will be indented
|
|
292
|
+
// by `indent` spaces. It returns one on success and zero otherwise.
|
|
290
293
|
OPENSSL_EXPORT int BIO_hexdump(BIO *bio, const uint8_t *data, size_t len,
|
|
291
294
|
unsigned indent);
|
|
292
295
|
|
|
293
|
-
// ERR_print_errors prints the current contents of the error stack to
|
|
296
|
+
// ERR_print_errors prints the current contents of the error stack to `bio`
|
|
294
297
|
// using human readable strings where possible.
|
|
295
298
|
OPENSSL_EXPORT void ERR_print_errors(BIO *bio);
|
|
296
299
|
|
|
297
|
-
// BIO_read_asn1 reads a single ASN.1 object from
|
|
298
|
-
//
|
|
299
|
-
//
|
|
300
|
+
// BIO_read_asn1 reads a single ASN.1 object from `bio`. If successful it sets
|
|
301
|
+
// `*out` to be an allocated buffer (that should be freed with `OPENSSL_free`),
|
|
302
|
+
// `*out_size` to the length, in bytes, of that buffer and returns one.
|
|
300
303
|
// Otherwise it returns zero.
|
|
301
304
|
//
|
|
302
|
-
// If the length of the object is greater than
|
|
305
|
+
// If the length of the object is greater than `max_len` or 2^32 then the
|
|
303
306
|
// function will fail. Long-form tags are not supported. If the length of the
|
|
304
|
-
// object is indefinite the full contents of
|
|
305
|
-
// greater than
|
|
307
|
+
// object is indefinite the full contents of `bio` are read, unless it would be
|
|
308
|
+
// greater than `max_len`, in which case the function fails.
|
|
306
309
|
//
|
|
307
310
|
// If the function fails then some unknown amount of data may have been read
|
|
308
|
-
// from
|
|
311
|
+
// from `bio`.
|
|
309
312
|
OPENSSL_EXPORT int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len,
|
|
310
313
|
size_t max_len);
|
|
311
314
|
|
|
312
315
|
|
|
313
316
|
// Memory BIOs.
|
|
314
317
|
//
|
|
315
|
-
// Memory BIOs can be used as a read-only source (with
|
|
316
|
-
// writable sink (with
|
|
318
|
+
// Memory BIOs can be used as a read-only source (with `BIO_new_mem_buf`) or a
|
|
319
|
+
// writable sink (with `BIO_new`, `BIO_s_mem` and `BIO_mem_contents`). Data
|
|
317
320
|
// written to a writable, memory BIO can be recalled by reading from it.
|
|
318
321
|
//
|
|
319
|
-
// Calling
|
|
322
|
+
// Calling `BIO_reset` on a read-only BIO resets it to the original contents.
|
|
320
323
|
// On a writable BIO, it clears any data.
|
|
321
324
|
//
|
|
322
|
-
// If the close flag is set to
|
|
323
|
-
// underlying
|
|
325
|
+
// If the close flag is set to `BIO_NOCLOSE` (not the default) then the
|
|
326
|
+
// underlying `BUF_MEM` will not be freed when the `BIO` is freed.
|
|
324
327
|
//
|
|
325
|
-
// Memory BIOs support
|
|
328
|
+
// Memory BIOs support `BIO_gets` and `BIO_puts`.
|
|
326
329
|
//
|
|
327
|
-
//
|
|
330
|
+
// `BIO_ctrl_pending` returns the number of bytes currently stored.
|
|
328
331
|
|
|
329
|
-
// BIO_NOCLOSE and
|
|
332
|
+
// BIO_NOCLOSE and `BIO_CLOSE` can be used as symbolic arguments when a "close
|
|
330
333
|
// flag" is passed to a BIO function.
|
|
331
334
|
#define BIO_NOCLOSE 0
|
|
332
335
|
#define BIO_CLOSE 1
|
|
333
336
|
|
|
334
|
-
// BIO_s_mem returns a
|
|
337
|
+
// BIO_s_mem returns a `BIO_METHOD` that uses a in-memory buffer.
|
|
335
338
|
OPENSSL_EXPORT const BIO_METHOD *BIO_s_mem(void);
|
|
336
339
|
|
|
337
|
-
// BIO_new_mem_buf creates read-only BIO that reads from
|
|
340
|
+
// BIO_new_mem_buf creates read-only BIO that reads from `len` bytes at `buf`.
|
|
338
341
|
// It returns the BIO or NULL on error. This function does not copy or take
|
|
339
|
-
// ownership of
|
|
340
|
-
// outlives the
|
|
342
|
+
// ownership of `buf`. The caller must ensure the memory pointed to by `buf`
|
|
343
|
+
// outlives the `BIO`.
|
|
341
344
|
//
|
|
342
|
-
// If
|
|
345
|
+
// If `len` is negative, then `buf` is treated as a NUL-terminated string, but
|
|
343
346
|
// don't depend on this in new code.
|
|
344
347
|
OPENSSL_EXPORT BIO *BIO_new_mem_buf(const void *buf, ossl_ssize_t len);
|
|
345
348
|
|
|
346
|
-
// BIO_mem_contents sets
|
|
347
|
-
//
|
|
349
|
+
// BIO_mem_contents sets `*out_contents` to point to the current contents of
|
|
350
|
+
// `bio` and `*out_len` to contain the length of that data. It returns one on
|
|
348
351
|
// success and zero otherwise.
|
|
349
352
|
OPENSSL_EXPORT int BIO_mem_contents(const BIO *bio,
|
|
350
353
|
const uint8_t **out_contents,
|
|
351
354
|
size_t *out_len);
|
|
352
355
|
|
|
353
|
-
// BIO_get_mem_data sets
|
|
356
|
+
// BIO_get_mem_data sets `*contents` to point to the current contents of `bio`
|
|
354
357
|
// and returns the length of the data.
|
|
355
358
|
//
|
|
356
|
-
// WARNING: don't use this, use
|
|
359
|
+
// WARNING: don't use this, use `BIO_mem_contents`. A return value of zero from
|
|
357
360
|
// this function can mean either that it failed or that the memory buffer is
|
|
358
361
|
// empty.
|
|
359
362
|
OPENSSL_EXPORT long BIO_get_mem_data(BIO *bio, char **contents);
|
|
360
363
|
|
|
361
|
-
// BIO_get_mem_ptr sets
|
|
362
|
-
//
|
|
364
|
+
// BIO_get_mem_ptr sets `*out` to a BUF_MEM containing the current contents of
|
|
365
|
+
// `bio`. It returns one on success or zero on error.
|
|
363
366
|
OPENSSL_EXPORT int BIO_get_mem_ptr(BIO *bio, BUF_MEM **out);
|
|
364
367
|
|
|
365
|
-
// BIO_set_mem_buf sets
|
|
366
|
-
// non-zero, then
|
|
368
|
+
// BIO_set_mem_buf sets `b` as the contents of `bio`. If `take_ownership` is
|
|
369
|
+
// non-zero, then `b` will be freed when `bio` is closed. Returns one on
|
|
367
370
|
// success or zero otherwise.
|
|
368
371
|
OPENSSL_EXPORT int BIO_set_mem_buf(BIO *bio, BUF_MEM *b, int take_ownership);
|
|
369
372
|
|
|
370
373
|
// BIO_set_mem_eof_return sets the value that will be returned from reading
|
|
371
|
-
//
|
|
372
|
-
// return EOF (that is it will return zero and
|
|
373
|
-
// false). If
|
|
374
|
-
// is empty and it will set the read retry flag (that is
|
|
375
|
-
// true). To avoid ambiguity with a normal positive return value,
|
|
374
|
+
// `bio` when empty. If `eof_value` is zero then an empty memory BIO will
|
|
375
|
+
// return EOF (that is it will return zero and `BIO_should_retry` will be
|
|
376
|
+
// false). If `eof_value` is non zero then it will return `eof_value` when it
|
|
377
|
+
// is empty and it will set the read retry flag (that is `BIO_read_retry` is
|
|
378
|
+
// true). To avoid ambiguity with a normal positive return value, `eof_value`
|
|
376
379
|
// should be set to a negative value, typically -1.
|
|
377
380
|
//
|
|
378
381
|
// For a read-only BIO, the default is zero (EOF). For a writable BIO, the
|
|
@@ -382,171 +385,171 @@ OPENSSL_EXPORT int BIO_set_mem_eof_return(BIO *bio, int eof_value);
|
|
|
382
385
|
|
|
383
386
|
// File descriptor BIOs.
|
|
384
387
|
//
|
|
385
|
-
// File descriptor BIOs are wrappers around the system's
|
|
386
|
-
// functions. If the close flag is set then then
|
|
388
|
+
// File descriptor BIOs are wrappers around the system's `read` and `write`
|
|
389
|
+
// functions. If the close flag is set then then `close` is called on the
|
|
387
390
|
// underlying file descriptor when the BIO is freed.
|
|
388
391
|
//
|
|
389
|
-
//
|
|
390
|
-
//
|
|
392
|
+
// `BIO_reset` attempts to seek the file pointer to the start of file using
|
|
393
|
+
// `lseek`.
|
|
391
394
|
|
|
392
395
|
#if !defined(OPENSSL_NO_POSIX_IO)
|
|
393
|
-
// BIO_s_fd returns a
|
|
396
|
+
// BIO_s_fd returns a `BIO_METHOD` for file descriptor fds.
|
|
394
397
|
OPENSSL_EXPORT const BIO_METHOD *BIO_s_fd(void);
|
|
395
398
|
|
|
396
|
-
// BIO_new_fd creates a new file descriptor BIO wrapping
|
|
397
|
-
// is non-zero, then
|
|
399
|
+
// BIO_new_fd creates a new file descriptor BIO wrapping `fd`. If `close_flag`
|
|
400
|
+
// is non-zero, then `fd` will be closed when the BIO is.
|
|
398
401
|
OPENSSL_EXPORT BIO *BIO_new_fd(int fd, int close_flag);
|
|
399
402
|
#endif
|
|
400
403
|
|
|
401
|
-
// BIO_set_fd sets the file descriptor of
|
|
402
|
-
// non-zero then
|
|
404
|
+
// BIO_set_fd sets the file descriptor of `bio` to `fd`. If `close_flag` is
|
|
405
|
+
// non-zero then `fd` will be closed when `bio` is. It returns one on success
|
|
403
406
|
// or zero on error.
|
|
404
407
|
//
|
|
405
|
-
// This function may also be used with socket BIOs (see
|
|
406
|
-
//
|
|
408
|
+
// This function may also be used with socket BIOs (see `BIO_s_socket` and
|
|
409
|
+
// `BIO_new_socket`).
|
|
407
410
|
OPENSSL_EXPORT int BIO_set_fd(BIO *bio, int fd, int close_flag);
|
|
408
411
|
|
|
409
|
-
// BIO_get_fd returns the file descriptor currently in use by
|
|
410
|
-
//
|
|
411
|
-
//
|
|
412
|
+
// BIO_get_fd returns the file descriptor currently in use by `bio` or -1 if
|
|
413
|
+
// `bio` does not wrap a file descriptor. If there is a file descriptor and
|
|
414
|
+
// `out_fd` is not NULL, it also sets `*out_fd` to the file descriptor.
|
|
412
415
|
//
|
|
413
|
-
// This function may also be used with socket BIOs (see
|
|
414
|
-
//
|
|
416
|
+
// This function may also be used with socket BIOs (see `BIO_s_socket` and
|
|
417
|
+
// `BIO_new_socket`).
|
|
415
418
|
OPENSSL_EXPORT int BIO_get_fd(BIO *bio, int *out_fd);
|
|
416
419
|
|
|
417
420
|
|
|
418
421
|
// File BIOs.
|
|
419
422
|
//
|
|
420
|
-
// File BIOs are wrappers around a C
|
|
423
|
+
// File BIOs are wrappers around a C `FILE` object.
|
|
421
424
|
//
|
|
422
|
-
//
|
|
425
|
+
// `BIO_flush` on a file BIO calls `fflush` on the wrapped stream.
|
|
423
426
|
//
|
|
424
|
-
//
|
|
425
|
-
//
|
|
427
|
+
// `BIO_reset` attempts to seek the file pointer to the start of file using
|
|
428
|
+
// `fseek`.
|
|
426
429
|
//
|
|
427
|
-
// Setting the close flag causes
|
|
430
|
+
// Setting the close flag causes `fclose` to be called on the stream when the
|
|
428
431
|
// BIO is freed.
|
|
429
432
|
|
|
430
|
-
// BIO_s_file returns a BIO_METHOD that wraps a
|
|
433
|
+
// BIO_s_file returns a BIO_METHOD that wraps a `FILE`.
|
|
431
434
|
OPENSSL_EXPORT const BIO_METHOD *BIO_s_file(void);
|
|
432
435
|
|
|
433
|
-
// BIO_new_file creates a file BIO by opening
|
|
434
|
-
// See the
|
|
435
|
-
// files may be opened in either binary or text mode so, as in
|
|
436
|
-
// must specify the desired option in
|
|
436
|
+
// BIO_new_file creates a file BIO by opening `filename` with the given mode.
|
|
437
|
+
// See the `fopen` manual page for details of the mode argument. On Windows,
|
|
438
|
+
// files may be opened in either binary or text mode so, as in `fopen`, callers
|
|
439
|
+
// must specify the desired option in `mode`.
|
|
437
440
|
OPENSSL_EXPORT BIO *BIO_new_file(const char *filename, const char *mode);
|
|
438
441
|
|
|
439
|
-
// BIO_FP_TEXT indicates the
|
|
442
|
+
// BIO_FP_TEXT indicates the `FILE` should be switched to text mode on Windows.
|
|
440
443
|
// It has no effect on non-Windows platforms.
|
|
441
444
|
#define BIO_FP_TEXT 0x10
|
|
442
445
|
|
|
443
|
-
// BIO_new_fp creates a new file BIO that wraps
|
|
444
|
-
//
|
|
446
|
+
// BIO_new_fp creates a new file BIO that wraps `file`. If `flags` contains
|
|
447
|
+
// `BIO_CLOSE`, then `fclose` will be called on `file` when the BIO is closed.
|
|
445
448
|
//
|
|
446
|
-
// On Windows, if
|
|
447
|
-
// additionally switch
|
|
448
|
-
// required for OpenSSL compatibility. If
|
|
449
|
-
// mode changes can cause unflushed data in
|
|
450
|
-
// ways. See
|
|
449
|
+
// On Windows, if `flags` contains `BIO_FP_TEXT`, this function will
|
|
450
|
+
// additionally switch `file` to text mode. This is not recommended, but may be
|
|
451
|
+
// required for OpenSSL compatibility. If `file` was not already in text mode,
|
|
452
|
+
// mode changes can cause unflushed data in `file` to be written in unexpected
|
|
453
|
+
// ways. See `_setmode` in Windows documentation for details.
|
|
451
454
|
//
|
|
452
|
-
// Unlike OpenSSL, if
|
|
453
|
-
// mode of
|
|
455
|
+
// Unlike OpenSSL, if `flags` does not contain `BIO_FP_TEXT`, the translation
|
|
456
|
+
// mode of `file` is left as-is. In OpenSSL, `file` will be set to binary, with
|
|
454
457
|
// the same pitfalls as above. BoringSSL does not do this so that wrapping a
|
|
455
|
-
//
|
|
458
|
+
// `FILE` in a `BIO` will not inadvertently change its state.
|
|
456
459
|
//
|
|
457
460
|
// To avoid these pitfalls, callers should set the desired translation mode when
|
|
458
461
|
// opening the file. If targeting just BoringSSL, this is sufficient. If
|
|
459
|
-
// targeting both OpenSSL and BoringSSL, callers should set
|
|
462
|
+
// targeting both OpenSSL and BoringSSL, callers should set `BIO_FP_TEXT` to
|
|
460
463
|
// match the desired state of the file.
|
|
461
464
|
OPENSSL_EXPORT BIO *BIO_new_fp(FILE *file, int flags);
|
|
462
465
|
|
|
463
|
-
// BIO_get_fp sets
|
|
466
|
+
// BIO_get_fp sets `*out_file` to the current `FILE` for `bio`. It returns one
|
|
464
467
|
// on success and zero otherwise.
|
|
465
468
|
OPENSSL_EXPORT int BIO_get_fp(BIO *bio, FILE **out_file);
|
|
466
469
|
|
|
467
|
-
// BIO_set_fp sets the
|
|
468
|
-
//
|
|
470
|
+
// BIO_set_fp sets the `FILE` for `bio`. If `flags` contains `BIO_CLOSE` then
|
|
471
|
+
// `fclose` will be called on `file` when `bio` is closed. It returns one on
|
|
469
472
|
// success and zero otherwise.
|
|
470
473
|
//
|
|
471
|
-
// On Windows, if
|
|
472
|
-
// additionally switch
|
|
473
|
-
// required for OpenSSL compatibility. If
|
|
474
|
-
// mode changes can cause unflushed data in
|
|
475
|
-
// ways. See
|
|
474
|
+
// On Windows, if `flags` contains `BIO_FP_TEXT`, this function will
|
|
475
|
+
// additionally switch `file` to text mode. This is not recommended, but may be
|
|
476
|
+
// required for OpenSSL compatibility. If `file` was not already in text mode,
|
|
477
|
+
// mode changes can cause unflushed data in `file` to be written in unexpected
|
|
478
|
+
// ways. See `_setmode` in Windows documentation for details.
|
|
476
479
|
//
|
|
477
|
-
// Unlike OpenSSL, if
|
|
478
|
-
// mode of
|
|
480
|
+
// Unlike OpenSSL, if `flags` does not contain `BIO_FP_TEXT`, the translation
|
|
481
|
+
// mode of `file` is left as-is. In OpenSSL, `file` will be set to binary, with
|
|
479
482
|
// the same pitfalls as above. BoringSSL does not do this so that wrapping a
|
|
480
|
-
//
|
|
483
|
+
// `FILE` in a `BIO` will not inadvertently change its state.
|
|
481
484
|
//
|
|
482
485
|
// To avoid these pitfalls, callers should set the desired translation mode when
|
|
483
486
|
// opening the file. If targeting just BoringSSL, this is sufficient. If
|
|
484
|
-
// targeting both OpenSSL and BoringSSL, callers should set
|
|
487
|
+
// targeting both OpenSSL and BoringSSL, callers should set `BIO_FP_TEXT` to
|
|
485
488
|
// match the desired state of the file.
|
|
486
489
|
OPENSSL_EXPORT int BIO_set_fp(BIO *bio, FILE *file, int flags);
|
|
487
490
|
|
|
488
|
-
// BIO_read_filename opens
|
|
489
|
-
//
|
|
490
|
-
// will be closed when
|
|
491
|
+
// BIO_read_filename opens `filename` for reading and sets the result as the
|
|
492
|
+
// `FILE` for `bio`. It returns one on success and zero otherwise. The `FILE`
|
|
493
|
+
// will be closed when `bio` is freed. On Windows, the file is opened in binary
|
|
491
494
|
// mode.
|
|
492
495
|
OPENSSL_EXPORT int BIO_read_filename(BIO *bio, const char *filename);
|
|
493
496
|
|
|
494
|
-
// BIO_write_filename opens
|
|
495
|
-
//
|
|
496
|
-
// will be closed when
|
|
497
|
+
// BIO_write_filename opens `filename` for writing and sets the result as the
|
|
498
|
+
// `FILE` for `bio`. It returns one on success and zero otherwise. The `FILE`
|
|
499
|
+
// will be closed when `bio` is freed. On Windows, the file is opened in binary
|
|
497
500
|
// mode.
|
|
498
501
|
OPENSSL_EXPORT int BIO_write_filename(BIO *bio, const char *filename);
|
|
499
502
|
|
|
500
|
-
// BIO_append_filename opens
|
|
501
|
-
// the
|
|
502
|
-
//
|
|
503
|
+
// BIO_append_filename opens `filename` for appending and sets the result as
|
|
504
|
+
// the `FILE` for `bio`. It returns one on success and zero otherwise. The
|
|
505
|
+
// `FILE` will be closed when `bio` is freed. On Windows, the file is opened in
|
|
503
506
|
// binary mode.
|
|
504
507
|
OPENSSL_EXPORT int BIO_append_filename(BIO *bio, const char *filename);
|
|
505
508
|
|
|
506
|
-
// BIO_rw_filename opens
|
|
507
|
-
// as the
|
|
508
|
-
//
|
|
509
|
+
// BIO_rw_filename opens `filename` for reading and writing and sets the result
|
|
510
|
+
// as the `FILE` for `bio`. It returns one on success and zero otherwise. The
|
|
511
|
+
// `FILE` will be closed when `bio` is freed. On Windows, the file is opened in
|
|
509
512
|
// binary mode.
|
|
510
513
|
OPENSSL_EXPORT int BIO_rw_filename(BIO *bio, const char *filename);
|
|
511
514
|
|
|
512
|
-
// BIO_tell returns the file offset of
|
|
513
|
-
// if
|
|
515
|
+
// BIO_tell returns the file offset of `bio`, or a negative number on error or
|
|
516
|
+
// if `bio` does not support the operation.
|
|
514
517
|
//
|
|
515
|
-
// TODO(
|
|
516
|
-
//
|
|
518
|
+
// TODO(crbug.com/42290329): On platforms where `long` is 32-bit, this function
|
|
519
|
+
// cannot report 64-bit offsets.
|
|
517
520
|
OPENSSL_EXPORT long BIO_tell(BIO *bio);
|
|
518
521
|
|
|
519
|
-
// BIO_seek sets the file offset of
|
|
520
|
-
// number on success and a negative number on error. If
|
|
521
|
-
// descriptor
|
|
522
|
-
// is a file
|
|
522
|
+
// BIO_seek sets the file offset of `bio` to `offset`. It returns a non-negative
|
|
523
|
+
// number on success and a negative number on error. If `bio` is a file
|
|
524
|
+
// descriptor `BIO`, it returns the resulting file offset on success. If `bio`
|
|
525
|
+
// is a file `BIO`, it returns zero on success.
|
|
523
526
|
//
|
|
524
527
|
// WARNING: This function's return value conventions differs from most functions
|
|
525
528
|
// in this library.
|
|
526
529
|
//
|
|
527
|
-
// TODO(
|
|
528
|
-
//
|
|
530
|
+
// TODO(crbug.com/42290329): On platforms where `long` is 32-bit, this function
|
|
531
|
+
// cannot handle 64-bit offsets.
|
|
529
532
|
OPENSSL_EXPORT long BIO_seek(BIO *bio, long offset);
|
|
530
533
|
|
|
531
534
|
|
|
532
535
|
// Socket BIOs.
|
|
533
536
|
//
|
|
534
537
|
// Socket BIOs behave like file descriptor BIOs but, on Windows systems, wrap
|
|
535
|
-
// the system's
|
|
538
|
+
// the system's `recv` and `send` functions instead of `read` and `write`. On
|
|
536
539
|
// Windows, file descriptors are provided by C runtime and are not
|
|
537
540
|
// interchangeable with sockets.
|
|
538
541
|
//
|
|
539
|
-
// Socket BIOs may be used with
|
|
542
|
+
// Socket BIOs may be used with `BIO_set_fd` and `BIO_get_fd`.
|
|
540
543
|
//
|
|
541
|
-
// TODO(davidben): Add separate APIs and fix the internals to use
|
|
544
|
+
// TODO(davidben): Add separate APIs and fix the internals to use `SOCKET`s
|
|
542
545
|
// around rather than rely on int casts.
|
|
543
546
|
|
|
544
547
|
#if !defined(OPENSSL_NO_SOCK)
|
|
545
548
|
OPENSSL_EXPORT const BIO_METHOD *BIO_s_socket(void);
|
|
546
549
|
|
|
547
550
|
// BIO_new_socket allocates and initialises a fresh BIO which will read and
|
|
548
|
-
// write to the socket
|
|
549
|
-
// BIO will close
|
|
551
|
+
// write to the socket `fd`. If `close_flag` is `BIO_CLOSE` then closing the
|
|
552
|
+
// BIO will close `fd`. It returns the fresh `BIO` or NULL on error.
|
|
550
553
|
OPENSSL_EXPORT BIO *BIO_new_socket(int fd, int close_flag);
|
|
551
554
|
#endif // !OPENSSL_NO_SOCK
|
|
552
555
|
|
|
@@ -560,38 +563,38 @@ OPENSSL_EXPORT BIO *BIO_new_socket(int fd, int close_flag);
|
|
|
560
563
|
OPENSSL_EXPORT const BIO_METHOD *BIO_s_connect(void);
|
|
561
564
|
|
|
562
565
|
// BIO_new_connect returns a BIO that connects to the given hostname and port.
|
|
563
|
-
// The
|
|
566
|
+
// The `host_and_optional_port` argument should be of the form
|
|
564
567
|
// "www.example.com" or "www.example.com:443". If the port is omitted, it must
|
|
565
|
-
// be provided with
|
|
568
|
+
// be provided with `BIO_set_conn_port`.
|
|
566
569
|
//
|
|
567
570
|
// It returns the new BIO on success, or NULL on error.
|
|
568
571
|
OPENSSL_EXPORT BIO *BIO_new_connect(const char *host_and_optional_port);
|
|
569
572
|
|
|
570
|
-
// BIO_set_conn_hostname sets
|
|
571
|
-
// optional port that
|
|
572
|
-
// provided with
|
|
573
|
+
// BIO_set_conn_hostname sets `host_and_optional_port` as the hostname and
|
|
574
|
+
// optional port that `bio` will connect to. If the port is omitted, it must be
|
|
575
|
+
// provided with `BIO_set_conn_port`.
|
|
573
576
|
//
|
|
574
577
|
// It returns one on success and zero otherwise.
|
|
575
578
|
OPENSSL_EXPORT int BIO_set_conn_hostname(BIO *bio,
|
|
576
579
|
const char *host_and_optional_port);
|
|
577
580
|
|
|
578
|
-
// BIO_set_conn_port sets
|
|
581
|
+
// BIO_set_conn_port sets `port_str` as the port or service name that `bio`
|
|
579
582
|
// will connect to. It returns one on success and zero otherwise.
|
|
580
583
|
OPENSSL_EXPORT int BIO_set_conn_port(BIO *bio, const char *port_str);
|
|
581
584
|
|
|
582
|
-
// BIO_set_conn_int_port sets
|
|
585
|
+
// BIO_set_conn_int_port sets `*port` as the port that `bio` will connect to.
|
|
583
586
|
// It returns one on success and zero otherwise.
|
|
584
587
|
OPENSSL_EXPORT int BIO_set_conn_int_port(BIO *bio, const int *port);
|
|
585
588
|
|
|
586
|
-
// BIO_set_nbio sets whether
|
|
589
|
+
// BIO_set_nbio sets whether `bio` will use non-blocking I/O operations. It
|
|
587
590
|
// returns one on success and zero otherwise. This only works for connect BIOs
|
|
588
|
-
// and must be called before
|
|
591
|
+
// and must be called before `bio` is connected to take effect.
|
|
589
592
|
//
|
|
590
593
|
// For socket and fd BIOs, callers must configure blocking vs. non-blocking I/O
|
|
591
594
|
// using the underlying platform APIs.
|
|
592
595
|
OPENSSL_EXPORT int BIO_set_nbio(BIO *bio, int on);
|
|
593
596
|
|
|
594
|
-
// BIO_do_connect connects
|
|
597
|
+
// BIO_do_connect connects `bio` if it has not been connected yet. It returns
|
|
595
598
|
// one on success and <= 0 otherwise.
|
|
596
599
|
OPENSSL_EXPORT int BIO_do_connect(BIO *bio);
|
|
597
600
|
#endif // !OPENSSL_NO_SOCK
|
|
@@ -610,7 +613,7 @@ OPENSSL_EXPORT int BIO_do_connect(BIO *bio);
|
|
|
610
613
|
the previous write operation. */
|
|
611
614
|
|
|
612
615
|
// BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT is unsupported as it is unused by consumers
|
|
613
|
-
// and depends on
|
|
616
|
+
// and depends on `timeval`, which is not 2038-clean on all platforms.
|
|
614
617
|
|
|
615
618
|
#define BIO_CTRL_DGRAM_GET_PEER 46
|
|
616
619
|
|
|
@@ -622,143 +625,187 @@ OPENSSL_EXPORT int BIO_do_connect(BIO *bio);
|
|
|
622
625
|
// BIO pairs provide a "loopback" like system: a pair of BIOs where data
|
|
623
626
|
// written to one can be read from the other and vice versa.
|
|
624
627
|
|
|
625
|
-
// BIO_new_bio_pair sets
|
|
628
|
+
// BIO_new_bio_pair sets `*out1` and `*out2` to two freshly created BIOs where
|
|
626
629
|
// data written to one can be read from the other and vice versa. The
|
|
627
|
-
//
|
|
628
|
-
//
|
|
630
|
+
// `writebuf1` argument gives the size of the buffer used in `*out1` and
|
|
631
|
+
// `writebuf2` for `*out2`. It returns one on success and zero on error.
|
|
629
632
|
OPENSSL_EXPORT int BIO_new_bio_pair(BIO **out1, size_t writebuf1, BIO **out2,
|
|
630
633
|
size_t writebuf2);
|
|
631
634
|
|
|
632
635
|
// BIO_ctrl_get_read_request returns the number of bytes that the other side of
|
|
633
|
-
//
|
|
636
|
+
// `bio` tried (unsuccessfully) to read.
|
|
634
637
|
OPENSSL_EXPORT size_t BIO_ctrl_get_read_request(BIO *bio);
|
|
635
638
|
|
|
636
|
-
// BIO_ctrl_get_write_guarantee returns the number of bytes that
|
|
637
|
-
// must have been returned by
|
|
638
|
-
//
|
|
639
|
+
// BIO_ctrl_get_write_guarantee returns the number of bytes that `bio` (which
|
|
640
|
+
// must have been returned by `BIO_new_bio_pair`) will accept on the next
|
|
641
|
+
// `BIO_write` call.
|
|
639
642
|
OPENSSL_EXPORT size_t BIO_ctrl_get_write_guarantee(BIO *bio);
|
|
640
643
|
|
|
641
|
-
// BIO_shutdown_wr marks
|
|
642
|
-
// side of the pair. Future
|
|
644
|
+
// BIO_shutdown_wr marks `bio` as closed, from the point of view of the other
|
|
645
|
+
// side of the pair. Future `BIO_write` calls on `bio` will fail. It returns
|
|
643
646
|
// one on success and zero otherwise.
|
|
644
647
|
OPENSSL_EXPORT int BIO_shutdown_wr(BIO *bio);
|
|
645
648
|
|
|
646
649
|
|
|
647
650
|
// Custom BIOs.
|
|
648
651
|
//
|
|
649
|
-
// Consumers can create custom
|
|
652
|
+
// Consumers can create custom `BIO`s by filling in a `BIO_METHOD` and using
|
|
650
653
|
// low-level control functions to set state.
|
|
651
654
|
|
|
652
|
-
// BIO_get_new_index returns a new "type" value for a custom
|
|
655
|
+
// BIO_get_new_index returns a new "type" value for a custom `BIO`, or -1 on
|
|
656
|
+
// error.
|
|
653
657
|
OPENSSL_EXPORT int BIO_get_new_index(void);
|
|
654
658
|
|
|
655
|
-
// BIO_meth_new returns a newly-allocated
|
|
656
|
-
// error. The
|
|
657
|
-
//
|
|
659
|
+
// BIO_meth_new returns a newly-allocated `BIO_METHOD` or NULL on allocation
|
|
660
|
+
// error. The `type` specifies the type that will be returned by
|
|
661
|
+
// `BIO_method_type`. If this is unnecessary, this value may be zero. The `name`
|
|
658
662
|
// parameter is vestigial and may be NULL.
|
|
659
663
|
//
|
|
660
|
-
// Use the
|
|
661
|
-
// function implementations may use
|
|
662
|
-
// method-specific state to associated
|
|
663
|
-
// be called after an associated
|
|
664
|
-
//
|
|
665
|
-
//
|
|
664
|
+
// Use the `BIO_meth_set_*` functions below to initialize the `BIO_METHOD`. The
|
|
665
|
+
// function implementations may use `BIO_set_data` and `BIO_get_data` to add
|
|
666
|
+
// method-specific state to associated `BIO`s. Additionally, `BIO_set_init` must
|
|
667
|
+
// be called after an associated `BIO` is fully initialized. State set via
|
|
668
|
+
// `BIO_set_data` may be released by configuring a destructor with
|
|
669
|
+
// `BIO_meth_set_destroy`.
|
|
666
670
|
OPENSSL_EXPORT BIO_METHOD *BIO_meth_new(int type, const char *name);
|
|
667
671
|
|
|
668
|
-
// BIO_meth_free releases memory associated with
|
|
672
|
+
// BIO_meth_free releases memory associated with `method`.
|
|
669
673
|
OPENSSL_EXPORT void BIO_meth_free(BIO_METHOD *method);
|
|
670
674
|
|
|
671
|
-
// BIO_meth_set_create sets a function to be called on
|
|
675
|
+
// BIO_meth_set_create sets a function to be called on `BIO_new` for `method`
|
|
672
676
|
// and returns one. The function should return one on success and zero on
|
|
673
677
|
// error.
|
|
674
678
|
OPENSSL_EXPORT int BIO_meth_set_create(BIO_METHOD *method,
|
|
675
679
|
int (*create_func)(BIO *));
|
|
676
680
|
|
|
677
|
-
// BIO_meth_set_destroy sets a function to release data associated with a
|
|
681
|
+
// BIO_meth_set_destroy sets a function to release data associated with a `BIO`
|
|
678
682
|
// and returns one. The function's return value is ignored.
|
|
683
|
+
//
|
|
684
|
+
// As the `BIO` is about to be destroyed, it is not necessary for `destroy_func`
|
|
685
|
+
// to clear the BIO's state with `BIO_set_data` or `BIO_set_init`. There is no
|
|
686
|
+
// harm in clearing them, but the `BIO` will not be passed to `BIO` operations,
|
|
687
|
+
// unless `destroy_func` itself does so.
|
|
679
688
|
OPENSSL_EXPORT int BIO_meth_set_destroy(BIO_METHOD *method,
|
|
680
689
|
int (*destroy_func)(BIO *));
|
|
681
690
|
|
|
682
|
-
//
|
|
683
|
-
// returns one.
|
|
684
|
-
//
|
|
691
|
+
// BIO_meth_set_write_ex sets the implementation of `BIO_write_ex` for `method`
|
|
692
|
+
// and returns one. `BIO_METHOD`s which implement `BIO_write_ex` should also
|
|
693
|
+
// implement `BIO_CTRL_FLUSH`. (See `BIO_meth_set_ctrl`.)
|
|
694
|
+
//
|
|
695
|
+
// `write_ex_func` can assume `BIO_get_init` returns one, the input size is
|
|
696
|
+
// greater than zero, and `out_written` is non-NULL. Those cases are handled
|
|
697
|
+
// before calling into the `BIO_METHOD`.
|
|
698
|
+
//
|
|
699
|
+
// If configured, `write_ex_func` will also be used to implement `BIO_write`,
|
|
700
|
+
// with the `BIO` framework converting the conventions. `BIO_meth_set_write_ex`
|
|
701
|
+
// and `BIO_meth_set_write` should not be configured on the same `BIO_METHOD`.
|
|
702
|
+
// Prefer `BIO_meth_set_write_ex` for a `size_t`-based API.
|
|
703
|
+
OPENSSL_EXPORT int BIO_meth_set_write_ex(
|
|
704
|
+
BIO_METHOD *method,
|
|
705
|
+
int (*write_ex_func)(BIO *, const char *, size_t, size_t *));
|
|
706
|
+
|
|
707
|
+
// BIO_meth_set_write sets the implementation of `BIO_write` for `method` and
|
|
708
|
+
// returns one. `BIO_METHOD`s which implement `BIO_write` should also implement
|
|
709
|
+
// `BIO_CTRL_FLUSH`. (See `BIO_meth_set_ctrl`.)
|
|
710
|
+
//
|
|
711
|
+
// `write_func` can assume `BIO_get_init` returns one and the input size is
|
|
712
|
+
// greater than zero. Those cases are handled before calling into the
|
|
713
|
+
// `BIO_METHOD`.
|
|
714
|
+
//
|
|
715
|
+
// If configured, `write_func` will also be used to implement `BIO_write_ex`,
|
|
716
|
+
// with the `BIO` framework converting the conventions. `BIO_meth_set_write_ex`
|
|
717
|
+
// and `BIO_meth_set_write` should not be configured on the same `BIO_METHOD`.
|
|
718
|
+
// Prefer `BIO_meth_set_write_ex` for a `size_t`-based API.
|
|
685
719
|
OPENSSL_EXPORT int BIO_meth_set_write(BIO_METHOD *method,
|
|
686
720
|
int (*write_func)(BIO *, const char *,
|
|
687
721
|
int));
|
|
688
722
|
|
|
689
|
-
// BIO_meth_set_read sets the implementation of
|
|
723
|
+
// BIO_meth_set_read sets the implementation of `BIO_read` for `method` and
|
|
690
724
|
// returns one.
|
|
725
|
+
//
|
|
726
|
+
// `read_func` can assume `BIO_get_init` returns one and the output size is
|
|
727
|
+
// greater than zero. Those cases are handled before calling into the
|
|
728
|
+
// `BIO_METHOD`.
|
|
691
729
|
OPENSSL_EXPORT int BIO_meth_set_read(BIO_METHOD *method,
|
|
692
730
|
int (*read_func)(BIO *, char *, int));
|
|
693
731
|
|
|
694
|
-
// BIO_meth_set_gets sets the implementation of
|
|
732
|
+
// BIO_meth_set_gets sets the implementation of `BIO_gets` for `method` and
|
|
695
733
|
// returns one.
|
|
734
|
+
//
|
|
735
|
+
// `gets_func` can assume `BIO_get_init` returns one and the output size is
|
|
736
|
+
// greater than zero. Those cases are handled before calling into the
|
|
737
|
+
// `BIO_METHOD`.
|
|
696
738
|
OPENSSL_EXPORT int BIO_meth_set_gets(BIO_METHOD *method,
|
|
697
739
|
int (*gets_func)(BIO *, char *, int));
|
|
698
740
|
|
|
699
|
-
// BIO_meth_set_ctrl sets the implementation of
|
|
741
|
+
// BIO_meth_set_ctrl sets the implementation of `BIO_ctrl` for `method` and
|
|
700
742
|
// returns one.
|
|
701
743
|
OPENSSL_EXPORT int BIO_meth_set_ctrl(BIO_METHOD *method,
|
|
702
744
|
long (*ctrl_func)(BIO *, int, long,
|
|
703
745
|
void *));
|
|
704
746
|
|
|
705
|
-
//
|
|
706
|
-
//
|
|
747
|
+
// BIO_meth_set_callback_ctrl sets the implementation of `BIO_callback_ctrl` for
|
|
748
|
+
// `method` and returns one.
|
|
749
|
+
OPENSSL_EXPORT int BIO_meth_set_callback_ctrl(
|
|
750
|
+
BIO_METHOD *method, long (*callback_ctrl_func)(BIO *, int, BIO_info_cb *));
|
|
751
|
+
|
|
752
|
+
// BIO_set_data sets custom data on `bio`. It may be retried with
|
|
753
|
+
// `BIO_get_data`.
|
|
707
754
|
//
|
|
708
|
-
// This function should only be called by the implementation of a custom
|
|
709
|
-
// In particular, the data pointer of a built-in
|
|
710
|
-
// library. For other uses, see
|
|
755
|
+
// This function should only be called by the implementation of a custom `BIO`.
|
|
756
|
+
// In particular, the data pointer of a built-in `BIO` is private to the
|
|
757
|
+
// library. For other uses, see `BIO_set_ex_data` and `BIO_set_app_data`.
|
|
711
758
|
OPENSSL_EXPORT void BIO_set_data(BIO *bio, void *ptr);
|
|
712
759
|
|
|
713
|
-
// BIO_get_data returns custom data on
|
|
760
|
+
// BIO_get_data returns custom data on `bio` set by `BIO_get_data`.
|
|
714
761
|
//
|
|
715
|
-
// This function should only be called by the implementation of a custom
|
|
716
|
-
// In particular, the data pointer of a built-in
|
|
717
|
-
// library. For other uses, see
|
|
762
|
+
// This function should only be called by the implementation of a custom `BIO`.
|
|
763
|
+
// In particular, the data pointer of a built-in `BIO` is private to the
|
|
764
|
+
// library. For other uses, see `BIO_get_ex_data` and `BIO_get_app_data`.
|
|
718
765
|
OPENSSL_EXPORT void *BIO_get_data(BIO *bio);
|
|
719
766
|
|
|
720
|
-
// BIO_set_init sets whether
|
|
721
|
-
// initialized,
|
|
767
|
+
// BIO_set_init sets whether `bio` has been fully initialized. Until fully
|
|
768
|
+
// initialized, `BIO_read` and `BIO_write` will fail.
|
|
722
769
|
OPENSSL_EXPORT void BIO_set_init(BIO *bio, int init);
|
|
723
770
|
|
|
724
|
-
// BIO_get_init returns whether
|
|
771
|
+
// BIO_get_init returns whether `bio` has been fully initialized.
|
|
725
772
|
OPENSSL_EXPORT int BIO_get_init(BIO *bio);
|
|
726
773
|
|
|
727
|
-
// These are values of the
|
|
774
|
+
// These are values of the `cmd` argument to `BIO_ctrl`.
|
|
728
775
|
|
|
729
|
-
// BIO_CTRL_RESET implements
|
|
776
|
+
// BIO_CTRL_RESET implements `BIO_reset`. The arguments are unused.
|
|
730
777
|
#define BIO_CTRL_RESET 1
|
|
731
778
|
|
|
732
|
-
// BIO_CTRL_EOF implements
|
|
779
|
+
// BIO_CTRL_EOF implements `BIO_eof`. The arguments are unused.
|
|
733
780
|
#define BIO_CTRL_EOF 2
|
|
734
781
|
|
|
735
782
|
// BIO_CTRL_INFO is a legacy command that returns information specific to the
|
|
736
|
-
// type of
|
|
737
|
-
// implemented in new
|
|
783
|
+
// type of `BIO`. It is not safe to call generically and should not be
|
|
784
|
+
// implemented in new `BIO` types.
|
|
738
785
|
#define BIO_CTRL_INFO 3
|
|
739
786
|
|
|
740
|
-
// BIO_CTRL_GET_CLOSE returns the close flag set by
|
|
787
|
+
// BIO_CTRL_GET_CLOSE returns the close flag set by `BIO_CTRL_SET_CLOSE`. The
|
|
741
788
|
// arguments are unused.
|
|
742
789
|
#define BIO_CTRL_GET_CLOSE 8
|
|
743
790
|
|
|
744
|
-
// BIO_CTRL_SET_CLOSE implements
|
|
791
|
+
// BIO_CTRL_SET_CLOSE implements `BIO_set_close`. The `larg` argument is the
|
|
745
792
|
// close flag.
|
|
746
793
|
#define BIO_CTRL_SET_CLOSE 9
|
|
747
794
|
|
|
748
|
-
// BIO_CTRL_PENDING implements
|
|
795
|
+
// BIO_CTRL_PENDING implements `BIO_pending`. The arguments are unused.
|
|
749
796
|
#define BIO_CTRL_PENDING 10
|
|
750
797
|
|
|
751
|
-
// BIO_CTRL_FLUSH implements
|
|
798
|
+
// BIO_CTRL_FLUSH implements `BIO_flush`. The arguments are unused.
|
|
752
799
|
#define BIO_CTRL_FLUSH 11
|
|
753
800
|
|
|
754
|
-
// BIO_CTRL_WPENDING implements
|
|
801
|
+
// BIO_CTRL_WPENDING implements `BIO_wpending`. The arguments are unused.
|
|
755
802
|
#define BIO_CTRL_WPENDING 13
|
|
756
803
|
|
|
757
804
|
// BIO_CTRL_SET_CALLBACK sets an informational callback of type
|
|
758
805
|
// int cb(BIO *bio, int state, int ret)
|
|
759
806
|
#define BIO_CTRL_SET_CALLBACK 14
|
|
760
807
|
|
|
761
|
-
// BIO_CTRL_GET_CALLBACK returns the callback set by
|
|
808
|
+
// BIO_CTRL_GET_CALLBACK returns the callback set by `BIO_CTRL_SET_CALLBACK`.
|
|
762
809
|
#define BIO_CTRL_GET_CALLBACK 15
|
|
763
810
|
|
|
764
811
|
// The following are never used, but are defined to aid porting existing code.
|
|
@@ -772,7 +819,7 @@ OPENSSL_EXPORT int BIO_get_init(BIO *bio);
|
|
|
772
819
|
|
|
773
820
|
// ex_data functions.
|
|
774
821
|
//
|
|
775
|
-
// See
|
|
822
|
+
// See `ex_data.h` for details.
|
|
776
823
|
|
|
777
824
|
OPENSSL_EXPORT int BIO_get_ex_new_index(long argl, void *argp,
|
|
778
825
|
CRYPTO_EX_unused *unused,
|
|
@@ -787,13 +834,19 @@ OPENSSL_EXPORT void *BIO_get_ex_data(const BIO *bio, int idx);
|
|
|
787
834
|
|
|
788
835
|
// Deprecated functions.
|
|
789
836
|
|
|
790
|
-
//
|
|
791
|
-
//
|
|
792
|
-
|
|
793
|
-
|
|
837
|
+
// BIO_free_all calls `BIO_free`. Code that targets BoringSSL does not need to
|
|
838
|
+
// call a separate free function for `BIO`s that are part of a chain.
|
|
839
|
+
OPENSSL_EXPORT void BIO_free_all(BIO *bio);
|
|
840
|
+
|
|
841
|
+
typedef BIO_info_cb bio_info_cb;
|
|
842
|
+
|
|
843
|
+
// BIO_f_base64 returns a filter `BIO` that base64-encodes data written into
|
|
844
|
+
// it, and decodes data read from it. `BIO_gets` is not supported. Call
|
|
845
|
+
// `BIO_flush` when done writing, to signal that no more data are to be
|
|
846
|
+
// encoded. The flag `BIO_FLAGS_BASE64_NO_NL` may be set to encode all the data
|
|
794
847
|
// on one line.
|
|
795
848
|
//
|
|
796
|
-
// Use
|
|
849
|
+
// Use `EVP_EncodeBlock` and `EVP_DecodeBase64` instead.
|
|
797
850
|
OPENSSL_EXPORT const BIO_METHOD *BIO_f_base64(void);
|
|
798
851
|
|
|
799
852
|
OPENSSL_EXPORT void BIO_set_retry_special(BIO *bio);
|
|
@@ -801,17 +854,59 @@ OPENSSL_EXPORT void BIO_set_retry_special(BIO *bio);
|
|
|
801
854
|
// BIO_set_write_buffer_size returns zero.
|
|
802
855
|
OPENSSL_EXPORT int BIO_set_write_buffer_size(BIO *bio, int buffer_size);
|
|
803
856
|
|
|
804
|
-
// BIO_set_shutdown sets a method-specific "shutdown" bit on
|
|
857
|
+
// BIO_set_shutdown sets a method-specific "shutdown" bit on `bio`.
|
|
805
858
|
OPENSSL_EXPORT void BIO_set_shutdown(BIO *bio, int shutdown);
|
|
806
859
|
|
|
807
860
|
// BIO_get_shutdown returns the method-specific "shutdown" bit.
|
|
808
861
|
OPENSSL_EXPORT int BIO_get_shutdown(BIO *bio);
|
|
809
862
|
|
|
810
|
-
// BIO_meth_set_puts returns one.
|
|
863
|
+
// BIO_meth_set_puts returns one. `BIO_puts` is implemented with `BIO_write` in
|
|
811
864
|
// BoringSSL.
|
|
812
865
|
OPENSSL_EXPORT int BIO_meth_set_puts(BIO_METHOD *method,
|
|
813
866
|
int (*puts)(BIO *, const char *));
|
|
814
867
|
|
|
868
|
+
#if !defined(OPENSSL_NO_SOCK)
|
|
869
|
+
// The following functions return function pointers, possibly NULL, which are
|
|
870
|
+
// compatible with the corresponding `BIO_meth_set_*` function. `method` must be
|
|
871
|
+
// `BIO_s_socket` or the program will abort.
|
|
872
|
+
//
|
|
873
|
+
// Using these functions is inherently unsafe and fragile. It is not possible to
|
|
874
|
+
// use them in a future-proof way. See
|
|
875
|
+
// https://github.com/openssl/openssl/issues/26047 for details. BoringSSL
|
|
876
|
+
// implements them solely for compatibility with Folly and older versions of
|
|
877
|
+
// PostgreSQL. To work around the future-proofing problems, the return values
|
|
878
|
+
// may diverge from the true implementation of `BIO_s_socket`.
|
|
879
|
+
//
|
|
880
|
+
// Caller should not use these functions. They are not necessary to define
|
|
881
|
+
// custom `BIO_METHOD`s. Instead, callers should either:
|
|
882
|
+
//
|
|
883
|
+
// - Define a custom `BIO_METHOD` that owns a socket `BIO` somewhere in the
|
|
884
|
+
// custom data. See `BIO_set_data`.
|
|
885
|
+
//
|
|
886
|
+
// - Define a custom `BIO_METHOD` that wraps a socket `BIO` as a filter. See
|
|
887
|
+
// `BIO_push` and `BIO_next`.
|
|
888
|
+
//
|
|
889
|
+
// - Define a custom `BIO_METHOD` without `BIO_s_socket` at all. If not using
|
|
890
|
+
// the built-in read or write functions, `BIO_s_socket` only provides a no-op
|
|
891
|
+
// `BIO_CTRL_FLUSH` implementation. This can be implemented by the caller.
|
|
892
|
+
OPENSSL_EXPORT int (*BIO_meth_get_write(const BIO_METHOD *method))(BIO *,
|
|
893
|
+
const char *,
|
|
894
|
+
int);
|
|
895
|
+
OPENSSL_EXPORT int (*BIO_meth_get_read(const BIO_METHOD *method))(BIO *, char *,
|
|
896
|
+
int);
|
|
897
|
+
OPENSSL_EXPORT int (*BIO_meth_get_gets(const BIO_METHOD *method))(BIO *, char *,
|
|
898
|
+
int);
|
|
899
|
+
OPENSSL_EXPORT int (*BIO_meth_get_puts(const BIO_METHOD *method))(BIO *,
|
|
900
|
+
const char *);
|
|
901
|
+
OPENSSL_EXPORT long (*BIO_meth_get_ctrl(const BIO_METHOD *method))(BIO *, int,
|
|
902
|
+
long,
|
|
903
|
+
void *);
|
|
904
|
+
OPENSSL_EXPORT int (*BIO_meth_get_create(const BIO_METHOD *method))(BIO *);
|
|
905
|
+
OPENSSL_EXPORT int (*BIO_meth_get_destroy(const BIO_METHOD *method))(BIO *);
|
|
906
|
+
OPENSSL_EXPORT long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *method))(
|
|
907
|
+
BIO *, int, BIO_info_cb *);
|
|
908
|
+
#endif // !OPENSSL_NO_SOCK
|
|
909
|
+
|
|
815
910
|
|
|
816
911
|
// Private functions
|
|
817
912
|
|
|
@@ -825,8 +920,8 @@ OPENSSL_EXPORT int BIO_meth_set_puts(BIO_METHOD *method,
|
|
|
825
920
|
// or change the data in any way.
|
|
826
921
|
#define BIO_FLAGS_MEM_RDONLY 0x200
|
|
827
922
|
|
|
828
|
-
// BIO_TYPE_DESCRIPTOR denotes that the
|
|
829
|
-
// (
|
|
923
|
+
// BIO_TYPE_DESCRIPTOR denotes that the `BIO` responds to the `BIO_C_SET_FD`
|
|
924
|
+
// (`BIO_set_fd`) and `BIO_C_GET_FD` (`BIO_get_fd`) control hooks.
|
|
830
925
|
#define BIO_TYPE_DESCRIPTOR 0x0100 // socket, fd, connect or accept
|
|
831
926
|
#define BIO_TYPE_FILTER 0x0200
|
|
832
927
|
#define BIO_TYPE_SOURCE_SINK 0x0400
|
|
@@ -856,48 +951,10 @@ OPENSSL_EXPORT int BIO_meth_set_puts(BIO_METHOD *method,
|
|
|
856
951
|
#define BIO_TYPE_ASN1 (22 | BIO_TYPE_FILTER)
|
|
857
952
|
#define BIO_TYPE_COMP (23 | BIO_TYPE_FILTER)
|
|
858
953
|
|
|
859
|
-
// BIO_TYPE_START is the first user-allocated
|
|
954
|
+
// BIO_TYPE_START is the first user-allocated `BIO` type. No pre-defined type,
|
|
860
955
|
// flag bits aside, may exceed this value.
|
|
861
956
|
#define BIO_TYPE_START 128
|
|
862
957
|
|
|
863
|
-
struct bio_method_st {
|
|
864
|
-
int type;
|
|
865
|
-
const char *name;
|
|
866
|
-
int (*bwrite)(BIO *, const char *, int);
|
|
867
|
-
int (*bread)(BIO *, char *, int);
|
|
868
|
-
// TODO(fork): remove bputs.
|
|
869
|
-
int (*bputs)(BIO *, const char *);
|
|
870
|
-
int (*bgets)(BIO *, char *, int);
|
|
871
|
-
long (*ctrl)(BIO *, int, long, void *);
|
|
872
|
-
int (*create)(BIO *);
|
|
873
|
-
int (*destroy)(BIO *);
|
|
874
|
-
long (*callback_ctrl)(BIO *, int, bio_info_cb);
|
|
875
|
-
};
|
|
876
|
-
|
|
877
|
-
struct bio_st {
|
|
878
|
-
const BIO_METHOD *method;
|
|
879
|
-
CRYPTO_EX_DATA ex_data;
|
|
880
|
-
|
|
881
|
-
// init is non-zero if this |BIO| has been initialised.
|
|
882
|
-
int init;
|
|
883
|
-
// shutdown is often used by specific |BIO_METHOD|s to determine whether
|
|
884
|
-
// they own some underlying resource. This flag can often by controlled by
|
|
885
|
-
// |BIO_set_close|. For example, whether an fd BIO closes the underlying fd
|
|
886
|
-
// when it, itself, is closed.
|
|
887
|
-
int shutdown;
|
|
888
|
-
int flags;
|
|
889
|
-
int retry_reason;
|
|
890
|
-
// num is a BIO-specific value. For example, in fd BIOs it's used to store a
|
|
891
|
-
// file descriptor.
|
|
892
|
-
int num;
|
|
893
|
-
CRYPTO_refcount_t references;
|
|
894
|
-
void *ptr;
|
|
895
|
-
// next_bio points to the next |BIO| in a chain. This |BIO| owns a reference
|
|
896
|
-
// to |next_bio|.
|
|
897
|
-
BIO *next_bio; // used by filter BIOs
|
|
898
|
-
uint64_t num_read, num_write;
|
|
899
|
-
};
|
|
900
|
-
|
|
901
958
|
#define BIO_C_SET_CONNECT 100
|
|
902
959
|
#define BIO_C_DO_STATE_MACHINE 101
|
|
903
960
|
#define BIO_C_SET_NBIO 102
|