grpc 1.28.0 → 1.30.2
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 +7694 -11190
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +30 -9
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/grpc_types.h +19 -21
- data/include/grpc/impl/codegen/port_platform.h +6 -2
- data/include/grpc/module.modulemap +24 -39
- data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +212 -241
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_proxy.cc +17 -10
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +240 -301
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +89 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +40 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +11 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -11
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +84 -37
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +6 -2
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
- data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver.h +12 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +73 -59
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +16 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +184 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +7 -4
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +40 -43
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +93 -102
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +32 -5
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +16 -16
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +19 -16
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +20 -31
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +4 -3
- data/src/core/ext/filters/client_channel/server_address.cc +6 -9
- data/src/core/ext/filters/client_channel/server_address.h +6 -12
- data/src/core/ext/filters/client_channel/service_config.cc +104 -144
- data/src/core/ext/filters/client_channel/service_config.h +28 -98
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
- data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +348 -221
- data/src/core/ext/filters/client_channel/xds/xds_api.h +37 -37
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +44 -49
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +4 -3
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +4 -2
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +532 -339
- data/src/core/ext/filters/client_channel/xds/xds_client.h +57 -22
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +11 -12
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +31 -19
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +7 -10
- data/src/core/ext/filters/message_size/message_size_filter.h +4 -4
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +4 -4
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +23 -22
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +15 -8
- data/src/core/ext/transport/inproc/inproc_transport.cc +19 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +4 -229
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -875
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +43 -7
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +47 -26
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +115 -65
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +24 -20
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +28 -13
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +38 -18
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +88 -6
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +9 -6
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +15 -10
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +16 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +2 -1
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +63 -41
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +173 -77
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +48 -28
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +16 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +1 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +21 -20
- data/src/core/ext/upb-generated/validate/validate.upb.h +69 -63
- data/src/core/lib/channel/channel_args.cc +15 -14
- data/src/core/lib/channel/channel_args.h +3 -1
- data/src/core/lib/channel/channel_stack.h +20 -13
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +3 -2
- data/src/core/lib/channel/channelz_registry.cc +5 -3
- data/src/core/lib/channel/connected_channel.cc +7 -5
- data/src/core/lib/channel/context.h +1 -1
- data/src/core/lib/channel/handshaker.cc +11 -13
- data/src/core/lib/channel/handshaker.h +4 -2
- data/src/core/lib/channel/handshaker_registry.cc +5 -17
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/message_compress.cc +5 -1
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +2 -26
- data/src/core/lib/gpr/string.h +0 -16
- data/src/core/lib/gpr/sync_abseil.cc +2 -0
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.cc +1 -1
- data/src/core/lib/gprpp/atomic.h +6 -6
- data/src/core/lib/gprpp/fork.cc +1 -1
- data/src/core/lib/gprpp/host_port.cc +29 -35
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +2 -3
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.h +2 -3
- data/src/core/lib/iomgr/buffer_list.h +22 -21
- data/src/core/lib/iomgr/call_combiner.h +3 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
- data/src/core/lib/iomgr/closure.h +2 -3
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +0 -1
- data/src/core/lib/iomgr/ev_apple.cc +356 -0
- data/src/core/lib/iomgr/ev_apple.h +43 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
- data/src/core/lib/iomgr/ev_epollex_linux.cc +2 -3
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.cc +2 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/{gprpp/optional.h → iomgr/pollset_uv.h} +11 -12
- data/src/core/lib/iomgr/port.h +1 -0
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
- data/src/core/lib/iomgr/resource_quota.cc +4 -6
- data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
- data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +2 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +8 -5
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_custom.cc +2 -3
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
- data/src/core/lib/iomgr/tcp_uv.cc +3 -2
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +2 -3
- data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +19 -17
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +9 -14
- data/src/core/lib/json/json.h +3 -2
- data/src/core/lib/json/json_reader.cc +5 -5
- data/src/core/lib/json/json_writer.cc +13 -12
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +8 -59
- data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +3 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +55 -27
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +9 -3
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +59 -12
- data/src/core/lib/security/security_connector/ssl_utils.h +12 -10
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +77 -51
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +27 -5
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +14 -0
- data/src/core/lib/slice/slice_utils.h +9 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
- data/src/core/lib/surface/call.cc +2 -3
- data/src/core/lib/surface/call_log_batch.cc +50 -58
- data/src/core/lib/surface/channel.cc +53 -31
- data/src/core/lib/surface/channel.h +35 -4
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/completion_queue.cc +33 -33
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +570 -369
- data/src/core/lib/surface/server.h +32 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +7 -2
- data/src/core/lib/transport/connectivity_state.cc +7 -6
- data/src/core/lib/transport/connectivity_state.h +5 -3
- data/src/core/lib/transport/metadata.cc +3 -3
- data/src/core/lib/transport/metadata_batch.h +2 -3
- data/src/core/lib/transport/static_metadata.h +1 -1
- data/src/core/lib/transport/status_conversion.cc +6 -14
- data/src/core/lib/transport/transport.cc +2 -3
- data/src/core/lib/transport/transport.h +3 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +8 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/fake_transport_security.cc +10 -15
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl_transport_security.cc +52 -39
- data/src/core/tsi/ssl_transport_security.h +8 -8
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.h +2 -3
- data/src/core/tsi/transport_security_interface.h +3 -3
- data/src/ruby/ext/grpc/rb_call.c +9 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/errors.rb +103 -42
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
- data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
- data/src/ruby/lib/grpc/generic/service.rb +5 -4
- data/src/ruby/lib/grpc/structs.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +7 -1
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/testdata/ca.pem +18 -13
- data/src/ruby/spec/testdata/client.key +26 -14
- data/src/ruby/spec/testdata/client.pem +18 -12
- data/src/ruby/spec/testdata/server1.key +26 -14
- data/src/ruby/spec/testdata/server1.pem +20 -14
- data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
- data/third_party/abseil-cpp/absl/time/clock.h +74 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
- data/third_party/abseil-cpp/absl/time/format.cc +153 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/third_party/abseil-cpp/absl/time/time.cc +499 -0
- data/third_party/abseil-cpp/absl/time/time.h +1584 -0
- data/third_party/boringssl-with-bazel/err_data.c +329 -297
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +18 -26
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
- data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +14 -22
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +15 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +33 -32
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +289 -117
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +13 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +432 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +5 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +41 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +32 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +24 -114
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +51 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +44 -35
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +29 -12
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +4 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +5 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +20 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +31 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +172 -77
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +5 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +0 -4
- data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +146 -57
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +14 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +28 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +12 -4
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +64 -47
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +10 -10
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +21 -21
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +29 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +13 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +64 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +6 -0
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +6 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +47 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -27
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +23 -75
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +50 -20
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +63 -25
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
- metadata +115 -39
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
- data/src/core/lib/gprpp/string_view.h +0 -60
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
@@ -21,6 +21,8 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <string.h>
|
25
|
+
|
24
26
|
#include "src/core/lib/security/credentials/credentials.h"
|
25
27
|
|
26
28
|
#define GRPC_ARG_FAKE_SECURITY_EXPECTED_TARGETS \
|
@@ -75,6 +77,8 @@ class grpc_md_only_test_credentials : public grpc_call_credentials {
|
|
75
77
|
void cancel_get_request_metadata(grpc_credentials_mdelem_array* md_array,
|
76
78
|
grpc_error* error) override;
|
77
79
|
|
80
|
+
std::string debug_string() override { return "MD only Test Credentials"; };
|
81
|
+
|
78
82
|
private:
|
79
83
|
grpc_mdelem md_;
|
80
84
|
bool is_async_;
|
@@ -68,13 +68,12 @@ static grpc_core::internal::grpc_gce_tenancy_checker g_gce_tenancy_checker =
|
|
68
68
|
|
69
69
|
static void init_default_credentials(void) { gpr_mu_init(&g_state_mu); }
|
70
70
|
|
71
|
-
|
71
|
+
struct metadata_server_detector {
|
72
72
|
grpc_polling_entity pollent;
|
73
73
|
int is_done;
|
74
74
|
int success;
|
75
75
|
grpc_http_response response;
|
76
|
-
}
|
77
|
-
|
76
|
+
};
|
78
77
|
grpc_core::RefCountedPtr<grpc_channel_security_connector>
|
79
78
|
grpc_google_default_channel_credentials::create_security_connector(
|
80
79
|
grpc_core::RefCountedPtr<grpc_call_credentials> call_creds,
|
@@ -224,17 +223,13 @@ static grpc_error* create_default_creds_from_path(
|
|
224
223
|
grpc_slice creds_data = grpc_empty_slice();
|
225
224
|
grpc_error* error = GRPC_ERROR_NONE;
|
226
225
|
Json json;
|
227
|
-
grpc_core::StringView str;
|
228
226
|
if (creds_path == nullptr) {
|
229
227
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("creds_path unset");
|
230
228
|
goto end;
|
231
229
|
}
|
232
230
|
error = grpc_load_file(creds_path, 0, &creds_data);
|
233
231
|
if (error != GRPC_ERROR_NONE) goto end;
|
234
|
-
|
235
|
-
reinterpret_cast<char*>(GRPC_SLICE_START_PTR(creds_data)),
|
236
|
-
GRPC_SLICE_LENGTH(creds_data));
|
237
|
-
json = Json::Parse(str, &error);
|
232
|
+
json = Json::Parse(grpc_core::StringViewFromSlice(creds_data), &error);
|
238
233
|
if (error != GRPC_ERROR_NONE) goto end;
|
239
234
|
if (json.type() != Json::Type::OBJECT) {
|
240
235
|
error = grpc_error_set_str(
|
@@ -20,16 +20,15 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/security/credentials/iam/iam_credentials.h"
|
22
22
|
|
23
|
-
#include <string.h>
|
24
|
-
|
25
|
-
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
26
|
-
#include "src/core/lib/surface/api_trace.h"
|
27
|
-
|
28
23
|
#include <grpc/support/alloc.h>
|
29
24
|
#include <grpc/support/log.h>
|
30
25
|
#include <grpc/support/string_util.h>
|
31
26
|
#include <grpc/support/sync.h>
|
32
27
|
|
28
|
+
#include "absl/strings/str_format.h"
|
29
|
+
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
30
|
+
#include "src/core/lib/surface/api_trace.h"
|
31
|
+
|
33
32
|
grpc_google_iam_credentials::~grpc_google_iam_credentials() {
|
34
33
|
grpc_credentials_mdelem_array_destroy(&md_array_);
|
35
34
|
}
|
@@ -49,7 +48,10 @@ void grpc_google_iam_credentials::cancel_get_request_metadata(
|
|
49
48
|
|
50
49
|
grpc_google_iam_credentials::grpc_google_iam_credentials(
|
51
50
|
const char* token, const char* authority_selector)
|
52
|
-
: grpc_call_credentials(GRPC_CALL_CREDENTIALS_TYPE_IAM)
|
51
|
+
: grpc_call_credentials(GRPC_CALL_CREDENTIALS_TYPE_IAM),
|
52
|
+
debug_string_(absl::StrFormat(
|
53
|
+
"GoogleIAMCredentials{Token:%s,AuthoritySelector:%s}",
|
54
|
+
token != nullptr ? "present" : "absent", authority_selector)) {
|
53
55
|
grpc_mdelem md = grpc_mdelem_from_slices(
|
54
56
|
grpc_slice_from_static_string(GRPC_IAM_AUTHORIZATION_TOKEN_METADATA_KEY),
|
55
57
|
grpc_slice_from_copied_string(token));
|
@@ -21,6 +21,8 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <string>
|
25
|
+
|
24
26
|
#include "src/core/lib/security/credentials/credentials.h"
|
25
27
|
|
26
28
|
class grpc_google_iam_credentials : public grpc_call_credentials {
|
@@ -37,9 +39,11 @@ class grpc_google_iam_credentials : public grpc_call_credentials {
|
|
37
39
|
|
38
40
|
void cancel_get_request_metadata(grpc_credentials_mdelem_array* md_array,
|
39
41
|
grpc_error* error) override;
|
42
|
+
std::string debug_string() override { return debug_string_; }
|
40
43
|
|
41
44
|
private:
|
42
45
|
grpc_credentials_mdelem_array md_array_;
|
46
|
+
const std::string debug_string_;
|
43
47
|
};
|
44
48
|
|
45
49
|
#endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_IAM_IAM_CREDENTIALS_H */
|
@@ -127,7 +127,7 @@ grpc_auth_json_key grpc_auth_json_key_create_from_string(
|
|
127
127
|
grpc_error* error = GRPC_ERROR_NONE;
|
128
128
|
Json json = Json::Parse(json_string, &error);
|
129
129
|
GRPC_LOG_IF_ERROR("JSON key parsing", error);
|
130
|
-
return grpc_auth_json_key_create_from_json(
|
130
|
+
return grpc_auth_json_key_create_from_json(json);
|
131
131
|
}
|
132
132
|
|
133
133
|
void grpc_auth_json_key_destruct(grpc_auth_json_key* json_key) {
|
@@ -21,8 +21,6 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include "src/core/tsi/grpc_shadow_boringssl.h"
|
25
|
-
|
26
24
|
#include <grpc/slice.h>
|
27
25
|
#include <openssl/rsa.h>
|
28
26
|
|
@@ -34,14 +32,13 @@
|
|
34
32
|
|
35
33
|
/* --- auth_json_key parsing. --- */
|
36
34
|
|
37
|
-
|
35
|
+
struct grpc_auth_json_key {
|
38
36
|
const char* type;
|
39
37
|
char* private_key_id;
|
40
38
|
char* client_id;
|
41
39
|
char* client_email;
|
42
40
|
RSA* private_key;
|
43
|
-
}
|
44
|
-
|
41
|
+
};
|
45
42
|
/* Returns 1 if the object is valid, 0 otherwise. */
|
46
43
|
int grpc_auth_json_key_is_valid(const grpc_auth_json_key* json_key);
|
47
44
|
|
@@ -21,6 +21,12 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <string>
|
25
|
+
|
26
|
+
#include <grpc/support/time.h>
|
27
|
+
|
28
|
+
#include "absl/strings/str_format.h"
|
29
|
+
#include "absl/time/time.h"
|
24
30
|
#include "src/core/lib/security/credentials/credentials.h"
|
25
31
|
#include "src/core/lib/security/credentials/jwt/json_token.h"
|
26
32
|
|
@@ -43,6 +49,12 @@ class grpc_service_account_jwt_access_credentials
|
|
43
49
|
const gpr_timespec& jwt_lifetime() const { return jwt_lifetime_; }
|
44
50
|
const grpc_auth_json_key& key() const { return key_; }
|
45
51
|
|
52
|
+
std::string debug_string() override {
|
53
|
+
return absl::StrFormat("JWTAccessCredentials{ExpirationTime:%s}",
|
54
|
+
absl::FormatTime(absl::FromUnixMicros(
|
55
|
+
gpr_timespec_to_micros(jwt_lifetime_))));
|
56
|
+
};
|
57
|
+
|
46
58
|
private:
|
47
59
|
void reset_cache();
|
48
60
|
|
@@ -18,8 +18,6 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include "src/core/tsi/grpc_shadow_boringssl.h"
|
22
|
-
|
23
21
|
#include "src/core/lib/security/credentials/jwt/jwt_verifier.h"
|
24
22
|
|
25
23
|
#include <limits.h>
|
@@ -88,9 +86,7 @@ static Json parse_json_part_from_jwt(const char* str, size_t len) {
|
|
88
86
|
gpr_log(GPR_ERROR, "Invalid base64.");
|
89
87
|
return Json(); // JSON null
|
90
88
|
}
|
91
|
-
|
92
|
-
reinterpret_cast<char*>(GRPC_SLICE_START_PTR(slice)),
|
93
|
-
GRPC_SLICE_LENGTH(slice));
|
89
|
+
absl::string_view string = grpc_core::StringViewFromSlice(slice);
|
94
90
|
grpc_error* error = GRPC_ERROR_NONE;
|
95
91
|
Json json = Json::Parse(string, &error);
|
96
92
|
if (error != GRPC_ERROR_NONE) {
|
@@ -122,14 +118,13 @@ static gpr_timespec validate_time_field(const Json& json, const char* key) {
|
|
122
118
|
|
123
119
|
/* --- JOSE header. see http://tools.ietf.org/html/rfc7515#section-4 --- */
|
124
120
|
|
125
|
-
|
121
|
+
struct jose_header {
|
126
122
|
const char* alg;
|
127
123
|
const char* kid;
|
128
124
|
const char* typ;
|
129
125
|
/* TODO(jboeuf): Add others as needed (jku, jwk, x5u, x5c and so on...). */
|
130
126
|
grpc_core::ManualConstructor<Json> json;
|
131
|
-
}
|
132
|
-
|
127
|
+
};
|
133
128
|
static void jose_header_destroy(jose_header* h) {
|
134
129
|
h->json.Destroy();
|
135
130
|
gpr_free(h);
|
@@ -339,7 +334,7 @@ typedef enum {
|
|
339
334
|
HTTP_RESPONSE_COUNT /* must be last */
|
340
335
|
} http_response_index;
|
341
336
|
|
342
|
-
|
337
|
+
struct verifier_cb_ctx {
|
343
338
|
grpc_jwt_verifier* verifier;
|
344
339
|
grpc_polling_entity pollent;
|
345
340
|
jose_header* header;
|
@@ -350,8 +345,7 @@ typedef struct {
|
|
350
345
|
void* user_data;
|
351
346
|
grpc_jwt_verification_done_cb user_cb;
|
352
347
|
grpc_http_response responses[HTTP_RESPONSE_COUNT];
|
353
|
-
}
|
354
|
-
|
348
|
+
};
|
355
349
|
/* Takes ownership of the header, claims and signature. */
|
356
350
|
static verifier_cb_ctx* verifier_cb_ctx_create(
|
357
351
|
grpc_jwt_verifier* verifier, grpc_pollset* pollset, jose_header* header,
|
@@ -396,11 +390,10 @@ gpr_timespec grpc_jwt_verifier_clock_skew = {60, 0, GPR_TIMESPAN};
|
|
396
390
|
/* Max delay defaults to one minute. */
|
397
391
|
grpc_millis grpc_jwt_verifier_max_delay = 60 * GPR_MS_PER_SEC;
|
398
392
|
|
399
|
-
|
393
|
+
struct email_key_mapping {
|
400
394
|
char* email_domain;
|
401
395
|
char* key_url_prefix;
|
402
|
-
}
|
403
|
-
|
396
|
+
};
|
404
397
|
struct grpc_jwt_verifier {
|
405
398
|
email_key_mapping* mappings;
|
406
399
|
size_t num_mappings; /* Should be very few, linear search ok. */
|
@@ -420,7 +413,7 @@ static Json json_from_http(const grpc_httpcli_response* response) {
|
|
420
413
|
}
|
421
414
|
grpc_error* error = GRPC_ERROR_NONE;
|
422
415
|
Json json = Json::Parse(
|
423
|
-
|
416
|
+
absl::string_view(response->body, response->body_length), &error);
|
424
417
|
if (error != GRPC_ERROR_NONE) {
|
425
418
|
gpr_log(GPR_ERROR, "Invalid JSON found in response.");
|
426
419
|
return Json(); // JSON null
|
@@ -71,7 +71,7 @@ gpr_timespec grpc_jwt_claims_not_before(const grpc_jwt_claims* claims);
|
|
71
71
|
|
72
72
|
typedef struct grpc_jwt_verifier grpc_jwt_verifier;
|
73
73
|
|
74
|
-
|
74
|
+
struct grpc_jwt_verifier_email_domain_key_url_mapping {
|
75
75
|
/* The email domain is the part after the @ sign. */
|
76
76
|
const char* email_domain;
|
77
77
|
|
@@ -79,8 +79,7 @@ typedef struct {
|
|
79
79
|
https://<key_url_prefix>/<issuer_email>
|
80
80
|
Therefore the key_url_prefix must NOT contain https://. */
|
81
81
|
const char* key_url_prefix;
|
82
|
-
}
|
83
|
-
|
82
|
+
};
|
84
83
|
/* Globals to control the verifier. Not thread-safe. */
|
85
84
|
extern gpr_timespec grpc_jwt_verifier_clock_skew;
|
86
85
|
extern grpc_millis grpc_jwt_verifier_max_delay;
|
@@ -23,6 +23,9 @@
|
|
23
23
|
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
+
#include "absl/container/inlined_vector.h"
|
27
|
+
#include "absl/strings/str_join.h"
|
28
|
+
|
26
29
|
#include <grpc/grpc_security.h>
|
27
30
|
#include <grpc/impl/codegen/slice.h>
|
28
31
|
#include <grpc/slice.h>
|
@@ -30,8 +33,8 @@
|
|
30
33
|
#include <grpc/support/log.h>
|
31
34
|
#include <grpc/support/string_util.h>
|
32
35
|
|
36
|
+
#include "absl/strings/str_format.h"
|
33
37
|
#include "src/core/lib/gpr/string.h"
|
34
|
-
#include "src/core/lib/gprpp/inlined_vector.h"
|
35
38
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
36
39
|
#include "src/core/lib/iomgr/error.h"
|
37
40
|
#include "src/core/lib/iomgr/load_file.h"
|
@@ -96,7 +99,7 @@ grpc_auth_refresh_token grpc_auth_refresh_token_create_from_string(
|
|
96
99
|
gpr_log(GPR_ERROR, "JSON parsing failed: %s", grpc_error_string(error));
|
97
100
|
GRPC_ERROR_UNREF(error);
|
98
101
|
}
|
99
|
-
return grpc_auth_refresh_token_create_from_json(
|
102
|
+
return grpc_auth_refresh_token_create_from_json(json);
|
100
103
|
}
|
101
104
|
|
102
105
|
void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token* refresh_token) {
|
@@ -358,6 +361,10 @@ grpc_oauth2_token_fetcher_credentials::grpc_oauth2_token_fetcher_credentials()
|
|
358
361
|
grpc_httpcli_context_init(&httpcli_context_);
|
359
362
|
}
|
360
363
|
|
364
|
+
std::string grpc_oauth2_token_fetcher_credentials::debug_string() {
|
365
|
+
return "OAuth2TokenFetcherCredentials";
|
366
|
+
}
|
367
|
+
|
361
368
|
//
|
362
369
|
// Google Compute Engine credentials.
|
363
370
|
//
|
@@ -396,6 +403,12 @@ class grpc_compute_engine_token_fetcher_credentials
|
|
396
403
|
grpc_resource_quota_unref_internal(resource_quota);
|
397
404
|
}
|
398
405
|
|
406
|
+
std::string debug_string() override {
|
407
|
+
return absl::StrFormat(
|
408
|
+
"GoogleComputeEngineTokenFetcherCredentials{%s}",
|
409
|
+
grpc_oauth2_token_fetcher_credentials::debug_string());
|
410
|
+
}
|
411
|
+
|
399
412
|
private:
|
400
413
|
grpc_closure http_get_cb_closure_;
|
401
414
|
};
|
@@ -468,6 +481,12 @@ grpc_refresh_token_credentials_create_from_auth_refresh_token(
|
|
468
481
|
refresh_token);
|
469
482
|
}
|
470
483
|
|
484
|
+
std::string grpc_google_refresh_token_credentials::debug_string() {
|
485
|
+
return absl::StrFormat("GoogleRefreshToken{ClientID:%s,%s}",
|
486
|
+
refresh_token_.client_id,
|
487
|
+
grpc_oauth2_token_fetcher_credentials::debug_string());
|
488
|
+
}
|
489
|
+
|
471
490
|
static char* create_loggable_refresh_token(grpc_auth_refresh_token* token) {
|
472
491
|
if (strcmp(token->type, GRPC_AUTH_JSON_TYPE_INVALID) == 0) {
|
473
492
|
return gpr_strdup("<Invalid json token>");
|
@@ -505,12 +524,10 @@ namespace grpc_core {
|
|
505
524
|
|
506
525
|
namespace {
|
507
526
|
|
508
|
-
void MaybeAddToBody(
|
509
|
-
|
527
|
+
void MaybeAddToBody(const char* field_name, const char* field,
|
528
|
+
std::vector<std::string>* body) {
|
510
529
|
if (field == nullptr || strlen(field) == 0) return;
|
511
|
-
|
512
|
-
gpr_asprintf(&new_query, "&%s=%s", field_name, field);
|
513
|
-
gpr_strvec_add(body_strvec, new_query);
|
530
|
+
body->push_back(absl::StrFormat("&%s=%s", field_name, field));
|
514
531
|
}
|
515
532
|
|
516
533
|
grpc_error* LoadTokenFile(const char* path, gpr_slice* token) {
|
@@ -540,6 +557,13 @@ class StsTokenFetcherCredentials
|
|
540
557
|
|
541
558
|
~StsTokenFetcherCredentials() override { grpc_uri_destroy(sts_url_); }
|
542
559
|
|
560
|
+
std::string debug_string() override {
|
561
|
+
return absl::StrFormat(
|
562
|
+
"StsTokenFetcherCredentials{Path:%s,Authority:%s,%s}", sts_url_->path,
|
563
|
+
sts_url_->authority,
|
564
|
+
grpc_oauth2_token_fetcher_credentials::debug_string());
|
565
|
+
}
|
566
|
+
|
543
567
|
private:
|
544
568
|
void fetch_oauth2(grpc_credentials_metadata_request* metadata_req,
|
545
569
|
grpc_httpcli_context* http_context,
|
@@ -583,20 +607,18 @@ class StsTokenFetcherCredentials
|
|
583
607
|
|
584
608
|
grpc_error* FillBody(char** body, size_t* body_length) {
|
585
609
|
*body = nullptr;
|
586
|
-
|
587
|
-
gpr_strvec_init(&body_strvec);
|
610
|
+
std::vector<std::string> body_parts;
|
588
611
|
grpc_slice subject_token = grpc_empty_slice();
|
589
612
|
grpc_slice actor_token = grpc_empty_slice();
|
590
613
|
grpc_error* err = GRPC_ERROR_NONE;
|
591
614
|
|
592
|
-
auto cleanup = [&body, &body_length, &
|
615
|
+
auto cleanup = [&body, &body_length, &body_parts, &subject_token,
|
593
616
|
&actor_token, &err]() {
|
594
617
|
if (err == GRPC_ERROR_NONE) {
|
595
|
-
|
596
|
-
|
597
|
-
|
618
|
+
std::string body_str = absl::StrJoin(body_parts, "");
|
619
|
+
*body = gpr_strdup(body_str.c_str());
|
620
|
+
*body_length = body_str.size();
|
598
621
|
}
|
599
|
-
gpr_strvec_destroy(&body_strvec);
|
600
622
|
grpc_slice_unref_internal(subject_token);
|
601
623
|
grpc_slice_unref_internal(actor_token);
|
602
624
|
return err;
|
@@ -604,23 +626,23 @@ class StsTokenFetcherCredentials
|
|
604
626
|
|
605
627
|
err = LoadTokenFile(subject_token_path_.get(), &subject_token);
|
606
628
|
if (err != GRPC_ERROR_NONE) return cleanup();
|
607
|
-
|
608
|
-
|
629
|
+
body_parts.push_back(absl::StrFormat(
|
630
|
+
GRPC_STS_POST_MINIMAL_BODY_FORMAT_STRING,
|
609
631
|
reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(subject_token)),
|
610
|
-
subject_token_type_.get());
|
611
|
-
|
612
|
-
MaybeAddToBody(
|
613
|
-
MaybeAddToBody(
|
614
|
-
MaybeAddToBody(
|
615
|
-
|
616
|
-
requested_token_type_.get());
|
632
|
+
subject_token_type_.get()));
|
633
|
+
MaybeAddToBody("resource", resource_.get(), &body_parts);
|
634
|
+
MaybeAddToBody("audience", audience_.get(), &body_parts);
|
635
|
+
MaybeAddToBody("scope", scope_.get(), &body_parts);
|
636
|
+
MaybeAddToBody("requested_token_type", requested_token_type_.get(),
|
637
|
+
&body_parts);
|
617
638
|
if ((actor_token_path_ != nullptr) && *actor_token_path_ != '\0') {
|
618
639
|
err = LoadTokenFile(actor_token_path_.get(), &actor_token);
|
619
640
|
if (err != GRPC_ERROR_NONE) return cleanup();
|
620
641
|
MaybeAddToBody(
|
621
|
-
|
622
|
-
reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(actor_token))
|
623
|
-
|
642
|
+
"actor_token",
|
643
|
+
reinterpret_cast<const char*>(GRPC_SLICE_START_PTR(actor_token)),
|
644
|
+
&body_parts);
|
645
|
+
MaybeAddToBody("actor_token_type", actor_token_type_.get(), &body_parts);
|
624
646
|
}
|
625
647
|
return cleanup();
|
626
648
|
}
|
@@ -645,7 +667,7 @@ grpc_error* ValidateStsCredentialsOptions(
|
|
645
667
|
void operator()(grpc_uri* uri) { grpc_uri_destroy(uri); }
|
646
668
|
};
|
647
669
|
*sts_url_out = nullptr;
|
648
|
-
InlinedVector<grpc_error*, 3> error_list;
|
670
|
+
absl::InlinedVector<grpc_error*, 3> error_list;
|
649
671
|
std::unique_ptr<grpc_uri, GrpcUriDeleter> sts_url(
|
650
672
|
options->token_exchange_service_uri != nullptr
|
651
673
|
? grpc_uri_parse(options->token_exchange_service_uri, false)
|
@@ -731,6 +753,12 @@ grpc_access_token_credentials::grpc_access_token_credentials(
|
|
731
753
|
gpr_free(token_md_value);
|
732
754
|
}
|
733
755
|
|
756
|
+
std::string grpc_access_token_credentials::debug_string() {
|
757
|
+
bool access_token_present = !GRPC_MDISNULL(access_token_md_);
|
758
|
+
return absl::StrFormat("AccessTokenCredentials{Token:%s}",
|
759
|
+
access_token_present ? "present" : "absent");
|
760
|
+
}
|
761
|
+
|
734
762
|
grpc_call_credentials* grpc_access_token_credentials_create(
|
735
763
|
const char* access_token, void* reserved) {
|
736
764
|
GRPC_API_TRACE(
|
@@ -21,6 +21,8 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <string>
|
25
|
+
|
24
26
|
#include <grpc/grpc_security.h>
|
25
27
|
#include "src/core/lib/json/json.h"
|
26
28
|
#include "src/core/lib/security/credentials/credentials.h"
|
@@ -32,13 +34,12 @@
|
|
32
34
|
"s&subject_token_type=%s"
|
33
35
|
|
34
36
|
// auth_refresh_token parsing.
|
35
|
-
|
37
|
+
struct grpc_auth_refresh_token {
|
36
38
|
const char* type;
|
37
39
|
char* client_id;
|
38
40
|
char* client_secret;
|
39
41
|
char* refresh_token;
|
40
|
-
}
|
41
|
-
|
42
|
+
};
|
42
43
|
/// Returns 1 if the object is valid, 0 otherwise.
|
43
44
|
int grpc_auth_refresh_token_is_valid(
|
44
45
|
const grpc_auth_refresh_token* refresh_token);
|
@@ -84,6 +85,7 @@ class grpc_oauth2_token_fetcher_credentials : public grpc_call_credentials {
|
|
84
85
|
|
85
86
|
void on_http_response(grpc_credentials_metadata_request* r,
|
86
87
|
grpc_error* error);
|
88
|
+
std::string debug_string() override;
|
87
89
|
|
88
90
|
protected:
|
89
91
|
virtual void fetch_oauth2(grpc_credentials_metadata_request* req,
|
@@ -112,6 +114,8 @@ class grpc_google_refresh_token_credentials final
|
|
112
114
|
return refresh_token_;
|
113
115
|
}
|
114
116
|
|
117
|
+
std::string debug_string() override;
|
118
|
+
|
115
119
|
protected:
|
116
120
|
void fetch_oauth2(grpc_credentials_metadata_request* req,
|
117
121
|
grpc_httpcli_context* httpcli_context,
|
@@ -138,6 +142,8 @@ class grpc_access_token_credentials final : public grpc_call_credentials {
|
|
138
142
|
void cancel_get_request_metadata(grpc_credentials_mdelem_array* md_array,
|
139
143
|
grpc_error* error) override;
|
140
144
|
|
145
|
+
std::string debug_string() override;
|
146
|
+
|
141
147
|
private:
|
142
148
|
grpc_mdelem access_token_md_;
|
143
149
|
};
|