grpc 1.37.1 → 1.39.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +96 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +334 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +91 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +28 -13
- data/include/grpc/impl/codegen/port_platform.h +22 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +630 -3103
- data/src/core/ext/filters/client_channel/client_channel.h +489 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +1 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +755 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +46 -54
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +146 -155
- data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -32
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2449 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +306 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +25 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -120
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +65 -58
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +348 -199
- data/src/core/ext/xds/xds_api.h +21 -12
- data/src/core/ext/xds/xds_bootstrap.cc +97 -159
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +310 -178
- data/src/core/ext/xds/xds_client.h +41 -27
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +10 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/slice_allocator.cc +89 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +194 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +243 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +11 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +28 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +39 -39
- data/src/core/lib/matchers/matchers.h +28 -28
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +33 -32
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/surface/call.cc +67 -46
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +28 -22
- data/src/core/lib/surface/server.h +16 -15
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- metadata +94 -46
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -60,8 +60,8 @@ StaticDataCertificateProvider::StaticDataCertificateProvider(
|
|
60
60
|
distributor_->SetKeyMaterials(cert_name, std::move(root_certificate),
|
61
61
|
std::move(pem_key_cert_pairs));
|
62
62
|
}
|
63
|
-
|
64
|
-
|
63
|
+
grpc_error_handle root_cert_error = GRPC_ERROR_NONE;
|
64
|
+
grpc_error_handle identity_cert_error = GRPC_ERROR_NONE;
|
65
65
|
if (root_being_watched && !root_has_update) {
|
66
66
|
root_cert_error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
67
67
|
"Unable to get latest root certificates.");
|
@@ -150,8 +150,8 @@ FileWatcherCertificateProvider::FileWatcherCertificateProvider(
|
|
150
150
|
distributor_->SetKeyMaterials(cert_name, root_certificate,
|
151
151
|
pem_key_cert_pairs);
|
152
152
|
}
|
153
|
-
|
154
|
-
|
153
|
+
grpc_error_handle root_cert_error = GRPC_ERROR_NONE;
|
154
|
+
grpc_error_handle identity_cert_error = GRPC_ERROR_NONE;
|
155
155
|
if (root_being_watched && !root_certificate.has_value()) {
|
156
156
|
root_cert_error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
157
157
|
"Unable to get latest root certificates.");
|
@@ -210,10 +210,11 @@ void FileWatcherCertificateProvider::ForceUpdate() {
|
|
210
210
|
}
|
211
211
|
if (root_cert_changed || identity_cert_changed) {
|
212
212
|
ExecCtx exec_ctx;
|
213
|
-
|
213
|
+
grpc_error_handle root_cert_error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
214
214
|
"Unable to get latest root certificates.");
|
215
|
-
|
216
|
-
|
215
|
+
grpc_error_handle identity_cert_error =
|
216
|
+
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
217
|
+
"Unable to get latest identity certificates.");
|
217
218
|
for (const auto& p : watcher_info_) {
|
218
219
|
const std::string& cert_name = p.first;
|
219
220
|
const WatcherInfo& info = p.second;
|
@@ -256,11 +257,12 @@ FileWatcherCertificateProvider::ReadRootCertificatesFromFile(
|
|
256
257
|
const std::string& root_cert_full_path) {
|
257
258
|
// Read the root file.
|
258
259
|
grpc_slice root_slice = grpc_empty_slice();
|
259
|
-
|
260
|
+
grpc_error_handle root_error =
|
260
261
|
grpc_load_file(root_cert_full_path.c_str(), 0, &root_slice);
|
261
262
|
if (root_error != GRPC_ERROR_NONE) {
|
262
263
|
gpr_log(GPR_ERROR, "Reading file %s failed: %s",
|
263
|
-
root_cert_full_path.c_str(),
|
264
|
+
root_cert_full_path.c_str(),
|
265
|
+
grpc_error_std_string(root_error).c_str());
|
264
266
|
GRPC_ERROR_UNREF(root_error);
|
265
267
|
return absl::nullopt;
|
266
268
|
}
|
@@ -314,19 +316,21 @@ FileWatcherCertificateProvider::ReadIdentityKeyCertPairFromFiles(
|
|
314
316
|
}
|
315
317
|
// Read the identity files.
|
316
318
|
SliceWrapper key_slice, cert_slice;
|
317
|
-
|
319
|
+
grpc_error_handle key_error =
|
318
320
|
grpc_load_file(private_key_path.c_str(), 0, &key_slice.slice);
|
319
321
|
if (key_error != GRPC_ERROR_NONE) {
|
320
322
|
gpr_log(GPR_ERROR, "Reading file %s failed: %s. Start retrying...",
|
321
|
-
private_key_path.c_str(),
|
323
|
+
private_key_path.c_str(),
|
324
|
+
grpc_error_std_string(key_error).c_str());
|
322
325
|
GRPC_ERROR_UNREF(key_error);
|
323
326
|
continue;
|
324
327
|
}
|
325
|
-
|
328
|
+
grpc_error_handle cert_error =
|
326
329
|
grpc_load_file(identity_certificate_path.c_str(), 0, &cert_slice.slice);
|
327
330
|
if (cert_error != GRPC_ERROR_NONE) {
|
328
331
|
gpr_log(GPR_ERROR, "Reading file %s failed: %s. Start retrying...",
|
329
|
-
identity_certificate_path.c_str(),
|
332
|
+
identity_certificate_path.c_str(),
|
333
|
+
grpc_error_std_string(cert_error).c_str());
|
330
334
|
GRPC_ERROR_UNREF(cert_error);
|
331
335
|
continue;
|
332
336
|
}
|
@@ -367,6 +371,7 @@ FileWatcherCertificateProvider::ReadIdentityKeyCertPairFromFiles(
|
|
367
371
|
grpc_tls_certificate_provider* grpc_tls_certificate_provider_static_data_create(
|
368
372
|
const char* root_certificate, grpc_tls_identity_pairs* pem_key_cert_pairs) {
|
369
373
|
GPR_ASSERT(root_certificate != nullptr || pem_key_cert_pairs != nullptr);
|
374
|
+
grpc_core::ExecCtx exec_ctx;
|
370
375
|
grpc_core::PemKeyCertPairList identity_pairs_core;
|
371
376
|
if (pem_key_cert_pairs != nullptr) {
|
372
377
|
identity_pairs_core = std::move(pem_key_cert_pairs->pem_key_cert_pairs);
|
@@ -384,6 +389,7 @@ grpc_tls_certificate_provider*
|
|
384
389
|
grpc_tls_certificate_provider_file_watcher_create(
|
385
390
|
const char* private_key_path, const char* identity_certificate_path,
|
386
391
|
const char* root_cert_path, unsigned int refresh_interval_sec) {
|
392
|
+
grpc_core::ExecCtx exec_ctx;
|
387
393
|
return new grpc_core::FileWatcherCertificateProvider(
|
388
394
|
private_key_path == nullptr ? "" : private_key_path,
|
389
395
|
identity_certificate_path == nullptr ? "" : identity_certificate_path,
|
@@ -87,6 +87,7 @@ void grpc_tls_server_authorization_check_config::Cancel(
|
|
87
87
|
/** -- Wrapper APIs declared in grpc_security.h -- **/
|
88
88
|
|
89
89
|
grpc_tls_credentials_options* grpc_tls_credentials_options_create() {
|
90
|
+
grpc_core::ExecCtx exec_ctx;
|
90
91
|
return new grpc_tls_credentials_options();
|
91
92
|
}
|
92
93
|
|
@@ -109,6 +110,7 @@ void grpc_tls_credentials_options_set_certificate_provider(
|
|
109
110
|
grpc_tls_certificate_provider* provider) {
|
110
111
|
GPR_ASSERT(options != nullptr);
|
111
112
|
GPR_ASSERT(provider != nullptr);
|
113
|
+
grpc_core::ExecCtx exec_ctx;
|
112
114
|
options->set_certificate_provider(
|
113
115
|
provider->Ref(DEBUG_LOCATION, "set_certificate_provider"));
|
114
116
|
}
|
@@ -142,6 +144,7 @@ void grpc_tls_credentials_options_set_server_authorization_check_config(
|
|
142
144
|
grpc_tls_server_authorization_check_config* config) {
|
143
145
|
GPR_ASSERT(options != nullptr);
|
144
146
|
GPR_ASSERT(config != nullptr);
|
147
|
+
grpc_core::ExecCtx exec_ctx;
|
145
148
|
options->set_server_authorization_check_config(config->Ref());
|
146
149
|
}
|
147
150
|
|
@@ -159,6 +162,7 @@ grpc_tls_server_authorization_check_config_create(
|
|
159
162
|
"check config.");
|
160
163
|
return nullptr;
|
161
164
|
}
|
165
|
+
grpc_core::ExecCtx exec_ctx;
|
162
166
|
return new grpc_tls_server_authorization_check_config(
|
163
167
|
config_user_data, schedule, cancel, destruct);
|
164
168
|
}
|
@@ -88,4 +88,36 @@ bool VerifySubjectAlternativeName(absl::string_view subject_alternative_name,
|
|
88
88
|
std::string::npos;
|
89
89
|
}
|
90
90
|
|
91
|
+
absl::string_view GetAuthPropertyValue(grpc_auth_context* context,
|
92
|
+
const char* property_name) {
|
93
|
+
grpc_auth_property_iterator it =
|
94
|
+
grpc_auth_context_find_properties_by_name(context, property_name);
|
95
|
+
const grpc_auth_property* prop = grpc_auth_property_iterator_next(&it);
|
96
|
+
if (prop == nullptr) {
|
97
|
+
gpr_log(GPR_DEBUG, "No value found for %s property.", property_name);
|
98
|
+
return "";
|
99
|
+
}
|
100
|
+
if (grpc_auth_property_iterator_next(&it) != nullptr) {
|
101
|
+
gpr_log(GPR_DEBUG, "Multiple values found for %s property.", property_name);
|
102
|
+
return "";
|
103
|
+
}
|
104
|
+
return absl::string_view(prop->value, prop->value_length);
|
105
|
+
}
|
106
|
+
|
107
|
+
std::vector<absl::string_view> GetAuthPropertyArray(grpc_auth_context* context,
|
108
|
+
const char* property_name) {
|
109
|
+
std::vector<absl::string_view> values;
|
110
|
+
grpc_auth_property_iterator it =
|
111
|
+
grpc_auth_context_find_properties_by_name(context, property_name);
|
112
|
+
const grpc_auth_property* prop = grpc_auth_property_iterator_next(&it);
|
113
|
+
while (prop != nullptr) {
|
114
|
+
values.emplace_back(prop->value, prop->value_length);
|
115
|
+
prop = grpc_auth_property_iterator_next(&it);
|
116
|
+
}
|
117
|
+
if (values.empty()) {
|
118
|
+
gpr_log(GPR_DEBUG, "No value found for %s property.", property_name);
|
119
|
+
}
|
120
|
+
return values;
|
121
|
+
}
|
122
|
+
|
91
123
|
} // namespace grpc_core
|
@@ -26,6 +26,8 @@
|
|
26
26
|
|
27
27
|
#include "absl/strings/string_view.h"
|
28
28
|
|
29
|
+
#include "src/core/lib/security/context/security_context.h"
|
30
|
+
|
29
31
|
namespace grpc_core {
|
30
32
|
|
31
33
|
// Matches \a subject_alternative_name with \a matcher. Returns true if there
|
@@ -33,6 +35,17 @@ namespace grpc_core {
|
|
33
35
|
bool VerifySubjectAlternativeName(absl::string_view subject_alternative_name,
|
34
36
|
const std::string& matcher);
|
35
37
|
|
38
|
+
// Returns value for the specified property_name from auth context. Here the
|
39
|
+
// property is expected to have a single value. Returns empty if multiple values
|
40
|
+
// are found.
|
41
|
+
absl::string_view GetAuthPropertyValue(grpc_auth_context* context,
|
42
|
+
const char* property_name);
|
43
|
+
|
44
|
+
// Returns values for the specified property_name from auth context. Here the
|
45
|
+
// property can have any number of values.
|
46
|
+
std::vector<absl::string_view> GetAuthPropertyArray(grpc_auth_context* context,
|
47
|
+
const char* property_name);
|
48
|
+
|
36
49
|
} // namespace grpc_core
|
37
50
|
|
38
51
|
#endif // GRPC_CORE_LIB_SECURITY_CREDENTIALS_TLS_TLS_UTILS_H
|
@@ -40,13 +40,13 @@ bool XdsVerifySubjectAlternativeNames(
|
|
40
40
|
if (matchers.empty()) return true;
|
41
41
|
for (size_t i = 0; i < subject_alternative_names_size; ++i) {
|
42
42
|
for (const auto& matcher : matchers) {
|
43
|
-
if (matcher.type() == StringMatcher::Type::
|
44
|
-
// For
|
43
|
+
if (matcher.type() == StringMatcher::Type::kExact) {
|
44
|
+
// For Exact match, use DNS rules for verifying SANs
|
45
45
|
// TODO(zhenlian): Right now, the SSL layer does not save the type of
|
46
46
|
// the SAN, so we are doing a DNS style verification for all SANs when
|
47
47
|
// the type is EXACT. When we expose the SAN type, change this to only
|
48
48
|
// do this verification when the SAN type is DNS and match type is
|
49
|
-
//
|
49
|
+
// kExact. For all other cases, we should use matcher.Match().
|
50
50
|
if (VerifySubjectAlternativeName(subject_alternative_names[i],
|
51
51
|
matcher.string_matcher())) {
|
52
52
|
return true;
|
@@ -54,7 +54,7 @@ void alts_check_peer(tsi_peer peer,
|
|
54
54
|
*auth_context =
|
55
55
|
grpc_core::internal::grpc_alts_auth_context_from_tsi_peer(&peer);
|
56
56
|
tsi_peer_destruct(&peer);
|
57
|
-
|
57
|
+
grpc_error_handle error =
|
58
58
|
*auth_context != nullptr
|
59
59
|
? GRPC_ERROR_NONE
|
60
60
|
: GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -103,6 +103,11 @@ class grpc_alts_channel_security_connector final
|
|
103
103
|
alts_check_peer(peer, auth_context, on_peer_checked);
|
104
104
|
}
|
105
105
|
|
106
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
107
|
+
grpc_error_handle error) override {
|
108
|
+
GRPC_ERROR_UNREF(error);
|
109
|
+
}
|
110
|
+
|
106
111
|
int cmp(const grpc_security_connector* other_sc) const override {
|
107
112
|
auto* other =
|
108
113
|
reinterpret_cast<const grpc_alts_channel_security_connector*>(other_sc);
|
@@ -114,7 +119,7 @@ class grpc_alts_channel_security_connector final
|
|
114
119
|
bool check_call_host(absl::string_view host,
|
115
120
|
grpc_auth_context* /*auth_context*/,
|
116
121
|
grpc_closure* /*on_call_host_checked*/,
|
117
|
-
|
122
|
+
grpc_error_handle* error) override {
|
118
123
|
if (host.empty() || host != target_name_) {
|
119
124
|
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
120
125
|
"ALTS call host does not match target name");
|
@@ -123,7 +128,7 @@ class grpc_alts_channel_security_connector final
|
|
123
128
|
}
|
124
129
|
|
125
130
|
void cancel_check_call_host(grpc_closure* /*on_call_host_checked*/,
|
126
|
-
|
131
|
+
grpc_error_handle error) override {
|
127
132
|
GRPC_ERROR_UNREF(error);
|
128
133
|
}
|
129
134
|
|
@@ -168,6 +173,11 @@ class grpc_alts_server_security_connector final
|
|
168
173
|
alts_check_peer(peer, auth_context, on_peer_checked);
|
169
174
|
}
|
170
175
|
|
176
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
177
|
+
grpc_error_handle error) override {
|
178
|
+
GRPC_ERROR_UNREF(error);
|
179
|
+
}
|
180
|
+
|
171
181
|
int cmp(const grpc_security_connector* other) const override {
|
172
182
|
return server_security_connector_cmp(
|
173
183
|
static_cast<const grpc_server_security_connector*>(other));
|
@@ -79,6 +79,11 @@ class grpc_fake_channel_security_connector final
|
|
79
79
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
80
80
|
grpc_closure* on_peer_checked) override;
|
81
81
|
|
82
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
83
|
+
grpc_error_handle error) override {
|
84
|
+
GRPC_ERROR_UNREF(error);
|
85
|
+
}
|
86
|
+
|
82
87
|
int cmp(const grpc_security_connector* other_sc) const override {
|
83
88
|
auto* other =
|
84
89
|
reinterpret_cast<const grpc_fake_channel_security_connector*>(other_sc);
|
@@ -105,7 +110,7 @@ class grpc_fake_channel_security_connector final
|
|
105
110
|
bool check_call_host(absl::string_view host,
|
106
111
|
grpc_auth_context* /*auth_context*/,
|
107
112
|
grpc_closure* /*on_call_host_checked*/,
|
108
|
-
|
113
|
+
grpc_error_handle* /*error*/) override {
|
109
114
|
absl::string_view authority_hostname;
|
110
115
|
absl::string_view authority_ignored_port;
|
111
116
|
absl::string_view target_hostname;
|
@@ -135,7 +140,7 @@ class grpc_fake_channel_security_connector final
|
|
135
140
|
}
|
136
141
|
|
137
142
|
void cancel_check_call_host(grpc_closure* /*on_call_host_checked*/,
|
138
|
-
|
143
|
+
grpc_error_handle error) override {
|
139
144
|
GRPC_ERROR_UNREF(error);
|
140
145
|
}
|
141
146
|
|
@@ -214,7 +219,7 @@ static void fake_check_peer(
|
|
214
219
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
215
220
|
grpc_closure* on_peer_checked) {
|
216
221
|
const char* prop_name;
|
217
|
-
|
222
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
218
223
|
*auth_context = nullptr;
|
219
224
|
if (peer.property_count != 2) {
|
220
225
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -287,6 +292,11 @@ class grpc_fake_server_security_connector
|
|
287
292
|
fake_check_peer(this, peer, auth_context, on_peer_checked);
|
288
293
|
}
|
289
294
|
|
295
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
296
|
+
grpc_error_handle error) override {
|
297
|
+
GRPC_ERROR_UNREF(error);
|
298
|
+
}
|
299
|
+
|
290
300
|
void add_handshakers(const grpc_channel_args* args,
|
291
301
|
grpc_pollset_set* /*interested_parties*/,
|
292
302
|
grpc_core::HandshakeManager* handshake_mgr) override {
|
@@ -52,13 +52,13 @@ RefCountedPtr<grpc_auth_context> TestOnlyMakeInsecureAuthContext() {
|
|
52
52
|
// provide an insecure channel.
|
53
53
|
bool InsecureChannelSecurityConnector::check_call_host(
|
54
54
|
absl::string_view /*host*/, grpc_auth_context* /*auth_context*/,
|
55
|
-
grpc_closure* /*on_call_host_checked*/,
|
55
|
+
grpc_closure* /*on_call_host_checked*/, grpc_error_handle* error) {
|
56
56
|
*error = GRPC_ERROR_NONE;
|
57
57
|
return true;
|
58
58
|
}
|
59
59
|
|
60
60
|
void InsecureChannelSecurityConnector::cancel_check_call_host(
|
61
|
-
grpc_closure* /*on_call_host_checked*/,
|
61
|
+
grpc_closure* /*on_call_host_checked*/, grpc_error_handle error) {
|
62
62
|
GRPC_ERROR_UNREF(error);
|
63
63
|
}
|
64
64
|
|
@@ -47,10 +47,10 @@ class InsecureChannelSecurityConnector
|
|
47
47
|
|
48
48
|
bool check_call_host(absl::string_view host, grpc_auth_context* auth_context,
|
49
49
|
grpc_closure* on_call_host_checked,
|
50
|
-
|
50
|
+
grpc_error_handle* error) override;
|
51
51
|
|
52
52
|
void cancel_check_call_host(grpc_closure* on_call_host_checked,
|
53
|
-
|
53
|
+
grpc_error_handle error) override;
|
54
54
|
|
55
55
|
void add_handshakers(const grpc_channel_args* args,
|
56
56
|
grpc_pollset_set* /* interested_parties */,
|
@@ -60,6 +60,11 @@ class InsecureChannelSecurityConnector
|
|
60
60
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
61
61
|
grpc_closure* on_peer_checked) override;
|
62
62
|
|
63
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
64
|
+
grpc_error_handle error) override {
|
65
|
+
GRPC_ERROR_UNREF(error);
|
66
|
+
}
|
67
|
+
|
63
68
|
int cmp(const grpc_security_connector* other_sc) const override;
|
64
69
|
};
|
65
70
|
|
@@ -78,6 +83,11 @@ class InsecureServerSecurityConnector : public grpc_server_security_connector {
|
|
78
83
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
79
84
|
grpc_closure* on_peer_checked) override;
|
80
85
|
|
86
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
87
|
+
grpc_error_handle error) override {
|
88
|
+
GRPC_ERROR_UNREF(error);
|
89
|
+
}
|
90
|
+
|
81
91
|
int cmp(const grpc_security_connector* other) const override;
|
82
92
|
};
|
83
93
|
|
@@ -63,7 +63,7 @@ grpc_slice GetSystemRootCerts() {
|
|
63
63
|
grpc_slice valid_bundle_slice = grpc_empty_slice();
|
64
64
|
size_t num_cert_files_ = GPR_ARRAY_SIZE(kLinuxCertFiles);
|
65
65
|
for (size_t i = 0; i < num_cert_files_; i++) {
|
66
|
-
|
66
|
+
grpc_error_handle error =
|
67
67
|
grpc_load_file(kLinuxCertFiles[i], 1, &valid_bundle_slice);
|
68
68
|
if (error == GRPC_ERROR_NONE) {
|
69
69
|
return valid_bundle_slice;
|
@@ -29,16 +29,18 @@
|
|
29
29
|
#include <grpc/support/string_util.h>
|
30
30
|
|
31
31
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
32
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
33
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
32
34
|
#include "src/core/lib/channel/channel_args.h"
|
33
35
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
34
36
|
#include "src/core/lib/iomgr/pollset.h"
|
35
37
|
#include "src/core/lib/iomgr/resolve_address.h"
|
36
38
|
#include "src/core/lib/iomgr/sockaddr.h"
|
37
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
38
39
|
#include "src/core/lib/iomgr/socket_utils.h"
|
39
40
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
40
41
|
#include "src/core/lib/security/credentials/local/local_credentials.h"
|
41
42
|
#include "src/core/lib/security/transport/security_handshaker.h"
|
43
|
+
#include "src/core/lib/uri/uri_parser.h"
|
42
44
|
#include "src/core/tsi/local_transport_security.h"
|
43
45
|
|
44
46
|
#define GRPC_UDS_URI_PATTERN "unix:"
|
@@ -70,13 +72,14 @@ void local_check_peer(tsi_peer peer, grpc_endpoint* ep,
|
|
70
72
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
71
73
|
grpc_closure* on_peer_checked,
|
72
74
|
grpc_local_connect_type type) {
|
73
|
-
int fd = grpc_endpoint_get_fd(ep);
|
74
75
|
grpc_resolved_address resolved_addr;
|
75
|
-
memset(&resolved_addr, 0, sizeof(resolved_addr));
|
76
|
-
resolved_addr.len = GRPC_MAX_SOCKADDR_SIZE;
|
77
76
|
bool is_endpoint_local = false;
|
78
|
-
|
79
|
-
|
77
|
+
absl::string_view local_addr = grpc_endpoint_get_local_address(ep);
|
78
|
+
absl::StatusOr<grpc_core::URI> uri = grpc_core::URI::Parse(local_addr);
|
79
|
+
if (!uri.ok() || !grpc_parse_uri(*uri, &resolved_addr)) {
|
80
|
+
gpr_log(GPR_ERROR, "Could not parse endpoint address: %s",
|
81
|
+
std::string(local_addr.data(), local_addr.size()).c_str());
|
82
|
+
} else {
|
80
83
|
grpc_resolved_address addr_normalized;
|
81
84
|
grpc_resolved_address* addr =
|
82
85
|
grpc_sockaddr_is_v4mapped(&resolved_addr, &addr_normalized)
|
@@ -103,7 +106,7 @@ void local_check_peer(tsi_peer peer, grpc_endpoint* ep,
|
|
103
106
|
}
|
104
107
|
}
|
105
108
|
}
|
106
|
-
|
109
|
+
grpc_error_handle error;
|
107
110
|
if (!is_endpoint_local) {
|
108
111
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
109
112
|
"Endpoint is neither UDS or TCP loopback address.");
|
@@ -181,10 +184,15 @@ class grpc_local_channel_security_connector final
|
|
181
184
|
creds->connect_type());
|
182
185
|
}
|
183
186
|
|
187
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
188
|
+
grpc_error_handle error) override {
|
189
|
+
GRPC_ERROR_UNREF(error);
|
190
|
+
}
|
191
|
+
|
184
192
|
bool check_call_host(absl::string_view host,
|
185
193
|
grpc_auth_context* /*auth_context*/,
|
186
194
|
grpc_closure* /*on_call_host_checked*/,
|
187
|
-
|
195
|
+
grpc_error_handle* error) override {
|
188
196
|
if (host.empty() || host != target_name_) {
|
189
197
|
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
190
198
|
"local call host does not match target name");
|
@@ -193,7 +201,7 @@ class grpc_local_channel_security_connector final
|
|
193
201
|
}
|
194
202
|
|
195
203
|
void cancel_check_call_host(grpc_closure* /*on_call_host_checked*/,
|
196
|
-
|
204
|
+
grpc_error_handle error) override {
|
197
205
|
GRPC_ERROR_UNREF(error);
|
198
206
|
}
|
199
207
|
|
@@ -230,6 +238,11 @@ class grpc_local_server_security_connector final
|
|
230
238
|
creds->connect_type());
|
231
239
|
}
|
232
240
|
|
241
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
242
|
+
grpc_error_handle error) override {
|
243
|
+
GRPC_ERROR_UNREF(error);
|
244
|
+
}
|
245
|
+
|
233
246
|
int cmp(const grpc_security_connector* other) const override {
|
234
247
|
return server_security_connector_cmp(
|
235
248
|
static_cast<const grpc_server_security_connector*>(other));
|