grpc 1.36.0 → 1.38.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 +126 -92
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +15 -1
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -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 +715 -3166
- 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_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +9 -1
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +18 -14
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- 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 +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -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 +36 -30
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +29 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +32 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +86 -63
- 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/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver.cc +3 -0
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
- 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_libuv.cc +3 -3
- 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 +17 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +38 -33
- 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_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 +17 -9
- 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 +31 -14
- 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 +334 -114
- 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 +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- data/src/core/ext/filters/client_channel/server_address.cc +4 -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 +86 -162
- data/src/core/ext/filters/client_channel/subchannel.h +68 -99
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
- 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 +501 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- 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 +5 -4
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +5 -4
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +485 -199
- 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 +3 -3
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +167 -122
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- 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 +13 -9
- 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_encoder.cc +1 -1
- 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 +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +44 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +13 -9
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +13 -7
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +21 -20
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- 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 +1649 -329
- data/src/core/ext/xds/xds_api.h +284 -44
- data/src/core/ext/xds/xds_bootstrap.cc +110 -156
- data/src/core/ext/xds/xds_bootstrap.h +24 -25
- 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 +454 -177
- data/src/core/ext/xds/xds_client.h +62 -22
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +410 -131
- 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 +107 -4
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +26 -6
- data/src/core/lib/channel/channel_stack.cc +22 -9
- data/src/core/lib/channel/channel_stack.h +17 -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 +108 -12
- data/src/core/lib/channel/channelz.h +30 -1
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +7 -45
- data/src/core/lib/channel/handshaker.h +5 -22
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/gprpp/thd.h +1 -1
- 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 +5 -6
- 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 +5 -5
- 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_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +218 -107
- 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 +6 -6
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +22 -22
- 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 +12 -11
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +10 -6
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- 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 +1 -1
- 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 +1 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
- 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 +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -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 +12 -11
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
- 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 +15 -17
- 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 +37 -38
- 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 +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- 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 +27 -25
- 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_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +8 -8
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- 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_nospecial.cc +1 -1
- 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/{security/authorization → matchers}/matchers.cc +47 -47
- data/src/core/lib/{security/authorization → matchers}/matchers.h +42 -40
- 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 +9 -9
- 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/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 +14 -4
- 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 +28 -8
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +62 -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 +65 -34
- data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
- 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/slice/slice_intern.cc +6 -7
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +6 -5
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/lame_client.cc +43 -24
- data/src/core/lib/surface/lame_client.h +4 -3
- data/src/core/lib/surface/server.cc +68 -55
- data/src/core/lib/surface/server.h +89 -29
- 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 +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +64 -37
- data/src/core/lib/transport/metadata_batch.h +33 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +6 -8
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- data/src/core/tsi/fake_transport_security.cc +10 -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 +9 -1
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -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/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- 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 +478 -462
- 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 +1 -1
- 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/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/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- 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/cipher/cipher.c +32 -16
- 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/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- 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 +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- 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/rand.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -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 +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
- 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 +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -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 -30
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -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_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
- 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_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
- 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/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -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 +1 -38
- 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/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- 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/ssl.h +210 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -122
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- 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 +74 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +131 -83
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +128 -61
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -99
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
- 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/upb/upb/json_decode.c +0 -1443
- data/third_party/upb/upb/json_decode.h +0 -23
- data/third_party/upb/upb/json_encode.c +0 -713
- data/third_party/upb/upb/json_encode.h +0 -36
@@ -63,7 +63,7 @@ grpc_slice GetSystemRootCerts() {
|
|
63
63
|
grpc_slice valid_bundle_slice = grpc_empty_slice();
|
64
64
|
size_t num_cert_files_ = GPR_ARRAY_SIZE(kLinuxCertFiles);
|
65
65
|
for (size_t i = 0; i < num_cert_files_; i++) {
|
66
|
-
|
66
|
+
grpc_error_handle error =
|
67
67
|
grpc_load_file(kLinuxCertFiles[i], 1, &valid_bundle_slice);
|
68
68
|
if (error == GRPC_ERROR_NONE) {
|
69
69
|
return valid_bundle_slice;
|
@@ -29,12 +29,12 @@
|
|
29
29
|
#include <grpc/support/string_util.h>
|
30
30
|
|
31
31
|
#include "src/core/ext/filters/client_channel/client_channel.h"
|
32
|
+
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
32
33
|
#include "src/core/lib/channel/channel_args.h"
|
33
34
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
34
35
|
#include "src/core/lib/iomgr/pollset.h"
|
35
36
|
#include "src/core/lib/iomgr/resolve_address.h"
|
36
37
|
#include "src/core/lib/iomgr/sockaddr.h"
|
37
|
-
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
38
38
|
#include "src/core/lib/iomgr/socket_utils.h"
|
39
39
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
40
40
|
#include "src/core/lib/security/credentials/local/local_credentials.h"
|
@@ -103,7 +103,7 @@ void local_check_peer(tsi_peer peer, grpc_endpoint* ep,
|
|
103
103
|
}
|
104
104
|
}
|
105
105
|
}
|
106
|
-
|
106
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
107
107
|
if (!is_endpoint_local) {
|
108
108
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
109
109
|
"Endpoint is neither UDS or TCP loopback address.");
|
@@ -181,10 +181,15 @@ class grpc_local_channel_security_connector final
|
|
181
181
|
creds->connect_type());
|
182
182
|
}
|
183
183
|
|
184
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
185
|
+
grpc_error_handle error) override {
|
186
|
+
GRPC_ERROR_UNREF(error);
|
187
|
+
}
|
188
|
+
|
184
189
|
bool check_call_host(absl::string_view host,
|
185
190
|
grpc_auth_context* /*auth_context*/,
|
186
191
|
grpc_closure* /*on_call_host_checked*/,
|
187
|
-
|
192
|
+
grpc_error_handle* error) override {
|
188
193
|
if (host.empty() || host != target_name_) {
|
189
194
|
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
190
195
|
"local call host does not match target name");
|
@@ -193,7 +198,7 @@ class grpc_local_channel_security_connector final
|
|
193
198
|
}
|
194
199
|
|
195
200
|
void cancel_check_call_host(grpc_closure* /*on_call_host_checked*/,
|
196
|
-
|
201
|
+
grpc_error_handle error) override {
|
197
202
|
GRPC_ERROR_UNREF(error);
|
198
203
|
}
|
199
204
|
|
@@ -230,6 +235,11 @@ class grpc_local_server_security_connector final
|
|
230
235
|
creds->connect_type());
|
231
236
|
}
|
232
237
|
|
238
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
239
|
+
grpc_error_handle error) override {
|
240
|
+
GRPC_ERROR_UNREF(error);
|
241
|
+
}
|
242
|
+
|
233
243
|
int cmp(const grpc_security_connector* other) const override {
|
234
244
|
return server_security_connector_cmp(
|
235
245
|
static_cast<const grpc_server_security_connector*>(other));
|
@@ -55,13 +55,18 @@ class grpc_security_connector
|
|
55
55
|
url_scheme_(url_scheme) {}
|
56
56
|
~grpc_security_connector() override = default;
|
57
57
|
|
58
|
-
|
59
|
-
|
58
|
+
// Checks the peer. Callee takes ownership of the peer object.
|
59
|
+
// When done, sets *auth_context and invokes on_peer_checked.
|
60
60
|
virtual void check_peer(
|
61
61
|
tsi_peer peer, grpc_endpoint* ep,
|
62
62
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
63
63
|
grpc_closure* on_peer_checked) = 0;
|
64
64
|
|
65
|
+
// Cancels the pending check_peer() request associated with on_peer_checked.
|
66
|
+
// If there is no such request pending, this is a no-op.
|
67
|
+
virtual void cancel_check_peer(grpc_closure* on_peer_checked,
|
68
|
+
grpc_error_handle error) = 0;
|
69
|
+
|
65
70
|
/* Compares two security connectors. */
|
66
71
|
virtual int cmp(const grpc_security_connector* other) const = 0;
|
67
72
|
|
@@ -103,12 +108,12 @@ class grpc_channel_security_connector : public grpc_security_connector {
|
|
103
108
|
virtual bool check_call_host(absl::string_view host,
|
104
109
|
grpc_auth_context* auth_context,
|
105
110
|
grpc_closure* on_call_host_checked,
|
106
|
-
|
111
|
+
grpc_error_handle* error) = 0;
|
107
112
|
/// Cancels a pending asynchronous call to
|
108
113
|
/// grpc_channel_security_connector_check_call_host() with
|
109
114
|
/// \a on_call_host_checked as its callback.
|
110
115
|
virtual void cancel_check_call_host(grpc_closure* on_call_host_checked,
|
111
|
-
|
116
|
+
grpc_error_handle error) = 0;
|
112
117
|
/// Registers handshakers with \a handshake_mgr.
|
113
118
|
virtual void add_handshakers(const grpc_channel_args* args,
|
114
119
|
grpc_pollset_set* interested_parties,
|
@@ -45,10 +45,10 @@
|
|
45
45
|
#include "src/core/tsi/transport_security.h"
|
46
46
|
|
47
47
|
namespace {
|
48
|
-
|
48
|
+
grpc_error_handle ssl_check_peer(
|
49
49
|
const char* peer_name, const tsi_peer* peer,
|
50
50
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context) {
|
51
|
-
|
51
|
+
grpc_error_handle error = grpc_ssl_check_alpn(peer);
|
52
52
|
if (error != GRPC_ERROR_NONE) {
|
53
53
|
return error;
|
54
54
|
}
|
@@ -145,7 +145,7 @@ class grpc_ssl_channel_security_connector final
|
|
145
145
|
const char* target_name = overridden_target_name_.empty()
|
146
146
|
? target_name_.c_str()
|
147
147
|
: overridden_target_name_.c_str();
|
148
|
-
|
148
|
+
grpc_error_handle error = ssl_check_peer(target_name, &peer, auth_context);
|
149
149
|
if (error == GRPC_ERROR_NONE &&
|
150
150
|
verify_options_->verify_peer_callback != nullptr) {
|
151
151
|
const tsi_peer_property* p =
|
@@ -173,6 +173,11 @@ class grpc_ssl_channel_security_connector final
|
|
173
173
|
tsi_peer_destruct(&peer);
|
174
174
|
}
|
175
175
|
|
176
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
177
|
+
grpc_error_handle error) override {
|
178
|
+
GRPC_ERROR_UNREF(error);
|
179
|
+
}
|
180
|
+
|
176
181
|
int cmp(const grpc_security_connector* other_sc) const override {
|
177
182
|
auto* other =
|
178
183
|
reinterpret_cast<const grpc_ssl_channel_security_connector*>(other_sc);
|
@@ -185,14 +190,14 @@ class grpc_ssl_channel_security_connector final
|
|
185
190
|
|
186
191
|
bool check_call_host(absl::string_view host, grpc_auth_context* auth_context,
|
187
192
|
grpc_closure* /*on_call_host_checked*/,
|
188
|
-
|
193
|
+
grpc_error_handle* error) override {
|
189
194
|
return grpc_ssl_check_call_host(host, target_name_.c_str(),
|
190
195
|
overridden_target_name_.c_str(),
|
191
196
|
auth_context, error);
|
192
197
|
}
|
193
198
|
|
194
199
|
void cancel_check_call_host(grpc_closure* /*on_call_host_checked*/,
|
195
|
-
|
200
|
+
grpc_error_handle error) override {
|
196
201
|
GRPC_ERROR_UNREF(error);
|
197
202
|
}
|
198
203
|
|
@@ -288,11 +293,16 @@ class grpc_ssl_server_security_connector
|
|
288
293
|
void check_peer(tsi_peer peer, grpc_endpoint* /*ep*/,
|
289
294
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
290
295
|
grpc_closure* on_peer_checked) override {
|
291
|
-
|
296
|
+
grpc_error_handle error = ssl_check_peer(nullptr, &peer, auth_context);
|
292
297
|
tsi_peer_destruct(&peer);
|
293
298
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
|
294
299
|
}
|
295
300
|
|
301
|
+
void cancel_check_peer(grpc_closure* /*on_peer_checked*/,
|
302
|
+
grpc_error_handle error) override {
|
303
|
+
GRPC_ERROR_UNREF(error);
|
304
|
+
}
|
305
|
+
|
296
306
|
int cmp(const grpc_security_connector* other) const override {
|
297
307
|
return server_security_connector_cmp(
|
298
308
|
static_cast<const grpc_server_security_connector*>(other));
|
@@ -41,11 +41,13 @@
|
|
41
41
|
|
42
42
|
/* -- Constants. -- */
|
43
43
|
|
44
|
-
#
|
45
|
-
static const char* installed_roots_path =
|
46
|
-
#
|
44
|
+
#if defined(GRPC_ROOT_PEM_PATH)
|
45
|
+
static const char* installed_roots_path = GRPC_ROOT_PEM_PATH;
|
46
|
+
#elif defined(INSTALL_PREFIX)
|
47
47
|
static const char* installed_roots_path =
|
48
|
-
INSTALL_PREFIX "/share/grpc/roots.pem";
|
48
|
+
INSTALL_PREFIX "/usr/share/grpc/roots.pem";
|
49
|
+
#else
|
50
|
+
static const char* installed_roots_path = "/usr/share/grpc/roots.pem";
|
49
51
|
#endif
|
50
52
|
|
51
53
|
#ifndef TSI_OPENSSL_ALPN_SUPPORT
|
@@ -150,7 +152,7 @@ tsi_tls_version grpc_get_tsi_tls_version(grpc_tls_version tls_version) {
|
|
150
152
|
}
|
151
153
|
}
|
152
154
|
|
153
|
-
|
155
|
+
grpc_error_handle grpc_ssl_check_alpn(const tsi_peer* peer) {
|
154
156
|
#if TSI_OPENSSL_ALPN_SUPPORT
|
155
157
|
/* Check the ALPN if ALPN is supported. */
|
156
158
|
const tsi_peer_property* p =
|
@@ -167,8 +169,8 @@ grpc_error* grpc_ssl_check_alpn(const tsi_peer* peer) {
|
|
167
169
|
return GRPC_ERROR_NONE;
|
168
170
|
}
|
169
171
|
|
170
|
-
|
171
|
-
|
172
|
+
grpc_error_handle grpc_ssl_check_peer_name(absl::string_view peer_name,
|
173
|
+
const tsi_peer* peer) {
|
172
174
|
/* Check the peer name if specified. */
|
173
175
|
if (!peer_name.empty() && !grpc_ssl_host_matches_name(peer, peer_name)) {
|
174
176
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -182,7 +184,7 @@ bool grpc_ssl_check_call_host(absl::string_view host,
|
|
182
184
|
absl::string_view target_name,
|
183
185
|
absl::string_view overridden_target_name,
|
184
186
|
grpc_auth_context* auth_context,
|
185
|
-
|
187
|
+
grpc_error_handle* error) {
|
186
188
|
grpc_security_status status = GRPC_SECURITY_ERROR;
|
187
189
|
tsi_peer peer = grpc_shallow_peer_from_ssl_auth_context(auth_context);
|
188
190
|
if (grpc_ssl_host_matches_name(&peer, host)) status = GRPC_SECURITY_OK;
|
@@ -303,6 +305,9 @@ grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
|
|
303
305
|
grpc_auth_context_add_property(
|
304
306
|
ctx.get(), GRPC_TRANSPORT_SECURITY_LEVEL_PROPERTY_NAME,
|
305
307
|
prop->value.data, prop->value.length);
|
308
|
+
} else if (strcmp(prop->name, TSI_X509_DNS_PEER_PROPERTY) == 0) {
|
309
|
+
grpc_auth_context_add_property(ctx.get(), GRPC_PEER_DNS_PROPERTY_NAME,
|
310
|
+
prop->value.data, prop->value.length);
|
306
311
|
} else if (strcmp(prop->name, TSI_X509_URI_PEER_PROPERTY) == 0) {
|
307
312
|
uri_count++;
|
308
313
|
absl::string_view spiffe_id(prop->value.data, prop->value.length);
|
@@ -311,6 +316,12 @@ grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
|
|
311
316
|
spiffe_length = prop->value.length;
|
312
317
|
has_spiffe_id = true;
|
313
318
|
}
|
319
|
+
} else if (strcmp(prop->name, TSI_X509_EMAIL_PEER_PROPERTY) == 0) {
|
320
|
+
grpc_auth_context_add_property(ctx.get(), GRPC_PEER_EMAIL_PROPERTY_NAME,
|
321
|
+
prop->value.data, prop->value.length);
|
322
|
+
} else if (strcmp(prop->name, TSI_X509_IP_PEER_PROPERTY) == 0) {
|
323
|
+
grpc_auth_context_add_property(ctx.get(), GRPC_PEER_IP_PROPERTY_NAME,
|
324
|
+
prop->value.data, prop->value.length);
|
314
325
|
}
|
315
326
|
}
|
316
327
|
if (peer_identity_property_name != nullptr) {
|
@@ -374,9 +385,18 @@ tsi_peer grpc_shallow_peer_from_ssl_auth_context(
|
|
374
385
|
0) {
|
375
386
|
add_shallow_auth_property_to_peer(&peer, prop,
|
376
387
|
TSI_X509_PEM_CERT_CHAIN_PROPERTY);
|
388
|
+
} else if (strcmp(prop->name, GRPC_PEER_DNS_PROPERTY_NAME) == 0) {
|
389
|
+
add_shallow_auth_property_to_peer(&peer, prop,
|
390
|
+
TSI_X509_DNS_PEER_PROPERTY);
|
377
391
|
} else if (strcmp(prop->name, GRPC_PEER_SPIFFE_ID_PROPERTY_NAME) == 0) {
|
378
392
|
add_shallow_auth_property_to_peer(&peer, prop,
|
379
393
|
TSI_X509_URI_PEER_PROPERTY);
|
394
|
+
} else if (strcmp(prop->name, GRPC_PEER_EMAIL_PROPERTY_NAME) == 0) {
|
395
|
+
add_shallow_auth_property_to_peer(&peer, prop,
|
396
|
+
TSI_X509_EMAIL_PEER_PROPERTY);
|
397
|
+
} else if (strcmp(prop->name, GRPC_PEER_IP_PROPERTY_NAME) == 0) {
|
398
|
+
add_shallow_auth_property_to_peer(&peer, prop,
|
399
|
+
TSI_X509_IP_PEER_PROPERTY);
|
380
400
|
}
|
381
401
|
}
|
382
402
|
}
|
@@ -44,11 +44,11 @@
|
|
44
44
|
#define GRPC_SSL_URL_SCHEME "https"
|
45
45
|
|
46
46
|
/* Check ALPN information returned from SSL handshakes. */
|
47
|
-
|
47
|
+
grpc_error_handle grpc_ssl_check_alpn(const tsi_peer* peer);
|
48
48
|
|
49
49
|
/* Check peer name information returned from SSL handshakes. */
|
50
|
-
|
51
|
-
|
50
|
+
grpc_error_handle grpc_ssl_check_peer_name(absl::string_view peer_name,
|
51
|
+
const tsi_peer* peer);
|
52
52
|
/* Compare targer_name information extracted from SSL security connectors. */
|
53
53
|
int grpc_ssl_cmp_target_name(absl::string_view target_name,
|
54
54
|
absl::string_view other_target_name,
|
@@ -59,7 +59,7 @@ bool grpc_ssl_check_call_host(absl::string_view host,
|
|
59
59
|
absl::string_view target_name,
|
60
60
|
absl::string_view overridden_target_name,
|
61
61
|
grpc_auth_context* auth_context,
|
62
|
-
|
62
|
+
grpc_error_handle* error);
|
63
63
|
/* Return HTTP2-compliant cipher suites that gRPC accepts by default. */
|
64
64
|
const char* grpc_get_ssl_cipher_suites(void);
|
65
65
|
|
@@ -46,7 +46,7 @@ namespace grpc_core {
|
|
46
46
|
namespace {
|
47
47
|
|
48
48
|
tsi_ssl_pem_key_cert_pair* ConvertToTsiPemKeyCertPair(
|
49
|
-
const
|
49
|
+
const PemKeyCertPairList& cert_pair_list) {
|
50
50
|
tsi_ssl_pem_key_cert_pair* tsi_pairs = nullptr;
|
51
51
|
size_t num_key_cert_pairs = cert_pair_list.size();
|
52
52
|
if (num_key_cert_pairs > 0) {
|
@@ -68,11 +68,11 @@ tsi_ssl_pem_key_cert_pair* ConvertToTsiPemKeyCertPair(
|
|
68
68
|
} // namespace
|
69
69
|
|
70
70
|
// -------------------channel security connector-------------------
|
71
|
-
|
71
|
+
RefCountedPtr<grpc_channel_security_connector>
|
72
72
|
TlsChannelSecurityConnector::CreateTlsChannelSecurityConnector(
|
73
|
-
|
74
|
-
|
75
|
-
|
73
|
+
RefCountedPtr<grpc_channel_credentials> channel_creds,
|
74
|
+
RefCountedPtr<grpc_tls_credentials_options> options,
|
75
|
+
RefCountedPtr<grpc_call_credentials> request_metadata_creds,
|
76
76
|
const char* target_name, const char* overridden_target_name,
|
77
77
|
tsi_ssl_session_cache* ssl_session_cache) {
|
78
78
|
if (channel_creds == nullptr) {
|
@@ -93,18 +93,16 @@ TlsChannelSecurityConnector::CreateTlsChannelSecurityConnector(
|
|
93
93
|
"TlsChannelSecurityConnectorCreate()");
|
94
94
|
return nullptr;
|
95
95
|
}
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
overridden_target_name, ssl_session_cache);
|
101
|
-
return c;
|
96
|
+
return MakeRefCounted<TlsChannelSecurityConnector>(
|
97
|
+
std::move(channel_creds), std::move(options),
|
98
|
+
std::move(request_metadata_creds), target_name, overridden_target_name,
|
99
|
+
ssl_session_cache);
|
102
100
|
}
|
103
101
|
|
104
102
|
TlsChannelSecurityConnector::TlsChannelSecurityConnector(
|
105
|
-
|
106
|
-
|
107
|
-
|
103
|
+
RefCountedPtr<grpc_channel_credentials> channel_creds,
|
104
|
+
RefCountedPtr<grpc_tls_credentials_options> options,
|
105
|
+
RefCountedPtr<grpc_call_credentials> request_metadata_creds,
|
108
106
|
const char* target_name, const char* overridden_target_name,
|
109
107
|
tsi_ssl_session_cache* ssl_session_cache)
|
110
108
|
: grpc_channel_security_connector(GRPC_SSL_URL_SCHEME,
|
@@ -120,7 +118,7 @@ TlsChannelSecurityConnector::TlsChannelSecurityConnector(
|
|
120
118
|
check_arg_ = ServerAuthorizationCheckArgCreate(this);
|
121
119
|
absl::string_view host;
|
122
120
|
absl::string_view port;
|
123
|
-
|
121
|
+
SplitHostPort(target_name, &host, &port);
|
124
122
|
target_name_ = std::string(host);
|
125
123
|
// Create a watcher.
|
126
124
|
auto watcher_ptr = absl::make_unique<TlsChannelCertificateWatcher>(this);
|
@@ -172,8 +170,8 @@ TlsChannelSecurityConnector::~TlsChannelSecurityConnector() {
|
|
172
170
|
|
173
171
|
void TlsChannelSecurityConnector::add_handshakers(
|
174
172
|
const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
|
175
|
-
|
176
|
-
|
173
|
+
HandshakeManager* handshake_mgr) {
|
174
|
+
MutexLock lock(&mu_);
|
177
175
|
if (client_handshaker_factory_ != nullptr) {
|
178
176
|
// Instantiate TSI handshaker.
|
179
177
|
tsi_handshaker* tsi_hs = nullptr;
|
@@ -188,7 +186,7 @@ void TlsChannelSecurityConnector::add_handshakers(
|
|
188
186
|
return;
|
189
187
|
}
|
190
188
|
// Create handshakers.
|
191
|
-
handshake_mgr->Add(
|
189
|
+
handshake_mgr->Add(SecurityHandshakerCreate(tsi_hs, this, args));
|
192
190
|
return;
|
193
191
|
}
|
194
192
|
// TODO(ZhenLian): Implement the logic(delegation to
|
@@ -199,14 +197,14 @@ void TlsChannelSecurityConnector::add_handshakers(
|
|
199
197
|
|
200
198
|
void TlsChannelSecurityConnector::check_peer(
|
201
199
|
tsi_peer peer, grpc_endpoint* /*ep*/,
|
202
|
-
|
200
|
+
RefCountedPtr<grpc_auth_context>* auth_context,
|
203
201
|
grpc_closure* on_peer_checked) {
|
204
202
|
const char* target_name = overridden_target_name_.empty()
|
205
203
|
? target_name_.c_str()
|
206
204
|
: overridden_target_name_.c_str();
|
207
|
-
|
205
|
+
grpc_error_handle error = grpc_ssl_check_alpn(&peer);
|
208
206
|
if (error != GRPC_ERROR_NONE) {
|
209
|
-
|
207
|
+
ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
|
210
208
|
tsi_peer_destruct(&peer);
|
211
209
|
return;
|
212
210
|
}
|
@@ -216,7 +214,7 @@ void TlsChannelSecurityConnector::check_peer(
|
|
216
214
|
/* Do the default host name check if specifying the target name. */
|
217
215
|
error = internal::TlsCheckHostName(target_name, &peer);
|
218
216
|
if (error != GRPC_ERROR_NONE) {
|
219
|
-
|
217
|
+
ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
|
220
218
|
tsi_peer_destruct(&peer);
|
221
219
|
return;
|
222
220
|
}
|
@@ -299,7 +297,7 @@ void TlsChannelSecurityConnector::check_peer(
|
|
299
297
|
error = ProcessServerAuthorizationCheckResult(check_arg_);
|
300
298
|
}
|
301
299
|
}
|
302
|
-
|
300
|
+
ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
|
303
301
|
tsi_peer_destruct(&peer);
|
304
302
|
}
|
305
303
|
|
@@ -317,23 +315,28 @@ int TlsChannelSecurityConnector::cmp(
|
|
317
315
|
|
318
316
|
bool TlsChannelSecurityConnector::check_call_host(
|
319
317
|
absl::string_view host, grpc_auth_context* auth_context,
|
320
|
-
grpc_closure* /*on_call_host_checked*/,
|
318
|
+
grpc_closure* /*on_call_host_checked*/, grpc_error_handle* error) {
|
319
|
+
if (options_->server_verification_option() ==
|
320
|
+
GRPC_TLS_SKIP_HOSTNAME_VERIFICATION ||
|
321
|
+
options_->server_verification_option() ==
|
322
|
+
GRPC_TLS_SKIP_ALL_SERVER_VERIFICATION) {
|
323
|
+
return true;
|
324
|
+
}
|
321
325
|
return grpc_ssl_check_call_host(host, target_name_.c_str(),
|
322
326
|
overridden_target_name_.c_str(), auth_context,
|
323
327
|
error);
|
324
328
|
}
|
325
329
|
|
326
330
|
void TlsChannelSecurityConnector::cancel_check_call_host(
|
327
|
-
grpc_closure* /*on_call_host_checked*/,
|
331
|
+
grpc_closure* /*on_call_host_checked*/, grpc_error_handle error) {
|
328
332
|
GRPC_ERROR_UNREF(error);
|
329
333
|
}
|
330
334
|
|
331
335
|
void TlsChannelSecurityConnector::TlsChannelCertificateWatcher::
|
332
|
-
OnCertificatesChanged(
|
333
|
-
|
334
|
-
absl::optional<grpc_core::PemKeyCertPairList> key_cert_pairs) {
|
336
|
+
OnCertificatesChanged(absl::optional<absl::string_view> root_certs,
|
337
|
+
absl::optional<PemKeyCertPairList> key_cert_pairs) {
|
335
338
|
GPR_ASSERT(security_connector_ != nullptr);
|
336
|
-
|
339
|
+
MutexLock lock(&security_connector_->mu_);
|
337
340
|
if (root_certs.has_value()) {
|
338
341
|
security_connector_->pem_root_certs_ = root_certs;
|
339
342
|
}
|
@@ -356,16 +359,16 @@ void TlsChannelSecurityConnector::TlsChannelCertificateWatcher::
|
|
356
359
|
// TODO(ZhenLian): implement the logic to signal waiting handshakers once
|
357
360
|
// BlockOnInitialCredentialHandshaker is implemented.
|
358
361
|
void TlsChannelSecurityConnector::TlsChannelCertificateWatcher::OnError(
|
359
|
-
|
362
|
+
grpc_error_handle root_cert_error, grpc_error_handle identity_cert_error) {
|
360
363
|
if (root_cert_error != GRPC_ERROR_NONE) {
|
361
364
|
gpr_log(GPR_ERROR,
|
362
365
|
"TlsChannelCertificateWatcher getting root_cert_error: %s",
|
363
|
-
|
366
|
+
grpc_error_std_string(root_cert_error).c_str());
|
364
367
|
}
|
365
368
|
if (identity_cert_error != GRPC_ERROR_NONE) {
|
366
369
|
gpr_log(GPR_ERROR,
|
367
370
|
"TlsChannelCertificateWatcher getting identity_cert_error: %s",
|
368
|
-
|
371
|
+
grpc_error_std_string(identity_cert_error).c_str());
|
369
372
|
}
|
370
373
|
GRPC_ERROR_UNREF(root_cert_error);
|
371
374
|
GRPC_ERROR_UNREF(identity_cert_error);
|
@@ -411,16 +414,17 @@ TlsChannelSecurityConnector::UpdateHandshakerFactoryLocked() {
|
|
411
414
|
void TlsChannelSecurityConnector::ServerAuthorizationCheckDone(
|
412
415
|
grpc_tls_server_authorization_check_arg* arg) {
|
413
416
|
GPR_ASSERT(arg != nullptr);
|
414
|
-
|
415
|
-
|
417
|
+
ExecCtx exec_ctx;
|
418
|
+
grpc_error_handle error = ProcessServerAuthorizationCheckResult(arg);
|
416
419
|
TlsChannelSecurityConnector* connector =
|
417
420
|
static_cast<TlsChannelSecurityConnector*>(arg->cb_user_data);
|
418
|
-
|
421
|
+
ExecCtx::Run(DEBUG_LOCATION, connector->on_peer_checked_, error);
|
419
422
|
}
|
420
423
|
|
421
|
-
|
424
|
+
grpc_error_handle
|
425
|
+
TlsChannelSecurityConnector::ProcessServerAuthorizationCheckResult(
|
422
426
|
grpc_tls_server_authorization_check_arg* arg) {
|
423
|
-
|
427
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
424
428
|
/* Server authorization check is cancelled by caller. */
|
425
429
|
if (arg->status == GRPC_STATUS_CANCELLED) {
|
426
430
|
error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
@@ -485,10 +489,10 @@ void TlsChannelSecurityConnector::ServerAuthorizationCheckArgDestroy(
|
|
485
489
|
}
|
486
490
|
|
487
491
|
// -------------------server security connector-------------------
|
488
|
-
|
492
|
+
RefCountedPtr<grpc_server_security_connector>
|
489
493
|
TlsServerSecurityConnector::CreateTlsServerSecurityConnector(
|
490
|
-
|
491
|
-
|
494
|
+
RefCountedPtr<grpc_server_credentials> server_creds,
|
495
|
+
RefCountedPtr<grpc_tls_credentials_options> options) {
|
492
496
|
if (server_creds == nullptr) {
|
493
497
|
gpr_log(GPR_ERROR,
|
494
498
|
"server_creds is nullptr in "
|
@@ -501,15 +505,13 @@ TlsServerSecurityConnector::CreateTlsServerSecurityConnector(
|
|
501
505
|
"TlsServerSecurityConnectorCreate()");
|
502
506
|
return nullptr;
|
503
507
|
}
|
504
|
-
|
505
|
-
|
506
|
-
std::move(server_creds), std::move(options));
|
507
|
-
return c;
|
508
|
+
return MakeRefCounted<TlsServerSecurityConnector>(std::move(server_creds),
|
509
|
+
std::move(options));
|
508
510
|
}
|
509
511
|
|
510
512
|
TlsServerSecurityConnector::TlsServerSecurityConnector(
|
511
|
-
|
512
|
-
|
513
|
+
RefCountedPtr<grpc_server_credentials> server_creds,
|
514
|
+
RefCountedPtr<grpc_tls_credentials_options> options)
|
513
515
|
: grpc_server_security_connector(GRPC_SSL_URL_SCHEME,
|
514
516
|
std::move(server_creds)),
|
515
517
|
options_(std::move(options)) {
|
@@ -545,8 +547,8 @@ TlsServerSecurityConnector::~TlsServerSecurityConnector() {
|
|
545
547
|
|
546
548
|
void TlsServerSecurityConnector::add_handshakers(
|
547
549
|
const grpc_channel_args* args, grpc_pollset_set* /*interested_parties*/,
|
548
|
-
|
549
|
-
|
550
|
+
HandshakeManager* handshake_mgr) {
|
551
|
+
MutexLock lock(&mu_);
|
550
552
|
if (server_handshaker_factory_ != nullptr) {
|
551
553
|
// Instantiate TSI handshaker.
|
552
554
|
tsi_handshaker* tsi_hs = nullptr;
|
@@ -558,7 +560,7 @@ void TlsServerSecurityConnector::add_handshakers(
|
|
558
560
|
return;
|
559
561
|
}
|
560
562
|
// Create handshakers.
|
561
|
-
handshake_mgr->Add(
|
563
|
+
handshake_mgr->Add(SecurityHandshakerCreate(tsi_hs, this, args));
|
562
564
|
return;
|
563
565
|
}
|
564
566
|
// TODO(ZhenLian): Implement the logic(delegation to
|
@@ -569,13 +571,13 @@ void TlsServerSecurityConnector::add_handshakers(
|
|
569
571
|
|
570
572
|
void TlsServerSecurityConnector::check_peer(
|
571
573
|
tsi_peer peer, grpc_endpoint* /*ep*/,
|
572
|
-
|
574
|
+
RefCountedPtr<grpc_auth_context>* auth_context,
|
573
575
|
grpc_closure* on_peer_checked) {
|
574
|
-
|
576
|
+
grpc_error_handle error = grpc_ssl_check_alpn(&peer);
|
575
577
|
*auth_context =
|
576
578
|
grpc_ssl_peer_to_auth_context(&peer, GRPC_TLS_TRANSPORT_SECURITY_TYPE);
|
577
579
|
tsi_peer_destruct(&peer);
|
578
|
-
|
580
|
+
ExecCtx::Run(DEBUG_LOCATION, on_peer_checked, error);
|
579
581
|
}
|
580
582
|
|
581
583
|
int TlsServerSecurityConnector::cmp(
|
@@ -585,11 +587,10 @@ int TlsServerSecurityConnector::cmp(
|
|
585
587
|
}
|
586
588
|
|
587
589
|
void TlsServerSecurityConnector::TlsServerCertificateWatcher::
|
588
|
-
OnCertificatesChanged(
|
589
|
-
|
590
|
-
absl::optional<grpc_core::PemKeyCertPairList> key_cert_pairs) {
|
590
|
+
OnCertificatesChanged(absl::optional<absl::string_view> root_certs,
|
591
|
+
absl::optional<PemKeyCertPairList> key_cert_pairs) {
|
591
592
|
GPR_ASSERT(security_connector_ != nullptr);
|
592
|
-
|
593
|
+
MutexLock lock(&security_connector_->mu_);
|
593
594
|
if (root_certs.has_value()) {
|
594
595
|
security_connector_->pem_root_certs_ = root_certs;
|
595
596
|
}
|
@@ -616,16 +617,16 @@ void TlsServerSecurityConnector::TlsServerCertificateWatcher::
|
|
616
617
|
// TODO(ZhenLian): implement the logic to signal waiting handshakers once
|
617
618
|
// BlockOnInitialCredentialHandshaker is implemented.
|
618
619
|
void TlsServerSecurityConnector::TlsServerCertificateWatcher::OnError(
|
619
|
-
|
620
|
+
grpc_error_handle root_cert_error, grpc_error_handle identity_cert_error) {
|
620
621
|
if (root_cert_error != GRPC_ERROR_NONE) {
|
621
622
|
gpr_log(GPR_ERROR,
|
622
623
|
"TlsServerCertificateWatcher getting root_cert_error: %s",
|
623
|
-
|
624
|
+
grpc_error_std_string(root_cert_error).c_str());
|
624
625
|
}
|
625
626
|
if (identity_cert_error != GRPC_ERROR_NONE) {
|
626
627
|
gpr_log(GPR_ERROR,
|
627
628
|
"TlsServerCertificateWatcher getting identity_cert_error: %s",
|
628
|
-
|
629
|
+
grpc_error_std_string(identity_cert_error).c_str());
|
629
630
|
}
|
630
631
|
GRPC_ERROR_UNREF(root_cert_error);
|
631
632
|
GRPC_ERROR_UNREF(identity_cert_error);
|
@@ -666,7 +667,8 @@ TlsServerSecurityConnector::UpdateHandshakerFactoryLocked() {
|
|
666
667
|
|
667
668
|
namespace internal {
|
668
669
|
|
669
|
-
|
670
|
+
grpc_error_handle TlsCheckHostName(const char* peer_name,
|
671
|
+
const tsi_peer* peer) {
|
670
672
|
/* Check the peer name if specified. */
|
671
673
|
if (peer_name != nullptr && !grpc_ssl_host_matches_name(peer, peer_name)) {
|
672
674
|
return GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|