grpc 1.53.2 → 1.54.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +78 -66
- data/include/grpc/event_engine/event_engine.h +30 -14
- data/include/grpc/grpc_security.h +4 -0
- data/include/grpc/support/port_platform.h +4 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +6 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
- data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
- data/src/core/ext/filters/client_channel/client_channel.cc +848 -813
- data/src/core/ext/filters/client_channel/client_channel.h +131 -173
- data/src/core/ext/filters/client_channel/client_channel_internal.h +114 -0
- data/src/core/ext/filters/client_channel/config_selector.h +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -18
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2 -16
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +68 -30
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -5
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +30 -38
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -26
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -179
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
- data/src/core/ext/filters/client_channel/retry_filter.cc +95 -102
- data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
- data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +27 -11
- data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
- data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
- data/src/core/ext/gcp/metadata_query.cc +142 -0
- data/src/core/ext/gcp/metadata_query.h +82 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +8 -12
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +116 -58
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +222 -118
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +113 -295
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +0 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +277 -451
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -14
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +1 -9
- data/src/core/ext/transport/chttp2/transport/internal.h +16 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
- data/src/core/ext/xds/xds_client_stats.cc +29 -15
- data/src/core/ext/xds/xds_client_stats.h +24 -20
- data/src/core/ext/xds/xds_endpoint.cc +5 -2
- data/src/core/ext/xds/xds_endpoint.h +9 -1
- data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
- data/src/core/lib/channel/call_finalization.h +1 -1
- data/src/core/lib/channel/call_tracer.cc +51 -0
- data/src/core/lib/channel/call_tracer.h +101 -38
- data/src/core/lib/channel/connected_channel.cc +483 -1050
- data/src/core/lib/channel/context.h +8 -1
- data/src/core/lib/channel/promise_based_filter.cc +106 -42
- data/src/core/lib/channel/promise_based_filter.h +27 -13
- data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
- data/src/core/lib/config/config_vars.cc +151 -0
- data/src/core/lib/config/config_vars.h +127 -0
- data/src/core/lib/config/config_vars_non_generated.cc +51 -0
- data/src/core/lib/config/load_config.cc +66 -0
- data/src/core/lib/config/load_config.h +49 -0
- data/src/core/lib/debug/trace.cc +5 -6
- data/src/core/lib/debug/trace.h +0 -5
- data/src/core/lib/event_engine/event_engine.cc +37 -2
- data/src/core/lib/event_engine/handle_containers.h +7 -22
- data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -32
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +0 -3
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
- data/src/core/lib/event_engine/resolved_address.cc +2 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
- data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
- data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
- data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
- data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
- data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
- data/src/core/lib/experiments/config.cc +3 -10
- data/src/core/lib/experiments/experiments.cc +7 -0
- data/src/core/lib/experiments/experiments.h +9 -1
- data/src/core/lib/gpr/log.cc +15 -28
- data/src/core/lib/gprpp/fork.cc +8 -14
- data/src/core/lib/gprpp/orphanable.h +4 -3
- data/src/core/lib/gprpp/per_cpu.h +9 -3
- data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
- data/src/core/lib/gprpp/ref_counted.h +33 -34
- data/src/core/lib/gprpp/thd.h +16 -0
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/gprpp/time.h +4 -4
- data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
- data/src/core/lib/iomgr/call_combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
- data/src/core/lib/iomgr/ev_posix.cc +13 -53
- data/src/core/lib/iomgr/ev_posix.h +0 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
- data/src/core/lib/iomgr/iomgr.cc +4 -8
- data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
- data/src/core/lib/iomgr/pollset_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_posix.cc +0 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +19 -55
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -21
- data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
- data/src/core/lib/iomgr/tcp_windows.cc +12 -8
- data/src/core/lib/load_balancing/lb_policy.cc +9 -13
- data/src/core/lib/load_balancing/lb_policy.h +4 -2
- data/src/core/lib/promise/activity.cc +22 -6
- data/src/core/lib/promise/activity.h +61 -24
- data/src/core/lib/promise/cancel_callback.h +77 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -1
- data/src/core/lib/promise/detail/promise_factory.h +4 -0
- data/src/core/lib/promise/for_each.h +176 -0
- data/src/core/lib/promise/if.h +9 -0
- data/src/core/lib/promise/interceptor_list.h +23 -2
- data/src/core/lib/promise/latch.h +89 -3
- data/src/core/lib/promise/loop.h +13 -9
- data/src/core/lib/promise/map.h +7 -0
- data/src/core/lib/promise/party.cc +286 -0
- data/src/core/lib/promise/party.h +499 -0
- data/src/core/lib/promise/pipe.h +197 -57
- data/src/core/lib/promise/poll.h +48 -0
- data/src/core/lib/promise/promise.h +2 -2
- data/src/core/lib/resource_quota/arena.cc +19 -3
- data/src/core/lib/resource_quota/arena.h +119 -5
- data/src/core/lib/resource_quota/memory_quota.cc +1 -1
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
- data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
- data/src/core/lib/slice/slice.cc +1 -1
- data/src/core/lib/surface/builtins.cc +2 -0
- data/src/core/lib/surface/call.cc +926 -1024
- data/src/core/lib/surface/call.h +10 -0
- data/src/core/lib/surface/lame_client.cc +1 -0
- data/src/core/lib/surface/validate_metadata.cc +42 -43
- data/src/core/lib/surface/validate_metadata.h +0 -9
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +179 -0
- data/src/core/lib/transport/batch_builder.h +468 -0
- data/src/core/lib/transport/bdp_estimator.cc +7 -7
- data/src/core/lib/transport/bdp_estimator.h +10 -6
- data/src/core/lib/transport/custom_metadata.h +30 -0
- data/src/core/lib/transport/metadata_batch.cc +5 -2
- data/src/core/lib/transport/metadata_batch.h +17 -113
- data/src/core/lib/transport/parsed_metadata.h +6 -16
- data/src/core/lib/transport/timeout_encoding.cc +6 -1
- data/src/core/lib/transport/transport.cc +30 -2
- data/src/core/lib/transport/transport.h +70 -14
- data/src/core/lib/transport/transport_impl.h +7 -0
- data/src/core/lib/transport/transport_op_string.cc +52 -42
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/abseil-cpp/absl/base/config.h +1 -1
- data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
- data/third_party/abseil-cpp/absl/flags/config.h +68 -0
- data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
- data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
- data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
- data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
- data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
- data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
- data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
- data/third_party/boringssl-with-bazel/err_data.c +728 -712
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
- data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
- data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
- data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
- data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
- data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
- data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
- data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
- data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
- data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
- data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
- metadata +103 -70
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -29
- data/src/core/lib/gprpp/global_config.h +0 -93
- data/src/core/lib/gprpp/global_config_env.cc +0 -140
- data/src/core/lib/gprpp/global_config_env.h +0 -133
- data/src/core/lib/gprpp/global_config_generic.h +0 -40
- data/src/core/lib/promise/intra_activity_waiter.h +0 -55
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
- data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
- data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
- data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
- /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
- /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
- /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
- /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
- /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
- /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
- /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
- /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
- /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
- /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
- /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
- /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
- /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
- /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
- /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
- /data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +0 -0
@@ -55,8 +55,8 @@
|
|
55
55
|
* [including the GNU Public Licence.]
|
56
56
|
*/
|
57
57
|
|
58
|
-
#ifndef
|
59
|
-
#define
|
58
|
+
#ifndef OPENSSL_HEADER_ASN1_H
|
59
|
+
#define OPENSSL_HEADER_ASN1_H
|
60
60
|
|
61
61
|
#include <openssl/base.h>
|
62
62
|
|
@@ -213,38 +213,10 @@ OPENSSL_EXPORT const char *ASN1_tag2str(int tag);
|
|
213
213
|
//
|
214
214
|
// Note: If |out| and |*out| are both non-NULL, the object at |*out| is not
|
215
215
|
// updated in-place. Instead, it is freed, and the pointer is updated to the
|
216
|
-
// new object. This differs from OpenSSL
|
217
|
-
//
|
218
|
-
// instead use the return value.
|
216
|
+
// new object. This differs from OpenSSL. Callers are recommended to set |out|
|
217
|
+
// to NULL and instead use the return value.
|
219
218
|
SAMPLE *d2i_SAMPLE(SAMPLE **out, const uint8_t **inp, long len);
|
220
219
|
|
221
|
-
// d2i_SAMPLE_with_reuse parses a structure from up to |len| bytes at |*inp|. On
|
222
|
-
// success, it advances |*inp| by the number of bytes read and returns a
|
223
|
-
// non-NULL pointer to an object containing the parsed structure. The object is
|
224
|
-
// determined from |out| as follows:
|
225
|
-
//
|
226
|
-
// If |out| is NULL, the function places the result in a newly-allocated
|
227
|
-
// |SAMPLE| object and returns it. This mode is recommended.
|
228
|
-
//
|
229
|
-
// If |out| is non-NULL, but |*out| is NULL, the function also places the result
|
230
|
-
// in a newly-allocated |SAMPLE| object. It sets |*out| to this object and also
|
231
|
-
// returns it.
|
232
|
-
//
|
233
|
-
// If |out| and |*out| are both non-NULL, the function updates the object at
|
234
|
-
// |*out| in-place with the result and returns |*out|.
|
235
|
-
//
|
236
|
-
// If any of the above fail, the function returns NULL.
|
237
|
-
//
|
238
|
-
// This function does not reject trailing data in the input. This allows the
|
239
|
-
// caller to parse a sequence of concatenated structures. Callers parsing only
|
240
|
-
// one structure should check for trailing data by comparing the updated |*inp|
|
241
|
-
// with the end of the input.
|
242
|
-
//
|
243
|
-
// WARNING: Callers should not rely on the in-place update mode. It often
|
244
|
-
// produces the wrong result or breaks the type's internal invariants. Future
|
245
|
-
// revisions of BoringSSL may standardize on the |d2i_SAMPLE| behavior.
|
246
|
-
SAMPLE *d2i_SAMPLE_with_reuse(SAMPLE **out, const uint8_t **inp, long len);
|
247
|
-
|
248
220
|
// i2d_SAMPLE marshals |in|. On error, it returns a negative value. On success,
|
249
221
|
// it returns the length of the result and outputs it via |outp| as follows:
|
250
222
|
//
|
@@ -348,8 +320,8 @@ OPENSSL_EXPORT ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it);
|
|
348
320
|
OPENSSL_EXPORT void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it);
|
349
321
|
|
350
322
|
// ASN1_item_d2i parses the ASN.1 type |it| from up to |len| bytes at |*inp|.
|
351
|
-
// It behaves like |
|
352
|
-
//
|
323
|
+
// It behaves like |d2i_SAMPLE|, except that |out| and the return value are cast
|
324
|
+
// to |ASN1_VALUE| pointers.
|
353
325
|
//
|
354
326
|
// TODO(https://crbug.com/boringssl/444): C strict aliasing forbids type-punning
|
355
327
|
// |T*| and |ASN1_VALUE*| the way this function signature does. When that bug is
|
@@ -447,10 +419,22 @@ OPENSSL_EXPORT ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it,
|
|
447
419
|
// integer type. FALSE is zero, TRUE is 0xff, and an omitted OPTIONAL BOOLEAN is
|
448
420
|
// -1.
|
449
421
|
|
422
|
+
// ASN1_BOOLEAN_FALSE is FALSE as an |ASN1_BOOLEAN|.
|
423
|
+
#define ASN1_BOOLEAN_FALSE 0
|
424
|
+
|
425
|
+
// ASN1_BOOLEAN_TRUE is TRUE as an |ASN1_BOOLEAN|. Some code incorrectly uses
|
426
|
+
// 1, so prefer |b != ASN1_BOOLEAN_FALSE| over |b == ASN1_BOOLEAN_TRUE|.
|
427
|
+
#define ASN1_BOOLEAN_TRUE 0xff
|
428
|
+
|
429
|
+
// ASN1_BOOLEAN_NONE, in contexts where the |ASN1_BOOLEAN| represents an
|
430
|
+
// OPTIONAL BOOLEAN, is an omitted value. Using this value in other contexts is
|
431
|
+
// undefined and may be misinterpreted as TRUE.
|
432
|
+
#define ASN1_BOOLEAN_NONE (-1)
|
433
|
+
|
450
434
|
// d2i_ASN1_BOOLEAN parses a DER-encoded ASN.1 BOOLEAN from up to |len| bytes at
|
451
435
|
// |*inp|. On success, it advances |*inp| by the number of bytes read and
|
452
436
|
// returns the result. If |out| is non-NULL, it additionally writes the result
|
453
|
-
// to |*out|. On error, it returns
|
437
|
+
// to |*out|. On error, it returns |ASN1_BOOLEAN_NONE|.
|
454
438
|
//
|
455
439
|
// This function does not reject trailing data in the input. This allows the
|
456
440
|
// caller to parse a sequence of concatenated structures. Callers parsing only
|
@@ -459,9 +443,6 @@ OPENSSL_EXPORT ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it,
|
|
459
443
|
//
|
460
444
|
// WARNING: This function's is slightly different from other |d2i_*| functions
|
461
445
|
// because |ASN1_BOOLEAN| is not a pointer type.
|
462
|
-
//
|
463
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
464
|
-
// BER, but this will be removed in the future.
|
465
446
|
OPENSSL_EXPORT ASN1_BOOLEAN d2i_ASN1_BOOLEAN(ASN1_BOOLEAN *out,
|
466
447
|
const unsigned char **inp,
|
467
448
|
long len);
|
@@ -472,7 +453,8 @@ OPENSSL_EXPORT int i2d_ASN1_BOOLEAN(ASN1_BOOLEAN a, unsigned char **outp);
|
|
472
453
|
|
473
454
|
// The following |ASN1_ITEM|s have ASN.1 type BOOLEAN and C type |ASN1_BOOLEAN|.
|
474
455
|
// |ASN1_TBOOLEAN| and |ASN1_FBOOLEAN| must be marked OPTIONAL. When omitted,
|
475
|
-
// they are parsed as TRUE and FALSE, respectively, rather than
|
456
|
+
// they are parsed as TRUE and FALSE, respectively, rather than
|
457
|
+
// |ASN1_BOOLEAN_NONE|.
|
476
458
|
DECLARE_ASN1_ITEM(ASN1_BOOLEAN)
|
477
459
|
DECLARE_ASN1_ITEM(ASN1_TBOOLEAN)
|
478
460
|
DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
|
@@ -485,31 +467,39 @@ DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
|
|
485
467
|
// |ASN1_STRING|, to represent most values.
|
486
468
|
|
487
469
|
// An asn1_string_st (aka |ASN1_STRING|) represents a value of a string-like
|
488
|
-
// ASN.1 type. It contains a type field, and a byte string data field with a
|
470
|
+
// ASN.1 type. It contains a |type| field, and a byte string |data| field with a
|
489
471
|
// type-specific representation.
|
490
472
|
//
|
491
|
-
//
|
492
|
-
// |
|
493
|
-
// |
|
494
|
-
// |
|
495
|
-
// |
|
496
|
-
//
|
473
|
+
// If |type| is one of |V_ASN1_OCTET_STRING|, |V_ASN1_UTF8STRING|,
|
474
|
+
// |V_ASN1_NUMERICSTRING|, |V_ASN1_PRINTABLESTRING|, |V_ASN1_T61STRING|,
|
475
|
+
// |V_ASN1_VIDEOTEXSTRING|, |V_ASN1_IA5STRING|, |V_ASN1_GRAPHICSTRING|,
|
476
|
+
// |V_ASN1_ISO64STRING|, |V_ASN1_VISIBLESTRING|, |V_ASN1_GENERALSTRING|,
|
477
|
+
// |V_ASN1_UNIVERSALSTRING|, or |V_ASN1_BMPSTRING|, the object represents an
|
478
|
+
// ASN.1 string type. The data contains the byte representation of the
|
497
479
|
// string.
|
498
480
|
//
|
499
|
-
//
|
500
|
-
// See bit string documentation below for
|
481
|
+
// If |type| is |V_ASN1_BIT_STRING|, the object represents a BIT STRING value.
|
482
|
+
// See bit string documentation below for the data and flags.
|
501
483
|
//
|
502
|
-
//
|
503
|
-
// |
|
504
|
-
//
|
484
|
+
// If |type| is one of |V_ASN1_INTEGER|, |V_ASN1_NEG_INTEGER|,
|
485
|
+
// |V_ASN1_ENUMERATED|, or |V_ASN1_NEG_ENUMERATED|, the object represents an
|
486
|
+
// INTEGER or ENUMERATED value. See integer documentation below for details.
|
505
487
|
//
|
506
|
-
//
|
507
|
-
//
|
508
|
-
// the DER encoding of the value. For example, the UNIX epoch would be
|
488
|
+
// If |type| is |V_ASN1_GENERALIZEDTIME| or |V_ASN1_UTCTIME|, the object
|
489
|
+
// represents a GeneralizedTime or UTCTime value, respectively. The data
|
490
|
+
// contains the DER encoding of the value. For example, the UNIX epoch would be
|
509
491
|
// "19700101000000Z" for a GeneralizedTime and "700101000000Z" for a UTCTime.
|
510
492
|
//
|
511
|
-
// |
|
512
|
-
//
|
493
|
+
// If |type| is |V_ASN1_SEQUENCE|, |V_ASN1_SET|, or |V_ASN1_OTHER|, the object
|
494
|
+
// represents a SEQUENCE, SET, or arbitrary ASN.1 value, respectively. Unlike
|
495
|
+
// the above cases, the data contains the DER encoding of the entire structure,
|
496
|
+
// including the header. If the value is explicitly or implicitly tagged, this
|
497
|
+
// too will be reflected in the data field. As this case handles unknown types,
|
498
|
+
// the contents are not checked when parsing or serializing.
|
499
|
+
//
|
500
|
+
// Other values of |type| do not represent a valid ASN.1 value, though
|
501
|
+
// default-constructed objects may set |type| to -1. Such objects cannot be
|
502
|
+
// serialized.
|
513
503
|
//
|
514
504
|
// |ASN1_STRING| additionally has the following typedefs: |ASN1_BIT_STRING|,
|
515
505
|
// |ASN1_BMPSTRING|, |ASN1_ENUMERATED|, |ASN1_GENERALIZEDTIME|,
|
@@ -526,15 +516,14 @@ DECLARE_ASN1_ITEM(ASN1_FBOOLEAN)
|
|
526
516
|
// |ASN1_STRING_length|.
|
527
517
|
//
|
528
518
|
// If a function returns an |ASN1_STRING| where the typedef or ASN.1 structure
|
529
|
-
// implies constraints on
|
530
|
-
//
|
531
|
-
//
|
532
|
-
//
|
533
|
-
//
|
534
|
-
//
|
535
|
-
// |
|
536
|
-
//
|
537
|
-
// invariant.
|
519
|
+
// implies constraints on |type|, callers may assume that |type| is correct.
|
520
|
+
// However, if a function takes an |ASN1_STRING| as input, callers must ensure
|
521
|
+
// |type| matches. These invariants are not captured by the C type system and
|
522
|
+
// may not be checked at runtime. For example, callers may assume the output of
|
523
|
+
// |X509_get0_serialNumber| has type |V_ASN1_INTEGER| or |V_ASN1_NEG_INTEGER|.
|
524
|
+
// Callers must not pass a string of type |V_ASN1_OCTET_STRING| to
|
525
|
+
// |X509_set_serialNumber|. Doing so may break invariants on the |X509| object
|
526
|
+
// and break the |X509_get0_serialNumber| invariant.
|
538
527
|
//
|
539
528
|
// TODO(https://crbug.com/boringssl/445): This is very unfriendly. Getting the
|
540
529
|
// type field wrong should not cause memory errors, but it may do strange
|
@@ -605,8 +594,11 @@ OPENSSL_EXPORT int ASN1_STRING_length(const ASN1_STRING *str);
|
|
605
594
|
OPENSSL_EXPORT int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b);
|
606
595
|
|
607
596
|
// ASN1_STRING_set sets the contents of |str| to a copy of |len| bytes from
|
608
|
-
// |data|. It returns one on success and zero on error.
|
609
|
-
|
597
|
+
// |data|. It returns one on success and zero on error. If |data| is NULL, it
|
598
|
+
// updates the length and allocates the buffer as needed, but does not
|
599
|
+
// initialize the contents.
|
600
|
+
OPENSSL_EXPORT int ASN1_STRING_set(ASN1_STRING *str, const void *data,
|
601
|
+
ossl_ssize_t len);
|
610
602
|
|
611
603
|
// ASN1_STRING_set0 sets the contents of |str| to |len| bytes from |data|. It
|
612
604
|
// takes ownership of |data|, which must have been allocated with
|
@@ -638,10 +630,7 @@ OPENSSL_EXPORT void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *str);
|
|
638
630
|
|
639
631
|
// The following functions parse up to |len| bytes from |*inp| as a
|
640
632
|
// DER-encoded ASN.1 value of the corresponding type, as described in
|
641
|
-
// |
|
642
|
-
//
|
643
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
644
|
-
// BER, but this will be removed in the future.
|
633
|
+
// |d2i_SAMPLE|.
|
645
634
|
OPENSSL_EXPORT ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **out,
|
646
635
|
const uint8_t **inp,
|
647
636
|
long len);
|
@@ -830,7 +819,7 @@ OPENSSL_EXPORT ASN1_STRING *DIRECTORYSTRING_new(void);
|
|
830
819
|
OPENSSL_EXPORT void DIRECTORYSTRING_free(ASN1_STRING *str);
|
831
820
|
|
832
821
|
// d2i_DIRECTORYSTRING parses up to |len| bytes from |*inp| as a DER-encoded
|
833
|
-
// X.509 DirectoryString (RFC 5280), as described in |
|
822
|
+
// X.509 DirectoryString (RFC 5280), as described in |d2i_SAMPLE|.
|
834
823
|
//
|
835
824
|
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
836
825
|
// BER, but this will be removed in the future.
|
@@ -863,7 +852,7 @@ OPENSSL_EXPORT ASN1_STRING *DISPLAYTEXT_new(void);
|
|
863
852
|
OPENSSL_EXPORT void DISPLAYTEXT_free(ASN1_STRING *str);
|
864
853
|
|
865
854
|
// d2i_DISPLAYTEXT parses up to |len| bytes from |*inp| as a DER-encoded X.509
|
866
|
-
// DisplayText (RFC 5280), as described in |
|
855
|
+
// DisplayText (RFC 5280), as described in |d2i_SAMPLE|.
|
867
856
|
//
|
868
857
|
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
869
858
|
// BER, but this will be removed in the future.
|
@@ -924,10 +913,7 @@ OPENSSL_EXPORT ASN1_BIT_STRING *ASN1_BIT_STRING_new(void);
|
|
924
913
|
OPENSSL_EXPORT void ASN1_BIT_STRING_free(ASN1_BIT_STRING *str);
|
925
914
|
|
926
915
|
// d2i_ASN1_BIT_STRING parses up to |len| bytes from |*inp| as a DER-encoded
|
927
|
-
// ASN.1 BIT STRING, as described in |
|
928
|
-
//
|
929
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
930
|
-
// BER, but this will be removed in the future.
|
916
|
+
// ASN.1 BIT STRING, as described in |d2i_SAMPLE|.
|
931
917
|
OPENSSL_EXPORT ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **out,
|
932
918
|
const uint8_t **inp,
|
933
919
|
long len);
|
@@ -939,11 +925,7 @@ OPENSSL_EXPORT int i2d_ASN1_BIT_STRING(const ASN1_BIT_STRING *in,
|
|
939
925
|
|
940
926
|
// c2i_ASN1_BIT_STRING decodes |len| bytes from |*inp| as the contents of a
|
941
927
|
// DER-encoded BIT STRING, excluding the tag and length. It behaves like
|
942
|
-
// |
|
943
|
-
// bytes.
|
944
|
-
//
|
945
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
946
|
-
// BER, but this will be removed in the future.
|
928
|
+
// |d2i_SAMPLE| except, on success, it always consumes all |len| bytes.
|
947
929
|
OPENSSL_EXPORT ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **out,
|
948
930
|
const uint8_t **inp,
|
949
931
|
long len);
|
@@ -983,7 +965,8 @@ OPENSSL_EXPORT int ASN1_BIT_STRING_num_bytes(const ASN1_BIT_STRING *str,
|
|
983
965
|
// TODO(davidben): Maybe it should? Wrapping a byte string in a bit string is a
|
984
966
|
// common use case.
|
985
967
|
OPENSSL_EXPORT int ASN1_BIT_STRING_set(ASN1_BIT_STRING *str,
|
986
|
-
const unsigned char *d,
|
968
|
+
const unsigned char *d,
|
969
|
+
ossl_ssize_t length);
|
987
970
|
|
988
971
|
// ASN1_BIT_STRING_set_bit sets bit |n| of |str| to one if |value| is non-zero
|
989
972
|
// and zero if |value| is zero, resizing |str| as needed. It then truncates
|
@@ -1014,6 +997,12 @@ OPENSSL_EXPORT int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *str,
|
|
1014
997
|
// |V_ASN1_INTEGER| or |V_ASN1_ENUMERATED|, while negative values have a type of
|
1015
998
|
// |V_ASN1_NEG_INTEGER| or |V_ASN1_NEG_ENUMERATED|. Note this differs from DER's
|
1016
999
|
// two's complement representation.
|
1000
|
+
//
|
1001
|
+
// The data in the |ASN1_STRING| may not have leading zeros. Note this means
|
1002
|
+
// zero is represented as the empty string. Parsing functions will never return
|
1003
|
+
// invalid representations. If an invalid input is constructed, the marshaling
|
1004
|
+
// functions will skip leading zeros, however other functions, such as
|
1005
|
+
// |ASN1_INTEGER_cmp| or |ASN1_INTEGER_get|, may not return the correct result.
|
1017
1006
|
|
1018
1007
|
DEFINE_STACK_OF(ASN1_INTEGER)
|
1019
1008
|
|
@@ -1028,10 +1017,7 @@ OPENSSL_EXPORT void ASN1_INTEGER_free(ASN1_INTEGER *str);
|
|
1028
1017
|
OPENSSL_EXPORT ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x);
|
1029
1018
|
|
1030
1019
|
// d2i_ASN1_INTEGER parses up to |len| bytes from |*inp| as a DER-encoded
|
1031
|
-
// ASN.1 INTEGER, as described in |
|
1032
|
-
//
|
1033
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1034
|
-
// BER, but this will be removed in the future.
|
1020
|
+
// ASN.1 INTEGER, as described in |d2i_SAMPLE|.
|
1035
1021
|
OPENSSL_EXPORT ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **out,
|
1036
1022
|
const uint8_t **inp, long len);
|
1037
1023
|
|
@@ -1041,11 +1027,7 @@ OPENSSL_EXPORT int i2d_ASN1_INTEGER(const ASN1_INTEGER *in, uint8_t **outp);
|
|
1041
1027
|
|
1042
1028
|
// c2i_ASN1_INTEGER decodes |len| bytes from |*inp| as the contents of a
|
1043
1029
|
// DER-encoded INTEGER, excluding the tag and length. It behaves like
|
1044
|
-
// |
|
1045
|
-
// bytes.
|
1046
|
-
//
|
1047
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1048
|
-
// some invalid inputs, but this will be removed in the future.
|
1030
|
+
// |d2i_SAMPLE| except, on success, it always consumes all |len| bytes.
|
1049
1031
|
OPENSSL_EXPORT ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **in,
|
1050
1032
|
const uint8_t **outp, long len);
|
1051
1033
|
|
@@ -1068,17 +1050,24 @@ OPENSSL_EXPORT int i2c_ASN1_INTEGER(const ASN1_INTEGER *in, uint8_t **outp);
|
|
1068
1050
|
// |ASN1_INTEGER*|.
|
1069
1051
|
DECLARE_ASN1_ITEM(ASN1_INTEGER)
|
1070
1052
|
|
1071
|
-
// ASN1_INTEGER_set sets |a| to an INTEGER with value |v|. It returns one on
|
1072
|
-
// success and zero on error.
|
1073
|
-
OPENSSL_EXPORT int ASN1_INTEGER_set(ASN1_INTEGER *a, long v);
|
1074
|
-
|
1075
1053
|
// ASN1_INTEGER_set_uint64 sets |a| to an INTEGER with value |v|. It returns one
|
1076
1054
|
// on success and zero on error.
|
1077
1055
|
OPENSSL_EXPORT int ASN1_INTEGER_set_uint64(ASN1_INTEGER *out, uint64_t v);
|
1078
1056
|
|
1079
|
-
//
|
1080
|
-
//
|
1081
|
-
OPENSSL_EXPORT
|
1057
|
+
// ASN1_INTEGER_set_int64 sets |a| to an INTEGER with value |v|. It returns one
|
1058
|
+
// on success and zero on error.
|
1059
|
+
OPENSSL_EXPORT int ASN1_INTEGER_set_int64(ASN1_INTEGER *out, int64_t v);
|
1060
|
+
|
1061
|
+
// ASN1_INTEGER_get_uint64 converts |a| to a |uint64_t|. On success, it returns
|
1062
|
+
// one and sets |*out| to the result. If |a| did not fit or has the wrong type,
|
1063
|
+
// it returns zero.
|
1064
|
+
OPENSSL_EXPORT int ASN1_INTEGER_get_uint64(uint64_t *out,
|
1065
|
+
const ASN1_INTEGER *a);
|
1066
|
+
|
1067
|
+
// ASN1_INTEGER_get_int64 converts |a| to a |int64_t|. On success, it returns
|
1068
|
+
// one and sets |*out| to the result. If |a| did not fit or has the wrong type,
|
1069
|
+
// it returns zero.
|
1070
|
+
OPENSSL_EXPORT int ASN1_INTEGER_get_int64(int64_t *out, const ASN1_INTEGER *a);
|
1082
1071
|
|
1083
1072
|
// BN_to_ASN1_INTEGER sets |ai| to an INTEGER with value |bn| and returns |ai|
|
1084
1073
|
// on success or NULL or error. If |ai| is NULL, it returns a newly-allocated
|
@@ -1106,10 +1095,7 @@ OPENSSL_EXPORT ASN1_ENUMERATED *ASN1_ENUMERATED_new(void);
|
|
1106
1095
|
OPENSSL_EXPORT void ASN1_ENUMERATED_free(ASN1_ENUMERATED *str);
|
1107
1096
|
|
1108
1097
|
// d2i_ASN1_ENUMERATED parses up to |len| bytes from |*inp| as a DER-encoded
|
1109
|
-
// ASN.1 ENUMERATED, as described in |
|
1110
|
-
//
|
1111
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1112
|
-
// BER, but this will be removed in the future.
|
1098
|
+
// ASN.1 ENUMERATED, as described in |d2i_SAMPLE|.
|
1113
1099
|
OPENSSL_EXPORT ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **out,
|
1114
1100
|
const uint8_t **inp,
|
1115
1101
|
long len);
|
@@ -1123,18 +1109,30 @@ OPENSSL_EXPORT int i2d_ASN1_ENUMERATED(const ASN1_ENUMERATED *in,
|
|
1123
1109
|
// |ASN1_ENUMERATED*|.
|
1124
1110
|
DECLARE_ASN1_ITEM(ASN1_ENUMERATED)
|
1125
1111
|
|
1126
|
-
//
|
1127
|
-
// on success and zero on error.
|
1128
|
-
OPENSSL_EXPORT int
|
1112
|
+
// ASN1_ENUMERATED_set_uint64 sets |a| to an ENUMERATED with value |v|. It
|
1113
|
+
// returns one on success and zero on error.
|
1114
|
+
OPENSSL_EXPORT int ASN1_ENUMERATED_set_uint64(ASN1_ENUMERATED *out, uint64_t v);
|
1129
1115
|
|
1130
|
-
//
|
1131
|
-
//
|
1132
|
-
OPENSSL_EXPORT
|
1116
|
+
// ASN1_ENUMERATED_set_int64 sets |a| to an ENUMERATED with value |v|. It
|
1117
|
+
// returns one on success and zero on error.
|
1118
|
+
OPENSSL_EXPORT int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *out, int64_t v);
|
1119
|
+
|
1120
|
+
// ASN1_ENUMERATED_get_uint64 converts |a| to a |uint64_t|. On success, it
|
1121
|
+
// returns one and sets |*out| to the result. If |a| did not fit or has the
|
1122
|
+
// wrong type, it returns zero.
|
1123
|
+
OPENSSL_EXPORT int ASN1_ENUMERATED_get_uint64(uint64_t *out,
|
1124
|
+
const ASN1_ENUMERATED *a);
|
1125
|
+
|
1126
|
+
// ASN1_ENUMERATED_get_int64 converts |a| to a |int64_t|. On success, it
|
1127
|
+
// returns one and sets |*out| to the result. If |a| did not fit or has the
|
1128
|
+
// wrong type, it returns zero.
|
1129
|
+
OPENSSL_EXPORT int ASN1_ENUMERATED_get_int64(int64_t *out,
|
1130
|
+
const ASN1_ENUMERATED *a);
|
1133
1131
|
|
1134
1132
|
// BN_to_ASN1_ENUMERATED sets |ai| to an ENUMERATED with value |bn| and returns
|
1135
1133
|
// |ai| on success or NULL or error. If |ai| is NULL, it returns a
|
1136
|
-
// newly-allocated |
|
1137
|
-
// release with |
|
1134
|
+
// newly-allocated |ASN1_ENUMERATED| on success instead, which the caller must
|
1135
|
+
// release with |ASN1_ENUMERATED_free|.
|
1138
1136
|
OPENSSL_EXPORT ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn,
|
1139
1137
|
ASN1_ENUMERATED *ai);
|
1140
1138
|
|
@@ -1172,7 +1170,7 @@ OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_new(void);
|
|
1172
1170
|
OPENSSL_EXPORT void ASN1_UTCTIME_free(ASN1_UTCTIME *str);
|
1173
1171
|
|
1174
1172
|
// d2i_ASN1_UTCTIME parses up to |len| bytes from |*inp| as a DER-encoded
|
1175
|
-
// ASN.1 UTCTime, as described in |
|
1173
|
+
// ASN.1 UTCTime, as described in |d2i_SAMPLE|.
|
1176
1174
|
//
|
1177
1175
|
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1178
1176
|
// BER, but this will be removed in the future.
|
@@ -1190,20 +1188,23 @@ DECLARE_ASN1_ITEM(ASN1_UTCTIME)
|
|
1190
1188
|
// ASN1_UTCTIME_check returns one if |a| is a valid UTCTime and zero otherwise.
|
1191
1189
|
OPENSSL_EXPORT int ASN1_UTCTIME_check(const ASN1_UTCTIME *a);
|
1192
1190
|
|
1193
|
-
// ASN1_UTCTIME_set represents |
|
1194
|
-
// returns |s| on success and NULL on error. If |s| is NULL, it
|
1195
|
-
// newly-allocated |ASN1_UTCTIME| instead.
|
1191
|
+
// ASN1_UTCTIME_set represents |posix_time| as a UTCTime and writes the result
|
1192
|
+
// to |s|. It returns |s| on success and NULL on error. If |s| is NULL, it
|
1193
|
+
// returns a newly-allocated |ASN1_UTCTIME| instead.
|
1196
1194
|
//
|
1197
1195
|
// Note this function may fail if the time is out of range for UTCTime.
|
1198
|
-
OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,
|
1196
|
+
OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,
|
1197
|
+
int64_t posix_time);
|
1199
1198
|
|
1200
|
-
// ASN1_UTCTIME_adj adds |offset_day| days and |offset_sec| seconds to
|
1201
|
-
// writes the result to |s| as a UTCTime. It returns |s| on
|
1202
|
-
// error. If |s| is NULL, it returns a newly-allocated
|
1199
|
+
// ASN1_UTCTIME_adj adds |offset_day| days and |offset_sec| seconds to
|
1200
|
+
// |posix_time| and writes the result to |s| as a UTCTime. It returns |s| on
|
1201
|
+
// success and NULL on error. If |s| is NULL, it returns a newly-allocated
|
1202
|
+
// |ASN1_UTCTIME| instead.
|
1203
1203
|
//
|
1204
1204
|
// Note this function may fail if the time overflows or is out of range for
|
1205
1205
|
// UTCTime.
|
1206
|
-
OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s,
|
1206
|
+
OPENSSL_EXPORT ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s,
|
1207
|
+
int64_t posix_time,
|
1207
1208
|
int offset_day, long offset_sec);
|
1208
1209
|
|
1209
1210
|
// ASN1_UTCTIME_set_string sets |s| to a UTCTime whose contents are a copy of
|
@@ -1226,10 +1227,7 @@ OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void);
|
|
1226
1227
|
OPENSSL_EXPORT void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *str);
|
1227
1228
|
|
1228
1229
|
// d2i_ASN1_GENERALIZEDTIME parses up to |len| bytes from |*inp| as a
|
1229
|
-
// DER-encoded ASN.1 GeneralizedTime, as described in |
|
1230
|
-
//
|
1231
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1232
|
-
// BER, but this will be removed in the future.
|
1230
|
+
// DER-encoded ASN.1 GeneralizedTime, as described in |d2i_SAMPLE|.
|
1233
1231
|
OPENSSL_EXPORT ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(
|
1234
1232
|
ASN1_GENERALIZEDTIME **out, const uint8_t **inp, long len);
|
1235
1233
|
|
@@ -1246,23 +1244,24 @@ DECLARE_ASN1_ITEM(ASN1_GENERALIZEDTIME)
|
|
1246
1244
|
// zero otherwise.
|
1247
1245
|
OPENSSL_EXPORT int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a);
|
1248
1246
|
|
1249
|
-
// ASN1_GENERALIZEDTIME_set represents |
|
1250
|
-
// result to |s|. It returns |s| on success and NULL on error. If |s|
|
1251
|
-
// it returns a newly-allocated |ASN1_GENERALIZEDTIME| instead.
|
1247
|
+
// ASN1_GENERALIZEDTIME_set represents |posix_time| as a GeneralizedTime and
|
1248
|
+
// writes the result to |s|. It returns |s| on success and NULL on error. If |s|
|
1249
|
+
// is NULL, it returns a newly-allocated |ASN1_GENERALIZEDTIME| instead.
|
1252
1250
|
//
|
1253
1251
|
// Note this function may fail if the time is out of range for GeneralizedTime.
|
1254
1252
|
OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(
|
1255
|
-
ASN1_GENERALIZEDTIME *s,
|
1253
|
+
ASN1_GENERALIZEDTIME *s, int64_t posix_time);
|
1256
1254
|
|
1257
1255
|
// ASN1_GENERALIZEDTIME_adj adds |offset_day| days and |offset_sec| seconds to
|
1258
|
-
// |
|
1259
|
-
// success and NULL on error. If |s| is NULL, it returns a
|
1260
|
-
// |ASN1_GENERALIZEDTIME| instead.
|
1256
|
+
// |posix_time| and writes the result to |s| as a GeneralizedTime. It returns
|
1257
|
+
// |s| on success and NULL on error. If |s| is NULL, it returns a
|
1258
|
+
// newly-allocated |ASN1_GENERALIZEDTIME| instead.
|
1261
1259
|
//
|
1262
1260
|
// Note this function may fail if the time overflows or is out of range for
|
1263
1261
|
// GeneralizedTime.
|
1264
1262
|
OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(
|
1265
|
-
ASN1_GENERALIZEDTIME *s,
|
1263
|
+
ASN1_GENERALIZEDTIME *s, int64_t posix_time, int offset_day,
|
1264
|
+
long offset_sec);
|
1266
1265
|
|
1267
1266
|
// ASN1_GENERALIZEDTIME_set_string sets |s| to a GeneralizedTime whose contents
|
1268
1267
|
// are a copy of |str|. It returns one on success and zero on error or if |str|
|
@@ -1284,7 +1283,7 @@ OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_new(void);
|
|
1284
1283
|
OPENSSL_EXPORT void ASN1_TIME_free(ASN1_TIME *str);
|
1285
1284
|
|
1286
1285
|
// d2i_ASN1_TIME parses up to |len| bytes from |*inp| as a DER-encoded X.509
|
1287
|
-
// Time (RFC 5280), as described in |
|
1286
|
+
// Time (RFC 5280), as described in |d2i_SAMPLE|.
|
1288
1287
|
//
|
1289
1288
|
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1290
1289
|
// BER, but this will be removed in the future.
|
@@ -1312,24 +1311,29 @@ DECLARE_ASN1_ITEM(ASN1_TIME)
|
|
1312
1311
|
OPENSSL_EXPORT int ASN1_TIME_diff(int *out_days, int *out_seconds,
|
1313
1312
|
const ASN1_TIME *from, const ASN1_TIME *to);
|
1314
1313
|
|
1315
|
-
//
|
1316
|
-
// the result to |s|. As in RFC 5280, section 4.1.2.5, it uses
|
1317
|
-
// time fits and GeneralizedTime otherwise. It returns |s| on
|
1318
|
-
// on error. If |s| is NULL, it returns a newly-allocated
|
1314
|
+
// ASN1_TIME_set_posix represents |posix_time| as a GeneralizedTime or UTCTime
|
1315
|
+
// and writes the result to |s|. As in RFC 5280, section 4.1.2.5, it uses
|
1316
|
+
// UTCTime when the time fits and GeneralizedTime otherwise. It returns |s| on
|
1317
|
+
// success and NULL on error. If |s| is NULL, it returns a newly-allocated
|
1318
|
+
// |ASN1_TIME| instead.
|
1319
1319
|
//
|
1320
1320
|
// Note this function may fail if the time is out of range for GeneralizedTime.
|
1321
|
-
OPENSSL_EXPORT ASN1_TIME *
|
1321
|
+
OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_set_posix(ASN1_TIME *s, int64_t posix_time);
|
1322
|
+
|
1323
|
+
// ASN1_TIME_set is exactly the same as |ASN1_TIME_set_posix| but with a
|
1324
|
+
// time_t as input for compatibility.
|
1325
|
+
OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t time);
|
1322
1326
|
|
1323
1327
|
// ASN1_TIME_adj adds |offset_day| days and |offset_sec| seconds to
|
1324
|
-
// |
|
1325
|
-
// UTCTime when the time fits and GeneralizedTime otherwise. It returns
|
1326
|
-
// success and NULL on error. If |s| is NULL, it returns a
|
1327
|
-
// |ASN1_GENERALIZEDTIME| instead.
|
1328
|
+
// |posix_time| and writes the result to |s|. As in RFC 5280, section 4.1.2.5,
|
1329
|
+
// it uses UTCTime when the time fits and GeneralizedTime otherwise. It returns
|
1330
|
+
// |s| on success and NULL on error. If |s| is NULL, it returns a
|
1331
|
+
// newly-allocated |ASN1_GENERALIZEDTIME| instead.
|
1328
1332
|
//
|
1329
1333
|
// Note this function may fail if the time overflows or is out of range for
|
1330
1334
|
// GeneralizedTime.
|
1331
|
-
OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s,
|
1332
|
-
long offset_sec);
|
1335
|
+
OPENSSL_EXPORT ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, int64_t posix_time,
|
1336
|
+
int offset_day, long offset_sec);
|
1333
1337
|
|
1334
1338
|
// ASN1_TIME_check returns one if |t| is a valid UTCTime or GeneralizedTime, and
|
1335
1339
|
// zero otherwise. |t|'s type determines which check is performed. This
|
@@ -1349,6 +1353,15 @@ OPENSSL_EXPORT ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(
|
|
1349
1353
|
// GeneralizedTime. If |str| is neither, it returns zero.
|
1350
1354
|
OPENSSL_EXPORT int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
|
1351
1355
|
|
1356
|
+
// ASN1_TIME_to_time_t converts |t| to a time_t value in |out|. On
|
1357
|
+
// success, one is returned. On failure zero is returned. This function
|
1358
|
+
// will fail if the time can not be represented in a time_t.
|
1359
|
+
OPENSSL_EXPORT int ASN1_TIME_to_time_t(const ASN1_TIME *t, time_t *out);
|
1360
|
+
|
1361
|
+
// ASN1_TIME_to_posix converts |t| to a POSIX time value in |out|. On
|
1362
|
+
// success, one is returned. On failure zero is returned.
|
1363
|
+
OPENSSL_EXPORT int ASN1_TIME_to_posix(const ASN1_TIME *t, int64_t *out);
|
1364
|
+
|
1352
1365
|
// TODO(davidben): Expand and document function prototypes generated in macros.
|
1353
1366
|
|
1354
1367
|
|
@@ -1368,9 +1381,6 @@ OPENSSL_EXPORT void ASN1_NULL_free(ASN1_NULL *null);
|
|
1368
1381
|
|
1369
1382
|
// d2i_ASN1_NULL parses a DER-encoded ASN.1 NULL value from up to |len| bytes
|
1370
1383
|
// at |*inp|, as described in |d2i_SAMPLE|.
|
1371
|
-
//
|
1372
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1373
|
-
// BER, but this will be removed in the future.
|
1374
1384
|
OPENSSL_EXPORT ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **out, const uint8_t **inp,
|
1375
1385
|
long len);
|
1376
1386
|
|
@@ -1405,7 +1415,7 @@ DEFINE_STACK_OF(ASN1_OBJECT)
|
|
1405
1415
|
// TODO(davidben): Should we just ignore all those parameters? NIDs and names
|
1406
1416
|
// are only relevant for |ASN1_OBJECT|s in the obj.h table.
|
1407
1417
|
OPENSSL_EXPORT ASN1_OBJECT *ASN1_OBJECT_create(int nid, const uint8_t *data,
|
1408
|
-
|
1418
|
+
size_t len, const char *sn,
|
1409
1419
|
const char *ln);
|
1410
1420
|
|
1411
1421
|
// ASN1_OBJECT_free releases memory associated with |a|. If |a| is a static
|
@@ -1413,21 +1423,17 @@ OPENSSL_EXPORT ASN1_OBJECT *ASN1_OBJECT_create(int nid, const uint8_t *data,
|
|
1413
1423
|
OPENSSL_EXPORT void ASN1_OBJECT_free(ASN1_OBJECT *a);
|
1414
1424
|
|
1415
1425
|
// d2i_ASN1_OBJECT parses a DER-encoded ASN.1 OBJECT IDENTIFIER from up to |len|
|
1416
|
-
// bytes at |*inp|, as described in |
|
1417
|
-
//
|
1418
|
-
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1419
|
-
// BER, but this will be removed in the future.
|
1426
|
+
// bytes at |*inp|, as described in |d2i_SAMPLE|.
|
1420
1427
|
OPENSSL_EXPORT ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **out,
|
1421
1428
|
const uint8_t **inp, long len);
|
1422
1429
|
|
1423
1430
|
// i2d_ASN1_OBJECT marshals |in| as a DER-encoded ASN.1 OBJECT IDENTIFIER, as
|
1424
1431
|
// described in |i2d_SAMPLE|.
|
1425
|
-
OPENSSL_EXPORT int i2d_ASN1_OBJECT(const ASN1_OBJECT *
|
1432
|
+
OPENSSL_EXPORT int i2d_ASN1_OBJECT(const ASN1_OBJECT *in, uint8_t **outp);
|
1426
1433
|
|
1427
1434
|
// c2i_ASN1_OBJECT decodes |len| bytes from |*inp| as the contents of a
|
1428
1435
|
// DER-encoded OBJECT IDENTIFIER, excluding the tag and length. It behaves like
|
1429
|
-
// |
|
1430
|
-
// bytes.
|
1436
|
+
// |d2i_SAMPLE| except, on success, it always consumes all |len| bytes.
|
1431
1437
|
OPENSSL_EXPORT ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **out,
|
1432
1438
|
const uint8_t **inp, long len);
|
1433
1439
|
|
@@ -1469,15 +1475,14 @@ DECLARE_ASN1_ITEM(ASN1_OBJECT)
|
|
1469
1475
|
// |ASN1_BOOLEAN|.
|
1470
1476
|
//
|
1471
1477
|
// If |type| is |V_ASN1_SEQUENCE|, |V_ASN1_SET|, or |V_ASN1_OTHER|, the tag is
|
1472
|
-
// SEQUENCE, SET, or some
|
1473
|
-
// |ASN1_STRING|
|
1474
|
-
//
|
1475
|
-
//
|
1476
|
-
//
|
1477
|
-
//
|
1478
|
-
//
|
1479
|
-
//
|
1480
|
-
// |ASN1_TYPE|'s |type|.
|
1478
|
+
// SEQUENCE, SET, or some arbitrary tag, respectively. |value| uses the
|
1479
|
+
// corresponding |ASN1_STRING| representation. Although any type may be
|
1480
|
+
// represented in |V_ASN1_OTHER|, the parser will always return the more
|
1481
|
+
// specific encoding when available.
|
1482
|
+
//
|
1483
|
+
// Other values of |type| do not represent a valid ASN.1 value, though
|
1484
|
+
// default-constructed objects may set |type| to -1. Such objects cannot be
|
1485
|
+
// serialized.
|
1481
1486
|
struct asn1_type_st {
|
1482
1487
|
int type;
|
1483
1488
|
union {
|
@@ -1517,10 +1522,10 @@ OPENSSL_EXPORT ASN1_TYPE *ASN1_TYPE_new(void);
|
|
1517
1522
|
OPENSSL_EXPORT void ASN1_TYPE_free(ASN1_TYPE *a);
|
1518
1523
|
|
1519
1524
|
// d2i_ASN1_TYPE parses up to |len| bytes from |*inp| as an ASN.1 value of any
|
1520
|
-
// type, as described in |
|
1521
|
-
//
|
1522
|
-
//
|
1523
|
-
//
|
1525
|
+
// type, as described in |d2i_SAMPLE|. Note this function only validates
|
1526
|
+
// primitive, universal types supported by this library. Values of type
|
1527
|
+
// |V_ASN1_SEQUENCE|, |V_ASN1_SET|, |V_ASN1_OTHER|, or an unsupported primitive
|
1528
|
+
// type must be validated by the caller when interpreting.
|
1524
1529
|
//
|
1525
1530
|
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1526
1531
|
// BER, but this will be removed in the future.
|
@@ -1564,9 +1569,9 @@ OPENSSL_EXPORT int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b);
|
|
1564
1569
|
typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY;
|
1565
1570
|
|
1566
1571
|
// d2i_ASN1_SEQUENCE_ANY parses up to |len| bytes from |*inp| as a DER-encoded
|
1567
|
-
// ASN.1 SEQUENCE OF ANY structure, as described in |
|
1568
|
-
//
|
1569
|
-
//
|
1572
|
+
// ASN.1 SEQUENCE OF ANY structure, as described in |d2i_SAMPLE|. The resulting
|
1573
|
+
// |ASN1_SEQUENCE_ANY| owns its contents and thus must be released with
|
1574
|
+
// |sk_ASN1_TYPE_pop_free| and |ASN1_TYPE_free|, not |sk_ASN1_TYPE_free|.
|
1570
1575
|
//
|
1571
1576
|
// TODO(https://crbug.com/boringssl/354): This function currently also accepts
|
1572
1577
|
// BER, but this will be removed in the future.
|
@@ -1580,7 +1585,7 @@ OPENSSL_EXPORT int i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *in,
|
|
1580
1585
|
uint8_t **outp);
|
1581
1586
|
|
1582
1587
|
// d2i_ASN1_SET_ANY parses up to |len| bytes from |*inp| as a DER-encoded ASN.1
|
1583
|
-
// SET OF ANY structure, as described in |
|
1588
|
+
// SET OF ANY structure, as described in |d2i_SAMPLE|. The resulting
|
1584
1589
|
// |ASN1_SEQUENCE_ANY| owns its contents and thus must be released with
|
1585
1590
|
// |sk_ASN1_TYPE_pop_free| and |ASN1_TYPE_free|, not |sk_ASN1_TYPE_free|.
|
1586
1591
|
//
|
@@ -1620,6 +1625,8 @@ OPENSSL_EXPORT int ASN1_TIME_print(BIO *out, const ASN1_TIME *a);
|
|
1620
1625
|
// replaced with '.'.
|
1621
1626
|
OPENSSL_EXPORT int ASN1_STRING_print(BIO *out, const ASN1_STRING *str);
|
1622
1627
|
|
1628
|
+
// The following flags must not collide with |XN_FLAG_*|.
|
1629
|
+
|
1623
1630
|
// ASN1_STRFLGS_ESC_2253 causes characters to be escaped as in RFC 2253, section
|
1624
1631
|
// 2.4.
|
1625
1632
|
#define ASN1_STRFLGS_ESC_2253 1
|
@@ -1727,13 +1734,11 @@ OPENSSL_EXPORT int i2t_ASN1_OBJECT(char *buf, int buf_len,
|
|
1727
1734
|
// |*out_length|, |*out_tag|, and |*out_class| to the element's length, tag
|
1728
1735
|
// number, and tag class, respectively,
|
1729
1736
|
//
|
1730
|
-
// Unlike OpenSSL, this function
|
1737
|
+
// Unlike OpenSSL, this function only supports DER. Indefinite and non-minimal
|
1738
|
+
// lengths are rejected.
|
1731
1739
|
//
|
1732
1740
|
// This function is difficult to use correctly. Use |CBS_get_asn1| and related
|
1733
1741
|
// functions from bytestring.h.
|
1734
|
-
//
|
1735
|
-
// TODO(https://crbug.com/boringssl/354): Remove support for non-minimal
|
1736
|
-
// lengths.
|
1737
1742
|
OPENSSL_EXPORT int ASN1_get_object(const unsigned char **inp, long *out_length,
|
1738
1743
|
int *out_tag, int *out_class, long max_len);
|
1739
1744
|
|
@@ -1809,15 +1814,6 @@ OPENSSL_EXPORT int ASN1_object_size(int constructed, int length, int tag);
|
|
1809
1814
|
|
1810
1815
|
// Deprecated functions.
|
1811
1816
|
|
1812
|
-
// ASN1_PRINTABLE_type interprets |len| bytes from |s| as a Latin-1 string. It
|
1813
|
-
// returns the first of |V_ASN1_PRINTABLESTRING|, |V_ASN1_IA5STRING|, or
|
1814
|
-
// |V_ASN1_T61STRING| that can represent every character. If |len| is negative,
|
1815
|
-
// |strlen(s)| is used instead.
|
1816
|
-
//
|
1817
|
-
// TODO(davidben): Remove this once all copies of Conscrypt have been updated
|
1818
|
-
// past https://github.com/google/conscrypt/pull/1032.
|
1819
|
-
OPENSSL_EXPORT int ASN1_PRINTABLE_type(const unsigned char *s, int len);
|
1820
|
-
|
1821
1817
|
// ASN1_STRING_set_default_mask does nothing.
|
1822
1818
|
OPENSSL_EXPORT void ASN1_STRING_set_default_mask(unsigned long mask);
|
1823
1819
|
|
@@ -1899,7 +1895,7 @@ OPENSSL_EXPORT void ASN1_PRINTABLE_free(ASN1_STRING *str);
|
|
1899
1895
|
|
1900
1896
|
// d2i_ASN1_PRINTABLE parses up to |len| bytes from |*inp| as a DER-encoded
|
1901
1897
|
// CHOICE of an ad-hoc subset of string-like types, as described in
|
1902
|
-
// |
|
1898
|
+
// |d2i_SAMPLE|.
|
1903
1899
|
//
|
1904
1900
|
// Do not use this. Despite, the name it has no connection to PrintableString or
|
1905
1901
|
// printable characters. See https://crbug.com/boringssl/412.
|
@@ -1922,6 +1918,32 @@ OPENSSL_EXPORT int i2d_ASN1_PRINTABLE(const ASN1_STRING *in, uint8_t **outp);
|
|
1922
1918
|
// printable characters. See https://crbug.com/boringssl/412.
|
1923
1919
|
DECLARE_ASN1_ITEM(ASN1_PRINTABLE)
|
1924
1920
|
|
1921
|
+
// ASN1_INTEGER_set sets |a| to an INTEGER with value |v|. It returns one on
|
1922
|
+
// success and zero on error.
|
1923
|
+
//
|
1924
|
+
// Use |ASN1_INTEGER_set_uint64| and |ASN1_INTEGER_set_int64| instead.
|
1925
|
+
OPENSSL_EXPORT int ASN1_INTEGER_set(ASN1_INTEGER *a, long v);
|
1926
|
+
|
1927
|
+
// ASN1_ENUMERATED_set sets |a| to an ENUMERATED with value |v|. It returns one
|
1928
|
+
// on success and zero on error.
|
1929
|
+
//
|
1930
|
+
// Use |ASN1_ENUMERATED_set_uint64| and |ASN1_ENUMERATED_set_int64| instead.
|
1931
|
+
OPENSSL_EXPORT int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v);
|
1932
|
+
|
1933
|
+
// ASN1_INTEGER_get returns the value of |a| as a |long|, or -1 if |a| is out of
|
1934
|
+
// range or the wrong type.
|
1935
|
+
//
|
1936
|
+
// WARNING: This function's return value cannot distinguish errors from -1.
|
1937
|
+
// Use |ASN1_INTEGER_get_uint64| and |ASN1_INTEGER_get_int64| instead.
|
1938
|
+
OPENSSL_EXPORT long ASN1_INTEGER_get(const ASN1_INTEGER *a);
|
1939
|
+
|
1940
|
+
// ASN1_ENUMERATED_get returns the value of |a| as a |long|, or -1 if |a| is out
|
1941
|
+
// of range or the wrong type.
|
1942
|
+
//
|
1943
|
+
// WARNING: This function's return value cannot distinguish errors from -1.
|
1944
|
+
// Use |ASN1_ENUMERATED_get_uint64| and |ASN1_ENUMERATED_get_int64| instead.
|
1945
|
+
OPENSSL_EXPORT long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a);
|
1946
|
+
|
1925
1947
|
|
1926
1948
|
#if defined(__cplusplus)
|
1927
1949
|
} // extern C
|
@@ -2035,5 +2057,7 @@ BSSL_NAMESPACE_END
|
|
2035
2057
|
#define ASN1_R_NESTED_TOO_DEEP 192
|
2036
2058
|
#define ASN1_R_BAD_TEMPLATE 193
|
2037
2059
|
#define ASN1_R_INVALID_BIT_STRING_PADDING 194
|
2060
|
+
#define ASN1_R_WRONG_INTEGER_TYPE 195
|
2061
|
+
#define ASN1_R_INVALID_INTEGER 196
|
2038
2062
|
|
2039
|
-
#endif
|
2063
|
+
#endif // OPENSSL_HEADER_ASN1_H
|