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
|
@@ -54,130 +54,148 @@ struct cbs_st {
|
|
|
54
54
|
#endif
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
// CBS_init sets
|
|
58
|
-
//
|
|
57
|
+
// CBS_init sets `cbs` to point to `data`. It does not take ownership of
|
|
58
|
+
// `data`.
|
|
59
59
|
OPENSSL_INLINE void CBS_init(CBS *cbs, const uint8_t *data, size_t len) {
|
|
60
60
|
cbs->data = data;
|
|
61
61
|
cbs->len = len;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
// CBS_skip advances
|
|
64
|
+
// CBS_skip advances `cbs` by `len` bytes. It returns one on success and zero
|
|
65
65
|
// otherwise.
|
|
66
66
|
OPENSSL_EXPORT int CBS_skip(CBS *cbs, size_t len);
|
|
67
67
|
|
|
68
|
-
// CBS_data returns a pointer to the contents of
|
|
68
|
+
// CBS_data returns a pointer to the contents of `cbs`.
|
|
69
69
|
OPENSSL_INLINE const uint8_t *CBS_data(const CBS *cbs) { return cbs->data; }
|
|
70
70
|
|
|
71
|
-
// CBS_len returns the number of bytes remaining in
|
|
71
|
+
// CBS_len returns the number of bytes remaining in `cbs`.
|
|
72
72
|
OPENSSL_INLINE size_t CBS_len(const CBS *cbs) { return cbs->len; }
|
|
73
73
|
|
|
74
|
-
// CBS_stow copies the current contents of
|
|
75
|
-
//
|
|
74
|
+
// CBS_stow copies the current contents of `cbs` into `*out_ptr` and
|
|
75
|
+
// `*out_len`. If `*out_ptr` is not NULL, the contents are freed with
|
|
76
76
|
// OPENSSL_free. It returns one on success and zero on allocation failure. On
|
|
77
|
-
// success,
|
|
78
|
-
//
|
|
77
|
+
// success, `*out_ptr` should be freed with OPENSSL_free. If `cbs` is empty,
|
|
78
|
+
// `*out_ptr` will be NULL.
|
|
79
79
|
OPENSSL_EXPORT int CBS_stow(const CBS *cbs, uint8_t **out_ptr, size_t *out_len);
|
|
80
80
|
|
|
81
|
-
// CBS_strdup copies the current contents of
|
|
82
|
-
// NUL-terminated C string. If
|
|
81
|
+
// CBS_strdup copies the current contents of `cbs` into `*out_ptr` as a
|
|
82
|
+
// NUL-terminated C string. If `*out_ptr` is not NULL, the contents are freed
|
|
83
83
|
// with OPENSSL_free. It returns one on success and zero on allocation
|
|
84
|
-
// failure. On success,
|
|
84
|
+
// failure. On success, `*out_ptr` should be freed with OPENSSL_free.
|
|
85
85
|
//
|
|
86
|
-
// NOTE: If
|
|
87
|
-
//
|
|
86
|
+
// NOTE: If `cbs` contains NUL bytes, the string will be truncated. Call
|
|
87
|
+
// `CBS_contains_zero_byte(cbs)` to check for NUL bytes.
|
|
88
88
|
OPENSSL_EXPORT int CBS_strdup(const CBS *cbs, char **out_ptr);
|
|
89
89
|
|
|
90
|
-
// CBS_contains_zero_byte returns one if the current contents of
|
|
90
|
+
// CBS_contains_zero_byte returns one if the current contents of `cbs` contains
|
|
91
91
|
// a NUL byte and zero otherwise.
|
|
92
92
|
OPENSSL_EXPORT int CBS_contains_zero_byte(const CBS *cbs);
|
|
93
93
|
|
|
94
|
-
// CBS_mem_equal compares the current contents of
|
|
95
|
-
// starting at
|
|
94
|
+
// CBS_mem_equal compares the current contents of `cbs` with the `len` bytes
|
|
95
|
+
// starting at `data`. If they're equal, it returns one, otherwise zero. If the
|
|
96
96
|
// lengths match, it uses a constant-time comparison.
|
|
97
97
|
OPENSSL_EXPORT int CBS_mem_equal(const CBS *cbs, const uint8_t *data,
|
|
98
98
|
size_t len);
|
|
99
99
|
|
|
100
|
-
// CBS_get_u8 sets
|
|
100
|
+
// CBS_get_u8 sets `*out` to the next uint8_t from `cbs` and advances `cbs`. It
|
|
101
101
|
// returns one on success and zero on error.
|
|
102
102
|
OPENSSL_EXPORT int CBS_get_u8(CBS *cbs, uint8_t *out);
|
|
103
103
|
|
|
104
|
-
// CBS_get_u16 sets
|
|
105
|
-
// advances
|
|
104
|
+
// CBS_get_u16 sets `*out` to the next, big-endian uint16_t from `cbs` and
|
|
105
|
+
// advances `cbs`. It returns one on success and zero on error.
|
|
106
106
|
OPENSSL_EXPORT int CBS_get_u16(CBS *cbs, uint16_t *out);
|
|
107
107
|
|
|
108
|
-
// CBS_get_u16le sets
|
|
109
|
-
// advances
|
|
108
|
+
// CBS_get_u16le sets `*out` to the next, little-endian uint16_t from `cbs` and
|
|
109
|
+
// advances `cbs`. It returns one on success and zero on error.
|
|
110
110
|
OPENSSL_EXPORT int CBS_get_u16le(CBS *cbs, uint16_t *out);
|
|
111
111
|
|
|
112
|
-
// CBS_get_u24 sets
|
|
113
|
-
// advances
|
|
112
|
+
// CBS_get_u24 sets `*out` to the next, big-endian 24-bit value from `cbs` and
|
|
113
|
+
// advances `cbs`. It returns one on success and zero on error.
|
|
114
114
|
OPENSSL_EXPORT int CBS_get_u24(CBS *cbs, uint32_t *out);
|
|
115
115
|
|
|
116
|
-
// CBS_get_u32 sets
|
|
117
|
-
// and advances
|
|
116
|
+
// CBS_get_u32 sets `*out` to the next, big-endian uint32_t value from `cbs`
|
|
117
|
+
// and advances `cbs`. It returns one on success and zero on error.
|
|
118
118
|
OPENSSL_EXPORT int CBS_get_u32(CBS *cbs, uint32_t *out);
|
|
119
119
|
|
|
120
|
-
// CBS_get_u32le sets
|
|
121
|
-
//
|
|
120
|
+
// CBS_get_u32le sets `*out` to the next, little-endian uint32_t value from
|
|
121
|
+
// `cbs` and advances `cbs`. It returns one on success and zero on error.
|
|
122
122
|
OPENSSL_EXPORT int CBS_get_u32le(CBS *cbs, uint32_t *out);
|
|
123
123
|
|
|
124
|
-
//
|
|
125
|
-
//
|
|
124
|
+
// CBS_get_u48 sets `*out` to the next, big-endian 48-bit value from `cbs` and
|
|
125
|
+
// advances `cbs`. It returns one on success and zero on error.
|
|
126
|
+
OPENSSL_EXPORT int CBS_get_u48(CBS *cbs, uint64_t *out);
|
|
127
|
+
|
|
128
|
+
// CBS_get_u64 sets `*out` to the next, big-endian uint64_t value from `cbs`
|
|
129
|
+
// and advances `cbs`. It returns one on success and zero on error.
|
|
126
130
|
OPENSSL_EXPORT int CBS_get_u64(CBS *cbs, uint64_t *out);
|
|
127
131
|
|
|
128
|
-
// CBS_get_u64le sets
|
|
129
|
-
//
|
|
132
|
+
// CBS_get_u64le sets `*out` to the next, little-endian uint64_t value from
|
|
133
|
+
// `cbs` and advances `cbs`. It returns one on success and zero on error.
|
|
130
134
|
OPENSSL_EXPORT int CBS_get_u64le(CBS *cbs, uint64_t *out);
|
|
131
135
|
|
|
132
|
-
// CBS_get_last_u8 sets
|
|
133
|
-
//
|
|
136
|
+
// CBS_get_last_u8 sets `*out` to the last uint8_t from `cbs` and shortens
|
|
137
|
+
// `cbs`. It returns one on success and zero on error.
|
|
134
138
|
OPENSSL_EXPORT int CBS_get_last_u8(CBS *cbs, uint8_t *out);
|
|
135
139
|
|
|
136
|
-
// CBS_get_bytes sets
|
|
137
|
-
//
|
|
140
|
+
// CBS_get_bytes sets `*out` to the next `len` bytes from `cbs` and advances
|
|
141
|
+
// `cbs`. It returns one on success and zero on error.
|
|
138
142
|
OPENSSL_EXPORT int CBS_get_bytes(CBS *cbs, CBS *out, size_t len);
|
|
139
143
|
|
|
140
|
-
// CBS_copy_bytes copies the next
|
|
141
|
-
//
|
|
144
|
+
// CBS_copy_bytes copies the next `len` bytes from `cbs` to `out` and advances
|
|
145
|
+
// `cbs`. It returns one on success and zero on error.
|
|
142
146
|
OPENSSL_EXPORT int CBS_copy_bytes(CBS *cbs, uint8_t *out, size_t len);
|
|
143
147
|
|
|
144
|
-
// CBS_get_u8_length_prefixed sets
|
|
145
|
-
// length-prefixed value from
|
|
148
|
+
// CBS_get_u8_length_prefixed sets `*out` to the contents of an 8-bit,
|
|
149
|
+
// length-prefixed value from `cbs` and advances `cbs` over it. It returns one
|
|
146
150
|
// on success and zero on error.
|
|
147
151
|
OPENSSL_EXPORT int CBS_get_u8_length_prefixed(CBS *cbs, CBS *out);
|
|
148
152
|
|
|
149
|
-
// CBS_get_u16_length_prefixed sets
|
|
150
|
-
// big-endian, length-prefixed value from
|
|
153
|
+
// CBS_get_u16_length_prefixed sets `*out` to the contents of a 16-bit,
|
|
154
|
+
// big-endian, length-prefixed value from `cbs` and advances `cbs` over it. It
|
|
151
155
|
// returns one on success and zero on error.
|
|
152
156
|
OPENSSL_EXPORT int CBS_get_u16_length_prefixed(CBS *cbs, CBS *out);
|
|
153
157
|
|
|
154
|
-
// CBS_get_u24_length_prefixed sets
|
|
155
|
-
// big-endian, length-prefixed value from
|
|
158
|
+
// CBS_get_u24_length_prefixed sets `*out` to the contents of a 24-bit,
|
|
159
|
+
// big-endian, length-prefixed value from `cbs` and advances `cbs` over it. It
|
|
156
160
|
// returns one on success and zero on error.
|
|
157
161
|
OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
|
|
158
162
|
|
|
159
|
-
// CBS_get_until_first finds the first instance of
|
|
160
|
-
// sets
|
|
161
|
-
// one. Otherwise, it returns zero and leaves
|
|
163
|
+
// CBS_get_until_first finds the first instance of `c` in `cbs`. If found, it
|
|
164
|
+
// sets `*out` to the text before the match, advances `cbs` over it, and returns
|
|
165
|
+
// one. Otherwise, it returns zero and leaves `cbs` unmodified.
|
|
162
166
|
OPENSSL_EXPORT int CBS_get_until_first(CBS *cbs, CBS *out, uint8_t c);
|
|
163
167
|
|
|
164
|
-
//
|
|
165
|
-
//
|
|
168
|
+
// CBS_get_until_first_of finds the first byte in `cbs` matching one of the
|
|
169
|
+
// characters in `chars`, which is a NUL-terminated C string. If found, it sets
|
|
170
|
+
// `*out` to the text before the match, advances `cbs` over it, and returns one.
|
|
171
|
+
// Otherwise, it returns zero and leaves `cbs` unmodified.
|
|
172
|
+
OPENSSL_EXPORT int CBS_get_until_first_of(CBS *cbs, CBS *out,
|
|
173
|
+
const char *chars);
|
|
174
|
+
|
|
175
|
+
// CBS_get_until_first_not_of finds the first byte in `cbs` that does not match
|
|
176
|
+
// any of the characters in `chars`, which is a NUL-terminated C string. If
|
|
177
|
+
// found, it sets `*out` to the text before the match, advances `cbs` over it,
|
|
178
|
+
// and returns one. Otherwise, it returns zero and leaves `cbs` unmodified.
|
|
179
|
+
OPENSSL_EXPORT int CBS_get_until_first_not_of(CBS *cbs, CBS *out,
|
|
180
|
+
const char *chars);
|
|
181
|
+
|
|
182
|
+
// CBS_get_u64_decimal reads a decimal integer from `cbs` and writes it to
|
|
183
|
+
// `*out`. It stops reading at the end of the string, or the first non-digit
|
|
166
184
|
// character. It returns one on success and zero on error. This function behaves
|
|
167
|
-
// analogously to
|
|
185
|
+
// analogously to `strtoul` except it does not accept empty inputs, leading
|
|
168
186
|
// zeros, or negative values.
|
|
169
187
|
OPENSSL_EXPORT int CBS_get_u64_decimal(CBS *cbs, uint64_t *out);
|
|
170
188
|
|
|
171
189
|
|
|
172
190
|
// Parsing ASN.1
|
|
173
191
|
//
|
|
174
|
-
//
|
|
192
|
+
// `CBS` may be used to parse DER structures. Rather than using a schema
|
|
175
193
|
// compiler, the following functions act on tag-length-value elements in the
|
|
176
194
|
// serialization itself. Thus the caller is responsible for looping over a
|
|
177
195
|
// SEQUENCE, branching on CHOICEs or OPTIONAL fields, checking for trailing
|
|
178
|
-
// data, and handling
|
|
196
|
+
// data, and handling explicit vs. implicit tagging.
|
|
179
197
|
//
|
|
180
|
-
// Tags are represented as
|
|
198
|
+
// Tags are represented as `CBS_ASN1_TAG` values in memory. The upper few bits
|
|
181
199
|
// store the class and constructed bit, and the remaining bits store the tag
|
|
182
200
|
// number. Note this differs from the DER serialization, to support tag numbers
|
|
183
201
|
// beyond 31. Consumers must use the constants defined below to decompose or
|
|
@@ -235,46 +253,51 @@ OPENSSL_EXPORT int CBS_get_u64_decimal(CBS *cbs, uint64_t *out);
|
|
|
235
253
|
#define CBS_ASN1_UNIVERSALSTRING 0x1cu
|
|
236
254
|
#define CBS_ASN1_BMPSTRING 0x1eu
|
|
237
255
|
|
|
238
|
-
// CBS_get_asn1 sets
|
|
239
|
-
// including tag and length bytes) and advances
|
|
240
|
-
// element must match
|
|
256
|
+
// CBS_get_asn1 sets `*out` to the contents of DER-encoded, ASN.1 element (not
|
|
257
|
+
// including tag and length bytes) and advances `cbs` over it. The ASN.1
|
|
258
|
+
// element must match `tag_value`. It returns one on success and zero
|
|
241
259
|
// on error.
|
|
242
260
|
OPENSSL_EXPORT int CBS_get_asn1(CBS *cbs, CBS *out, CBS_ASN1_TAG tag_value);
|
|
243
261
|
|
|
244
|
-
// CBS_get_asn1_element acts like
|
|
262
|
+
// CBS_get_asn1_element acts like `CBS_get_asn1` but `out` will include the
|
|
245
263
|
// ASN.1 header bytes too.
|
|
246
264
|
OPENSSL_EXPORT int CBS_get_asn1_element(CBS *cbs, CBS *out,
|
|
247
265
|
CBS_ASN1_TAG tag_value);
|
|
248
266
|
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
-
//
|
|
252
|
-
// it returns one, CBS_get_asn1 may still fail if the rest of the
|
|
267
|
+
// CBS_peek_any_asn1_tag looks ahead at the next ASN.1 tag and returns it. If a
|
|
268
|
+
// tag could not be parsed, it returns zero, which is never a valid tag. Note:
|
|
269
|
+
// if it returns non-zero, `CBS_get_asn1` may still fail if the rest of the
|
|
253
270
|
// element is malformed.
|
|
271
|
+
OPENSSL_EXPORT CBS_ASN1_TAG CBS_peek_any_asn1_tag(const CBS *cbs);
|
|
272
|
+
|
|
273
|
+
// CBS_peek_asn1_tag looks ahead at the next ASN.1 tag and returns one if the
|
|
274
|
+
// next ASN.1 element on `cbs` would have tag `tag_value`. If `cbs` is empty or
|
|
275
|
+
// the tag does not match, it returns zero. Note: if it returns one,
|
|
276
|
+
// `CBS_get_asn1` may still fail if the rest of the element is malformed.
|
|
254
277
|
OPENSSL_EXPORT int CBS_peek_asn1_tag(const CBS *cbs, CBS_ASN1_TAG tag_value);
|
|
255
278
|
|
|
256
|
-
// CBS_get_any_asn1 sets
|
|
257
|
-
// (not including tag and length bytes), sets
|
|
258
|
-
// advances
|
|
259
|
-
// and
|
|
279
|
+
// CBS_get_any_asn1 sets `*out` to contain the next ASN.1 element from `*cbs`
|
|
280
|
+
// (not including tag and length bytes), sets `*out_tag` to the tag number, and
|
|
281
|
+
// advances `*cbs`. It returns one on success and zero on error. Either of `out`
|
|
282
|
+
// and `out_tag` may be NULL to ignore the value.
|
|
260
283
|
OPENSSL_EXPORT int CBS_get_any_asn1(CBS *cbs, CBS *out,
|
|
261
284
|
CBS_ASN1_TAG *out_tag);
|
|
262
285
|
|
|
263
|
-
// CBS_get_any_asn1_element sets
|
|
264
|
-
//
|
|
265
|
-
// the tag number and
|
|
266
|
-
// of
|
|
286
|
+
// CBS_get_any_asn1_element sets `*out` to contain the next ASN.1 element from
|
|
287
|
+
// `*cbs` (including header bytes) and advances `*cbs`. It sets `*out_tag` to
|
|
288
|
+
// the tag number and `*out_header_len` to the length of the ASN.1 header. Each
|
|
289
|
+
// of `out`, `out_tag`, and `out_header_len` may be NULL to ignore the value.
|
|
267
290
|
OPENSSL_EXPORT int CBS_get_any_asn1_element(CBS *cbs, CBS *out,
|
|
268
291
|
CBS_ASN1_TAG *out_tag,
|
|
269
292
|
size_t *out_header_len);
|
|
270
293
|
|
|
271
|
-
// CBS_get_any_ber_asn1_element acts the same as
|
|
294
|
+
// CBS_get_any_ber_asn1_element acts the same as `CBS_get_any_asn1_element` but
|
|
272
295
|
// also allows indefinite-length elements to be returned and does not enforce
|
|
273
|
-
// that lengths are minimal. It sets
|
|
274
|
-
// indefinite and zero otherwise. If indefinite,
|
|
275
|
-
//
|
|
276
|
-
// also true for empty elements so
|
|
277
|
-
//
|
|
296
|
+
// that lengths are minimal. It sets `*out_indefinite` to one if the length was
|
|
297
|
+
// indefinite and zero otherwise. If indefinite, `*out_header_len` and
|
|
298
|
+
// `CBS_len(out)` will be equal as only the header is returned (although this is
|
|
299
|
+
// also true for empty elements so `*out_indefinite` should be checked). If
|
|
300
|
+
// `out_ber_found` is not NULL then it is set to one if any case of invalid DER
|
|
278
301
|
// but valid BER is found, and to zero otherwise.
|
|
279
302
|
//
|
|
280
303
|
// This function will not successfully parse an end-of-contents (EOC) as an
|
|
@@ -286,14 +309,14 @@ OPENSSL_EXPORT int CBS_get_any_ber_asn1_element(CBS *cbs, CBS *out,
|
|
|
286
309
|
int *out_ber_found,
|
|
287
310
|
int *out_indefinite);
|
|
288
311
|
|
|
289
|
-
// CBS_get_asn1_uint64 gets an ASN.1 INTEGER from
|
|
290
|
-
// and sets
|
|
312
|
+
// CBS_get_asn1_uint64 gets an ASN.1 INTEGER from `cbs` using `CBS_get_asn1`
|
|
313
|
+
// and sets `*out` to its value. It returns one on success and zero on error,
|
|
291
314
|
// where error includes the integer being negative, or too large to represent
|
|
292
315
|
// in 64 bits.
|
|
293
316
|
OPENSSL_EXPORT int CBS_get_asn1_uint64(CBS *cbs, uint64_t *out);
|
|
294
317
|
|
|
295
|
-
// CBS_get_asn1_uint64_with_tag gets an ASN.1 INTEGER from
|
|
296
|
-
//
|
|
318
|
+
// CBS_get_asn1_uint64_with_tag gets an ASN.1 INTEGER from `cbs` using
|
|
319
|
+
// `CBS_get_asn1` and sets `*out` to its value. `tag` is used to handle to
|
|
297
320
|
// handle implicitly tagged INTEGER fields. It returns one on success and zero
|
|
298
321
|
// on error, where error includes the integer being negative, or too large to
|
|
299
322
|
// represent in 64 bits.
|
|
@@ -301,35 +324,35 @@ OPENSSL_EXPORT int CBS_get_asn1_uint64_with_tag(CBS *cbs, uint64_t *out,
|
|
|
301
324
|
CBS_ASN1_TAG tag);
|
|
302
325
|
|
|
303
326
|
|
|
304
|
-
// CBS_get_asn1_int64 gets an ASN.1 INTEGER from
|
|
305
|
-
// and sets
|
|
327
|
+
// CBS_get_asn1_int64 gets an ASN.1 INTEGER from `cbs` using `CBS_get_asn1`
|
|
328
|
+
// and sets `*out` to its value. It returns one on success and zero on error,
|
|
306
329
|
// where error includes the integer being too large to represent in 64 bits.
|
|
307
330
|
OPENSSL_EXPORT int CBS_get_asn1_int64(CBS *cbs, int64_t *out);
|
|
308
331
|
|
|
309
|
-
// CBS_get_asn1_int64_with_tag gets an ASN.1 INTEGER from
|
|
310
|
-
//
|
|
332
|
+
// CBS_get_asn1_int64_with_tag gets an ASN.1 INTEGER from `cbs` using
|
|
333
|
+
// `CBS_get_asn1` and sets `*out` to its value. `tag` is used to handle to
|
|
311
334
|
// handle implicitly tagged INTEGER fields. It returns one on success and zero
|
|
312
335
|
// on error, where error includes the integer being too large to represent in 64
|
|
313
336
|
// bits.
|
|
314
337
|
OPENSSL_EXPORT int CBS_get_asn1_int64_with_tag(CBS *cbs, int64_t *out,
|
|
315
338
|
CBS_ASN1_TAG tag);
|
|
316
339
|
|
|
317
|
-
// CBS_get_asn1_bool gets an ASN.1 BOOLEAN from
|
|
340
|
+
// CBS_get_asn1_bool gets an ASN.1 BOOLEAN from `cbs` and sets `*out` to zero
|
|
318
341
|
// or one based on its value. It returns one on success or zero on error.
|
|
319
342
|
OPENSSL_EXPORT int CBS_get_asn1_bool(CBS *cbs, int *out);
|
|
320
343
|
|
|
321
|
-
// CBS_get_optional_asn1 gets an optional explicitly-tagged element from
|
|
322
|
-
// tagged with
|
|
323
|
-
// NULL. If present and if
|
|
344
|
+
// CBS_get_optional_asn1 gets an optional explicitly-tagged element from `cbs`
|
|
345
|
+
// tagged with `tag` and sets `*out` to its contents, or ignores it if `out` is
|
|
346
|
+
// NULL. If present and if `out_present` is not NULL, it sets `*out_present` to
|
|
324
347
|
// one, otherwise zero. It returns one on success, whether or not the element
|
|
325
348
|
// was present, and zero on decode failure.
|
|
326
349
|
OPENSSL_EXPORT int CBS_get_optional_asn1(CBS *cbs, CBS *out, int *out_present,
|
|
327
350
|
CBS_ASN1_TAG tag);
|
|
328
351
|
|
|
329
352
|
// CBS_get_optional_asn1_octet_string gets an optional
|
|
330
|
-
// explicitly-tagged OCTET STRING from
|
|
331
|
-
//
|
|
332
|
-
//
|
|
353
|
+
// explicitly-tagged OCTET STRING from `cbs`. If present, it sets
|
|
354
|
+
// `*out` to the string and `*out_present` to one. Otherwise, it sets
|
|
355
|
+
// `*out` to empty and `*out_present` to zero. `out_present` may be
|
|
333
356
|
// NULL. It returns one on success, whether or not the element was
|
|
334
357
|
// present, and zero on decode failure.
|
|
335
358
|
OPENSSL_EXPORT int CBS_get_optional_asn1_octet_string(CBS *cbs, CBS *out,
|
|
@@ -337,8 +360,8 @@ OPENSSL_EXPORT int CBS_get_optional_asn1_octet_string(CBS *cbs, CBS *out,
|
|
|
337
360
|
CBS_ASN1_TAG tag);
|
|
338
361
|
|
|
339
362
|
// CBS_get_optional_asn1_uint64 gets an optional explicitly-tagged
|
|
340
|
-
// INTEGER from
|
|
341
|
-
// value. Otherwise, it sets
|
|
363
|
+
// INTEGER from `cbs`. If present, it sets `*out` to the
|
|
364
|
+
// value. Otherwise, it sets `*out` to `default_value`. It returns one
|
|
342
365
|
// on success, whether or not the element was present, and zero on
|
|
343
366
|
// decode failure.
|
|
344
367
|
OPENSSL_EXPORT int CBS_get_optional_asn1_uint64(CBS *cbs, uint64_t *out,
|
|
@@ -346,92 +369,108 @@ OPENSSL_EXPORT int CBS_get_optional_asn1_uint64(CBS *cbs, uint64_t *out,
|
|
|
346
369
|
uint64_t default_value);
|
|
347
370
|
|
|
348
371
|
// CBS_get_optional_asn1_bool gets an optional, explicitly-tagged BOOLEAN from
|
|
349
|
-
//
|
|
350
|
-
// boolean. Otherwise, it sets
|
|
372
|
+
// `cbs`. If present, it sets `*out` to either zero or one, based on the
|
|
373
|
+
// boolean. Otherwise, it sets `*out` to `default_value`. It returns one on
|
|
351
374
|
// success, whether or not the element was present, and zero on decode
|
|
352
375
|
// failure.
|
|
353
376
|
OPENSSL_EXPORT int CBS_get_optional_asn1_bool(CBS *cbs, int *out,
|
|
354
377
|
CBS_ASN1_TAG tag,
|
|
355
378
|
int default_value);
|
|
356
379
|
|
|
357
|
-
// CBS_is_valid_asn1_bitstring returns one if
|
|
380
|
+
// CBS_is_valid_asn1_bitstring returns one if `cbs` is a valid ASN.1 BIT STRING
|
|
358
381
|
// body and zero otherwise.
|
|
359
382
|
OPENSSL_EXPORT int CBS_is_valid_asn1_bitstring(const CBS *cbs);
|
|
360
383
|
|
|
361
|
-
// CBS_asn1_bitstring_has_bit returns one if
|
|
384
|
+
// CBS_asn1_bitstring_has_bit returns one if `cbs` is a valid ASN.1 BIT STRING
|
|
362
385
|
// body and the specified bit is present and set. Otherwise, it returns zero.
|
|
363
|
-
//
|
|
386
|
+
// `bit` is indexed starting from zero.
|
|
364
387
|
OPENSSL_EXPORT int CBS_asn1_bitstring_has_bit(const CBS *cbs, unsigned bit);
|
|
365
388
|
|
|
366
|
-
// CBS_is_valid_asn1_integer returns one if
|
|
367
|
-
// body and zero otherwise. On success, if
|
|
368
|
-
//
|
|
389
|
+
// CBS_is_valid_asn1_integer returns one if `cbs` is a valid ASN.1 INTEGER,
|
|
390
|
+
// body and zero otherwise. On success, if `out_is_negative` is non-NULL,
|
|
391
|
+
// `*out_is_negative` will be set to one if `cbs` is negative and zero
|
|
369
392
|
// otherwise.
|
|
370
393
|
OPENSSL_EXPORT int CBS_is_valid_asn1_integer(const CBS *cbs,
|
|
371
394
|
int *out_is_negative);
|
|
372
395
|
|
|
373
|
-
// CBS_is_unsigned_asn1_integer returns one if
|
|
396
|
+
// CBS_is_unsigned_asn1_integer returns one if `cbs` is a valid non-negative
|
|
374
397
|
// ASN.1 INTEGER body and zero otherwise.
|
|
375
398
|
OPENSSL_EXPORT int CBS_is_unsigned_asn1_integer(const CBS *cbs);
|
|
376
399
|
|
|
377
|
-
// CBS_is_valid_asn1_oid returns one if
|
|
400
|
+
// CBS_is_valid_asn1_oid returns one if `cbs` is a valid DER-encoded ASN.1
|
|
378
401
|
// OBJECT IDENTIFIER contents (not including the element framing) and zero
|
|
379
402
|
// otherwise. This function tolerates arbitrarily large OID components.
|
|
380
403
|
OPENSSL_EXPORT int CBS_is_valid_asn1_oid(const CBS *cbs);
|
|
381
404
|
|
|
382
|
-
// CBS_asn1_oid_to_text interprets
|
|
405
|
+
// CBS_asn1_oid_to_text interprets `cbs` as DER-encoded ASN.1 OBJECT IDENTIFIER
|
|
383
406
|
// contents (not including the element framing) and returns the ASCII
|
|
384
407
|
// representation (e.g., "1.2.840.113554.4.1.72585") in a newly-allocated
|
|
385
408
|
// string, or NULL on failure. The caller must release the result with
|
|
386
|
-
//
|
|
409
|
+
// `OPENSSL_free`.
|
|
387
410
|
//
|
|
388
|
-
// This function may fail if
|
|
411
|
+
// This function may fail if `cbs` is an invalid OBJECT IDENTIFIER, or if any
|
|
389
412
|
// OID components are too large.
|
|
390
413
|
OPENSSL_EXPORT char *CBS_asn1_oid_to_text(const CBS *cbs);
|
|
391
414
|
|
|
415
|
+
// CBS_is_valid_asn1_relative_oid returns one if `cbs` is a valid DER-encoded
|
|
416
|
+
// ASN.1 RELATIVE-OID contents (not including the element framing) and zero
|
|
417
|
+
// otherwise. This function tolerates arbitrarily large OID components.
|
|
418
|
+
//
|
|
419
|
+
// (This is actually the same as `CBS_is_valid_asn1_oid`, but is also exposed
|
|
420
|
+
// under the relative_oid name for API symmetry.)
|
|
421
|
+
OPENSSL_EXPORT int CBS_is_valid_asn1_relative_oid(const CBS *cbs);
|
|
422
|
+
|
|
423
|
+
// CBS_asn1_relative_oid_to_text interprets `cbs` as DER-encoded ASN.1
|
|
424
|
+
// RELATIVE-OID contents (not including the element framing) and returns the
|
|
425
|
+
// ASCII representation (e.g., "32473.1") in a newly-allocated string, or NULL
|
|
426
|
+
// on failure. The caller must release the result with `OPENSSL_free`.
|
|
427
|
+
//
|
|
428
|
+
// This function may fail if `cbs` is an invalid RELATIVE-OID, or if any
|
|
429
|
+
// OID components are too large.
|
|
430
|
+
OPENSSL_EXPORT char *CBS_asn1_relative_oid_to_text(const CBS *cbs);
|
|
392
431
|
|
|
393
|
-
// CBS_parse_generalized_time returns one if
|
|
432
|
+
// CBS_parse_generalized_time returns one if `cbs` is a valid DER-encoded, ASN.1
|
|
394
433
|
// GeneralizedTime body within the limitations imposed by RFC 5280, or zero
|
|
395
|
-
// otherwise. If
|
|
434
|
+
// otherwise. If `allow_timezone_offset` is non-zero, four-digit timezone
|
|
396
435
|
// offsets, which would not be allowed by DER, are permitted. On success, if
|
|
397
|
-
//
|
|
398
|
-
// corresponding time in UTC. This function does not compute
|
|
399
|
-
// or
|
|
436
|
+
// `out_tm` is non-NULL, `*out_tm` will be zeroed, and then set to the
|
|
437
|
+
// corresponding time in UTC. This function does not compute `out_tm->tm_wday`
|
|
438
|
+
// or `out_tm->tm_yday`.
|
|
400
439
|
OPENSSL_EXPORT int CBS_parse_generalized_time(const CBS *cbs, struct tm *out_tm,
|
|
401
440
|
int allow_timezone_offset);
|
|
402
441
|
|
|
403
|
-
// CBS_parse_utc_time returns one if
|
|
442
|
+
// CBS_parse_utc_time returns one if `cbs` is a valid DER-encoded, ASN.1
|
|
404
443
|
// UTCTime body within the limitations imposed by RFC 5280, or zero otherwise.
|
|
405
|
-
// If
|
|
406
|
-
// would not be allowed by DER, are permitted. On success, if
|
|
407
|
-
// non-NULL,
|
|
408
|
-
// in UTC. This function does not compute
|
|
409
|
-
//
|
|
444
|
+
// If `allow_timezone_offset` is non-zero, four-digit timezone offsets, which
|
|
445
|
+
// would not be allowed by DER, are permitted. On success, if `out_tm` is
|
|
446
|
+
// non-NULL, `*out_tm` will be zeroed, and then set to the corresponding time
|
|
447
|
+
// in UTC. This function does not compute `out_tm->tm_wday` or
|
|
448
|
+
// `out_tm->tm_yday`.
|
|
410
449
|
OPENSSL_EXPORT int CBS_parse_utc_time(const CBS *cbs, struct tm *out_tm,
|
|
411
450
|
int allow_timezone_offset);
|
|
412
451
|
|
|
413
452
|
// CRYPTO ByteBuilder.
|
|
414
453
|
//
|
|
415
|
-
//
|
|
454
|
+
// `CBB` objects allow one to build length-prefixed serialisations. A `CBB`
|
|
416
455
|
// object is associated with a buffer and new buffers are created with
|
|
417
|
-
//
|
|
418
|
-
// length-prefix is pending, however only a single
|
|
419
|
-
// any one time. For example, if one calls
|
|
420
|
-
// the new
|
|
421
|
-
//
|
|
456
|
+
// `CBB_init`. Several `CBB` objects can point at the same buffer when a
|
|
457
|
+
// length-prefix is pending, however only a single `CBB` can be 'current' at
|
|
458
|
+
// any one time. For example, if one calls `CBB_add_u8_length_prefixed` then
|
|
459
|
+
// the new `CBB` points at the same buffer as the original. But if the original
|
|
460
|
+
// `CBB` is used then the length prefix is written out and the new `CBB` must
|
|
422
461
|
// not be used again.
|
|
423
462
|
//
|
|
424
|
-
// If one needs to force a length prefix to be written out because a
|
|
425
|
-
// going out of scope, use
|
|
426
|
-
// in an undefined state and must not be used except to call
|
|
463
|
+
// If one needs to force a length prefix to be written out because a `CBB` is
|
|
464
|
+
// going out of scope, use `CBB_flush`. If an operation on a `CBB` fails, it is
|
|
465
|
+
// in an undefined state and must not be used except to call `CBB_cleanup`.
|
|
427
466
|
|
|
428
467
|
struct cbb_buffer_st {
|
|
429
468
|
uint8_t *buf;
|
|
430
|
-
// len is the number of valid bytes in
|
|
469
|
+
// len is the number of valid bytes in `buf`.
|
|
431
470
|
size_t len;
|
|
432
|
-
// cap is the size of
|
|
471
|
+
// cap is the size of `buf`.
|
|
433
472
|
size_t cap;
|
|
434
|
-
// can_resize is one iff
|
|
473
|
+
// can_resize is one iff `buf` is owned by this object. If not then `buf`
|
|
435
474
|
// cannot be resized.
|
|
436
475
|
unsigned can_resize : 1;
|
|
437
476
|
// error is one if there was an error writing to this CBB. All future
|
|
@@ -440,12 +479,12 @@ struct cbb_buffer_st {
|
|
|
440
479
|
};
|
|
441
480
|
|
|
442
481
|
struct cbb_child_st {
|
|
443
|
-
// base is a pointer to the buffer this
|
|
482
|
+
// base is a pointer to the buffer this `CBB` writes to.
|
|
444
483
|
struct cbb_buffer_st *base;
|
|
445
|
-
// offset is the number of bytes from the start of
|
|
484
|
+
// offset is the number of bytes from the start of `base->buf` to this `CBB`'s
|
|
446
485
|
// pending length prefix.
|
|
447
486
|
size_t offset;
|
|
448
|
-
// pending_len_len contains the number of bytes in this
|
|
487
|
+
// pending_len_len contains the number of bytes in this `CBB`'s pending
|
|
449
488
|
// length-prefix, or zero if no length-prefix is pending.
|
|
450
489
|
uint8_t pending_len_len;
|
|
451
490
|
unsigned pending_is_asn1 : 1;
|
|
@@ -454,8 +493,8 @@ struct cbb_child_st {
|
|
|
454
493
|
struct cbb_st {
|
|
455
494
|
// child points to a child CBB if a length-prefix is pending.
|
|
456
495
|
CBB *child;
|
|
457
|
-
// is_child is one if this is a child
|
|
458
|
-
//
|
|
496
|
+
// is_child is one if this is a child `CBB` and zero if it is a top-level
|
|
497
|
+
// `CBB`. This determines which arm of the union is valid.
|
|
459
498
|
char is_child;
|
|
460
499
|
union {
|
|
461
500
|
struct cbb_buffer_st base;
|
|
@@ -463,187 +502,213 @@ struct cbb_st {
|
|
|
463
502
|
} u;
|
|
464
503
|
};
|
|
465
504
|
|
|
466
|
-
// CBB_zero sets an uninitialised
|
|
467
|
-
// initialised with
|
|
468
|
-
// call
|
|
469
|
-
// uniform cleanup of a
|
|
505
|
+
// CBB_zero sets an uninitialised `cbb` to the zero state. It must be
|
|
506
|
+
// initialised with `CBB_init` or `CBB_init_fixed` before use, but it is safe to
|
|
507
|
+
// call `CBB_cleanup` without a successful `CBB_init`. This may be used for more
|
|
508
|
+
// uniform cleanup of a `CBB`.
|
|
470
509
|
OPENSSL_EXPORT void CBB_zero(CBB *cbb);
|
|
471
510
|
|
|
472
|
-
// CBB_init initialises
|
|
473
|
-
// needed, the
|
|
511
|
+
// CBB_init initialises `cbb` with `initial_capacity`. Since a `CBB` grows as
|
|
512
|
+
// needed, the `initial_capacity` is just a hint. It returns one on success or
|
|
474
513
|
// zero on allocation failure.
|
|
475
514
|
OPENSSL_EXPORT int CBB_init(CBB *cbb, size_t initial_capacity);
|
|
476
515
|
|
|
477
|
-
// CBB_init_fixed initialises
|
|
478
|
-
//
|
|
516
|
+
// CBB_init_fixed initialises `cbb` to write to `len` bytes at `buf`. Since
|
|
517
|
+
// `buf` cannot grow, trying to write more than `len` bytes will cause CBB
|
|
479
518
|
// functions to fail. This function is infallible and always returns one. It is
|
|
480
|
-
// safe, but not necessary, to call
|
|
519
|
+
// safe, but not necessary, to call `CBB_cleanup` on `cbb`.
|
|
481
520
|
OPENSSL_EXPORT int CBB_init_fixed(CBB *cbb, uint8_t *buf, size_t len);
|
|
482
521
|
|
|
483
|
-
// CBB_cleanup frees all resources owned by
|
|
522
|
+
// CBB_cleanup frees all resources owned by `cbb` and other `CBB` objects
|
|
484
523
|
// writing to the same buffer. This should be used in an error case where a
|
|
485
524
|
// serialisation is abandoned.
|
|
486
525
|
//
|
|
487
|
-
// This function can only be called on a "top level"
|
|
488
|
-
// with
|
|
489
|
-
//
|
|
526
|
+
// This function can only be called on a "top level" `CBB`, i.e. one initialised
|
|
527
|
+
// with `CBB_init` or `CBB_init_fixed`, or a `CBB` set to the zero state with
|
|
528
|
+
// `CBB_zero`.
|
|
490
529
|
OPENSSL_EXPORT void CBB_cleanup(CBB *cbb);
|
|
491
530
|
|
|
492
|
-
// CBB_finish completes any pending length prefix and sets
|
|
493
|
-
// malloced buffer and
|
|
531
|
+
// CBB_finish completes any pending length prefix and sets `*out_data` to a
|
|
532
|
+
// malloced buffer and `*out_len` to the length of that buffer. The caller
|
|
494
533
|
// takes ownership of the buffer and, unless the buffer was fixed with
|
|
495
|
-
//
|
|
534
|
+
// `CBB_init_fixed`, must call `OPENSSL_free` when done.
|
|
496
535
|
//
|
|
497
|
-
// It can only be called on a "top level"
|
|
498
|
-
//
|
|
536
|
+
// It can only be called on a "top level" `CBB`, i.e. one initialised with
|
|
537
|
+
// `CBB_init` or `CBB_init_fixed`. It returns one on success and zero on
|
|
499
538
|
// error.
|
|
500
539
|
OPENSSL_EXPORT int CBB_finish(CBB *cbb, uint8_t **out_data, size_t *out_len);
|
|
501
540
|
|
|
502
541
|
// CBB_flush causes any pending length prefixes to be written out and any child
|
|
503
|
-
//
|
|
504
|
-
// used after the children go out of scope, e.g. when local
|
|
505
|
-
// added as children to a
|
|
542
|
+
// `CBB` objects of `cbb` to be invalidated. This allows `cbb` to continue to be
|
|
543
|
+
// used after the children go out of scope, e.g. when local `CBB` objects are
|
|
544
|
+
// added as children to a `CBB` that persists after a function returns. This
|
|
506
545
|
// function returns one on success or zero on error.
|
|
507
546
|
OPENSSL_EXPORT int CBB_flush(CBB *cbb);
|
|
508
547
|
|
|
509
|
-
// CBB_data returns a pointer to the bytes written to
|
|
510
|
-
//
|
|
548
|
+
// CBB_data returns a pointer to the bytes written to `cbb`. It does not flush
|
|
549
|
+
// `cbb`. The pointer is valid until the next operation to `cbb`.
|
|
511
550
|
//
|
|
512
551
|
// To avoid unfinalized length prefixes, it is a fatal error to call this on a
|
|
513
552
|
// CBB with any active children.
|
|
514
|
-
OPENSSL_EXPORT
|
|
553
|
+
OPENSSL_EXPORT uint8_t *CBB_data(const CBB *cbb);
|
|
515
554
|
|
|
516
|
-
// CBB_len returns the number of bytes written to
|
|
517
|
-
//
|
|
555
|
+
// CBB_len returns the number of bytes written to `cbb`. It does not flush
|
|
556
|
+
// `cbb`.
|
|
518
557
|
//
|
|
519
558
|
// To avoid unfinalized length prefixes, it is a fatal error to call this on a
|
|
520
559
|
// CBB with any active children.
|
|
521
560
|
OPENSSL_EXPORT size_t CBB_len(const CBB *cbb);
|
|
522
561
|
|
|
523
|
-
// CBB_add_u8_length_prefixed sets
|
|
524
|
-
// data written to
|
|
562
|
+
// CBB_add_u8_length_prefixed sets `*out_contents` to a new child of `cbb`. The
|
|
563
|
+
// data written to `*out_contents` will be prefixed in `cbb` with an 8-bit
|
|
525
564
|
// length. It returns one on success or zero on error.
|
|
526
565
|
OPENSSL_EXPORT int CBB_add_u8_length_prefixed(CBB *cbb, CBB *out_contents);
|
|
527
566
|
|
|
528
|
-
// CBB_add_u16_length_prefixed sets
|
|
529
|
-
// The data written to
|
|
567
|
+
// CBB_add_u16_length_prefixed sets `*out_contents` to a new child of `cbb`.
|
|
568
|
+
// The data written to `*out_contents` will be prefixed in `cbb` with a 16-bit,
|
|
530
569
|
// big-endian length. It returns one on success or zero on error.
|
|
531
570
|
OPENSSL_EXPORT int CBB_add_u16_length_prefixed(CBB *cbb, CBB *out_contents);
|
|
532
571
|
|
|
533
|
-
// CBB_add_u24_length_prefixed sets
|
|
534
|
-
// The data written to
|
|
572
|
+
// CBB_add_u24_length_prefixed sets `*out_contents` to a new child of `cbb`.
|
|
573
|
+
// The data written to `*out_contents` will be prefixed in `cbb` with a 24-bit,
|
|
535
574
|
// big-endian length. It returns one on success or zero on error.
|
|
536
575
|
OPENSSL_EXPORT int CBB_add_u24_length_prefixed(CBB *cbb, CBB *out_contents);
|
|
537
576
|
|
|
538
|
-
// CBB_add_asn1 sets
|
|
539
|
-
// ASN.1 object can be written. The
|
|
577
|
+
// CBB_add_asn1 sets `*out_contents` to a `CBB` into which the contents of an
|
|
578
|
+
// ASN.1 object can be written. The `tag` argument will be used as the tag for
|
|
540
579
|
// the object. It returns one on success or zero on error.
|
|
541
580
|
OPENSSL_EXPORT int CBB_add_asn1(CBB *cbb, CBB *out_contents, CBS_ASN1_TAG tag);
|
|
542
581
|
|
|
543
|
-
// CBB_add_bytes appends
|
|
582
|
+
// CBB_add_bytes appends `len` bytes from `data` to `cbb`. It returns one on
|
|
544
583
|
// success and zero otherwise.
|
|
545
584
|
OPENSSL_EXPORT int CBB_add_bytes(CBB *cbb, const uint8_t *data, size_t len);
|
|
546
585
|
|
|
547
|
-
// CBB_add_zeros append
|
|
586
|
+
// CBB_add_zeros append `len` bytes with value zero to `cbb`. It returns one on
|
|
548
587
|
// success and zero otherwise.
|
|
549
588
|
OPENSSL_EXPORT int CBB_add_zeros(CBB *cbb, size_t len);
|
|
550
589
|
|
|
551
|
-
// CBB_add_space appends
|
|
552
|
-
// the beginning of that space. The caller must then write
|
|
553
|
-
// actual contents to
|
|
590
|
+
// CBB_add_space appends `len` bytes to `cbb` and sets `*out_data` to point to
|
|
591
|
+
// the beginning of that space. The caller must then write `len` bytes of
|
|
592
|
+
// actual contents to `*out_data`. It returns one on success and zero
|
|
554
593
|
// otherwise.
|
|
555
594
|
OPENSSL_EXPORT int CBB_add_space(CBB *cbb, uint8_t **out_data, size_t len);
|
|
556
595
|
|
|
557
|
-
// CBB_reserve ensures
|
|
558
|
-
//
|
|
559
|
-
// success and zero otherwise. The caller may write up to
|
|
560
|
-
//
|
|
561
|
-
// valid until the next operation on
|
|
596
|
+
// CBB_reserve ensures `cbb` has room for `len` additional bytes and sets
|
|
597
|
+
// `*out_data` to point to the beginning of that space. It returns one on
|
|
598
|
+
// success and zero otherwise. The caller may write up to `len` bytes to
|
|
599
|
+
// `*out_data` and call `CBB_did_write` to complete the write. `*out_data` is
|
|
600
|
+
// valid until the next operation on `cbb` or an ancestor `CBB`.
|
|
562
601
|
OPENSSL_EXPORT int CBB_reserve(CBB *cbb, uint8_t **out_data, size_t len);
|
|
563
602
|
|
|
564
|
-
// CBB_did_write advances
|
|
603
|
+
// CBB_did_write advances `cbb` by `len` bytes, assuming the space has been
|
|
565
604
|
// written to by the caller. It returns one on success and zero on error.
|
|
566
605
|
OPENSSL_EXPORT int CBB_did_write(CBB *cbb, size_t len);
|
|
567
606
|
|
|
568
|
-
// CBB_add_u8 appends an 8-bit number from
|
|
607
|
+
// CBB_add_u8 appends an 8-bit number from `value` to `cbb`. It returns one on
|
|
569
608
|
// success and zero otherwise.
|
|
570
609
|
OPENSSL_EXPORT int CBB_add_u8(CBB *cbb, uint8_t value);
|
|
571
610
|
|
|
572
|
-
// CBB_add_u16 appends a 16-bit, big-endian number from
|
|
611
|
+
// CBB_add_u16 appends a 16-bit, big-endian number from `value` to `cbb`. It
|
|
573
612
|
// returns one on success and zero otherwise.
|
|
574
613
|
OPENSSL_EXPORT int CBB_add_u16(CBB *cbb, uint16_t value);
|
|
575
614
|
|
|
576
|
-
// CBB_add_u16le appends a 16-bit, little-endian number from
|
|
615
|
+
// CBB_add_u16le appends a 16-bit, little-endian number from `value` to `cbb`.
|
|
577
616
|
// It returns one on success and zero otherwise.
|
|
578
617
|
OPENSSL_EXPORT int CBB_add_u16le(CBB *cbb, uint16_t value);
|
|
579
618
|
|
|
580
|
-
// CBB_add_u24 appends a 24-bit, big-endian number from
|
|
619
|
+
// CBB_add_u24 appends a 24-bit, big-endian number from `value` to `cbb`. It
|
|
581
620
|
// returns one on success and zero otherwise.
|
|
582
621
|
OPENSSL_EXPORT int CBB_add_u24(CBB *cbb, uint32_t value);
|
|
583
622
|
|
|
584
|
-
// CBB_add_u32 appends a 32-bit, big-endian number from
|
|
623
|
+
// CBB_add_u32 appends a 32-bit, big-endian number from `value` to `cbb`. It
|
|
585
624
|
// returns one on success and zero otherwise.
|
|
586
625
|
OPENSSL_EXPORT int CBB_add_u32(CBB *cbb, uint32_t value);
|
|
587
626
|
|
|
588
|
-
// CBB_add_u32le appends a 32-bit, little-endian number from
|
|
627
|
+
// CBB_add_u32le appends a 32-bit, little-endian number from `value` to `cbb`.
|
|
589
628
|
// It returns one on success and zero otherwise.
|
|
590
629
|
OPENSSL_EXPORT int CBB_add_u32le(CBB *cbb, uint32_t value);
|
|
591
630
|
|
|
592
|
-
// CBB_add_u64 appends a 64-bit, big-endian number from
|
|
631
|
+
// CBB_add_u64 appends a 64-bit, big-endian number from `value` to `cbb`. It
|
|
593
632
|
// returns one on success and zero otherwise.
|
|
594
633
|
OPENSSL_EXPORT int CBB_add_u64(CBB *cbb, uint64_t value);
|
|
595
634
|
|
|
596
|
-
// CBB_add_u64le appends a 64-bit, little-endian number from
|
|
635
|
+
// CBB_add_u64le appends a 64-bit, little-endian number from `value` to `cbb`.
|
|
597
636
|
// It returns one on success and zero otherwise.
|
|
598
637
|
OPENSSL_EXPORT int CBB_add_u64le(CBB *cbb, uint64_t value);
|
|
599
638
|
|
|
600
|
-
//
|
|
639
|
+
// CBB_discard discards the last `len` bytes written to `cbb`. The process will
|
|
640
|
+
// abort if `cbb` has an unflushed child, or its length is smaller than `len`.
|
|
641
|
+
OPENSSL_EXPORT void CBB_discard(CBB *cbb, size_t len);
|
|
642
|
+
|
|
643
|
+
// CBB_discard_child discards the current unflushed child of `cbb`. Neither the
|
|
601
644
|
// child's contents nor the length prefix will be included in the output.
|
|
602
645
|
OPENSSL_EXPORT void CBB_discard_child(CBB *cbb);
|
|
603
646
|
|
|
604
|
-
//
|
|
605
|
-
//
|
|
647
|
+
// CBB_add_asn1_element adds an ASN.1 element with the specified tag and
|
|
648
|
+
// contents. It returns one on success and zero on error. This is a convenience
|
|
649
|
+
// function over `CBB_add_asn1` when the data is already available.
|
|
650
|
+
OPENSSL_EXPORT int CBB_add_asn1_element(CBB *cbb, CBS_ASN1_TAG tag,
|
|
651
|
+
const uint8_t *data, size_t data_len);
|
|
652
|
+
|
|
653
|
+
// CBB_add_asn1_uint64 writes an ASN.1 INTEGER into `cbb` using `CBB_add_asn1`
|
|
654
|
+
// and writes `value` in its contents. It returns one on success and zero on
|
|
606
655
|
// error.
|
|
607
656
|
OPENSSL_EXPORT int CBB_add_asn1_uint64(CBB *cbb, uint64_t value);
|
|
608
657
|
|
|
609
|
-
// CBB_add_asn1_uint64_with_tag behaves like
|
|
610
|
-
//
|
|
658
|
+
// CBB_add_asn1_uint64_with_tag behaves like `CBB_add_asn1_uint64` but uses
|
|
659
|
+
// `tag` as the tag instead of INTEGER. This is useful if the INTEGER type uses
|
|
611
660
|
// implicit tagging.
|
|
612
661
|
OPENSSL_EXPORT int CBB_add_asn1_uint64_with_tag(CBB *cbb, uint64_t value,
|
|
613
662
|
CBS_ASN1_TAG tag);
|
|
614
663
|
|
|
615
|
-
// CBB_add_asn1_int64 writes an ASN.1 INTEGER into
|
|
616
|
-
// and writes
|
|
664
|
+
// CBB_add_asn1_int64 writes an ASN.1 INTEGER into `cbb` using `CBB_add_asn1`
|
|
665
|
+
// and writes `value` in its contents. It returns one on success and zero on
|
|
617
666
|
// error.
|
|
618
667
|
OPENSSL_EXPORT int CBB_add_asn1_int64(CBB *cbb, int64_t value);
|
|
619
668
|
|
|
620
|
-
// CBB_add_asn1_int64_with_tag behaves like
|
|
669
|
+
// CBB_add_asn1_int64_with_tag behaves like `CBB_add_asn1_int64` but uses `tag`
|
|
621
670
|
// as the tag instead of INTEGER. This is useful if the INTEGER type uses
|
|
622
671
|
// implicit tagging.
|
|
623
672
|
OPENSSL_EXPORT int CBB_add_asn1_int64_with_tag(CBB *cbb, int64_t value,
|
|
624
673
|
CBS_ASN1_TAG tag);
|
|
625
674
|
|
|
626
|
-
// CBB_add_asn1_octet_string writes an ASN.1 OCTET STRING into
|
|
675
|
+
// CBB_add_asn1_octet_string writes an ASN.1 OCTET STRING into `cbb` with the
|
|
627
676
|
// given contents. It returns one on success and zero on error.
|
|
628
677
|
OPENSSL_EXPORT int CBB_add_asn1_octet_string(CBB *cbb, const uint8_t *data,
|
|
629
678
|
size_t data_len);
|
|
630
679
|
|
|
631
|
-
// CBB_add_asn1_bool writes an ASN.1 BOOLEAN into
|
|
632
|
-
//
|
|
680
|
+
// CBB_add_asn1_bool writes an ASN.1 BOOLEAN into `cbb` which is true iff
|
|
681
|
+
// `value` is non-zero. It returns one on success and zero on error.
|
|
633
682
|
OPENSSL_EXPORT int CBB_add_asn1_bool(CBB *cbb, int value);
|
|
634
683
|
|
|
635
|
-
// CBB_add_asn1_oid_from_text decodes
|
|
684
|
+
// CBB_add_asn1_oid_from_text decodes `len` bytes from `text` as an ASCII OID
|
|
636
685
|
// representation, e.g. "1.2.840.113554.4.1.72585", and writes the DER-encoded
|
|
637
|
-
// contents to
|
|
638
|
-
//
|
|
686
|
+
// contents to `cbb`. It returns one on success and zero on malloc failure or if
|
|
687
|
+
// `text` was invalid. It does not include the OBJECT IDENTIFIER framing, only
|
|
639
688
|
// the element's contents.
|
|
640
689
|
//
|
|
641
690
|
// This function considers OID strings with components which do not fit in a
|
|
642
|
-
//
|
|
691
|
+
// `uint64_t` to be invalid.
|
|
643
692
|
OPENSSL_EXPORT int CBB_add_asn1_oid_from_text(CBB *cbb, const char *text,
|
|
644
693
|
size_t len);
|
|
645
694
|
|
|
646
|
-
//
|
|
695
|
+
// CBB_add_asn1_relative_oid_from_text decodes `len` bytes from `text` as an
|
|
696
|
+
// ASCII RELATIVE-OID representation, e.g. "32473.1", and writes the
|
|
697
|
+
// DER-encoded contents to `cbb`. It returns one on success and zero on malloc
|
|
698
|
+
// failure or if `text` was invalid. It does not include any framing, only the
|
|
699
|
+
// element's contents.
|
|
700
|
+
//
|
|
701
|
+
// This function considers OID strings with components which do not fit in a
|
|
702
|
+
// `uint64_t` to be invalid.
|
|
703
|
+
OPENSSL_EXPORT int CBB_add_asn1_relative_oid_from_text(CBB *cbb,
|
|
704
|
+
const char *text,
|
|
705
|
+
size_t len);
|
|
706
|
+
|
|
707
|
+
// CBB_add_asn1_oid_component appends a single OID component to `cbb`.
|
|
708
|
+
// It returns one on success and zero on error.
|
|
709
|
+
OPENSSL_EXPORT int CBB_add_asn1_oid_component(CBB *cbb, uint64_t value);
|
|
710
|
+
|
|
711
|
+
// CBB_flush_asn1_set_of calls `CBB_flush` on `cbb` and then reorders the
|
|
647
712
|
// contents for a DER-encoded ASN.1 SET OF type. It returns one on success and
|
|
648
713
|
// zero on failure. DER canonicalizes SET OF contents by sorting
|
|
649
714
|
// lexicographically by encoding. Call this function when encoding a SET OF
|
|
@@ -658,21 +723,21 @@ OPENSSL_EXPORT int CBB_flush_asn1_set_of(CBB *cbb);
|
|
|
658
723
|
// These functions consider noncharacters (see section 23.7 from Unicode 15.0.0)
|
|
659
724
|
// to be invalid code points and will treat them as an error condition.
|
|
660
725
|
|
|
661
|
-
// The following functions read one Unicode code point from
|
|
662
|
-
// corresponding encoding and store it in
|
|
726
|
+
// The following functions read one Unicode code point from `cbs` with the
|
|
727
|
+
// corresponding encoding and store it in `*out`. They return one on success and
|
|
663
728
|
// zero on error.
|
|
664
729
|
OPENSSL_EXPORT int CBS_get_utf8(CBS *cbs, uint32_t *out);
|
|
665
730
|
OPENSSL_EXPORT int CBS_get_latin1(CBS *cbs, uint32_t *out);
|
|
666
731
|
OPENSSL_EXPORT int CBS_get_ucs2_be(CBS *cbs, uint32_t *out);
|
|
667
732
|
OPENSSL_EXPORT int CBS_get_utf32_be(CBS *cbs, uint32_t *out);
|
|
668
733
|
|
|
669
|
-
// CBB_get_utf8_len returns the number of bytes needed to represent
|
|
734
|
+
// CBB_get_utf8_len returns the number of bytes needed to represent `u` in
|
|
670
735
|
// UTF-8.
|
|
671
736
|
OPENSSL_EXPORT size_t CBB_get_utf8_len(uint32_t u);
|
|
672
737
|
|
|
673
|
-
// The following functions encode
|
|
738
|
+
// The following functions encode `u` to `cbb` with the corresponding
|
|
674
739
|
// encoding. They return one on success and zero on error. Error conditions
|
|
675
|
-
// include
|
|
740
|
+
// include `u` being an invalid code point, or `u` being unencodable in the
|
|
676
741
|
// specified encoding.
|
|
677
742
|
OPENSSL_EXPORT int CBB_add_utf8(CBB *cbb, uint32_t u);
|
|
678
743
|
OPENSSL_EXPORT int CBB_add_latin1(CBB *cbb, uint32_t u);
|