grpc 1.53.1 → 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_listener.cc +6 -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 +5 -16
- 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
@@ -60,27 +60,28 @@
|
|
60
60
|
#include <string.h>
|
61
61
|
|
62
62
|
#include <openssl/asn1t.h>
|
63
|
+
#include <openssl/err.h>
|
63
64
|
#include <openssl/mem.h>
|
64
65
|
#include <openssl/obj.h>
|
65
|
-
#include <openssl/
|
66
|
+
#include <openssl/pool.h>
|
66
67
|
#include <openssl/thread.h>
|
67
68
|
|
68
69
|
#include "../internal.h"
|
69
70
|
#include "internal.h"
|
70
71
|
|
71
72
|
|
72
|
-
|
73
|
+
// Utility functions for manipulating fields and offsets
|
73
74
|
|
74
|
-
|
75
|
+
// Add 'offset' to 'addr'
|
75
76
|
#define offset2ptr(addr, offset) (void *)(((char *)(addr)) + (offset))
|
76
77
|
|
77
|
-
|
78
|
+
// Given an ASN1_ITEM CHOICE type return the selector value
|
78
79
|
int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it) {
|
79
80
|
int *sel = offset2ptr(*pval, it->utype);
|
80
81
|
return *sel;
|
81
82
|
}
|
82
83
|
|
83
|
-
|
84
|
+
// Given an ASN1_ITEM CHOICE type set the selector value, return old value.
|
84
85
|
int asn1_set_choice_selector(ASN1_VALUE **pval, int value,
|
85
86
|
const ASN1_ITEM *it) {
|
86
87
|
int *sel, ret;
|
@@ -131,68 +132,62 @@ static ASN1_ENCODING *asn1_get_enc_ptr(ASN1_VALUE **pval, const ASN1_ITEM *it) {
|
|
131
132
|
}
|
132
133
|
|
133
134
|
void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it) {
|
134
|
-
ASN1_ENCODING *enc;
|
135
|
-
enc = asn1_get_enc_ptr(pval, it);
|
135
|
+
ASN1_ENCODING *enc = asn1_get_enc_ptr(pval, it);
|
136
136
|
if (enc) {
|
137
137
|
enc->enc = NULL;
|
138
138
|
enc->len = 0;
|
139
|
-
enc->
|
140
|
-
enc->alias_only_on_next_parse = 0;
|
141
|
-
enc->modified = 1;
|
139
|
+
enc->buf = NULL;
|
142
140
|
}
|
143
141
|
}
|
144
142
|
|
145
143
|
void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it) {
|
146
|
-
ASN1_ENCODING *enc;
|
147
|
-
enc = asn1_get_enc_ptr(pval, it);
|
144
|
+
ASN1_ENCODING *enc = asn1_get_enc_ptr(pval, it);
|
148
145
|
if (enc) {
|
149
|
-
|
150
|
-
OPENSSL_free(enc->enc);
|
151
|
-
}
|
152
|
-
enc->enc = NULL;
|
153
|
-
enc->len = 0;
|
154
|
-
enc->alias_only = 0;
|
155
|
-
enc->alias_only_on_next_parse = 0;
|
156
|
-
enc->modified = 1;
|
146
|
+
asn1_encoding_clear(enc);
|
157
147
|
}
|
158
148
|
}
|
159
149
|
|
160
|
-
int asn1_enc_save(ASN1_VALUE **pval, const
|
161
|
-
const ASN1_ITEM *it) {
|
150
|
+
int asn1_enc_save(ASN1_VALUE **pval, const uint8_t *in, size_t in_len,
|
151
|
+
const ASN1_ITEM *it, CRYPTO_BUFFER *buf) {
|
162
152
|
ASN1_ENCODING *enc;
|
163
153
|
enc = asn1_get_enc_ptr(pval, it);
|
164
154
|
if (!enc) {
|
165
155
|
return 1;
|
166
156
|
}
|
167
157
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
if (enc->alias_only) {
|
176
|
-
enc->enc = (uint8_t *) in;
|
158
|
+
asn1_encoding_clear(enc);
|
159
|
+
if (buf != NULL) {
|
160
|
+
assert(CRYPTO_BUFFER_data(buf) <= in &&
|
161
|
+
in + in_len <= CRYPTO_BUFFER_data(buf) + CRYPTO_BUFFER_len(buf));
|
162
|
+
CRYPTO_BUFFER_up_ref(buf);
|
163
|
+
enc->buf = buf;
|
164
|
+
enc->enc = (uint8_t *)in;
|
177
165
|
} else {
|
178
|
-
enc->enc =
|
166
|
+
enc->enc = OPENSSL_memdup(in, in_len);
|
179
167
|
if (!enc->enc) {
|
180
168
|
return 0;
|
181
169
|
}
|
182
|
-
OPENSSL_memcpy(enc->enc, in, inlen);
|
183
170
|
}
|
184
171
|
|
185
|
-
enc->len =
|
186
|
-
enc->modified = 0;
|
187
|
-
|
172
|
+
enc->len = in_len;
|
188
173
|
return 1;
|
189
174
|
}
|
190
175
|
|
176
|
+
void asn1_encoding_clear(ASN1_ENCODING *enc) {
|
177
|
+
if (enc->buf != NULL) {
|
178
|
+
CRYPTO_BUFFER_free(enc->buf);
|
179
|
+
} else {
|
180
|
+
OPENSSL_free(enc->enc);
|
181
|
+
}
|
182
|
+
enc->enc = NULL;
|
183
|
+
enc->len = 0;
|
184
|
+
enc->buf = NULL;
|
185
|
+
}
|
186
|
+
|
191
187
|
int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval,
|
192
188
|
const ASN1_ITEM *it) {
|
193
|
-
ASN1_ENCODING *enc;
|
194
|
-
enc
|
195
|
-
if (!enc || enc->modified) {
|
189
|
+
ASN1_ENCODING *enc = asn1_get_enc_ptr(pval, it);
|
190
|
+
if (!enc || enc->len == 0) {
|
196
191
|
return 0;
|
197
192
|
}
|
198
193
|
if (out) {
|
@@ -205,38 +200,33 @@ int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval,
|
|
205
200
|
return 1;
|
206
201
|
}
|
207
202
|
|
208
|
-
|
203
|
+
// Given an ASN1_TEMPLATE get a pointer to a field
|
209
204
|
ASN1_VALUE **asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt) {
|
210
|
-
ASN1_VALUE **pvaltmp;
|
211
|
-
|
212
|
-
|
213
|
-
}
|
214
|
-
pvaltmp = offset2ptr(*pval, tt->offset);
|
215
|
-
/* NOTE for BOOLEAN types the field is just a plain int so we can't return
|
216
|
-
* int **, so settle for (int *). */
|
205
|
+
ASN1_VALUE **pvaltmp = offset2ptr(*pval, tt->offset);
|
206
|
+
// NOTE for BOOLEAN types the field is just a plain int so we can't return
|
207
|
+
// int **, so settle for (int *).
|
217
208
|
return pvaltmp;
|
218
209
|
}
|
219
210
|
|
220
|
-
|
221
|
-
|
211
|
+
// Handle ANY DEFINED BY template, find the selector, look up the relevant
|
212
|
+
// ASN1_TEMPLATE in the table and return it.
|
222
213
|
const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt,
|
223
214
|
int nullerr) {
|
224
215
|
const ASN1_ADB *adb;
|
225
216
|
const ASN1_ADB_TABLE *atbl;
|
226
|
-
long selector;
|
227
217
|
ASN1_VALUE **sfld;
|
228
218
|
int i;
|
229
219
|
if (!(tt->flags & ASN1_TFLG_ADB_MASK)) {
|
230
220
|
return tt;
|
231
221
|
}
|
232
222
|
|
233
|
-
|
223
|
+
// Else ANY DEFINED BY ... get the table
|
234
224
|
adb = ASN1_ADB_ptr(tt->item);
|
235
225
|
|
236
|
-
|
226
|
+
// Get the selector field
|
237
227
|
sfld = offset2ptr(*pval, adb->offset);
|
238
228
|
|
239
|
-
|
229
|
+
// Check if NULL
|
240
230
|
if (*sfld == NULL) {
|
241
231
|
if (!adb->null_tt) {
|
242
232
|
goto err;
|
@@ -244,19 +234,16 @@ const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt,
|
|
244
234
|
return adb->null_tt;
|
245
235
|
}
|
246
236
|
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
} else {
|
253
|
-
selector = ASN1_INTEGER_get((ASN1_INTEGER *)*sfld);
|
254
|
-
}
|
237
|
+
// Convert type to a NID:
|
238
|
+
// NB: don't check for NID_undef here because it
|
239
|
+
// might be a legitimate value in the table
|
240
|
+
assert(tt->flags & ASN1_TFLG_ADB_OID);
|
241
|
+
int selector = OBJ_obj2nid((ASN1_OBJECT *)*sfld);
|
255
242
|
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
243
|
+
// Try to find matching entry in table Maybe should check application types
|
244
|
+
// first to allow application override? Might also be useful to have a flag
|
245
|
+
// which indicates table is sorted and we can do a binary search. For now
|
246
|
+
// stick to a linear search.
|
260
247
|
|
261
248
|
for (atbl = adb->tbl, i = 0; i < adb->tblcount; i++, atbl++) {
|
262
249
|
if (atbl->value == selector) {
|
@@ -264,16 +251,16 @@ const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt,
|
|
264
251
|
}
|
265
252
|
}
|
266
253
|
|
267
|
-
|
254
|
+
// FIXME: need to search application table too
|
268
255
|
|
269
|
-
|
256
|
+
// No match, return default type
|
270
257
|
if (!adb->default_tt) {
|
271
258
|
goto err;
|
272
259
|
}
|
273
260
|
return adb->default_tt;
|
274
261
|
|
275
262
|
err:
|
276
|
-
|
263
|
+
// FIXME: should log the value or OID of unsupported type
|
277
264
|
if (nullerr) {
|
278
265
|
OPENSSL_PUT_ERROR(ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE);
|
279
266
|
}
|
@@ -60,8 +60,6 @@
|
|
60
60
|
#include <limits.h>
|
61
61
|
#include <string.h>
|
62
62
|
|
63
|
-
#include <openssl/type_check.h>
|
64
|
-
|
65
63
|
#include "../internal.h"
|
66
64
|
|
67
65
|
|
@@ -98,8 +96,8 @@ static uint8_t conv_bin2ascii(uint8_t a) {
|
|
98
96
|
return ret;
|
99
97
|
}
|
100
98
|
|
101
|
-
|
102
|
-
|
99
|
+
static_assert(sizeof(((EVP_ENCODE_CTX *)(NULL))->data) % 3 == 0,
|
100
|
+
"data length must be a multiple of base64 chunk size");
|
103
101
|
|
104
102
|
int EVP_EncodedLength(size_t *out_len, size_t len) {
|
105
103
|
if (len + 2 < len) {
|
@@ -72,7 +72,6 @@
|
|
72
72
|
BIO *BIO_new(const BIO_METHOD *method) {
|
73
73
|
BIO *ret = OPENSSL_malloc(sizeof(BIO));
|
74
74
|
if (ret == NULL) {
|
75
|
-
OPENSSL_PUT_ERROR(BIO, ERR_R_MALLOC_FAILURE);
|
76
75
|
return NULL;
|
77
76
|
}
|
78
77
|
|
@@ -192,11 +191,17 @@ int BIO_write_all(BIO *bio, const void *data, size_t len) {
|
|
192
191
|
}
|
193
192
|
|
194
193
|
int BIO_puts(BIO *bio, const char *in) {
|
195
|
-
|
194
|
+
size_t len = strlen(in);
|
195
|
+
if (len > INT_MAX) {
|
196
|
+
// |BIO_write| and the return value both assume the string fits in |int|.
|
197
|
+
OPENSSL_PUT_ERROR(BIO, ERR_R_OVERFLOW);
|
198
|
+
return -1;
|
199
|
+
}
|
200
|
+
return BIO_write(bio, in, (int)len);
|
196
201
|
}
|
197
202
|
|
198
203
|
int BIO_flush(BIO *bio) {
|
199
|
-
return BIO_ctrl(bio, BIO_CTRL_FLUSH, 0, NULL);
|
204
|
+
return (int)BIO_ctrl(bio, BIO_CTRL_FLUSH, 0, NULL);
|
200
205
|
}
|
201
206
|
|
202
207
|
long BIO_ctrl(BIO *bio, int cmd, long larg, void *parg) {
|
@@ -229,11 +234,11 @@ long BIO_int_ctrl(BIO *b, int cmd, long larg, int iarg) {
|
|
229
234
|
}
|
230
235
|
|
231
236
|
int BIO_reset(BIO *bio) {
|
232
|
-
return BIO_ctrl(bio, BIO_CTRL_RESET, 0, NULL);
|
237
|
+
return (int)BIO_ctrl(bio, BIO_CTRL_RESET, 0, NULL);
|
233
238
|
}
|
234
239
|
|
235
240
|
int BIO_eof(BIO *bio) {
|
236
|
-
return BIO_ctrl(bio, BIO_CTRL_EOF, 0, NULL);
|
241
|
+
return (int)BIO_ctrl(bio, BIO_CTRL_EOF, 0, NULL);
|
237
242
|
}
|
238
243
|
|
239
244
|
void BIO_set_flags(BIO *bio, int flags) {
|
@@ -333,7 +338,7 @@ size_t BIO_wpending(const BIO *bio) {
|
|
333
338
|
}
|
334
339
|
|
335
340
|
int BIO_set_close(BIO *bio, int close_flag) {
|
336
|
-
return BIO_ctrl(bio, BIO_CTRL_SET_CLOSE, close_flag, NULL);
|
341
|
+
return (int)BIO_ctrl(bio, BIO_CTRL_SET_CLOSE, close_flag, NULL);
|
337
342
|
}
|
338
343
|
|
339
344
|
OPENSSL_EXPORT size_t BIO_number_read(const BIO *bio) {
|
@@ -603,7 +608,6 @@ int BIO_read_asn1(BIO *bio, uint8_t **out, size_t *out_len, size_t max_len) {
|
|
603
608
|
|
604
609
|
*out = OPENSSL_malloc(len);
|
605
610
|
if (*out == NULL) {
|
606
|
-
OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
|
607
611
|
return 0;
|
608
612
|
}
|
609
613
|
OPENSSL_memcpy(*out, header, header_len);
|
@@ -66,7 +66,7 @@
|
|
66
66
|
#include "../internal.h"
|
67
67
|
|
68
68
|
|
69
|
-
BIO *BIO_new_mem_buf(const void *buf,
|
69
|
+
BIO *BIO_new_mem_buf(const void *buf, ossl_ssize_t len) {
|
70
70
|
BIO *ret;
|
71
71
|
BUF_MEM *b;
|
72
72
|
const size_t size = len < 0 ? strlen((char *)buf) : (size_t)len;
|
@@ -312,13 +312,13 @@ long BIO_get_mem_data(BIO *bio, char **contents) {
|
|
312
312
|
}
|
313
313
|
|
314
314
|
int BIO_get_mem_ptr(BIO *bio, BUF_MEM **out) {
|
315
|
-
return BIO_ctrl(bio, BIO_C_GET_BUF_MEM_PTR, 0, (char *) out);
|
315
|
+
return (int)BIO_ctrl(bio, BIO_C_GET_BUF_MEM_PTR, 0, (char *) out);
|
316
316
|
}
|
317
317
|
|
318
318
|
int BIO_set_mem_buf(BIO *bio, BUF_MEM *b, int take_ownership) {
|
319
|
-
return BIO_ctrl(bio, BIO_C_SET_BUF_MEM, take_ownership, (char *) b);
|
319
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_BUF_MEM, take_ownership, (char *) b);
|
320
320
|
}
|
321
321
|
|
322
322
|
int BIO_set_mem_eof_return(BIO *bio, int eof_value) {
|
323
|
-
return BIO_ctrl(bio, BIO_C_SET_BUF_MEM_EOF_RETURN, eof_value, NULL);
|
323
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_BUF_MEM_EOF_RETURN, eof_value, NULL);
|
324
324
|
}
|
@@ -117,7 +117,8 @@ static int closesocket(int sock) {
|
|
117
117
|
// split_host_and_port sets |*out_host| and |*out_port| to the host and port
|
118
118
|
// parsed from |name|. It returns one on success or zero on error. Even when
|
119
119
|
// successful, |*out_port| may be NULL on return if no port was specified.
|
120
|
-
static int split_host_and_port(char **out_host, char **out_port,
|
120
|
+
static int split_host_and_port(char **out_host, char **out_port,
|
121
|
+
const char *name) {
|
121
122
|
const char *host, *port = NULL;
|
122
123
|
size_t host_len = 0;
|
123
124
|
|
@@ -362,7 +363,7 @@ static int conn_read(BIO *bio, char *out, int out_len) {
|
|
362
363
|
}
|
363
364
|
|
364
365
|
bio_clear_socket_error();
|
365
|
-
ret = recv(bio->num, out, out_len, 0);
|
366
|
+
ret = (int)recv(bio->num, out, out_len, 0);
|
366
367
|
BIO_clear_retry_flags(bio);
|
367
368
|
if (ret <= 0) {
|
368
369
|
if (bio_fd_should_retry(ret)) {
|
@@ -386,7 +387,7 @@ static int conn_write(BIO *bio, const char *in, int in_len) {
|
|
386
387
|
}
|
387
388
|
|
388
389
|
bio_clear_socket_error();
|
389
|
-
ret = send(bio->num, in, in_len, 0);
|
390
|
+
ret = (int)send(bio->num, in, in_len, 0);
|
390
391
|
BIO_clear_retry_flags(bio);
|
391
392
|
if (ret <= 0) {
|
392
393
|
if (bio_fd_should_retry(ret)) {
|
@@ -466,8 +467,7 @@ static long conn_ctrl(BIO *bio, int cmd, long num, void *ptr) {
|
|
466
467
|
case BIO_CTRL_FLUSH:
|
467
468
|
break;
|
468
469
|
case BIO_CTRL_GET_CALLBACK: {
|
469
|
-
int (**fptr)(const BIO *bio, int state, int xret);
|
470
|
-
fptr = (int (**)(const BIO *bio, int state, int xret))ptr;
|
470
|
+
int (**fptr)(const BIO *bio, int state, int xret) = ptr;
|
471
471
|
*fptr = data->info_callback;
|
472
472
|
} break;
|
473
473
|
default:
|
@@ -485,7 +485,13 @@ static long conn_callback_ctrl(BIO *bio, int cmd, bio_info_cb fp) {
|
|
485
485
|
|
486
486
|
switch (cmd) {
|
487
487
|
case BIO_CTRL_SET_CALLBACK:
|
488
|
+
// This is the actual type signature of |fp|. The caller is expected to
|
489
|
+
// cast it to |bio_info_cb| due to the |BIO_callback_ctrl| calling
|
490
|
+
// convention.
|
491
|
+
OPENSSL_MSVC_PRAGMA(warning(push))
|
492
|
+
OPENSSL_MSVC_PRAGMA(warning(disable : 4191))
|
488
493
|
data->info_callback = (int (*)(const struct bio_st *, int, int))fp;
|
494
|
+
OPENSSL_MSVC_PRAGMA(warning(pop))
|
489
495
|
break;
|
490
496
|
default:
|
491
497
|
ret = 0;
|
@@ -517,11 +523,11 @@ static const BIO_METHOD methods_connectp = {
|
|
517
523
|
const BIO_METHOD *BIO_s_connect(void) { return &methods_connectp; }
|
518
524
|
|
519
525
|
int BIO_set_conn_hostname(BIO *bio, const char *name) {
|
520
|
-
return BIO_ctrl(bio, BIO_C_SET_CONNECT, 0, (void*) name);
|
526
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_CONNECT, 0, (void*) name);
|
521
527
|
}
|
522
528
|
|
523
529
|
int BIO_set_conn_port(BIO *bio, const char *port_str) {
|
524
|
-
return BIO_ctrl(bio, BIO_C_SET_CONNECT, 1, (void*) port_str);
|
530
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_CONNECT, 1, (void*) port_str);
|
525
531
|
}
|
526
532
|
|
527
533
|
int BIO_set_conn_int_port(BIO *bio, const int *port) {
|
@@ -531,11 +537,11 @@ int BIO_set_conn_int_port(BIO *bio, const int *port) {
|
|
531
537
|
}
|
532
538
|
|
533
539
|
int BIO_set_nbio(BIO *bio, int on) {
|
534
|
-
return BIO_ctrl(bio, BIO_C_SET_NBIO, on, NULL);
|
540
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_NBIO, on, NULL);
|
535
541
|
}
|
536
542
|
|
537
543
|
int BIO_do_connect(BIO *bio) {
|
538
|
-
return BIO_ctrl(bio, BIO_C_DO_STATE_MACHINE, 0, NULL);
|
544
|
+
return (int)BIO_ctrl(bio, BIO_C_DO_STATE_MACHINE, 0, NULL);
|
539
545
|
}
|
540
546
|
|
541
547
|
#endif // OPENSSL_TRUSTY
|
@@ -158,7 +158,7 @@ static int fd_free(BIO *bio) {
|
|
158
158
|
static int fd_read(BIO *b, char *out, int outl) {
|
159
159
|
int ret = 0;
|
160
160
|
|
161
|
-
ret = BORINGSSL_READ(b->num, out, outl);
|
161
|
+
ret = (int)BORINGSSL_READ(b->num, out, outl);
|
162
162
|
BIO_clear_retry_flags(b);
|
163
163
|
if (ret <= 0) {
|
164
164
|
if (bio_fd_should_retry(ret)) {
|
@@ -170,7 +170,7 @@ static int fd_read(BIO *b, char *out, int outl) {
|
|
170
170
|
}
|
171
171
|
|
172
172
|
static int fd_write(BIO *b, const char *in, int inl) {
|
173
|
-
int ret = BORINGSSL_WRITE(b->num, in, inl);
|
173
|
+
int ret = (int)BORINGSSL_WRITE(b->num, in, inl);
|
174
174
|
BIO_clear_retry_flags(b);
|
175
175
|
if (ret <= 0) {
|
176
176
|
if (bio_fd_should_retry(ret)) {
|
@@ -265,11 +265,11 @@ static const BIO_METHOD methods_fdp = {
|
|
265
265
|
const BIO_METHOD *BIO_s_fd(void) { return &methods_fdp; }
|
266
266
|
|
267
267
|
int BIO_set_fd(BIO *bio, int fd, int close_flag) {
|
268
|
-
return BIO_int_ctrl(bio, BIO_C_SET_FD, close_flag, fd);
|
268
|
+
return (int)BIO_int_ctrl(bio, BIO_C_SET_FD, close_flag, fd);
|
269
269
|
}
|
270
270
|
|
271
271
|
int BIO_get_fd(BIO *bio, int *out_fd) {
|
272
|
-
return BIO_ctrl(bio, BIO_C_GET_FD, 0, (char *) out_fd);
|
272
|
+
return (int)BIO_ctrl(bio, BIO_C_GET_FD, 0, (char *) out_fd);
|
273
273
|
}
|
274
274
|
|
275
275
|
#endif // OPENSSL_TRUSTY
|
@@ -281,31 +281,38 @@ const BIO_METHOD *BIO_s_file(void) { return &methods_filep; }
|
|
281
281
|
|
282
282
|
|
283
283
|
int BIO_get_fp(BIO *bio, FILE **out_file) {
|
284
|
-
return BIO_ctrl(bio, BIO_C_GET_FILE_PTR, 0, (char*)
|
284
|
+
return (int)BIO_ctrl(bio, BIO_C_GET_FILE_PTR, 0, (char *)out_file);
|
285
285
|
}
|
286
286
|
|
287
287
|
int BIO_set_fp(BIO *bio, FILE *file, int close_flag) {
|
288
|
-
return BIO_ctrl(bio, BIO_C_SET_FILE_PTR, close_flag, (char *)
|
288
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_FILE_PTR, close_flag, (char *)file);
|
289
289
|
}
|
290
290
|
|
291
291
|
int BIO_read_filename(BIO *bio, const char *filename) {
|
292
|
-
return BIO_ctrl(bio, BIO_C_SET_FILENAME, BIO_CLOSE | BIO_FP_READ,
|
293
|
-
|
292
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_FILENAME, BIO_CLOSE | BIO_FP_READ,
|
293
|
+
(char *)filename);
|
294
294
|
}
|
295
295
|
|
296
296
|
int BIO_write_filename(BIO *bio, const char *filename) {
|
297
|
-
return BIO_ctrl(bio, BIO_C_SET_FILENAME, BIO_CLOSE | BIO_FP_WRITE,
|
298
|
-
|
297
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_FILENAME, BIO_CLOSE | BIO_FP_WRITE,
|
298
|
+
(char *)filename);
|
299
299
|
}
|
300
300
|
|
301
301
|
int BIO_append_filename(BIO *bio, const char *filename) {
|
302
|
-
return BIO_ctrl(bio, BIO_C_SET_FILENAME, BIO_CLOSE | BIO_FP_APPEND,
|
303
|
-
|
302
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_FILENAME, BIO_CLOSE | BIO_FP_APPEND,
|
303
|
+
(char *)filename);
|
304
304
|
}
|
305
305
|
|
306
306
|
int BIO_rw_filename(BIO *bio, const char *filename) {
|
307
|
-
return BIO_ctrl(bio, BIO_C_SET_FILENAME,
|
308
|
-
|
307
|
+
return (int)BIO_ctrl(bio, BIO_C_SET_FILENAME,
|
308
|
+
BIO_CLOSE | BIO_FP_READ | BIO_FP_WRITE,
|
309
|
+
(char *)filename);
|
310
|
+
}
|
311
|
+
|
312
|
+
long BIO_tell(BIO *bio) { return BIO_ctrl(bio, BIO_C_FILE_TELL, 0, NULL); }
|
313
|
+
|
314
|
+
long BIO_seek(BIO *bio, long offset) {
|
315
|
+
return BIO_ctrl(bio, BIO_C_FILE_SEEK, offset, NULL);
|
309
316
|
}
|
310
317
|
|
311
318
|
#endif // OPENSSL_TRUSTY
|
@@ -317,7 +317,6 @@ static int bio_make_pair(BIO *bio1, BIO *bio2, size_t writebuf1_len,
|
|
317
317
|
}
|
318
318
|
b1->buf = OPENSSL_malloc(b1->size);
|
319
319
|
if (b1->buf == NULL) {
|
320
|
-
OPENSSL_PUT_ERROR(BIO, ERR_R_MALLOC_FAILURE);
|
321
320
|
return 0;
|
322
321
|
}
|
323
322
|
b1->len = 0;
|
@@ -330,7 +329,6 @@ static int bio_make_pair(BIO *bio1, BIO *bio2, size_t writebuf1_len,
|
|
330
329
|
}
|
331
330
|
b2->buf = OPENSSL_malloc(b2->size);
|
332
331
|
if (b2->buf == NULL) {
|
333
|
-
OPENSSL_PUT_ERROR(BIO, ERR_R_MALLOC_FAILURE);
|
334
332
|
return 0;
|
335
333
|
}
|
336
334
|
b2->len = 0;
|
@@ -479,5 +477,5 @@ size_t BIO_ctrl_get_write_guarantee(BIO *bio) {
|
|
479
477
|
}
|
480
478
|
|
481
479
|
int BIO_shutdown_wr(BIO *bio) {
|
482
|
-
return BIO_ctrl(bio, BIO_C_SHUTDOWN_WR, 0, NULL);
|
480
|
+
return (int)BIO_ctrl(bio, BIO_C_SHUTDOWN_WR, 0, NULL);
|
483
481
|
}
|
@@ -71,18 +71,6 @@ int BIO_printf(BIO *bio, const char *format, ...) {
|
|
71
71
|
va_start(args, format);
|
72
72
|
out_len = vsnprintf(buf, sizeof(buf), format, args);
|
73
73
|
va_end(args);
|
74
|
-
|
75
|
-
#if defined(OPENSSL_WINDOWS)
|
76
|
-
// On Windows, vsnprintf returns -1 rather than the requested length on
|
77
|
-
// truncation
|
78
|
-
if (out_len < 0) {
|
79
|
-
va_start(args, format);
|
80
|
-
out_len = _vscprintf(format, args);
|
81
|
-
va_end(args);
|
82
|
-
assert(out_len >= (int)sizeof(buf));
|
83
|
-
}
|
84
|
-
#endif
|
85
|
-
|
86
74
|
if (out_len < 0) {
|
87
75
|
return -1;
|
88
76
|
}
|
@@ -95,7 +83,6 @@ int BIO_printf(BIO *bio, const char *format, ...) {
|
|
95
83
|
out = OPENSSL_malloc(requested_len + 1);
|
96
84
|
out_malloced = 1;
|
97
85
|
if (out == NULL) {
|
98
|
-
OPENSSL_PUT_ERROR(BIO, ERR_R_MALLOC_FAILURE);
|
99
86
|
return -1;
|
100
87
|
}
|
101
88
|
va_start(args, format);
|
@@ -1,4 +1,3 @@
|
|
1
|
-
/* crypto/bio/bss_sock.c */
|
2
1
|
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
3
2
|
* All rights reserved.
|
4
3
|
*
|
@@ -101,7 +100,7 @@ static int sock_read(BIO *b, char *out, int outl) {
|
|
101
100
|
#if defined(OPENSSL_WINDOWS)
|
102
101
|
int ret = recv(b->num, out, outl, 0);
|
103
102
|
#else
|
104
|
-
int ret = read(b->num, out, outl);
|
103
|
+
int ret = (int)read(b->num, out, outl);
|
105
104
|
#endif
|
106
105
|
BIO_clear_retry_flags(b);
|
107
106
|
if (ret <= 0) {
|
@@ -113,13 +112,11 @@ static int sock_read(BIO *b, char *out, int outl) {
|
|
113
112
|
}
|
114
113
|
|
115
114
|
static int sock_write(BIO *b, const char *in, int inl) {
|
116
|
-
int ret;
|
117
|
-
|
118
115
|
bio_clear_socket_error();
|
119
116
|
#if defined(OPENSSL_WINDOWS)
|
120
|
-
ret = send(b->num, in, inl, 0);
|
117
|
+
int ret = send(b->num, in, inl, 0);
|
121
118
|
#else
|
122
|
-
ret = write(b->num, in, inl);
|
119
|
+
int ret = (int)write(b->num, in, inl);
|
123
120
|
#endif
|
124
121
|
BIO_clear_retry_flags(b);
|
125
122
|
if (ret <= 0) {
|
@@ -12,8 +12,10 @@
|
|
12
12
|
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
13
13
|
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
|
14
14
|
|
15
|
+
#if defined(__linux__)
|
15
16
|
#undef _POSIX_C_SOURCE
|
16
17
|
#define _POSIX_C_SOURCE 200112L
|
18
|
+
#endif
|
17
19
|
|
18
20
|
#include <openssl/bio.h>
|
19
21
|
#include <openssl/err.h>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
#include <openssl/blake2.h>
|
16
16
|
|
17
|
-
#include <
|
17
|
+
#include <assert.h>
|
18
18
|
|
19
19
|
#include "../internal.h"
|
20
20
|
|
@@ -61,7 +61,7 @@ static void blake2b_transform(
|
|
61
61
|
size_t num_bytes, int is_final_block) {
|
62
62
|
// https://tools.ietf.org/html/rfc7693#section-3.2
|
63
63
|
uint64_t v[16];
|
64
|
-
|
64
|
+
static_assert(sizeof(v) == sizeof(b2b->h) + sizeof(kIV), "");
|
65
65
|
OPENSSL_memcpy(v, b2b->h, sizeof(b2b->h));
|
66
66
|
OPENSSL_memcpy(&v[8], kIV, sizeof(kIV));
|
67
67
|
|
@@ -97,7 +97,7 @@ static void blake2b_transform(
|
|
97
97
|
void BLAKE2B256_Init(BLAKE2B_CTX *b2b) {
|
98
98
|
OPENSSL_memset(b2b, 0, sizeof(BLAKE2B_CTX));
|
99
99
|
|
100
|
-
|
100
|
+
static_assert(sizeof(kIV) == sizeof(b2b->h), "");
|
101
101
|
OPENSSL_memcpy(&b2b->h, kIV, sizeof(kIV));
|
102
102
|
|
103
103
|
// https://tools.ietf.org/html/rfc7693#section-2.5
|
@@ -105,8 +105,12 @@ void BLAKE2B256_Init(BLAKE2B_CTX *b2b) {
|
|
105
105
|
}
|
106
106
|
|
107
107
|
void BLAKE2B256_Update(BLAKE2B_CTX *b2b, const void *in_data, size_t len) {
|
108
|
-
|
108
|
+
if (len == 0) {
|
109
|
+
// Work around a C language bug. See https://crbug.com/1019588.
|
110
|
+
return;
|
111
|
+
}
|
109
112
|
|
113
|
+
const uint8_t *data = in_data;
|
110
114
|
size_t todo = sizeof(b2b->block.bytes) - b2b->block_used;
|
111
115
|
if (todo > len) {
|
112
116
|
todo = len;
|
@@ -143,7 +147,7 @@ void BLAKE2B256_Final(uint8_t out[BLAKE2B256_DIGEST_LENGTH], BLAKE2B_CTX *b2b) {
|
|
143
147
|
sizeof(b2b->block.bytes) - b2b->block_used);
|
144
148
|
blake2b_transform(b2b, b2b->block.words, b2b->block_used,
|
145
149
|
/*is_final_block=*/1);
|
146
|
-
|
150
|
+
static_assert(BLAKE2B256_DIGEST_LENGTH <= sizeof(b2b->h), "");
|
147
151
|
memcpy(out, b2b->h, BLAKE2B256_DIGEST_LENGTH);
|
148
152
|
}
|
149
153
|
|