grpc 1.55.0 → 1.56.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 +100 -68
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/support/json.h +218 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +5 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +4 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +86 -104
- data/src/core/ext/filters/client_channel/client_channel.h +6 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -18
- data/src/core/ext/filters/client_channel/client_channel_internal.h +16 -21
- data/src/core/ext/filters/client_channel/config_selector.h +9 -24
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +3 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +2 -7
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +52 -20
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +23 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +19 -6
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +16 -7
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +18 -1
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +76 -6
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +32 -39
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +4 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +52 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +1 -9
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +14 -16
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +7 -12
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +12 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +35 -33
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +29 -4
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +28 -27
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +163 -46
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +16 -1
- data/src/core/ext/filters/client_channel/retry_service_config.cc +1 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +10 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +10 -196
- data/src/core/ext/filters/client_channel/subchannel.h +3 -43
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +5 -5
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +100 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +6 -8
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +16 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +46 -95
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +11 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +15 -0
- data/src/core/ext/xds/certificate_provider_store.cc +4 -9
- data/src/core/ext/xds/certificate_provider_store.h +1 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +30 -42
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -9
- data/src/core/ext/xds/xds_api.cc +9 -6
- data/src/core/ext/xds/xds_api.h +3 -2
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +21 -9
- data/src/core/ext/xds/xds_bootstrap_grpc.h +5 -0
- data/src/core/ext/xds/xds_client.cc +5 -4
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_cluster.cc +20 -19
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +11 -8
- data/src/core/ext/xds/xds_common_types.cc +3 -1
- data/src/core/ext/xds/xds_http_fault_filter.cc +16 -13
- data/src/core/ext/xds/xds_http_fault_filter.h +2 -1
- data/src/core/ext/xds/xds_http_filters.h +4 -2
- data/src/core/ext/xds/xds_http_rbac_filter.cc +154 -67
- data/src/core/ext/xds/xds_http_rbac_filter.h +2 -1
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +15 -11
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +2 -1
- data/src/core/ext/xds/xds_lb_policy_registry.cc +22 -16
- data/src/core/ext/xds/xds_listener.cc +1 -0
- data/src/core/ext/xds/xds_route_config.cc +40 -3
- data/src/core/ext/xds/xds_routing.cc +2 -2
- data/src/core/ext/xds/xds_transport_grpc.cc +3 -1
- data/src/core/lib/avl/avl.h +5 -0
- data/src/core/lib/channel/channel_args.cc +80 -22
- data/src/core/lib/channel/channel_args.h +34 -1
- data/src/core/lib/channel/channel_trace.cc +16 -12
- data/src/core/lib/channel/channelz.cc +159 -132
- data/src/core/lib/channel/channelz.h +42 -35
- data/src/core/lib/channel/channelz_registry.cc +23 -20
- data/src/core/lib/channel/connected_channel.cc +17 -6
- data/src/core/lib/channel/promise_based_filter.cc +0 -4
- data/src/core/lib/channel/promise_based_filter.h +2 -0
- data/src/core/lib/compression/compression_internal.cc +2 -5
- data/src/core/lib/config/config_vars.cc +20 -18
- data/src/core/lib/config/config_vars.h +4 -4
- data/src/core/lib/config/load_config.cc +13 -0
- data/src/core/lib/config/load_config.h +6 -0
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/stats_data.h +1 -1
- data/src/core/lib/debug/trace.cc +24 -55
- data/src/core/lib/debug/trace.h +3 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/default_event_engine.cc +13 -1
- data/src/core/lib/event_engine/default_event_engine_factory.cc +14 -2
- data/src/core/lib/event_engine/poller.h +2 -2
- data/src/core/lib/event_engine/posix.h +4 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +7 -18
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +33 -19
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +7 -8
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +1 -1
- data/src/core/lib/event_engine/shim.cc +7 -1
- data/src/core/lib/event_engine/{thread_pool.cc → thread_pool/original_thread_pool.cc} +28 -25
- data/src/core/lib/event_engine/{thread_pool.h → thread_pool/original_thread_pool.h} +11 -15
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
- data/src/core/lib/event_engine/{executor/executor.h → thread_pool/thread_pool_factory.cc} +17 -15
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +108 -0
- data/src/core/lib/event_engine/windows/iocp.cc +4 -3
- data/src/core/lib/event_engine/windows/iocp.h +3 -3
- data/src/core/lib/event_engine/windows/win_socket.cc +6 -6
- data/src/core/lib/event_engine/windows/win_socket.h +4 -4
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +11 -10
- data/src/core/lib/event_engine/windows/windows_endpoint.h +3 -2
- data/src/core/lib/event_engine/windows/windows_engine.cc +19 -17
- data/src/core/lib/event_engine/windows/windows_engine.h +6 -6
- data/src/core/lib/event_engine/windows/windows_listener.cc +3 -3
- data/src/core/lib/event_engine/windows/windows_listener.h +3 -2
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +38 -7
- data/src/core/lib/experiments/config.h +16 -0
- data/src/core/lib/experiments/experiments.cc +67 -20
- data/src/core/lib/experiments/experiments.h +27 -21
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gprpp/crash.cc +10 -0
- data/src/core/lib/gprpp/crash.h +3 -0
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +29 -6
- data/src/core/lib/gprpp/time.cc +1 -0
- data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
- data/src/core/lib/iomgr/endpoint_cfstream.cc +10 -8
- data/src/core/lib/iomgr/ev_apple.cc +12 -12
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +10 -3
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +15 -1
- data/src/core/lib/iomgr/iocp_windows.cc +24 -3
- data/src/core/lib/iomgr/iocp_windows.h +11 -0
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -2
- data/src/core/lib/iomgr/socket_windows.cc +61 -7
- data/src/core/lib/iomgr/socket_windows.h +9 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +14 -3
- data/src/core/lib/iomgr/tcp_server_posix.cc +148 -107
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -1
- data/src/core/lib/iomgr/tcp_server_windows.cc +1 -1
- data/src/core/lib/json/json.h +2 -166
- data/src/core/lib/json/json_object_loader.cc +8 -9
- data/src/core/lib/json/json_object_loader.h +25 -18
- data/src/core/lib/json/json_reader.cc +13 -6
- data/src/core/lib/json/json_util.cc +6 -11
- data/src/core/lib/json/json_writer.cc +7 -8
- data/src/core/lib/load_balancing/lb_policy.h +13 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +3 -4
- data/src/core/lib/matchers/matchers.h +2 -1
- data/src/core/lib/promise/activity.cc +5 -0
- data/src/core/lib/promise/activity.h +10 -0
- data/src/core/lib/promise/detail/promise_factory.h +1 -1
- data/src/core/lib/promise/party.cc +31 -13
- data/src/core/lib/promise/party.h +11 -2
- data/src/core/lib/promise/pipe.h +9 -2
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/sleep.cc +2 -1
- data/src/core/lib/resolver/server_address.cc +0 -8
- data/src/core/lib/resolver/server_address.h +0 -6
- data/src/core/lib/resource_quota/memory_quota.cc +7 -7
- data/src/core/lib/resource_quota/memory_quota.h +1 -2
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -2
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +18 -1
- data/src/core/lib/security/authorization/rbac_policy.cc +36 -4
- data/src/core/lib/security/authorization/rbac_policy.h +19 -2
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +8 -4
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +14 -8
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +19 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +4 -2
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +15 -14
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +1 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +1 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/util/json_util.cc +1 -0
- data/src/core/lib/service_config/service_config_call_data.h +49 -20
- data/src/core/lib/service_config/service_config_impl.cc +2 -1
- data/src/core/lib/surface/call.cc +38 -23
- data/src/core/lib/surface/completion_queue.cc +6 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/batch_builder.cc +15 -12
- data/src/core/lib/transport/batch_builder.h +39 -35
- data/src/core/plugin_registry/grpc_plugin_registry.cc +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +7 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +31 -22
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_openbsd.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +18 -6
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +15 -7
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +24 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +74 -74
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +11 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +23 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +2 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +115 -133
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +57 -47
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +21 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +5 -288
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +143 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +95 -183
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +71 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +33 -0
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +162 -6
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +18 -11
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +18 -14
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/internal.h +77 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +218 -44
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +588 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +27 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +17 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +39 -48
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +0 -140
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +72 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +14 -46
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +17 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +5 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +32 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +28 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +2 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +91 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +149 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +774 -615
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +42 -10
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +11 -6
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +2 -4
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +24 -16
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +65 -18
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +37 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +187 -193
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +13 -129
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +85 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +17 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +5 -21
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +5 -2
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -0
- metadata +48 -12
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -175
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
@@ -32,11 +32,7 @@ void x25519_NEON(uint8_t out[32], const uint8_t scalar[32],
|
|
32
32
|
const uint8_t point[32]);
|
33
33
|
#endif
|
34
34
|
|
35
|
-
#if defined(
|
36
|
-
#define BORINGSSL_CURVE25519_64BIT
|
37
|
-
#endif
|
38
|
-
|
39
|
-
#if defined(BORINGSSL_CURVE25519_64BIT)
|
35
|
+
#if defined(OPENSSL_64_BIT)
|
40
36
|
// fe means field element. Here the field is \Z/(2^255-19). An element t,
|
41
37
|
// entries t[0]...t[4], represents the integer t[0]+2^51 t[1]+2^102 t[2]+2^153
|
42
38
|
// t[3]+2^204 t[4].
|
@@ -202,6 +202,10 @@ int DSA_set0_pqg(DSA *dsa, BIGNUM *p, BIGNUM *q, BIGNUM *g) {
|
|
202
202
|
dsa->g = g;
|
203
203
|
}
|
204
204
|
|
205
|
+
BN_MONT_CTX_free(dsa->method_mont_p);
|
206
|
+
dsa->method_mont_p = NULL;
|
207
|
+
BN_MONT_CTX_free(dsa->method_mont_q);
|
208
|
+
dsa->method_mont_q = NULL;
|
205
209
|
return 1;
|
206
210
|
}
|
207
211
|
|
@@ -273,7 +273,7 @@ static BN_ULONG sqrt_ratio_3mod4(const EC_GROUP *group, const EC_FELEM *Z,
|
|
273
273
|
// in appendix F.2.
|
274
274
|
static void map_to_curve_simple_swu(const EC_GROUP *group, const EC_FELEM *Z,
|
275
275
|
const BN_ULONG *c1, size_t num_c1,
|
276
|
-
const EC_FELEM *c2,
|
276
|
+
const EC_FELEM *c2, EC_JACOBIAN *out,
|
277
277
|
const EC_FELEM *u) {
|
278
278
|
// This function requires the prime be 3 mod 4, and that A = -3.
|
279
279
|
assert(is_3mod4(group));
|
@@ -344,7 +344,7 @@ static void map_to_curve_simple_swu(const EC_GROUP *group, const EC_FELEM *Z,
|
|
344
344
|
|
345
345
|
static int hash_to_curve(const EC_GROUP *group, const EVP_MD *md,
|
346
346
|
const EC_FELEM *Z, const EC_FELEM *c2, unsigned k,
|
347
|
-
|
347
|
+
EC_JACOBIAN *out, const uint8_t *dst, size_t dst_len,
|
348
348
|
const uint8_t *msg, size_t msg_len) {
|
349
349
|
EC_FELEM u0, u1;
|
350
350
|
if (!hash_to_field2(group, md, &u0, &u1, dst, dst_len, k, msg, msg_len)) {
|
@@ -359,7 +359,7 @@ static int hash_to_curve(const EC_GROUP *group, const EVP_MD *md,
|
|
359
359
|
}
|
360
360
|
bn_rshift_words(c1, c1, /*shift=*/2, /*num=*/num_c1);
|
361
361
|
|
362
|
-
|
362
|
+
EC_JACOBIAN Q0, Q1;
|
363
363
|
map_to_curve_simple_swu(group, Z, c1, num_c1, c2, &Q0, &u0);
|
364
364
|
map_to_curve_simple_swu(group, Z, c1, num_c1, c2, &Q1, &u1);
|
365
365
|
|
@@ -401,7 +401,7 @@ static const uint8_t kP384Sqrt12[] = {
|
|
401
401
|
0xa8, 0x0f, 0x7e, 0x19, 0x14, 0xe2, 0xec, 0x69, 0xf5, 0xa6, 0x26, 0xb3};
|
402
402
|
|
403
403
|
int ec_hash_to_curve_p256_xmd_sha256_sswu(const EC_GROUP *group,
|
404
|
-
|
404
|
+
EC_JACOBIAN *out, const uint8_t *dst,
|
405
405
|
size_t dst_len, const uint8_t *msg,
|
406
406
|
size_t msg_len) {
|
407
407
|
// See section 8.3 of draft-irtf-cfrg-hash-to-curve-16.
|
@@ -434,7 +434,7 @@ int EC_hash_to_curve_p256_xmd_sha256_sswu(const EC_GROUP *group, EC_POINT *out,
|
|
434
434
|
}
|
435
435
|
|
436
436
|
int ec_hash_to_curve_p384_xmd_sha384_sswu(const EC_GROUP *group,
|
437
|
-
|
437
|
+
EC_JACOBIAN *out, const uint8_t *dst,
|
438
438
|
size_t dst_len, const uint8_t *msg,
|
439
439
|
size_t msg_len) {
|
440
440
|
// See section 8.3 of draft-irtf-cfrg-hash-to-curve-16.
|
@@ -466,8 +466,20 @@ int EC_hash_to_curve_p384_xmd_sha384_sswu(const EC_GROUP *group, EC_POINT *out,
|
|
466
466
|
msg, msg_len);
|
467
467
|
}
|
468
468
|
|
469
|
+
int ec_hash_to_scalar_p384_xmd_sha384(
|
470
|
+
const EC_GROUP *group, EC_SCALAR *out, const uint8_t *dst, size_t dst_len,
|
471
|
+
const uint8_t *msg, size_t msg_len) {
|
472
|
+
if (EC_GROUP_get_curve_name(group) != NID_secp384r1) {
|
473
|
+
OPENSSL_PUT_ERROR(EC, EC_R_GROUP_MISMATCH);
|
474
|
+
return 0;
|
475
|
+
}
|
476
|
+
|
477
|
+
return hash_to_scalar(group, EVP_sha384(), out, dst, dst_len, /*k=*/192, msg,
|
478
|
+
msg_len);
|
479
|
+
}
|
480
|
+
|
469
481
|
int ec_hash_to_curve_p384_xmd_sha512_sswu_draft07(
|
470
|
-
const EC_GROUP *group,
|
482
|
+
const EC_GROUP *group, EC_JACOBIAN *out, const uint8_t *dst,
|
471
483
|
size_t dst_len, const uint8_t *msg, size_t msg_len) {
|
472
484
|
// See section 8.3 of draft-irtf-cfrg-hash-to-curve-07.
|
473
485
|
if (EC_GROUP_get_curve_name(group) != NID_secp384r1) {
|
@@ -26,23 +26,31 @@ extern "C" {
|
|
26
26
|
|
27
27
|
// Hash-to-curve.
|
28
28
|
//
|
29
|
-
// Internal |
|
29
|
+
// Internal |EC_JACOBIAN| versions of the corresponding public APIs.
|
30
30
|
|
31
31
|
// ec_hash_to_curve_p256_xmd_sha256_sswu hashes |msg| to a point on |group| and
|
32
32
|
// writes the result to |out|, implementing the P256_XMD:SHA-256_SSWU_RO_ suite
|
33
33
|
// from draft-irtf-cfrg-hash-to-curve-16. It returns one on success and zero on
|
34
34
|
// error.
|
35
35
|
OPENSSL_EXPORT int ec_hash_to_curve_p256_xmd_sha256_sswu(
|
36
|
-
const EC_GROUP *group,
|
37
|
-
|
36
|
+
const EC_GROUP *group, EC_JACOBIAN *out, const uint8_t *dst, size_t dst_len,
|
37
|
+
const uint8_t *msg, size_t msg_len);
|
38
38
|
|
39
39
|
// ec_hash_to_curve_p384_xmd_sha384_sswu hashes |msg| to a point on |group| and
|
40
40
|
// writes the result to |out|, implementing the P384_XMD:SHA-384_SSWU_RO_ suite
|
41
41
|
// from draft-irtf-cfrg-hash-to-curve-16. It returns one on success and zero on
|
42
42
|
// error.
|
43
43
|
OPENSSL_EXPORT int ec_hash_to_curve_p384_xmd_sha384_sswu(
|
44
|
-
const EC_GROUP *group,
|
45
|
-
|
44
|
+
const EC_GROUP *group, EC_JACOBIAN *out, const uint8_t *dst, size_t dst_len,
|
45
|
+
const uint8_t *msg, size_t msg_len);
|
46
|
+
|
47
|
+
// ec_hash_to_scalar_p384_xmd_sha384 hashes |msg| to a scalar on |group|
|
48
|
+
// and writes the result to |out|, using the hash_to_field operation from the
|
49
|
+
// P384_XMD:SHA-384_SSWU_RO_ suite from draft-irtf-cfrg-hash-to-curve-16, but
|
50
|
+
// generating a value modulo the group order rather than a field element.
|
51
|
+
OPENSSL_EXPORT int ec_hash_to_scalar_p384_xmd_sha384(
|
52
|
+
const EC_GROUP *group, EC_SCALAR *out, const uint8_t *dst, size_t dst_len,
|
53
|
+
const uint8_t *msg, size_t msg_len);
|
46
54
|
|
47
55
|
// ec_hash_to_curve_p384_xmd_sha512_sswu_draft07 hashes |msg| to a point on
|
48
56
|
// |group| and writes the result to |out|, implementing the
|
@@ -51,8 +59,8 @@ OPENSSL_EXPORT int ec_hash_to_curve_p384_xmd_sha384_sswu(
|
|
51
59
|
//
|
52
60
|
// TODO(https://crbug.com/1414562): Migrate this to the final version.
|
53
61
|
OPENSSL_EXPORT int ec_hash_to_curve_p384_xmd_sha512_sswu_draft07(
|
54
|
-
const EC_GROUP *group,
|
55
|
-
|
62
|
+
const EC_GROUP *group, EC_JACOBIAN *out, const uint8_t *dst, size_t dst_len,
|
63
|
+
const uint8_t *msg, size_t msg_len);
|
56
64
|
|
57
65
|
// ec_hash_to_scalar_p384_xmd_sha512_draft07 hashes |msg| to a scalar on |group|
|
58
66
|
// and writes the result to |out|, using the hash_to_field operation from the
|
@@ -92,7 +92,7 @@ int ECDH_compute_key(void *out, size_t out_len, const EC_POINT *pub_key,
|
|
92
92
|
return -1;
|
93
93
|
}
|
94
94
|
|
95
|
-
|
95
|
+
EC_JACOBIAN shared_point;
|
96
96
|
uint8_t buf[EC_MAX_BYTES];
|
97
97
|
size_t buf_len;
|
98
98
|
if (!ec_point_mul_scalar(group, &shared_point, &pub_key->raw, priv) ||
|
@@ -801,7 +801,7 @@ int EC_POINT_get_affine_coordinates(const EC_GROUP *group,
|
|
801
801
|
return EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx);
|
802
802
|
}
|
803
803
|
|
804
|
-
void ec_affine_to_jacobian(const EC_GROUP *group,
|
804
|
+
void ec_affine_to_jacobian(const EC_GROUP *group, EC_JACOBIAN *out,
|
805
805
|
const EC_AFFINE *p) {
|
806
806
|
out->X = p->X;
|
807
807
|
out->Y = p->Y;
|
@@ -809,12 +809,12 @@ void ec_affine_to_jacobian(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
809
809
|
}
|
810
810
|
|
811
811
|
int ec_jacobian_to_affine(const EC_GROUP *group, EC_AFFINE *out,
|
812
|
-
const
|
812
|
+
const EC_JACOBIAN *p) {
|
813
813
|
return group->meth->point_get_affine_coordinates(group, p, &out->X, &out->Y);
|
814
814
|
}
|
815
815
|
|
816
816
|
int ec_jacobian_to_affine_batch(const EC_GROUP *group, EC_AFFINE *out,
|
817
|
-
const
|
817
|
+
const EC_JACOBIAN *in, size_t num) {
|
818
818
|
if (group->meth->jacobian_to_affine_batch == NULL) {
|
819
819
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
820
820
|
return 0;
|
@@ -990,13 +990,13 @@ int ec_point_mul_no_self_test(const EC_GROUP *group, EC_POINT *r,
|
|
990
990
|
|
991
991
|
if (p_scalar != NULL) {
|
992
992
|
EC_SCALAR scalar;
|
993
|
-
|
993
|
+
EC_JACOBIAN tmp;
|
994
994
|
if (!arbitrary_bignum_to_scalar(group, &scalar, p_scalar, ctx) ||
|
995
995
|
!ec_point_mul_scalar(group, &tmp, &p->raw, &scalar)) {
|
996
996
|
goto err;
|
997
997
|
}
|
998
998
|
if (g_scalar == NULL) {
|
999
|
-
OPENSSL_memcpy(&r->raw, &tmp, sizeof(
|
999
|
+
OPENSSL_memcpy(&r->raw, &tmp, sizeof(EC_JACOBIAN));
|
1000
1000
|
} else {
|
1001
1001
|
group->meth->add(group, &r->raw, &r->raw, &tmp);
|
1002
1002
|
}
|
@@ -1016,8 +1016,8 @@ int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *g_scalar,
|
|
1016
1016
|
return ec_point_mul_no_self_test(group, r, g_scalar, p, p_scalar, ctx);
|
1017
1017
|
}
|
1018
1018
|
|
1019
|
-
int ec_point_mul_scalar_public(const EC_GROUP *group,
|
1020
|
-
const EC_SCALAR *g_scalar, const
|
1019
|
+
int ec_point_mul_scalar_public(const EC_GROUP *group, EC_JACOBIAN *r,
|
1020
|
+
const EC_SCALAR *g_scalar, const EC_JACOBIAN *p,
|
1021
1021
|
const EC_SCALAR *p_scalar) {
|
1022
1022
|
if (g_scalar == NULL || p_scalar == NULL || p == NULL) {
|
1023
1023
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
@@ -1032,9 +1032,9 @@ int ec_point_mul_scalar_public(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
1032
1032
|
return 1;
|
1033
1033
|
}
|
1034
1034
|
|
1035
|
-
int ec_point_mul_scalar_public_batch(const EC_GROUP *group,
|
1035
|
+
int ec_point_mul_scalar_public_batch(const EC_GROUP *group, EC_JACOBIAN *r,
|
1036
1036
|
const EC_SCALAR *g_scalar,
|
1037
|
-
const
|
1037
|
+
const EC_JACOBIAN *points,
|
1038
1038
|
const EC_SCALAR *scalars, size_t num) {
|
1039
1039
|
if (group->meth->mul_public_batch == NULL) {
|
1040
1040
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
@@ -1045,8 +1045,8 @@ int ec_point_mul_scalar_public_batch(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
1045
1045
|
num);
|
1046
1046
|
}
|
1047
1047
|
|
1048
|
-
int ec_point_mul_scalar(const EC_GROUP *group,
|
1049
|
-
const
|
1048
|
+
int ec_point_mul_scalar(const EC_GROUP *group, EC_JACOBIAN *r,
|
1049
|
+
const EC_JACOBIAN *p, const EC_SCALAR *scalar) {
|
1050
1050
|
if (p == NULL || scalar == NULL) {
|
1051
1051
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
1052
1052
|
return 0;
|
@@ -1064,7 +1064,7 @@ int ec_point_mul_scalar(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
1064
1064
|
return 1;
|
1065
1065
|
}
|
1066
1066
|
|
1067
|
-
int ec_point_mul_scalar_base(const EC_GROUP *group,
|
1067
|
+
int ec_point_mul_scalar_base(const EC_GROUP *group, EC_JACOBIAN *r,
|
1068
1068
|
const EC_SCALAR *scalar) {
|
1069
1069
|
if (scalar == NULL) {
|
1070
1070
|
OPENSSL_PUT_ERROR(EC, ERR_R_PASSED_NULL_PARAMETER);
|
@@ -1083,10 +1083,10 @@ int ec_point_mul_scalar_base(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
1083
1083
|
return 1;
|
1084
1084
|
}
|
1085
1085
|
|
1086
|
-
int ec_point_mul_scalar_batch(const EC_GROUP *group,
|
1087
|
-
const
|
1088
|
-
const
|
1089
|
-
const
|
1086
|
+
int ec_point_mul_scalar_batch(const EC_GROUP *group, EC_JACOBIAN *r,
|
1087
|
+
const EC_JACOBIAN *p0, const EC_SCALAR *scalar0,
|
1088
|
+
const EC_JACOBIAN *p1, const EC_SCALAR *scalar1,
|
1089
|
+
const EC_JACOBIAN *p2,
|
1090
1090
|
const EC_SCALAR *scalar2) {
|
1091
1091
|
if (group->meth->mul_batch == NULL) {
|
1092
1092
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
@@ -1106,7 +1106,7 @@ int ec_point_mul_scalar_batch(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
1106
1106
|
}
|
1107
1107
|
|
1108
1108
|
int ec_init_precomp(const EC_GROUP *group, EC_PRECOMP *out,
|
1109
|
-
const
|
1109
|
+
const EC_JACOBIAN *p) {
|
1110
1110
|
if (group->meth->init_precomp == NULL) {
|
1111
1111
|
OPENSSL_PUT_ERROR(EC, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
|
1112
1112
|
return 0;
|
@@ -1115,7 +1115,7 @@ int ec_init_precomp(const EC_GROUP *group, EC_PRECOMP *out,
|
|
1115
1115
|
return group->meth->init_precomp(group, out, p);
|
1116
1116
|
}
|
1117
1117
|
|
1118
|
-
int ec_point_mul_scalar_precomp(const EC_GROUP *group,
|
1118
|
+
int ec_point_mul_scalar_precomp(const EC_GROUP *group, EC_JACOBIAN *r,
|
1119
1119
|
const EC_PRECOMP *p0, const EC_SCALAR *scalar0,
|
1120
1120
|
const EC_PRECOMP *p1, const EC_SCALAR *scalar1,
|
1121
1121
|
const EC_PRECOMP *p2,
|
@@ -1137,8 +1137,8 @@ int ec_point_mul_scalar_precomp(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
1137
1137
|
return 1;
|
1138
1138
|
}
|
1139
1139
|
|
1140
|
-
void ec_point_select(const EC_GROUP *group,
|
1141
|
-
const
|
1140
|
+
void ec_point_select(const EC_GROUP *group, EC_JACOBIAN *out, BN_ULONG mask,
|
1141
|
+
const EC_JACOBIAN *a, const EC_JACOBIAN *b) {
|
1142
1142
|
ec_felem_select(group, &out->X, mask, &a->X, &b->X);
|
1143
1143
|
ec_felem_select(group, &out->Y, mask, &a->Y, &b->Y);
|
1144
1144
|
ec_felem_select(group, &out->Z, mask, &a->Z, &b->Z);
|
@@ -1159,13 +1159,13 @@ void ec_precomp_select(const EC_GROUP *group, EC_PRECOMP *out, BN_ULONG mask,
|
|
1159
1159
|
}
|
1160
1160
|
}
|
1161
1161
|
|
1162
|
-
int ec_cmp_x_coordinate(const EC_GROUP *group, const
|
1162
|
+
int ec_cmp_x_coordinate(const EC_GROUP *group, const EC_JACOBIAN *p,
|
1163
1163
|
const EC_SCALAR *r) {
|
1164
1164
|
return group->meth->cmp_x_coordinate(group, p, r);
|
1165
1165
|
}
|
1166
1166
|
|
1167
1167
|
int ec_get_x_coordinate_as_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
1168
|
-
const
|
1168
|
+
const EC_JACOBIAN *p) {
|
1169
1169
|
uint8_t bytes[EC_MAX_BYTES];
|
1170
1170
|
size_t len;
|
1171
1171
|
if (!ec_get_x_coordinate_as_bytes(group, bytes, &len, sizeof(bytes), p)) {
|
@@ -1201,7 +1201,7 @@ int ec_get_x_coordinate_as_scalar(const EC_GROUP *group, EC_SCALAR *out,
|
|
1201
1201
|
|
1202
1202
|
int ec_get_x_coordinate_as_bytes(const EC_GROUP *group, uint8_t *out,
|
1203
1203
|
size_t *out_len, size_t max_out,
|
1204
|
-
const
|
1204
|
+
const EC_JACOBIAN *p) {
|
1205
1205
|
size_t len = BN_num_bytes(&group->field);
|
1206
1206
|
assert(len <= EC_MAX_BYTES);
|
1207
1207
|
if (max_out < len) {
|
@@ -1219,7 +1219,7 @@ int ec_get_x_coordinate_as_bytes(const EC_GROUP *group, uint8_t *out,
|
|
1219
1219
|
return 1;
|
1220
1220
|
}
|
1221
1221
|
|
1222
|
-
void ec_set_to_safe_point(const EC_GROUP *group,
|
1222
|
+
void ec_set_to_safe_point(const EC_GROUP *group, EC_JACOBIAN *out) {
|
1223
1223
|
if (group->generator != NULL) {
|
1224
1224
|
ec_GFp_simple_point_copy(out, &group->generator->raw);
|
1225
1225
|
} else {
|
@@ -311,7 +311,7 @@ int EC_KEY_check_key(const EC_KEY *eckey) {
|
|
311
311
|
// NOTE: this is a FIPS pair-wise consistency check for the ECDH case. See SP
|
312
312
|
// 800-56Ar3, page 36.
|
313
313
|
if (eckey->priv_key != NULL) {
|
314
|
-
|
314
|
+
EC_JACOBIAN point;
|
315
315
|
if (!ec_point_mul_scalar_base(eckey->group, &point,
|
316
316
|
&eckey->priv_key->scalar)) {
|
317
317
|
OPENSSL_PUT_ERROR(EC, ERR_R_EC_LIB);
|
@@ -175,7 +175,7 @@ void ec_GFp_mont_felem_exp(const EC_GROUP *group, EC_FELEM *out,
|
|
175
175
|
}
|
176
176
|
|
177
177
|
static int ec_GFp_mont_point_get_affine_coordinates(const EC_GROUP *group,
|
178
|
-
const
|
178
|
+
const EC_JACOBIAN *point,
|
179
179
|
EC_FELEM *x, EC_FELEM *y) {
|
180
180
|
if (ec_GFp_simple_is_at_infinity(group, point)) {
|
181
181
|
OPENSSL_PUT_ERROR(EC, EC_R_POINT_AT_INFINITY);
|
@@ -202,7 +202,7 @@ static int ec_GFp_mont_point_get_affine_coordinates(const EC_GROUP *group,
|
|
202
202
|
|
203
203
|
static int ec_GFp_mont_jacobian_to_affine_batch(const EC_GROUP *group,
|
204
204
|
EC_AFFINE *out,
|
205
|
-
const
|
205
|
+
const EC_JACOBIAN *in,
|
206
206
|
size_t num) {
|
207
207
|
if (num == 0) {
|
208
208
|
return 1;
|
@@ -246,8 +246,8 @@ static int ec_GFp_mont_jacobian_to_affine_batch(const EC_GROUP *group,
|
|
246
246
|
return 1;
|
247
247
|
}
|
248
248
|
|
249
|
-
void ec_GFp_mont_add(const EC_GROUP *group,
|
250
|
-
const
|
249
|
+
void ec_GFp_mont_add(const EC_GROUP *group, EC_JACOBIAN *out,
|
250
|
+
const EC_JACOBIAN *a, const EC_JACOBIAN *b) {
|
251
251
|
if (a == b) {
|
252
252
|
ec_GFp_mont_dbl(group, out, a);
|
253
253
|
return;
|
@@ -357,8 +357,8 @@ void ec_GFp_mont_add(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
357
357
|
ec_felem_select(group, &out->Z, z2nz, &z_out, &a->Z);
|
358
358
|
}
|
359
359
|
|
360
|
-
void ec_GFp_mont_dbl(const EC_GROUP *group,
|
361
|
-
const
|
360
|
+
void ec_GFp_mont_dbl(const EC_GROUP *group, EC_JACOBIAN *r,
|
361
|
+
const EC_JACOBIAN *a) {
|
362
362
|
if (group->a_is_minus3) {
|
363
363
|
// The method is taken from:
|
364
364
|
// http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b
|
@@ -453,7 +453,7 @@ void ec_GFp_mont_dbl(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
453
453
|
}
|
454
454
|
|
455
455
|
static int ec_GFp_mont_cmp_x_coordinate(const EC_GROUP *group,
|
456
|
-
const
|
456
|
+
const EC_JACOBIAN *p,
|
457
457
|
const EC_SCALAR *r) {
|
458
458
|
if (!group->field_greater_than_order ||
|
459
459
|
group->field.width != group->order.width) {
|