grpc 1.41.1 → 1.42.0.pre1
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 +55 -43
- data/include/grpc/event_engine/event_engine.h +82 -42
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
- data/include/grpc/event_engine/memory_allocator.h +210 -0
- data/include/grpc/grpc.h +4 -0
- data/include/grpc/grpc_security.h +18 -0
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +18 -19
- data/src/core/ext/filters/client_channel/backup_poller.cc +2 -1
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +71 -89
- data/src/core/ext/filters/client_channel/client_channel.cc +187 -252
- data/src/core/ext/filters/client_channel/client_channel.h +74 -27
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +8 -14
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +4 -5
- data/src/core/ext/filters/client_channel/connector.h +18 -18
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +1 -1
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -1
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +12 -11
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -15
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +166 -82
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -4
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -7
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -10
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +7 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +8 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +7 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +11 -1
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +11 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +12 -39
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +21 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +6 -2
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +77 -68
- data/src/core/ext/filters/client_channel/resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +1 -1
- data/src/core/ext/filters/client_channel/retry_filter.cc +48 -86
- data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +17 -48
- data/src/core/ext/filters/client_channel/server_address.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +49 -36
- data/src/core/ext/filters/client_channel/subchannel.cc +85 -143
- data/src/core/ext/filters/client_channel/subchannel.h +29 -49
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +27 -210
- data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +23 -26
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -19
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +41 -44
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -15
- data/src/core/ext/filters/http/http_filters_plugin.cc +53 -71
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +17 -12
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +72 -69
- data/src/core/ext/filters/max_age/max_age_filter.cc +24 -26
- data/src/core/ext/filters/message_size/message_size_filter.cc +19 -16
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +2 -2
- data/src/core/ext/{filters/client_channel → service_config}/service_config.h +4 -4
- data/src/core/ext/service_config/service_config_call_data.h +72 -0
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +3 -3
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +8 -6
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -5
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +19 -24
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +27 -50
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +14 -16
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +59 -58
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +19 -16
- data/src/core/ext/transport/chttp2/transport/flow_control.h +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +41 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +136 -98
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +27 -8
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -25
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +37 -30
- data/src/core/ext/transport/chttp2/transport/internal.h +4 -3
- data/src/core/ext/transport/chttp2/transport/parsing.cc +30 -173
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +1 -1
- data/src/core/ext/transport/chttp2/transport/writing.cc +29 -22
- data/src/core/ext/transport/inproc/inproc_transport.cc +105 -109
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +68 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +139 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +16 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +53 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +13 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +23 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +14 -11
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +17 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -12
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +49 -19
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +0 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
- data/src/core/ext/upb-generated/{udpa/type/v1 → xds/type/v3}/typed_struct.upb.c +7 -7
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +310 -286
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +101 -88
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +59 -56
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +59 -46
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +78 -82
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +323 -316
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +5 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +19 -23
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -3
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +5 -3
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +5 -4
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +13 -12
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +25 -24
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +16 -15
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +17 -16
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +33 -32
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +19 -18
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/xds_api.cc +325 -362
- data/src/core/ext/xds/xds_api.h +134 -82
- data/src/core/ext/xds/xds_bootstrap.h +10 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +3 -3
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
- data/src/core/ext/xds/xds_client.cc +527 -314
- data/src/core/ext/xds/xds_client.h +42 -37
- data/src/core/ext/xds/xds_client_stats.h +1 -1
- data/src/core/ext/xds/xds_server_config_fetcher.cc +5 -7
- data/src/core/lib/address_utils/parse_address.cc +2 -0
- data/src/core/lib/avl/avl.cc +5 -5
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/channel/channel_args.cc +24 -6
- data/src/core/lib/channel/channel_args.h +9 -0
- data/src/core/lib/channel/channel_stack_builder.cc +3 -3
- data/src/core/lib/channel/channel_trace.cc +1 -1
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +3 -3
- data/src/core/lib/channel/channelz.h +2 -2
- data/src/core/lib/channel/channelz_registry.cc +1 -1
- data/src/core/lib/channel/channelz_registry.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +1 -3
- data/src/core/lib/channel/connected_channel.h +1 -2
- data/src/core/lib/compression/compression.cc +2 -2
- data/src/core/lib/compression/compression_args.cc +6 -4
- data/src/core/lib/compression/compression_internal.cc +2 -2
- data/src/core/lib/compression/compression_internal.h +1 -1
- data/src/core/lib/config/core_configuration.cc +44 -2
- data/src/core/lib/config/core_configuration.h +39 -1
- data/src/core/lib/debug/stats.cc +1 -1
- data/src/core/lib/debug/stats_data.cc +13 -13
- data/src/core/lib/gpr/atm.cc +1 -1
- data/src/core/lib/gpr/cpu_posix.cc +1 -1
- data/src/core/lib/gpr/string.cc +2 -2
- data/src/core/lib/gpr/tls.h +1 -1
- data/src/core/lib/gpr/useful.h +79 -32
- data/src/core/lib/gprpp/arena.h +10 -0
- data/src/core/lib/gprpp/bitset.h +38 -16
- data/src/core/lib/gprpp/chunked_vector.h +211 -0
- data/src/core/lib/gprpp/construct_destruct.h +1 -1
- data/src/core/lib/gprpp/match.h +1 -1
- data/src/core/lib/gprpp/memory.h +6 -0
- data/src/core/lib/gprpp/overload.h +1 -1
- data/src/core/lib/gprpp/status_helper.cc +23 -3
- data/src/core/lib/gprpp/status_helper.h +12 -1
- data/src/core/lib/gprpp/table.h +411 -0
- data/src/core/lib/http/httpcli.cc +200 -182
- data/src/core/lib/http/parser.cc +2 -2
- data/src/core/lib/iomgr/call_combiner.cc +28 -10
- data/src/core/lib/iomgr/combiner.cc +6 -21
- data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -6
- data/src/core/lib/iomgr/error.cc +113 -52
- data/src/core/lib/iomgr/error.h +50 -9
- data/src/core/lib/iomgr/error_cfstream.cc +5 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -2
- data/src/core/lib/iomgr/ev_epollex_linux.cc +7 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +29 -20
- data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
- data/src/core/lib/iomgr/event_engine/closure.h +10 -1
- data/src/core/lib/iomgr/event_engine/endpoint.cc +3 -3
- data/src/core/lib/iomgr/event_engine/iomgr.cc +1 -1
- data/src/core/lib/iomgr/event_engine/pollset.cc +5 -4
- data/src/core/lib/iomgr/event_engine/resolver.cc +10 -7
- data/src/core/lib/iomgr/event_engine/tcp.cc +9 -8
- data/src/core/lib/iomgr/event_engine/timer.cc +7 -2
- data/src/core/lib/iomgr/exec_ctx.cc +1 -9
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +5 -7
- data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -8
- data/src/core/lib/iomgr/executor.cc +6 -20
- data/src/core/lib/iomgr/iomgr.cc +3 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +4 -9
- data/src/core/lib/iomgr/iomgr_internal.h +3 -2
- data/src/core/lib/iomgr/load_file.cc +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +18 -0
- data/src/core/lib/iomgr/pollset_custom.cc +1 -1
- data/src/core/lib/iomgr/pollset_custom.h +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +5 -7
- data/src/core/lib/iomgr/resource_quota.cc +13 -11
- data/src/core/lib/iomgr/socket_factory_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_mutator.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -3
- data/src/core/lib/iomgr/tcp_client_custom.cc +1 -1
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -18
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_posix.cc +4 -5
- data/src/core/lib/iomgr/tcp_server_custom.cc +2 -1
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_windows.cc +2 -2
- data/src/core/lib/iomgr/timer_generic.cc +13 -13
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/json/json_util.cc +68 -0
- data/src/core/lib/json/json_util.h +57 -99
- data/src/core/lib/json/json_writer.cc +0 -3
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +14 -12
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +13 -1
- data/src/core/lib/security/context/security_context.cc +4 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
- data/src/core/lib/security/credentials/credentials.cc +4 -2
- data/src/core/lib/security/credentials/credentials.h +6 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +47 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +1 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -9
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -2
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/security_connector.cc +9 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl_utils.cc +1 -1
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +0 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +5 -5
- data/src/core/lib/security/transport/security_handshaker.cc +73 -43
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -5
- data/src/core/lib/security/transport/tsi_error.cc +3 -5
- data/src/core/lib/slice/slice.cc +0 -16
- data/src/core/lib/slice/slice_api.cc +39 -0
- data/src/core/lib/slice/slice_buffer.cc +5 -5
- data/src/core/lib/slice/slice_intern.cc +8 -13
- data/src/core/lib/slice/slice_internal.h +1 -244
- data/src/core/lib/slice/slice_refcount.cc +17 -0
- data/src/core/lib/slice/slice_refcount.h +121 -0
- data/src/core/lib/slice/slice_refcount_base.h +173 -0
- data/src/core/lib/slice/slice_split.cc +100 -0
- data/src/core/lib/slice/slice_split.h +40 -0
- data/src/core/lib/slice/slice_string_helpers.cc +0 -83
- data/src/core/lib/slice/slice_string_helpers.h +0 -11
- data/src/core/lib/slice/static_slice.cc +529 -0
- data/src/core/lib/slice/static_slice.h +331 -0
- data/src/core/lib/surface/builtins.cc +49 -0
- data/src/core/{ext/filters/workarounds/workaround_cronet_compression_filter.h → lib/surface/builtins.h} +8 -9
- data/src/core/lib/surface/call.cc +103 -120
- data/src/core/lib/surface/call.h +0 -6
- data/src/core/lib/surface/channel.cc +19 -32
- data/src/core/lib/surface/channel.h +0 -9
- data/src/core/lib/surface/channel_init.cc +23 -76
- data/src/core/lib/surface/channel_init.h +52 -44
- data/src/core/lib/surface/completion_queue.cc +6 -5
- data/src/core/lib/surface/init.cc +0 -39
- data/src/core/lib/surface/init_secure.cc +17 -14
- data/src/core/lib/surface/lame_client.cc +18 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +25 -17
- data/src/core/lib/surface/server.h +17 -10
- data/src/core/lib/surface/validate_metadata.cc +5 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +42 -17
- data/src/core/lib/transport/error_utils.h +1 -1
- data/src/core/lib/transport/metadata.cc +31 -10
- data/src/core/lib/transport/metadata.h +2 -1
- data/src/core/lib/transport/metadata_batch.cc +35 -371
- data/src/core/lib/transport/metadata_batch.h +905 -71
- data/src/core/lib/transport/parsed_metadata.h +263 -0
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/static_metadata.cc +714 -846
- data/src/core/lib/transport/static_metadata.h +115 -379
- data/src/core/lib/transport/status_metadata.cc +1 -0
- data/src/core/lib/transport/transport.cc +4 -5
- data/src/core/lib/transport/transport_op_string.cc +40 -20
- data/src/core/plugin_registry/grpc_plugin_registry.cc +64 -43
- data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -1
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
- data/src/core/tsi/fake_transport_security.cc +15 -7
- data/src/core/tsi/local_transport_security.cc +36 -73
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -50
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -3
- data/src/core/tsi/ssl_transport_security.cc +10 -2
- data/src/core/tsi/transport_security.cc +12 -0
- data/src/core/tsi/transport_security.h +16 -1
- data/src/core/tsi/transport_security_interface.h +26 -0
- data/src/ruby/ext/grpc/extconf.rb +12 -9
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +11 -6
- data/third_party/address_sorting/address_sorting_posix.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +20 -21
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +104 -114
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +72 -45
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +479 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -564
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +0 -1
- data/third_party/re2/re2/compile.cc +91 -109
- data/third_party/re2/re2/dfa.cc +27 -39
- data/third_party/re2/re2/filtered_re2.cc +18 -2
- data/third_party/re2/re2/filtered_re2.h +10 -5
- data/third_party/re2/re2/nfa.cc +1 -1
- data/third_party/re2/re2/parse.cc +42 -23
- data/third_party/re2/re2/perl_groups.cc +34 -34
- data/third_party/re2/re2/prefilter.cc +3 -2
- data/third_party/re2/re2/prog.cc +182 -4
- data/third_party/re2/re2/prog.h +28 -9
- data/third_party/re2/re2/re2.cc +87 -118
- data/third_party/re2/re2/re2.h +156 -141
- data/third_party/re2/re2/regexp.cc +12 -5
- data/third_party/re2/re2/regexp.h +8 -2
- data/third_party/re2/re2/set.cc +31 -9
- data/third_party/re2/re2/set.h +9 -4
- data/third_party/re2/re2/simplify.cc +11 -3
- data/third_party/re2/re2/tostring.cc +1 -1
- data/third_party/re2/re2/walker-inl.h +1 -1
- data/third_party/re2/util/mutex.h +2 -2
- data/third_party/re2/util/pcre.h +3 -3
- metadata +78 -66
- data/include/grpc/event_engine/slice_allocator.h +0 -71
- data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
- data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
- data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
- data/src/core/ext/transport/chttp2/client/authority.h +0 -36
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -67
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -130
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -83
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
- data/src/core/lib/iomgr/udp_server.cc +0 -747
- data/src/core/lib/iomgr/udp_server.h +0 -103
- data/src/core/lib/transport/authority_override.cc +0 -40
- data/src/core/lib/transport/authority_override.h +0 -37
@@ -32,8 +32,6 @@ typedef struct { uint32_t words[16]; } block_t;
|
|
32
32
|
|
33
33
|
OPENSSL_STATIC_ASSERT(sizeof(block_t) == 64, "block_t has padding");
|
34
34
|
|
35
|
-
#define R(a, b) (((a) << (b)) | ((a) >> (32 - (b))))
|
36
|
-
|
37
35
|
// salsa208_word_specification implements the Salsa20/8 core function, also
|
38
36
|
// described in RFC 7914, section 3. It modifies the block at |inout|
|
39
37
|
// in-place.
|
@@ -42,38 +40,38 @@ static void salsa208_word_specification(block_t *inout) {
|
|
42
40
|
OPENSSL_memcpy(&x, inout, sizeof(x));
|
43
41
|
|
44
42
|
for (int i = 8; i > 0; i -= 2) {
|
45
|
-
x.words[4] ^=
|
46
|
-
x.words[8] ^=
|
47
|
-
x.words[12] ^=
|
48
|
-
x.words[0] ^=
|
49
|
-
x.words[9] ^=
|
50
|
-
x.words[13] ^=
|
51
|
-
x.words[1] ^=
|
52
|
-
x.words[5] ^=
|
53
|
-
x.words[14] ^=
|
54
|
-
x.words[2] ^=
|
55
|
-
x.words[6] ^=
|
56
|
-
x.words[10] ^=
|
57
|
-
x.words[3] ^=
|
58
|
-
x.words[7] ^=
|
59
|
-
x.words[11] ^=
|
60
|
-
x.words[15] ^=
|
61
|
-
x.words[1] ^=
|
62
|
-
x.words[2] ^=
|
63
|
-
x.words[3] ^=
|
64
|
-
x.words[0] ^=
|
65
|
-
x.words[6] ^=
|
66
|
-
x.words[7] ^=
|
67
|
-
x.words[4] ^=
|
68
|
-
x.words[5] ^=
|
69
|
-
x.words[11] ^=
|
70
|
-
x.words[8] ^=
|
71
|
-
x.words[9] ^=
|
72
|
-
x.words[10] ^=
|
73
|
-
x.words[12] ^=
|
74
|
-
x.words[13] ^=
|
75
|
-
x.words[14] ^=
|
76
|
-
x.words[15] ^=
|
43
|
+
x.words[4] ^= CRYPTO_rotl_u32(x.words[0] + x.words[12], 7);
|
44
|
+
x.words[8] ^= CRYPTO_rotl_u32(x.words[4] + x.words[0], 9);
|
45
|
+
x.words[12] ^= CRYPTO_rotl_u32(x.words[8] + x.words[4], 13);
|
46
|
+
x.words[0] ^= CRYPTO_rotl_u32(x.words[12] + x.words[8], 18);
|
47
|
+
x.words[9] ^= CRYPTO_rotl_u32(x.words[5] + x.words[1], 7);
|
48
|
+
x.words[13] ^= CRYPTO_rotl_u32(x.words[9] + x.words[5], 9);
|
49
|
+
x.words[1] ^= CRYPTO_rotl_u32(x.words[13] + x.words[9], 13);
|
50
|
+
x.words[5] ^= CRYPTO_rotl_u32(x.words[1] + x.words[13], 18);
|
51
|
+
x.words[14] ^= CRYPTO_rotl_u32(x.words[10] + x.words[6], 7);
|
52
|
+
x.words[2] ^= CRYPTO_rotl_u32(x.words[14] + x.words[10], 9);
|
53
|
+
x.words[6] ^= CRYPTO_rotl_u32(x.words[2] + x.words[14], 13);
|
54
|
+
x.words[10] ^= CRYPTO_rotl_u32(x.words[6] + x.words[2], 18);
|
55
|
+
x.words[3] ^= CRYPTO_rotl_u32(x.words[15] + x.words[11], 7);
|
56
|
+
x.words[7] ^= CRYPTO_rotl_u32(x.words[3] + x.words[15], 9);
|
57
|
+
x.words[11] ^= CRYPTO_rotl_u32(x.words[7] + x.words[3], 13);
|
58
|
+
x.words[15] ^= CRYPTO_rotl_u32(x.words[11] + x.words[7], 18);
|
59
|
+
x.words[1] ^= CRYPTO_rotl_u32(x.words[0] + x.words[3], 7);
|
60
|
+
x.words[2] ^= CRYPTO_rotl_u32(x.words[1] + x.words[0], 9);
|
61
|
+
x.words[3] ^= CRYPTO_rotl_u32(x.words[2] + x.words[1], 13);
|
62
|
+
x.words[0] ^= CRYPTO_rotl_u32(x.words[3] + x.words[2], 18);
|
63
|
+
x.words[6] ^= CRYPTO_rotl_u32(x.words[5] + x.words[4], 7);
|
64
|
+
x.words[7] ^= CRYPTO_rotl_u32(x.words[6] + x.words[5], 9);
|
65
|
+
x.words[4] ^= CRYPTO_rotl_u32(x.words[7] + x.words[6], 13);
|
66
|
+
x.words[5] ^= CRYPTO_rotl_u32(x.words[4] + x.words[7], 18);
|
67
|
+
x.words[11] ^= CRYPTO_rotl_u32(x.words[10] + x.words[9], 7);
|
68
|
+
x.words[8] ^= CRYPTO_rotl_u32(x.words[11] + x.words[10], 9);
|
69
|
+
x.words[9] ^= CRYPTO_rotl_u32(x.words[8] + x.words[11], 13);
|
70
|
+
x.words[10] ^= CRYPTO_rotl_u32(x.words[9] + x.words[8], 18);
|
71
|
+
x.words[12] ^= CRYPTO_rotl_u32(x.words[15] + x.words[14], 7);
|
72
|
+
x.words[13] ^= CRYPTO_rotl_u32(x.words[12] + x.words[15], 9);
|
73
|
+
x.words[14] ^= CRYPTO_rotl_u32(x.words[13] + x.words[12], 13);
|
74
|
+
x.words[15] ^= CRYPTO_rotl_u32(x.words[14] + x.words[13], 18);
|
77
75
|
}
|
78
76
|
|
79
77
|
for (int i = 0; i < 16; ++i) {
|
@@ -75,10 +75,8 @@ BIGNUM *BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) {
|
|
75
75
|
if (ret == NULL) {
|
76
76
|
ret = BN_new();
|
77
77
|
}
|
78
|
-
if (ret == NULL
|
79
|
-
|
80
|
-
}
|
81
|
-
if (!BN_set_word(ret, BN_is_bit_set(a, 0))) {
|
78
|
+
if (ret == NULL ||
|
79
|
+
!BN_set_word(ret, BN_is_bit_set(a, 0))) {
|
82
80
|
if (ret != in) {
|
83
81
|
BN_free(ret);
|
84
82
|
}
|
@@ -88,17 +86,15 @@ BIGNUM *BN_mod_sqrt(BIGNUM *in, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx) {
|
|
88
86
|
}
|
89
87
|
|
90
88
|
OPENSSL_PUT_ERROR(BN, BN_R_P_IS_NOT_PRIME);
|
91
|
-
return
|
89
|
+
return NULL;
|
92
90
|
}
|
93
91
|
|
94
92
|
if (BN_is_zero(a) || BN_is_one(a)) {
|
95
93
|
if (ret == NULL) {
|
96
94
|
ret = BN_new();
|
97
95
|
}
|
98
|
-
if (ret == NULL
|
99
|
-
|
100
|
-
}
|
101
|
-
if (!BN_set_word(ret, BN_is_one(a))) {
|
96
|
+
if (ret == NULL ||
|
97
|
+
!BN_set_word(ret, BN_is_one(a))) {
|
102
98
|
if (ret != in) {
|
103
99
|
BN_free(ret);
|
104
100
|
}
|
@@ -342,10 +342,10 @@ void DES_set_key(const DES_cblock *key, DES_key_schedule *schedule) {
|
|
342
342
|
|
343
343
|
// table contained 0213 4657
|
344
344
|
t2 = ((t << 16L) | (s & 0x0000ffffL)) & 0xffffffffL;
|
345
|
-
schedule->subkeys[i][0] =
|
345
|
+
schedule->subkeys[i][0] = CRYPTO_rotr_u32(t2, 30);
|
346
346
|
|
347
347
|
t2 = ((s >> 16L) | (t & 0xffff0000L));
|
348
|
-
schedule->subkeys[i][1] =
|
348
|
+
schedule->subkeys[i][1] = CRYPTO_rotr_u32(t2, 26);
|
349
349
|
}
|
350
350
|
}
|
351
351
|
|
@@ -392,8 +392,8 @@ static void DES_encrypt1(uint32_t *data, const DES_key_schedule *ks, int enc) {
|
|
392
392
|
// <71755.204@CompuServe.COM> for pointing this out.
|
393
393
|
// clear the top bits on machines with 8byte longs
|
394
394
|
// shift left by 2
|
395
|
-
r =
|
396
|
-
l =
|
395
|
+
r = CRYPTO_rotr_u32(r, 29);
|
396
|
+
l = CRYPTO_rotr_u32(l, 29);
|
397
397
|
|
398
398
|
// I don't know if it is worth the effort of loop unrolling the
|
399
399
|
// inner loop
|
@@ -434,8 +434,8 @@ static void DES_encrypt1(uint32_t *data, const DES_key_schedule *ks, int enc) {
|
|
434
434
|
}
|
435
435
|
|
436
436
|
// rotate and clear the top bits on machines with 8byte longs
|
437
|
-
l =
|
438
|
-
r =
|
437
|
+
l = CRYPTO_rotr_u32(l, 3);
|
438
|
+
r = CRYPTO_rotr_u32(r, 3);
|
439
439
|
|
440
440
|
FP(r, l);
|
441
441
|
data[0] = l;
|
@@ -454,8 +454,8 @@ static void DES_encrypt2(uint32_t *data, const DES_key_schedule *ks, int enc) {
|
|
454
454
|
// sparc2. Thanks to Richard Outerbridge <71755.204@CompuServe.COM> for
|
455
455
|
// pointing this out.
|
456
456
|
// clear the top bits on machines with 8byte longs
|
457
|
-
r =
|
458
|
-
l =
|
457
|
+
r = CRYPTO_rotr_u32(r, 29);
|
458
|
+
l = CRYPTO_rotr_u32(l, 29);
|
459
459
|
|
460
460
|
// I don't know if it is worth the effort of loop unrolling the
|
461
461
|
// inner loop
|
@@ -495,8 +495,8 @@ static void DES_encrypt2(uint32_t *data, const DES_key_schedule *ks, int enc) {
|
|
495
495
|
D_ENCRYPT(ks, r, l, 0);
|
496
496
|
}
|
497
497
|
// rotate and clear the top bits on machines with 8byte longs
|
498
|
-
data[0] =
|
499
|
-
data[1] =
|
498
|
+
data[0] = CRYPTO_rotr_u32(l, 3);
|
499
|
+
data[1] = CRYPTO_rotr_u32(r, 3);
|
500
500
|
}
|
501
501
|
|
502
502
|
void DES_encrypt3(uint32_t *data, const DES_key_schedule *ks1,
|
@@ -782,4 +782,3 @@ void DES_set_key_unchecked(const DES_cblock *key, DES_key_schedule *schedule) {
|
|
782
782
|
#undef D_ENCRYPT
|
783
783
|
#undef ITERATIONS
|
784
784
|
#undef HALF_ITERATIONS
|
785
|
-
#undef ROTATE
|
@@ -218,7 +218,7 @@ how to use xors :-) I got it to its final state.
|
|
218
218
|
#define D_ENCRYPT(ks, LL, R, S) \
|
219
219
|
do { \
|
220
220
|
LOAD_DATA(ks, R, S, u, t, E0, E1); \
|
221
|
-
t =
|
221
|
+
t = CRYPTO_rotr_u32(t, 4); \
|
222
222
|
(LL) ^= \
|
223
223
|
DES_SPtrans[0][(u >> 2L) & 0x3f] ^ DES_SPtrans[2][(u >> 10L) & 0x3f] ^ \
|
224
224
|
DES_SPtrans[4][(u >> 18L) & 0x3f] ^ \
|
@@ -230,8 +230,6 @@ how to use xors :-) I got it to its final state.
|
|
230
230
|
#define ITERATIONS 16
|
231
231
|
#define HALF_ITERATIONS 8
|
232
232
|
|
233
|
-
#define ROTATE(a, n) (((a) >> (n)) + ((a) << (32 - (n))))
|
234
|
-
|
235
233
|
|
236
234
|
#if defined(__cplusplus)
|
237
235
|
} // extern C
|
@@ -113,24 +113,22 @@ int MD4_Final(uint8_t out[MD4_DIGEST_LENGTH], MD4_CTX *c) {
|
|
113
113
|
#define G(b, c, d) (((b) & (c)) | ((b) & (d)) | ((c) & (d)))
|
114
114
|
#define H(b, c, d) ((b) ^ (c) ^ (d))
|
115
115
|
|
116
|
-
#define ROTATE(a, n) (((a) << (n)) | ((a) >> (32 - (n))))
|
117
|
-
|
118
116
|
#define R0(a, b, c, d, k, s, t) \
|
119
117
|
do { \
|
120
118
|
(a) += ((k) + (t) + F((b), (c), (d))); \
|
121
|
-
(a) =
|
119
|
+
(a) = CRYPTO_rotl_u32(a, s); \
|
122
120
|
} while (0)
|
123
121
|
|
124
122
|
#define R1(a, b, c, d, k, s, t) \
|
125
123
|
do { \
|
126
124
|
(a) += ((k) + (t) + G((b), (c), (d))); \
|
127
|
-
(a) =
|
125
|
+
(a) = CRYPTO_rotl_u32(a, s); \
|
128
126
|
} while (0)
|
129
127
|
|
130
128
|
#define R2(a, b, c, d, k, s, t) \
|
131
129
|
do { \
|
132
130
|
(a) += ((k) + (t) + H((b), (c), (d))); \
|
133
|
-
(a) =
|
131
|
+
(a) = CRYPTO_rotl_u32(a, s); \
|
134
132
|
} while (0)
|
135
133
|
|
136
134
|
void md4_block_data_order(uint32_t *state, const uint8_t *data, size_t num) {
|
@@ -237,7 +235,6 @@ void md4_block_data_order(uint32_t *state, const uint8_t *data, size_t num) {
|
|
237
235
|
#undef F
|
238
236
|
#undef G
|
239
237
|
#undef H
|
240
|
-
#undef ROTATE
|
241
238
|
#undef R0
|
242
239
|
#undef R1
|
243
240
|
#undef R2
|
@@ -119,33 +119,31 @@ int MD5_Final(uint8_t out[MD5_DIGEST_LENGTH], MD5_CTX *c) {
|
|
119
119
|
#define H(b, c, d) ((b) ^ (c) ^ (d))
|
120
120
|
#define I(b, c, d) (((~(d)) | (b)) ^ (c))
|
121
121
|
|
122
|
-
#define ROTATE(a, n) (((a) << (n)) | ((a) >> (32 - (n))))
|
123
|
-
|
124
122
|
#define R0(a, b, c, d, k, s, t) \
|
125
123
|
do { \
|
126
124
|
(a) += ((k) + (t) + F((b), (c), (d))); \
|
127
|
-
(a) =
|
125
|
+
(a) = CRYPTO_rotl_u32(a, s); \
|
128
126
|
(a) += (b); \
|
129
127
|
} while (0)
|
130
128
|
|
131
129
|
#define R1(a, b, c, d, k, s, t) \
|
132
130
|
do { \
|
133
131
|
(a) += ((k) + (t) + G((b), (c), (d))); \
|
134
|
-
(a) =
|
132
|
+
(a) = CRYPTO_rotl_u32(a, s); \
|
135
133
|
(a) += (b); \
|
136
134
|
} while (0)
|
137
135
|
|
138
136
|
#define R2(a, b, c, d, k, s, t) \
|
139
137
|
do { \
|
140
138
|
(a) += ((k) + (t) + H((b), (c), (d))); \
|
141
|
-
(a) =
|
139
|
+
(a) = CRYPTO_rotl_u32(a, s); \
|
142
140
|
(a) += (b); \
|
143
141
|
} while (0)
|
144
142
|
|
145
143
|
#define R3(a, b, c, d, k, s, t) \
|
146
144
|
do { \
|
147
145
|
(a) += ((k) + (t) + I((b), (c), (d))); \
|
148
|
-
(a) =
|
146
|
+
(a) = CRYPTO_rotl_u32(a, s); \
|
149
147
|
(a) += (b); \
|
150
148
|
} while (0)
|
151
149
|
|
@@ -280,7 +278,6 @@ static void md5_block_data_order(uint32_t *state, const uint8_t *data,
|
|
280
278
|
#undef G
|
281
279
|
#undef H
|
282
280
|
#undef I
|
283
|
-
#undef ROTATE
|
284
281
|
#undef R0
|
285
282
|
#undef R1
|
286
283
|
#undef R2
|
@@ -111,11 +111,10 @@ int SHA1_Final(uint8_t out[SHA_DIGEST_LENGTH], SHA_CTX *c) {
|
|
111
111
|
return 1;
|
112
112
|
}
|
113
113
|
|
114
|
-
#define
|
115
|
-
|
116
|
-
|
117
|
-
(
|
118
|
-
(ix) = (a) = ROTATE((a), 1); \
|
114
|
+
#define Xupdate(a, ix, ia, ib, ic, id) \
|
115
|
+
do { \
|
116
|
+
(a) = ((ia) ^ (ib) ^ (ic) ^ (id)); \
|
117
|
+
(ix) = (a) = CRYPTO_rotl_u32((a), 1); \
|
119
118
|
} while (0)
|
120
119
|
|
121
120
|
#define K_00_19 0x5a827999UL
|
@@ -133,45 +132,47 @@ int SHA1_Final(uint8_t out[SHA_DIGEST_LENGTH], SHA_CTX *c) {
|
|
133
132
|
#define F_40_59(b, c, d) (((b) & (c)) | (((b) | (c)) & (d)))
|
134
133
|
#define F_60_79(b, c, d) F_20_39(b, c, d)
|
135
134
|
|
136
|
-
#define BODY_00_15(i, a, b, c, d, e, f, xi)
|
137
|
-
do {
|
138
|
-
(f) = (xi) + (e) + K_00_19 +
|
139
|
-
|
135
|
+
#define BODY_00_15(i, a, b, c, d, e, f, xi) \
|
136
|
+
do { \
|
137
|
+
(f) = (xi) + (e) + K_00_19 + CRYPTO_rotl_u32((a), 5) + \
|
138
|
+
F_00_19((b), (c), (d)); \
|
139
|
+
(b) = CRYPTO_rotl_u32((b), 30); \
|
140
140
|
} while (0)
|
141
141
|
|
142
|
-
#define BODY_16_19(i, a, b, c, d, e, f, xi, xa, xb, xc, xd)
|
143
|
-
do {
|
144
|
-
Xupdate(f, xi, xa, xb, xc, xd);
|
145
|
-
(f) += (e) + K_00_19 +
|
146
|
-
(b) =
|
142
|
+
#define BODY_16_19(i, a, b, c, d, e, f, xi, xa, xb, xc, xd) \
|
143
|
+
do { \
|
144
|
+
Xupdate(f, xi, xa, xb, xc, xd); \
|
145
|
+
(f) += (e) + K_00_19 + CRYPTO_rotl_u32((a), 5) + F_00_19((b), (c), (d)); \
|
146
|
+
(b) = CRYPTO_rotl_u32((b), 30); \
|
147
147
|
} while (0)
|
148
148
|
|
149
|
-
#define BODY_20_31(i, a, b, c, d, e, f, xi, xa, xb, xc, xd)
|
150
|
-
do {
|
151
|
-
Xupdate(f, xi, xa, xb, xc, xd);
|
152
|
-
(f) += (e) + K_20_39 +
|
153
|
-
(b) =
|
149
|
+
#define BODY_20_31(i, a, b, c, d, e, f, xi, xa, xb, xc, xd) \
|
150
|
+
do { \
|
151
|
+
Xupdate(f, xi, xa, xb, xc, xd); \
|
152
|
+
(f) += (e) + K_20_39 + CRYPTO_rotl_u32((a), 5) + F_20_39((b), (c), (d)); \
|
153
|
+
(b) = CRYPTO_rotl_u32((b), 30); \
|
154
154
|
} while (0)
|
155
155
|
|
156
|
-
#define BODY_32_39(i, a, b, c, d, e, f, xa, xb, xc, xd)
|
157
|
-
do {
|
158
|
-
Xupdate(f, xa, xa, xb, xc, xd);
|
159
|
-
(f) += (e) + K_20_39 +
|
160
|
-
(b) =
|
156
|
+
#define BODY_32_39(i, a, b, c, d, e, f, xa, xb, xc, xd) \
|
157
|
+
do { \
|
158
|
+
Xupdate(f, xa, xa, xb, xc, xd); \
|
159
|
+
(f) += (e) + K_20_39 + CRYPTO_rotl_u32((a), 5) + F_20_39((b), (c), (d)); \
|
160
|
+
(b) = CRYPTO_rotl_u32((b), 30); \
|
161
161
|
} while (0)
|
162
162
|
|
163
|
-
#define BODY_40_59(i, a, b, c, d, e, f, xa, xb, xc, xd)
|
164
|
-
do {
|
165
|
-
Xupdate(f, xa, xa, xb, xc, xd);
|
166
|
-
(f) += (e) + K_40_59 +
|
167
|
-
(b) =
|
163
|
+
#define BODY_40_59(i, a, b, c, d, e, f, xa, xb, xc, xd) \
|
164
|
+
do { \
|
165
|
+
Xupdate(f, xa, xa, xb, xc, xd); \
|
166
|
+
(f) += (e) + K_40_59 + CRYPTO_rotl_u32((a), 5) + F_40_59((b), (c), (d)); \
|
167
|
+
(b) = CRYPTO_rotl_u32((b), 30); \
|
168
168
|
} while (0)
|
169
169
|
|
170
|
-
#define BODY_60_79(i, a, b, c, d, e, f, xa, xb, xc, xd)
|
171
|
-
do {
|
172
|
-
Xupdate(f, xa, xa, xb, xc, xd);
|
173
|
-
(f) = (xa) + (e) + K_60_79 +
|
174
|
-
|
170
|
+
#define BODY_60_79(i, a, b, c, d, e, f, xa, xb, xc, xd) \
|
171
|
+
do { \
|
172
|
+
Xupdate(f, xa, xa, xb, xc, xd); \
|
173
|
+
(f) = (xa) + (e) + K_60_79 + CRYPTO_rotl_u32((a), 5) + \
|
174
|
+
F_60_79((b), (c), (d)); \
|
175
|
+
(b) = CRYPTO_rotl_u32((b), 30); \
|
175
176
|
} while (0)
|
176
177
|
|
177
178
|
#ifdef X
|
@@ -338,7 +339,6 @@ static void sha1_block_data_order(uint32_t *state, const uint8_t *data,
|
|
338
339
|
}
|
339
340
|
#endif
|
340
341
|
|
341
|
-
#undef ROTATE
|
342
342
|
#undef Xupdate
|
343
343
|
#undef K_00_19
|
344
344
|
#undef K_20_39
|
@@ -184,15 +184,17 @@ static const uint32_t K256[64] = {
|
|
184
184
|
0x682e6ff3UL, 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL,
|
185
185
|
0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL};
|
186
186
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
#define sigma0(x)
|
195
|
-
|
187
|
+
// See FIPS 180-4, section 4.1.2.
|
188
|
+
#define Sigma0(x) \
|
189
|
+
(CRYPTO_rotr_u32((x), 2) ^ CRYPTO_rotr_u32((x), 13) ^ \
|
190
|
+
CRYPTO_rotr_u32((x), 22))
|
191
|
+
#define Sigma1(x) \
|
192
|
+
(CRYPTO_rotr_u32((x), 6) ^ CRYPTO_rotr_u32((x), 11) ^ \
|
193
|
+
CRYPTO_rotr_u32((x), 25))
|
194
|
+
#define sigma0(x) \
|
195
|
+
(CRYPTO_rotr_u32((x), 7) ^ CRYPTO_rotr_u32((x), 18) ^ ((x) >> 3))
|
196
|
+
#define sigma1(x) \
|
197
|
+
(CRYPTO_rotr_u32((x), 17) ^ CRYPTO_rotr_u32((x), 19) ^ ((x) >> 10))
|
196
198
|
|
197
199
|
#define Ch(x, y, z) (((x) & (y)) ^ ((~(x)) & (z)))
|
198
200
|
#define Maj(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
|
@@ -309,7 +311,6 @@ void SHA256_TransformBlocks(uint32_t state[8], const uint8_t *data,
|
|
309
311
|
sha256_block_data_order(state, data, num_blocks);
|
310
312
|
}
|
311
313
|
|
312
|
-
#undef ROTATE
|
313
314
|
#undef Sigma0
|
314
315
|
#undef Sigma1
|
315
316
|
#undef sigma0
|
@@ -321,42 +321,16 @@ static const uint64_t K512[80] = {
|
|
321
321
|
UINT64_C(0x5fcb6fab3ad6faec), UINT64_C(0x6c44198c4a475817),
|
322
322
|
};
|
323
323
|
|
324
|
-
#
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
#
|
333
|
-
|
334
|
-
({ \
|
335
|
-
uint64_t ret; \
|
336
|
-
__asm__("rotrdi %0, %1, %2" : "=r"(ret) : "r"(a), "K"(n)); \
|
337
|
-
ret; \
|
338
|
-
})
|
339
|
-
#elif defined(__aarch64__)
|
340
|
-
#define ROTR(a, n) \
|
341
|
-
({ \
|
342
|
-
uint64_t ret; \
|
343
|
-
__asm__("ror %0, %1, %2" : "=r"(ret) : "r"(a), "I"(n)); \
|
344
|
-
ret; \
|
345
|
-
})
|
346
|
-
#endif
|
347
|
-
#elif defined(_MSC_VER) && defined(_WIN64)
|
348
|
-
#pragma intrinsic(_rotr64)
|
349
|
-
#define ROTR(a, n) _rotr64((a), n)
|
350
|
-
#endif
|
351
|
-
|
352
|
-
#ifndef ROTR
|
353
|
-
#define ROTR(x, s) (((x) >> s) | (x) << (64 - s))
|
354
|
-
#endif
|
355
|
-
|
356
|
-
#define Sigma0(x) (ROTR((x), 28) ^ ROTR((x), 34) ^ ROTR((x), 39))
|
357
|
-
#define Sigma1(x) (ROTR((x), 14) ^ ROTR((x), 18) ^ ROTR((x), 41))
|
358
|
-
#define sigma0(x) (ROTR((x), 1) ^ ROTR((x), 8) ^ ((x) >> 7))
|
359
|
-
#define sigma1(x) (ROTR((x), 19) ^ ROTR((x), 61) ^ ((x) >> 6))
|
324
|
+
#define Sigma0(x) \
|
325
|
+
(CRYPTO_rotr_u64((x), 28) ^ CRYPTO_rotr_u64((x), 34) ^ \
|
326
|
+
CRYPTO_rotr_u64((x), 39))
|
327
|
+
#define Sigma1(x) \
|
328
|
+
(CRYPTO_rotr_u64((x), 14) ^ CRYPTO_rotr_u64((x), 18) ^ \
|
329
|
+
CRYPTO_rotr_u64((x), 41))
|
330
|
+
#define sigma0(x) \
|
331
|
+
(CRYPTO_rotr_u64((x), 1) ^ CRYPTO_rotr_u64((x), 8) ^ ((x) >> 7))
|
332
|
+
#define sigma1(x) \
|
333
|
+
(CRYPTO_rotr_u64((x), 19) ^ CRYPTO_rotr_u64((x), 61) ^ ((x) >> 6))
|
360
334
|
|
361
335
|
#define Ch(x, y, z) (((x) & (y)) ^ ((~(x)) & (z)))
|
362
336
|
#define Maj(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
|
@@ -524,7 +498,6 @@ static void sha512_block_data_order(uint64_t *state, const uint8_t *in,
|
|
524
498
|
|
525
499
|
#endif // !SHA512_ASM
|
526
500
|
|
527
|
-
#undef ROTR
|
528
501
|
#undef Sigma0
|
529
502
|
#undef Sigma1
|
530
503
|
#undef sigma0
|
@@ -890,6 +890,45 @@ static inline void CRYPTO_store_word_le(void *out, crypto_word_t v) {
|
|
890
890
|
}
|
891
891
|
|
892
892
|
|
893
|
+
// Bit rotation functions.
|
894
|
+
//
|
895
|
+
// Note these functions use |(-shift) & 31|, etc., because shifting by the bit
|
896
|
+
// width is undefined. Both Clang and GCC recognize this pattern as a rotation,
|
897
|
+
// but MSVC does not. Instead, we call MSVC's built-in functions.
|
898
|
+
|
899
|
+
static inline uint32_t CRYPTO_rotl_u32(uint32_t value, int shift) {
|
900
|
+
#if defined(_MSC_VER)
|
901
|
+
return _rotl(value, shift);
|
902
|
+
#else
|
903
|
+
return (value << shift) | (value >> ((-shift) & 31));
|
904
|
+
#endif
|
905
|
+
}
|
906
|
+
|
907
|
+
static inline uint32_t CRYPTO_rotr_u32(uint32_t value, int shift) {
|
908
|
+
#if defined(_MSC_VER)
|
909
|
+
return _rotr(value, shift);
|
910
|
+
#else
|
911
|
+
return (value >> shift) | (value << ((-shift) & 31));
|
912
|
+
#endif
|
913
|
+
}
|
914
|
+
|
915
|
+
static inline uint64_t CRYPTO_rotl_u64(uint64_t value, int shift) {
|
916
|
+
#if defined(_MSC_VER)
|
917
|
+
return _rotl64(value, shift);
|
918
|
+
#else
|
919
|
+
return (value << shift) | (value >> ((-shift) & 63));
|
920
|
+
#endif
|
921
|
+
}
|
922
|
+
|
923
|
+
static inline uint64_t CRYPTO_rotr_u64(uint64_t value, int shift) {
|
924
|
+
#if defined(_MSC_VER)
|
925
|
+
return _rotr64(value, shift);
|
926
|
+
#else
|
927
|
+
return (value >> shift) | (value << ((-shift) & 63));
|
928
|
+
#endif
|
929
|
+
}
|
930
|
+
|
931
|
+
|
893
932
|
// FIPS functions.
|
894
933
|
|
895
934
|
#if defined(BORINGSSL_FIPS)
|
@@ -23,18 +23,18 @@
|
|
23
23
|
static void siphash_round(uint64_t v[4]) {
|
24
24
|
v[0] += v[1];
|
25
25
|
v[2] += v[3];
|
26
|
-
v[1] = (v[1]
|
27
|
-
v[3] = (v[3]
|
26
|
+
v[1] = CRYPTO_rotl_u64(v[1], 13);
|
27
|
+
v[3] = CRYPTO_rotl_u64(v[3], 16);
|
28
28
|
v[1] ^= v[0];
|
29
29
|
v[3] ^= v[2];
|
30
|
-
v[0] = (v[0]
|
30
|
+
v[0] = CRYPTO_rotl_u64(v[0], 32);
|
31
31
|
v[2] += v[1];
|
32
32
|
v[0] += v[3];
|
33
|
-
v[1] = (v[1]
|
34
|
-
v[3] = (v[3]
|
33
|
+
v[1] = CRYPTO_rotl_u64(v[1], 17);
|
34
|
+
v[3] = CRYPTO_rotl_u64(v[3], 21);
|
35
35
|
v[1] ^= v[2];
|
36
36
|
v[3] ^= v[0];
|
37
|
-
v[2] = (v[2]
|
37
|
+
v[2] = CRYPTO_rotl_u64(v[2], 32);
|
38
38
|
}
|
39
39
|
|
40
40
|
uint64_t SIPHASH_24(const uint64_t key[2], const uint8_t *input,
|