grpc 1.55.0 → 1.56.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Makefile +102 -68
- data/include/grpc/event_engine/event_engine.h +4 -3
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/grpc_security.h +19 -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 +53 -21
- 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 +42 -40
- 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/hpack_parse_result.cc +176 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +325 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +567 -543
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +150 -9
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +46 -32
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +18 -5
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -15
- data/src/core/ext/transport/chttp2/transport/parsing.cc +12 -12
- 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/backoff/random_early_detection.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 +2 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +33 -4
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +10 -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 +182 -119
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -0
- 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/credentials/tls/grpc_tls_credentials_options.cc +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +5 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -1
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -1
- 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/validate_metadata.cc +37 -22
- data/src/core/lib/surface/validate_metadata.h +13 -3
- 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/core/tsi/ssl_transport_security.cc +5 -2
- data/src/core/tsi/ssl_transport_security.h +13 -1
- data/src/ruby/ext/grpc/extconf.rb +8 -9
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/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 +50 -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) {
|