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
@@ -0,0 +1,46 @@
|
|
1
|
+
// Copyright 2021 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#include <grpc/support/port_platform.h>
|
16
|
+
|
17
|
+
#include <grpc/grpc.h>
|
18
|
+
|
19
|
+
#include "src/core/lib/security/authorization/authorization_policy_provider.h"
|
20
|
+
|
21
|
+
namespace {
|
22
|
+
|
23
|
+
void* ProviderArgCopy(void* p) {
|
24
|
+
grpc_authorization_policy_provider* provider =
|
25
|
+
static_cast<grpc_authorization_policy_provider*>(p);
|
26
|
+
provider->Ref().release();
|
27
|
+
return provider;
|
28
|
+
}
|
29
|
+
|
30
|
+
void ProviderArgDestroy(void* p) {
|
31
|
+
grpc_authorization_policy_provider* provider =
|
32
|
+
static_cast<grpc_authorization_policy_provider*>(p);
|
33
|
+
provider->Unref();
|
34
|
+
}
|
35
|
+
|
36
|
+
int ProviderArgCmp(void* p, void* q) { return GPR_ICMP(p, q); }
|
37
|
+
|
38
|
+
} // namespace
|
39
|
+
|
40
|
+
// Wrapper API declared in grpc.h
|
41
|
+
|
42
|
+
const grpc_arg_pointer_vtable* grpc_authorization_policy_provider_arg_vtable() {
|
43
|
+
static const grpc_arg_pointer_vtable vtable = {
|
44
|
+
ProviderArgCopy, ProviderArgDestroy, ProviderArgCmp};
|
45
|
+
return &vtable;
|
46
|
+
}
|
@@ -0,0 +1,209 @@
|
|
1
|
+
// Copyright 2021 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#include <grpc/support/port_platform.h>
|
16
|
+
|
17
|
+
#include "src/core/lib/security/authorization/evaluate_args.h"
|
18
|
+
|
19
|
+
#include "src/core/lib/address_utils/parse_address.h"
|
20
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
21
|
+
#include "src/core/lib/gprpp/host_port.h"
|
22
|
+
#include "src/core/lib/security/credentials/tls/tls_utils.h"
|
23
|
+
#include "src/core/lib/slice/slice_utils.h"
|
24
|
+
|
25
|
+
namespace grpc_core {
|
26
|
+
|
27
|
+
namespace {
|
28
|
+
|
29
|
+
EvaluateArgs::PerChannelArgs::Address ParseEndpointUri(
|
30
|
+
absl::string_view uri_text) {
|
31
|
+
EvaluateArgs::PerChannelArgs::Address address;
|
32
|
+
absl::StatusOr<URI> uri = URI::Parse(uri_text);
|
33
|
+
if (!uri.ok()) {
|
34
|
+
gpr_log(GPR_DEBUG, "Failed to parse uri.");
|
35
|
+
return address;
|
36
|
+
}
|
37
|
+
absl::string_view host_view;
|
38
|
+
absl::string_view port_view;
|
39
|
+
if (!SplitHostPort(uri->path(), &host_view, &port_view)) {
|
40
|
+
gpr_log(GPR_DEBUG, "Failed to split %s into host and port.",
|
41
|
+
uri->path().c_str());
|
42
|
+
return address;
|
43
|
+
}
|
44
|
+
if (!absl::SimpleAtoi(port_view, &address.port)) {
|
45
|
+
gpr_log(GPR_DEBUG, "Port %s is out of range or null.",
|
46
|
+
std::string(port_view).c_str());
|
47
|
+
}
|
48
|
+
address.address_str = std::string(host_view);
|
49
|
+
grpc_error_handle error = grpc_string_to_sockaddr(
|
50
|
+
&address.address, address.address_str.c_str(), address.port);
|
51
|
+
if (error != GRPC_ERROR_NONE) {
|
52
|
+
gpr_log(GPR_DEBUG, "Address %s is not IPv4/IPv6. Error: %s",
|
53
|
+
address.address_str.c_str(), grpc_error_std_string(error).c_str());
|
54
|
+
}
|
55
|
+
GRPC_ERROR_UNREF(error);
|
56
|
+
return address;
|
57
|
+
}
|
58
|
+
|
59
|
+
} // namespace
|
60
|
+
|
61
|
+
EvaluateArgs::PerChannelArgs::PerChannelArgs(grpc_auth_context* auth_context,
|
62
|
+
grpc_endpoint* endpoint) {
|
63
|
+
if (auth_context != nullptr) {
|
64
|
+
transport_security_type = GetAuthPropertyValue(
|
65
|
+
auth_context, GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME);
|
66
|
+
spiffe_id =
|
67
|
+
GetAuthPropertyValue(auth_context, GRPC_PEER_SPIFFE_ID_PROPERTY_NAME);
|
68
|
+
uri_sans = GetAuthPropertyArray(auth_context, GRPC_PEER_URI_PROPERTY_NAME);
|
69
|
+
dns_sans = GetAuthPropertyArray(auth_context, GRPC_PEER_DNS_PROPERTY_NAME);
|
70
|
+
common_name =
|
71
|
+
GetAuthPropertyValue(auth_context, GRPC_X509_CN_PROPERTY_NAME);
|
72
|
+
}
|
73
|
+
if (endpoint != nullptr) {
|
74
|
+
local_address = ParseEndpointUri(grpc_endpoint_get_local_address(endpoint));
|
75
|
+
peer_address = ParseEndpointUri(grpc_endpoint_get_peer(endpoint));
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
absl::string_view EvaluateArgs::GetPath() const {
|
80
|
+
absl::string_view path;
|
81
|
+
if (metadata_ != nullptr && metadata_->idx.named.path != nullptr) {
|
82
|
+
grpc_linked_mdelem* elem = metadata_->idx.named.path;
|
83
|
+
const grpc_slice& val = GRPC_MDVALUE(elem->md);
|
84
|
+
path = StringViewFromSlice(val);
|
85
|
+
}
|
86
|
+
return path;
|
87
|
+
}
|
88
|
+
|
89
|
+
absl::string_view EvaluateArgs::GetHost() const {
|
90
|
+
absl::string_view host;
|
91
|
+
if (metadata_ != nullptr && metadata_->idx.named.host != nullptr) {
|
92
|
+
grpc_linked_mdelem* elem = metadata_->idx.named.host;
|
93
|
+
const grpc_slice& val = GRPC_MDVALUE(elem->md);
|
94
|
+
host = StringViewFromSlice(val);
|
95
|
+
}
|
96
|
+
return host;
|
97
|
+
}
|
98
|
+
|
99
|
+
absl::string_view EvaluateArgs::GetMethod() const {
|
100
|
+
absl::string_view method;
|
101
|
+
if (metadata_ != nullptr && metadata_->idx.named.method != nullptr) {
|
102
|
+
grpc_linked_mdelem* elem = metadata_->idx.named.method;
|
103
|
+
const grpc_slice& val = GRPC_MDVALUE(elem->md);
|
104
|
+
method = StringViewFromSlice(val);
|
105
|
+
}
|
106
|
+
return method;
|
107
|
+
}
|
108
|
+
|
109
|
+
std::multimap<absl::string_view, absl::string_view> EvaluateArgs::GetHeaders()
|
110
|
+
const {
|
111
|
+
std::multimap<absl::string_view, absl::string_view> headers;
|
112
|
+
if (metadata_ == nullptr) {
|
113
|
+
return headers;
|
114
|
+
}
|
115
|
+
for (grpc_linked_mdelem* elem = metadata_->list.head; elem != nullptr;
|
116
|
+
elem = elem->next) {
|
117
|
+
const grpc_slice& key = GRPC_MDKEY(elem->md);
|
118
|
+
const grpc_slice& val = GRPC_MDVALUE(elem->md);
|
119
|
+
headers.emplace(StringViewFromSlice(key), StringViewFromSlice(val));
|
120
|
+
}
|
121
|
+
return headers;
|
122
|
+
}
|
123
|
+
|
124
|
+
absl::optional<absl::string_view> EvaluateArgs::GetHeaderValue(
|
125
|
+
absl::string_view key, std::string* concatenated_value) const {
|
126
|
+
if (metadata_ == nullptr) {
|
127
|
+
return absl::nullopt;
|
128
|
+
}
|
129
|
+
return grpc_metadata_batch_get_value(metadata_, key, concatenated_value);
|
130
|
+
}
|
131
|
+
|
132
|
+
grpc_resolved_address EvaluateArgs::GetLocalAddress() const {
|
133
|
+
if (channel_args_ == nullptr) {
|
134
|
+
return {};
|
135
|
+
}
|
136
|
+
return channel_args_->local_address.address;
|
137
|
+
}
|
138
|
+
|
139
|
+
absl::string_view EvaluateArgs::GetLocalAddressString() const {
|
140
|
+
if (channel_args_ == nullptr) {
|
141
|
+
return "";
|
142
|
+
}
|
143
|
+
return channel_args_->local_address.address_str;
|
144
|
+
}
|
145
|
+
|
146
|
+
int EvaluateArgs::GetLocalPort() const {
|
147
|
+
if (channel_args_ == nullptr) {
|
148
|
+
return 0;
|
149
|
+
}
|
150
|
+
return channel_args_->local_address.port;
|
151
|
+
}
|
152
|
+
|
153
|
+
grpc_resolved_address EvaluateArgs::GetPeerAddress() const {
|
154
|
+
if (channel_args_ == nullptr) {
|
155
|
+
return {};
|
156
|
+
}
|
157
|
+
return channel_args_->peer_address.address;
|
158
|
+
}
|
159
|
+
|
160
|
+
absl::string_view EvaluateArgs::GetPeerAddressString() const {
|
161
|
+
if (channel_args_ == nullptr) {
|
162
|
+
return "";
|
163
|
+
}
|
164
|
+
return channel_args_->peer_address.address_str;
|
165
|
+
}
|
166
|
+
|
167
|
+
int EvaluateArgs::GetPeerPort() const {
|
168
|
+
if (channel_args_ == nullptr) {
|
169
|
+
return 0;
|
170
|
+
}
|
171
|
+
return channel_args_->peer_address.port;
|
172
|
+
}
|
173
|
+
|
174
|
+
absl::string_view EvaluateArgs::GetTransportSecurityType() const {
|
175
|
+
if (channel_args_ == nullptr) {
|
176
|
+
return "";
|
177
|
+
}
|
178
|
+
return channel_args_->transport_security_type;
|
179
|
+
}
|
180
|
+
|
181
|
+
absl::string_view EvaluateArgs::GetSpiffeId() const {
|
182
|
+
if (channel_args_ == nullptr) {
|
183
|
+
return "";
|
184
|
+
}
|
185
|
+
return channel_args_->spiffe_id;
|
186
|
+
}
|
187
|
+
|
188
|
+
std::vector<absl::string_view> EvaluateArgs::GetUriSans() const {
|
189
|
+
if (channel_args_ == nullptr) {
|
190
|
+
return {};
|
191
|
+
}
|
192
|
+
return channel_args_->uri_sans;
|
193
|
+
}
|
194
|
+
|
195
|
+
std::vector<absl::string_view> EvaluateArgs::GetDnsSans() const {
|
196
|
+
if (channel_args_ == nullptr) {
|
197
|
+
return {};
|
198
|
+
}
|
199
|
+
return channel_args_->dns_sans;
|
200
|
+
}
|
201
|
+
|
202
|
+
absl::string_view EvaluateArgs::GetCommonName() const {
|
203
|
+
if (channel_args_ == nullptr) {
|
204
|
+
return "";
|
205
|
+
}
|
206
|
+
return channel_args_->common_name;
|
207
|
+
}
|
208
|
+
|
209
|
+
} // namespace grpc_core
|
@@ -0,0 +1,91 @@
|
|
1
|
+
// Copyright 2021 gRPC authors.
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
#ifndef GRPC_CORE_LIB_SECURITY_AUTHORIZATION_EVALUATE_ARGS_H
|
16
|
+
#define GRPC_CORE_LIB_SECURITY_AUTHORIZATION_EVALUATE_ARGS_H
|
17
|
+
|
18
|
+
#include <grpc/support/port_platform.h>
|
19
|
+
|
20
|
+
#include <map>
|
21
|
+
|
22
|
+
#include "absl/types/optional.h"
|
23
|
+
|
24
|
+
#include "src/core/lib/iomgr/endpoint.h"
|
25
|
+
#include "src/core/lib/iomgr/resolve_address.h"
|
26
|
+
#include "src/core/lib/security/context/security_context.h"
|
27
|
+
#include "src/core/lib/transport/metadata_batch.h"
|
28
|
+
|
29
|
+
namespace grpc_core {
|
30
|
+
|
31
|
+
class EvaluateArgs {
|
32
|
+
public:
|
33
|
+
// Caller is responsible for ensuring auth_context outlives PerChannelArgs
|
34
|
+
// struct.
|
35
|
+
struct PerChannelArgs {
|
36
|
+
struct Address {
|
37
|
+
// The address in sockaddr form.
|
38
|
+
grpc_resolved_address address;
|
39
|
+
// The same address with only the host part.
|
40
|
+
std::string address_str;
|
41
|
+
int port = 0;
|
42
|
+
};
|
43
|
+
|
44
|
+
PerChannelArgs(grpc_auth_context* auth_context, grpc_endpoint* endpoint);
|
45
|
+
|
46
|
+
absl::string_view transport_security_type;
|
47
|
+
absl::string_view spiffe_id;
|
48
|
+
std::vector<absl::string_view> uri_sans;
|
49
|
+
std::vector<absl::string_view> dns_sans;
|
50
|
+
absl::string_view common_name;
|
51
|
+
Address local_address;
|
52
|
+
Address peer_address;
|
53
|
+
};
|
54
|
+
|
55
|
+
EvaluateArgs(grpc_metadata_batch* metadata, PerChannelArgs* channel_args)
|
56
|
+
: metadata_(metadata), channel_args_(channel_args) {}
|
57
|
+
|
58
|
+
absl::string_view GetPath() const;
|
59
|
+
absl::string_view GetHost() const;
|
60
|
+
absl::string_view GetMethod() const;
|
61
|
+
std::multimap<absl::string_view, absl::string_view> GetHeaders() const;
|
62
|
+
// Returns metadata value(s) for the specified key.
|
63
|
+
// If the key is not present in the batch, returns absl::nullopt.
|
64
|
+
// If the key is present exactly once in the batch, returns a string_view of
|
65
|
+
// that value.
|
66
|
+
// If the key is present more than once in the batch, constructs a
|
67
|
+
// comma-concatenated string of all values in concatenated_value and returns a
|
68
|
+
// string_view of that string.
|
69
|
+
absl::optional<absl::string_view> GetHeaderValue(
|
70
|
+
absl::string_view key, std::string* concatenated_value) const;
|
71
|
+
|
72
|
+
grpc_resolved_address GetLocalAddress() const;
|
73
|
+
absl::string_view GetLocalAddressString() const;
|
74
|
+
int GetLocalPort() const;
|
75
|
+
grpc_resolved_address GetPeerAddress() const;
|
76
|
+
absl::string_view GetPeerAddressString() const;
|
77
|
+
int GetPeerPort() const;
|
78
|
+
absl::string_view GetTransportSecurityType() const;
|
79
|
+
absl::string_view GetSpiffeId() const;
|
80
|
+
std::vector<absl::string_view> GetUriSans() const;
|
81
|
+
std::vector<absl::string_view> GetDnsSans() const;
|
82
|
+
absl::string_view GetCommonName() const;
|
83
|
+
|
84
|
+
private:
|
85
|
+
grpc_metadata_batch* metadata_;
|
86
|
+
PerChannelArgs* channel_args_;
|
87
|
+
};
|
88
|
+
|
89
|
+
} // namespace grpc_core
|
90
|
+
|
91
|
+
#endif // GRPC_CORE_LIB_SECURITY_AUTHORIZATION_EVALUATE_ARGS_H
|
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
/* -- Composite call credentials. -- */
|
38
38
|
|
39
|
-
static void composite_call_metadata_cb(void* arg,
|
39
|
+
static void composite_call_metadata_cb(void* arg, grpc_error_handle error);
|
40
40
|
|
41
41
|
namespace {
|
42
42
|
struct grpc_composite_call_credentials_metadata_context {
|
@@ -64,7 +64,7 @@ struct grpc_composite_call_credentials_metadata_context {
|
|
64
64
|
};
|
65
65
|
} // namespace
|
66
66
|
|
67
|
-
static void composite_call_metadata_cb(void* arg,
|
67
|
+
static void composite_call_metadata_cb(void* arg, grpc_error_handle error) {
|
68
68
|
grpc_composite_call_credentials_metadata_context* ctx =
|
69
69
|
static_cast<grpc_composite_call_credentials_metadata_context*>(arg);
|
70
70
|
if (error == GRPC_ERROR_NONE) {
|
@@ -91,7 +91,7 @@ static void composite_call_metadata_cb(void* arg, grpc_error* error) {
|
|
91
91
|
bool grpc_composite_call_credentials::get_request_metadata(
|
92
92
|
grpc_polling_entity* pollent, grpc_auth_metadata_context auth_md_context,
|
93
93
|
grpc_credentials_mdelem_array* md_array, grpc_closure* on_request_metadata,
|
94
|
-
|
94
|
+
grpc_error_handle* error) {
|
95
95
|
grpc_composite_call_credentials_metadata_context* ctx;
|
96
96
|
ctx = new grpc_composite_call_credentials_metadata_context(
|
97
97
|
this, pollent, auth_md_context, md_array, on_request_metadata);
|
@@ -112,7 +112,7 @@ bool grpc_composite_call_credentials::get_request_metadata(
|
|
112
112
|
}
|
113
113
|
|
114
114
|
void grpc_composite_call_credentials::cancel_get_request_metadata(
|
115
|
-
grpc_credentials_mdelem_array* md_array,
|
115
|
+
grpc_credentials_mdelem_array* md_array, grpc_error_handle error) {
|
116
116
|
for (size_t i = 0; i < inner_.size(); ++i) {
|
117
117
|
inner_[i]->cancel_get_request_metadata(md_array, GRPC_ERROR_REF(error));
|
118
118
|
}
|
@@ -83,10 +83,10 @@ class grpc_composite_call_credentials : public grpc_call_credentials {
|
|
83
83
|
grpc_auth_metadata_context context,
|
84
84
|
grpc_credentials_mdelem_array* md_array,
|
85
85
|
grpc_closure* on_request_metadata,
|
86
|
-
|
86
|
+
grpc_error_handle* error) override;
|
87
87
|
|
88
88
|
void cancel_get_request_metadata(grpc_credentials_mdelem_array* md_array,
|
89
|
-
|
89
|
+
grpc_error_handle error) override;
|
90
90
|
|
91
91
|
grpc_security_level min_security_level() const override {
|
92
92
|
return min_security_level_;
|
@@ -187,13 +187,13 @@ struct grpc_call_credentials
|
|
187
187
|
grpc_auth_metadata_context context,
|
188
188
|
grpc_credentials_mdelem_array* md_array,
|
189
189
|
grpc_closure* on_request_metadata,
|
190
|
-
|
190
|
+
grpc_error_handle* error) = 0;
|
191
191
|
|
192
192
|
// Cancels a pending asynchronous operation started by
|
193
193
|
// grpc_call_credentials_get_request_metadata() with the corresponding
|
194
194
|
// value of \a md_array.
|
195
195
|
virtual void cancel_get_request_metadata(
|
196
|
-
grpc_credentials_mdelem_array* md_array,
|
196
|
+
grpc_credentials_mdelem_array* md_array, grpc_error_handle error) = 0;
|
197
197
|
|
198
198
|
virtual grpc_security_level min_security_level() const {
|
199
199
|
return min_security_level_;
|
@@ -30,6 +30,7 @@ namespace {
|
|
30
30
|
const char* kExpectedEnvironmentId = "aws1";
|
31
31
|
|
32
32
|
const char* kRegionEnvVar = "AWS_REGION";
|
33
|
+
const char* kDefaultRegionEnvVar = "AWS_DEFAULT_REGION";
|
33
34
|
const char* kAccessKeyIdEnvVar = "AWS_ACCESS_KEY_ID";
|
34
35
|
const char* kSecretAccessKeyEnvVar = "AWS_SECRET_ACCESS_KEY";
|
35
36
|
const char* kSessionTokenEnvVar = "AWS_SESSION_TOKEN";
|
@@ -57,7 +58,7 @@ std::string UrlEncode(const absl::string_view& s) {
|
|
57
58
|
RefCountedPtr<AwsExternalAccountCredentials>
|
58
59
|
AwsExternalAccountCredentials::Create(Options options,
|
59
60
|
std::vector<std::string> scopes,
|
60
|
-
|
61
|
+
grpc_error_handle* error) {
|
61
62
|
auto creds = MakeRefCounted<AwsExternalAccountCredentials>(
|
62
63
|
std::move(options), std::move(scopes), error);
|
63
64
|
if (*error == GRPC_ERROR_NONE) {
|
@@ -68,7 +69,7 @@ AwsExternalAccountCredentials::Create(Options options,
|
|
68
69
|
}
|
69
70
|
|
70
71
|
AwsExternalAccountCredentials::AwsExternalAccountCredentials(
|
71
|
-
Options options, std::vector<std::string> scopes,
|
72
|
+
Options options, std::vector<std::string> scopes, grpc_error_handle* error)
|
72
73
|
: ExternalAccountCredentials(options, std::move(scopes)) {
|
73
74
|
audience_ = options.audience;
|
74
75
|
auto it = options.credential_source.object_value().find("environment_id");
|
@@ -121,7 +122,7 @@ AwsExternalAccountCredentials::AwsExternalAccountCredentials(
|
|
121
122
|
|
122
123
|
void AwsExternalAccountCredentials::RetrieveSubjectToken(
|
123
124
|
HTTPRequestContext* ctx, const Options& /*options*/,
|
124
|
-
std::function<void(std::string,
|
125
|
+
std::function<void(std::string, grpc_error_handle)> cb) {
|
125
126
|
if (ctx == nullptr) {
|
126
127
|
FinishRetrieveSubjectToken(
|
127
128
|
"",
|
@@ -140,6 +141,9 @@ void AwsExternalAccountCredentials::RetrieveSubjectToken(
|
|
140
141
|
|
141
142
|
void AwsExternalAccountCredentials::RetrieveRegion() {
|
142
143
|
UniquePtr<char> region_from_env(gpr_getenv(kRegionEnvVar));
|
144
|
+
if (region_from_env == nullptr) {
|
145
|
+
region_from_env = UniquePtr<char>(gpr_getenv(kDefaultRegionEnvVar));
|
146
|
+
}
|
143
147
|
if (region_from_env != nullptr) {
|
144
148
|
region_ = std::string(region_from_env.get());
|
145
149
|
if (url_.empty()) {
|
@@ -175,14 +179,14 @@ void AwsExternalAccountCredentials::RetrieveRegion() {
|
|
175
179
|
}
|
176
180
|
|
177
181
|
void AwsExternalAccountCredentials::OnRetrieveRegion(void* arg,
|
178
|
-
|
182
|
+
grpc_error_handle error) {
|
179
183
|
AwsExternalAccountCredentials* self =
|
180
184
|
static_cast<AwsExternalAccountCredentials*>(arg);
|
181
185
|
self->OnRetrieveRegionInternal(GRPC_ERROR_REF(error));
|
182
186
|
}
|
183
187
|
|
184
188
|
void AwsExternalAccountCredentials::OnRetrieveRegionInternal(
|
185
|
-
|
189
|
+
grpc_error_handle error) {
|
186
190
|
if (error != GRPC_ERROR_NONE) {
|
187
191
|
FinishRetrieveSubjectToken("", error);
|
188
192
|
return;
|
@@ -224,15 +228,15 @@ void AwsExternalAccountCredentials::RetrieveRoleName() {
|
|
224
228
|
grpc_http_request_destroy(&request.http);
|
225
229
|
}
|
226
230
|
|
227
|
-
void AwsExternalAccountCredentials::OnRetrieveRoleName(
|
228
|
-
|
231
|
+
void AwsExternalAccountCredentials::OnRetrieveRoleName(
|
232
|
+
void* arg, grpc_error_handle error) {
|
229
233
|
AwsExternalAccountCredentials* self =
|
230
234
|
static_cast<AwsExternalAccountCredentials*>(arg);
|
231
235
|
self->OnRetrieveRoleNameInternal(GRPC_ERROR_REF(error));
|
232
236
|
}
|
233
237
|
|
234
238
|
void AwsExternalAccountCredentials::OnRetrieveRoleNameInternal(
|
235
|
-
|
239
|
+
grpc_error_handle error) {
|
236
240
|
if (error != GRPC_ERROR_NONE) {
|
237
241
|
FinishRetrieveSubjectToken("", error);
|
238
242
|
return;
|
@@ -287,15 +291,15 @@ void AwsExternalAccountCredentials::RetrieveSigningKeys() {
|
|
287
291
|
grpc_http_request_destroy(&request.http);
|
288
292
|
}
|
289
293
|
|
290
|
-
void AwsExternalAccountCredentials::OnRetrieveSigningKeys(
|
291
|
-
|
294
|
+
void AwsExternalAccountCredentials::OnRetrieveSigningKeys(
|
295
|
+
void* arg, grpc_error_handle error) {
|
292
296
|
AwsExternalAccountCredentials* self =
|
293
297
|
static_cast<AwsExternalAccountCredentials*>(arg);
|
294
298
|
self->OnRetrieveSigningKeysInternal(GRPC_ERROR_REF(error));
|
295
299
|
}
|
296
300
|
|
297
301
|
void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
|
298
|
-
|
302
|
+
grpc_error_handle error) {
|
299
303
|
if (error != GRPC_ERROR_NONE) {
|
300
304
|
FinishRetrieveSubjectToken("", error);
|
301
305
|
return;
|
@@ -350,7 +354,7 @@ void AwsExternalAccountCredentials::OnRetrieveSigningKeysInternal(
|
|
350
354
|
}
|
351
355
|
|
352
356
|
void AwsExternalAccountCredentials::BuildSubjectToken() {
|
353
|
-
|
357
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
354
358
|
if (signer_ == nullptr) {
|
355
359
|
cred_verification_url_ = absl::StrReplaceAll(
|
356
360
|
regional_cred_verification_url_, {{"{region}", region_}});
|
@@ -396,7 +400,7 @@ void AwsExternalAccountCredentials::BuildSubjectToken() {
|
|
396
400
|
}
|
397
401
|
|
398
402
|
void AwsExternalAccountCredentials::FinishRetrieveSubjectToken(
|
399
|
-
std::string subject_token,
|
403
|
+
std::string subject_token, grpc_error_handle error) {
|
400
404
|
// Reset context
|
401
405
|
ctx_ = nullptr;
|
402
406
|
// Move object state into local variables.
|