grpc 1.55.3 → 1.56.0.pre3
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 -70
- 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 +82 -98
- data/src/core/ext/filters/client_channel/client_channel.h +4 -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/hpack_parser.cc +543 -567
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +9 -150
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +32 -46
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +5 -18
- 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 +0 -5
- 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 +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +1 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +4 -33
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +7 -11
- 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 +156 -140
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +1 -13
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -21
- 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/validate_metadata.cc +22 -37
- data/src/core/lib/surface/validate_metadata.h +3 -13
- 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 +50 -16
- 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/src/core/ext/transport/chttp2/transport/hpack_parse_result.cc +0 -176
- data/src/core/ext/transport/chttp2/transport/hpack_parse_result.h +0 -325
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
@@ -152,36 +152,36 @@ int ec_GFp_simple_group_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
|
|
152
152
|
return 1;
|
153
153
|
}
|
154
154
|
|
155
|
-
void ec_GFp_simple_point_init(
|
155
|
+
void ec_GFp_simple_point_init(EC_JACOBIAN *point) {
|
156
156
|
OPENSSL_memset(&point->X, 0, sizeof(EC_FELEM));
|
157
157
|
OPENSSL_memset(&point->Y, 0, sizeof(EC_FELEM));
|
158
158
|
OPENSSL_memset(&point->Z, 0, sizeof(EC_FELEM));
|
159
159
|
}
|
160
160
|
|
161
|
-
void ec_GFp_simple_point_copy(
|
161
|
+
void ec_GFp_simple_point_copy(EC_JACOBIAN *dest, const EC_JACOBIAN *src) {
|
162
162
|
OPENSSL_memcpy(&dest->X, &src->X, sizeof(EC_FELEM));
|
163
163
|
OPENSSL_memcpy(&dest->Y, &src->Y, sizeof(EC_FELEM));
|
164
164
|
OPENSSL_memcpy(&dest->Z, &src->Z, sizeof(EC_FELEM));
|
165
165
|
}
|
166
166
|
|
167
167
|
void ec_GFp_simple_point_set_to_infinity(const EC_GROUP *group,
|
168
|
-
|
168
|
+
EC_JACOBIAN *point) {
|
169
169
|
// Although it is strictly only necessary to zero Z, we zero the entire point
|
170
170
|
// in case |point| was stack-allocated and yet to be initialized.
|
171
171
|
ec_GFp_simple_point_init(point);
|
172
172
|
}
|
173
173
|
|
174
|
-
void ec_GFp_simple_invert(const EC_GROUP *group,
|
174
|
+
void ec_GFp_simple_invert(const EC_GROUP *group, EC_JACOBIAN *point) {
|
175
175
|
ec_felem_neg(group, &point->Y, &point->Y);
|
176
176
|
}
|
177
177
|
|
178
178
|
int ec_GFp_simple_is_at_infinity(const EC_GROUP *group,
|
179
|
-
const
|
179
|
+
const EC_JACOBIAN *point) {
|
180
180
|
return ec_felem_non_zero_mask(group, &point->Z) == 0;
|
181
181
|
}
|
182
182
|
|
183
183
|
int ec_GFp_simple_is_on_curve(const EC_GROUP *group,
|
184
|
-
const
|
184
|
+
const EC_JACOBIAN *point) {
|
185
185
|
// We have a curve defined by a Weierstrass equation
|
186
186
|
// y^2 = x^3 + a*x + b.
|
187
187
|
// The point to consider is given in Jacobian projective coordinates
|
@@ -237,8 +237,8 @@ int ec_GFp_simple_is_on_curve(const EC_GROUP *group,
|
|
237
237
|
return 1 & ~(not_infinity & not_equal);
|
238
238
|
}
|
239
239
|
|
240
|
-
int ec_GFp_simple_points_equal(const EC_GROUP *group, const
|
241
|
-
const
|
240
|
+
int ec_GFp_simple_points_equal(const EC_GROUP *group, const EC_JACOBIAN *a,
|
241
|
+
const EC_JACOBIAN *b) {
|
242
242
|
// This function is implemented in constant-time for two reasons. First,
|
243
243
|
// although EC points are usually public, their Jacobian Z coordinates may be
|
244
244
|
// secret, or at least are not obviously public. Second, more complex
|
@@ -285,7 +285,7 @@ int ec_GFp_simple_points_equal(const EC_GROUP *group, const EC_RAW_POINT *a,
|
|
285
285
|
}
|
286
286
|
|
287
287
|
int ec_affine_jacobian_equal(const EC_GROUP *group, const EC_AFFINE *a,
|
288
|
-
const
|
288
|
+
const EC_JACOBIAN *b) {
|
289
289
|
// If |b| is not infinity, we have to decide whether
|
290
290
|
// (X_a, Y_a) = (X_b/Z_b^2, Y_b/Z_b^3),
|
291
291
|
// or equivalently, whether
|
@@ -314,7 +314,7 @@ int ec_affine_jacobian_equal(const EC_GROUP *group, const EC_AFFINE *a,
|
|
314
314
|
return equal & 1;
|
315
315
|
}
|
316
316
|
|
317
|
-
int ec_GFp_simple_cmp_x_coordinate(const EC_GROUP *group, const
|
317
|
+
int ec_GFp_simple_cmp_x_coordinate(const EC_GROUP *group, const EC_JACOBIAN *p,
|
318
318
|
const EC_SCALAR *r) {
|
319
319
|
if (ec_GFp_simple_is_at_infinity(group, p)) {
|
320
320
|
// |ec_get_x_coordinate_as_scalar| will check this internally, but this way
|
@@ -21,14 +21,14 @@
|
|
21
21
|
#include "../../internal.h"
|
22
22
|
|
23
23
|
|
24
|
-
void ec_GFp_mont_mul(const EC_GROUP *group,
|
25
|
-
const
|
24
|
+
void ec_GFp_mont_mul(const EC_GROUP *group, EC_JACOBIAN *r,
|
25
|
+
const EC_JACOBIAN *p, const EC_SCALAR *scalar) {
|
26
26
|
// This is a generic implementation for uncommon curves that not do not
|
27
27
|
// warrant a tuned one. It uses unsigned digits so that the doubling case in
|
28
28
|
// |ec_GFp_mont_add| is always unreachable, erring on safety and simplicity.
|
29
29
|
|
30
30
|
// Compute a table of the first 32 multiples of |p| (including infinity).
|
31
|
-
|
31
|
+
EC_JACOBIAN precomp[32];
|
32
32
|
ec_GFp_simple_point_set_to_infinity(group, &precomp[0]);
|
33
33
|
ec_GFp_simple_point_copy(&precomp[1], p);
|
34
34
|
for (size_t j = 2; j < OPENSSL_ARRAY_SIZE(precomp); j++) {
|
@@ -56,8 +56,8 @@ void ec_GFp_mont_mul(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
56
56
|
window |= bn_is_bit_set_words(scalar->words, width, i);
|
57
57
|
|
58
58
|
// Select the entry in constant-time.
|
59
|
-
|
60
|
-
OPENSSL_memset(&tmp, 0, sizeof(
|
59
|
+
EC_JACOBIAN tmp;
|
60
|
+
OPENSSL_memset(&tmp, 0, sizeof(EC_JACOBIAN));
|
61
61
|
for (size_t j = 0; j < OPENSSL_ARRAY_SIZE(precomp); j++) {
|
62
62
|
BN_ULONG mask = constant_time_eq_w(j, window);
|
63
63
|
ec_point_select(group, &tmp, mask, &precomp[j], &tmp);
|
@@ -76,13 +76,13 @@ void ec_GFp_mont_mul(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
76
76
|
}
|
77
77
|
}
|
78
78
|
|
79
|
-
void ec_GFp_mont_mul_base(const EC_GROUP *group,
|
79
|
+
void ec_GFp_mont_mul_base(const EC_GROUP *group, EC_JACOBIAN *r,
|
80
80
|
const EC_SCALAR *scalar) {
|
81
81
|
ec_GFp_mont_mul(group, r, &group->generator->raw, scalar);
|
82
82
|
}
|
83
83
|
|
84
|
-
static void ec_GFp_mont_batch_precomp(const EC_GROUP *group,
|
85
|
-
size_t num, const
|
84
|
+
static void ec_GFp_mont_batch_precomp(const EC_GROUP *group, EC_JACOBIAN *out,
|
85
|
+
size_t num, const EC_JACOBIAN *p) {
|
86
86
|
assert(num > 1);
|
87
87
|
ec_GFp_simple_point_set_to_infinity(group, &out[0]);
|
88
88
|
ec_GFp_simple_point_copy(&out[1], p);
|
@@ -96,8 +96,8 @@ static void ec_GFp_mont_batch_precomp(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
96
96
|
}
|
97
97
|
|
98
98
|
static void ec_GFp_mont_batch_get_window(const EC_GROUP *group,
|
99
|
-
|
100
|
-
const
|
99
|
+
EC_JACOBIAN *out,
|
100
|
+
const EC_JACOBIAN precomp[17],
|
101
101
|
const EC_SCALAR *scalar, unsigned i) {
|
102
102
|
const size_t width = group->order.width;
|
103
103
|
uint8_t window = bn_is_bit_set_words(scalar->words, width, i + 4) << 5;
|
@@ -112,7 +112,7 @@ static void ec_GFp_mont_batch_get_window(const EC_GROUP *group,
|
|
112
112
|
ec_GFp_nistp_recode_scalar_bits(&sign, &digit, window);
|
113
113
|
|
114
114
|
// Select the entry in constant-time.
|
115
|
-
OPENSSL_memset(out, 0, sizeof(
|
115
|
+
OPENSSL_memset(out, 0, sizeof(EC_JACOBIAN));
|
116
116
|
for (size_t j = 0; j < 17; j++) {
|
117
117
|
BN_ULONG mask = constant_time_eq_w(j, digit);
|
118
118
|
ec_point_select(group, out, mask, &precomp[j], out);
|
@@ -126,11 +126,11 @@ static void ec_GFp_mont_batch_get_window(const EC_GROUP *group,
|
|
126
126
|
ec_felem_select(group, &out->Y, sign_mask, &neg_Y, &out->Y);
|
127
127
|
}
|
128
128
|
|
129
|
-
void ec_GFp_mont_mul_batch(const EC_GROUP *group,
|
130
|
-
const
|
131
|
-
const
|
132
|
-
const
|
133
|
-
|
129
|
+
void ec_GFp_mont_mul_batch(const EC_GROUP *group, EC_JACOBIAN *r,
|
130
|
+
const EC_JACOBIAN *p0, const EC_SCALAR *scalar0,
|
131
|
+
const EC_JACOBIAN *p1, const EC_SCALAR *scalar1,
|
132
|
+
const EC_JACOBIAN *p2, const EC_SCALAR *scalar2) {
|
133
|
+
EC_JACOBIAN precomp[3][17];
|
134
134
|
ec_GFp_mont_batch_precomp(group, precomp[0], 17, p0);
|
135
135
|
ec_GFp_mont_batch_precomp(group, precomp[1], 17, p1);
|
136
136
|
if (p2 != NULL) {
|
@@ -145,7 +145,7 @@ void ec_GFp_mont_mul_batch(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
145
145
|
ec_GFp_mont_dbl(group, r, r);
|
146
146
|
}
|
147
147
|
if (i % 5 == 0) {
|
148
|
-
|
148
|
+
EC_JACOBIAN tmp;
|
149
149
|
ec_GFp_mont_batch_get_window(group, &tmp, precomp[0], scalar0, i);
|
150
150
|
if (r_is_at_infinity) {
|
151
151
|
ec_GFp_simple_point_copy(r, &tmp);
|
@@ -174,13 +174,13 @@ static unsigned ec_GFp_mont_comb_stride(const EC_GROUP *group) {
|
|
174
174
|
}
|
175
175
|
|
176
176
|
int ec_GFp_mont_init_precomp(const EC_GROUP *group, EC_PRECOMP *out,
|
177
|
-
const
|
177
|
+
const EC_JACOBIAN *p) {
|
178
178
|
// comb[i - 1] stores the ith element of the comb. That is, if i is
|
179
179
|
// b4 * 2^4 + b3 * 2^3 + ... + b0 * 2^0, it stores k * |p|, where k is
|
180
180
|
// b4 * 2^(4*stride) + b3 * 2^(3*stride) + ... + b0 * 2^(0*stride). stride
|
181
181
|
// here is |ec_GFp_mont_comb_stride|. We store at index i - 1 because the 0th
|
182
182
|
// comb entry is always infinity.
|
183
|
-
|
183
|
+
EC_JACOBIAN comb[(1 << EC_MONT_PRECOMP_COMB_SIZE) - 1];
|
184
184
|
unsigned stride = ec_GFp_mont_comb_stride(group);
|
185
185
|
|
186
186
|
// We compute the comb sequentially by the highest set bit. Initially, all
|
@@ -209,7 +209,7 @@ int ec_GFp_mont_init_precomp(const EC_GROUP *group, EC_PRECOMP *out,
|
|
209
209
|
}
|
210
210
|
|
211
211
|
static void ec_GFp_mont_get_comb_window(const EC_GROUP *group,
|
212
|
-
|
212
|
+
EC_JACOBIAN *out,
|
213
213
|
const EC_PRECOMP *precomp,
|
214
214
|
const EC_SCALAR *scalar, unsigned i) {
|
215
215
|
const size_t width = group->order.width;
|
@@ -223,7 +223,7 @@ static void ec_GFp_mont_get_comb_window(const EC_GROUP *group,
|
|
223
223
|
|
224
224
|
// Select precomp->comb[window - 1]. If |window| is zero, |match| will always
|
225
225
|
// be zero, which will leave |out| at infinity.
|
226
|
-
OPENSSL_memset(out, 0, sizeof(
|
226
|
+
OPENSSL_memset(out, 0, sizeof(EC_JACOBIAN));
|
227
227
|
for (unsigned j = 0; j < OPENSSL_ARRAY_SIZE(precomp->comb); j++) {
|
228
228
|
BN_ULONG match = constant_time_eq_w(window, j + 1);
|
229
229
|
ec_felem_select(group, &out->X, match, &precomp->comb[j].X, &out->X);
|
@@ -233,7 +233,7 @@ static void ec_GFp_mont_get_comb_window(const EC_GROUP *group,
|
|
233
233
|
ec_felem_select(group, &out->Z, is_infinity, &out->Z, &group->one);
|
234
234
|
}
|
235
235
|
|
236
|
-
void ec_GFp_mont_mul_precomp(const EC_GROUP *group,
|
236
|
+
void ec_GFp_mont_mul_precomp(const EC_GROUP *group, EC_JACOBIAN *r,
|
237
237
|
const EC_PRECOMP *p0, const EC_SCALAR *scalar0,
|
238
238
|
const EC_PRECOMP *p1, const EC_SCALAR *scalar1,
|
239
239
|
const EC_PRECOMP *p2, const EC_SCALAR *scalar2) {
|
@@ -244,7 +244,7 @@ void ec_GFp_mont_mul_precomp(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
244
244
|
ec_GFp_mont_dbl(group, r, r);
|
245
245
|
}
|
246
246
|
|
247
|
-
|
247
|
+
EC_JACOBIAN tmp;
|
248
248
|
ec_GFp_mont_get_comb_window(group, &tmp, p0, scalar0, i);
|
249
249
|
if (r_is_at_infinity) {
|
250
250
|
ec_GFp_simple_point_copy(r, &tmp);
|
@@ -148,18 +148,18 @@ void ec_compute_wNAF(const EC_GROUP *group, int8_t *out,
|
|
148
148
|
}
|
149
149
|
|
150
150
|
// compute_precomp sets |out[i]| to (2*i+1)*p, for i from 0 to |len|.
|
151
|
-
static void compute_precomp(const EC_GROUP *group,
|
152
|
-
const
|
151
|
+
static void compute_precomp(const EC_GROUP *group, EC_JACOBIAN *out,
|
152
|
+
const EC_JACOBIAN *p, size_t len) {
|
153
153
|
ec_GFp_simple_point_copy(&out[0], p);
|
154
|
-
|
154
|
+
EC_JACOBIAN two_p;
|
155
155
|
ec_GFp_mont_dbl(group, &two_p, p);
|
156
156
|
for (size_t i = 1; i < len; i++) {
|
157
157
|
ec_GFp_mont_add(group, &out[i], &out[i - 1], &two_p);
|
158
158
|
}
|
159
159
|
}
|
160
160
|
|
161
|
-
static void lookup_precomp(const EC_GROUP *group,
|
162
|
-
const
|
161
|
+
static void lookup_precomp(const EC_GROUP *group, EC_JACOBIAN *out,
|
162
|
+
const EC_JACOBIAN *precomp, int digit) {
|
163
163
|
if (digit < 0) {
|
164
164
|
digit = -digit;
|
165
165
|
ec_GFp_simple_point_copy(out, &precomp[digit >> 1]);
|
@@ -179,9 +179,9 @@ static void lookup_precomp(const EC_GROUP *group, EC_RAW_POINT *out,
|
|
179
179
|
// avoid a malloc.
|
180
180
|
#define EC_WNAF_STACK 3
|
181
181
|
|
182
|
-
int ec_GFp_mont_mul_public_batch(const EC_GROUP *group,
|
182
|
+
int ec_GFp_mont_mul_public_batch(const EC_GROUP *group, EC_JACOBIAN *r,
|
183
183
|
const EC_SCALAR *g_scalar,
|
184
|
-
const
|
184
|
+
const EC_JACOBIAN *points,
|
185
185
|
const EC_SCALAR *scalars, size_t num) {
|
186
186
|
size_t bits = BN_num_bits(&group->order);
|
187
187
|
size_t wNAF_len = bits + 1;
|
@@ -190,9 +190,9 @@ int ec_GFp_mont_mul_public_batch(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
190
190
|
int8_t wNAF_stack[EC_WNAF_STACK][EC_MAX_BYTES * 8 + 1];
|
191
191
|
int8_t (*wNAF_alloc)[EC_MAX_BYTES * 8 + 1] = NULL;
|
192
192
|
int8_t (*wNAF)[EC_MAX_BYTES * 8 + 1];
|
193
|
-
|
194
|
-
|
195
|
-
|
193
|
+
EC_JACOBIAN precomp_stack[EC_WNAF_STACK][EC_WNAF_TABLE_SIZE];
|
194
|
+
EC_JACOBIAN (*precomp_alloc)[EC_WNAF_TABLE_SIZE] = NULL;
|
195
|
+
EC_JACOBIAN (*precomp)[EC_WNAF_TABLE_SIZE];
|
196
196
|
if (num <= EC_WNAF_STACK) {
|
197
197
|
wNAF = wNAF_stack;
|
198
198
|
precomp = precomp_stack;
|
@@ -212,9 +212,9 @@ int ec_GFp_mont_mul_public_batch(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
212
212
|
}
|
213
213
|
|
214
214
|
int8_t g_wNAF[EC_MAX_BYTES * 8 + 1];
|
215
|
-
|
215
|
+
EC_JACOBIAN g_precomp[EC_WNAF_TABLE_SIZE];
|
216
216
|
assert(wNAF_len <= OPENSSL_ARRAY_SIZE(g_wNAF));
|
217
|
-
const
|
217
|
+
const EC_JACOBIAN *g = &group->generator->raw;
|
218
218
|
if (g_scalar != NULL) {
|
219
219
|
ec_compute_wNAF(group, g_wNAF, g_scalar, bits, EC_WNAF_WINDOW_BITS);
|
220
220
|
compute_precomp(group, g_precomp, g, EC_WNAF_TABLE_SIZE);
|
@@ -226,7 +226,7 @@ int ec_GFp_mont_mul_public_batch(const EC_GROUP *group, EC_RAW_POINT *r,
|
|
226
226
|
compute_precomp(group, precomp[i], &points[i], EC_WNAF_TABLE_SIZE);
|
227
227
|
}
|
228
228
|
|
229
|
-
|
229
|
+
EC_JACOBIAN tmp;
|
230
230
|
int r_is_at_infinity = 1;
|
231
231
|
for (size_t k = wNAF_len - 1; k < wNAF_len; k--) {
|
232
232
|
if (!r_is_at_infinity) {
|
@@ -94,7 +94,7 @@ int ECDH_compute_key_fips(uint8_t *out, size_t out_len, const EC_POINT *pub_key,
|
|
94
94
|
return 0;
|
95
95
|
}
|
96
96
|
|
97
|
-
|
97
|
+
EC_JACOBIAN shared_point;
|
98
98
|
uint8_t buf[EC_MAX_BYTES];
|
99
99
|
size_t buflen;
|
100
100
|
if (!ec_point_mul_scalar(group, &shared_point, &pub_key->raw, priv) ||
|
@@ -181,7 +181,7 @@ int ecdsa_do_verify_no_self_test(const uint8_t *digest, size_t digest_len,
|
|
181
181
|
ec_scalar_mul_montgomery(group, &u1, &m, &s_inv_mont);
|
182
182
|
ec_scalar_mul_montgomery(group, &u2, &r, &s_inv_mont);
|
183
183
|
|
184
|
-
|
184
|
+
EC_JACOBIAN point;
|
185
185
|
if (!ec_point_mul_scalar_public(group, &point, &u1, &pub_key->raw, &u2)) {
|
186
186
|
OPENSSL_PUT_ERROR(ECDSA, ERR_R_EC_LIB);
|
187
187
|
return 0;
|
@@ -216,7 +216,7 @@ static ECDSA_SIG *ecdsa_sign_impl(const EC_GROUP *group, int *out_retry,
|
|
216
216
|
}
|
217
217
|
|
218
218
|
// Compute r, the x-coordinate of k * generator.
|
219
|
-
|
219
|
+
EC_JACOBIAN tmp_point;
|
220
220
|
EC_SCALAR r;
|
221
221
|
if (!ec_point_mul_scalar_base(group, &tmp_point, k) ||
|
222
222
|
!ec_get_x_coordinate_as_scalar(group, &r, &tmp_point)) {
|
@@ -66,10 +66,7 @@ void CRYPTO_cbc128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
66
66
|
size_t n;
|
67
67
|
const uint8_t *iv = ivec;
|
68
68
|
while (len >= 16) {
|
69
|
-
|
70
|
-
CRYPTO_store_word_le(
|
71
|
-
out + n, CRYPTO_load_word_le(in + n) ^ CRYPTO_load_word_le(iv + n));
|
72
|
-
}
|
69
|
+
CRYPTO_xor16(out, in, iv);
|
73
70
|
(*block)(out, out, key);
|
74
71
|
iv = out;
|
75
72
|
len -= 16;
|
@@ -118,15 +115,10 @@ void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
118
115
|
if ((inptr >= 32 && outptr <= inptr - 32) || inptr < outptr) {
|
119
116
|
// If |out| is at least two blocks behind |in| or completely disjoint, there
|
120
117
|
// is no need to decrypt to a temporary block.
|
121
|
-
static_assert(16 % sizeof(crypto_word_t) == 0,
|
122
|
-
"block cannot be evenly divided into words");
|
123
118
|
const uint8_t *iv = ivec;
|
124
119
|
while (len >= 16) {
|
125
120
|
(*block)(in, out, key);
|
126
|
-
|
127
|
-
CRYPTO_store_word_le(out + n, CRYPTO_load_word_le(out + n) ^
|
128
|
-
CRYPTO_load_word_le(iv + n));
|
129
|
-
}
|
121
|
+
CRYPTO_xor16(out, out, iv);
|
130
122
|
iv = in;
|
131
123
|
len -= 16;
|
132
124
|
in += 16;
|
@@ -101,10 +101,7 @@ void CRYPTO_ctr128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
|
|
101
101
|
while (len >= 16) {
|
102
102
|
(*block)(ivec, ecount_buf, key);
|
103
103
|
ctr128_inc(ivec);
|
104
|
-
|
105
|
-
CRYPTO_store_word_le(out + n, CRYPTO_load_word_le(in + n) ^
|
106
|
-
CRYPTO_load_word_le(ecount_buf + n));
|
107
|
-
}
|
104
|
+
CRYPTO_xor16(out, in, ecount_buf);
|
108
105
|
len -= 16;
|
109
106
|
out += 16;
|
110
107
|
in += 16;
|