grpc 1.32.0 → 1.52.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 +1741 -3302
- data/etc/roots.pem +592 -899
- data/include/grpc/byte_buffer.h +76 -1
- data/include/grpc/byte_buffer_reader.h +19 -1
- data/include/grpc/compression.h +3 -3
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +49 -0
- data/include/grpc/event_engine/event_engine.h +467 -0
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
- data/include/grpc/event_engine/internal/slice_cast.h +67 -0
- data/include/grpc/event_engine/memory_allocator.h +211 -0
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice.h +306 -0
- data/include/grpc/event_engine/slice_buffer.h +147 -0
- data/include/grpc/fork.h +25 -1
- data/include/grpc/grpc.h +93 -38
- data/include/grpc/grpc_posix.h +22 -18
- data/include/grpc/grpc_security.h +536 -302
- data/include/grpc/grpc_security_constants.h +17 -14
- data/include/grpc/impl/codegen/atm.h +4 -70
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +4 -66
- data/include/grpc/impl/codegen/atm_gcc_sync.h +4 -60
- data/include/grpc/impl/codegen/atm_windows.h +4 -103
- data/include/grpc/impl/codegen/byte_buffer.h +4 -76
- data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -17
- data/include/grpc/impl/codegen/compression_types.h +5 -83
- data/include/grpc/impl/codegen/connectivity_state.h +5 -19
- data/include/grpc/impl/codegen/fork.h +4 -23
- data/include/grpc/impl/codegen/gpr_types.h +5 -34
- data/include/grpc/impl/codegen/grpc_types.h +5 -762
- data/include/grpc/impl/codegen/log.h +4 -87
- data/include/grpc/impl/codegen/port_platform.h +3 -669
- data/include/grpc/impl/codegen/propagation_bits.h +4 -27
- data/include/grpc/impl/codegen/slice.h +4 -102
- data/include/grpc/impl/codegen/status.h +4 -129
- data/include/grpc/impl/codegen/sync.h +4 -40
- data/include/grpc/impl/codegen/sync_abseil.h +4 -11
- data/include/grpc/impl/codegen/sync_custom.h +4 -13
- data/include/grpc/impl/codegen/sync_generic.h +4 -23
- data/include/grpc/impl/codegen/sync_posix.h +4 -27
- data/include/grpc/impl/codegen/sync_windows.h +4 -11
- data/include/grpc/impl/compression_types.h +109 -0
- data/include/grpc/impl/connectivity_state.h +47 -0
- data/include/grpc/impl/grpc_types.h +824 -0
- data/include/grpc/impl/propagation_bits.h +54 -0
- data/include/grpc/impl/slice_type.h +112 -0
- data/include/grpc/load_reporting.h +1 -1
- data/include/grpc/module.modulemap +19 -15
- data/include/grpc/slice.h +1 -12
- data/include/grpc/slice_buffer.h +3 -3
- data/include/grpc/status.h +131 -1
- data/include/grpc/support/atm.h +70 -1
- data/include/grpc/support/atm_gcc_atomic.h +59 -1
- data/include/grpc/support/atm_gcc_sync.h +58 -1
- data/include/grpc/support/atm_windows.h +105 -1
- data/include/grpc/support/log.h +87 -1
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/port_platform.h +767 -1
- data/include/grpc/support/string_util.h +1 -1
- data/include/grpc/support/sync.h +38 -5
- data/include/grpc/support/sync_abseil.h +11 -1
- data/include/grpc/support/sync_custom.h +13 -1
- data/include/grpc/support/sync_generic.h +24 -1
- data/include/grpc/support/sync_posix.h +27 -1
- data/include/grpc/support/sync_windows.h +15 -1
- data/include/grpc/support/time.h +32 -9
- data/src/core/ext/filters/census/grpc_context.cc +20 -17
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +315 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +142 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +68 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +36 -34
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +49 -44
- data/src/core/ext/filters/client_channel/backup_poller.h +23 -24
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +205 -204
- data/src/core/ext/filters/client_channel/client_channel.cc +2262 -3309
- data/src/core/ext/filters/client_channel/client_channel.h +605 -60
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +21 -24
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +32 -22
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +19 -42
- data/src/core/ext/filters/client_channel/client_channel_factory.h +25 -26
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +33 -61
- data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
- data/src/core/ext/filters/client_channel/client_channel_service_config.h +111 -0
- data/src/core/ext/filters/client_channel/config_selector.cc +2 -4
- data/src/core/ext/filters/client_channel/config_selector.h +81 -23
- data/src/core/ext/filters/client_channel/connector.h +32 -27
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +175 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +108 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +27 -163
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +37 -42
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +140 -578
- data/src/core/ext/filters/client_channel/health/health_check_client.h +26 -158
- data/src/core/ext/filters/client_channel/http_proxy.cc +152 -170
- data/src/core/ext/filters/client_channel/http_proxy.h +43 -19
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +56 -39
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +13 -9
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +45 -19
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +16 -11
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +64 -143
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +38 -21
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +732 -590
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +27 -31
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +16 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +8 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +19 -20
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +29 -23
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +47 -39
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +28 -27
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +415 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1129 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +94 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +249 -230
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +520 -484
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +890 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +47 -0
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2526 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +285 -259
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +181 -174
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +297 -262
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +558 -213
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +64 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +794 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +699 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1224 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +651 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +60 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +364 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +31 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +29 -27
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +148 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +691 -361
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +64 -78
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +57 -51
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +130 -146
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +715 -314
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +102 -63
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +20 -20
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +129 -250
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +75 -90
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +26 -9
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +471 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +269 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +121 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +87 -85
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +1004 -407
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +30 -0
- data/src/core/ext/filters/client_channel/retry_filter.cc +2661 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +31 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +282 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +105 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +42 -94
- data/src/core/ext/filters/client_channel/retry_throttle.h +47 -32
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +78 -46
- data/src/core/ext/filters/client_channel/subchannel.cc +443 -653
- data/src/core/ext/filters/client_channel/subchannel.h +191 -218
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +28 -59
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +57 -48
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +470 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +222 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +165 -133
- data/src/core/ext/filters/deadline/deadline_filter.h +18 -15
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +280 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +71 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +112 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +126 -564
- data/src/core/ext/filters/http/client/http_client_filter.h +52 -22
- data/src/core/ext/filters/http/client_authority_filter.cc +70 -139
- data/src/core/ext/filters/http/client_authority_filter.h +46 -24
- data/src/core/ext/filters/http/http_filters_plugin.cc +65 -89
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +315 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.h +132 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +121 -488
- data/src/core/ext/filters/http/server/http_server_filter.h +55 -21
- data/src/core/ext/filters/message_size/message_size_filter.cc +162 -188
- data/src/core/ext/filters/message_size/message_size_filter.h +42 -17
- data/src/core/ext/filters/rbac/rbac_filter.cc +174 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +84 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +819 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +86 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +83 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +159 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +33 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +229 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +20 -19
- data/src/core/ext/transport/chttp2/alpn/alpn.h +22 -22
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +326 -144
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +42 -34
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +892 -280
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +30 -21
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +35 -33
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +33 -31
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +32 -30
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +27 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +1021 -1350
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +49 -25
- data/src/core/ext/transport/chttp2/transport/context_list.cc +27 -25
- data/src/core/ext/transport/chttp2/transport/context_list.h +32 -31
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +251 -0
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +971 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +361 -285
- data/src/core/ext/transport/chttp2/transport/flow_control.h +259 -320
- data/src/core/ext/transport/chttp2/transport/frame.h +19 -23
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +91 -239
- data/src/core/ext/transport/chttp2/transport/frame_data.h +41 -63
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +61 -56
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +28 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +44 -39
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +30 -25
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +48 -39
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +28 -24
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +60 -60
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +33 -27
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +46 -44
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +26 -24
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +47 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +520 -800
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +204 -94
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +89 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +80 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +859 -1276
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +129 -104
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +246 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +137 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +36 -35
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +19 -19
- data/src/core/ext/transport/chttp2/transport/internal.h +270 -341
- data/src/core/ext/transport/chttp2/transport/parsing.cc +416 -384
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +32 -32
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +24 -24
- data/src/core/ext/transport/chttp2/transport/stream_map.h +32 -31
- data/src/core/ext/transport/chttp2/transport/varint.cc +29 -24
- data/src/core/ext/transport/chttp2/transport/varint.h +70 -54
- data/src/core/ext/transport/chttp2/transport/writing.cc +235 -250
- data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -22
- data/src/core/ext/transport/inproc/inproc_transport.cc +371 -413
- data/src/core/ext/transport/inproc/inproc_transport.h +22 -23
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +117 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +502 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +569 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +125 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +516 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +159 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +64 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +189 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +128 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +101 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +613 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +107 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +44 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +53 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +31 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +63 -13
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +154 -108
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +891 -291
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +413 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2251 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +50 -29
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +250 -82
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +374 -210
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2308 -620
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +58 -20
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +61 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +317 -91
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +299 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1437 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +81 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +470 -140
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +63 -22
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +255 -143
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1431 -409
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +110 -43
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +611 -133
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +52 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +107 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +159 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +169 -95
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +986 -291
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +142 -92
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +866 -295
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +72 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +245 -74
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1438 -215
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +18 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +42 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +177 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +23 -10
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +89 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +182 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +122 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +52 -37
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +234 -94
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +92 -39
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +486 -112
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +71 -54
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +419 -163
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +50 -17
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +138 -57
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +812 -172
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +115 -67
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +704 -225
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +238 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +30 -12
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +131 -39
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +140 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +165 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +748 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +174 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +757 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +145 -98
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +736 -241
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +48 -25
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +304 -106
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +781 -458
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +4982 -1397
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +39 -19
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +189 -57
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +241 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +1191 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +92 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +107 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +28 -15
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +104 -37
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +254 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +221 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +33 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +43 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +226 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +150 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +96 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +395 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +94 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +445 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +237 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +55 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +172 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +331 -172
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2090 -484
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +168 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +10 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +8 -4
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +116 -50
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +718 -187
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +43 -27
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +196 -74
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +137 -51
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +833 -158
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +168 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +16 -3
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +35 -10
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +214 -63
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1189 -200
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +138 -56
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +651 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +116 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +76 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +265 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +230 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +29 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +127 -45
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +62 -22
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +52 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +37 -21
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +156 -55
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +32 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +150 -51
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +178 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +38 -23
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +186 -68
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +51 -32
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +309 -110
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +54 -37
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +295 -106
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +213 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +10 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +5 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +143 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +24 -10
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +87 -26
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +31 -16
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +134 -37
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +54 -14
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +131 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +23 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +25 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +271 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +1280 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +167 -118
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +965 -338
- data/src/core/ext/upb-generated/google/api/http.upb.c +44 -29
- data/src/core/ext/upb-generated/google/api/http.upb.h +252 -100
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +115 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +52 -17
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +375 -283
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2467 -972
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +50 -15
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +16 -3
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +35 -10
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +48 -32
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +213 -78
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +50 -15
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +58 -37
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +356 -118
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -9
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +66 -25
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +335 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +33 -19
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +119 -44
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +136 -108
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +817 -316
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +28 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +105 -33
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +23 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +81 -25
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +82 -62
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +495 -186
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +70 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +216 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +792 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +76 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +229 -42
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +55 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +112 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +22 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +18 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +32 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +70 -15
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +31 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +63 -13
- data/src/core/ext/upb-generated/validate/validate.upb.c +407 -295
- data/src/core/ext/upb-generated/validate/validate.upb.h +3054 -1023
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +290 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +112 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +46 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +105 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +306 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +103 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +41 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +83 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +66 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +208 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +56 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +119 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +49 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +131 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +68 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +248 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +49 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +125 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +74 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +200 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +113 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +207 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +914 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +151 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +226 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +45 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +107 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +222 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +397 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +98 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +559 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +155 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +138 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +112 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +270 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +150 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +168 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +235 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +228 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +300 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +110 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +128 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +136 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +220 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +190 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +88 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +125 -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 +134 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +194 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +112 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +939 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +305 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +199 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +92 -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 +117 -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/rbac/v3/rbac.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +78 -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/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +562 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +130 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +213 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +91 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +254 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +197 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +54 -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/number.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +65 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +78 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +85 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +34 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +331 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +32 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +34 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +283 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_store.cc +159 -0
- data/src/core/ext/xds/certificate_provider_store.h +138 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +150 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +77 -0
- data/src/core/ext/xds/upb_utils.h +45 -0
- data/src/core/ext/xds/xds_api.cc +314 -2078
- data/src/core/ext/xds/xds_api.h +141 -308
- data/src/core/ext/xds/xds_bootstrap.cc +10 -345
- data/src/core/ext/xds/xds_bootstrap.h +43 -48
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +361 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.h +184 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +416 -0
- data/src/core/ext/xds/xds_certificate_provider.h +183 -0
- data/src/core/ext/xds/xds_channel_args.h +11 -5
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +119 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +65 -0
- data/src/core/ext/xds/xds_client.cc +1442 -1516
- data/src/core/ext/xds/xds_client.h +212 -144
- data/src/core/ext/xds/xds_client_grpc.cc +236 -0
- data/src/core/ext/xds/xds_client_grpc.h +79 -0
- data/src/core/ext/xds/xds_client_stats.cc +103 -59
- data/src/core/ext/xds/xds_client_stats.h +71 -40
- data/src/core/ext/xds/xds_cluster.cc +707 -0
- data/src/core/ext/xds/xds_cluster.h +137 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +132 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +97 -0
- data/src/core/ext/xds/xds_common_types.cc +502 -0
- data/src/core/ext/xds/xds_common_types.h +108 -0
- data/src/core/ext/xds/xds_endpoint.cc +474 -0
- data/src/core/ext/xds/xds_endpoint.h +139 -0
- data/src/core/ext/xds/xds_health_status.cc +80 -0
- data/src/core/ext/xds/xds_health_status.h +82 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +236 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +58 -0
- data/src/core/ext/xds/xds_http_filters.cc +121 -0
- data/src/core/ext/xds/xds_http_filters.h +181 -0
- data/src/core/ext/xds/xds_http_rbac_filter.cc +506 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +58 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +239 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +71 -0
- data/src/core/ext/xds/xds_listener.cc +1130 -0
- data/src/core/ext/xds/xds_listener.h +226 -0
- data/src/core/ext/xds/xds_resource_type.h +104 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +88 -0
- data/src/core/ext/xds/xds_route_config.cc +1138 -0
- data/src/core/ext/xds/xds_route_config.h +252 -0
- data/src/core/ext/xds/xds_routing.cc +264 -0
- data/src/core/ext/xds/xds_routing.h +106 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +1363 -0
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +356 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +340 -0
- data/src/core/lib/address_utils/parse_address.h +86 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +444 -0
- data/src/core/lib/address_utils/sockaddr_utils.h +100 -0
- data/src/core/lib/avl/avl.h +476 -88
- data/src/core/lib/backoff/backoff.cc +26 -57
- data/src/core/lib/backoff/backoff.h +30 -30
- data/src/core/lib/channel/call_finalization.h +88 -0
- data/src/core/lib/channel/call_tracer.h +103 -0
- data/src/core/lib/channel/channel_args.cc +309 -64
- data/src/core/lib/channel/channel_args.h +454 -44
- data/src/core/lib/channel/channel_args_preconditioning.cc +43 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +125 -62
- data/src/core/lib/channel/channel_stack.h +226 -136
- data/src/core/lib/channel/channel_stack_builder.cc +35 -307
- data/src/core/lib/channel/channel_stack_builder.h +112 -158
- data/src/core/lib/channel/channel_stack_builder_impl.cc +113 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +48 -0
- data/src/core/lib/channel/channel_trace.cc +36 -43
- data/src/core/lib/channel/channel_trace.h +27 -23
- data/src/core/lib/channel/channelz.cc +201 -151
- data/src/core/lib/channel/channelz.h +121 -81
- data/src/core/lib/channel/channelz_registry.cc +59 -51
- data/src/core/lib/channel/channelz_registry.h +31 -28
- data/src/core/lib/channel/connected_channel.cc +745 -81
- data/src/core/lib/channel/connected_channel.h +21 -23
- data/src/core/lib/channel/context.h +32 -18
- data/src/core/lib/channel/promise_based_filter.cc +2249 -0
- data/src/core/lib/channel/promise_based_filter.h +857 -0
- data/src/core/lib/channel/status_util.cc +76 -19
- data/src/core/lib/channel/status_util.h +45 -22
- data/src/core/lib/compression/compression.cc +46 -129
- data/src/core/lib/compression/compression_internal.cc +191 -229
- data/src/core/lib/compression/compression_internal.h +87 -90
- data/src/core/lib/compression/message_compress.cc +41 -39
- data/src/core/lib/compression/message_compress.h +28 -29
- data/src/core/lib/config/core_configuration.cc +111 -0
- data/src/core/lib/config/core_configuration.h +243 -0
- data/src/core/lib/debug/event_log.cc +88 -0
- data/src/core/lib/debug/event_log.h +81 -0
- data/src/core/lib/debug/histogram_view.cc +69 -0
- data/src/core/lib/debug/histogram_view.h +37 -0
- data/src/core/lib/debug/stats.cc +48 -152
- data/src/core/lib/debug/stats.h +49 -55
- data/src/core/lib/debug/stats_data.cc +291 -637
- data/src/core/lib/debug/stats_data.h +264 -527
- data/src/core/lib/debug/trace.cc +19 -20
- data/src/core/lib/debug/trace.h +34 -32
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +40 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +49 -0
- data/src/core/lib/event_engine/common_closures.h +71 -0
- data/src/core/lib/event_engine/default_event_engine.cc +94 -0
- data/src/core/lib/event_engine/default_event_engine.h +49 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +48 -0
- data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/forkable.cc +101 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/memory_allocator.cc +74 -0
- data/src/core/lib/event_engine/poller.h +62 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +614 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +129 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +900 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
- data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +33 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +265 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1308 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +684 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +570 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +245 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +236 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +228 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +380 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +853 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
- data/src/core/lib/event_engine/posix_engine/timer.cc +311 -0
- data/src/core/lib/event_engine/posix_engine/timer.h +194 -0
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +173 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +114 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
- data/src/core/lib/event_engine/resolved_address.cc +41 -0
- data/src/core/lib/event_engine/slice.cc +103 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/tcp_socket_utils.cc +373 -0
- data/src/core/lib/event_engine/tcp_socket_utils.h +85 -0
- data/src/core/lib/event_engine/thread_pool.cc +277 -0
- data/src/core/lib/event_engine/thread_pool.h +137 -0
- data/src/core/lib/event_engine/time_util.cc +30 -0
- data/src/core/lib/event_engine/time_util.h +32 -0
- data/src/core/lib/event_engine/trace.cc +18 -0
- data/src/core/lib/event_engine/trace.h +30 -0
- data/src/core/lib/event_engine/utils.cc +44 -0
- data/src/core/lib/event_engine/utils.h +36 -0
- data/src/core/lib/event_engine/windows/iocp.cc +156 -0
- data/src/core/lib/event_engine/windows/iocp.h +69 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
- data/src/core/lib/event_engine/windows/win_socket.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +165 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +124 -0
- data/src/core/lib/experiments/config.cc +146 -0
- data/src/core/lib/experiments/config.h +43 -0
- data/src/core/lib/experiments/experiments.cc +75 -0
- data/src/core/lib/experiments/experiments.h +58 -0
- data/src/core/lib/gpr/alloc.cc +26 -30
- data/src/core/lib/gpr/alloc.h +18 -18
- data/src/core/lib/gpr/atm.cc +18 -18
- data/src/core/lib/gpr/cpu_iphone.cc +34 -26
- data/src/core/lib/gpr/cpu_linux.cc +28 -23
- data/src/core/lib/gpr/cpu_posix.cc +24 -23
- data/src/core/lib/gpr/cpu_windows.cc +20 -18
- data/src/core/lib/gpr/log.cc +91 -36
- data/src/core/lib/gpr/log_android.cc +25 -22
- data/src/core/lib/gpr/log_linux.cc +46 -27
- data/src/core/lib/gpr/log_posix.cc +41 -23
- data/src/core/lib/gpr/log_windows.cc +43 -29
- data/src/core/lib/gpr/spinlock.h +28 -20
- data/src/core/lib/gpr/string.cc +48 -46
- data/src/core/lib/gpr/string.h +62 -63
- data/src/core/lib/gpr/string_posix.cc +24 -24
- data/src/core/lib/gpr/string_util_windows.cc +25 -52
- data/src/core/lib/gpr/string_windows.cc +24 -24
- data/src/core/lib/gpr/sync.cc +31 -31
- data/src/core/lib/gpr/sync_abseil.cc +29 -43
- data/src/core/lib/gpr/sync_posix.cc +26 -37
- data/src/core/lib/gpr/sync_windows.cc +31 -29
- data/src/core/lib/gpr/time.cc +51 -45
- data/src/core/lib/gpr/time_posix.cc +41 -45
- data/src/core/lib/gpr/time_precise.cc +26 -23
- data/src/core/lib/gpr/time_precise.h +25 -22
- data/src/core/lib/gpr/time_windows.cc +38 -31
- data/src/core/lib/gpr/tmpfile.h +22 -22
- data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
- data/src/core/lib/gpr/tmpfile_posix.cc +23 -22
- data/src/core/lib/gpr/tmpfile_windows.cc +28 -29
- data/src/core/lib/gpr/useful.h +169 -50
- data/src/core/lib/gpr/wrap_memcpy.cc +25 -24
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +225 -0
- data/src/core/lib/gprpp/chunked_vector.h +257 -0
- data/src/core/lib/gprpp/construct_destruct.h +40 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +49 -0
- data/src/core/lib/gprpp/crash.cc +33 -0
- data/src/core/lib/gprpp/crash.h +34 -0
- data/src/core/lib/gprpp/debug_location.h +59 -25
- data/src/core/lib/gprpp/dual_ref_counted.h +327 -0
- data/src/core/lib/gprpp/env.h +53 -0
- data/src/core/lib/gprpp/env_linux.cc +80 -0
- data/src/core/lib/gprpp/env_posix.cc +47 -0
- data/src/core/lib/gprpp/env_windows.cc +56 -0
- data/src/core/lib/gprpp/examine_stack.cc +43 -0
- data/src/core/lib/gprpp/examine_stack.h +45 -0
- data/src/core/lib/gprpp/fork.cc +50 -60
- data/src/core/lib/gprpp/fork.h +26 -34
- data/src/core/lib/gprpp/global_config.h +20 -23
- data/src/core/lib/gprpp/global_config_custom.h +18 -18
- data/src/core/lib/gprpp/global_config_env.cc +38 -36
- data/src/core/lib/gprpp/global_config_env.h +28 -26
- data/src/core/lib/gprpp/global_config_generic.h +18 -22
- data/src/core/lib/gprpp/host_port.cc +28 -26
- data/src/core/lib/gprpp/host_port.h +29 -28
- data/src/core/lib/gprpp/load_file.cc +75 -0
- data/src/core/lib/gprpp/load_file.h +33 -0
- data/src/core/lib/gprpp/manual_constructor.h +25 -91
- data/src/core/lib/gprpp/match.h +75 -0
- data/src/core/lib/gprpp/memory.h +26 -24
- data/src/core/lib/gprpp/mpscq.cc +26 -26
- data/src/core/lib/gprpp/mpscq.h +24 -23
- data/src/core/lib/gprpp/no_destruct.h +95 -0
- data/src/core/lib/gprpp/notification.h +67 -0
- data/src/core/lib/gprpp/orphanable.h +27 -34
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/packed_table.h +40 -0
- data/src/core/lib/gprpp/per_cpu.h +46 -0
- data/src/core/lib/gprpp/ref_counted.h +142 -105
- data/src/core/lib/gprpp/ref_counted_ptr.h +187 -41
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/sorted_pack.h +98 -0
- data/src/core/lib/gprpp/stat.h +36 -0
- data/src/core/lib/gprpp/stat_posix.cc +55 -0
- data/src/core/lib/gprpp/stat_windows.cc +50 -0
- data/src/core/lib/gprpp/status_helper.cc +455 -0
- data/src/core/lib/gprpp/status_helper.h +189 -0
- data/src/core/lib/gprpp/strerror.cc +41 -0
- data/src/core/lib/gprpp/strerror.h +29 -0
- data/src/core/lib/gprpp/sync.h +129 -64
- data/src/core/lib/gprpp/table.h +452 -0
- data/src/core/lib/gprpp/tchar.cc +49 -0
- data/src/core/lib/gprpp/tchar.h +33 -0
- data/src/core/lib/gprpp/thd.h +24 -27
- data/src/core/lib/gprpp/thd_posix.cc +76 -70
- data/src/core/lib/gprpp/thd_windows.cc +32 -35
- data/src/core/lib/gprpp/time.cc +240 -0
- data/src/core/lib/gprpp/time.h +366 -0
- data/src/core/lib/gprpp/time_averaged_stats.cc +60 -0
- data/src/core/lib/gprpp/time_averaged_stats.h +79 -0
- data/src/core/lib/gprpp/time_util.cc +81 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/gprpp/validation_errors.cc +61 -0
- data/src/core/lib/gprpp/validation_errors.h +127 -0
- data/src/core/lib/gprpp/work_serializer.cc +247 -0
- data/src/core/lib/gprpp/work_serializer.h +86 -0
- data/src/core/lib/handshaker/proxy_mapper.h +53 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
- data/src/core/lib/http/format_request.cc +81 -47
- data/src/core/lib/http/format_request.h +29 -25
- data/src/core/lib/http/httpcli.cc +321 -234
- data/src/core/lib/http/httpcli.h +254 -109
- data/src/core/lib/http/httpcli_security_connector.cc +104 -106
- data/src/core/lib/http/httpcli_ssl_credentials.h +39 -0
- data/src/core/lib/http/parser.cc +208 -129
- data/src/core/lib/http/parser.h +53 -36
- data/src/core/lib/iomgr/block_annotate.h +21 -21
- data/src/core/lib/iomgr/buffer_list.cc +165 -146
- data/src/core/lib/iomgr/buffer_list.h +128 -108
- data/src/core/lib/iomgr/call_combiner.cc +61 -58
- data/src/core/lib/iomgr/call_combiner.h +31 -34
- data/src/core/lib/iomgr/cfstream_handle.cc +38 -41
- data/src/core/lib/iomgr/cfstream_handle.h +23 -23
- data/src/core/lib/iomgr/closure.h +110 -54
- data/src/core/lib/iomgr/combiner.cc +51 -59
- data/src/core/lib/iomgr/combiner.h +21 -20
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +22 -21
- data/src/core/lib/iomgr/dynamic_annotations.h +20 -20
- data/src/core/lib/iomgr/endpoint.cc +22 -26
- data/src/core/lib/iomgr/endpoint.h +53 -54
- data/src/core/lib/iomgr/endpoint_cfstream.cc +78 -99
- data/src/core/lib/iomgr/endpoint_cfstream.h +31 -31
- data/src/core/lib/iomgr/endpoint_pair.h +19 -18
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +39 -30
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +25 -25
- data/src/core/lib/iomgr/error.cc +145 -752
- data/src/core/lib/iomgr/error.h +119 -227
- data/src/core/lib/iomgr/error_cfstream.cc +25 -24
- data/src/core/lib/iomgr/error_cfstream.h +21 -21
- data/src/core/lib/iomgr/ev_apple.cc +40 -36
- data/src/core/lib/iomgr/ev_apple.h +18 -18
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +313 -297
- data/src/core/lib/iomgr/ev_epoll1_linux.h +19 -19
- data/src/core/lib/iomgr/ev_poll_posix.cc +359 -332
- data/src/core/lib/iomgr/ev_poll_posix.h +20 -20
- data/src/core/lib/iomgr/ev_posix.cc +100 -134
- data/src/core/lib/iomgr/ev_posix.h +100 -94
- data/src/core/lib/iomgr/ev_windows.cc +18 -18
- data/src/core/lib/iomgr/exec_ctx.cc +48 -139
- data/src/core/lib/iomgr/exec_ctx.h +175 -221
- data/src/core/lib/iomgr/executor.cc +50 -68
- data/src/core/lib/iomgr/executor.h +28 -31
- data/src/core/lib/iomgr/fork_posix.cc +25 -22
- data/src/core/lib/iomgr/fork_windows.cc +21 -21
- data/src/core/lib/iomgr/gethostname.h +18 -18
- data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
- data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
- data/src/core/lib/iomgr/grpc_if_nametoindex.h +20 -20
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +22 -21
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +22 -21
- data/src/core/lib/iomgr/internal_errqueue.cc +44 -50
- data/src/core/lib/iomgr/internal_errqueue.h +81 -86
- data/src/core/lib/iomgr/iocp_windows.cc +32 -31
- data/src/core/lib/iomgr/iocp_windows.h +19 -19
- data/src/core/lib/iomgr/iomgr.cc +31 -24
- data/src/core/lib/iomgr/iomgr.h +35 -35
- data/src/core/lib/iomgr/iomgr_fwd.h +26 -0
- data/src/core/lib/iomgr/iomgr_internal.cc +25 -29
- data/src/core/lib/iomgr/iomgr_internal.h +31 -30
- data/src/core/lib/iomgr/iomgr_posix.cc +25 -23
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +64 -33
- data/src/core/lib/iomgr/iomgr_windows.cc +27 -26
- data/src/core/lib/iomgr/load_file.cc +26 -29
- data/src/core/lib/iomgr/load_file.h +22 -22
- data/src/core/lib/iomgr/lockfree_event.cc +131 -125
- data/src/core/lib/iomgr/lockfree_event.h +21 -21
- data/src/core/lib/iomgr/nameser.h +84 -84
- data/src/core/lib/iomgr/polling_entity.cc +26 -22
- data/src/core/lib/iomgr/polling_entity.h +33 -27
- data/src/core/lib/iomgr/pollset.cc +22 -22
- data/src/core/lib/iomgr/pollset.h +62 -62
- data/src/core/lib/iomgr/pollset_set.cc +17 -17
- data/src/core/lib/iomgr/pollset_set.h +23 -25
- data/src/core/lib/iomgr/pollset_set_windows.cc +19 -18
- data/src/core/lib/iomgr/pollset_set_windows.h +18 -18
- data/src/core/lib/iomgr/pollset_windows.cc +36 -35
- data/src/core/lib/iomgr/pollset_windows.h +22 -22
- data/src/core/lib/iomgr/port.h +58 -44
- data/src/core/lib/iomgr/python_util.h +26 -25
- data/src/core/lib/iomgr/resolve_address.cc +39 -39
- data/src/core/lib/iomgr/resolve_address.h +100 -65
- data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +136 -109
- data/src/core/lib/iomgr/resolve_address_posix.h +63 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +133 -90
- data/src/core/lib/iomgr/resolve_address_windows.h +63 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/sockaddr.h +24 -24
- data/src/core/lib/iomgr/sockaddr_posix.h +20 -18
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +64 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +20 -18
- data/src/core/lib/iomgr/socket_factory_posix.cc +25 -24
- data/src/core/lib/iomgr/socket_factory_posix.h +31 -30
- data/src/core/lib/iomgr/socket_mutator.cc +39 -24
- data/src/core/lib/iomgr/socket_mutator.h +54 -30
- data/src/core/lib/iomgr/socket_utils.h +24 -24
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +108 -142
- data/src/core/lib/iomgr/socket_utils_linux.cc +22 -21
- data/src/core/lib/iomgr/socket_utils_posix.cc +105 -21
- data/src/core/lib/iomgr/socket_utils_posix.h +198 -106
- data/src/core/lib/iomgr/socket_utils_windows.cc +22 -21
- data/src/core/lib/iomgr/socket_windows.cc +37 -36
- data/src/core/lib/iomgr/socket_windows.h +56 -58
- data/src/core/lib/iomgr/systemd_utils.cc +116 -0
- data/src/core/lib/iomgr/systemd_utils.h +33 -0
- data/src/core/lib/iomgr/tcp_client.cc +28 -24
- data/src/core/lib/iomgr/tcp_client.h +48 -34
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +53 -58
- data/src/core/lib/iomgr/tcp_client_posix.cc +249 -130
- data/src/core/lib/iomgr/tcp_client_posix.h +55 -51
- data/src/core/lib/iomgr/tcp_client_windows.cc +70 -62
- data/src/core/lib/iomgr/tcp_posix.cc +685 -497
- data/src/core/lib/iomgr/tcp_posix.h +46 -39
- data/src/core/lib/iomgr/tcp_server.cc +36 -27
- data/src/core/lib/iomgr/tcp_server.h +84 -73
- data/src/core/lib/iomgr/tcp_server_posix.cc +216 -164
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +88 -80
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +140 -99
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +55 -52
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +23 -23
- data/src/core/lib/iomgr/tcp_server_windows.cc +129 -132
- data/src/core/lib/iomgr/tcp_windows.cc +136 -135
- data/src/core/lib/iomgr/tcp_windows.h +32 -33
- data/src/core/lib/iomgr/timer.cc +20 -19
- data/src/core/lib/iomgr/timer.h +81 -72
- data/src/core/lib/iomgr/timer_generic.cc +237 -257
- data/src/core/lib/iomgr/timer_generic.h +20 -19
- data/src/core/lib/iomgr/timer_heap.cc +27 -28
- data/src/core/lib/iomgr/timer_heap.h +19 -19
- data/src/core/lib/iomgr/timer_manager.cc +48 -47
- data/src/core/lib/iomgr/timer_manager.h +25 -25
- data/src/core/lib/iomgr/unix_sockets_posix.cc +48 -52
- data/src/core/lib/iomgr/unix_sockets_posix.h +25 -24
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +32 -29
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +26 -26
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +24 -23
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +37 -35
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +18 -18
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +37 -33
- data/src/core/lib/iomgr/wakeup_fd_posix.h +58 -58
- data/src/core/lib/json/json.h +32 -26
- data/src/core/lib/json/json_args.h +34 -0
- data/src/core/lib/json/json_channel_args.h +42 -0
- data/src/core/lib/json/json_object_loader.cc +217 -0
- data/src/core/lib/json/json_object_loader.h +634 -0
- data/src/core/lib/json/json_reader.cc +193 -118
- data/src/core/lib/json/json_util.cc +106 -0
- data/src/core/lib/json/json_util.h +163 -0
- data/src/core/lib/json/json_writer.cc +64 -61
- data/src/core/lib/load_balancing/lb_policy.cc +93 -0
- data/src/core/lib/load_balancing/lb_policy.h +438 -0
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +141 -0
- data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
- data/src/core/lib/load_balancing/subchannel_interface.h +133 -0
- data/src/core/lib/matchers/matchers.cc +331 -0
- data/src/core/lib/matchers/matchers.h +162 -0
- data/src/core/lib/promise/activity.cc +134 -0
- data/src/core/lib/promise/activity.h +612 -0
- data/src/core/lib/promise/arena_promise.h +231 -0
- data/src/core/lib/promise/context.h +93 -0
- data/src/core/lib/promise/detail/basic_seq.h +497 -0
- data/src/core/lib/promise/detail/promise_factory.h +236 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +78 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +56 -0
- data/src/core/lib/promise/for_each.h +155 -0
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +97 -0
- data/src/core/lib/promise/loop.h +138 -0
- data/src/core/lib/promise/map.h +88 -0
- data/src/core/lib/promise/map_pipe.h +88 -0
- data/src/core/lib/promise/pipe.cc +19 -0
- data/src/core/lib/promise/pipe.h +505 -0
- data/src/core/lib/promise/poll.h +85 -0
- data/src/core/lib/promise/promise.h +96 -0
- data/src/core/lib/promise/race.h +83 -0
- data/src/core/lib/promise/seq.h +107 -0
- data/src/core/lib/promise/sleep.cc +90 -0
- data/src/core/lib/promise/sleep.h +84 -0
- data/src/core/lib/promise/try_concurrently.h +342 -0
- data/src/core/lib/promise/try_seq.h +175 -0
- data/src/core/lib/resolver/resolver.cc +37 -0
- data/src/core/lib/resolver/resolver.h +138 -0
- data/src/core/lib/resolver/resolver_factory.h +77 -0
- data/src/core/lib/resolver/resolver_registry.cc +149 -0
- data/src/core/lib/resolver/resolver_registry.h +123 -0
- data/src/core/lib/resolver/server_address.cc +181 -0
- data/src/core/lib/resolver/server_address.h +145 -0
- data/src/core/lib/resource_quota/api.cc +104 -0
- data/src/core/lib/resource_quota/api.h +49 -0
- data/src/core/lib/resource_quota/arena.cc +138 -0
- data/src/core/lib/resource_quota/arena.h +252 -0
- data/src/core/lib/resource_quota/memory_quota.cc +699 -0
- data/src/core/lib/resource_quota/memory_quota.h +592 -0
- data/src/core/lib/resource_quota/periodic_update.cc +78 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +74 -0
- data/src/core/lib/resource_quota/thread_quota.cc +45 -0
- data/src/core/lib/resource_quota/thread_quota.h +61 -0
- data/src/core/lib/resource_quota/trace.cc +19 -0
- data/src/core/lib/resource_quota/trace.h +24 -0
- data/src/core/lib/security/authorization/authorization_engine.h +13 -53
- data/src/core/lib/security/authorization/authorization_policy_provider.h +47 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +49 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +152 -84
- data/src/core/lib/security/authorization/evaluate_args.h +55 -19
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +64 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +69 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +122 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +61 -0
- data/src/core/lib/security/authorization/matchers.cc +241 -0
- data/src/core/lib/security/authorization/matchers.h +218 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +445 -0
- data/src/core/lib/security/authorization/rbac_policy.h +178 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +66 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
- data/src/core/lib/security/context/security_context.cc +45 -37
- data/src/core/lib/security/context/security_context.h +65 -34
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +36 -27
- data/src/core/lib/security/credentials/alts/alts_credentials.h +68 -54
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +20 -20
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +41 -41
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +19 -19
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +20 -19
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +20 -19
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +20 -22
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +36 -37
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +19 -22
- data/src/core/lib/security/credentials/call_creds_util.cc +97 -0
- data/src/core/lib/security/credentials/call_creds_util.h +43 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +103 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +80 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +56 -114
- data/src/core/lib/security/credentials/composite/composite_credentials.h +62 -37
- data/src/core/lib/security/credentials/credentials.cc +37 -39
- data/src/core/lib/security/credentials/credentials.h +148 -134
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +546 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +100 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +224 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +561 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +129 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +138 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +55 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +242 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +71 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +64 -63
- data/src/core/lib/security/credentials/fake/fake_credentials.h +68 -60
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +24 -27
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +240 -142
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +38 -26
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +51 -48
- data/src/core/lib/security/credentials/iam/iam_credentials.h +43 -27
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +73 -0
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +61 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +48 -39
- data/src/core/lib/security/credentials/jwt/json_token.h +34 -33
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +83 -75
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +62 -36
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +179 -147
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +49 -47
- data/src/core/lib/security/credentials/local/local_credentials.cc +37 -30
- data/src/core/lib/security/credentials/local/local_credentials.h +39 -23
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +269 -287
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +105 -56
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +123 -177
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +98 -45
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +55 -59
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +48 -26
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +340 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +216 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +471 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +206 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +241 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +168 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +83 -206
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +93 -299
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +79 -58
- data/src/core/lib/security/credentials/tls/tls_credentials.h +33 -24
- data/src/core/lib/security/credentials/tls/tls_utils.cc +127 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +235 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +114 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +77 -67
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +50 -48
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +94 -104
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +23 -26
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +120 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +103 -0
- data/src/core/lib/security/security_connector/load_system_roots.h +22 -18
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +23 -20
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +175 -0
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +45 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +90 -65
- data/src/core/lib/security/security_connector/local/local_security_connector.h +47 -44
- data/src/core/lib/security/security_connector/security_connector.cc +48 -52
- data/src/core/lib/security/security_connector/security_connector.h +90 -66
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +78 -66
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +43 -43
- data/src/core/lib/security/security_connector/ssl_utils.cc +124 -83
- data/src/core/lib/security/security_connector/ssl_utils.h +74 -75
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
- data/src/core/lib/security/security_connector/ssl_utils_config.h +19 -20
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +672 -450
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +231 -128
- data/src/core/lib/security/transport/auth_filters.h +64 -23
- data/src/core/lib/security/transport/client_auth_filter.cc +143 -383
- data/src/core/lib/security/transport/secure_endpoint.cc +314 -200
- data/src/core/lib/security/transport/secure_endpoint.h +27 -25
- data/src/core/lib/security/transport/security_handshaker.cc +267 -168
- data/src/core/lib/security/transport/security_handshaker.h +27 -21
- data/src/core/lib/security/transport/server_auth_filter.cc +122 -89
- data/src/core/lib/security/transport/tsi_error.cc +24 -22
- data/src/core/lib/security/transport/tsi_error.h +20 -19
- data/src/core/lib/security/util/json_util.cc +29 -31
- data/src/core/lib/security/util/json_util.h +20 -21
- data/src/core/lib/service_config/service_config.h +89 -0
- data/src/core/lib/service_config/service_config_call_data.h +82 -0
- data/src/core/lib/service_config/service_config_impl.cc +191 -0
- data/src/core/lib/service_config/service_config_impl.h +125 -0
- data/src/core/lib/service_config/service_config_parser.cc +81 -0
- data/src/core/lib/service_config/service_config_parser.h +105 -0
- data/src/core/lib/slice/b64.cc +26 -26
- data/src/core/lib/slice/b64.h +31 -29
- data/src/core/lib/slice/percent_encoding.cc +95 -114
- data/src/core/lib/slice/percent_encoding.h +43 -54
- data/src/core/lib/slice/slice.cc +140 -234
- data/src/core/lib/slice/slice.h +435 -0
- data/src/core/lib/slice/slice_buffer.cc +145 -81
- data/src/core/lib/slice/slice_buffer.h +162 -0
- data/src/core/lib/slice/slice_internal.h +37 -305
- data/src/core/lib/slice/slice_refcount.h +60 -0
- data/src/core/lib/slice/slice_string_helpers.cc +17 -116
- data/src/core/lib/slice/slice_string_helpers.h +20 -38
- data/src/core/lib/surface/api_trace.cc +19 -18
- data/src/core/lib/surface/api_trace.h +23 -22
- data/src/core/lib/surface/builtins.cc +54 -0
- data/src/core/lib/surface/builtins.h +26 -0
- data/src/core/lib/surface/byte_buffer.cc +26 -21
- data/src/core/lib/surface/byte_buffer_reader.cc +25 -25
- data/src/core/lib/surface/call.cc +2509 -1450
- data/src/core/lib/surface/call.h +114 -58
- data/src/core/lib/surface/call_details.cc +28 -29
- data/src/core/lib/surface/call_log_batch.cc +26 -20
- data/src/core/lib/surface/call_test_only.h +31 -28
- data/src/core/lib/surface/call_trace.cc +113 -0
- data/src/core/lib/surface/call_trace.h +30 -0
- data/src/core/lib/surface/channel.cc +251 -365
- data/src/core/lib/surface/channel.h +148 -102
- data/src/core/lib/surface/channel_init.cc +39 -93
- data/src/core/lib/surface/channel_init.h +63 -57
- data/src/core/lib/surface/channel_ping.cc +28 -23
- data/src/core/lib/surface/channel_stack_type.cc +21 -18
- data/src/core/lib/surface/channel_stack_type.h +20 -20
- data/src/core/lib/surface/completion_queue.cc +337 -363
- data/src/core/lib/surface/completion_queue.h +56 -53
- data/src/core/lib/surface/completion_queue_factory.cc +37 -31
- data/src/core/lib/surface/completion_queue_factory.h +19 -20
- data/src/core/lib/surface/event_string.cc +18 -23
- data/src/core/lib/surface/event_string.h +19 -19
- data/src/core/lib/surface/init.cc +143 -162
- data/src/core/lib/surface/init.h +20 -22
- data/src/core/lib/surface/init_internally.cc +25 -0
- data/src/core/lib/surface/init_internally.h +37 -0
- data/src/core/lib/surface/lame_client.cc +101 -138
- data/src/core/lib/surface/lame_client.h +63 -20
- data/src/core/lib/surface/metadata_array.cc +20 -19
- data/src/core/lib/surface/server.cc +304 -304
- data/src/core/lib/surface/server.h +189 -62
- data/src/core/lib/surface/validate_metadata.cc +74 -57
- data/src/core/lib/surface/validate_metadata.h +27 -20
- data/src/core/lib/surface/version.cc +21 -21
- data/src/core/lib/transport/bdp_estimator.cc +29 -30
- data/src/core/lib/transport/bdp_estimator.h +23 -24
- data/src/core/lib/transport/connectivity_state.cc +33 -29
- data/src/core/lib/transport/connectivity_state.h +34 -33
- data/src/core/lib/transport/error_utils.cc +90 -73
- data/src/core/lib/transport/error_utils.h +39 -28
- data/src/core/lib/transport/handshaker.cc +228 -0
- data/src/core/lib/transport/handshaker.h +172 -0
- data/src/core/lib/transport/handshaker_factory.h +74 -0
- data/src/core/lib/transport/handshaker_registry.cc +61 -0
- data/src/core/lib/transport/handshaker_registry.h +69 -0
- data/src/core/lib/transport/http2_errors.h +20 -20
- data/src/core/lib/transport/http_connect_handshaker.cc +400 -0
- data/src/core/lib/transport/http_connect_handshaker.h +42 -0
- data/src/core/lib/transport/metadata_batch.cc +218 -316
- data/src/core/lib/transport/metadata_batch.h +1322 -177
- data/src/core/lib/transport/parsed_metadata.cc +35 -0
- data/src/core/lib/transport/parsed_metadata.h +410 -0
- data/src/core/lib/transport/pid_controller.cc +24 -24
- data/src/core/lib/transport/pid_controller.h +24 -24
- data/src/core/lib/transport/status_conversion.cc +25 -25
- data/src/core/lib/transport/status_conversion.h +23 -23
- data/src/core/lib/transport/tcp_connect_handshaker.cc +246 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +229 -96
- data/src/core/lib/transport/timeout_encoding.h +62 -28
- data/src/core/lib/transport/transport.cc +118 -91
- data/src/core/lib/transport/transport.h +276 -153
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +56 -32
- data/src/core/lib/transport/transport_op_string.cc +46 -68
- data/src/core/lib/uri/uri_parser.cc +312 -248
- data/src/core/lib/uri/uri_parser.h +90 -40
- data/src/core/plugin_registry/grpc_plugin_registry.cc +108 -118
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +66 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +26 -23
- data/src/core/tsi/alts/crypt/gsec.cc +31 -30
- data/src/core/tsi/alts/crypt/gsec.h +339 -334
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
- data/src/core/tsi/alts/frame_protector/alts_counter.h +66 -66
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +206 -206
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +85 -83
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +38 -38
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +80 -81
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +44 -42
- data/src/core/tsi/alts/frame_protector/frame_handler.h +166 -166
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +167 -148
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +103 -104
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +27 -18
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +41 -42
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +131 -108
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +59 -59
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +23 -22
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +23 -22
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +37 -37
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +22 -24
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +104 -103
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +47 -46
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +38 -39
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +33 -34
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +65 -66
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +33 -32
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +53 -54
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +62 -59
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +138 -139
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +73 -64
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +41 -42
- data/src/core/tsi/fake_transport_security.cc +177 -121
- data/src/core/tsi/fake_transport_security.h +33 -27
- data/src/core/tsi/local_transport_security.cc +84 -120
- data/src/core/tsi/local_transport_security.h +33 -37
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +146 -0
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +21 -21
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +22 -20
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +38 -72
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +37 -28
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +29 -22
- data/src/core/tsi/ssl_transport_security.cc +495 -453
- data/src/core/tsi/ssl_transport_security.h +239 -198
- data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
- data/src/core/tsi/ssl_transport_security_utils.h +147 -0
- data/src/core/tsi/ssl_types.h +25 -25
- data/src/core/tsi/transport_security.cc +69 -43
- data/src/core/tsi/transport_security.h +50 -34
- data/src/core/tsi/transport_security_grpc.cc +23 -22
- data/src/core/tsi/transport_security_grpc.h +43 -39
- data/src/core/tsi/transport_security_interface.h +368 -328
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -1
- data/src/ruby/ext/grpc/extconf.rb +122 -24
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +6 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +25 -10
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +15 -5
- data/src/ruby/ext/grpc/rb_channel_credentials.h +5 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +7 -6
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -2
- data/src/ruby/ext/grpc/rb_grpc.c +10 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +108 -84
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +178 -142
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/ext/grpc/rb_server.c +26 -10
- data/src/ruby/ext/grpc/rb_server_credentials.c +22 -6
- data/src/ruby/ext/grpc/rb_server_credentials.h +5 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -0
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +39 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +23 -5
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- 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 +21 -48
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/client_server_spec.rb +21 -9
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +14 -5
- data/src/ruby/spec/generic/client_stub_spec.rb +27 -27
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/src/ruby/spec/user_agent_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +164 -117
- data/third_party/abseil-cpp/absl/base/attributes.h +211 -70
- data/third_party/abseil-cpp/absl/base/call_once.h +3 -10
- data/third_party/abseil-cpp/absl/base/casts.h +61 -65
- data/third_party/abseil-cpp/absl/base/config.h +320 -78
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +417 -335
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +12 -4
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/third_party/abseil-cpp/absl/base/internal/endian.h +78 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +50 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +58 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +31 -4
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +56 -47
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +29 -16
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +39 -40
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +44 -31
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +13 -8
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +13 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +96 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +11 -7
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +58 -52
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +23 -10
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +18 -9
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +55 -4
- data/third_party/abseil-cpp/absl/base/macros.h +47 -109
- data/third_party/abseil-cpp/absl/base/optimization.h +77 -6
- data/third_party/abseil-cpp/absl/base/options.h +31 -4
- data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +97 -42
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +46 -32
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +613 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +18 -11
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +155 -137
- data/third_party/abseil-cpp/absl/container/internal/common.h +12 -7
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +34 -9
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +59 -57
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +23 -6
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +83 -114
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +99 -97
- 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 +495 -434
- data/third_party/abseil-cpp/absl/container/internal/layout.h +11 -9
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +198 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +25 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +852 -369
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -87
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +93 -29
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +16 -11
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +7 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +17 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +21 -7
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +42 -24
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +14 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +236 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +33 -10
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +33 -8
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +35 -25
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +19 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +160 -27
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
- data/third_party/abseil-cpp/absl/functional/bind_front.h +193 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +7 -3
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- data/third_party/abseil-cpp/absl/hash/hash.h +110 -13
- 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 +27 -13
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +426 -123
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +123 -0
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +50 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +49 -11
- data/third_party/abseil-cpp/absl/numeric/bits.h +178 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +18 -37
- data/third_party/abseil-cpp/absl/numeric/int128.h +161 -87
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
- 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/profiling/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +245 -0
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +95 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +269 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +161 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +96 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +225 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +264 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +165 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +149 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +96 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +256 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +261 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +111 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +272 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +86 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
- data/third_party/abseil-cpp/absl/status/status.cc +205 -36
- data/third_party/abseil-cpp/absl/status/status.h +586 -122
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
- data/third_party/abseil-cpp/absl/status/statusor.cc +103 -0
- data/third_party/abseil-cpp/absl/status/statusor.h +776 -0
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/charconv.cc +10 -10
- data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +592 -1283
- data/third_party/abseil-cpp/absl/strings/cord.h +840 -319
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/escaping.cc +13 -13
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +77 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +561 -57
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1228 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +924 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +187 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +267 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +69 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +212 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +62 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +187 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +773 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +607 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +118 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +418 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +88 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +123 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +236 -136
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +159 -65
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +19 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +63 -24
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +28 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +36 -13
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +188 -155
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +1017 -87
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +17 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +6 -13
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +82 -77
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +55 -29
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +49 -74
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +72 -0
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- 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 +135 -7
- data/third_party/abseil-cpp/absl/strings/numbers.h +69 -32
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/str_cat.h +21 -14
- data/third_party/abseil-cpp/absl/strings/str_format.h +290 -15
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/str_split.h +40 -6
- data/third_party/abseil-cpp/absl/strings/string_view.cc +18 -34
- data/third_party/abseil-cpp/absl/strings/string_view.h +146 -57
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.cc +7 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +119 -83
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +12 -9
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +4 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +29 -28
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +6 -11
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +2 -83
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +14 -12
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +209 -151
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +106 -72
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -11
- 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 +98 -65
- data/third_party/abseil-cpp/absl/time/format.cc +43 -36
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +42 -32
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +97 -22
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +219 -150
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +15 -8
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +3 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +1 -1
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +122 -86
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +8 -8
- data/third_party/abseil-cpp/absl/types/optional.h +26 -23
- data/third_party/abseil-cpp/absl/types/span.h +52 -38
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
- data/third_party/address_sorting/address_sorting_posix.c +1 -0
- data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
- data/third_party/boringssl-with-bazel/err_data.c +763 -721
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +70 -57
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +67 -54
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +650 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +22 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +3 -42
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +74 -68
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +224 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +79 -354
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +327 -281
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +15 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +20 -75
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +24 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +156 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +68 -45
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
- 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 +101 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
- 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/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +272 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +31 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +30 -43
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +28 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +15 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +44 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +208 -37
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +456 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +11 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
- 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 +105 -95
- 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 +56 -72
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
- 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/gcm_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +30 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +123 -44
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +80 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +120 -62
- 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 +176 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +50 -86
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +401 -239
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +46 -9
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +38 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +96 -49
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +11 -8
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -22
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +351 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +13 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -180
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +11 -33
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +29 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +41 -27
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +54 -104
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +74 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +13 -26
- 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 +17 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +49 -59
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +49 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +239 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +7 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +27 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +43 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +6 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +7 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +42 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +48 -40
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +15 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +57 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +86 -44
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +25 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +76 -9
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1794 -666
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -179
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +67 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +32 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +42 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +25 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +66 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +41 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +70 -106
- data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +99 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +26 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +194 -146
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +42 -18
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +15 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +128 -91
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +39 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +499 -122
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +52 -36
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1554 -427
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -679
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +642 -452
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +16 -18
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +4325 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +333 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +99 -51
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +315 -219
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +178 -36
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +533 -159
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +49 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +10 -11
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +129 -110
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +147 -118
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +12 -17
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +11 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +80 -36
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +285 -190
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +160 -91
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +381 -136
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/cares/cares/include/ares.h +742 -0
- data/third_party/cares/cares/include/ares_dns.h +112 -0
- data/third_party/cares/cares/include/ares_version.h +24 -0
- data/third_party/cares/cares/src/lib/ares__close_sockets.c +61 -0
- data/third_party/cares/cares/src/lib/ares__get_hostent.c +260 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
- data/third_party/cares/cares/src/lib/ares_android.c +444 -0
- data/third_party/cares/cares/src/lib/ares_android.h +27 -0
- data/third_party/cares/cares/src/lib/ares_create_query.c +197 -0
- data/third_party/cares/cares/src/lib/ares_data.c +240 -0
- data/third_party/cares/cares/src/lib/ares_data.h +74 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +300 -0
- data/third_party/cares/cares/src/lib/ares_expand_string.c +67 -0
- data/third_party/cares/cares/src/lib/ares_free_hostent.c +43 -0
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
- data/third_party/cares/cares/src/lib/ares_getenv.c +28 -0
- data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +287 -0
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +534 -0
- data/third_party/cares/cares/src/lib/ares_getnameinfo.c +447 -0
- data/third_party/cares/cares/src/lib/ares_init.c +2654 -0
- data/third_party/cares/cares/src/lib/ares_ipv6.h +85 -0
- data/third_party/cares/cares/src/lib/ares_library_init.c +200 -0
- data/third_party/cares/cares/src/lib/ares_library_init.h +43 -0
- data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
- data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +164 -0
- data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +183 -0
- data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +177 -0
- data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +228 -0
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +168 -0
- data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +214 -0
- data/third_party/cares/cares/src/lib/ares_private.h +423 -0
- data/third_party/cares/cares/src/lib/ares_process.c +1548 -0
- data/third_party/cares/cares/src/lib/ares_query.c +180 -0
- data/third_party/cares/cares/src/lib/ares_search.c +321 -0
- data/third_party/cares/cares/src/lib/ares_send.c +131 -0
- data/third_party/cares/cares/src/lib/ares_setup.h +220 -0
- data/third_party/cares/cares/src/lib/ares_strsplit.c +178 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -0
- data/third_party/cares/cares/src/lib/inet_net_pton.c +444 -0
- data/third_party/cares/cares/src/lib/inet_ntop.c +201 -0
- data/third_party/re2/re2/bitstate.cc +3 -3
- data/third_party/re2/re2/compile.cc +91 -109
- data/third_party/re2/re2/dfa.cc +40 -52
- data/third_party/re2/re2/filtered_re2.cc +18 -2
- data/third_party/re2/re2/filtered_re2.h +10 -5
- data/third_party/re2/re2/nfa.cc +5 -5
- data/third_party/re2/re2/onepass.cc +2 -2
- data/third_party/re2/re2/parse.cc +42 -23
- data/third_party/re2/re2/perl_groups.cc +34 -34
- data/third_party/re2/re2/prefilter.cc +3 -2
- data/third_party/re2/re2/prefilter_tree.cc +27 -59
- data/third_party/re2/re2/prefilter_tree.h +3 -2
- data/third_party/re2/re2/prog.cc +193 -6
- data/third_party/re2/re2/prog.h +45 -14
- data/third_party/re2/re2/re2.cc +93 -129
- data/third_party/re2/re2/re2.h +156 -141
- data/third_party/re2/re2/regexp.cc +13 -7
- data/third_party/re2/re2/regexp.h +8 -2
- data/third_party/re2/re2/set.cc +31 -9
- data/third_party/re2/re2/set.h +9 -4
- data/third_party/re2/re2/simplify.cc +11 -3
- data/third_party/re2/re2/stringpiece.h +10 -7
- data/third_party/re2/re2/tostring.cc +1 -1
- data/third_party/re2/re2/unicode_casefold.cc +25 -11
- data/third_party/re2/re2/unicode_groups.cc +319 -151
- data/third_party/re2/re2/walker-inl.h +4 -3
- data/third_party/re2/util/mutex.h +6 -6
- data/third_party/re2/util/pcre.h +3 -3
- data/third_party/upb/third_party/utf8_range/naive.c +92 -0
- data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
- data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
- data/third_party/upb/upb/arena.c +277 -0
- data/third_party/upb/upb/arena.h +225 -0
- data/third_party/upb/upb/array.c +114 -0
- data/third_party/upb/upb/array.h +83 -0
- data/third_party/upb/upb/collections.h +36 -0
- data/third_party/upb/upb/decode.c +979 -379
- data/third_party/upb/upb/decode.h +80 -6
- data/third_party/upb/upb/decode_fast.c +1055 -0
- data/third_party/upb/upb/decode_fast.h +153 -0
- data/third_party/upb/upb/def.c +3269 -0
- data/third_party/upb/upb/def.h +416 -0
- data/third_party/upb/upb/def.hpp +441 -0
- data/third_party/upb/upb/encode.c +439 -246
- data/third_party/upb/upb/encode.h +66 -6
- data/third_party/upb/upb/extension_registry.c +93 -0
- data/third_party/upb/upb/extension_registry.h +84 -0
- data/third_party/upb/upb/internal/decode.h +211 -0
- data/third_party/upb/upb/internal/table.h +385 -0
- data/third_party/upb/upb/internal/upb.h +68 -0
- data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
- data/third_party/upb/upb/json_decode.c +1512 -0
- data/third_party/upb/upb/json_decode.h +47 -0
- data/third_party/upb/upb/json_encode.c +780 -0
- data/third_party/upb/upb/json_encode.h +65 -0
- data/third_party/upb/upb/map.c +108 -0
- data/third_party/upb/upb/map.h +117 -0
- data/third_party/upb/upb/message_value.h +66 -0
- data/third_party/upb/upb/mini_table.c +1147 -0
- data/third_party/upb/upb/mini_table.h +189 -0
- data/third_party/upb/upb/mini_table.hpp +112 -0
- data/third_party/upb/upb/msg.c +291 -100
- data/third_party/upb/upb/msg.h +48 -450
- data/third_party/upb/upb/msg_internal.h +837 -0
- data/third_party/upb/upb/port_def.inc +166 -83
- data/third_party/upb/upb/port_undef.inc +43 -8
- data/third_party/upb/upb/reflection.c +323 -0
- data/third_party/upb/upb/reflection.h +110 -0
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/status.c +86 -0
- data/third_party/upb/upb/status.h +66 -0
- data/third_party/upb/upb/table.c +422 -376
- data/third_party/upb/upb/table_internal.h +36 -0
- data/third_party/upb/upb/text_encode.c +473 -0
- data/third_party/upb/upb/text_encode.h +64 -0
- data/third_party/upb/upb/upb.c +56 -267
- data/third_party/upb/upb/upb.h +115 -239
- data/third_party/upb/upb/upb.hpp +51 -24
- data/third_party/xxhash/xxhash.h +5580 -0
- data/third_party/zlib/compress.c +3 -3
- data/third_party/zlib/crc32.c +975 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +183 -129
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +6 -4
- data/third_party/zlib/gzread.c +8 -12
- data/third_party/zlib/gzwrite.c +26 -14
- data/third_party/zlib/infback.c +12 -8
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +44 -10
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/inftrees.h +1 -1
- data/third_party/zlib/trees.c +85 -107
- data/third_party/zlib/uncompr.c +2 -2
- data/third_party/zlib/zconf.h +16 -3
- data/third_party/zlib/zlib.h +129 -106
- data/third_party/zlib/zutil.c +11 -9
- data/third_party/zlib/zutil.h +13 -9
- metadata +1180 -323
- data/include/grpc/impl/codegen/gpr_slice.h +0 -69
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +0 -389
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -34
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -45
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -85
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -946
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -537
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -32
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1141
- data/src/core/ext/filters/client_channel/lb_policy.cc +0 -138
- data/src/core/ext/filters/client_channel/lb_policy.h +0 -425
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -47
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -181
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -65
- data/src/core/ext/filters/client_channel/proxy_mapper.h +0 -54
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -89
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -50
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/filters/client_channel/resolver.cc +0 -85
- data/src/core/ext/filters/client_channel/resolver.h +0 -144
- data/src/core/ext/filters/client_channel/resolver_factory.h +0 -73
- data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -196
- data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -442
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -126
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -354
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -142
- data/src/core/ext/filters/client_channel/server_address.cc +0 -81
- data/src/core/ext/filters/client_channel/server_address.h +0 -128
- data/src/core/ext/filters/client_channel/service_config.cc +0 -221
- data/src/core/ext/filters/client_channel/service_config.h +0 -123
- data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -68
- data/src/core/ext/filters/client_channel/service_config_parser.cc +0 -87
- data/src/core/ext/filters/client_channel/service_config_parser.h +0 -89
- data/src/core/ext/filters/client_channel/subchannel_interface.h +0 -94
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -440
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -546
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -53
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -399
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +0 -31
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -557
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -26
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -27
- data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
- data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
- data/src/core/ext/transport/chttp2/client/authority.h +0 -36
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -112
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -79
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -200
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -45
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -69
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -86
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -242
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -49
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -30
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -49
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -30
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -49
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -29
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -49
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -49
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -29
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -117
- data/src/core/ext/xds/xds_channel.h +0 -46
- data/src/core/ext/xds/xds_channel_secure.cc +0 -103
- data/src/core/lib/avl/avl.cc +0 -306
- data/src/core/lib/channel/handshaker.cc +0 -262
- data/src/core/lib/channel/handshaker.h +0 -179
- data/src/core/lib/channel/handshaker_factory.h +0 -42
- data/src/core/lib/channel/handshaker_registry.cc +0 -105
- data/src/core/lib/channel/handshaker_registry.h +0 -54
- data/src/core/lib/compression/algorithm_metadata.h +0 -61
- data/src/core/lib/compression/compression_args.cc +0 -134
- data/src/core/lib/compression/compression_args.h +0 -56
- data/src/core/lib/compression/stream_compression.cc +0 -80
- data/src/core/lib/compression/stream_compression.h +0 -116
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -230
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -92
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/gpr/env.h +0 -40
- data/src/core/lib/gpr/env_linux.cc +0 -76
- data/src/core/lib/gpr/env_posix.cc +0 -47
- data/src/core/lib/gpr/env_windows.cc +0 -74
- data/src/core/lib/gpr/murmur_hash.cc +0 -80
- data/src/core/lib/gpr/murmur_hash.h +0 -29
- data/src/core/lib/gpr/string_windows.h +0 -32
- data/src/core/lib/gpr/tls.h +0 -68
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -52
- data/src/core/lib/gpr/tls_pthread.cc +0 -30
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gprpp/arena.cc +0 -103
- data/src/core/lib/gprpp/arena.h +0 -120
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/gprpp/map.h +0 -53
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/error_internal.h +0 -61
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1650
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -183
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -175
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -137
- data/src/core/lib/iomgr/executor/threadpool.h +0 -149
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/is_epollexclusive_available.h +0 -36
- data/src/core/lib/iomgr/parse_address.cc +0 -238
- data/src/core/lib/iomgr/parse_address.h +0 -53
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -87
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/iomgr/pollset_custom.cc +0 -106
- data/src/core/lib/iomgr/pollset_custom.h +0 -35
- data/src/core/lib/iomgr/pollset_set_custom.cc +0 -48
- data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
- data/src/core/lib/iomgr/pollset_uv.cc +0 -93
- data/src/core/lib/iomgr/pollset_uv.h +0 -32
- data/src/core/lib/iomgr/resolve_address_custom.cc +0 -168
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -45
- data/src/core/lib/iomgr/resource_quota.cc +0 -1016
- data/src/core/lib/iomgr/resource_quota.h +0 -177
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/sockaddr_utils.cc +0 -296
- data/src/core/lib/iomgr/sockaddr_utils.h +0 -80
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -160
- data/src/core/lib/iomgr/tcp_custom.cc +0 -386
- data/src/core/lib/iomgr/tcp_custom.h +0 -84
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -477
- data/src/core/lib/iomgr/tcp_uv.cc +0 -419
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/iomgr/timer_custom.cc +0 -95
- data/src/core/lib/iomgr/timer_custom.h +0 -43
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/src/core/lib/iomgr/udp_server.cc +0 -748
- data/src/core/lib/iomgr/udp_server.h +0 -104
- data/src/core/lib/iomgr/work_serializer.cc +0 -155
- data/src/core/lib/iomgr/work_serializer.h +0 -65
- data/src/core/lib/profiling/basic_timers.cc +0 -293
- data/src/core/lib/profiling/stap_timers.cc +0 -50
- data/src/core/lib/profiling/timers.h +0 -94
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- 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 -42
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -68
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -93
- 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 -56
- data/src/core/lib/security/authorization/mock_cel/statusor.h +0 -50
- data/src/core/lib/security/credentials/credentials_metadata.cc +0 -62
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +0 -171
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +0 -44
- data/src/core/lib/slice/slice_intern.cc +0 -375
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/surface/init_secure.cc +0 -81
- data/src/core/lib/transport/authority_override.cc +0 -38
- data/src/core/lib/transport/authority_override.h +0 -32
- data/src/core/lib/transport/byte_stream.cc +0 -158
- data/src/core/lib/transport/byte_stream.h +0 -165
- data/src/core/lib/transport/metadata.cc +0 -679
- data/src/core/lib/transport/metadata.h +0 -446
- data/src/core/lib/transport/static_metadata.cc +0 -1249
- data/src/core/lib/transport/static_metadata.h +0 -604
- data/src/core/lib/transport/status_metadata.cc +0 -61
- data/src/core/lib/transport/status_metadata.h +0 -48
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -218
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +0 -93
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +0 -130
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -49
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -261
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +0 -104
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +0 -533
- data/third_party/boringssl-with-bazel/src/crypto/dh/params.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -192
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +0 -653
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +0 -116
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +0 -3895
- data/third_party/cares/cares/ares.h +0 -670
- data/third_party/cares/cares/ares__close_sockets.c +0 -61
- data/third_party/cares/cares/ares__get_hostent.c +0 -261
- data/third_party/cares/cares/ares_create_query.c +0 -206
- data/third_party/cares/cares/ares_data.c +0 -222
- data/third_party/cares/cares/ares_data.h +0 -72
- data/third_party/cares/cares/ares_dns.h +0 -103
- data/third_party/cares/cares/ares_expand_name.c +0 -209
- data/third_party/cares/cares/ares_expand_string.c +0 -70
- data/third_party/cares/cares/ares_free_hostent.c +0 -41
- data/third_party/cares/cares/ares_getenv.c +0 -30
- data/third_party/cares/cares/ares_gethostbyaddr.c +0 -294
- data/third_party/cares/cares/ares_gethostbyname.c +0 -529
- data/third_party/cares/cares/ares_getnameinfo.c +0 -453
- data/third_party/cares/cares/ares_getopt.c +0 -122
- data/third_party/cares/cares/ares_getopt.h +0 -53
- data/third_party/cares/cares/ares_init.c +0 -2615
- data/third_party/cares/cares/ares_ipv6.h +0 -78
- data/third_party/cares/cares/ares_library_init.c +0 -195
- data/third_party/cares/cares/ares_library_init.h +0 -43
- data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_mx_reply.c +0 -170
- data/third_party/cares/cares/ares_parse_naptr_reply.c +0 -194
- data/third_party/cares/cares/ares_parse_ns_reply.c +0 -183
- data/third_party/cares/cares/ares_parse_ptr_reply.c +0 -221
- data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
- data/third_party/cares/cares/ares_parse_srv_reply.c +0 -179
- data/third_party/cares/cares/ares_parse_txt_reply.c +0 -220
- data/third_party/cares/cares/ares_private.h +0 -382
- data/third_party/cares/cares/ares_process.c +0 -1473
- data/third_party/cares/cares/ares_query.c +0 -186
- data/third_party/cares/cares/ares_search.c +0 -323
- data/third_party/cares/cares/ares_send.c +0 -137
- data/third_party/cares/cares/ares_setup.h +0 -217
- data/third_party/cares/cares/ares_strsplit.c +0 -174
- data/third_party/cares/cares/ares_version.h +0 -24
- data/third_party/cares/cares/inet_net_pton.c +0 -450
- data/third_party/cares/cares/inet_ntop.c +0 -207
- data/third_party/upb/upb/port.c +0 -26
- data/third_party/upb/upb/table.int.h +0 -466
- /data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
- /data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- /data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- /data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- /data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- /data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- /data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- /data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- /data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- /data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- /data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- /data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- /data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- /data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
- /data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
- /data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
- /data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
- /data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
- /data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
- /data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- /data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- /data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- /data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- /data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- /data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- /data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- /data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
- /data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
- /data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
- /data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
- /data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
- /data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
- /data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
- /data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
- /data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
@@ -1,20 +1,20 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
1
|
+
//
|
2
|
+
//
|
3
|
+
// Copyright 2015 gRPC authors.
|
4
|
+
//
|
5
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
// you may not use this file except in compliance with the License.
|
7
|
+
// You may obtain a copy of the License at
|
8
|
+
//
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
//
|
11
|
+
// Unless required by applicable law or agreed to in writing, software
|
12
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
// See the License for the specific language governing permissions and
|
15
|
+
// limitations under the License.
|
16
|
+
//
|
17
|
+
//
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
@@ -23,9 +23,9 @@
|
|
23
23
|
#include <limits.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
// TODO(jboeuf): refactor inet_ntop into a portability header.
|
27
|
+
// Note: for whomever reads this and tries to refactor this, this
|
28
|
+
// can't be in grpc, it has to be in gpr.
|
29
29
|
#ifdef GPR_WINDOWS
|
30
30
|
#include <ws2tcpip.h>
|
31
31
|
#else
|
@@ -35,50 +35,54 @@
|
|
35
35
|
|
36
36
|
#include <string>
|
37
37
|
|
38
|
-
#include <grpc/grpc_security.h>
|
39
|
-
#include <grpc/support/alloc.h>
|
40
|
-
#include <grpc/support/log.h>
|
41
|
-
#include <grpc/support/string_util.h>
|
42
|
-
#include <grpc/support/sync.h>
|
43
|
-
#include <grpc/support/thd_id.h>
|
44
|
-
|
45
|
-
#include "absl/strings/match.h"
|
46
|
-
#include "absl/strings/string_view.h"
|
47
|
-
|
48
|
-
extern "C" {
|
49
38
|
#include <openssl/bio.h>
|
50
|
-
#include <openssl/crypto.h>
|
39
|
+
#include <openssl/crypto.h> // For OPENSSL_free
|
51
40
|
#include <openssl/engine.h>
|
52
41
|
#include <openssl/err.h>
|
53
42
|
#include <openssl/ssl.h>
|
54
43
|
#include <openssl/tls1.h>
|
55
44
|
#include <openssl/x509.h>
|
56
45
|
#include <openssl/x509v3.h>
|
57
|
-
|
46
|
+
|
47
|
+
#include "absl/strings/match.h"
|
48
|
+
#include "absl/strings/str_cat.h"
|
49
|
+
#include "absl/strings/string_view.h"
|
50
|
+
|
51
|
+
#include <grpc/grpc_security.h>
|
52
|
+
#include <grpc/support/alloc.h>
|
53
|
+
#include <grpc/support/log.h>
|
54
|
+
#include <grpc/support/string_util.h>
|
55
|
+
#include <grpc/support/sync.h>
|
56
|
+
#include <grpc/support/thd_id.h>
|
58
57
|
|
59
58
|
#include "src/core/lib/gpr/useful.h"
|
59
|
+
#include "src/core/lib/gprpp/crash.h"
|
60
|
+
#include "src/core/tsi/ssl/key_logging/ssl_key_logging.h"
|
60
61
|
#include "src/core/tsi/ssl/session_cache/ssl_session_cache.h"
|
62
|
+
#include "src/core/tsi/ssl_transport_security_utils.h"
|
61
63
|
#include "src/core/tsi/ssl_types.h"
|
62
64
|
#include "src/core/tsi/transport_security.h"
|
63
65
|
|
64
|
-
|
66
|
+
// --- Constants. ---
|
65
67
|
|
66
68
|
#define TSI_SSL_MAX_PROTECTED_FRAME_SIZE_UPPER_BOUND 16384
|
67
69
|
#define TSI_SSL_MAX_PROTECTED_FRAME_SIZE_LOWER_BOUND 1024
|
68
70
|
#define TSI_SSL_HANDSHAKER_OUTGOING_BUFFER_INITIAL_SIZE 1024
|
69
71
|
|
70
|
-
|
71
|
-
|
72
|
-
|
72
|
+
// Putting a macro like this and littering the source file with #if is really
|
73
|
+
// bad practice.
|
74
|
+
// TODO(jboeuf): refactor all the #if / #endif in a separate module.
|
73
75
|
#ifndef TSI_OPENSSL_ALPN_SUPPORT
|
74
76
|
#define TSI_OPENSSL_ALPN_SUPPORT 1
|
75
77
|
#endif
|
76
78
|
|
77
|
-
|
78
|
-
|
79
|
+
// TODO(jboeuf): I have not found a way to get this number dynamically from the
|
80
|
+
// SSL structure. This is what we would ultimately want though...
|
79
81
|
#define TSI_SSL_MAX_PROTECTION_OVERHEAD 100
|
80
82
|
|
81
|
-
|
83
|
+
using TlsSessionKeyLogger = tsi::TlsSessionKeyLoggerCache::TlsSessionKeyLogger;
|
84
|
+
|
85
|
+
// --- Structure definitions. ---
|
82
86
|
|
83
87
|
struct tsi_ssl_root_certs_store {
|
84
88
|
X509_STORE* store;
|
@@ -95,18 +99,20 @@ struct tsi_ssl_client_handshaker_factory {
|
|
95
99
|
unsigned char* alpn_protocol_list;
|
96
100
|
size_t alpn_protocol_list_length;
|
97
101
|
grpc_core::RefCountedPtr<tsi::SslSessionLRUCache> session_cache;
|
102
|
+
grpc_core::RefCountedPtr<TlsSessionKeyLogger> key_logger;
|
98
103
|
};
|
99
104
|
|
100
105
|
struct tsi_ssl_server_handshaker_factory {
|
101
|
-
|
102
|
-
|
103
|
-
|
106
|
+
// Several contexts to support SNI.
|
107
|
+
// The tsi_peer array contains the subject names of the server certificates
|
108
|
+
// associated with the contexts at the same index.
|
104
109
|
tsi_ssl_handshaker_factory base;
|
105
110
|
SSL_CTX** ssl_contexts;
|
106
111
|
tsi_peer* ssl_context_x509_subject_names;
|
107
112
|
size_t ssl_context_count;
|
108
113
|
unsigned char* alpn_protocol_list;
|
109
114
|
size_t alpn_protocol_list_length;
|
115
|
+
grpc_core::RefCountedPtr<TlsSessionKeyLogger> key_logger;
|
110
116
|
};
|
111
117
|
|
112
118
|
struct tsi_ssl_handshaker {
|
@@ -133,12 +139,12 @@ struct tsi_ssl_frame_protector {
|
|
133
139
|
size_t buffer_size;
|
134
140
|
size_t buffer_offset;
|
135
141
|
};
|
136
|
-
|
142
|
+
// --- Library Initialization. ---
|
137
143
|
|
138
144
|
static gpr_once g_init_openssl_once = GPR_ONCE_INIT;
|
139
145
|
static int g_ssl_ctx_ex_factory_index = -1;
|
140
146
|
static const unsigned char kSslSessionIdContext[] = {'g', 'r', 'p', 'c'};
|
141
|
-
#
|
147
|
+
#if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
142
148
|
static const char kSslEnginePrefix[] = "engine:";
|
143
149
|
#endif
|
144
150
|
|
@@ -162,8 +168,8 @@ static unsigned long openssl_thread_id_cb(void) {
|
|
162
168
|
#endif
|
163
169
|
|
164
170
|
static void init_openssl(void) {
|
165
|
-
#if
|
166
|
-
OPENSSL_init_ssl(0,
|
171
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
172
|
+
OPENSSL_init_ssl(0, nullptr);
|
167
173
|
#else
|
168
174
|
SSL_library_init();
|
169
175
|
SSL_load_error_strings();
|
@@ -189,34 +195,9 @@ static void init_openssl(void) {
|
|
189
195
|
GPR_ASSERT(g_ssl_ctx_ex_factory_index != -1);
|
190
196
|
}
|
191
197
|
|
192
|
-
|
193
|
-
|
194
|
-
static const char* ssl_error_string(int error) {
|
195
|
-
switch (error) {
|
196
|
-
case SSL_ERROR_NONE:
|
197
|
-
return "SSL_ERROR_NONE";
|
198
|
-
case SSL_ERROR_ZERO_RETURN:
|
199
|
-
return "SSL_ERROR_ZERO_RETURN";
|
200
|
-
case SSL_ERROR_WANT_READ:
|
201
|
-
return "SSL_ERROR_WANT_READ";
|
202
|
-
case SSL_ERROR_WANT_WRITE:
|
203
|
-
return "SSL_ERROR_WANT_WRITE";
|
204
|
-
case SSL_ERROR_WANT_CONNECT:
|
205
|
-
return "SSL_ERROR_WANT_CONNECT";
|
206
|
-
case SSL_ERROR_WANT_ACCEPT:
|
207
|
-
return "SSL_ERROR_WANT_ACCEPT";
|
208
|
-
case SSL_ERROR_WANT_X509_LOOKUP:
|
209
|
-
return "SSL_ERROR_WANT_X509_LOOKUP";
|
210
|
-
case SSL_ERROR_SYSCALL:
|
211
|
-
return "SSL_ERROR_SYSCALL";
|
212
|
-
case SSL_ERROR_SSL:
|
213
|
-
return "SSL_ERROR_SSL";
|
214
|
-
default:
|
215
|
-
return "Unknown error";
|
216
|
-
}
|
217
|
-
}
|
198
|
+
// --- Ssl utils. ---
|
218
199
|
|
219
|
-
|
200
|
+
// TODO(jboeuf): Remove when we are past the debugging phase with this code.
|
220
201
|
static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
221
202
|
const char* msg) {
|
222
203
|
if ((where & flag) && GRPC_TRACE_FLAG_ENABLED(tsi_tracing_enabled)) {
|
@@ -225,7 +206,7 @@ static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
|
225
206
|
}
|
226
207
|
}
|
227
208
|
|
228
|
-
|
209
|
+
// Used for debugging. TODO(jboeuf): Remove when code is mature enough.
|
229
210
|
static void ssl_info_callback(const SSL* ssl, int where, int ret) {
|
230
211
|
if (ret == 0) {
|
231
212
|
gpr_log(GPR_ERROR, "ssl_info_callback: error occurred.\n");
|
@@ -237,14 +218,14 @@ static void ssl_info_callback(const SSL* ssl, int where, int ret) {
|
|
237
218
|
ssl_log_where_info(ssl, where, SSL_CB_HANDSHAKE_DONE, "HANDSHAKE DONE");
|
238
219
|
}
|
239
220
|
|
240
|
-
|
241
|
-
|
221
|
+
// Returns 1 if name looks like an IP address, 0 otherwise.
|
222
|
+
// This is a very rough heuristic, and only handles IPv6 in hexadecimal form.
|
242
223
|
static int looks_like_ip_address(absl::string_view name) {
|
243
224
|
size_t dot_count = 0;
|
244
225
|
size_t num_size = 0;
|
245
226
|
for (size_t i = 0; i < name.size(); ++i) {
|
246
227
|
if (name[i] == ':') {
|
247
|
-
|
228
|
+
// IPv6 Address in hexadecimal form, : is not allowed in DNS names.
|
248
229
|
return 1;
|
249
230
|
}
|
250
231
|
if (name[i] >= '0' && name[i] <= '9') {
|
@@ -262,7 +243,7 @@ static int looks_like_ip_address(absl::string_view name) {
|
|
262
243
|
return 1;
|
263
244
|
}
|
264
245
|
|
265
|
-
|
246
|
+
// Gets the subject CN from an X509 cert.
|
266
247
|
static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
|
267
248
|
size_t* utf8_size) {
|
268
249
|
int common_name_index = -1;
|
@@ -300,7 +281,7 @@ static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
|
|
300
281
|
return TSI_OK;
|
301
282
|
}
|
302
283
|
|
303
|
-
|
284
|
+
// Gets the subject CN of an X509 cert as a tsi_peer_property.
|
304
285
|
static tsi_result peer_property_from_x509_common_name(
|
305
286
|
X509* cert, tsi_peer_property* property) {
|
306
287
|
unsigned char* common_name;
|
@@ -323,7 +304,31 @@ static tsi_result peer_property_from_x509_common_name(
|
|
323
304
|
return result;
|
324
305
|
}
|
325
306
|
|
326
|
-
|
307
|
+
// Gets the subject of an X509 cert as a tsi_peer_property.
|
308
|
+
static tsi_result peer_property_from_x509_subject(X509* cert,
|
309
|
+
tsi_peer_property* property) {
|
310
|
+
X509_NAME* subject_name = X509_get_subject_name(cert);
|
311
|
+
if (subject_name == nullptr) {
|
312
|
+
gpr_log(GPR_INFO, "Could not get subject name from certificate.");
|
313
|
+
return TSI_NOT_FOUND;
|
314
|
+
}
|
315
|
+
BIO* bio = BIO_new(BIO_s_mem());
|
316
|
+
X509_NAME_print_ex(bio, subject_name, 0, XN_FLAG_RFC2253);
|
317
|
+
char* contents;
|
318
|
+
long len = BIO_get_mem_data(bio, &contents);
|
319
|
+
if (len < 0) {
|
320
|
+
gpr_log(GPR_ERROR, "Could not get subject entry from certificate.");
|
321
|
+
BIO_free(bio);
|
322
|
+
return TSI_INTERNAL_ERROR;
|
323
|
+
}
|
324
|
+
tsi_result result = tsi_construct_string_peer_property(
|
325
|
+
TSI_X509_SUBJECT_PEER_PROPERTY, contents, static_cast<size_t>(len),
|
326
|
+
property);
|
327
|
+
BIO_free(bio);
|
328
|
+
return result;
|
329
|
+
}
|
330
|
+
|
331
|
+
// Gets the X509 cert in PEM format as a tsi_peer_property.
|
327
332
|
static tsi_result add_pem_certificate(X509* cert, tsi_peer_property* property) {
|
328
333
|
BIO* bio = BIO_new(BIO_s_mem());
|
329
334
|
if (!PEM_write_bio_X509(bio, cert)) {
|
@@ -337,13 +342,12 @@ static tsi_result add_pem_certificate(X509* cert, tsi_peer_property* property) {
|
|
337
342
|
return TSI_INTERNAL_ERROR;
|
338
343
|
}
|
339
344
|
tsi_result result = tsi_construct_string_peer_property(
|
340
|
-
TSI_X509_PEM_CERT_PROPERTY, (
|
341
|
-
static_cast<size_t>(len), property);
|
345
|
+
TSI_X509_PEM_CERT_PROPERTY, contents, static_cast<size_t>(len), property);
|
342
346
|
BIO_free(bio);
|
343
347
|
return result;
|
344
348
|
}
|
345
349
|
|
346
|
-
|
350
|
+
// Gets the subject SANs from an X509 cert as a tsi_peer_property.
|
347
351
|
static tsi_result add_subject_alt_names_properties_to_peer(
|
348
352
|
tsi_peer* peer, GENERAL_NAMES* subject_alt_names,
|
349
353
|
size_t subject_alt_name_count, int* current_insert_index) {
|
@@ -358,13 +362,17 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
358
362
|
subject_alt_name->type == GEN_URI) {
|
359
363
|
unsigned char* name = nullptr;
|
360
364
|
int name_size;
|
365
|
+
std::string property_name;
|
361
366
|
if (subject_alt_name->type == GEN_DNS) {
|
362
367
|
name_size = ASN1_STRING_to_UTF8(&name, subject_alt_name->d.dNSName);
|
368
|
+
property_name = TSI_X509_DNS_PEER_PROPERTY;
|
363
369
|
} else if (subject_alt_name->type == GEN_EMAIL) {
|
364
370
|
name_size = ASN1_STRING_to_UTF8(&name, subject_alt_name->d.rfc822Name);
|
371
|
+
property_name = TSI_X509_EMAIL_PEER_PROPERTY;
|
365
372
|
} else {
|
366
373
|
name_size = ASN1_STRING_to_UTF8(
|
367
374
|
&name, subject_alt_name->d.uniformResourceIdentifier);
|
375
|
+
property_name = TSI_X509_URI_PEER_PROPERTY;
|
368
376
|
}
|
369
377
|
if (name_size < 0) {
|
370
378
|
gpr_log(GPR_ERROR, "Could not get utf8 from asn1 string.");
|
@@ -379,12 +387,10 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
379
387
|
OPENSSL_free(name);
|
380
388
|
break;
|
381
389
|
}
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
&peer->properties[(*current_insert_index)++]);
|
387
|
-
}
|
390
|
+
result = tsi_construct_string_peer_property(
|
391
|
+
property_name.c_str(), reinterpret_cast<const char*>(name),
|
392
|
+
static_cast<size_t>(name_size),
|
393
|
+
&peer->properties[(*current_insert_index)++]);
|
388
394
|
OPENSSL_free(name);
|
389
395
|
} else if (subject_alt_name->type == GEN_IPADD) {
|
390
396
|
char ntop_buf[INET6_ADDRSTRLEN];
|
@@ -410,16 +416,24 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
410
416
|
result = tsi_construct_string_peer_property_from_cstring(
|
411
417
|
TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY, name,
|
412
418
|
&peer->properties[(*current_insert_index)++]);
|
419
|
+
if (result != TSI_OK) break;
|
420
|
+
result = tsi_construct_string_peer_property_from_cstring(
|
421
|
+
TSI_X509_IP_PEER_PROPERTY, name,
|
422
|
+
&peer->properties[(*current_insert_index)++]);
|
423
|
+
} else {
|
424
|
+
result = tsi_construct_string_peer_property_from_cstring(
|
425
|
+
TSI_X509_SUBJECT_ALTERNATIVE_NAME_PEER_PROPERTY, "other types of SAN",
|
426
|
+
&peer->properties[(*current_insert_index)++]);
|
413
427
|
}
|
414
428
|
if (result != TSI_OK) break;
|
415
429
|
}
|
416
430
|
return result;
|
417
431
|
}
|
418
432
|
|
419
|
-
|
433
|
+
// Gets information about the peer's X509 cert as a tsi_peer object.
|
420
434
|
static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
421
435
|
tsi_peer* peer) {
|
422
|
-
|
436
|
+
// TODO(jboeuf): Maybe add more properties.
|
423
437
|
GENERAL_NAMES* subject_alt_names = static_cast<GENERAL_NAMES*>(
|
424
438
|
X509_get_ext_d2i(cert, NID_subject_alt_name, nullptr, nullptr));
|
425
439
|
int subject_alt_name_count =
|
@@ -429,13 +443,20 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
429
443
|
size_t property_count;
|
430
444
|
tsi_result result;
|
431
445
|
GPR_ASSERT(subject_alt_name_count >= 0);
|
432
|
-
property_count = (include_certificate_type ?
|
433
|
-
|
446
|
+
property_count = (include_certificate_type ? size_t{1} : 0) +
|
447
|
+
3 /* subject, common name, certificate */ +
|
434
448
|
static_cast<size_t>(subject_alt_name_count);
|
435
449
|
for (int i = 0; i < subject_alt_name_count; i++) {
|
436
450
|
GENERAL_NAME* subject_alt_name =
|
437
451
|
sk_GENERAL_NAME_value(subject_alt_names, TSI_SIZE_AS_SIZE(i));
|
438
|
-
|
452
|
+
// TODO(zhenlian): Clean up tsi_peer to avoid duplicate entries.
|
453
|
+
// URI, DNS, email and ip address SAN fields are plumbed to tsi_peer, in
|
454
|
+
// addition to all SAN fields (results in duplicate values). This code
|
455
|
+
// snippet updates property_count accordingly.
|
456
|
+
if (subject_alt_name->type == GEN_URI ||
|
457
|
+
subject_alt_name->type == GEN_DNS ||
|
458
|
+
subject_alt_name->type == GEN_EMAIL ||
|
459
|
+
subject_alt_name->type == GEN_IPADD) {
|
439
460
|
property_count += 1;
|
440
461
|
}
|
441
462
|
}
|
@@ -449,6 +470,11 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
449
470
|
&peer->properties[current_insert_index++]);
|
450
471
|
if (result != TSI_OK) break;
|
451
472
|
}
|
473
|
+
|
474
|
+
result = peer_property_from_x509_subject(
|
475
|
+
cert, &peer->properties[current_insert_index++]);
|
476
|
+
if (result != TSI_OK) break;
|
477
|
+
|
452
478
|
result = peer_property_from_x509_common_name(
|
453
479
|
cert, &peer->properties[current_insert_index++]);
|
454
480
|
if (result != TSI_OK) break;
|
@@ -463,7 +489,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
463
489
|
¤t_insert_index);
|
464
490
|
if (result != TSI_OK) break;
|
465
491
|
}
|
466
|
-
} while (
|
492
|
+
} while (false);
|
467
493
|
|
468
494
|
if (subject_alt_names != nullptr) {
|
469
495
|
sk_GENERAL_NAME_pop_free(subject_alt_names, GENERAL_NAME_free);
|
@@ -474,72 +500,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
474
500
|
return result;
|
475
501
|
}
|
476
502
|
|
477
|
-
|
478
|
-
static void log_ssl_error_stack(void) {
|
479
|
-
unsigned long err;
|
480
|
-
while ((err = ERR_get_error()) != 0) {
|
481
|
-
char details[256];
|
482
|
-
ERR_error_string_n(static_cast<uint32_t>(err), details, sizeof(details));
|
483
|
-
gpr_log(GPR_ERROR, "%s", details);
|
484
|
-
}
|
485
|
-
}
|
486
|
-
|
487
|
-
/* Performs an SSL_read and handle errors. */
|
488
|
-
static tsi_result do_ssl_read(SSL* ssl, unsigned char* unprotected_bytes,
|
489
|
-
size_t* unprotected_bytes_size) {
|
490
|
-
int read_from_ssl;
|
491
|
-
GPR_ASSERT(*unprotected_bytes_size <= INT_MAX);
|
492
|
-
read_from_ssl = SSL_read(ssl, unprotected_bytes,
|
493
|
-
static_cast<int>(*unprotected_bytes_size));
|
494
|
-
if (read_from_ssl <= 0) {
|
495
|
-
read_from_ssl = SSL_get_error(ssl, read_from_ssl);
|
496
|
-
switch (read_from_ssl) {
|
497
|
-
case SSL_ERROR_ZERO_RETURN: /* Received a close_notify alert. */
|
498
|
-
case SSL_ERROR_WANT_READ: /* We need more data to finish the frame. */
|
499
|
-
*unprotected_bytes_size = 0;
|
500
|
-
return TSI_OK;
|
501
|
-
case SSL_ERROR_WANT_WRITE:
|
502
|
-
gpr_log(
|
503
|
-
GPR_ERROR,
|
504
|
-
"Peer tried to renegotiate SSL connection. This is unsupported.");
|
505
|
-
return TSI_UNIMPLEMENTED;
|
506
|
-
case SSL_ERROR_SSL:
|
507
|
-
gpr_log(GPR_ERROR, "Corruption detected.");
|
508
|
-
log_ssl_error_stack();
|
509
|
-
return TSI_DATA_CORRUPTED;
|
510
|
-
default:
|
511
|
-
gpr_log(GPR_ERROR, "SSL_read failed with error %s.",
|
512
|
-
ssl_error_string(read_from_ssl));
|
513
|
-
return TSI_PROTOCOL_FAILURE;
|
514
|
-
}
|
515
|
-
}
|
516
|
-
*unprotected_bytes_size = static_cast<size_t>(read_from_ssl);
|
517
|
-
return TSI_OK;
|
518
|
-
}
|
519
|
-
|
520
|
-
/* Performs an SSL_write and handle errors. */
|
521
|
-
static tsi_result do_ssl_write(SSL* ssl, unsigned char* unprotected_bytes,
|
522
|
-
size_t unprotected_bytes_size) {
|
523
|
-
int ssl_write_result;
|
524
|
-
GPR_ASSERT(unprotected_bytes_size <= INT_MAX);
|
525
|
-
ssl_write_result = SSL_write(ssl, unprotected_bytes,
|
526
|
-
static_cast<int>(unprotected_bytes_size));
|
527
|
-
if (ssl_write_result < 0) {
|
528
|
-
ssl_write_result = SSL_get_error(ssl, ssl_write_result);
|
529
|
-
if (ssl_write_result == SSL_ERROR_WANT_READ) {
|
530
|
-
gpr_log(GPR_ERROR,
|
531
|
-
"Peer tried to renegotiate SSL connection. This is unsupported.");
|
532
|
-
return TSI_UNIMPLEMENTED;
|
533
|
-
} else {
|
534
|
-
gpr_log(GPR_ERROR, "SSL_write failed with error %s.",
|
535
|
-
ssl_error_string(ssl_write_result));
|
536
|
-
return TSI_INTERNAL_ERROR;
|
537
|
-
}
|
538
|
-
}
|
539
|
-
return TSI_OK;
|
540
|
-
}
|
541
|
-
|
542
|
-
/* Loads an in-memory PEM certificate chain into the SSL context. */
|
503
|
+
// Loads an in-memory PEM certificate chain into the SSL context.
|
543
504
|
static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
|
544
505
|
const char* pem_cert_chain,
|
545
506
|
size_t pem_cert_chain_size) {
|
@@ -547,12 +508,12 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
|
|
547
508
|
X509* certificate = nullptr;
|
548
509
|
BIO* pem;
|
549
510
|
GPR_ASSERT(pem_cert_chain_size <= INT_MAX);
|
550
|
-
pem = BIO_new_mem_buf((
|
551
|
-
static_cast<int>(pem_cert_chain_size));
|
511
|
+
pem = BIO_new_mem_buf(pem_cert_chain, static_cast<int>(pem_cert_chain_size));
|
552
512
|
if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
|
553
513
|
|
554
514
|
do {
|
555
|
-
certificate =
|
515
|
+
certificate =
|
516
|
+
PEM_read_bio_X509_AUX(pem, nullptr, nullptr, const_cast<char*>(""));
|
556
517
|
if (certificate == nullptr) {
|
557
518
|
result = TSI_INVALID_ARGUMENT;
|
558
519
|
break;
|
@@ -561,31 +522,31 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
|
|
561
522
|
result = TSI_INVALID_ARGUMENT;
|
562
523
|
break;
|
563
524
|
}
|
564
|
-
while (
|
525
|
+
while (true) {
|
565
526
|
X509* certificate_authority =
|
566
|
-
PEM_read_bio_X509(pem, nullptr, nullptr, (
|
527
|
+
PEM_read_bio_X509(pem, nullptr, nullptr, const_cast<char*>(""));
|
567
528
|
if (certificate_authority == nullptr) {
|
568
529
|
ERR_clear_error();
|
569
|
-
break;
|
530
|
+
break; // Done reading.
|
570
531
|
}
|
571
532
|
if (!SSL_CTX_add_extra_chain_cert(context, certificate_authority)) {
|
572
533
|
X509_free(certificate_authority);
|
573
534
|
result = TSI_INVALID_ARGUMENT;
|
574
535
|
break;
|
575
536
|
}
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
537
|
+
// We don't need to free certificate_authority as its ownership has been
|
538
|
+
// transferred to the context. That is not the case for certificate
|
539
|
+
// though.
|
540
|
+
//
|
580
541
|
}
|
581
|
-
} while (
|
542
|
+
} while (false);
|
582
543
|
|
583
544
|
if (certificate != nullptr) X509_free(certificate);
|
584
545
|
BIO_free(pem);
|
585
546
|
return result;
|
586
547
|
}
|
587
548
|
|
588
|
-
#
|
549
|
+
#if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
589
550
|
static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
590
551
|
const char* pem_key,
|
591
552
|
size_t pem_key_size) {
|
@@ -658,7 +619,7 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
658
619
|
if (engine_name != nullptr) gpr_free(engine_name);
|
659
620
|
return result;
|
660
621
|
}
|
661
|
-
#endif
|
622
|
+
#endif // !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
662
623
|
|
663
624
|
static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
|
664
625
|
const char* pem_key,
|
@@ -667,10 +628,11 @@ static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
|
|
667
628
|
EVP_PKEY* private_key = nullptr;
|
668
629
|
BIO* pem;
|
669
630
|
GPR_ASSERT(pem_key_size <= INT_MAX);
|
670
|
-
pem = BIO_new_mem_buf(
|
631
|
+
pem = BIO_new_mem_buf(pem_key, static_cast<int>(pem_key_size));
|
671
632
|
if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
|
672
633
|
do {
|
673
|
-
private_key =
|
634
|
+
private_key =
|
635
|
+
PEM_read_bio_PrivateKey(pem, nullptr, nullptr, const_cast<char*>(""));
|
674
636
|
if (private_key == nullptr) {
|
675
637
|
result = TSI_INVALID_ARGUMENT;
|
676
638
|
break;
|
@@ -679,28 +641,28 @@ static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
|
|
679
641
|
result = TSI_INVALID_ARGUMENT;
|
680
642
|
break;
|
681
643
|
}
|
682
|
-
} while (
|
644
|
+
} while (false);
|
683
645
|
if (private_key != nullptr) EVP_PKEY_free(private_key);
|
684
646
|
BIO_free(pem);
|
685
647
|
return result;
|
686
648
|
}
|
687
649
|
|
688
|
-
|
650
|
+
// Loads an in-memory PEM private key into the SSL context.
|
689
651
|
static tsi_result ssl_ctx_use_private_key(SSL_CTX* context, const char* pem_key,
|
690
652
|
size_t pem_key_size) {
|
691
653
|
// BoringSSL does not have ENGINE support
|
692
|
-
#
|
654
|
+
#if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
693
655
|
if (strncmp(pem_key, kSslEnginePrefix, strlen(kSslEnginePrefix)) == 0) {
|
694
656
|
return ssl_ctx_use_engine_private_key(context, pem_key, pem_key_size);
|
695
657
|
} else
|
696
|
-
#endif
|
658
|
+
#endif // !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
697
659
|
{
|
698
660
|
return ssl_ctx_use_pem_private_key(context, pem_key, pem_key_size);
|
699
661
|
}
|
700
662
|
}
|
701
663
|
|
702
|
-
|
703
|
-
|
664
|
+
// Loads in-memory PEM verification certs into the SSL context and optionally
|
665
|
+
// returns the verification cert names (root_names can be NULL).
|
704
666
|
static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
705
667
|
const char* pem_roots,
|
706
668
|
size_t pem_roots_size,
|
@@ -711,7 +673,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
711
673
|
X509_NAME* root_name = nullptr;
|
712
674
|
BIO* pem;
|
713
675
|
GPR_ASSERT(pem_roots_size <= INT_MAX);
|
714
|
-
pem = BIO_new_mem_buf(
|
676
|
+
pem = BIO_new_mem_buf(pem_roots, static_cast<int>(pem_roots_size));
|
715
677
|
if (cert_store == nullptr) return TSI_INVALID_ARGUMENT;
|
716
678
|
if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
|
717
679
|
if (root_names != nullptr) {
|
@@ -719,11 +681,11 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
719
681
|
if (*root_names == nullptr) return TSI_OUT_OF_RESOURCES;
|
720
682
|
}
|
721
683
|
|
722
|
-
while (
|
723
|
-
root = PEM_read_bio_X509_AUX(pem, nullptr, nullptr, (
|
684
|
+
while (true) {
|
685
|
+
root = PEM_read_bio_X509_AUX(pem, nullptr, nullptr, const_cast<char*>(""));
|
724
686
|
if (root == nullptr) {
|
725
687
|
ERR_clear_error();
|
726
|
-
break;
|
688
|
+
break; // We're at the end of stream.
|
727
689
|
}
|
728
690
|
if (root_names != nullptr) {
|
729
691
|
root_name = X509_get_subject_name(root);
|
@@ -782,8 +744,8 @@ static tsi_result ssl_ctx_load_verification_certs(SSL_CTX* context,
|
|
782
744
|
root_name);
|
783
745
|
}
|
784
746
|
|
785
|
-
|
786
|
-
|
747
|
+
// Populates the SSL context with a private key and a cert chain, and sets the
|
748
|
+
// cipher list and the ephemeral ECDH key.
|
787
749
|
static tsi_result populate_ssl_context(
|
788
750
|
SSL_CTX* context, const tsi_ssl_pem_key_cert_pair* key_cert_pair,
|
789
751
|
const char* cipher_list) {
|
@@ -824,16 +786,16 @@ static tsi_result populate_ssl_context(
|
|
824
786
|
return TSI_OK;
|
825
787
|
}
|
826
788
|
|
827
|
-
|
789
|
+
// Extracts the CN and the SANs from an X509 cert as a peer object.
|
828
790
|
tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
829
791
|
const char* pem_cert, tsi_peer* peer) {
|
830
792
|
tsi_result result = TSI_OK;
|
831
793
|
X509* cert = nullptr;
|
832
794
|
BIO* pem;
|
833
|
-
pem = BIO_new_mem_buf(
|
795
|
+
pem = BIO_new_mem_buf(pem_cert, static_cast<int>(strlen(pem_cert)));
|
834
796
|
if (pem == nullptr) return TSI_OUT_OF_RESOURCES;
|
835
797
|
|
836
|
-
cert = PEM_read_bio_X509(pem, nullptr, nullptr, (
|
798
|
+
cert = PEM_read_bio_X509(pem, nullptr, nullptr, const_cast<char*>(""));
|
837
799
|
if (cert == nullptr) {
|
838
800
|
gpr_log(GPR_ERROR, "Invalid certificate");
|
839
801
|
result = TSI_INVALID_ARGUMENT;
|
@@ -845,7 +807,7 @@ tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
|
845
807
|
return result;
|
846
808
|
}
|
847
809
|
|
848
|
-
|
810
|
+
// Builds the alpn protocol name list according to rfc 7301.
|
849
811
|
static tsi_result build_alpn_protocol_name_list(
|
850
812
|
const char** alpn_protocols, uint16_t num_alpn_protocols,
|
851
813
|
unsigned char** protocol_name_list, size_t* protocol_name_list_length) {
|
@@ -870,11 +832,11 @@ static tsi_result build_alpn_protocol_name_list(
|
|
870
832
|
current = *protocol_name_list;
|
871
833
|
for (i = 0; i < num_alpn_protocols; i++) {
|
872
834
|
size_t length = strlen(alpn_protocols[i]);
|
873
|
-
*(current++) = static_cast<uint8_t>(length);
|
835
|
+
*(current++) = static_cast<uint8_t>(length); // max checked above.
|
874
836
|
memcpy(current, alpn_protocols[i], length);
|
875
837
|
current += length;
|
876
838
|
}
|
877
|
-
|
839
|
+
// Safety check.
|
878
840
|
if ((current < *protocol_name_list) ||
|
879
841
|
(static_cast<uintptr_t>(current - *protocol_name_list) !=
|
880
842
|
*protocol_name_list_length)) {
|
@@ -903,12 +865,18 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
903
865
|
return TSI_INVALID_ARGUMENT;
|
904
866
|
}
|
905
867
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
906
|
-
// Set the min TLS version of the SSL context
|
868
|
+
// Set the min TLS version of the SSL context if using OpenSSL version
|
869
|
+
// >= 1.1.0. This OpenSSL version is required because the
|
870
|
+
// |SSL_CTX_set_min_proto_version| and |SSL_CTX_set_max_proto_version| APIs
|
871
|
+
// only exist in this version range.
|
907
872
|
switch (min_tls_version) {
|
908
873
|
case tsi_tls_version::TSI_TLS1_2:
|
909
874
|
SSL_CTX_set_min_proto_version(ssl_context, TLS1_2_VERSION);
|
910
875
|
break;
|
911
876
|
#if defined(TLS1_3_VERSION)
|
877
|
+
// If the library does not support TLS 1.3 and the caller requests a minimum
|
878
|
+
// of TLS 1.3, then return an error because the caller's request cannot be
|
879
|
+
// satisfied.
|
912
880
|
case tsi_tls_version::TSI_TLS1_3:
|
913
881
|
SSL_CTX_set_min_proto_version(ssl_context, TLS1_3_VERSION);
|
914
882
|
break;
|
@@ -917,16 +885,21 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
917
885
|
gpr_log(GPR_INFO, "TLS version is not supported.");
|
918
886
|
return TSI_FAILED_PRECONDITION;
|
919
887
|
}
|
888
|
+
|
920
889
|
// Set the max TLS version of the SSL context.
|
921
890
|
switch (max_tls_version) {
|
922
891
|
case tsi_tls_version::TSI_TLS1_2:
|
923
892
|
SSL_CTX_set_max_proto_version(ssl_context, TLS1_2_VERSION);
|
924
893
|
break;
|
925
|
-
#if defined(TLS1_3_VERSION)
|
926
894
|
case tsi_tls_version::TSI_TLS1_3:
|
895
|
+
#if defined(TLS1_3_VERSION)
|
927
896
|
SSL_CTX_set_max_proto_version(ssl_context, TLS1_3_VERSION);
|
928
|
-
|
897
|
+
#else
|
898
|
+
// If the library does not support TLS 1.3, then set the max TLS version
|
899
|
+
// to TLS 1.2 instead.
|
900
|
+
SSL_CTX_set_max_proto_version(ssl_context, TLS1_2_VERSION);
|
929
901
|
#endif
|
902
|
+
break;
|
930
903
|
default:
|
931
904
|
gpr_log(GPR_INFO, "TLS version is not supported.");
|
932
905
|
return TSI_FAILED_PRECONDITION;
|
@@ -935,7 +908,7 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
935
908
|
return TSI_OK;
|
936
909
|
}
|
937
910
|
|
938
|
-
|
911
|
+
// --- tsi_ssl_root_certs_store methods implementation. ---
|
939
912
|
|
940
913
|
tsi_ssl_root_certs_store* tsi_ssl_root_certs_store_create(
|
941
914
|
const char* pem_roots) {
|
@@ -972,24 +945,23 @@ void tsi_ssl_root_certs_store_destroy(tsi_ssl_root_certs_store* self) {
|
|
972
945
|
gpr_free(self);
|
973
946
|
}
|
974
947
|
|
975
|
-
|
948
|
+
// --- tsi_ssl_session_cache methods implementation. ---
|
976
949
|
|
977
950
|
tsi_ssl_session_cache* tsi_ssl_session_cache_create_lru(size_t capacity) {
|
978
|
-
|
979
|
-
return
|
980
|
-
tsi::SslSessionLRUCache::Create(capacity).release());
|
951
|
+
// Pointer will be dereferenced by unref call.
|
952
|
+
return tsi::SslSessionLRUCache::Create(capacity).release()->c_ptr();
|
981
953
|
}
|
982
954
|
|
983
955
|
void tsi_ssl_session_cache_ref(tsi_ssl_session_cache* cache) {
|
984
|
-
|
985
|
-
|
956
|
+
// Pointer will be dereferenced by unref call.
|
957
|
+
tsi::SslSessionLRUCache::FromC(cache)->Ref().release();
|
986
958
|
}
|
987
959
|
|
988
960
|
void tsi_ssl_session_cache_unref(tsi_ssl_session_cache* cache) {
|
989
|
-
|
961
|
+
tsi::SslSessionLRUCache::FromC(cache)->Unref();
|
990
962
|
}
|
991
963
|
|
992
|
-
|
964
|
+
// --- tsi_frame_protector methods implementation. ---
|
993
965
|
|
994
966
|
static tsi_result ssl_protector_protect(tsi_frame_protector* self,
|
995
967
|
const unsigned char* unprotected_bytes,
|
@@ -998,130 +970,33 @@ static tsi_result ssl_protector_protect(tsi_frame_protector* self,
|
|
998
970
|
size_t* protected_output_frames_size) {
|
999
971
|
tsi_ssl_frame_protector* impl =
|
1000
972
|
reinterpret_cast<tsi_ssl_frame_protector*>(self);
|
1001
|
-
int read_from_ssl;
|
1002
|
-
size_t available;
|
1003
|
-
tsi_result result = TSI_OK;
|
1004
973
|
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
|
1010
|
-
read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
|
1011
|
-
static_cast<int>(*protected_output_frames_size));
|
1012
|
-
if (read_from_ssl < 0) {
|
1013
|
-
gpr_log(GPR_ERROR,
|
1014
|
-
"Could not read from BIO even though some data is pending");
|
1015
|
-
return TSI_INTERNAL_ERROR;
|
1016
|
-
}
|
1017
|
-
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
1018
|
-
return TSI_OK;
|
1019
|
-
}
|
1020
|
-
|
1021
|
-
/* Now see if we can send a complete frame. */
|
1022
|
-
available = impl->buffer_size - impl->buffer_offset;
|
1023
|
-
if (available > *unprotected_bytes_size) {
|
1024
|
-
/* If we cannot, just copy the data in our internal buffer. */
|
1025
|
-
memcpy(impl->buffer + impl->buffer_offset, unprotected_bytes,
|
1026
|
-
*unprotected_bytes_size);
|
1027
|
-
impl->buffer_offset += *unprotected_bytes_size;
|
1028
|
-
*protected_output_frames_size = 0;
|
1029
|
-
return TSI_OK;
|
1030
|
-
}
|
1031
|
-
|
1032
|
-
/* If we can, prepare the buffer, send it to SSL_write and read. */
|
1033
|
-
memcpy(impl->buffer + impl->buffer_offset, unprotected_bytes, available);
|
1034
|
-
result = do_ssl_write(impl->ssl, impl->buffer, impl->buffer_size);
|
1035
|
-
if (result != TSI_OK) return result;
|
1036
|
-
|
1037
|
-
GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
|
1038
|
-
read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
|
1039
|
-
static_cast<int>(*protected_output_frames_size));
|
1040
|
-
if (read_from_ssl < 0) {
|
1041
|
-
gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
|
1042
|
-
return TSI_INTERNAL_ERROR;
|
1043
|
-
}
|
1044
|
-
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
1045
|
-
*unprotected_bytes_size = available;
|
1046
|
-
impl->buffer_offset = 0;
|
1047
|
-
return TSI_OK;
|
974
|
+
return grpc_core::SslProtectorProtect(
|
975
|
+
unprotected_bytes, impl->buffer_size, impl->buffer_offset, impl->buffer,
|
976
|
+
impl->ssl, impl->network_io, unprotected_bytes_size,
|
977
|
+
protected_output_frames, protected_output_frames_size);
|
1048
978
|
}
|
1049
979
|
|
1050
980
|
static tsi_result ssl_protector_protect_flush(
|
1051
981
|
tsi_frame_protector* self, unsigned char* protected_output_frames,
|
1052
982
|
size_t* protected_output_frames_size, size_t* still_pending_size) {
|
1053
|
-
tsi_result result = TSI_OK;
|
1054
983
|
tsi_ssl_frame_protector* impl =
|
1055
984
|
reinterpret_cast<tsi_ssl_frame_protector*>(self);
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
result = do_ssl_write(impl->ssl, impl->buffer, impl->buffer_offset);
|
1061
|
-
if (result != TSI_OK) return result;
|
1062
|
-
impl->buffer_offset = 0;
|
1063
|
-
}
|
1064
|
-
|
1065
|
-
pending = static_cast<int>(BIO_pending(impl->network_io));
|
1066
|
-
GPR_ASSERT(pending >= 0);
|
1067
|
-
*still_pending_size = static_cast<size_t>(pending);
|
1068
|
-
if (*still_pending_size == 0) return TSI_OK;
|
1069
|
-
|
1070
|
-
GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
|
1071
|
-
read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
|
1072
|
-
static_cast<int>(*protected_output_frames_size));
|
1073
|
-
if (read_from_ssl <= 0) {
|
1074
|
-
gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
|
1075
|
-
return TSI_INTERNAL_ERROR;
|
1076
|
-
}
|
1077
|
-
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
1078
|
-
pending = static_cast<int>(BIO_pending(impl->network_io));
|
1079
|
-
GPR_ASSERT(pending >= 0);
|
1080
|
-
*still_pending_size = static_cast<size_t>(pending);
|
1081
|
-
return TSI_OK;
|
985
|
+
return grpc_core::SslProtectorProtectFlush(
|
986
|
+
impl->buffer_offset, impl->buffer, impl->ssl, impl->network_io,
|
987
|
+
protected_output_frames, protected_output_frames_size,
|
988
|
+
still_pending_size);
|
1082
989
|
}
|
1083
990
|
|
1084
991
|
static tsi_result ssl_protector_unprotect(
|
1085
992
|
tsi_frame_protector* self, const unsigned char* protected_frames_bytes,
|
1086
993
|
size_t* protected_frames_bytes_size, unsigned char* unprotected_bytes,
|
1087
994
|
size_t* unprotected_bytes_size) {
|
1088
|
-
tsi_result result = TSI_OK;
|
1089
|
-
int written_into_ssl = 0;
|
1090
|
-
size_t output_bytes_size = *unprotected_bytes_size;
|
1091
|
-
size_t output_bytes_offset = 0;
|
1092
995
|
tsi_ssl_frame_protector* impl =
|
1093
996
|
reinterpret_cast<tsi_ssl_frame_protector*>(self);
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
if (result != TSI_OK) return result;
|
1098
|
-
if (*unprotected_bytes_size == output_bytes_size) {
|
1099
|
-
/* We have read everything we could and cannot process any more input. */
|
1100
|
-
*protected_frames_bytes_size = 0;
|
1101
|
-
return TSI_OK;
|
1102
|
-
}
|
1103
|
-
output_bytes_offset = *unprotected_bytes_size;
|
1104
|
-
unprotected_bytes += output_bytes_offset;
|
1105
|
-
*unprotected_bytes_size = output_bytes_size - output_bytes_offset;
|
1106
|
-
|
1107
|
-
/* Then, try to write some data to ssl. */
|
1108
|
-
GPR_ASSERT(*protected_frames_bytes_size <= INT_MAX);
|
1109
|
-
written_into_ssl = BIO_write(impl->network_io, protected_frames_bytes,
|
1110
|
-
static_cast<int>(*protected_frames_bytes_size));
|
1111
|
-
if (written_into_ssl < 0) {
|
1112
|
-
gpr_log(GPR_ERROR, "Sending protected frame to ssl failed with %d",
|
1113
|
-
written_into_ssl);
|
1114
|
-
return TSI_INTERNAL_ERROR;
|
1115
|
-
}
|
1116
|
-
*protected_frames_bytes_size = static_cast<size_t>(written_into_ssl);
|
1117
|
-
|
1118
|
-
/* Now try to read some data again. */
|
1119
|
-
result = do_ssl_read(impl->ssl, unprotected_bytes, unprotected_bytes_size);
|
1120
|
-
if (result == TSI_OK) {
|
1121
|
-
/* Don't forget to output the total number of bytes read. */
|
1122
|
-
*unprotected_bytes_size += output_bytes_offset;
|
1123
|
-
}
|
1124
|
-
return result;
|
997
|
+
return grpc_core::SslProtectorUnprotect(
|
998
|
+
protected_frames_bytes, impl->ssl, impl->network_io,
|
999
|
+
protected_frames_bytes_size, unprotected_bytes, unprotected_bytes_size);
|
1125
1000
|
}
|
1126
1001
|
|
1127
1002
|
static void ssl_protector_destroy(tsi_frame_protector* self) {
|
@@ -1140,39 +1015,40 @@ static const tsi_frame_protector_vtable frame_protector_vtable = {
|
|
1140
1015
|
ssl_protector_destroy,
|
1141
1016
|
};
|
1142
1017
|
|
1143
|
-
|
1018
|
+
// --- tsi_server_handshaker_factory methods implementation. ---
|
1144
1019
|
|
1145
1020
|
static void tsi_ssl_handshaker_factory_destroy(
|
1146
|
-
tsi_ssl_handshaker_factory*
|
1147
|
-
if (
|
1021
|
+
tsi_ssl_handshaker_factory* factory) {
|
1022
|
+
if (factory == nullptr) return;
|
1148
1023
|
|
1149
|
-
if (
|
1150
|
-
|
1024
|
+
if (factory->vtable != nullptr && factory->vtable->destroy != nullptr) {
|
1025
|
+
factory->vtable->destroy(factory);
|
1151
1026
|
}
|
1152
|
-
|
1153
|
-
|
1154
|
-
|
1027
|
+
// Note, we don't free(self) here because this object is always directly
|
1028
|
+
// embedded in another object. If tsi_ssl_handshaker_factory_init allocates
|
1029
|
+
// any memory, it should be free'd here.
|
1155
1030
|
}
|
1156
1031
|
|
1157
1032
|
static tsi_ssl_handshaker_factory* tsi_ssl_handshaker_factory_ref(
|
1158
|
-
tsi_ssl_handshaker_factory*
|
1159
|
-
if (
|
1160
|
-
gpr_refn(&
|
1161
|
-
return
|
1033
|
+
tsi_ssl_handshaker_factory* factory) {
|
1034
|
+
if (factory == nullptr) return nullptr;
|
1035
|
+
gpr_refn(&factory->refcount, 1);
|
1036
|
+
return factory;
|
1162
1037
|
}
|
1163
1038
|
|
1164
|
-
static void tsi_ssl_handshaker_factory_unref(
|
1165
|
-
|
1039
|
+
static void tsi_ssl_handshaker_factory_unref(
|
1040
|
+
tsi_ssl_handshaker_factory* factory) {
|
1041
|
+
if (factory == nullptr) return;
|
1166
1042
|
|
1167
|
-
if (gpr_unref(&
|
1168
|
-
tsi_ssl_handshaker_factory_destroy(
|
1043
|
+
if (gpr_unref(&factory->refcount)) {
|
1044
|
+
tsi_ssl_handshaker_factory_destroy(factory);
|
1169
1045
|
}
|
1170
1046
|
}
|
1171
1047
|
|
1172
1048
|
static tsi_ssl_handshaker_factory_vtable handshaker_factory_vtable = {nullptr};
|
1173
1049
|
|
1174
|
-
|
1175
|
-
|
1050
|
+
// Initializes a tsi_ssl_handshaker_factory object. Caller is responsible for
|
1051
|
+
// allocating memory for the factory.
|
1176
1052
|
static void tsi_ssl_handshaker_factory_init(
|
1177
1053
|
tsi_ssl_handshaker_factory* factory) {
|
1178
1054
|
GPR_ASSERT(factory != nullptr);
|
@@ -1181,7 +1057,7 @@ static void tsi_ssl_handshaker_factory_init(
|
|
1181
1057
|
gpr_ref_init(&factory->refcount, 1);
|
1182
1058
|
}
|
1183
1059
|
|
1184
|
-
|
1060
|
+
// Gets the X509 cert chain in PEM format as a tsi_peer_property.
|
1185
1061
|
tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
|
1186
1062
|
tsi_peer_property* property) {
|
1187
1063
|
BIO* bio = BIO_new(BIO_s_mem());
|
@@ -1199,13 +1075,13 @@ tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
|
|
1199
1075
|
return TSI_INTERNAL_ERROR;
|
1200
1076
|
}
|
1201
1077
|
tsi_result result = tsi_construct_string_peer_property(
|
1202
|
-
TSI_X509_PEM_CERT_CHAIN_PROPERTY, (
|
1203
|
-
|
1078
|
+
TSI_X509_PEM_CERT_CHAIN_PROPERTY, contents, static_cast<size_t>(len),
|
1079
|
+
property);
|
1204
1080
|
BIO_free(bio);
|
1205
1081
|
return result;
|
1206
1082
|
}
|
1207
1083
|
|
1208
|
-
|
1084
|
+
// --- tsi_handshaker_result methods implementation. ---
|
1209
1085
|
static tsi_result ssl_handshaker_result_extract_peer(
|
1210
1086
|
const tsi_handshaker_result* self, tsi_peer* peer) {
|
1211
1087
|
tsi_result result = TSI_OK;
|
@@ -1221,9 +1097,9 @@ static tsi_result ssl_handshaker_result_extract_peer(
|
|
1221
1097
|
}
|
1222
1098
|
#if TSI_OPENSSL_ALPN_SUPPORT
|
1223
1099
|
SSL_get0_alpn_selected(impl->ssl, &alpn_selected, &alpn_selected_len);
|
1224
|
-
#endif
|
1100
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
1225
1101
|
if (alpn_selected == nullptr) {
|
1226
|
-
|
1102
|
+
// Try npn.
|
1227
1103
|
SSL_get0_next_proto_negotiated(impl->ssl, &alpn_selected,
|
1228
1104
|
&alpn_selected_len);
|
1229
1105
|
}
|
@@ -1273,6 +1149,13 @@ static tsi_result ssl_handshaker_result_extract_peer(
|
|
1273
1149
|
return result;
|
1274
1150
|
}
|
1275
1151
|
|
1152
|
+
static tsi_result ssl_handshaker_result_get_frame_protector_type(
|
1153
|
+
const tsi_handshaker_result* /*self*/,
|
1154
|
+
tsi_frame_protector_type* frame_protector_type) {
|
1155
|
+
*frame_protector_type = TSI_FRAME_PROTECTOR_NORMAL;
|
1156
|
+
return TSI_OK;
|
1157
|
+
}
|
1158
|
+
|
1276
1159
|
static tsi_result ssl_handshaker_result_create_frame_protector(
|
1277
1160
|
const tsi_handshaker_result* self, size_t* max_output_protected_frame_size,
|
1278
1161
|
tsi_frame_protector** protector) {
|
@@ -1308,7 +1191,7 @@ static tsi_result ssl_handshaker_result_create_frame_protector(
|
|
1308
1191
|
return TSI_INTERNAL_ERROR;
|
1309
1192
|
}
|
1310
1193
|
|
1311
|
-
|
1194
|
+
// Transfer ownership of ssl and network_io to the frame protector.
|
1312
1195
|
protector_impl->ssl = impl->ssl;
|
1313
1196
|
impl->ssl = nullptr;
|
1314
1197
|
protector_impl->network_io = impl->network_io;
|
@@ -1339,7 +1222,8 @@ static void ssl_handshaker_result_destroy(tsi_handshaker_result* self) {
|
|
1339
1222
|
|
1340
1223
|
static const tsi_handshaker_result_vtable handshaker_result_vtable = {
|
1341
1224
|
ssl_handshaker_result_extract_peer,
|
1342
|
-
|
1225
|
+
ssl_handshaker_result_get_frame_protector_type,
|
1226
|
+
nullptr, // create_zero_copy_grpc_protector
|
1343
1227
|
ssl_handshaker_result_create_frame_protector,
|
1344
1228
|
ssl_handshaker_result_get_unused_bytes,
|
1345
1229
|
ssl_handshaker_result_destroy,
|
@@ -1347,33 +1231,36 @@ static const tsi_handshaker_result_vtable handshaker_result_vtable = {
|
|
1347
1231
|
|
1348
1232
|
static tsi_result ssl_handshaker_result_create(
|
1349
1233
|
tsi_ssl_handshaker* handshaker, unsigned char* unused_bytes,
|
1350
|
-
size_t unused_bytes_size, tsi_handshaker_result** handshaker_result
|
1234
|
+
size_t unused_bytes_size, tsi_handshaker_result** handshaker_result,
|
1235
|
+
std::string* error) {
|
1351
1236
|
if (handshaker == nullptr || handshaker_result == nullptr ||
|
1352
1237
|
(unused_bytes_size > 0 && unused_bytes == nullptr)) {
|
1238
|
+
if (error != nullptr) *error = "invalid argument";
|
1353
1239
|
return TSI_INVALID_ARGUMENT;
|
1354
1240
|
}
|
1355
1241
|
tsi_ssl_handshaker_result* result =
|
1356
|
-
|
1242
|
+
grpc_core::Zalloc<tsi_ssl_handshaker_result>();
|
1357
1243
|
result->base.vtable = &handshaker_result_vtable;
|
1358
|
-
|
1244
|
+
// Transfer ownership of ssl and network_io to the handshaker result.
|
1359
1245
|
result->ssl = handshaker->ssl;
|
1360
1246
|
handshaker->ssl = nullptr;
|
1361
1247
|
result->network_io = handshaker->network_io;
|
1362
1248
|
handshaker->network_io = nullptr;
|
1363
|
-
|
1249
|
+
// Transfer ownership of |unused_bytes| to the handshaker result.
|
1364
1250
|
result->unused_bytes = unused_bytes;
|
1365
1251
|
result->unused_bytes_size = unused_bytes_size;
|
1366
1252
|
*handshaker_result = &result->base;
|
1367
1253
|
return TSI_OK;
|
1368
1254
|
}
|
1369
1255
|
|
1370
|
-
|
1256
|
+
// --- tsi_handshaker methods implementation. ---
|
1371
1257
|
|
1372
1258
|
static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(
|
1373
|
-
tsi_ssl_handshaker* impl, unsigned char* bytes, size_t* bytes_size
|
1259
|
+
tsi_ssl_handshaker* impl, unsigned char* bytes, size_t* bytes_size,
|
1260
|
+
std::string* error) {
|
1374
1261
|
int bytes_read_from_ssl = 0;
|
1375
|
-
if (bytes == nullptr || bytes_size == nullptr || *bytes_size
|
1376
|
-
|
1262
|
+
if (bytes == nullptr || bytes_size == nullptr || *bytes_size > INT_MAX) {
|
1263
|
+
if (error != nullptr) *error = "invalid argument";
|
1377
1264
|
return TSI_INVALID_ARGUMENT;
|
1378
1265
|
}
|
1379
1266
|
GPR_ASSERT(*bytes_size <= INT_MAX);
|
@@ -1382,6 +1269,7 @@ static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(
|
|
1382
1269
|
if (bytes_read_from_ssl < 0) {
|
1383
1270
|
*bytes_size = 0;
|
1384
1271
|
if (!BIO_should_retry(impl->network_io)) {
|
1272
|
+
if (error != nullptr) *error = "error reading from BIO";
|
1385
1273
|
impl->result = TSI_INTERNAL_ERROR;
|
1386
1274
|
return impl->result;
|
1387
1275
|
} else {
|
@@ -1400,44 +1288,37 @@ static tsi_result ssl_handshaker_get_result(tsi_ssl_handshaker* impl) {
|
|
1400
1288
|
return impl->result;
|
1401
1289
|
}
|
1402
1290
|
|
1403
|
-
static tsi_result
|
1404
|
-
|
1405
|
-
int bytes_written_into_ssl_size = 0;
|
1406
|
-
if (bytes == nullptr || bytes_size == nullptr || *bytes_size > INT_MAX) {
|
1407
|
-
return TSI_INVALID_ARGUMENT;
|
1408
|
-
}
|
1409
|
-
GPR_ASSERT(*bytes_size <= INT_MAX);
|
1410
|
-
bytes_written_into_ssl_size =
|
1411
|
-
BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
|
1412
|
-
if (bytes_written_into_ssl_size < 0) {
|
1413
|
-
gpr_log(GPR_ERROR, "Could not write to memory BIO.");
|
1414
|
-
impl->result = TSI_INTERNAL_ERROR;
|
1415
|
-
return impl->result;
|
1416
|
-
}
|
1417
|
-
*bytes_size = static_cast<size_t>(bytes_written_into_ssl_size);
|
1418
|
-
|
1291
|
+
static tsi_result ssl_handshaker_do_handshake(tsi_ssl_handshaker* impl,
|
1292
|
+
std::string* error) {
|
1419
1293
|
if (ssl_handshaker_get_result(impl) != TSI_HANDSHAKE_IN_PROGRESS) {
|
1420
1294
|
impl->result = TSI_OK;
|
1421
1295
|
return impl->result;
|
1422
1296
|
} else {
|
1423
|
-
|
1297
|
+
ERR_clear_error();
|
1298
|
+
// Get ready to get some bytes from SSL.
|
1424
1299
|
int ssl_result = SSL_do_handshake(impl->ssl);
|
1425
1300
|
ssl_result = SSL_get_error(impl->ssl, ssl_result);
|
1426
1301
|
switch (ssl_result) {
|
1427
1302
|
case SSL_ERROR_WANT_READ:
|
1428
1303
|
if (BIO_pending(impl->network_io) == 0) {
|
1429
|
-
|
1304
|
+
// We need more data.
|
1430
1305
|
return TSI_INCOMPLETE_DATA;
|
1431
1306
|
} else {
|
1432
1307
|
return TSI_OK;
|
1433
1308
|
}
|
1434
1309
|
case SSL_ERROR_NONE:
|
1435
1310
|
return TSI_OK;
|
1311
|
+
case SSL_ERROR_WANT_WRITE:
|
1312
|
+
return TSI_DRAIN_BUFFER;
|
1436
1313
|
default: {
|
1437
1314
|
char err_str[256];
|
1438
1315
|
ERR_error_string_n(ERR_get_error(), err_str, sizeof(err_str));
|
1439
1316
|
gpr_log(GPR_ERROR, "Handshake failed with fatal error %s: %s.",
|
1440
|
-
|
1317
|
+
grpc_core::SslErrorString(ssl_result), err_str);
|
1318
|
+
if (error != nullptr) {
|
1319
|
+
*error = absl::StrCat(grpc_core::SslErrorString(ssl_result), ": ",
|
1320
|
+
err_str);
|
1321
|
+
}
|
1441
1322
|
impl->result = TSI_PROTOCOL_FAILURE;
|
1442
1323
|
return impl->result;
|
1443
1324
|
}
|
@@ -1445,6 +1326,27 @@ static tsi_result ssl_handshaker_process_bytes_from_peer(
|
|
1445
1326
|
}
|
1446
1327
|
}
|
1447
1328
|
|
1329
|
+
static tsi_result ssl_handshaker_process_bytes_from_peer(
|
1330
|
+
tsi_ssl_handshaker* impl, const unsigned char* bytes, size_t* bytes_size,
|
1331
|
+
std::string* error) {
|
1332
|
+
int bytes_written_into_ssl_size = 0;
|
1333
|
+
if (bytes == nullptr || bytes_size == nullptr || *bytes_size > INT_MAX) {
|
1334
|
+
if (error != nullptr) *error = "invalid argument";
|
1335
|
+
return TSI_INVALID_ARGUMENT;
|
1336
|
+
}
|
1337
|
+
GPR_ASSERT(*bytes_size <= INT_MAX);
|
1338
|
+
bytes_written_into_ssl_size =
|
1339
|
+
BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
|
1340
|
+
if (bytes_written_into_ssl_size < 0) {
|
1341
|
+
gpr_log(GPR_ERROR, "Could not write to memory BIO.");
|
1342
|
+
if (error != nullptr) *error = "could not write to memory BIO";
|
1343
|
+
impl->result = TSI_INTERNAL_ERROR;
|
1344
|
+
return impl->result;
|
1345
|
+
}
|
1346
|
+
*bytes_size = static_cast<size_t>(bytes_written_into_ssl_size);
|
1347
|
+
return ssl_handshaker_do_handshake(impl, error);
|
1348
|
+
}
|
1349
|
+
|
1448
1350
|
static void ssl_handshaker_destroy(tsi_handshaker* self) {
|
1449
1351
|
tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
|
1450
1352
|
SSL_free(impl->ssl);
|
@@ -1458,9 +1360,11 @@ static void ssl_handshaker_destroy(tsi_handshaker* self) {
|
|
1458
1360
|
// |bytes_remaining|.
|
1459
1361
|
static tsi_result ssl_bytes_remaining(tsi_ssl_handshaker* impl,
|
1460
1362
|
unsigned char** bytes_remaining,
|
1461
|
-
size_t* bytes_remaining_size
|
1363
|
+
size_t* bytes_remaining_size,
|
1364
|
+
std::string* error) {
|
1462
1365
|
if (impl == nullptr || bytes_remaining == nullptr ||
|
1463
1366
|
bytes_remaining_size == nullptr) {
|
1367
|
+
if (error != nullptr) *error = "invalid argument";
|
1464
1368
|
return TSI_INVALID_ARGUMENT;
|
1465
1369
|
}
|
1466
1370
|
// Atempt to read all of the bytes in SSL's read BIO. These bytes should
|
@@ -1478,38 +1382,29 @@ static tsi_result ssl_bytes_remaining(tsi_ssl_handshaker* impl,
|
|
1478
1382
|
"Failed to read the expected number of bytes from SSL object.");
|
1479
1383
|
gpr_free(*bytes_remaining);
|
1480
1384
|
*bytes_remaining = nullptr;
|
1385
|
+
if (error != nullptr) {
|
1386
|
+
*error = "Failed to read the expected number of bytes from SSL object.";
|
1387
|
+
}
|
1481
1388
|
return TSI_INTERNAL_ERROR;
|
1482
1389
|
}
|
1483
1390
|
*bytes_remaining_size = static_cast<size_t>(bytes_read);
|
1484
1391
|
return TSI_OK;
|
1485
1392
|
}
|
1486
1393
|
|
1487
|
-
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
1492
|
-
|
1493
|
-
|
1494
|
-
bytes_to_send == nullptr || bytes_to_send_size == nullptr ||
|
1495
|
-
handshaker_result == nullptr) {
|
1496
|
-
return TSI_INVALID_ARGUMENT;
|
1497
|
-
}
|
1498
|
-
/* If there are received bytes, process them first. */
|
1394
|
+
// Write handshake data received from SSL to an unbound output buffer.
|
1395
|
+
// By doing that, we drain SSL bio buffer used to hold handshake data.
|
1396
|
+
// This API needs to be repeatedly called until all handshake data are
|
1397
|
+
// received from SSL.
|
1398
|
+
static tsi_result ssl_handshaker_write_output_buffer(tsi_handshaker* self,
|
1399
|
+
size_t* bytes_written,
|
1400
|
+
std::string* error) {
|
1499
1401
|
tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
|
1500
1402
|
tsi_result status = TSI_OK;
|
1501
|
-
size_t
|
1502
|
-
if (received_bytes_size > 0) {
|
1503
|
-
status = ssl_handshaker_process_bytes_from_peer(impl, received_bytes,
|
1504
|
-
&bytes_consumed);
|
1505
|
-
if (status != TSI_OK) return status;
|
1506
|
-
}
|
1507
|
-
/* Get bytes to send to the peer, if available. */
|
1508
|
-
size_t offset = 0;
|
1403
|
+
size_t offset = *bytes_written;
|
1509
1404
|
do {
|
1510
1405
|
size_t to_send_size = impl->outgoing_bytes_buffer_size - offset;
|
1511
1406
|
status = ssl_handshaker_get_bytes_to_send_to_peer(
|
1512
|
-
impl, impl->outgoing_bytes_buffer + offset, &to_send_size);
|
1407
|
+
impl, impl->outgoing_bytes_buffer + offset, &to_send_size, error);
|
1513
1408
|
offset += to_send_size;
|
1514
1409
|
if (status == TSI_INCOMPLETE_DATA) {
|
1515
1410
|
impl->outgoing_bytes_buffer_size *= 2;
|
@@ -1517,10 +1412,46 @@ static tsi_result ssl_handshaker_next(
|
|
1517
1412
|
impl->outgoing_bytes_buffer, impl->outgoing_bytes_buffer_size));
|
1518
1413
|
}
|
1519
1414
|
} while (status == TSI_INCOMPLETE_DATA);
|
1415
|
+
*bytes_written = offset;
|
1416
|
+
return status;
|
1417
|
+
}
|
1418
|
+
|
1419
|
+
static tsi_result ssl_handshaker_next(tsi_handshaker* self,
|
1420
|
+
const unsigned char* received_bytes,
|
1421
|
+
size_t received_bytes_size,
|
1422
|
+
const unsigned char** bytes_to_send,
|
1423
|
+
size_t* bytes_to_send_size,
|
1424
|
+
tsi_handshaker_result** handshaker_result,
|
1425
|
+
tsi_handshaker_on_next_done_cb /*cb*/,
|
1426
|
+
void* /*user_data*/, std::string* error) {
|
1427
|
+
// Input sanity check.
|
1428
|
+
if ((received_bytes_size > 0 && received_bytes == nullptr) ||
|
1429
|
+
bytes_to_send == nullptr || bytes_to_send_size == nullptr ||
|
1430
|
+
handshaker_result == nullptr) {
|
1431
|
+
if (error != nullptr) *error = "invalid argument";
|
1432
|
+
return TSI_INVALID_ARGUMENT;
|
1433
|
+
}
|
1434
|
+
// If there are received bytes, process them first.
|
1435
|
+
tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
|
1436
|
+
tsi_result status = TSI_OK;
|
1437
|
+
size_t bytes_consumed = received_bytes_size;
|
1438
|
+
size_t bytes_written = 0;
|
1439
|
+
if (received_bytes_size > 0) {
|
1440
|
+
status = ssl_handshaker_process_bytes_from_peer(impl, received_bytes,
|
1441
|
+
&bytes_consumed, error);
|
1442
|
+
while (status == TSI_DRAIN_BUFFER) {
|
1443
|
+
status = ssl_handshaker_write_output_buffer(self, &bytes_written, error);
|
1444
|
+
if (status != TSI_OK) return status;
|
1445
|
+
status = ssl_handshaker_do_handshake(impl, error);
|
1446
|
+
}
|
1447
|
+
}
|
1448
|
+
if (status != TSI_OK) return status;
|
1449
|
+
// Get bytes to send to the peer, if available.
|
1450
|
+
status = ssl_handshaker_write_output_buffer(self, &bytes_written, error);
|
1520
1451
|
if (status != TSI_OK) return status;
|
1521
1452
|
*bytes_to_send = impl->outgoing_bytes_buffer;
|
1522
|
-
*bytes_to_send_size =
|
1523
|
-
|
1453
|
+
*bytes_to_send_size = bytes_written;
|
1454
|
+
// If handshake completes, create tsi_handshaker_result.
|
1524
1455
|
if (ssl_handshaker_get_result(impl) == TSI_HANDSHAKE_IN_PROGRESS) {
|
1525
1456
|
*handshaker_result = nullptr;
|
1526
1457
|
} else {
|
@@ -1530,18 +1461,20 @@ static tsi_result ssl_handshaker_next(
|
|
1530
1461
|
// peer that must be processed.
|
1531
1462
|
unsigned char* unused_bytes = nullptr;
|
1532
1463
|
size_t unused_bytes_size = 0;
|
1533
|
-
status =
|
1464
|
+
status =
|
1465
|
+
ssl_bytes_remaining(impl, &unused_bytes, &unused_bytes_size, error);
|
1534
1466
|
if (status != TSI_OK) return status;
|
1535
1467
|
if (unused_bytes_size > received_bytes_size) {
|
1536
1468
|
gpr_log(GPR_ERROR, "More unused bytes than received bytes.");
|
1537
1469
|
gpr_free(unused_bytes);
|
1470
|
+
if (error != nullptr) *error = "More unused bytes than received bytes.";
|
1538
1471
|
return TSI_INTERNAL_ERROR;
|
1539
1472
|
}
|
1540
1473
|
status = ssl_handshaker_result_create(impl, unused_bytes, unused_bytes_size,
|
1541
|
-
handshaker_result);
|
1474
|
+
handshaker_result, error);
|
1542
1475
|
if (status == TSI_OK) {
|
1543
|
-
|
1544
|
-
|
1476
|
+
// Indicates that the handshake has completed and that a handshaker_result
|
1477
|
+
// has been created.
|
1545
1478
|
self->handshaker_result_created = true;
|
1546
1479
|
}
|
1547
1480
|
}
|
@@ -1549,17 +1482,17 @@ static tsi_result ssl_handshaker_next(
|
|
1549
1482
|
}
|
1550
1483
|
|
1551
1484
|
static const tsi_handshaker_vtable handshaker_vtable = {
|
1552
|
-
nullptr,
|
1553
|
-
nullptr,
|
1554
|
-
nullptr,
|
1555
|
-
nullptr,
|
1556
|
-
nullptr,
|
1485
|
+
nullptr, // get_bytes_to_send_to_peer -- deprecated
|
1486
|
+
nullptr, // process_bytes_from_peer -- deprecated
|
1487
|
+
nullptr, // get_result -- deprecated
|
1488
|
+
nullptr, // extract_peer -- deprecated
|
1489
|
+
nullptr, // create_frame_protector -- deprecated
|
1557
1490
|
ssl_handshaker_destroy,
|
1558
1491
|
ssl_handshaker_next,
|
1559
|
-
nullptr,
|
1492
|
+
nullptr, // shutdown
|
1560
1493
|
};
|
1561
1494
|
|
1562
|
-
|
1495
|
+
// --- tsi_ssl_handshaker_factory common methods. ---
|
1563
1496
|
|
1564
1497
|
static void tsi_ssl_handshaker_resume_session(
|
1565
1498
|
SSL* ssl, tsi::SslSessionLRUCache* session_cache) {
|
@@ -1576,6 +1509,8 @@ static void tsi_ssl_handshaker_resume_session(
|
|
1576
1509
|
|
1577
1510
|
static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
1578
1511
|
const char* server_name_indication,
|
1512
|
+
size_t network_bio_buf_size,
|
1513
|
+
size_t ssl_bio_buf_size,
|
1579
1514
|
tsi_ssl_handshaker_factory* factory,
|
1580
1515
|
tsi_handshaker** handshaker) {
|
1581
1516
|
SSL* ssl = SSL_new(ctx);
|
@@ -1592,7 +1527,8 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
1592
1527
|
}
|
1593
1528
|
SSL_set_info_callback(ssl, ssl_info_callback);
|
1594
1529
|
|
1595
|
-
if (!BIO_new_bio_pair(&network_io,
|
1530
|
+
if (!BIO_new_bio_pair(&network_io, network_bio_buf_size, &ssl_io,
|
1531
|
+
ssl_bio_buf_size)) {
|
1596
1532
|
gpr_log(GPR_ERROR, "BIO_new_bio_pair failed.");
|
1597
1533
|
SSL_free(ssl);
|
1598
1534
|
return TSI_OUT_OF_RESOURCES;
|
@@ -1616,12 +1552,13 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
1616
1552
|
tsi_ssl_handshaker_resume_session(ssl,
|
1617
1553
|
client_factory->session_cache.get());
|
1618
1554
|
}
|
1555
|
+
ERR_clear_error();
|
1619
1556
|
ssl_result = SSL_do_handshake(ssl);
|
1620
1557
|
ssl_result = SSL_get_error(ssl, ssl_result);
|
1621
1558
|
if (ssl_result != SSL_ERROR_WANT_READ) {
|
1622
1559
|
gpr_log(GPR_ERROR,
|
1623
1560
|
"Unexpected error received from first SSL_do_handshake call: %s",
|
1624
|
-
|
1561
|
+
grpc_core::SslErrorString(ssl_result));
|
1625
1562
|
SSL_free(ssl);
|
1626
1563
|
BIO_free(network_io);
|
1627
1564
|
return TSI_INTERNAL_ERROR;
|
@@ -1630,7 +1567,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
1630
1567
|
SSL_set_accept_state(ssl);
|
1631
1568
|
}
|
1632
1569
|
|
1633
|
-
impl =
|
1570
|
+
impl = grpc_core::Zalloc<tsi_ssl_handshaker>();
|
1634
1571
|
impl->ssl = ssl;
|
1635
1572
|
impl->network_io = network_io;
|
1636
1573
|
impl->result = TSI_HANDSHAKE_IN_PROGRESS;
|
@@ -1672,19 +1609,21 @@ static int select_protocol_list(const unsigned char** out,
|
|
1672
1609
|
return SSL_TLSEXT_ERR_NOACK;
|
1673
1610
|
}
|
1674
1611
|
|
1675
|
-
|
1612
|
+
// --- tsi_ssl_client_handshaker_factory methods implementation. ---
|
1676
1613
|
|
1677
1614
|
tsi_result tsi_ssl_client_handshaker_factory_create_handshaker(
|
1678
|
-
tsi_ssl_client_handshaker_factory*
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1615
|
+
tsi_ssl_client_handshaker_factory* factory,
|
1616
|
+
const char* server_name_indication, size_t network_bio_buf_size,
|
1617
|
+
size_t ssl_bio_buf_size, tsi_handshaker** handshaker) {
|
1618
|
+
return create_tsi_ssl_handshaker(
|
1619
|
+
factory->ssl_context, 1, server_name_indication, network_bio_buf_size,
|
1620
|
+
ssl_bio_buf_size, &factory->base, handshaker);
|
1682
1621
|
}
|
1683
1622
|
|
1684
1623
|
void tsi_ssl_client_handshaker_factory_unref(
|
1685
|
-
tsi_ssl_client_handshaker_factory*
|
1686
|
-
if (
|
1687
|
-
tsi_ssl_handshaker_factory_unref(&
|
1624
|
+
tsi_ssl_client_handshaker_factory* factory) {
|
1625
|
+
if (factory == nullptr) return;
|
1626
|
+
tsi_ssl_handshaker_factory_unref(&factory->base);
|
1688
1627
|
}
|
1689
1628
|
|
1690
1629
|
static void tsi_ssl_client_handshaker_factory_destroy(
|
@@ -1695,6 +1634,7 @@ static void tsi_ssl_client_handshaker_factory_destroy(
|
|
1695
1634
|
if (self->ssl_context != nullptr) SSL_CTX_free(self->ssl_context);
|
1696
1635
|
if (self->alpn_protocol_list != nullptr) gpr_free(self->alpn_protocol_list);
|
1697
1636
|
self->session_cache.reset();
|
1637
|
+
self->key_logger.reset();
|
1698
1638
|
gpr_free(self);
|
1699
1639
|
}
|
1700
1640
|
|
@@ -1703,26 +1643,28 @@ static int client_handshaker_factory_npn_callback(
|
|
1703
1643
|
const unsigned char* in, unsigned int inlen, void* arg) {
|
1704
1644
|
tsi_ssl_client_handshaker_factory* factory =
|
1705
1645
|
static_cast<tsi_ssl_client_handshaker_factory*>(arg);
|
1706
|
-
return select_protocol_list(
|
1646
|
+
return select_protocol_list(const_cast<const unsigned char**>(out), outlen,
|
1707
1647
|
factory->alpn_protocol_list,
|
1708
1648
|
factory->alpn_protocol_list_length, in, inlen);
|
1709
1649
|
}
|
1710
1650
|
|
1711
|
-
|
1651
|
+
// --- tsi_ssl_server_handshaker_factory methods implementation. ---
|
1712
1652
|
|
1713
1653
|
tsi_result tsi_ssl_server_handshaker_factory_create_handshaker(
|
1714
|
-
tsi_ssl_server_handshaker_factory*
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1654
|
+
tsi_ssl_server_handshaker_factory* factory, size_t network_bio_buf_size,
|
1655
|
+
size_t ssl_bio_buf_size, tsi_handshaker** handshaker) {
|
1656
|
+
if (factory->ssl_context_count == 0) return TSI_INVALID_ARGUMENT;
|
1657
|
+
// Create the handshaker with the first context. We will switch if needed
|
1658
|
+
// because of SNI in ssl_server_handshaker_factory_servername_callback.
|
1659
|
+
return create_tsi_ssl_handshaker(factory->ssl_contexts[0], 0, nullptr,
|
1660
|
+
network_bio_buf_size, ssl_bio_buf_size,
|
1661
|
+
&factory->base, handshaker);
|
1720
1662
|
}
|
1721
1663
|
|
1722
1664
|
void tsi_ssl_server_handshaker_factory_unref(
|
1723
|
-
tsi_ssl_server_handshaker_factory*
|
1724
|
-
if (
|
1725
|
-
tsi_ssl_handshaker_factory_unref(&
|
1665
|
+
tsi_ssl_server_handshaker_factory* factory) {
|
1666
|
+
if (factory == nullptr) return;
|
1667
|
+
tsi_ssl_handshaker_factory_unref(&factory->base);
|
1726
1668
|
}
|
1727
1669
|
|
1728
1670
|
static void tsi_ssl_server_handshaker_factory_destroy(
|
@@ -1742,6 +1684,7 @@ static void tsi_ssl_server_handshaker_factory_destroy(
|
|
1742
1684
|
gpr_free(self->ssl_context_x509_subject_names);
|
1743
1685
|
}
|
1744
1686
|
if (self->alpn_protocol_list != nullptr) gpr_free(self->alpn_protocol_list);
|
1687
|
+
self->key_logger.reset();
|
1745
1688
|
gpr_free(self);
|
1746
1689
|
}
|
1747
1690
|
|
@@ -1749,7 +1692,7 @@ static int does_entry_match_name(absl::string_view entry,
|
|
1749
1692
|
absl::string_view name) {
|
1750
1693
|
if (entry.empty()) return 0;
|
1751
1694
|
|
1752
|
-
|
1695
|
+
// Take care of '.' terminations.
|
1753
1696
|
if (name.back() == '.') {
|
1754
1697
|
name.remove_suffix(1);
|
1755
1698
|
}
|
@@ -1759,12 +1702,12 @@ static int does_entry_match_name(absl::string_view entry,
|
|
1759
1702
|
}
|
1760
1703
|
|
1761
1704
|
if (absl::EqualsIgnoreCase(name, entry)) {
|
1762
|
-
return 1;
|
1705
|
+
return 1; // Perfect match.
|
1763
1706
|
}
|
1764
1707
|
if (entry.front() != '*') return 0;
|
1765
1708
|
|
1766
|
-
|
1767
|
-
if (entry.size() < 3 || entry[1] != '.') {
|
1709
|
+
// Wildchar subdomain matching.
|
1710
|
+
if (entry.size() < 3 || entry[1] != '.') { // At least *.x
|
1768
1711
|
gpr_log(GPR_ERROR, "Invalid wildchar entry.");
|
1769
1712
|
return 0;
|
1770
1713
|
}
|
@@ -1772,8 +1715,8 @@ static int does_entry_match_name(absl::string_view entry,
|
|
1772
1715
|
if (name_subdomain_pos == absl::string_view::npos) return 0;
|
1773
1716
|
if (name_subdomain_pos >= name.size() - 2) return 0;
|
1774
1717
|
absl::string_view name_subdomain =
|
1775
|
-
name.substr(name_subdomain_pos + 1);
|
1776
|
-
entry.remove_prefix(2);
|
1718
|
+
name.substr(name_subdomain_pos + 1); // Starts after the dot.
|
1719
|
+
entry.remove_prefix(2); // Remove *.
|
1777
1720
|
size_t dot = name_subdomain.find('.');
|
1778
1721
|
if (dot == absl::string_view::npos || dot == name_subdomain.size() - 1) {
|
1779
1722
|
gpr_log(GPR_ERROR, "Invalid toplevel subdomain: %s",
|
@@ -1818,7 +1761,7 @@ static int server_handshaker_factory_alpn_callback(
|
|
1818
1761
|
factory->alpn_protocol_list,
|
1819
1762
|
factory->alpn_protocol_list_length);
|
1820
1763
|
}
|
1821
|
-
#endif
|
1764
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
1822
1765
|
|
1823
1766
|
static int server_handshaker_factory_npn_advertised_callback(
|
1824
1767
|
SSL* /*ssl*/, const unsigned char** out, unsigned int* outlen, void* arg) {
|
@@ -1854,7 +1797,34 @@ static int server_handshaker_factory_new_session_callback(
|
|
1854
1797
|
return 1;
|
1855
1798
|
}
|
1856
1799
|
|
1857
|
-
|
1800
|
+
/// This callback is invoked at client or server when ssl/tls handshakes
|
1801
|
+
/// complete and keylogging is enabled.
|
1802
|
+
template <typename T>
|
1803
|
+
static void ssl_keylogging_callback(const SSL* ssl, const char* info) {
|
1804
|
+
SSL_CTX* ssl_context = SSL_get_SSL_CTX(ssl);
|
1805
|
+
GPR_ASSERT(ssl_context != nullptr);
|
1806
|
+
void* arg = SSL_CTX_get_ex_data(ssl_context, g_ssl_ctx_ex_factory_index);
|
1807
|
+
T* factory = static_cast<T*>(arg);
|
1808
|
+
factory->key_logger->LogSessionKeys(ssl_context, info);
|
1809
|
+
}
|
1810
|
+
|
1811
|
+
// This callback is invoked when the CRL has been verified and will soft-fail
|
1812
|
+
// errors in verification depending on certain error types.
|
1813
|
+
static int verify_cb(int ok, X509_STORE_CTX* ctx) {
|
1814
|
+
int cert_error = X509_STORE_CTX_get_error(ctx);
|
1815
|
+
if (cert_error == X509_V_ERR_UNABLE_TO_GET_CRL) {
|
1816
|
+
gpr_log(
|
1817
|
+
GPR_INFO,
|
1818
|
+
"Certificate verification failed to get CRL files. Ignoring error.");
|
1819
|
+
return 1;
|
1820
|
+
}
|
1821
|
+
if (cert_error != 0) {
|
1822
|
+
gpr_log(GPR_ERROR, "Certificate verify failed with code %d", cert_error);
|
1823
|
+
}
|
1824
|
+
return ok;
|
1825
|
+
}
|
1826
|
+
|
1827
|
+
// --- tsi_ssl_handshaker_factory constructors. ---
|
1858
1828
|
|
1859
1829
|
static tsi_ssl_handshaker_factory_vtable client_handshaker_factory_vtable = {
|
1860
1830
|
tsi_ssl_client_handshaker_factory_destroy};
|
@@ -1894,14 +1864,16 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
1894
1864
|
#else
|
1895
1865
|
ssl_context = SSL_CTX_new(TLSv1_2_method());
|
1896
1866
|
#endif
|
1897
|
-
result = tsi_set_min_and_max_tls_versions(
|
1898
|
-
ssl_context, options->min_tls_version, options->max_tls_version);
|
1899
|
-
if (result != TSI_OK) return result;
|
1900
1867
|
if (ssl_context == nullptr) {
|
1868
|
+
grpc_core::LogSslErrorStack();
|
1901
1869
|
gpr_log(GPR_ERROR, "Could not create ssl context.");
|
1902
1870
|
return TSI_INVALID_ARGUMENT;
|
1903
1871
|
}
|
1904
1872
|
|
1873
|
+
result = tsi_set_min_and_max_tls_versions(
|
1874
|
+
ssl_context, options->min_tls_version, options->max_tls_version);
|
1875
|
+
if (result != TSI_OK) return result;
|
1876
|
+
|
1905
1877
|
impl = static_cast<tsi_ssl_client_handshaker_factory*>(
|
1906
1878
|
gpr_zalloc(sizeof(*impl)));
|
1907
1879
|
tsi_ssl_handshaker_factory_init(&impl->base);
|
@@ -1912,12 +1884,27 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
1912
1884
|
impl->session_cache =
|
1913
1885
|
reinterpret_cast<tsi::SslSessionLRUCache*>(options->session_cache)
|
1914
1886
|
->Ref();
|
1915
|
-
SSL_CTX_set_ex_data(ssl_context, g_ssl_ctx_ex_factory_index, impl);
|
1916
1887
|
SSL_CTX_sess_set_new_cb(ssl_context,
|
1917
1888
|
server_handshaker_factory_new_session_callback);
|
1918
1889
|
SSL_CTX_set_session_cache_mode(ssl_context, SSL_SESS_CACHE_CLIENT);
|
1919
1890
|
}
|
1920
1891
|
|
1892
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10101000 && !defined(LIBRESSL_VERSION_NUMBER)
|
1893
|
+
if (options->key_logger != nullptr) {
|
1894
|
+
impl->key_logger = options->key_logger->Ref();
|
1895
|
+
// SSL_CTX_set_keylog_callback is set here to register callback
|
1896
|
+
// when ssl/tls handshakes complete.
|
1897
|
+
SSL_CTX_set_keylog_callback(
|
1898
|
+
ssl_context,
|
1899
|
+
ssl_keylogging_callback<tsi_ssl_client_handshaker_factory>);
|
1900
|
+
}
|
1901
|
+
#endif
|
1902
|
+
|
1903
|
+
if (options->session_cache != nullptr || options->key_logger != nullptr) {
|
1904
|
+
// Need to set factory at g_ssl_ctx_ex_factory_index
|
1905
|
+
SSL_CTX_set_ex_data(ssl_context, g_ssl_ctx_ex_factory_index, impl);
|
1906
|
+
}
|
1907
|
+
|
1921
1908
|
do {
|
1922
1909
|
result = populate_ssl_context(ssl_context, options->pem_key_cert_pair,
|
1923
1910
|
options->cipher_suites);
|
@@ -1958,11 +1945,11 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
1958
1945
|
result = TSI_INVALID_ARGUMENT;
|
1959
1946
|
break;
|
1960
1947
|
}
|
1961
|
-
#endif
|
1948
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
1962
1949
|
SSL_CTX_set_next_proto_select_cb(
|
1963
1950
|
ssl_context, client_handshaker_factory_npn_callback, impl);
|
1964
1951
|
}
|
1965
|
-
} while (
|
1952
|
+
} while (false);
|
1966
1953
|
if (result != TSI_OK) {
|
1967
1954
|
tsi_ssl_handshaker_factory_unref(&impl->base);
|
1968
1955
|
return result;
|
@@ -1972,7 +1959,24 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
1972
1959
|
} else {
|
1973
1960
|
SSL_CTX_set_verify(ssl_context, SSL_VERIFY_PEER, nullptr);
|
1974
1961
|
}
|
1975
|
-
|
1962
|
+
|
1963
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
1964
|
+
if (options->crl_directory != nullptr &&
|
1965
|
+
strcmp(options->crl_directory, "") != 0) {
|
1966
|
+
gpr_log(GPR_INFO, "enabling client CRL checking with path: %s",
|
1967
|
+
options->crl_directory);
|
1968
|
+
X509_STORE* cert_store = SSL_CTX_get_cert_store(ssl_context);
|
1969
|
+
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
1970
|
+
if (!X509_STORE_load_locations(cert_store, nullptr,
|
1971
|
+
options->crl_directory)) {
|
1972
|
+
gpr_log(GPR_ERROR, "Failed to load CRL File from directory.");
|
1973
|
+
} else {
|
1974
|
+
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
1975
|
+
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
|
1976
|
+
gpr_log(GPR_INFO, "enabled client side CRL checking.");
|
1977
|
+
}
|
1978
|
+
}
|
1979
|
+
#endif
|
1976
1980
|
|
1977
1981
|
*factory = impl;
|
1978
1982
|
return TSI_OK;
|
@@ -2054,6 +2058,10 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2054
2058
|
}
|
2055
2059
|
}
|
2056
2060
|
|
2061
|
+
if (options->key_logger != nullptr) {
|
2062
|
+
impl->key_logger = options->key_logger->Ref();
|
2063
|
+
}
|
2064
|
+
|
2057
2065
|
for (i = 0; i < options->num_key_cert_pairs; i++) {
|
2058
2066
|
do {
|
2059
2067
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
@@ -2061,15 +2069,18 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2061
2069
|
#else
|
2062
2070
|
impl->ssl_contexts[i] = SSL_CTX_new(TLSv1_2_method());
|
2063
2071
|
#endif
|
2064
|
-
result = tsi_set_min_and_max_tls_versions(impl->ssl_contexts[i],
|
2065
|
-
options->min_tls_version,
|
2066
|
-
options->max_tls_version);
|
2067
|
-
if (result != TSI_OK) return result;
|
2068
2072
|
if (impl->ssl_contexts[i] == nullptr) {
|
2073
|
+
grpc_core::LogSslErrorStack();
|
2069
2074
|
gpr_log(GPR_ERROR, "Could not create ssl context.");
|
2070
2075
|
result = TSI_OUT_OF_RESOURCES;
|
2071
2076
|
break;
|
2072
2077
|
}
|
2078
|
+
|
2079
|
+
result = tsi_set_min_and_max_tls_versions(impl->ssl_contexts[i],
|
2080
|
+
options->min_tls_version,
|
2081
|
+
options->max_tls_version);
|
2082
|
+
if (result != TSI_OK) return result;
|
2083
|
+
|
2073
2084
|
result = populate_ssl_context(impl->ssl_contexts[i],
|
2074
2085
|
&options->pem_key_cert_pairs[i],
|
2075
2086
|
options->cipher_suites);
|
@@ -2131,7 +2142,24 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2131
2142
|
nullptr);
|
2132
2143
|
break;
|
2133
2144
|
}
|
2134
|
-
|
2145
|
+
|
2146
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
2147
|
+
if (options->crl_directory != nullptr &&
|
2148
|
+
strcmp(options->crl_directory, "") != 0) {
|
2149
|
+
gpr_log(GPR_INFO, "enabling server CRL checking with path %s",
|
2150
|
+
options->crl_directory);
|
2151
|
+
X509_STORE* cert_store = SSL_CTX_get_cert_store(impl->ssl_contexts[i]);
|
2152
|
+
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
2153
|
+
if (!X509_STORE_load_locations(cert_store, nullptr,
|
2154
|
+
options->crl_directory)) {
|
2155
|
+
gpr_log(GPR_ERROR, "Failed to load CRL File from directory.");
|
2156
|
+
} else {
|
2157
|
+
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
2158
|
+
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
|
2159
|
+
gpr_log(GPR_INFO, "enabled server CRL checking.");
|
2160
|
+
}
|
2161
|
+
}
|
2162
|
+
#endif
|
2135
2163
|
|
2136
2164
|
result = tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
2137
2165
|
options->pem_key_cert_pairs[i].cert_chain,
|
@@ -2145,11 +2173,25 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2145
2173
|
#if TSI_OPENSSL_ALPN_SUPPORT
|
2146
2174
|
SSL_CTX_set_alpn_select_cb(impl->ssl_contexts[i],
|
2147
2175
|
server_handshaker_factory_alpn_callback, impl);
|
2148
|
-
#endif
|
2176
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
2149
2177
|
SSL_CTX_set_next_protos_advertised_cb(
|
2150
2178
|
impl->ssl_contexts[i],
|
2151
2179
|
server_handshaker_factory_npn_advertised_callback, impl);
|
2152
|
-
|
2180
|
+
|
2181
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10101000 && !defined(LIBRESSL_VERSION_NUMBER)
|
2182
|
+
// Register factory at index
|
2183
|
+
if (options->key_logger != nullptr) {
|
2184
|
+
// Need to set factory at g_ssl_ctx_ex_factory_index
|
2185
|
+
SSL_CTX_set_ex_data(impl->ssl_contexts[i], g_ssl_ctx_ex_factory_index,
|
2186
|
+
impl);
|
2187
|
+
// SSL_CTX_set_keylog_callback is set here to register callback
|
2188
|
+
// when ssl/tls handshakes complete.
|
2189
|
+
SSL_CTX_set_keylog_callback(
|
2190
|
+
impl->ssl_contexts[i],
|
2191
|
+
ssl_keylogging_callback<tsi_ssl_server_handshaker_factory>);
|
2192
|
+
}
|
2193
|
+
#endif
|
2194
|
+
} while (false);
|
2153
2195
|
|
2154
2196
|
if (result != TSI_OK) {
|
2155
2197
|
tsi_ssl_handshaker_factory_unref(&impl->base);
|
@@ -2161,7 +2203,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2161
2203
|
return TSI_OK;
|
2162
2204
|
}
|
2163
2205
|
|
2164
|
-
|
2206
|
+
// --- tsi_ssl utils. ---
|
2165
2207
|
|
2166
2208
|
int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
2167
2209
|
size_t i = 0;
|
@@ -2169,7 +2211,7 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2169
2211
|
const tsi_peer_property* cn_property = nullptr;
|
2170
2212
|
int like_ip = looks_like_ip_address(name);
|
2171
2213
|
|
2172
|
-
|
2214
|
+
// Check the SAN first.
|
2173
2215
|
for (i = 0; i < peer->property_count; i++) {
|
2174
2216
|
const tsi_peer_property* property = &peer->properties[i];
|
2175
2217
|
if (property->name == nullptr) continue;
|
@@ -2181,7 +2223,7 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2181
2223
|
if (!like_ip && does_entry_match_name(entry, name)) {
|
2182
2224
|
return 1;
|
2183
2225
|
} else if (like_ip && name == entry) {
|
2184
|
-
|
2226
|
+
// IP Addresses are exact matches only.
|
2185
2227
|
return 1;
|
2186
2228
|
}
|
2187
2229
|
} else if (strcmp(property->name,
|
@@ -2190,7 +2232,7 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2190
2232
|
}
|
2191
2233
|
}
|
2192
2234
|
|
2193
|
-
|
2235
|
+
// If there's no SAN, try the CN, but only if its not like an IP Address
|
2194
2236
|
if (san_count == 0 && cn_property != nullptr && !like_ip) {
|
2195
2237
|
if (does_entry_match_name(absl::string_view(cn_property->value.data,
|
2196
2238
|
cn_property->value.length),
|
@@ -2199,10 +2241,10 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2199
2241
|
}
|
2200
2242
|
}
|
2201
2243
|
|
2202
|
-
return 0;
|
2244
|
+
return 0; // Not found.
|
2203
2245
|
}
|
2204
2246
|
|
2205
|
-
|
2247
|
+
// --- Testing support. ---
|
2206
2248
|
const tsi_ssl_handshaker_factory_vtable* tsi_ssl_handshaker_factory_swap_vtable(
|
2207
2249
|
tsi_ssl_handshaker_factory* factory,
|
2208
2250
|
tsi_ssl_handshaker_factory_vtable* new_vtable) {
|