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
@@ -37,6 +37,8 @@ typedef int (*hash_s_func_t)(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
37
37
|
const uint8_t s[TRUST_TOKEN_NONCE_SIZE]);
|
38
38
|
typedef int (*hash_c_func_t)(const EC_GROUP *group, EC_SCALAR *out,
|
39
39
|
uint8_t *buf, size_t len);
|
40
|
+
typedef int (*hash_to_scalar_func_t)(const EC_GROUP *group, EC_SCALAR *out,
|
41
|
+
uint8_t *buf, size_t len);
|
40
42
|
|
41
43
|
typedef struct {
|
42
44
|
const EC_GROUP *group;
|
@@ -52,6 +54,9 @@ typedef struct {
|
|
52
54
|
// hash_c implements the H_c operation in PMBTokens. It returns one on success
|
53
55
|
// and zero on error.
|
54
56
|
hash_c_func_t hash_c;
|
57
|
+
// hash_to_scalar implements the HashToScalar operation for PMBTokens. It
|
58
|
+
// returns one on success and zero on error.
|
59
|
+
hash_to_scalar_func_t hash_to_scalar;
|
55
60
|
int prefix_point : 1;
|
56
61
|
} PMBTOKEN_METHOD;
|
57
62
|
|
@@ -60,7 +65,9 @@ static const uint8_t kDefaultAdditionalData[32] = {0};
|
|
60
65
|
static int pmbtoken_init_method(PMBTOKEN_METHOD *method, int curve_nid,
|
61
66
|
const uint8_t *h_bytes, size_t h_len,
|
62
67
|
hash_t_func_t hash_t, hash_s_func_t hash_s,
|
63
|
-
hash_c_func_t hash_c,
|
68
|
+
hash_c_func_t hash_c,
|
69
|
+
hash_to_scalar_func_t hash_to_scalar,
|
70
|
+
int prefix_point) {
|
64
71
|
method->group = EC_GROUP_new_by_curve_name(curve_nid);
|
65
72
|
if (method->group == NULL) {
|
66
73
|
return 0;
|
@@ -69,6 +76,7 @@ static int pmbtoken_init_method(PMBTOKEN_METHOD *method, int curve_nid,
|
|
69
76
|
method->hash_t = hash_t;
|
70
77
|
method->hash_s = hash_s;
|
71
78
|
method->hash_c = hash_c;
|
79
|
+
method->hash_to_scalar = hash_to_scalar;
|
72
80
|
method->prefix_point = prefix_point;
|
73
81
|
|
74
82
|
EC_AFFINE h;
|
@@ -85,27 +93,37 @@ static int pmbtoken_init_method(PMBTOKEN_METHOD *method, int curve_nid,
|
|
85
93
|
return 1;
|
86
94
|
}
|
87
95
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
96
|
+
static int derive_scalar_from_secret(const PMBTOKEN_METHOD *method,
|
97
|
+
EC_SCALAR *out, const uint8_t *secret,
|
98
|
+
size_t secret_len, uint8_t scalar_id) {
|
99
|
+
static const uint8_t kKeygenLabel[] = "TrustTokenPMBTokenKeyGen";
|
100
|
+
|
101
|
+
int ok = 0;
|
102
|
+
CBB cbb;
|
103
|
+
CBB_zero(&cbb);
|
104
|
+
uint8_t *buf = NULL;
|
105
|
+
size_t len;
|
106
|
+
if (!CBB_init(&cbb, 0) ||
|
107
|
+
!CBB_add_bytes(&cbb, kKeygenLabel, sizeof(kKeygenLabel)) ||
|
108
|
+
!CBB_add_u8(&cbb, scalar_id) ||
|
109
|
+
!CBB_add_bytes(&cbb, secret, secret_len) ||
|
110
|
+
!CBB_finish(&cbb, &buf, &len) ||
|
111
|
+
!method->hash_to_scalar(method->group, out, buf, len)) {
|
112
|
+
OPENSSL_PUT_ERROR(TRUST_TOKEN, TRUST_TOKEN_R_KEYGEN_FAILURE);
|
113
|
+
goto err;
|
101
114
|
}
|
102
|
-
|
115
|
+
|
116
|
+
ok = 1;
|
117
|
+
|
118
|
+
err:
|
119
|
+
CBB_cleanup(&cbb);
|
120
|
+
OPENSSL_free(buf);
|
121
|
+
return ok;
|
103
122
|
}
|
104
123
|
|
105
124
|
static int point_to_cbb(CBB *out, const EC_GROUP *group,
|
106
125
|
const EC_AFFINE *point) {
|
107
|
-
size_t len =
|
108
|
-
ec_point_to_bytes(group, point, POINT_CONVERSION_UNCOMPRESSED, NULL, 0);
|
126
|
+
size_t len = ec_point_byte_len(group, POINT_CONVERSION_UNCOMPRESSED);
|
109
127
|
if (len == 0) {
|
110
128
|
return 0;
|
111
129
|
}
|
@@ -165,19 +183,24 @@ static int mul_public_3(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
165
183
|
scalars, 3);
|
166
184
|
}
|
167
185
|
|
168
|
-
static int
|
169
|
-
CBB *out_private, CBB *out_public
|
186
|
+
static int pmbtoken_compute_keys(const PMBTOKEN_METHOD *method,
|
187
|
+
CBB *out_private, CBB *out_public,
|
188
|
+
const EC_SCALAR *x0, const EC_SCALAR *y0,
|
189
|
+
const EC_SCALAR *x1, const EC_SCALAR *y1,
|
190
|
+
const EC_SCALAR *xs, const EC_SCALAR *ys) {
|
170
191
|
const EC_GROUP *group = method->group;
|
171
192
|
EC_RAW_POINT pub[3];
|
172
|
-
|
173
|
-
|
174
|
-
!
|
175
|
-
|
193
|
+
if (!ec_point_mul_scalar_precomp(group, &pub[0], &method->g_precomp,
|
194
|
+
x0, &method->h_precomp, y0, NULL, NULL) ||
|
195
|
+
!ec_point_mul_scalar_precomp(group, &pub[1], &method->g_precomp,
|
196
|
+
x1, &method->h_precomp, y1, NULL, NULL) ||
|
197
|
+
!ec_point_mul_scalar_precomp(method->group, &pub[2], &method->g_precomp,
|
198
|
+
xs, &method->h_precomp, ys, NULL, NULL)) {
|
176
199
|
OPENSSL_PUT_ERROR(TRUST_TOKEN, TRUST_TOKEN_R_KEYGEN_FAILURE);
|
177
200
|
return 0;
|
178
201
|
}
|
179
202
|
|
180
|
-
const EC_SCALAR *scalars[] = {
|
203
|
+
const EC_SCALAR *scalars[] = {x0, y0, x1, y1, xs, ys};
|
181
204
|
size_t scalar_len = BN_num_bytes(&group->order);
|
182
205
|
for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(scalars); i++) {
|
183
206
|
uint8_t *buf;
|
@@ -206,6 +229,42 @@ static int pmbtoken_generate_key(const PMBTOKEN_METHOD *method,
|
|
206
229
|
return 1;
|
207
230
|
}
|
208
231
|
|
232
|
+
static int pmbtoken_generate_key(const PMBTOKEN_METHOD *method,
|
233
|
+
CBB *out_private, CBB *out_public) {
|
234
|
+
EC_SCALAR x0, y0, x1, y1, xs, ys;
|
235
|
+
if (!ec_random_nonzero_scalar(method->group, &x0, kDefaultAdditionalData) ||
|
236
|
+
!ec_random_nonzero_scalar(method->group, &y0, kDefaultAdditionalData) ||
|
237
|
+
!ec_random_nonzero_scalar(method->group, &x1, kDefaultAdditionalData) ||
|
238
|
+
!ec_random_nonzero_scalar(method->group, &y1, kDefaultAdditionalData) ||
|
239
|
+
!ec_random_nonzero_scalar(method->group, &xs, kDefaultAdditionalData) ||
|
240
|
+
!ec_random_nonzero_scalar(method->group, &ys, kDefaultAdditionalData)) {
|
241
|
+
OPENSSL_PUT_ERROR(TRUST_TOKEN, TRUST_TOKEN_R_KEYGEN_FAILURE);
|
242
|
+
return 0;
|
243
|
+
}
|
244
|
+
|
245
|
+
return pmbtoken_compute_keys(method, out_private, out_public, &x0, &y0, &x1,
|
246
|
+
&y1, &xs, &ys);
|
247
|
+
}
|
248
|
+
|
249
|
+
static int pmbtoken_derive_key_from_secret(const PMBTOKEN_METHOD *method,
|
250
|
+
CBB *out_private, CBB *out_public,
|
251
|
+
const uint8_t *secret,
|
252
|
+
size_t secret_len) {
|
253
|
+
EC_SCALAR x0, y0, x1, y1, xs, ys;
|
254
|
+
if (!derive_scalar_from_secret(method, &x0, secret, secret_len, 0) ||
|
255
|
+
!derive_scalar_from_secret(method, &y0, secret, secret_len, 1) ||
|
256
|
+
!derive_scalar_from_secret(method, &x1, secret, secret_len, 2) ||
|
257
|
+
!derive_scalar_from_secret(method, &y1, secret, secret_len, 3) ||
|
258
|
+
!derive_scalar_from_secret(method, &xs, secret, secret_len, 4) ||
|
259
|
+
!derive_scalar_from_secret(method, &ys, secret, secret_len, 5)) {
|
260
|
+
OPENSSL_PUT_ERROR(TRUST_TOKEN, TRUST_TOKEN_R_KEYGEN_FAILURE);
|
261
|
+
return 0;
|
262
|
+
}
|
263
|
+
|
264
|
+
return pmbtoken_compute_keys(method, out_private, out_public, &x0, &y0, &x1,
|
265
|
+
&y1, &xs, &ys);
|
266
|
+
}
|
267
|
+
|
209
268
|
static int pmbtoken_client_key_from_bytes(const PMBTOKEN_METHOD *method,
|
210
269
|
TRUST_TOKEN_CLIENT_KEY *key,
|
211
270
|
const uint8_t *in, size_t len) {
|
@@ -265,12 +324,14 @@ static int pmbtoken_issuer_key_from_bytes(const PMBTOKEN_METHOD *method,
|
|
265
324
|
return 1;
|
266
325
|
}
|
267
326
|
|
268
|
-
static STACK_OF(TRUST_TOKEN_PRETOKEN) *
|
269
|
-
|
327
|
+
static STACK_OF(TRUST_TOKEN_PRETOKEN) *pmbtoken_blind(
|
328
|
+
const PMBTOKEN_METHOD *method, CBB *cbb, size_t count, int include_message,
|
329
|
+
const uint8_t *msg, size_t msg_len) {
|
330
|
+
SHA512_CTX hash_ctx;
|
331
|
+
|
270
332
|
const EC_GROUP *group = method->group;
|
271
333
|
STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens = sk_TRUST_TOKEN_PRETOKEN_new_null();
|
272
334
|
if (pretokens == NULL) {
|
273
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
274
335
|
goto err;
|
275
336
|
}
|
276
337
|
|
@@ -279,17 +340,24 @@ static STACK_OF(TRUST_TOKEN_PRETOKEN) *
|
|
279
340
|
TRUST_TOKEN_PRETOKEN *pretoken = OPENSSL_malloc(sizeof(TRUST_TOKEN_PRETOKEN));
|
280
341
|
if (pretoken == NULL ||
|
281
342
|
!sk_TRUST_TOKEN_PRETOKEN_push(pretokens, pretoken)) {
|
282
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
283
343
|
TRUST_TOKEN_PRETOKEN_free(pretoken);
|
284
344
|
goto err;
|
285
345
|
}
|
286
346
|
|
287
|
-
RAND_bytes(pretoken->
|
347
|
+
RAND_bytes(pretoken->salt, sizeof(pretoken->salt));
|
348
|
+
if (include_message) {
|
349
|
+
assert(SHA512_DIGEST_LENGTH == TRUST_TOKEN_NONCE_SIZE);
|
350
|
+
SHA512_Init(&hash_ctx);
|
351
|
+
SHA512_Update(&hash_ctx, pretoken->salt, sizeof(pretoken->salt));
|
352
|
+
SHA512_Update(&hash_ctx, msg, msg_len);
|
353
|
+
SHA512_Final(pretoken->t, &hash_ctx);
|
354
|
+
} else {
|
355
|
+
OPENSSL_memcpy(pretoken->t, pretoken->salt, TRUST_TOKEN_NONCE_SIZE);
|
356
|
+
}
|
288
357
|
|
289
358
|
// We sample |pretoken->r| in Montgomery form to simplify inverting.
|
290
359
|
if (!ec_random_nonzero_scalar(group, &pretoken->r,
|
291
360
|
kDefaultAdditionalData)) {
|
292
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
293
361
|
goto err;
|
294
362
|
}
|
295
363
|
|
@@ -324,7 +392,6 @@ static int scalar_to_cbb(CBB *out, const EC_GROUP *group,
|
|
324
392
|
uint8_t *buf;
|
325
393
|
size_t scalar_len = BN_num_bytes(&group->order);
|
326
394
|
if (!CBB_add_space(out, &buf, scalar_len)) {
|
327
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
328
395
|
return 0;
|
329
396
|
}
|
330
397
|
ec_scalar_to_bytes(group, buf, &scalar_len, scalar);
|
@@ -364,7 +431,6 @@ static int hash_c_dleq(const PMBTOKEN_METHOD *method, EC_SCALAR *out,
|
|
364
431
|
!point_to_cbb(&cbb, method->group, K1) ||
|
365
432
|
!CBB_finish(&cbb, &buf, &len) ||
|
366
433
|
!method->hash_c(method->group, out, buf, len)) {
|
367
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
368
434
|
goto err;
|
369
435
|
}
|
370
436
|
|
@@ -402,7 +468,6 @@ static int hash_c_dleqor(const PMBTOKEN_METHOD *method, EC_SCALAR *out,
|
|
402
468
|
!point_to_cbb(&cbb, method->group, K11) ||
|
403
469
|
!CBB_finish(&cbb, &buf, &len) ||
|
404
470
|
!method->hash_c(method->group, out, buf, len)) {
|
405
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
406
471
|
goto err;
|
407
472
|
}
|
408
473
|
|
@@ -434,7 +499,6 @@ static int hash_c_batch(const PMBTOKEN_METHOD *method, EC_SCALAR *out,
|
|
434
499
|
!CBB_add_u16(&cbb, (uint16_t)index) ||
|
435
500
|
!CBB_finish(&cbb, &buf, &len) ||
|
436
501
|
!method->hash_c(method->group, out, buf, len)) {
|
437
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
438
502
|
goto err;
|
439
503
|
}
|
440
504
|
|
@@ -569,7 +633,6 @@ static int dleq_generate(const PMBTOKEN_METHOD *method, CBB *cbb,
|
|
569
633
|
if (!scalar_to_cbb(cbb, group, &cs) ||
|
570
634
|
!scalar_to_cbb(cbb, group, &us) ||
|
571
635
|
!scalar_to_cbb(cbb, group, &vs)) {
|
572
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
573
636
|
return 0;
|
574
637
|
}
|
575
638
|
|
@@ -605,7 +668,6 @@ static int dleq_generate(const PMBTOKEN_METHOD *method, CBB *cbb,
|
|
605
668
|
!scalar_to_cbb(cbb, group, &u1) ||
|
606
669
|
!scalar_to_cbb(cbb, group, &v0) ||
|
607
670
|
!scalar_to_cbb(cbb, group, &v1)) {
|
608
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
609
671
|
return 0;
|
610
672
|
}
|
611
673
|
|
@@ -764,7 +826,6 @@ static int pmbtoken_sign(const PMBTOKEN_METHOD *method,
|
|
764
826
|
!point_to_cbb(&batch_cbb, method->group, &key->pubs) ||
|
765
827
|
!point_to_cbb(&batch_cbb, method->group, &key->pub0) ||
|
766
828
|
!point_to_cbb(&batch_cbb, method->group, &key->pub1)) {
|
767
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
768
829
|
goto err;
|
769
830
|
}
|
770
831
|
|
@@ -805,7 +866,6 @@ static int pmbtoken_sign(const PMBTOKEN_METHOD *method,
|
|
805
866
|
!point_to_cbb(&batch_cbb, group, &affines[0]) ||
|
806
867
|
!point_to_cbb(&batch_cbb, group, &affines[1]) ||
|
807
868
|
!point_to_cbb(&batch_cbb, group, &affines[2])) {
|
808
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
809
869
|
goto err;
|
810
870
|
}
|
811
871
|
Tps[i] = Tp;
|
@@ -874,11 +934,10 @@ err:
|
|
874
934
|
return ret;
|
875
935
|
}
|
876
936
|
|
877
|
-
static STACK_OF(TRUST_TOKEN) *
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
size_t count, uint32_t key_id) {
|
937
|
+
static STACK_OF(TRUST_TOKEN) *pmbtoken_unblind(
|
938
|
+
const PMBTOKEN_METHOD *method, const TRUST_TOKEN_CLIENT_KEY *key,
|
939
|
+
const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count,
|
940
|
+
uint32_t key_id) {
|
882
941
|
const EC_GROUP *group = method->group;
|
883
942
|
if (count > sk_TRUST_TOKEN_PRETOKEN_num(pretokens)) {
|
884
943
|
OPENSSL_PUT_ERROR(TRUST_TOKEN, TRUST_TOKEN_R_DECODE_FAILURE);
|
@@ -888,7 +947,6 @@ static STACK_OF(TRUST_TOKEN) *
|
|
888
947
|
int ok = 0;
|
889
948
|
STACK_OF(TRUST_TOKEN) *ret = sk_TRUST_TOKEN_new_null();
|
890
949
|
if (ret == NULL) {
|
891
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
892
950
|
return NULL;
|
893
951
|
}
|
894
952
|
|
@@ -913,7 +971,6 @@ static STACK_OF(TRUST_TOKEN) *
|
|
913
971
|
!point_to_cbb(&batch_cbb, method->group, &key->pubs) ||
|
914
972
|
!point_to_cbb(&batch_cbb, method->group, &key->pub0) ||
|
915
973
|
!point_to_cbb(&batch_cbb, method->group, &key->pub1)) {
|
916
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
917
974
|
goto err;
|
918
975
|
}
|
919
976
|
|
@@ -944,7 +1001,6 @@ static STACK_OF(TRUST_TOKEN) *
|
|
944
1001
|
!point_to_cbb(&batch_cbb, group, &Sp_affine) ||
|
945
1002
|
!point_to_cbb(&batch_cbb, group, &Wp_affine) ||
|
946
1003
|
!point_to_cbb(&batch_cbb, group, &Wsp_affine)) {
|
947
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
948
1004
|
goto err;
|
949
1005
|
}
|
950
1006
|
|
@@ -965,7 +1021,7 @@ static STACK_OF(TRUST_TOKEN) *
|
|
965
1021
|
if (!CBB_init(&token_cbb,
|
966
1022
|
4 + TRUST_TOKEN_NONCE_SIZE + 3 * (2 + point_len)) ||
|
967
1023
|
!CBB_add_u32(&token_cbb, key_id) ||
|
968
|
-
!CBB_add_bytes(&token_cbb, pretoken->
|
1024
|
+
!CBB_add_bytes(&token_cbb, pretoken->salt, TRUST_TOKEN_NONCE_SIZE) ||
|
969
1025
|
!cbb_add_prefixed_point(&token_cbb, group, &affines[0],
|
970
1026
|
method->prefix_point) ||
|
971
1027
|
!cbb_add_prefixed_point(&token_cbb, group, &affines[1],
|
@@ -982,7 +1038,6 @@ static STACK_OF(TRUST_TOKEN) *
|
|
982
1038
|
CBB_cleanup(&token_cbb);
|
983
1039
|
if (token == NULL ||
|
984
1040
|
!sk_TRUST_TOKEN_push(ret, token)) {
|
985
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
986
1041
|
TRUST_TOKEN_free(token);
|
987
1042
|
goto err;
|
988
1043
|
}
|
@@ -1037,12 +1092,13 @@ static int pmbtoken_read(const PMBTOKEN_METHOD *method,
|
|
1037
1092
|
const TRUST_TOKEN_ISSUER_KEY *key,
|
1038
1093
|
uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE],
|
1039
1094
|
uint8_t *out_private_metadata, const uint8_t *token,
|
1040
|
-
size_t token_len
|
1095
|
+
size_t token_len, int include_message,
|
1096
|
+
const uint8_t *msg, size_t msg_len) {
|
1041
1097
|
const EC_GROUP *group = method->group;
|
1042
|
-
CBS cbs;
|
1098
|
+
CBS cbs, salt;
|
1043
1099
|
CBS_init(&cbs, token, token_len);
|
1044
1100
|
EC_AFFINE S, W, Ws;
|
1045
|
-
if (!
|
1101
|
+
if (!CBS_get_bytes(&cbs, &salt, TRUST_TOKEN_NONCE_SIZE) ||
|
1046
1102
|
!cbs_get_prefixed_point(&cbs, group, &S, method->prefix_point) ||
|
1047
1103
|
!cbs_get_prefixed_point(&cbs, group, &W, method->prefix_point) ||
|
1048
1104
|
!cbs_get_prefixed_point(&cbs, group, &Ws, method->prefix_point) ||
|
@@ -1051,6 +1107,16 @@ static int pmbtoken_read(const PMBTOKEN_METHOD *method,
|
|
1051
1107
|
return 0;
|
1052
1108
|
}
|
1053
1109
|
|
1110
|
+
if (include_message) {
|
1111
|
+
SHA512_CTX hash_ctx;
|
1112
|
+
assert(SHA512_DIGEST_LENGTH == TRUST_TOKEN_NONCE_SIZE);
|
1113
|
+
SHA512_Init(&hash_ctx);
|
1114
|
+
SHA512_Update(&hash_ctx, CBS_data(&salt), CBS_len(&salt));
|
1115
|
+
SHA512_Update(&hash_ctx, msg, msg_len);
|
1116
|
+
SHA512_Final(out_nonce, &hash_ctx);
|
1117
|
+
} else {
|
1118
|
+
OPENSSL_memcpy(out_nonce, CBS_data(&salt), CBS_len(&salt));
|
1119
|
+
}
|
1054
1120
|
|
1055
1121
|
EC_RAW_POINT T;
|
1056
1122
|
if (!method->hash_t(group, &T, out_nonce)) {
|
@@ -1121,7 +1187,6 @@ static int pmbtoken_exp1_hash_s(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
1121
1187
|
!CBB_finish(&cbb, &buf, &len) ||
|
1122
1188
|
!ec_hash_to_curve_p384_xmd_sha512_sswu_draft07(
|
1123
1189
|
group, out, kHashSLabel, sizeof(kHashSLabel), buf, len)) {
|
1124
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
1125
1190
|
goto err;
|
1126
1191
|
}
|
1127
1192
|
|
@@ -1140,6 +1205,13 @@ static int pmbtoken_exp1_hash_c(const EC_GROUP *group, EC_SCALAR *out,
|
|
1140
1205
|
group, out, kHashCLabel, sizeof(kHashCLabel), buf, len);
|
1141
1206
|
}
|
1142
1207
|
|
1208
|
+
static int pmbtoken_exp1_hash_to_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
1209
|
+
uint8_t *buf, size_t len) {
|
1210
|
+
const uint8_t kHashLabel[] = "PMBTokens Experiment V1 HashToScalar";
|
1211
|
+
return ec_hash_to_scalar_p384_xmd_sha512_draft07(
|
1212
|
+
group, out, kHashLabel, sizeof(kHashLabel), buf, len);
|
1213
|
+
}
|
1214
|
+
|
1143
1215
|
static int pmbtoken_exp1_ok = 0;
|
1144
1216
|
static PMBTOKEN_METHOD pmbtoken_exp1_method;
|
1145
1217
|
static CRYPTO_once_t pmbtoken_exp1_method_once = CRYPTO_ONCE_INIT;
|
@@ -1159,10 +1231,10 @@ static void pmbtoken_exp1_init_method_impl(void) {
|
|
1159
1231
|
0x87, 0xc3, 0x95, 0xd0, 0x13, 0xb7, 0x0b, 0x5c, 0xc7,
|
1160
1232
|
};
|
1161
1233
|
|
1162
|
-
pmbtoken_exp1_ok =
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1234
|
+
pmbtoken_exp1_ok = pmbtoken_init_method(
|
1235
|
+
&pmbtoken_exp1_method, NID_secp384r1, kH, sizeof(kH),
|
1236
|
+
pmbtoken_exp1_hash_t, pmbtoken_exp1_hash_s, pmbtoken_exp1_hash_c,
|
1237
|
+
pmbtoken_exp1_hash_to_scalar, 1);
|
1166
1238
|
}
|
1167
1239
|
|
1168
1240
|
static int pmbtoken_exp1_init_method(void) {
|
@@ -1182,6 +1254,17 @@ int pmbtoken_exp1_generate_key(CBB *out_private, CBB *out_public) {
|
|
1182
1254
|
return pmbtoken_generate_key(&pmbtoken_exp1_method, out_private, out_public);
|
1183
1255
|
}
|
1184
1256
|
|
1257
|
+
int pmbtoken_exp1_derive_key_from_secret(CBB *out_private, CBB *out_public,
|
1258
|
+
const uint8_t *secret,
|
1259
|
+
size_t secret_len) {
|
1260
|
+
if (!pmbtoken_exp1_init_method()) {
|
1261
|
+
return 0;
|
1262
|
+
}
|
1263
|
+
|
1264
|
+
return pmbtoken_derive_key_from_secret(&pmbtoken_exp1_method, out_private,
|
1265
|
+
out_public, secret, secret_len);
|
1266
|
+
}
|
1267
|
+
|
1185
1268
|
int pmbtoken_exp1_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key,
|
1186
1269
|
const uint8_t *in, size_t len) {
|
1187
1270
|
if (!pmbtoken_exp1_init_method()) {
|
@@ -1198,11 +1281,15 @@ int pmbtoken_exp1_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key,
|
|
1198
1281
|
return pmbtoken_issuer_key_from_bytes(&pmbtoken_exp1_method, key, in, len);
|
1199
1282
|
}
|
1200
1283
|
|
1201
|
-
STACK_OF(TRUST_TOKEN_PRETOKEN) *
|
1284
|
+
STACK_OF(TRUST_TOKEN_PRETOKEN) *pmbtoken_exp1_blind(CBB *cbb, size_t count,
|
1285
|
+
int include_message,
|
1286
|
+
const uint8_t *msg,
|
1287
|
+
size_t msg_len) {
|
1202
1288
|
if (!pmbtoken_exp1_init_method()) {
|
1203
1289
|
return NULL;
|
1204
1290
|
}
|
1205
|
-
return pmbtoken_blind(&pmbtoken_exp1_method, cbb, count
|
1291
|
+
return pmbtoken_blind(&pmbtoken_exp1_method, cbb, count, include_message, msg,
|
1292
|
+
msg_len);
|
1206
1293
|
}
|
1207
1294
|
|
1208
1295
|
int pmbtoken_exp1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs,
|
@@ -1215,10 +1302,10 @@ int pmbtoken_exp1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs,
|
|
1215
1302
|
num_to_issue, private_metadata);
|
1216
1303
|
}
|
1217
1304
|
|
1218
|
-
STACK_OF(TRUST_TOKEN) *
|
1219
|
-
|
1220
|
-
|
1221
|
-
|
1305
|
+
STACK_OF(TRUST_TOKEN) *pmbtoken_exp1_unblind(
|
1306
|
+
const TRUST_TOKEN_CLIENT_KEY *key,
|
1307
|
+
const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count,
|
1308
|
+
uint32_t key_id) {
|
1222
1309
|
if (!pmbtoken_exp1_init_method()) {
|
1223
1310
|
return NULL;
|
1224
1311
|
}
|
@@ -1229,12 +1316,14 @@ STACK_OF(TRUST_TOKEN) *
|
|
1229
1316
|
int pmbtoken_exp1_read(const TRUST_TOKEN_ISSUER_KEY *key,
|
1230
1317
|
uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE],
|
1231
1318
|
uint8_t *out_private_metadata, const uint8_t *token,
|
1232
|
-
size_t token_len
|
1319
|
+
size_t token_len, int include_message,
|
1320
|
+
const uint8_t *msg, size_t msg_len) {
|
1233
1321
|
if (!pmbtoken_exp1_init_method()) {
|
1234
1322
|
return 0;
|
1235
1323
|
}
|
1236
1324
|
return pmbtoken_read(&pmbtoken_exp1_method, key, out_nonce,
|
1237
|
-
out_private_metadata, token, token_len
|
1325
|
+
out_private_metadata, token, token_len, include_message,
|
1326
|
+
msg, msg_len);
|
1238
1327
|
}
|
1239
1328
|
|
1240
1329
|
int pmbtoken_exp1_get_h_for_testing(uint8_t out[97]) {
|
@@ -1271,7 +1360,6 @@ static int pmbtoken_exp2_hash_s(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
1271
1360
|
!CBB_finish(&cbb, &buf, &len) ||
|
1272
1361
|
!ec_hash_to_curve_p384_xmd_sha512_sswu_draft07(
|
1273
1362
|
group, out, kHashSLabel, sizeof(kHashSLabel), buf, len)) {
|
1274
|
-
OPENSSL_PUT_ERROR(TRUST_TOKEN, ERR_R_MALLOC_FAILURE);
|
1275
1363
|
goto err;
|
1276
1364
|
}
|
1277
1365
|
|
@@ -1290,6 +1378,13 @@ static int pmbtoken_exp2_hash_c(const EC_GROUP *group, EC_SCALAR *out,
|
|
1290
1378
|
group, out, kHashCLabel, sizeof(kHashCLabel), buf, len);
|
1291
1379
|
}
|
1292
1380
|
|
1381
|
+
static int pmbtoken_exp2_hash_to_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
1382
|
+
uint8_t *buf, size_t len) {
|
1383
|
+
const uint8_t kHashLabel[] = "PMBTokens Experiment V2 HashToScalar";
|
1384
|
+
return ec_hash_to_scalar_p384_xmd_sha512_draft07(
|
1385
|
+
group, out, kHashLabel, sizeof(kHashLabel), buf, len);
|
1386
|
+
}
|
1387
|
+
|
1293
1388
|
static int pmbtoken_exp2_ok = 0;
|
1294
1389
|
static PMBTOKEN_METHOD pmbtoken_exp2_method;
|
1295
1390
|
static CRYPTO_once_t pmbtoken_exp2_method_once = CRYPTO_ONCE_INIT;
|
@@ -1309,10 +1404,10 @@ static void pmbtoken_exp2_init_method_impl(void) {
|
|
1309
1404
|
0x25, 0x62, 0xbf, 0x59, 0xb2, 0xd2, 0x3d, 0x71, 0xff
|
1310
1405
|
};
|
1311
1406
|
|
1312
|
-
pmbtoken_exp2_ok =
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1407
|
+
pmbtoken_exp2_ok = pmbtoken_init_method(
|
1408
|
+
&pmbtoken_exp2_method, NID_secp384r1, kH, sizeof(kH),
|
1409
|
+
pmbtoken_exp2_hash_t, pmbtoken_exp2_hash_s, pmbtoken_exp2_hash_c,
|
1410
|
+
pmbtoken_exp2_hash_to_scalar, 0);
|
1316
1411
|
}
|
1317
1412
|
|
1318
1413
|
static int pmbtoken_exp2_init_method(void) {
|
@@ -1332,6 +1427,18 @@ int pmbtoken_exp2_generate_key(CBB *out_private, CBB *out_public) {
|
|
1332
1427
|
return pmbtoken_generate_key(&pmbtoken_exp2_method, out_private, out_public);
|
1333
1428
|
}
|
1334
1429
|
|
1430
|
+
|
1431
|
+
int pmbtoken_exp2_derive_key_from_secret(CBB *out_private, CBB *out_public,
|
1432
|
+
const uint8_t *secret,
|
1433
|
+
size_t secret_len) {
|
1434
|
+
if (!pmbtoken_exp2_init_method()) {
|
1435
|
+
return 0;
|
1436
|
+
}
|
1437
|
+
|
1438
|
+
return pmbtoken_derive_key_from_secret(&pmbtoken_exp2_method, out_private,
|
1439
|
+
out_public, secret, secret_len);
|
1440
|
+
}
|
1441
|
+
|
1335
1442
|
int pmbtoken_exp2_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key,
|
1336
1443
|
const uint8_t *in, size_t len) {
|
1337
1444
|
if (!pmbtoken_exp2_init_method()) {
|
@@ -1348,11 +1455,15 @@ int pmbtoken_exp2_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key,
|
|
1348
1455
|
return pmbtoken_issuer_key_from_bytes(&pmbtoken_exp2_method, key, in, len);
|
1349
1456
|
}
|
1350
1457
|
|
1351
|
-
STACK_OF(TRUST_TOKEN_PRETOKEN) *
|
1458
|
+
STACK_OF(TRUST_TOKEN_PRETOKEN) *pmbtoken_exp2_blind(CBB *cbb, size_t count,
|
1459
|
+
int include_message,
|
1460
|
+
const uint8_t *msg,
|
1461
|
+
size_t msg_len) {
|
1352
1462
|
if (!pmbtoken_exp2_init_method()) {
|
1353
1463
|
return NULL;
|
1354
1464
|
}
|
1355
|
-
return pmbtoken_blind(&pmbtoken_exp2_method, cbb, count
|
1465
|
+
return pmbtoken_blind(&pmbtoken_exp2_method, cbb, count, include_message, msg,
|
1466
|
+
msg_len);
|
1356
1467
|
}
|
1357
1468
|
|
1358
1469
|
int pmbtoken_exp2_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs,
|
@@ -1365,10 +1476,10 @@ int pmbtoken_exp2_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs,
|
|
1365
1476
|
num_to_issue, private_metadata);
|
1366
1477
|
}
|
1367
1478
|
|
1368
|
-
STACK_OF(TRUST_TOKEN) *
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1479
|
+
STACK_OF(TRUST_TOKEN) *pmbtoken_exp2_unblind(
|
1480
|
+
const TRUST_TOKEN_CLIENT_KEY *key,
|
1481
|
+
const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count,
|
1482
|
+
uint32_t key_id) {
|
1372
1483
|
if (!pmbtoken_exp2_init_method()) {
|
1373
1484
|
return NULL;
|
1374
1485
|
}
|
@@ -1379,12 +1490,14 @@ STACK_OF(TRUST_TOKEN) *
|
|
1379
1490
|
int pmbtoken_exp2_read(const TRUST_TOKEN_ISSUER_KEY *key,
|
1380
1491
|
uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE],
|
1381
1492
|
uint8_t *out_private_metadata, const uint8_t *token,
|
1382
|
-
size_t token_len
|
1493
|
+
size_t token_len, int include_message,
|
1494
|
+
const uint8_t *msg, size_t msg_len) {
|
1383
1495
|
if (!pmbtoken_exp2_init_method()) {
|
1384
1496
|
return 0;
|
1385
1497
|
}
|
1386
1498
|
return pmbtoken_read(&pmbtoken_exp2_method, key, out_nonce,
|
1387
|
-
out_private_metadata, token, token_len
|
1499
|
+
out_private_metadata, token, token_len, include_message,
|
1500
|
+
msg, msg_len);
|
1388
1501
|
}
|
1389
1502
|
|
1390
1503
|
int pmbtoken_exp2_get_h_for_testing(uint8_t out[97]) {
|