grpc 1.64.3 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +57 -58
- data/include/grpc/event_engine/event_engine.h +13 -6
- data/include/grpc/impl/channel_arg_names.h +7 -3
- data/include/grpc/module.modulemap +1 -0
- data/include/grpc/passive_listener.h +62 -0
- data/include/grpc/support/log.h +7 -17
- data/include/grpc/support/port_platform.h +3 -0
- data/src/core/channelz/channel_trace.cc +1 -1
- data/src/core/channelz/channel_trace.h +1 -1
- data/src/core/channelz/channelz.cc +3 -3
- data/src/core/channelz/channelz.h +7 -7
- data/src/core/channelz/channelz_registry.cc +4 -3
- data/src/core/client_channel/backup_poller.cc +4 -5
- data/src/core/client_channel/client_channel.cc +1324 -0
- data/src/core/client_channel/client_channel.h +243 -0
- data/src/core/client_channel/client_channel_filter.cc +266 -709
- data/src/core/client_channel/client_channel_filter.h +11 -64
- data/src/core/client_channel/client_channel_internal.h +16 -5
- data/src/core/client_channel/client_channel_plugin.cc +1 -14
- data/src/core/client_channel/client_channel_service_config.h +3 -3
- data/src/core/client_channel/config_selector.cc +1 -1
- data/src/core/client_channel/config_selector.h +1 -1
- data/src/core/client_channel/dynamic_filters.cc +3 -3
- data/src/core/client_channel/dynamic_filters.h +1 -3
- data/src/core/client_channel/load_balanced_call_destination.cc +336 -0
- data/src/core/client_channel/load_balanced_call_destination.h +49 -0
- data/src/core/client_channel/retry_filter.cc +2 -9
- data/src/core/client_channel/retry_filter.h +2 -7
- data/src/core/client_channel/retry_filter_legacy_call_data.cc +65 -72
- data/src/core/client_channel/retry_filter_legacy_call_data.h +0 -2
- data/src/core/client_channel/retry_service_config.cc +4 -5
- data/src/core/client_channel/retry_service_config.h +3 -3
- data/src/core/client_channel/subchannel.cc +220 -112
- data/src/core/client_channel/subchannel.h +31 -18
- data/src/core/client_channel/subchannel_pool_interface.cc +0 -2
- data/src/core/client_channel/subchannel_pool_interface.h +2 -4
- data/src/core/client_channel/subchannel_stream_client.cc +36 -49
- data/src/core/client_channel/subchannel_stream_client.h +2 -4
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +7 -10
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +1 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +7 -0
- data/src/core/ext/filters/census/grpc_context.cc +2 -4
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +8 -15
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.h +2 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -7
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +3 -3
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -0
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -0
- data/src/core/ext/filters/http/client_authority_filter.h +1 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +10 -15
- data/src/core/ext/filters/http/message_compress/compression_filter.h +2 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +2 -2
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +6 -9
- data/src/core/ext/filters/message_size/message_size_filter.h +6 -6
- data/src/core/ext/filters/rbac/rbac_filter.cc +2 -5
- data/src/core/ext/filters/rbac/rbac_filter.h +1 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +2 -2
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +1 -1
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +2 -6
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +1 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +223 -148
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +33 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +131 -107
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +8 -8
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +1 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +9 -5
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +5 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +9 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +32 -43
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +3 -8
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +29 -19
- data/src/core/ext/transport/chttp2/transport/parsing.cc +15 -25
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.cc +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +0 -2
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +5 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +3 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +56 -32
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -3
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +13 -15
- data/src/core/ext/transport/inproc/legacy_inproc_transport.h +0 -2
- data/src/core/handshaker/handshaker.cc +6 -14
- data/src/core/handshaker/http_connect/http_connect_handshaker.cc +9 -17
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +3 -2
- data/src/core/handshaker/security/secure_endpoint.cc +38 -32
- data/src/core/handshaker/security/secure_endpoint.h +0 -2
- data/src/core/handshaker/security/security_handshaker.cc +25 -37
- data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +2 -1
- data/src/core/lib/address_utils/parse_address.cc +27 -39
- data/src/core/lib/address_utils/sockaddr_utils.cc +5 -6
- data/src/core/lib/avl/avl.h +1 -1
- data/src/core/lib/channel/channel_args.cc +13 -17
- data/src/core/lib/channel/channel_args.h +19 -8
- data/src/core/lib/channel/channel_stack.cc +5 -63
- data/src/core/lib/channel/channel_stack.h +13 -37
- data/src/core/lib/channel/channel_stack_builder.h +0 -5
- data/src/core/lib/channel/channel_stack_builder_impl.cc +0 -142
- data/src/core/lib/channel/channel_stack_builder_impl.h +0 -2
- data/src/core/lib/channel/connected_channel.cc +37 -676
- data/src/core/lib/channel/promise_based_filter.cc +41 -47
- data/src/core/lib/channel/promise_based_filter.h +124 -477
- data/src/core/lib/channel/status_util.cc +1 -1
- data/src/core/lib/compression/compression.cc +1 -1
- data/src/core/lib/compression/message_compress.cc +6 -6
- data/src/core/lib/config/config_vars.cc +3 -8
- data/src/core/lib/config/config_vars.h +1 -5
- data/src/core/lib/debug/event_log.h +1 -1
- data/src/core/lib/debug/trace.cc +43 -59
- data/src/core/lib/debug/trace.h +2 -97
- data/src/core/lib/debug/trace_flags.cc +255 -0
- data/src/core/lib/debug/trace_flags.h +133 -0
- data/src/core/lib/debug/trace_impl.h +115 -0
- data/src/core/lib/event_engine/ares_resolver.cc +5 -7
- data/src/core/lib/event_engine/ares_resolver.h +1 -3
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +1 -1
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.cc +17 -22
- data/src/core/lib/event_engine/event_engine.cc +29 -4
- data/src/core/lib/event_engine/extensions/supports_fd.h +7 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +43 -0
- data/src/core/lib/event_engine/forkable.cc +4 -5
- data/src/core/lib/event_engine/forkable.h +0 -11
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +10 -11
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +4 -3
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +19 -33
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +3 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +24 -7
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +2 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +14 -16
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +18 -22
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +13 -17
- data/src/core/lib/event_engine/posix_engine/timer.cc +1 -1
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +4 -6
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +2 -1
- data/src/core/lib/event_engine/shim.cc +1 -1
- data/src/core/lib/event_engine/tcp_socket_utils.cc +6 -8
- data/src/core/lib/event_engine/thread_local.h +1 -1
- data/src/core/lib/event_engine/thread_pool/thread_count.h +1 -1
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +19 -21
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -6
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +14 -13
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +4 -3
- data/src/core/lib/event_engine/trace.h +6 -17
- data/src/core/lib/event_engine/windows/iocp.h +1 -1
- data/src/core/lib/event_engine/windows/win_socket.cc +23 -17
- data/src/core/lib/event_engine/windows/win_socket.h +4 -5
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +6 -9
- data/src/core/lib/event_engine/windows/windows_engine.cc +201 -87
- data/src/core/lib/event_engine/windows/windows_engine.h +136 -25
- data/src/core/lib/event_engine/windows/windows_listener.cc +12 -23
- data/src/core/lib/experiments/experiments.cc +35 -151
- data/src/core/lib/experiments/experiments.h +12 -45
- data/src/core/lib/gprpp/bitset.h +1 -1
- data/src/core/lib/gprpp/crash.cc +2 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +45 -33
- data/src/core/lib/gprpp/dump_args.cc +54 -0
- data/src/core/lib/gprpp/dump_args.h +69 -0
- data/src/core/lib/gprpp/glob.cc +70 -0
- data/src/core/lib/gprpp/glob.h +29 -0
- data/src/core/lib/gprpp/per_cpu.cc +1 -1
- data/src/core/lib/gprpp/posix/stat.cc +3 -4
- data/src/core/lib/gprpp/posix/thd.cc +8 -9
- data/src/core/lib/gprpp/ref_counted.h +30 -22
- data/src/core/lib/gprpp/single_set_ptr.h +5 -3
- data/src/core/lib/gprpp/status_helper.cc +11 -30
- data/src/core/lib/gprpp/status_helper.h +3 -31
- data/src/core/lib/gprpp/time.cc +3 -4
- data/src/core/lib/gprpp/time.h +3 -2
- data/src/core/lib/gprpp/unique_type_name.h +1 -1
- data/src/core/lib/gprpp/validation_errors.cc +10 -1
- data/src/core/lib/gprpp/validation_errors.h +11 -0
- data/src/core/lib/gprpp/windows/stat.cc +3 -4
- data/src/core/lib/gprpp/windows/thd.cc +3 -2
- data/src/core/lib/gprpp/work_serializer.cc +48 -57
- data/src/core/lib/iomgr/buffer_list.cc +4 -2
- data/src/core/lib/iomgr/call_combiner.cc +18 -27
- data/src/core/lib/iomgr/call_combiner.h +1 -3
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -6
- data/src/core/lib/iomgr/closure.h +2 -4
- data/src/core/lib/iomgr/combiner.cc +6 -8
- data/src/core/lib/iomgr/combiner.h +0 -2
- data/src/core/lib/iomgr/endpoint.cc +0 -6
- data/src/core/lib/iomgr/endpoint.h +0 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +19 -41
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +1 -1
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +13 -21
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +3 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +43 -42
- data/src/core/lib/iomgr/ev_poll_posix.cc +38 -29
- data/src/core/lib/iomgr/ev_posix.cc +8 -9
- data/src/core/lib/iomgr/ev_posix.h +10 -7
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +2 -2
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +14 -28
- data/src/core/lib/iomgr/exec_ctx.cc +2 -2
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +6 -15
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +8 -10
- data/src/core/lib/iomgr/fork_windows.cc +3 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -3
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +3 -5
- data/src/core/lib/iomgr/internal_errqueue.cc +4 -2
- data/src/core/lib/iomgr/iocp_windows.cc +4 -3
- data/src/core/lib/iomgr/iomgr.cc +13 -17
- data/src/core/lib/iomgr/lockfree_event.cc +3 -5
- data/src/core/lib/iomgr/pollset.h +0 -2
- data/src/core/lib/iomgr/pollset_windows.cc +0 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +11 -17
- data/src/core/lib/iomgr/socket_windows.cc +4 -6
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +3 -5
- data/src/core/lib/iomgr/tcp_client_posix.cc +9 -15
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -4
- data/src/core/lib/iomgr/tcp_posix.cc +57 -84
- data/src/core/lib/iomgr/tcp_posix.h +0 -2
- data/src/core/lib/iomgr/tcp_server_posix.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +4 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_windows.cc +10 -16
- data/src/core/lib/iomgr/tcp_windows.cc +25 -41
- data/src/core/lib/iomgr/timer_generic.cc +17 -20
- data/src/core/lib/iomgr/timer_heap.cc +1 -1
- data/src/core/lib/iomgr/timer_manager.cc +17 -30
- data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
- data/src/core/lib/iomgr/vsock.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +3 -3
- data/src/core/lib/promise/activity.h +27 -4
- data/src/core/lib/promise/cancel_callback.h +24 -0
- data/src/core/lib/promise/context.h +11 -0
- data/src/core/lib/promise/detail/basic_seq.h +1 -2
- data/src/core/lib/promise/detail/join_state.h +354 -398
- data/src/core/lib/promise/detail/promise_like.h +6 -5
- data/src/core/lib/promise/detail/seq_state.h +1178 -1178
- data/src/core/lib/promise/for_each.h +6 -6
- data/src/core/lib/promise/interceptor_list.h +6 -7
- data/src/core/lib/promise/latch.h +9 -9
- data/src/core/lib/promise/map.h +17 -0
- data/src/core/lib/promise/observable.h +182 -0
- data/src/core/lib/promise/party.cc +7 -8
- data/src/core/lib/promise/party.h +10 -8
- data/src/core/lib/promise/pipe.h +16 -35
- data/src/core/lib/promise/promise.h +1 -0
- data/src/core/lib/promise/status_flag.h +2 -0
- data/src/core/lib/resource_quota/arena.cc +56 -79
- data/src/core/lib/resource_quota/arena.h +118 -209
- data/src/core/lib/resource_quota/memory_quota.cc +12 -13
- data/src/core/lib/resource_quota/memory_quota.h +2 -3
- data/src/core/lib/resource_quota/periodic_update.cc +1 -1
- data/src/core/lib/resource_quota/resource_quota.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
- data/src/core/lib/security/authorization/evaluate_args.cc +6 -8
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +5 -6
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -0
- data/src/core/lib/security/authorization/matchers.cc +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +2 -2
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +2 -3
- data/src/core/lib/security/context/security_context.cc +12 -13
- data/src/core/lib/security/context/security_context.h +31 -8
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +3 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -3
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +5 -5
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +3 -3
- data/src/core/lib/security/credentials/call_creds_util.cc +2 -1
- data/src/core/lib/security/credentials/channel_creds_registry.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +5 -3
- data/src/core/lib/security/credentials/composite/composite_credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +9 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +2 -2
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -4
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.h +1 -1
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +11 -11
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -1
- data/src/core/lib/security/credentials/iam/iam_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.cc +14 -15
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +50 -54
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +12 -11
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +4 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -7
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +1 -3
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +15 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +21 -30
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc +3 -5
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +14 -16
- data/src/core/lib/security/credentials/tls/tls_utils.cc +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -16
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +15 -12
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +6 -6
- data/src/core/lib/security/security_connector/load_system_roots_windows.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +8 -12
- data/src/core/lib/security/security_connector/security_connector.cc +1 -4
- data/src/core/lib/security/security_connector/security_connector.h +1 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +17 -19
- data/src/core/lib/security/security_connector/ssl_utils.cc +19 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +29 -40
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +7 -13
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -8
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice.h +1 -1
- data/src/core/lib/slice/slice_refcount.h +2 -4
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/surface/api_trace.h +1 -3
- data/src/core/lib/surface/call.cc +64 -3738
- data/src/core/lib/surface/call.h +41 -143
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_utils.cc +276 -0
- data/src/core/lib/surface/call_utils.h +449 -0
- data/src/core/lib/surface/channel.cc +8 -3
- data/src/core/lib/surface/channel.h +10 -7
- data/src/core/lib/surface/channel_create.cc +14 -6
- data/src/core/lib/surface/channel_create.h +3 -2
- data/src/core/lib/surface/channel_init.cc +21 -77
- data/src/core/lib/surface/channel_init.h +19 -97
- data/src/core/lib/surface/client_call.cc +419 -0
- data/src/core/lib/surface/client_call.h +180 -0
- data/src/core/lib/surface/completion_queue.cc +28 -33
- data/src/core/lib/surface/completion_queue.h +0 -8
- data/src/core/lib/surface/filter_stack_call.cc +1157 -0
- data/src/core/lib/surface/filter_stack_call.h +369 -0
- data/src/core/lib/surface/init.cc +7 -6
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/legacy_channel.cc +40 -27
- data/src/core/lib/surface/legacy_channel.h +9 -18
- data/src/core/lib/surface/server_call.cc +222 -0
- data/src/core/lib/surface/server_call.h +167 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -5
- data/src/core/lib/transport/bdp_estimator.h +2 -4
- data/src/core/lib/transport/call_arena_allocator.h +9 -7
- data/src/core/lib/transport/call_destination.h +76 -0
- data/src/core/lib/transport/call_filters.cc +28 -10
- data/src/core/lib/transport/call_filters.h +128 -22
- data/src/core/lib/transport/call_spine.cc +5 -6
- data/src/core/lib/transport/call_spine.h +159 -334
- data/src/core/lib/transport/connectivity_state.cc +8 -10
- data/src/core/lib/transport/connectivity_state.h +0 -2
- data/src/core/lib/transport/interception_chain.cc +155 -0
- data/src/core/lib/transport/interception_chain.h +236 -0
- data/src/core/lib/transport/metadata_batch.h +10 -1
- data/src/core/lib/transport/metadata_info.h +1 -1
- data/src/core/lib/transport/transport.cc +3 -6
- data/src/core/lib/transport/transport.h +43 -40
- data/src/core/load_balancing/child_policy_handler.cc +8 -8
- data/src/core/load_balancing/endpoint_list.cc +5 -5
- data/src/core/load_balancing/endpoint_list.h +1 -1
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.cc +1 -0
- data/src/core/load_balancing/grpclb/client_load_reporting_filter.h +1 -0
- data/src/core/load_balancing/grpclb/grpclb.cc +25 -29
- data/src/core/load_balancing/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/load_balancing/grpclb/load_balancer_api.cc +3 -4
- data/src/core/load_balancing/health_check_client.cc +10 -13
- data/src/core/load_balancing/lb_policy.cc +5 -8
- data/src/core/load_balancing/lb_policy.h +19 -3
- data/src/core/load_balancing/lb_policy_factory.h +1 -1
- data/src/core/load_balancing/lb_policy_registry.cc +2 -3
- data/src/core/load_balancing/lb_policy_registry.h +1 -1
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +33 -35
- data/src/core/load_balancing/outlier_detection/outlier_detection.h +3 -3
- data/src/core/load_balancing/pick_first/pick_first.cc +65 -65
- data/src/core/load_balancing/priority/priority.cc +26 -28
- data/src/core/load_balancing/ring_hash/ring_hash.cc +11 -13
- data/src/core/load_balancing/ring_hash/ring_hash.h +3 -3
- data/src/core/load_balancing/rls/rls.cc +82 -82
- data/src/core/load_balancing/round_robin/round_robin.cc +17 -20
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +54 -43
- data/src/core/load_balancing/weighted_target/weighted_target.cc +21 -24
- data/src/core/load_balancing/xds/cds.cc +14 -16
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +16 -18
- data/src/core/load_balancing/xds/xds_cluster_manager.cc +15 -17
- data/src/core/load_balancing/xds/xds_override_host.cc +40 -41
- data/src/core/load_balancing/xds/xds_override_host.h +3 -3
- data/src/core/load_balancing/xds/xds_wrr_locality.cc +10 -12
- data/src/core/plugin_registry/grpc_plugin_registry.cc +5 -1
- data/src/core/resolver/binder/binder_resolver.cc +3 -2
- data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +3 -2
- data/src/core/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +7 -14
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -5
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/resolver/dns/dns_resolver_plugin.cc +6 -5
- data/src/core/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +4 -9
- data/src/core/resolver/dns/event_engine/service_config_helper.cc +5 -5
- data/src/core/resolver/dns/native/dns_resolver.cc +8 -9
- data/src/core/resolver/endpoint_addresses.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/resolver/fake/fake_resolver.h +1 -1
- data/src/core/resolver/google_c2p/google_c2p_resolver.cc +13 -14
- data/src/core/resolver/polling_resolver.cc +30 -35
- data/src/core/resolver/resolver.cc +2 -6
- data/src/core/resolver/resolver.h +0 -2
- data/src/core/resolver/resolver_registry.cc +6 -8
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/resolver/xds/xds_dependency_manager.cc +22 -23
- data/src/core/resolver/xds/xds_resolver.cc +13 -15
- data/src/core/server/server.cc +269 -389
- data/src/core/server/server.h +37 -19
- data/src/core/server/server_call_tracer_filter.cc +7 -14
- data/src/core/server/server_config_selector.h +1 -1
- data/src/core/server/server_config_selector_filter.cc +3 -3
- data/src/core/server/server_interface.h +2 -0
- data/src/core/server/xds_channel_stack_modifier.cc +1 -1
- data/src/core/server/xds_channel_stack_modifier.h +1 -1
- data/src/core/server/xds_server_config_fetcher.cc +1 -4
- data/src/core/service_config/service_config.h +1 -1
- data/src/core/service_config/service_config_call_data.h +13 -11
- data/src/core/service_config/service_config_channel_arg_filter.cc +6 -4
- data/src/core/service_config/service_config_impl.cc +5 -5
- data/src/core/service_config/service_config_impl.h +1 -1
- data/src/core/service_config/service_config_parser.cc +3 -6
- data/src/core/service_config/service_config_parser.h +1 -1
- data/src/core/{lib/channel → telemetry}/call_tracer.cc +20 -30
- data/src/core/{lib/channel → telemetry}/call_tracer.h +32 -9
- data/src/core/{lib/debug → telemetry}/histogram_view.cc +1 -1
- data/src/core/{lib/debug → telemetry}/histogram_view.h +3 -3
- data/src/core/telemetry/metrics.cc +178 -0
- data/src/core/telemetry/metrics.h +562 -0
- data/src/core/{lib/debug → telemetry}/stats.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats.h +5 -5
- data/src/core/{lib/debug → telemetry}/stats_data.cc +1 -1
- data/src/core/{lib/debug → telemetry}/stats_data.h +4 -4
- data/src/core/{lib/channel → telemetry}/tcp_tracer.h +3 -3
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +12 -13
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +25 -27
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +32 -33
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +5 -4
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +5 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -3
- data/src/core/tsi/fake_transport_security.cc +14 -17
- data/src/core/tsi/local_transport_security.cc +6 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +4 -4
- data/src/core/tsi/ssl_transport_security.cc +76 -81
- data/src/core/tsi/ssl_transport_security_utils.cc +74 -18
- data/src/core/tsi/ssl_transport_security_utils.h +11 -0
- data/src/core/tsi/transport_security.cc +0 -4
- data/src/core/tsi/transport_security.h +0 -2
- data/src/core/tsi/transport_security_interface.h +0 -4
- data/src/core/{lib/gpr → util}/alloc.h +3 -3
- data/src/core/{lib/gpr → util}/android/log.cc +0 -19
- data/src/core/{lib/gpr → util}/atm.cc +1 -1
- data/src/core/{ext/gcp/metadata_query.cc → util/gcp_metadata_query.cc} +25 -26
- data/src/core/{ext/gcp/metadata_query.h → util/gcp_metadata_query.h} +11 -11
- data/src/core/{lib/http → util/http_client}/format_request.cc +4 -3
- data/src/core/{lib/http → util/http_client}/format_request.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli.cc +9 -10
- data/src/core/{lib/http → util/http_client}/httpcli.h +6 -5
- data/src/core/{lib/http → util/http_client}/httpcli_security_connector.cc +9 -9
- data/src/core/{lib/http → util/http_client}/httpcli_ssl_credentials.h +5 -4
- data/src/core/{lib/http → util/http_client}/parser.cc +4 -5
- data/src/core/{lib/http → util/http_client}/parser.h +5 -6
- data/src/core/{lib → util}/json/json.h +5 -4
- data/src/core/{lib → util}/json/json_args.h +5 -5
- data/src/core/{lib → util}/json/json_channel_args.h +6 -6
- data/src/core/{lib → util}/json/json_object_loader.cc +3 -2
- data/src/core/{lib → util}/json/json_object_loader.h +7 -7
- data/src/core/{lib → util}/json/json_reader.cc +3 -2
- data/src/core/{lib → util}/json/json_reader.h +6 -6
- data/src/core/{lib → util}/json/json_util.cc +4 -4
- data/src/core/{lib → util}/json/json_util.h +6 -6
- data/src/core/{lib → util}/json/json_writer.cc +3 -3
- data/src/core/{lib → util}/json/json_writer.h +6 -6
- data/src/core/{lib/gpr → util}/linux/log.cc +0 -45
- data/src/core/util/log.cc +165 -0
- data/src/core/{lib/gpr → util}/msys/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/posix/cpu.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/log.cc +0 -42
- data/src/core/{lib/gpr → util}/posix/time.cc +1 -1
- data/src/core/{lib/gpr → util}/posix/tmpfile.cc +2 -2
- data/src/core/{lib/gpr → util}/spinlock.h +3 -3
- data/src/core/{lib/gpr → util}/string.cc +2 -2
- data/src/core/{lib/gpr → util}/string.h +3 -3
- data/src/core/{lib/gpr → util}/time_precise.cc +1 -1
- data/src/core/{lib/gpr → util}/time_precise.h +3 -3
- data/src/core/{lib/gpr → util}/tmpfile.h +3 -3
- data/src/core/{lib/gpr → util}/useful.h +3 -3
- data/src/core/{lib/gpr → util}/windows/log.cc +1 -44
- data/src/core/{lib/gpr → util}/windows/string.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/string_util.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/time.cc +1 -1
- data/src/core/{lib/gpr → util}/windows/tmpfile.cc +1 -1
- data/src/core/xds/grpc/certificate_provider_store.cc +3 -3
- data/src/core/xds/grpc/certificate_provider_store.h +4 -4
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.h +3 -3
- data/src/core/xds/grpc/xds_audit_logger_registry.h +1 -1
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +5 -5
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +3 -3
- data/src/core/xds/grpc/xds_certificate_provider.h +1 -1
- data/src/core/xds/grpc/xds_client_grpc.cc +27 -23
- data/src/core/xds/grpc/xds_client_grpc.h +2 -2
- data/src/core/xds/grpc/xds_cluster.cc +4 -5
- data/src/core/xds/grpc/xds_cluster.h +1 -1
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
- data/src/core/xds/grpc/xds_cluster_specifier_plugin.h +1 -1
- data/src/core/xds/grpc/xds_common_types.cc +1 -1
- data/src/core/xds/grpc/xds_common_types.h +1 -1
- data/src/core/xds/grpc/xds_endpoint.cc +4 -5
- data/src/core/xds/grpc/xds_http_fault_filter.cc +2 -2
- data/src/core/xds/grpc/xds_http_filters.h +2 -2
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +3 -3
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +2 -2
- data/src/core/xds/grpc/xds_lb_policy_registry.h +1 -1
- data/src/core/xds/grpc/xds_listener.cc +4 -6
- data/src/core/xds/grpc/xds_route_config.cc +7 -8
- data/src/core/xds/grpc/xds_transport_grpc.cc +2 -2
- data/src/core/xds/grpc/xds_transport_grpc.h +1 -1
- data/src/core/xds/xds_client/xds_api.cc +5 -9
- data/src/core/xds/xds_client/xds_bootstrap.cc +1 -1
- data/src/core/xds/xds_client/xds_bootstrap.h +1 -1
- data/src/core/xds/xds_client/xds_client.cc +39 -45
- data/src/core/xds/xds_client/xds_client.h +0 -3
- data/src/core/xds/xds_client/xds_client_stats.cc +6 -6
- data/src/core/xds/xds_client/xds_client_stats.h +2 -2
- data/src/ruby/bin/math_pb.rb +1 -22
- data/src/ruby/ext/grpc/rb_call.c +8 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +15 -32
- data/src/ruby/ext/grpc/rb_completion_queue.h +7 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -2
- data/src/ruby/ext/grpc/rb_server.c +39 -22
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -22
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +5 -5
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +10 -19
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +5 -5
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -22
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +66 -41
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +1497 -0
- data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +58 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +45 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +33 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/fips_shared_support.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_utl.c +49 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +7 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +8 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +125 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -23
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +4 -10
- metadata +103 -93
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +0 -19
- data/src/core/ext/transport/chttp2/transport/http_trace.h +0 -24
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -23
- data/src/core/handshaker/security/tsi_error.cc +0 -31
- data/src/core/handshaker/security/tsi_error.h +0 -30
- data/src/core/lib/channel/channel_stack_trace.cc +0 -19
- data/src/core/lib/channel/channel_stack_trace.h +0 -24
- data/src/core/lib/channel/context.h +0 -105
- data/src/core/lib/channel/metrics.cc +0 -334
- data/src/core/lib/channel/metrics.h +0 -365
- data/src/core/lib/event_engine/trace.cc +0 -25
- data/src/core/lib/gpr/log.cc +0 -166
- data/src/core/lib/iomgr/ev_windows.cc +0 -30
- data/src/core/lib/promise/trace.cc +0 -20
- data/src/core/lib/promise/trace.h +0 -24
- data/src/core/lib/resource_quota/trace.cc +0 -19
- data/src/core/lib/resource_quota/trace.h +0 -24
- data/src/core/lib/slice/slice_refcount.cc +0 -20
- data/src/core/lib/surface/api_trace.cc +0 -25
- data/src/core/lib/surface/call_trace.h +0 -24
- data/src/core/lib/surface/wait_for_cq_end_op.cc +0 -75
- data/src/core/lib/surface/wait_for_cq_end_op.h +0 -72
- data/src/core/lib/transport/batch_builder.cc +0 -172
- data/src/core/lib/transport/batch_builder.h +0 -474
- data/src/core/resolver/xds/xds_resolver_trace.cc +0 -25
- data/src/core/resolver/xds/xds_resolver_trace.h +0 -30
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -122
- /data/src/core/{lib/gpr → util}/alloc.cc +0 -0
- /data/src/core/{lib/gpr → util}/iphone/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/linux/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/string.cc +0 -0
- /data/src/core/{lib/gpr → util}/posix/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync.cc +0 -0
- /data/src/core/{lib/gpr → util}/sync_abseil.cc +0 -0
- /data/src/core/{lib/gpr → util}/time.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/cpu.cc +0 -0
- /data/src/core/{lib/gpr → util}/windows/sync.cc +0 -0
@@ -23,6 +23,8 @@
|
|
23
23
|
|
24
24
|
#include <grpc/support/port_platform.h>
|
25
25
|
|
26
|
+
#include "src/core/tsi/transport_security_interface.h"
|
27
|
+
|
26
28
|
// TODO(jboeuf): refactor inet_ntop into a portability header.
|
27
29
|
// Note: for whomever reads this and tries to refactor this, this
|
28
30
|
// can't be in grpc, it has to be in gpr.
|
@@ -46,6 +48,7 @@
|
|
46
48
|
#include <openssl/x509v3.h>
|
47
49
|
|
48
50
|
#include "absl/log/check.h"
|
51
|
+
#include "absl/log/log.h"
|
49
52
|
#include "absl/strings/match.h"
|
50
53
|
#include "absl/strings/str_cat.h"
|
51
54
|
#include "absl/strings/string_view.h"
|
@@ -53,12 +56,10 @@
|
|
53
56
|
#include <grpc/grpc_crl_provider.h>
|
54
57
|
#include <grpc/grpc_security.h>
|
55
58
|
#include <grpc/support/alloc.h>
|
56
|
-
#include <grpc/support/log.h>
|
57
59
|
#include <grpc/support/string_util.h>
|
58
60
|
#include <grpc/support/sync.h>
|
59
61
|
#include <grpc/support/thd_id.h>
|
60
62
|
|
61
|
-
#include "src/core/lib/gpr/useful.h"
|
62
63
|
#include "src/core/lib/gprpp/crash.h"
|
63
64
|
#include "src/core/lib/security/credentials/tls/grpc_tls_crl_provider.h"
|
64
65
|
#include "src/core/tsi/ssl/key_logging/ssl_key_logging.h"
|
@@ -66,6 +67,7 @@
|
|
66
67
|
#include "src/core/tsi/ssl_transport_security_utils.h"
|
67
68
|
#include "src/core/tsi/ssl_types.h"
|
68
69
|
#include "src/core/tsi/transport_security.h"
|
70
|
+
#include "src/core/util/useful.h"
|
69
71
|
|
70
72
|
// --- Constants. ---
|
71
73
|
|
@@ -204,7 +206,7 @@ static void init_openssl(void) {
|
|
204
206
|
CRYPTO_set_locking_callback(openssl_locking_cb);
|
205
207
|
CRYPTO_set_id_callback(openssl_thread_id_cb);
|
206
208
|
} else {
|
207
|
-
|
209
|
+
LOG(INFO) << "OpenSSL callback has already been set.";
|
208
210
|
}
|
209
211
|
#endif
|
210
212
|
g_ssl_ctx_ex_factory_index =
|
@@ -225,7 +227,7 @@ static void init_openssl(void) {
|
|
225
227
|
// TODO(jboeuf): Remove when we are past the debugging phase with this code.
|
226
228
|
static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
227
229
|
const char* msg) {
|
228
|
-
if ((where & flag) && GRPC_TRACE_FLAG_ENABLED(
|
230
|
+
if ((where & flag) && GRPC_TRACE_FLAG_ENABLED(tsi)) {
|
229
231
|
gpr_log(GPR_INFO, "%20.20s - %30.30s - %5.10s", msg,
|
230
232
|
SSL_state_string_long(ssl), SSL_state_string(ssl));
|
231
233
|
}
|
@@ -234,7 +236,7 @@ static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
|
234
236
|
// Used for debugging. TODO(jboeuf): Remove when code is mature enough.
|
235
237
|
static void ssl_info_callback(const SSL* ssl, int where, int ret) {
|
236
238
|
if (ret == 0) {
|
237
|
-
|
239
|
+
LOG(ERROR) << "ssl_info_callback: error occurred.\n";
|
238
240
|
return;
|
239
241
|
}
|
240
242
|
|
@@ -277,30 +279,28 @@ static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
|
|
277
279
|
X509_NAME* subject_name = X509_get_subject_name(cert);
|
278
280
|
int utf8_returned_size = 0;
|
279
281
|
if (subject_name == nullptr) {
|
280
|
-
|
282
|
+
VLOG(2) << "Could not get subject name from certificate.";
|
281
283
|
return TSI_NOT_FOUND;
|
282
284
|
}
|
283
285
|
common_name_index =
|
284
286
|
X509_NAME_get_index_by_NID(subject_name, NID_commonName, -1);
|
285
287
|
if (common_name_index == -1) {
|
286
|
-
|
287
|
-
"Could not get common name of subject from certificate.");
|
288
|
+
VLOG(2) << "Could not get common name of subject from certificate.";
|
288
289
|
return TSI_NOT_FOUND;
|
289
290
|
}
|
290
291
|
common_name_entry = X509_NAME_get_entry(subject_name, common_name_index);
|
291
292
|
if (common_name_entry == nullptr) {
|
292
|
-
|
293
|
+
LOG(ERROR) << "Could not get common name entry from certificate.";
|
293
294
|
return TSI_INTERNAL_ERROR;
|
294
295
|
}
|
295
296
|
common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry);
|
296
297
|
if (common_name_asn1 == nullptr) {
|
297
|
-
|
298
|
-
"Could not get common name entry asn1 from certificate.");
|
298
|
+
LOG(ERROR) << "Could not get common name entry asn1 from certificate.";
|
299
299
|
return TSI_INTERNAL_ERROR;
|
300
300
|
}
|
301
301
|
utf8_returned_size = ASN1_STRING_to_UTF8(utf8, common_name_asn1);
|
302
302
|
if (utf8_returned_size < 0) {
|
303
|
-
|
303
|
+
LOG(ERROR) << "Could not extract utf8 from asn1 string.";
|
304
304
|
return TSI_OUT_OF_RESOURCES;
|
305
305
|
}
|
306
306
|
*utf8_size = static_cast<size_t>(utf8_returned_size);
|
@@ -336,7 +336,7 @@ static tsi_result peer_property_from_x509_subject(X509* cert,
|
|
336
336
|
bool is_verified_root_cert) {
|
337
337
|
X509_NAME* subject_name = X509_get_subject_name(cert);
|
338
338
|
if (subject_name == nullptr) {
|
339
|
-
|
339
|
+
LOG(INFO) << "Could not get subject name from certificate.";
|
340
340
|
return TSI_NOT_FOUND;
|
341
341
|
}
|
342
342
|
BIO* bio = BIO_new(BIO_s_mem());
|
@@ -344,7 +344,7 @@ static tsi_result peer_property_from_x509_subject(X509* cert,
|
|
344
344
|
char* contents;
|
345
345
|
long len = BIO_get_mem_data(bio, &contents);
|
346
346
|
if (len < 0) {
|
347
|
-
|
347
|
+
LOG(ERROR) << "Could not get subject entry from certificate.";
|
348
348
|
BIO_free(bio);
|
349
349
|
return TSI_INTERNAL_ERROR;
|
350
350
|
}
|
@@ -409,7 +409,7 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
409
409
|
property_name = TSI_X509_URI_PEER_PROPERTY;
|
410
410
|
}
|
411
411
|
if (name_size < 0) {
|
412
|
-
|
412
|
+
LOG(ERROR) << "Could not get utf8 from asn1 string.";
|
413
413
|
result = TSI_INTERNAL_ERROR;
|
414
414
|
break;
|
415
415
|
}
|
@@ -435,14 +435,14 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
435
435
|
} else if (subject_alt_name->d.iPAddress->length == 16) {
|
436
436
|
af = AF_INET6;
|
437
437
|
} else {
|
438
|
-
|
438
|
+
LOG(ERROR) << "SAN IP Address contained invalid IP";
|
439
439
|
result = TSI_INTERNAL_ERROR;
|
440
440
|
break;
|
441
441
|
}
|
442
442
|
const char* name = inet_ntop(af, subject_alt_name->d.iPAddress->data,
|
443
443
|
ntop_buf, INET6_ADDRSTRLEN);
|
444
444
|
if (name == nullptr) {
|
445
|
-
|
445
|
+
LOG(ERROR) << "Could not get IP string from asn1 octet.";
|
446
446
|
result = TSI_INTERNAL_ERROR;
|
447
447
|
break;
|
448
448
|
}
|
@@ -605,7 +605,7 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
605
605
|
}
|
606
606
|
engine_name = static_cast<char*>(gpr_zalloc(engine_name_length + 1));
|
607
607
|
memcpy(engine_name, engine_start, engine_name_length);
|
608
|
-
|
608
|
+
VLOG(2) << "ENGINE key: " << engine_name;
|
609
609
|
ENGINE_load_dynamic();
|
610
610
|
engine = ENGINE_by_id(engine_name);
|
611
611
|
if (engine == nullptr) {
|
@@ -613,7 +613,7 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
613
613
|
// current working directory.
|
614
614
|
engine = ENGINE_by_id("dynamic");
|
615
615
|
if (engine == nullptr) {
|
616
|
-
|
616
|
+
LOG(ERROR) << "Cannot load dynamic engine";
|
617
617
|
result = TSI_INVALID_ARGUMENT;
|
618
618
|
break;
|
619
619
|
}
|
@@ -622,29 +622,29 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
622
622
|
!ENGINE_ctrl_cmd_string(engine, "DIR_ADD", ".", 0) ||
|
623
623
|
!ENGINE_ctrl_cmd_string(engine, "LIST_ADD", "1", 0) ||
|
624
624
|
!ENGINE_ctrl_cmd_string(engine, "LOAD", NULL, 0)) {
|
625
|
-
|
625
|
+
LOG(ERROR) << "Cannot find engine";
|
626
626
|
result = TSI_INVALID_ARGUMENT;
|
627
627
|
break;
|
628
628
|
}
|
629
629
|
}
|
630
630
|
if (!ENGINE_set_default(engine, ENGINE_METHOD_ALL)) {
|
631
|
-
|
631
|
+
LOG(ERROR) << "ENGINE_set_default with ENGINE_METHOD_ALL failed";
|
632
632
|
result = TSI_INVALID_ARGUMENT;
|
633
633
|
break;
|
634
634
|
}
|
635
635
|
if (!ENGINE_init(engine)) {
|
636
|
-
|
636
|
+
LOG(ERROR) << "ENGINE_init failed";
|
637
637
|
result = TSI_INVALID_ARGUMENT;
|
638
638
|
break;
|
639
639
|
}
|
640
640
|
private_key = ENGINE_load_private_key(engine, key_id, 0, 0);
|
641
641
|
if (private_key == nullptr) {
|
642
|
-
|
642
|
+
LOG(ERROR) << "ENGINE_load_private_key failed";
|
643
643
|
result = TSI_INVALID_ARGUMENT;
|
644
644
|
break;
|
645
645
|
}
|
646
646
|
if (!SSL_CTX_use_PrivateKey(context, private_key)) {
|
647
|
-
|
647
|
+
LOG(ERROR) << "SSL_CTX_use_PrivateKey failed";
|
648
648
|
result = TSI_INVALID_ARGUMENT;
|
649
649
|
break;
|
650
650
|
}
|
@@ -725,7 +725,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
725
725
|
if (root_names != nullptr) {
|
726
726
|
root_name = X509_get_subject_name(root);
|
727
727
|
if (root_name == nullptr) {
|
728
|
-
|
728
|
+
LOG(ERROR) << "Could not get name from root certificate.";
|
729
729
|
result = TSI_INVALID_ARGUMENT;
|
730
730
|
break;
|
731
731
|
}
|
@@ -742,7 +742,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
742
742
|
unsigned long error = ERR_get_error();
|
743
743
|
if (ERR_GET_LIB(error) != ERR_LIB_X509 ||
|
744
744
|
ERR_GET_REASON(error) != X509_R_CERT_ALREADY_IN_HASH_TABLE) {
|
745
|
-
|
745
|
+
LOG(ERROR) << "Could not add root certificate to ssl context.";
|
746
746
|
result = TSI_INTERNAL_ERROR;
|
747
747
|
break;
|
748
748
|
}
|
@@ -751,7 +751,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
751
751
|
num_roots++;
|
752
752
|
}
|
753
753
|
if (num_roots == 0) {
|
754
|
-
|
754
|
+
LOG(ERROR) << "Could not load any root certificate.";
|
755
755
|
result = TSI_INVALID_ARGUMENT;
|
756
756
|
}
|
757
757
|
|
@@ -790,7 +790,7 @@ static tsi_result populate_ssl_context(
|
|
790
790
|
result = ssl_ctx_use_certificate_chain(context, key_cert_pair->cert_chain,
|
791
791
|
strlen(key_cert_pair->cert_chain));
|
792
792
|
if (result != TSI_OK) {
|
793
|
-
|
793
|
+
LOG(ERROR) << "Invalid cert chain file.";
|
794
794
|
return result;
|
795
795
|
}
|
796
796
|
}
|
@@ -798,21 +798,21 @@ static tsi_result populate_ssl_context(
|
|
798
798
|
result = ssl_ctx_use_private_key(context, key_cert_pair->private_key,
|
799
799
|
strlen(key_cert_pair->private_key));
|
800
800
|
if (result != TSI_OK || !SSL_CTX_check_private_key(context)) {
|
801
|
-
|
801
|
+
LOG(ERROR) << "Invalid private key.";
|
802
802
|
return result != TSI_OK ? result : TSI_INVALID_ARGUMENT;
|
803
803
|
}
|
804
804
|
}
|
805
805
|
}
|
806
806
|
if ((cipher_list != nullptr) &&
|
807
807
|
!SSL_CTX_set_cipher_list(context, cipher_list)) {
|
808
|
-
|
808
|
+
LOG(ERROR) << "Invalid cipher list: " << cipher_list;
|
809
809
|
return TSI_INVALID_ARGUMENT;
|
810
810
|
}
|
811
811
|
{
|
812
812
|
#if OPENSSL_VERSION_NUMBER < 0x30000000L
|
813
813
|
EC_KEY* ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
|
814
814
|
if (!SSL_CTX_set_tmp_ecdh(context, ecdh)) {
|
815
|
-
|
815
|
+
LOG(ERROR) << "Could not set ephemeral ECDH key.";
|
816
816
|
EC_KEY_free(ecdh);
|
817
817
|
return TSI_INTERNAL_ERROR;
|
818
818
|
}
|
@@ -820,7 +820,7 @@ static tsi_result populate_ssl_context(
|
|
820
820
|
EC_KEY_free(ecdh);
|
821
821
|
#else
|
822
822
|
if (!SSL_CTX_set1_groups(context, kSslEcCurveNames, 1)) {
|
823
|
-
|
823
|
+
LOG(ERROR) << "Could not set ephemeral ECDH key.";
|
824
824
|
return TSI_INTERNAL_ERROR;
|
825
825
|
}
|
826
826
|
SSL_CTX_set_options(context, SSL_OP_SINGLE_ECDH_USE);
|
@@ -840,7 +840,7 @@ tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
|
840
840
|
|
841
841
|
cert = PEM_read_bio_X509(pem, nullptr, nullptr, const_cast<char*>(""));
|
842
842
|
if (cert == nullptr) {
|
843
|
-
|
843
|
+
LOG(ERROR) << "Invalid certificate";
|
844
844
|
result = TSI_INVALID_ARGUMENT;
|
845
845
|
} else {
|
846
846
|
result = peer_from_x509(cert, 0, peer);
|
@@ -863,8 +863,7 @@ static tsi_result build_alpn_protocol_name_list(
|
|
863
863
|
size_t length =
|
864
864
|
alpn_protocols[i] == nullptr ? 0 : strlen(alpn_protocols[i]);
|
865
865
|
if (length == 0 || length > 255) {
|
866
|
-
|
867
|
-
static_cast<int>(length));
|
866
|
+
LOG(ERROR) << "Invalid protocol name length: " << length;
|
868
867
|
return TSI_INVALID_ARGUMENT;
|
869
868
|
}
|
870
869
|
*protocol_name_list_length += length + 1;
|
@@ -893,13 +892,12 @@ static tsi_result build_alpn_protocol_name_list(
|
|
893
892
|
static int verify_cb(int ok, X509_STORE_CTX* ctx) {
|
894
893
|
int cert_error = X509_STORE_CTX_get_error(ctx);
|
895
894
|
if (cert_error == X509_V_ERR_UNABLE_TO_GET_CRL) {
|
896
|
-
|
897
|
-
|
898
|
-
"Ignoring error.");
|
895
|
+
LOG(INFO) << "Certificate verification failed to find relevant CRL file. "
|
896
|
+
"Ignoring error.";
|
899
897
|
return 1;
|
900
898
|
}
|
901
899
|
if (cert_error != 0) {
|
902
|
-
|
900
|
+
LOG(ERROR) << "Certificate verify failed with code " << cert_error;
|
903
901
|
}
|
904
902
|
return ok;
|
905
903
|
}
|
@@ -943,8 +941,8 @@ static int RootCertExtractCallback(X509_STORE_CTX* ctx, void* /*arg*/) {
|
|
943
941
|
if (ssl_index < 0) {
|
944
942
|
char err_str[256];
|
945
943
|
ERR_error_string_n(ERR_get_error(), err_str, sizeof(err_str));
|
946
|
-
|
947
|
-
|
944
|
+
LOG(ERROR) << "error getting the SSL index from the X509_STORE_CTX: "
|
945
|
+
<< err_str;
|
948
946
|
return ret;
|
949
947
|
}
|
950
948
|
SSL* ssl = static_cast<SSL*>(X509_STORE_CTX_get_ex_data(ctx, ssl_index));
|
@@ -962,7 +960,7 @@ static int RootCertExtractCallback(X509_STORE_CTX* ctx, void* /*arg*/) {
|
|
962
960
|
int success =
|
963
961
|
SSL_set_ex_data(ssl, g_ssl_ex_verified_root_cert_index, root_cert);
|
964
962
|
if (success == 0) {
|
965
|
-
|
963
|
+
LOG(INFO) << "Could not set verified root cert in SSL's ex_data";
|
966
964
|
} else {
|
967
965
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
968
966
|
X509_up_ref(root_cert);
|
@@ -988,8 +986,7 @@ static grpc_core::experimental::CrlProvider* GetCrlProvider(
|
|
988
986
|
}
|
989
987
|
SSL* ssl = static_cast<SSL*>(X509_STORE_CTX_get_ex_data(ctx, ssl_index));
|
990
988
|
if (ssl == nullptr) {
|
991
|
-
|
992
|
-
"error while fetching from CrlProvider. SSL object is null");
|
989
|
+
LOG(INFO) << "error while fetching from CrlProvider. SSL object is null";
|
993
990
|
return nullptr;
|
994
991
|
}
|
995
992
|
SSL_CTX* ssl_ctx = SSL_get_SSL_CTX(ssl);
|
@@ -1007,13 +1004,13 @@ static absl::StatusOr<X509_CRL*> GetCrlFromProvider(
|
|
1007
1004
|
}
|
1008
1005
|
absl::StatusOr<std::string> issuer_name = grpc_core::IssuerFromCert(cert);
|
1009
1006
|
if (!issuer_name.ok()) {
|
1010
|
-
|
1007
|
+
LOG(INFO) << "Could not get certificate issuer name";
|
1011
1008
|
return absl::InvalidArgumentError(issuer_name.status().message());
|
1012
1009
|
}
|
1013
1010
|
absl::StatusOr<std::string> akid = grpc_core::AkidFromCertificate(cert);
|
1014
1011
|
std::string akid_to_use;
|
1015
1012
|
if (!akid.ok()) {
|
1016
|
-
|
1013
|
+
LOG(INFO) << "Could not get certificate authority key identifier.";
|
1017
1014
|
} else {
|
1018
1015
|
akid_to_use = *akid;
|
1019
1016
|
}
|
@@ -1046,12 +1043,12 @@ static bool ValidateCrl(X509* cert, X509* issuer, X509_CRL* crl) {
|
|
1046
1043
|
// 6.3.3b verify issuer and scope
|
1047
1044
|
valid = grpc_core::VerifyCrlCertIssuerNamesMatch(crl, cert);
|
1048
1045
|
if (!valid) {
|
1049
|
-
|
1046
|
+
VLOG(2) << "CRL and cert issuer names mismatched.";
|
1050
1047
|
return valid;
|
1051
1048
|
}
|
1052
1049
|
valid = grpc_core::HasCrlSignBit(issuer);
|
1053
1050
|
if (!valid) {
|
1054
|
-
|
1051
|
+
VLOG(2) << "CRL issuer not allowed to sign CRLs.";
|
1055
1052
|
return valid;
|
1056
1053
|
}
|
1057
1054
|
// 6.3.3c Not supporting deltas
|
@@ -1062,7 +1059,7 @@ static bool ValidateCrl(X509* cert, X509* issuer, X509_CRL* crl) {
|
|
1062
1059
|
// 6.3.3g Verify CRL Signature
|
1063
1060
|
valid = grpc_core::VerifyCrlSignature(crl, issuer);
|
1064
1061
|
if (!valid) {
|
1065
|
-
|
1062
|
+
VLOG(2) << "Crl signature check failed.";
|
1066
1063
|
}
|
1067
1064
|
return valid;
|
1068
1065
|
}
|
@@ -1152,7 +1149,7 @@ static int CheckChainRevocation(
|
|
1152
1149
|
static int CustomVerificationFunction(X509_STORE_CTX* ctx, void* arg) {
|
1153
1150
|
int ret = X509_verify_cert(ctx);
|
1154
1151
|
if (ret <= 0) {
|
1155
|
-
|
1152
|
+
VLOG(2) << "Failed to verify cert chain.";
|
1156
1153
|
// Verification failed. We shouldn't expect to have a verified chain, so
|
1157
1154
|
// there is no need to attempt to extract the root cert from it, check for
|
1158
1155
|
// revocation, or check anything else.
|
@@ -1162,7 +1159,7 @@ static int CustomVerificationFunction(X509_STORE_CTX* ctx, void* arg) {
|
|
1162
1159
|
if (provider != nullptr) {
|
1163
1160
|
ret = CheckChainRevocation(ctx, provider);
|
1164
1161
|
if (ret <= 0) {
|
1165
|
-
|
1162
|
+
VLOG(2) << "The chain failed revocation checks.";
|
1166
1163
|
return ret;
|
1167
1164
|
}
|
1168
1165
|
}
|
@@ -1176,8 +1173,8 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
1176
1173
|
SSL_CTX* ssl_context, tsi_tls_version min_tls_version,
|
1177
1174
|
tsi_tls_version max_tls_version) {
|
1178
1175
|
if (ssl_context == nullptr) {
|
1179
|
-
|
1180
|
-
|
1176
|
+
LOG(INFO) << "Invalid nullptr argument to "
|
1177
|
+
"|tsi_set_min_and_max_tls_versions|.";
|
1181
1178
|
return TSI_INVALID_ARGUMENT;
|
1182
1179
|
}
|
1183
1180
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
@@ -1198,7 +1195,7 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
1198
1195
|
break;
|
1199
1196
|
#endif
|
1200
1197
|
default:
|
1201
|
-
|
1198
|
+
LOG(INFO) << "TLS version is not supported.";
|
1202
1199
|
return TSI_FAILED_PRECONDITION;
|
1203
1200
|
}
|
1204
1201
|
|
@@ -1217,7 +1214,7 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
1217
1214
|
#endif
|
1218
1215
|
break;
|
1219
1216
|
default:
|
1220
|
-
|
1217
|
+
LOG(INFO) << "TLS version is not supported.";
|
1221
1218
|
return TSI_FAILED_PRECONDITION;
|
1222
1219
|
}
|
1223
1220
|
#endif
|
@@ -1229,25 +1226,25 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
1229
1226
|
tsi_ssl_root_certs_store* tsi_ssl_root_certs_store_create(
|
1230
1227
|
const char* pem_roots) {
|
1231
1228
|
if (pem_roots == nullptr) {
|
1232
|
-
|
1229
|
+
LOG(ERROR) << "The root certificates are empty.";
|
1233
1230
|
return nullptr;
|
1234
1231
|
}
|
1235
1232
|
tsi_ssl_root_certs_store* root_store = static_cast<tsi_ssl_root_certs_store*>(
|
1236
1233
|
gpr_zalloc(sizeof(tsi_ssl_root_certs_store)));
|
1237
1234
|
if (root_store == nullptr) {
|
1238
|
-
|
1235
|
+
LOG(ERROR) << "Could not allocate buffer for ssl_root_certs_store.";
|
1239
1236
|
return nullptr;
|
1240
1237
|
}
|
1241
1238
|
root_store->store = X509_STORE_new();
|
1242
1239
|
if (root_store->store == nullptr) {
|
1243
|
-
|
1240
|
+
LOG(ERROR) << "Could not allocate buffer for X509_STORE.";
|
1244
1241
|
gpr_free(root_store);
|
1245
1242
|
return nullptr;
|
1246
1243
|
}
|
1247
1244
|
tsi_result result = x509_store_load_certs(root_store->store, pem_roots,
|
1248
1245
|
strlen(pem_roots), nullptr);
|
1249
1246
|
if (result != TSI_OK) {
|
1250
|
-
|
1247
|
+
LOG(ERROR) << "Could not load root certificates.";
|
1251
1248
|
X509_STORE_free(root_store->store);
|
1252
1249
|
gpr_free(root_store);
|
1253
1250
|
return nullptr;
|
@@ -1477,9 +1474,8 @@ static tsi_result ssl_handshaker_result_extract_peer(
|
|
1477
1474
|
result = peer_property_from_x509_subject(
|
1478
1475
|
verified_root_cert, &peer->properties[peer->property_count], true);
|
1479
1476
|
if (result != TSI_OK) {
|
1480
|
-
|
1481
|
-
|
1482
|
-
static_cast<int>(result));
|
1477
|
+
VLOG(2) << "Problem extracting subject from verified_root_cert. result: "
|
1478
|
+
<< result;
|
1483
1479
|
}
|
1484
1480
|
peer->property_count++;
|
1485
1481
|
}
|
@@ -1676,7 +1672,7 @@ static tsi_result ssl_handshaker_process_bytes_from_peer(
|
|
1676
1672
|
bytes_written_into_ssl_size =
|
1677
1673
|
BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
|
1678
1674
|
if (bytes_written_into_ssl_size < 0) {
|
1679
|
-
|
1675
|
+
LOG(ERROR) << "Could not write to memory BIO.";
|
1680
1676
|
if (error != nullptr) *error = "could not write to memory BIO";
|
1681
1677
|
impl->result = TSI_INTERNAL_ERROR;
|
1682
1678
|
return impl->result;
|
@@ -1823,7 +1819,7 @@ static tsi_result ssl_handshaker_next(tsi_handshaker* self,
|
|
1823
1819
|
ssl_bytes_remaining(impl, &unused_bytes, &unused_bytes_size, error);
|
1824
1820
|
if (status != TSI_OK) return status;
|
1825
1821
|
if (unused_bytes_size > received_bytes_size) {
|
1826
|
-
|
1822
|
+
LOG(ERROR) << "More unused bytes than received bytes.";
|
1827
1823
|
gpr_free(unused_bytes);
|
1828
1824
|
if (error != nullptr) *error = "More unused bytes than received bytes.";
|
1829
1825
|
return TSI_INTERNAL_ERROR;
|
@@ -1877,7 +1873,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
1877
1873
|
tsi_ssl_handshaker* impl = nullptr;
|
1878
1874
|
*handshaker = nullptr;
|
1879
1875
|
if (ctx == nullptr) {
|
1880
|
-
|
1876
|
+
LOG(ERROR) << "SSL Context is null. Should never happen.";
|
1881
1877
|
return TSI_INTERNAL_ERROR;
|
1882
1878
|
}
|
1883
1879
|
if (ssl == nullptr) {
|
@@ -1887,7 +1883,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
1887
1883
|
|
1888
1884
|
if (!BIO_new_bio_pair(&network_io, network_bio_buf_size, &ssl_io,
|
1889
1885
|
ssl_bio_buf_size)) {
|
1890
|
-
|
1886
|
+
LOG(ERROR) << "BIO_new_bio_pair failed.";
|
1891
1887
|
SSL_free(ssl);
|
1892
1888
|
return TSI_OUT_OF_RESOURCES;
|
1893
1889
|
}
|
@@ -2076,7 +2072,7 @@ static int does_entry_match_name(absl::string_view entry,
|
|
2076
2072
|
|
2077
2073
|
// Wildchar subdomain matching.
|
2078
2074
|
if (entry.size() < 3 || entry[1] != '.') { // At least *.x
|
2079
|
-
|
2075
|
+
LOG(ERROR) << "Invalid wildchar entry.";
|
2080
2076
|
return 0;
|
2081
2077
|
}
|
2082
2078
|
size_t name_subdomain_pos = name.find('.');
|
@@ -2087,8 +2083,7 @@ static int does_entry_match_name(absl::string_view entry,
|
|
2087
2083
|
entry.remove_prefix(2); // Remove *.
|
2088
2084
|
size_t dot = name_subdomain.find('.');
|
2089
2085
|
if (dot == absl::string_view::npos || dot == name_subdomain.size() - 1) {
|
2090
|
-
|
2091
|
-
std::string(name_subdomain).c_str());
|
2086
|
+
LOG(ERROR) << "Invalid toplevel subdomain: " << name_subdomain;
|
2092
2087
|
return 0;
|
2093
2088
|
}
|
2094
2089
|
if (name_subdomain.back() == '.') {
|
@@ -2115,7 +2110,7 @@ static int ssl_server_handshaker_factory_servername_callback(SSL* ssl,
|
|
2115
2110
|
return SSL_TLSEXT_ERR_OK;
|
2116
2111
|
}
|
2117
2112
|
}
|
2118
|
-
|
2113
|
+
LOG(ERROR) << "No match found for server name: " << servername;
|
2119
2114
|
return SSL_TLSEXT_ERR_NOACK;
|
2120
2115
|
}
|
2121
2116
|
|
@@ -2222,7 +2217,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
2222
2217
|
#endif
|
2223
2218
|
if (ssl_context == nullptr) {
|
2224
2219
|
grpc_core::LogSslErrorStack();
|
2225
|
-
|
2220
|
+
LOG(ERROR) << "Could not create ssl context.";
|
2226
2221
|
return TSI_INVALID_ARGUMENT;
|
2227
2222
|
}
|
2228
2223
|
|
@@ -2289,7 +2284,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
2289
2284
|
|
2290
2285
|
X509_VERIFY_PARAM_set_depth(param, kMaxChainLength);
|
2291
2286
|
if (result != TSI_OK) {
|
2292
|
-
|
2287
|
+
LOG(ERROR) << "Cannot load server root certificates.";
|
2293
2288
|
break;
|
2294
2289
|
}
|
2295
2290
|
}
|
@@ -2299,8 +2294,8 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
2299
2294
|
options->alpn_protocols, options->num_alpn_protocols,
|
2300
2295
|
&impl->alpn_protocol_list, &impl->alpn_protocol_list_length);
|
2301
2296
|
if (result != TSI_OK) {
|
2302
|
-
|
2303
|
-
|
2297
|
+
LOG(ERROR) << "Building alpn list failed with error "
|
2298
|
+
<< tsi_result_to_string(result);
|
2304
2299
|
break;
|
2305
2300
|
}
|
2306
2301
|
#if TSI_OPENSSL_ALPN_SUPPORT
|
@@ -2308,7 +2303,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
2308
2303
|
if (SSL_CTX_set_alpn_protos(
|
2309
2304
|
ssl_context, impl->alpn_protocol_list,
|
2310
2305
|
static_cast<unsigned int>(impl->alpn_protocol_list_length))) {
|
2311
|
-
|
2306
|
+
LOG(ERROR) << "Could not set alpn protocol list to context.";
|
2312
2307
|
result = TSI_INVALID_ARGUMENT;
|
2313
2308
|
break;
|
2314
2309
|
}
|
@@ -2338,7 +2333,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
2338
2333
|
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
2339
2334
|
if (!X509_STORE_load_locations(cert_store, nullptr,
|
2340
2335
|
options->crl_directory)) {
|
2341
|
-
|
2336
|
+
LOG(ERROR) << "Failed to load CRL File from directory.";
|
2342
2337
|
} else {
|
2343
2338
|
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
2344
2339
|
X509_VERIFY_PARAM_set_flags(
|
@@ -2443,7 +2438,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2443
2438
|
#endif
|
2444
2439
|
if (impl->ssl_contexts[i] == nullptr) {
|
2445
2440
|
grpc_core::LogSslErrorStack();
|
2446
|
-
|
2441
|
+
LOG(ERROR) << "Could not create ssl context.";
|
2447
2442
|
result = TSI_OUT_OF_RESOURCES;
|
2448
2443
|
break;
|
2449
2444
|
}
|
@@ -2465,7 +2460,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2465
2460
|
impl->ssl_contexts[i], kSslSessionIdContext,
|
2466
2461
|
GPR_ARRAY_SIZE(kSslSessionIdContext));
|
2467
2462
|
if (set_sid_ctx_result == 0) {
|
2468
|
-
|
2463
|
+
LOG(ERROR) << "Failed to set session id context.";
|
2469
2464
|
result = TSI_INTERNAL_ERROR;
|
2470
2465
|
break;
|
2471
2466
|
}
|
@@ -2475,7 +2470,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2475
2470
|
impl->ssl_contexts[i],
|
2476
2471
|
const_cast<char*>(options->session_ticket_key),
|
2477
2472
|
options->session_ticket_key_size) == 0) {
|
2478
|
-
|
2473
|
+
LOG(ERROR) << "Invalid STEK size.";
|
2479
2474
|
result = TSI_INVALID_ARGUMENT;
|
2480
2475
|
break;
|
2481
2476
|
}
|
@@ -2488,7 +2483,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2488
2483
|
strlen(options->pem_client_root_certs),
|
2489
2484
|
options->send_client_ca_list ? &root_names : nullptr);
|
2490
2485
|
if (result != TSI_OK) {
|
2491
|
-
|
2486
|
+
LOG(ERROR) << "Invalid verification certs.";
|
2492
2487
|
break;
|
2493
2488
|
}
|
2494
2489
|
if (options->send_client_ca_list) {
|
@@ -2536,7 +2531,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2536
2531
|
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
2537
2532
|
if (!X509_STORE_load_locations(cert_store, nullptr,
|
2538
2533
|
options->crl_directory)) {
|
2539
|
-
|
2534
|
+
LOG(ERROR) << "Failed to load CRL File from directory.";
|
2540
2535
|
} else {
|
2541
2536
|
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
2542
2537
|
X509_VERIFY_PARAM_set_flags(
|