grpc 1.30.1 → 1.40.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 +1195 -18269
- data/etc/roots.pem +257 -573
- data/include/grpc/compression.h +1 -1
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -0
- data/include/grpc/grpc.h +38 -9
- data/include/grpc/grpc_security.h +291 -186
- data/include/grpc/grpc_security_constants.h +18 -0
- data/include/grpc/impl/codegen/README.md +22 -0
- data/include/grpc/impl/codegen/atm_windows.h +4 -0
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/include/grpc/impl/codegen/grpc_types.h +60 -31
- data/include/grpc/impl/codegen/log.h +0 -2
- data/include/grpc/impl/codegen/port_platform.h +75 -87
- data/include/grpc/impl/codegen/sync_windows.h +4 -0
- data/include/grpc/module.modulemap +14 -14
- data/include/grpc/slice_buffer.h +3 -3
- data/include/grpc/support/sync.h +3 -3
- data/include/grpc/support/time.h +7 -7
- data/src/core/ext/filters/client_channel/backend_metric.cc +14 -13
- data/src/core/ext/filters/client_channel/backup_poller.cc +6 -5
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +2112 -2959
- data/src/core/ext/filters/client_channel/client_channel.h +514 -62
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -4
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.cc +58 -0
- data/src/core/ext/filters/client_channel/config_selector.h +146 -0
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +190 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +26 -122
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +46 -35
- data/src/core/ext/filters/client_channel/health/health_check_client.h +34 -33
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +39 -37
- data/src/core/ext/filters/client_channel/http_proxy.cc +42 -24
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +10 -7
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +301 -267
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +0 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -40
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +34 -37
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +102 -51
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +757 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +37 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +18 -24
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +15 -37
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +41 -34
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +472 -145
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
- 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 +787 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +700 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1372 -0
- data/src/core/ext/filters/client_channel/lb_policy.cc +11 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +80 -53
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +16 -10
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +71 -78
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -33
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +11 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +14 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +24 -20
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +495 -79
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +6 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +45 -36
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +40 -45
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +8 -6
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +384 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +38 -31
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +883 -71
- data/src/core/ext/filters/client_channel/{xds/xds_channel_args.h → resolver/xds/xds_resolver.h} +9 -7
- data/src/core/ext/filters/client_channel/resolver.cc +7 -5
- data/src/core/ext/filters/client_channel/resolver.h +7 -15
- data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
- data/src/core/ext/filters/client_channel/resolver_registry.cc +49 -49
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +50 -303
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +26 -54
- data/src/core/ext/filters/client_channel/retry_filter.cc +2611 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
- data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
- data/src/core/ext/filters/client_channel/server_address.cc +129 -7
- data/src/core/ext/filters/client_channel/server_address.h +75 -21
- data/src/core/ext/filters/client_channel/service_config.cc +27 -21
- data/src/core/ext/filters/client_channel/service_config.h +11 -7
- data/src/core/ext/filters/client_channel/service_config_call_data.h +60 -2
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +143 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +14 -12
- data/src/core/ext/filters/client_channel/service_config_parser.h +12 -6
- data/src/core/ext/filters/client_channel/subchannel.cc +188 -236
- data/src/core/ext/filters/client_channel/subchannel.h +88 -113
- data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -10
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +18 -17
- data/src/core/ext/filters/deadline/deadline_filter.cc +94 -86
- data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +501 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +39 -29
- data/src/core/ext/filters/http/client_authority_filter.cc +9 -9
- data/src/core/ext/filters/http/http_filters_plugin.cc +8 -4
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +91 -50
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +3 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +30 -26
- data/src/core/ext/filters/max_age/max_age_filter.cc +50 -44
- data/src/core/ext/filters/message_size/message_size_filter.cc +72 -92
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -4
- data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
- data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +90 -34
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +22 -5
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +23 -10
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +23 -11
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +38 -50
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +803 -352
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +16 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +14 -5
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +22 -20
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +67 -24
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +457 -447
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +36 -33
- data/src/core/ext/transport/chttp2/transport/flow_control.h +34 -26
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +26 -25
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +21 -23
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -14
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +8 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +19 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +681 -765
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +17 -20
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +57 -30
- data/src/core/ext/transport/chttp2/transport/parsing.cc +181 -180
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +24 -25
- data/src/core/ext/transport/inproc/inproc_transport.cc +154 -88
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +10 -4
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +243 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +865 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +371 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1452 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +253 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +461 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1850 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +77 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +364 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +428 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +370 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1126 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +388 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +839 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +170 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +767 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +239 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +982 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/core → config/core/v3}/socket_option.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +126 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +243 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +305 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +367 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +33 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +73 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +604 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +161 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +638 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +179 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +662 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +82 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +294 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +953 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3862 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +159 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +122 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +285 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +117 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +404 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1671 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +19 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +35 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +116 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +475 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +73 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +219 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +146 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +621 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/rds.upb.c → service/cluster/v3/cds.upb.c} +6 -9
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/{v2 → v3}/ads.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +146 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +499 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/endpoint/v3}/eds.upb.c +6 -10
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/{api/v2 → service/listener/v3}/lds.upb.c +6 -10
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +151 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/srds.upb.c → service/route/v3/rds.upb.c} +6 -7
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/{api/v2/cds.upb.c → service/route/v3/srds.upb.c} +6 -7
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +56 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +121 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +438 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +128 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +84 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +65 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +166 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +207 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +301 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +283 -0
- data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +2 -2
- data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +9 -9
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +40 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +99 -0
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +130 -0
- data/src/core/ext/upb-generated/envoy/type/{semantic_version.upb.c → v3/semantic_version.upb.c} +7 -6
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +68 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +251 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +871 -0
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +52 -32
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +12 -6
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +106 -106
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +688 -499
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +12 -6
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +8 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +5 -5
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +55 -57
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +12 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +82 -28
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +17 -10
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +40 -45
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +43 -43
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +236 -184
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +29 -13
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +19 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +122 -62
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +30 -12
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +12 -6
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +60 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +9 -9
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +48 -68
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +133 -117
- data/src/core/ext/upb-generated/validate/validate.upb.h +881 -645
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +46 -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 +41 -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 +252 -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 +424 -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 +100 -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 +570 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -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 +136 -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/core/v3/address.upbdefs.c +127 -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 +56 -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 +300 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +144 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -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 +66 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -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 +233 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -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 +287 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +43 -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 +59 -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 +59 -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 +72 -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 +52 -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 +107 -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 +113 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -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 +50 -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 +205 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +201 -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 +90 -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 +67 -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/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +964 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +295 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -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/trace/v3/http_tracer.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -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 +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +123 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +79 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +571 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +125 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +44 -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 +178 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +97 -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 +246 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -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 +142 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +73 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +80 -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/route/v3/rds.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +163 -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/path_transformation.upbdefs.c +64 -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/metadata.upbdefs.c +64 -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 +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -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 +53 -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 +76 -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 +69 -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 +63 -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 +81 -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 +92 -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 +95 -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/http.upbdefs.c +34 -0
- data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -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 +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.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/http.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -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 +386 -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 +40 -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 +37 -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 +65 -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 +40 -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 +66 -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 +42 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -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 +56 -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 +33 -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 +49 -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 +43 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +332 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -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 +45 -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/resource.upbdefs.c +49 -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 +67 -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 +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +61 -0
- data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
- data/src/core/ext/xds/certificate_provider_registry.h +57 -0
- data/src/core/ext/xds/certificate_provider_store.cc +87 -0
- data/src/core/ext/xds/certificate_provider_store.h +112 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
- data/src/core/ext/xds/xds_api.cc +4124 -0
- data/src/core/ext/xds/xds_api.h +709 -0
- data/src/core/ext/xds/xds_bootstrap.cc +496 -0
- data/src/core/ext/xds/xds_bootstrap.h +115 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +405 -0
- data/src/core/ext/xds/xds_certificate_provider.h +151 -0
- data/src/core/ext/xds/xds_channel_args.h +32 -0
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client.cc +1056 -884
- data/src/core/ext/xds/xds_client.h +375 -0
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.cc +63 -19
- data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +52 -23
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +115 -0
- data/src/core/ext/xds/xds_http_filters.h +133 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +546 -0
- data/src/core/{ext/filters/client_channel → lib/address_utils}/parse_address.cc +129 -45
- data/src/core/lib/address_utils/parse_address.h +77 -0
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +138 -19
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +38 -7
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_args.cc +9 -8
- data/src/core/lib/channel/channel_args.h +0 -1
- data/src/core/lib/channel/channel_stack.cc +22 -9
- data/src/core/lib/channel/channel_stack.h +18 -10
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channel_trace.cc +6 -8
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +148 -99
- data/src/core/lib/channel/channelz.h +47 -24
- data/src/core/lib/channel/channelz_registry.cc +29 -12
- data/src/core/lib/channel/channelz_registry.h +3 -1
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +11 -52
- data/src/core/lib/channel/handshaker.h +8 -25
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +9 -0
- data/src/core/lib/compression/compression.cc +8 -4
- data/src/core/lib/compression/compression_args.cc +3 -2
- data/src/core/lib/compression/compression_internal.cc +10 -5
- data/src/core/lib/compression/compression_internal.h +2 -1
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.cc +1 -3
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +3 -3
- data/src/core/lib/debug/stats_data.cc +1 -0
- data/src/core/lib/debug/stats_data.h +13 -13
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/alloc.cc +3 -2
- data/src/core/lib/gpr/cpu_iphone.cc +10 -2
- data/src/core/lib/gpr/log.cc +59 -17
- data/src/core/lib/gpr/log_linux.cc +23 -9
- data/src/core/lib/gpr/log_posix.cc +19 -7
- data/src/core/lib/gpr/log_windows.cc +18 -4
- data/src/core/lib/gpr/murmur_hash.cc +5 -3
- data/src/core/lib/gpr/spinlock.h +10 -2
- data/src/core/lib/gpr/string.cc +33 -31
- data/src/core/lib/gpr/string.h +9 -8
- data/src/core/lib/gpr/sync.cc +4 -4
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_posix.cc +2 -8
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gpr/time.cc +12 -12
- data/src/core/lib/gpr/time_precise.cc +5 -2
- data/src/core/lib/gpr/time_precise.h +6 -2
- data/src/core/lib/gpr/tls.h +4 -0
- data/src/core/lib/gpr/tls_msvc.h +2 -0
- data/src/core/lib/gpr/tls_stdcpp.h +48 -0
- data/src/core/lib/gpr/useful.h +5 -4
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/arena.h +3 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
- data/src/core/lib/gprpp/examine_stack.cc +43 -0
- data/src/core/lib/gprpp/examine_stack.h +46 -0
- data/src/core/lib/gprpp/fork.cc +2 -2
- data/src/core/lib/gprpp/global_config_env.cc +8 -6
- data/src/core/lib/gprpp/manual_constructor.h +2 -2
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/orphanable.h +7 -11
- data/src/core/lib/gprpp/ref_counted.h +105 -68
- data/src/core/lib/gprpp/ref_counted_ptr.h +168 -7
- data/src/core/lib/gprpp/stat.h +38 -0
- data/src/core/lib/gprpp/stat_posix.cc +49 -0
- data/src/core/lib/gprpp/stat_windows.cc +48 -0
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/gprpp/sync.h +104 -43
- data/src/core/lib/gprpp/thd.h +3 -3
- data/src/core/lib/gprpp/thd_posix.cc +42 -37
- data/src/core/lib/gprpp/thd_windows.cc +3 -1
- data/src/core/lib/gprpp/time_util.cc +77 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/http/httpcli.cc +25 -22
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +19 -15
- data/src/core/lib/http/parser.cc +63 -43
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +8 -10
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +21 -15
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +6 -5
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +16 -13
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +6 -2
- data/src/core/lib/iomgr/endpoint.h +10 -6
- data/src/core/lib/iomgr/endpoint_cfstream.cc +46 -23
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +10 -10
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +185 -73
- data/src/core/lib/iomgr/error.h +218 -107
- data/src/core/lib/iomgr/error_cfstream.cc +12 -10
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +6 -2
- data/src/core/lib/iomgr/ev_apple.cc +16 -13
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +47 -41
- data/src/core/lib/iomgr/ev_epollex_linux.cc +92 -87
- data/src/core/lib/iomgr/ev_poll_posix.cc +41 -35
- data/src/core/lib/iomgr/ev_posix.cc +12 -11
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +19 -7
- data/src/core/lib/iomgr/exec_ctx.h +20 -17
- data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +6 -6
- data/src/core/lib/iomgr/executor.cc +10 -9
- data/src/core/lib/iomgr/executor.h +3 -3
- data/src/core/lib/iomgr/iomgr.cc +3 -3
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -13
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +14 -0
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +20 -15
- data/src/core/lib/iomgr/lockfree_event.h +2 -2
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +8 -26
- data/src/core/lib/iomgr/python_util.h +5 -5
- data/src/core/lib/iomgr/resolve_address.cc +12 -8
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +23 -27
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +4 -8
- data/src/core/lib/iomgr/resolve_address_windows.cc +12 -12
- data/src/core/lib/iomgr/resource_quota.cc +48 -42
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
- data/src/core/lib/iomgr/socket_mutator.cc +18 -4
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +120 -77
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/socket_windows.cc +4 -5
- data/src/core/lib/iomgr/tcp_client.cc +3 -3
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +13 -15
- data/src/core/lib/iomgr/tcp_client_custom.cc +17 -20
- data/src/core/lib/iomgr/tcp_client_posix.cc +48 -54
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +16 -14
- data/src/core/lib/iomgr/tcp_custom.cc +67 -48
- data/src/core/lib/iomgr/tcp_custom.h +14 -13
- data/src/core/lib/iomgr/tcp_posix.cc +118 -94
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +9 -10
- data/src/core/lib/iomgr/tcp_server.h +19 -16
- data/src/core/lib/iomgr/tcp_server_custom.cc +57 -58
- data/src/core/lib/iomgr/tcp_server_posix.cc +62 -61
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +16 -16
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +42 -41
- data/src/core/lib/iomgr/tcp_uv.cc +27 -25
- data/src/core/lib/iomgr/tcp_windows.cc +39 -23
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +7 -6
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +24 -23
- data/src/core/lib/iomgr/timer_manager.cc +4 -4
- data/src/core/lib/iomgr/udp_server.cc +46 -45
- data/src/core/lib/iomgr/udp_server.h +6 -4
- data/src/core/lib/iomgr/unix_sockets_posix.cc +36 -30
- data/src/core/lib/iomgr/unix_sockets_posix.h +9 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +20 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -6
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +13 -3
- data/src/core/lib/json/json_reader.cc +33 -31
- data/src/core/lib/json/json_util.cc +58 -0
- data/src/core/lib/json/json_util.h +204 -0
- data/src/core/lib/json/json_writer.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +327 -0
- data/src/core/lib/matchers/matchers.h +161 -0
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/context/security_context.cc +4 -3
- data/src/core/lib/security/context/security_context.h +3 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.cc +7 -7
- data/src/core/lib/security/credentials/credentials.h +12 -9
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +417 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +82 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +214 -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 +500 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +121 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +60 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -6
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +95 -65
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +5 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +10 -7
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +6 -5
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +12 -9
- data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +78 -92
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +10 -9
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +12 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +27 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +12 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +347 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +454 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +145 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +82 -150
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +65 -185
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -13
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
- data/src/core/lib/security/credentials/tls/tls_utils.cc +123 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +244 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +33 -28
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +97 -0
- data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +25 -12
- data/src/core/lib/security/security_connector/security_connector.cc +6 -3
- data/src/core/lib/security/security_connector/security_connector.h +14 -7
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +38 -21
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +5 -0
- data/src/core/lib/security/security_connector/ssl_utils.cc +82 -33
- data/src/core/lib/security/security_connector/ssl_utils.h +29 -25
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +380 -312
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +141 -79
- data/src/core/lib/security/transport/client_auth_filter.cc +28 -19
- data/src/core/lib/security/transport/secure_endpoint.cc +13 -7
- data/src/core/lib/security/transport/security_handshaker.cc +81 -44
- data/src/core/lib/security/transport/server_auth_filter.cc +19 -12
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +14 -15
- data/src/core/lib/security/util/json_util.h +2 -1
- data/src/core/lib/slice/slice.cc +57 -7
- data/src/core/lib/slice/slice_buffer.cc +2 -1
- data/src/core/lib/slice/slice_intern.cc +11 -13
- data/src/core/lib/slice/slice_internal.h +4 -2
- data/src/core/lib/surface/call.cc +164 -136
- data/src/core/lib/surface/call.h +15 -3
- data/src/core/lib/surface/call_details.cc +8 -8
- data/src/core/lib/surface/channel.cc +55 -63
- data/src/core/lib/surface/channel.h +24 -7
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +96 -96
- data/src/core/lib/surface/completion_queue.h +18 -17
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +46 -32
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +51 -58
- data/src/core/lib/surface/lame_client.h +5 -0
- data/src/core/lib/surface/server.cc +1181 -1365
- data/src/core/lib/surface/server.h +463 -70
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +6 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +40 -0
- data/src/core/lib/transport/authority_override.h +37 -0
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -1
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +11 -11
- data/src/core/lib/transport/connectivity_state.cc +19 -14
- data/src/core/lib/transport/connectivity_state.h +26 -12
- data/src/core/lib/transport/error_utils.cc +33 -9
- data/src/core/lib/transport/error_utils.h +15 -3
- data/src/core/lib/transport/metadata.cc +16 -2
- data/src/core/lib/transport/metadata.h +2 -2
- data/src/core/lib/transport/metadata_batch.cc +76 -38
- data/src/core/lib/transport/metadata_batch.h +43 -21
- data/src/core/lib/transport/static_metadata.cc +296 -277
- data/src/core/lib/transport/static_metadata.h +80 -73
- data/src/core/lib/transport/status_metadata.cc +4 -3
- data/src/core/lib/transport/timeout_encoding.cc +4 -4
- data/src/core/lib/transport/transport.cc +9 -6
- data/src/core/lib/transport/transport.h +26 -11
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/lib/uri/uri_parser.cc +135 -258
- data/src/core/lib/uri/uri_parser.h +58 -20
- data/src/core/plugin_registry/grpc_plugin_registry.cc +61 -20
- data/src/core/tsi/alts/crypt/gsec.cc +5 -4
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +47 -42
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +74 -53
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +3 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
- data/src/core/tsi/fake_transport_security.cc +17 -5
- data/src/core/tsi/local_transport_security.cc +5 -1
- data/src/core/tsi/local_transport_security.h +6 -7
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -2
- data/src/core/tsi/ssl_transport_security.cc +199 -73
- data/src/core/tsi/ssl_transport_security.h +23 -12
- data/src/core/tsi/transport_security.cc +10 -8
- data/src/core/tsi/transport_security_interface.h +6 -1
- data/src/ruby/bin/math_services_pb.rb +5 -5
- data/src/ruby/ext/grpc/extconf.rb +17 -4
- data/src/ruby/ext/grpc/rb_call.c +3 -2
- data/src/ruby/ext/grpc/rb_call.h +4 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +54 -10
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +20 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +46 -18
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +87 -45
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +5 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +3 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +40 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +50 -16
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +42 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +21 -10
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +27 -7
- 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 +74 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
- data/third_party/abseil-cpp/absl/base/attributes.h +122 -41
- data/third_party/abseil-cpp/absl/base/call_once.h +3 -10
- data/third_party/abseil-cpp/absl/base/casts.h +9 -6
- data/third_party/abseil-cpp/absl/base/config.h +97 -26
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +442 -335
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +169 -0
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +31 -4
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +35 -33
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +17 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +36 -40
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +33 -30
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +11 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/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 +1 -3
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +47 -109
- data/third_party/abseil-cpp/absl/base/optimization.h +69 -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 +95 -40
- data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +38 -39
- data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +34 -9
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +274 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +322 -0
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +61 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1949 -0
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +199 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +80 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +253 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +147 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
- data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
- data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -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 +106 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +349 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.h +78 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +70 -0
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +1045 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +18 -10
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
- data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +69 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
- data/third_party/abseil-cpp/absl/status/status.cc +452 -0
- data/third_party/abseil-cpp/absl/status/status.h +878 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
- data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
- data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
- data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +7 -7
- data/third_party/abseil-cpp/absl/strings/cord.cc +1953 -0
- data/third_party/abseil-cpp/absl/strings/cord.h +1394 -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 +8 -8
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +543 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +236 -136
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +150 -64
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +16 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +29 -21
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +21 -14
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
- 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 +4 -12
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +22 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +27 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/str_split.h +39 -4
- data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
- data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
- data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +698 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +156 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +428 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +155 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2751 -0
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +1082 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
- data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
- data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
- 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 +93 -61
- 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 +33 -27
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
- 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_format.cc +136 -29
- 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 +136 -129
- 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/tzfile.h +2 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +41 -40
- data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
- data/third_party/abseil-cpp/absl/types/optional.h +9 -9
- data/third_party/abseil-cpp/absl/types/span.h +49 -36
- data/third_party/abseil-cpp/absl/types/variant.h +866 -0
- data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
- 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 +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +15 -20
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +23 -11
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -22
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +40 -86
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +6 -17
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
- 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 +158 -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 +8 -9
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_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 +120 -273
- 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 → dh_extra}/dh_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/is_fips.c → dsa/internal.h} +16 -11
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +12 -52
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +0 -22
- 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 +159 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
- 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 +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +21 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +198 -37
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +9 -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 +2 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +24 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +20 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +122 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -14
- 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 +56 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +116 -60
- 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 +231 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +584 -0
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +43 -15
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +131 -53
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
- 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/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/rsa_extra/rsa_asn1.c +1 -2
- 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 +110 -70
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +348 -423
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +217 -79
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
- 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 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +24 -39
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +27 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +52 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +67 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +9 -4
- 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 +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +71 -59
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +98 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +13 -10
- 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 +43 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
- 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 +21 -172
- 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 +25 -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 +68 -9
- 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 +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +25 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +32 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -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 +25 -36
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +127 -41
- 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 +11 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +25 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +119 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +746 -561
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +58 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +23 -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 +21 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +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 +62 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +16 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +104 -51
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +467 -125
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +28 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +43 -24
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1456 -780
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +595 -441
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +336 -25
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +97 -53
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +202 -109
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +174 -30
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +504 -162
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +55 -15
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +7 -12
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +162 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +26 -73
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -5
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +12 -8
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +47 -28
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +1070 -566
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +66 -9
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +183 -76
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +169 -89
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +379 -140
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
- data/third_party/re2/re2/bitmap256.h +117 -0
- data/third_party/re2/re2/bitstate.cc +385 -0
- data/third_party/re2/re2/compile.cc +1279 -0
- data/third_party/re2/re2/dfa.cc +2130 -0
- data/third_party/re2/re2/filtered_re2.cc +121 -0
- data/third_party/re2/re2/filtered_re2.h +109 -0
- data/third_party/re2/re2/mimics_pcre.cc +197 -0
- data/third_party/re2/re2/nfa.cc +713 -0
- data/third_party/re2/re2/onepass.cc +623 -0
- data/third_party/re2/re2/parse.cc +2464 -0
- data/third_party/re2/re2/perl_groups.cc +119 -0
- data/third_party/re2/re2/pod_array.h +55 -0
- data/third_party/re2/re2/prefilter.cc +710 -0
- data/third_party/re2/re2/prefilter.h +108 -0
- data/third_party/re2/re2/prefilter_tree.cc +407 -0
- data/third_party/re2/re2/prefilter_tree.h +139 -0
- data/third_party/re2/re2/prog.cc +988 -0
- data/third_party/re2/re2/prog.h +436 -0
- data/third_party/re2/re2/re2.cc +1362 -0
- data/third_party/re2/re2/re2.h +1002 -0
- data/third_party/re2/re2/regexp.cc +980 -0
- data/third_party/re2/re2/regexp.h +659 -0
- data/third_party/re2/re2/set.cc +154 -0
- data/third_party/re2/re2/set.h +80 -0
- data/third_party/re2/re2/simplify.cc +657 -0
- data/third_party/re2/re2/sparse_array.h +392 -0
- data/third_party/re2/re2/sparse_set.h +264 -0
- data/third_party/re2/re2/stringpiece.cc +65 -0
- data/third_party/re2/re2/stringpiece.h +210 -0
- data/third_party/re2/re2/tostring.cc +351 -0
- data/third_party/re2/re2/unicode_casefold.cc +582 -0
- data/third_party/re2/re2/unicode_casefold.h +78 -0
- data/third_party/re2/re2/unicode_groups.cc +6269 -0
- data/third_party/re2/re2/unicode_groups.h +67 -0
- data/third_party/re2/re2/walker-inl.h +246 -0
- data/third_party/re2/util/benchmark.h +156 -0
- data/third_party/re2/util/flags.h +26 -0
- data/third_party/re2/util/logging.h +109 -0
- data/third_party/re2/util/malloc_counter.h +19 -0
- data/third_party/re2/util/mix.h +41 -0
- data/third_party/re2/util/mutex.h +148 -0
- data/third_party/re2/util/pcre.cc +1025 -0
- data/third_party/re2/util/pcre.h +681 -0
- data/third_party/re2/util/rune.cc +260 -0
- data/third_party/re2/util/strutil.cc +149 -0
- data/third_party/re2/util/strutil.h +21 -0
- data/third_party/re2/util/test.h +50 -0
- data/third_party/re2/util/utf.h +44 -0
- data/third_party/re2/util/util.h +42 -0
- data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
- data/third_party/upb/upb/decode.c +604 -511
- data/third_party/upb/upb/decode.h +20 -1
- data/third_party/upb/upb/decode.int.h +163 -0
- data/third_party/upb/upb/decode_fast.c +1040 -0
- data/third_party/upb/upb/decode_fast.h +126 -0
- data/third_party/upb/upb/def.c +2178 -0
- data/third_party/upb/upb/def.h +315 -0
- data/third_party/upb/upb/def.hpp +439 -0
- data/third_party/upb/upb/encode.c +311 -211
- data/third_party/upb/upb/encode.h +27 -2
- data/third_party/upb/upb/msg.c +215 -70
- data/third_party/upb/upb/msg.h +558 -14
- data/third_party/upb/upb/port_def.inc +105 -63
- data/third_party/upb/upb/port_undef.inc +10 -7
- data/third_party/upb/upb/reflection.c +408 -0
- data/third_party/upb/upb/reflection.h +168 -0
- data/third_party/upb/upb/table.c +73 -269
- data/third_party/upb/upb/table.int.h +25 -57
- data/third_party/upb/upb/text_encode.c +421 -0
- data/third_party/upb/upb/text_encode.h +38 -0
- data/third_party/upb/upb/upb.c +138 -135
- data/third_party/upb/upb/upb.h +119 -146
- data/third_party/upb/upb/upb.hpp +88 -0
- data/third_party/upb/upb/upb.int.h +29 -0
- data/third_party/xxhash/xxhash.h +5325 -0
- metadata +698 -181
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -938
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -528
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -834
- data/src/core/ext/filters/client_channel/parse_address.h +0 -53
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -484
- 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/resolving_lb_policy.cc +0 -348
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -123
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -1906
- data/src/core/ext/filters/client_channel/xds/xds_api.h +0 -280
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +0 -342
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +0 -88
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +0 -46
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +0 -106
- data/src/core/ext/filters/client_channel/xds/xds_client.h +0 -309
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -35
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +0 -114
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +0 -418
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +0 -105
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +0 -378
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -74
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -218
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +0 -35
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +0 -55
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -305
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -403
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1447
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -328
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +0 -35
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +0 -78
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -313
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -897
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -96
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -322
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +0 -34
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +0 -72
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -197
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -642
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -172
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -673
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +0 -36
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -152
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -518
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +0 -89
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -129
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -392
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -91
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -266
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -324
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -92
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -240
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -145
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -527
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -43
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -112
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -109
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -399
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -18
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -33
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -815
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -3032
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -199
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -59
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -53
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -228
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -725
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -316
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1132
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +0 -33
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +0 -51
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +0 -125
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -50
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -54
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -134
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -144
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -88
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +0 -39
- data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -87
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +0 -50
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -112
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -62
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -89
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -249
- data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/gprpp/map.h +0 -53
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- 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/security/transport/target_authority_table.cc +0 -75
- data/src/core/lib/security/transport/target_authority_table.h +0 -40
- data/src/core/lib/slice/slice_hash_table.h +0 -199
- data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
- 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/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
- 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/upb/upb/generated_util.h +0 -105
- data/third_party/upb/upb/port.c +0 -26
@@ -152,7 +152,9 @@
|
|
152
152
|
#include <utility>
|
153
153
|
|
154
154
|
#include <openssl/aead.h>
|
155
|
+
#include <openssl/curve25519.h>
|
155
156
|
#include <openssl/err.h>
|
157
|
+
#include <openssl/hpke.h>
|
156
158
|
#include <openssl/lhash.h>
|
157
159
|
#include <openssl/mem.h>
|
158
160
|
#include <openssl/span.h>
|
@@ -276,9 +278,9 @@ class Array {
|
|
276
278
|
T &operator[](size_t i) { return data_[i]; }
|
277
279
|
|
278
280
|
T *begin() { return data_; }
|
279
|
-
const T *
|
281
|
+
const T *begin() const { return data_; }
|
280
282
|
T *end() { return data_ + size_; }
|
281
|
-
const T *
|
283
|
+
const T *end() const { return data_ + size_; }
|
282
284
|
|
283
285
|
void Reset() { Reset(nullptr, 0); }
|
284
286
|
|
@@ -345,6 +347,9 @@ class Array {
|
|
345
347
|
if (new_size > size_) {
|
346
348
|
abort();
|
347
349
|
}
|
350
|
+
for (size_t i = new_size; i < size_; i++) {
|
351
|
+
data_[i].~T();
|
352
|
+
}
|
348
353
|
size_ = new_size;
|
349
354
|
}
|
350
355
|
|
@@ -375,6 +380,8 @@ class GrowableArray {
|
|
375
380
|
return *this;
|
376
381
|
}
|
377
382
|
|
383
|
+
const T *data() const { return array_.data(); }
|
384
|
+
T *data() { return array_.data(); }
|
378
385
|
size_t size() const { return size_; }
|
379
386
|
bool empty() const { return size_ == 0; }
|
380
387
|
|
@@ -382,9 +389,14 @@ class GrowableArray {
|
|
382
389
|
T &operator[](size_t i) { return array_[i]; }
|
383
390
|
|
384
391
|
T *begin() { return array_.data(); }
|
385
|
-
const T *
|
392
|
+
const T *begin() const { return array_.data(); }
|
386
393
|
T *end() { return array_.data() + size_; }
|
387
|
-
const T *
|
394
|
+
const T *end() const { return array_.data() + size_; }
|
395
|
+
|
396
|
+
void clear() {
|
397
|
+
size_ = 0;
|
398
|
+
array_.Reset();
|
399
|
+
}
|
388
400
|
|
389
401
|
// Push adds |elem| at the end of the internal array, growing if necessary. It
|
390
402
|
// returns false when allocation fails.
|
@@ -476,15 +488,17 @@ bool ssl_get_version_range(const SSL_HANDSHAKE *hs, uint16_t *out_min_version,
|
|
476
488
|
uint16_t *out_max_version);
|
477
489
|
|
478
490
|
// ssl_supports_version returns whether |hs| supports |version|.
|
479
|
-
bool ssl_supports_version(SSL_HANDSHAKE *hs, uint16_t version);
|
491
|
+
bool ssl_supports_version(const SSL_HANDSHAKE *hs, uint16_t version);
|
480
492
|
|
481
493
|
// ssl_method_supports_version returns whether |method| supports |version|.
|
482
494
|
bool ssl_method_supports_version(const SSL_PROTOCOL_METHOD *method,
|
483
495
|
uint16_t version);
|
484
496
|
|
485
497
|
// ssl_add_supported_versions writes the supported versions of |hs| to |cbb|, in
|
486
|
-
// decreasing preference order.
|
487
|
-
|
498
|
+
// decreasing preference order. The version list is filtered to those whose
|
499
|
+
// protocol version is at least |extra_min_version|.
|
500
|
+
bool ssl_add_supported_versions(const SSL_HANDSHAKE *hs, CBB *cbb,
|
501
|
+
uint16_t extra_min_version);
|
488
502
|
|
489
503
|
// ssl_negotiate_version negotiates a common version based on |hs|'s preferences
|
490
504
|
// and the peer preference list in |peer_versions|. On success, it returns true
|
@@ -631,9 +645,6 @@ const EVP_MD *ssl_get_handshake_digest(uint16_t version,
|
|
631
645
|
bool ssl_create_cipher_list(UniquePtr<SSLCipherPreferenceList> *out_cipher_list,
|
632
646
|
const char *rule_str, bool strict);
|
633
647
|
|
634
|
-
// ssl_cipher_get_value returns the cipher suite id of |cipher|.
|
635
|
-
uint16_t ssl_cipher_get_value(const SSL_CIPHER *cipher);
|
636
|
-
|
637
648
|
// ssl_cipher_auth_mask_for_key returns the mask of cipher |algorithm_auth|
|
638
649
|
// values suitable for use with |key| in TLS 1.2 and below.
|
639
650
|
uint32_t ssl_cipher_auth_mask_for_key(const EVP_PKEY *key);
|
@@ -670,6 +681,9 @@ class SSLTranscript {
|
|
670
681
|
SSLTranscript();
|
671
682
|
~SSLTranscript();
|
672
683
|
|
684
|
+
SSLTranscript(SSLTranscript &&other) = default;
|
685
|
+
SSLTranscript &operator=(SSLTranscript &&other) = default;
|
686
|
+
|
673
687
|
// Init initializes the handshake transcript. If called on an existing
|
674
688
|
// transcript, it resets the transcript and hash. It returns true on success
|
675
689
|
// and false on failure.
|
@@ -691,9 +705,9 @@ class SSLTranscript {
|
|
691
705
|
// the transcript. It returns true on success and false on failure. If the
|
692
706
|
// handshake buffer is still present, |digest| may be any supported digest.
|
693
707
|
// Otherwise, |digest| must match the transcript hash.
|
694
|
-
bool CopyToHashContext(EVP_MD_CTX *ctx, const EVP_MD *digest);
|
708
|
+
bool CopyToHashContext(EVP_MD_CTX *ctx, const EVP_MD *digest) const;
|
695
709
|
|
696
|
-
Span<const uint8_t> buffer() {
|
710
|
+
Span<const uint8_t> buffer() const {
|
697
711
|
return MakeConstSpan(reinterpret_cast<const uint8_t *>(buffer_->data),
|
698
712
|
buffer_->length);
|
699
713
|
}
|
@@ -716,14 +730,14 @@ class SSLTranscript {
|
|
716
730
|
// GetHash writes the handshake hash to |out| which must have room for at
|
717
731
|
// least |DigestLen| bytes. On success, it returns true and sets |*out_len| to
|
718
732
|
// the number of bytes written. Otherwise, it returns false.
|
719
|
-
bool GetHash(uint8_t *out, size_t *out_len);
|
733
|
+
bool GetHash(uint8_t *out, size_t *out_len) const;
|
720
734
|
|
721
735
|
// GetFinishedMAC computes the MAC for the Finished message into the bytes
|
722
736
|
// pointed by |out| and writes the number of bytes to |*out_len|. |out| must
|
723
737
|
// have room for |EVP_MAX_MD_SIZE| bytes. It returns true on success and false
|
724
738
|
// on failure.
|
725
739
|
bool GetFinishedMAC(uint8_t *out, size_t *out_len, const SSL_SESSION *session,
|
726
|
-
bool from_server);
|
740
|
+
bool from_server) const;
|
727
741
|
|
728
742
|
private:
|
729
743
|
// buffer_, if non-null, contains the handshake transcript.
|
@@ -1061,6 +1075,10 @@ class SSLKeyShare {
|
|
1061
1075
|
// |Serialize|.
|
1062
1076
|
static UniquePtr<SSLKeyShare> Create(CBS *in);
|
1063
1077
|
|
1078
|
+
// Serializes writes the group ID and private key, in a format that can be
|
1079
|
+
// read by |Create|.
|
1080
|
+
bool Serialize(CBB *out);
|
1081
|
+
|
1064
1082
|
// GroupID returns the group ID.
|
1065
1083
|
virtual uint16_t GroupID() const PURE_VIRTUAL;
|
1066
1084
|
|
@@ -1085,13 +1103,13 @@ class SSLKeyShare {
|
|
1085
1103
|
virtual bool Finish(Array<uint8_t> *out_secret, uint8_t *out_alert,
|
1086
1104
|
Span<const uint8_t> peer_key) PURE_VIRTUAL;
|
1087
1105
|
|
1088
|
-
//
|
1089
|
-
// successful and false otherwise.
|
1090
|
-
virtual bool
|
1106
|
+
// SerializePrivateKey writes the private key to |out|, returning true if
|
1107
|
+
// successful and false otherwise. It should be called after |Offer|.
|
1108
|
+
virtual bool SerializePrivateKey(CBB *out) { return false; }
|
1091
1109
|
|
1092
|
-
//
|
1093
|
-
// true if successful and false otherwise.
|
1094
|
-
virtual bool
|
1110
|
+
// DeserializePrivateKey initializes the state of the key exchange from |in|,
|
1111
|
+
// returning true if successful and false otherwise.
|
1112
|
+
virtual bool DeserializePrivateKey(CBS *in) { return false; }
|
1095
1113
|
};
|
1096
1114
|
|
1097
1115
|
struct NamedGroup {
|
@@ -1347,9 +1365,10 @@ bool ssl_on_certificate_selected(SSL_HANDSHAKE *hs);
|
|
1347
1365
|
bool tls13_init_key_schedule(SSL_HANDSHAKE *hs, Span<const uint8_t> psk);
|
1348
1366
|
|
1349
1367
|
// tls13_init_early_key_schedule initializes the handshake hash and key
|
1350
|
-
// derivation state from
|
1351
|
-
//
|
1352
|
-
bool tls13_init_early_key_schedule(SSL_HANDSHAKE *hs,
|
1368
|
+
// derivation state from |session| for use with 0-RTT. It returns one on success
|
1369
|
+
// and zero on error.
|
1370
|
+
bool tls13_init_early_key_schedule(SSL_HANDSHAKE *hs,
|
1371
|
+
const SSL_SESSION *session);
|
1353
1372
|
|
1354
1373
|
// tls13_advance_key_schedule incorporates |in| into the key schedule with
|
1355
1374
|
// HKDF-Extract. It returns true on success and false on error.
|
@@ -1402,16 +1421,184 @@ bool tls13_finished_mac(SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len,
|
|
1402
1421
|
// on failure.
|
1403
1422
|
bool tls13_derive_session_psk(SSL_SESSION *session, Span<const uint8_t> nonce);
|
1404
1423
|
|
1405
|
-
// tls13_write_psk_binder calculates the PSK binder value
|
1406
|
-
// bytes of |msg| with the resulting value. It
|
1407
|
-
// false on failure.
|
1408
|
-
|
1424
|
+
// tls13_write_psk_binder calculates the PSK binder value over |transcript| and
|
1425
|
+
// |msg|, and replaces the last bytes of |msg| with the resulting value. It
|
1426
|
+
// returns true on success, and false on failure. If |out_binder_len| is
|
1427
|
+
// non-NULL, it sets |*out_binder_len| to the length of the value computed.
|
1428
|
+
bool tls13_write_psk_binder(const SSL_HANDSHAKE *hs,
|
1429
|
+
const SSLTranscript &transcript, Span<uint8_t> msg,
|
1430
|
+
size_t *out_binder_len);
|
1409
1431
|
|
1410
1432
|
// tls13_verify_psk_binder verifies that the handshake transcript, truncated up
|
1411
1433
|
// to the binders has a valid signature using the value of |session|'s
|
1412
1434
|
// resumption secret. It returns true on success, and false on failure.
|
1413
|
-
bool tls13_verify_psk_binder(SSL_HANDSHAKE *hs,
|
1414
|
-
const SSLMessage &msg,
|
1435
|
+
bool tls13_verify_psk_binder(const SSL_HANDSHAKE *hs,
|
1436
|
+
const SSL_SESSION *session, const SSLMessage &msg,
|
1437
|
+
CBS *binders);
|
1438
|
+
|
1439
|
+
|
1440
|
+
// Encrypted ClientHello.
|
1441
|
+
|
1442
|
+
struct ECHConfig {
|
1443
|
+
static constexpr bool kAllowUniquePtr = true;
|
1444
|
+
// raw contains the serialized ECHConfig.
|
1445
|
+
Array<uint8_t> raw;
|
1446
|
+
// The following fields alias into |raw|.
|
1447
|
+
Span<const uint8_t> public_key;
|
1448
|
+
Span<const uint8_t> public_name;
|
1449
|
+
Span<const uint8_t> cipher_suites;
|
1450
|
+
uint16_t kem_id = 0;
|
1451
|
+
uint16_t maximum_name_length = 0;
|
1452
|
+
uint8_t config_id = 0;
|
1453
|
+
};
|
1454
|
+
|
1455
|
+
class ECHServerConfig {
|
1456
|
+
public:
|
1457
|
+
static constexpr bool kAllowUniquePtr = true;
|
1458
|
+
ECHServerConfig() = default;
|
1459
|
+
ECHServerConfig(const ECHServerConfig &other) = delete;
|
1460
|
+
ECHServerConfig &operator=(ECHServerConfig &&) = delete;
|
1461
|
+
|
1462
|
+
// Init parses |ech_config| as an ECHConfig and saves a copy of |key|.
|
1463
|
+
// It returns true on success and false on error.
|
1464
|
+
bool Init(Span<const uint8_t> ech_config, const EVP_HPKE_KEY *key,
|
1465
|
+
bool is_retry_config);
|
1466
|
+
|
1467
|
+
// SetupContext sets up |ctx| for a new connection, given the specified
|
1468
|
+
// HPKE ciphersuite and encapsulated KEM key. It returns true on success and
|
1469
|
+
// false on error. This function may only be called on an initialized object.
|
1470
|
+
bool SetupContext(EVP_HPKE_CTX *ctx, uint16_t kdf_id, uint16_t aead_id,
|
1471
|
+
Span<const uint8_t> enc) const;
|
1472
|
+
|
1473
|
+
const ECHConfig &ech_config() const { return ech_config_; }
|
1474
|
+
bool is_retry_config() const { return is_retry_config_; }
|
1475
|
+
|
1476
|
+
private:
|
1477
|
+
ECHConfig ech_config_;
|
1478
|
+
ScopedEVP_HPKE_KEY key_;
|
1479
|
+
bool is_retry_config_ = false;
|
1480
|
+
};
|
1481
|
+
|
1482
|
+
enum ssl_client_hello_type_t {
|
1483
|
+
ssl_client_hello_unencrypted,
|
1484
|
+
ssl_client_hello_inner,
|
1485
|
+
ssl_client_hello_outer,
|
1486
|
+
};
|
1487
|
+
|
1488
|
+
// ssl_decode_client_hello_inner recovers the full ClientHelloInner from the
|
1489
|
+
// EncodedClientHelloInner |encoded_client_hello_inner| by replacing its
|
1490
|
+
// outer_extensions extension with the referenced extensions from the
|
1491
|
+
// ClientHelloOuter |client_hello_outer|. If successful, it writes the recovered
|
1492
|
+
// ClientHelloInner to |out_client_hello_inner|. It returns true on success and
|
1493
|
+
// false on failure.
|
1494
|
+
OPENSSL_EXPORT bool ssl_decode_client_hello_inner(
|
1495
|
+
SSL *ssl, uint8_t *out_alert, Array<uint8_t> *out_client_hello_inner,
|
1496
|
+
Span<const uint8_t> encoded_client_hello_inner,
|
1497
|
+
const SSL_CLIENT_HELLO *client_hello_outer);
|
1498
|
+
|
1499
|
+
// ssl_client_hello_decrypt attempts to decrypt the given |payload| into
|
1500
|
+
// |out_encoded_client_hello_inner|. The decrypted value should be an
|
1501
|
+
// EncodedClientHelloInner. It returns false if any fatal errors occur and true
|
1502
|
+
// otherwise, regardless of whether the decrypt was successful. It sets
|
1503
|
+
// |out_encoded_client_hello_inner| to true if the decryption fails, and false
|
1504
|
+
// otherwise.
|
1505
|
+
bool ssl_client_hello_decrypt(EVP_HPKE_CTX *hpke_ctx,
|
1506
|
+
Array<uint8_t> *out_encoded_client_hello_inner,
|
1507
|
+
bool *out_is_decrypt_error,
|
1508
|
+
const SSL_CLIENT_HELLO *client_hello_outer,
|
1509
|
+
uint16_t kdf_id, uint16_t aead_id,
|
1510
|
+
uint8_t config_id, Span<const uint8_t> enc,
|
1511
|
+
Span<const uint8_t> payload);
|
1512
|
+
|
1513
|
+
#define ECH_CONFIRMATION_SIGNAL_LEN 8
|
1514
|
+
|
1515
|
+
// ssl_ech_confirmation_signal_hello_offset returns the offset of the ECH
|
1516
|
+
// confirmation signal in a ServerHello message, including the handshake header.
|
1517
|
+
size_t ssl_ech_confirmation_signal_hello_offset(const SSL *ssl);
|
1518
|
+
|
1519
|
+
// ssl_ech_accept_confirmation computes the server's ECH acceptance signal,
|
1520
|
+
// writing it to |out|. The signal is computed by concatenating |transcript|
|
1521
|
+
// with |server_hello|. This function handles the fact that eight bytes of
|
1522
|
+
// |server_hello| need to be replaced with zeros before hashing. It returns true
|
1523
|
+
// on success, and false on failure.
|
1524
|
+
bool ssl_ech_accept_confirmation(const SSL_HANDSHAKE *hs, Span<uint8_t> out,
|
1525
|
+
const SSLTranscript &transcript,
|
1526
|
+
Span<const uint8_t> server_hello);
|
1527
|
+
|
1528
|
+
// ssl_is_valid_ech_public_name returns true if |public_name| is a valid ECH
|
1529
|
+
// public name and false otherwise. It is exported for testing.
|
1530
|
+
OPENSSL_EXPORT bool ssl_is_valid_ech_public_name(
|
1531
|
+
Span<const uint8_t> public_name);
|
1532
|
+
|
1533
|
+
// ssl_is_valid_ech_config_list returns true if |ech_config_list| is a valid
|
1534
|
+
// ECHConfigList structure and false otherwise.
|
1535
|
+
bool ssl_is_valid_ech_config_list(Span<const uint8_t> ech_config_list);
|
1536
|
+
|
1537
|
+
// ssl_select_ech_config selects an ECHConfig and associated parameters to offer
|
1538
|
+
// on the client and updates |hs|. It returns true on success, whether an
|
1539
|
+
// ECHConfig was found or not, and false on internal error. On success, the
|
1540
|
+
// encapsulated key is written to |out_enc| and |*out_enc_len| is set to the
|
1541
|
+
// number of bytes written. If the function did not select an ECHConfig, the
|
1542
|
+
// encapsulated key is the empty string.
|
1543
|
+
bool ssl_select_ech_config(SSL_HANDSHAKE *hs, Span<uint8_t> out_enc,
|
1544
|
+
size_t *out_enc_len);
|
1545
|
+
|
1546
|
+
// ssl_ech_extension_body_length returns the length of the body of a ClientHello
|
1547
|
+
// ECH extension that encrypts |in_len| bytes with |aead| and an 'enc' value of
|
1548
|
+
// length |enc_len|. The result does not include the four-byte extension header.
|
1549
|
+
size_t ssl_ech_extension_body_length(const EVP_HPKE_AEAD *aead, size_t enc_len,
|
1550
|
+
size_t in_len);
|
1551
|
+
|
1552
|
+
// ssl_encrypt_client_hello constructs a new ClientHelloInner, adds it to the
|
1553
|
+
// inner transcript, and encrypts for inclusion in the ClientHelloOuter. |enc|
|
1554
|
+
// is the encapsulated key to include in the extension. It returns true on
|
1555
|
+
// success and false on error. If not offering ECH, |enc| is ignored and the
|
1556
|
+
// function will compute a GREASE ECH extension if necessary, and otherwise
|
1557
|
+
// return success while doing nothing.
|
1558
|
+
//
|
1559
|
+
// Encrypting the ClientHelloInner incorporates all extensions in the
|
1560
|
+
// ClientHelloOuter, so all other state necessary for |ssl_add_client_hello|
|
1561
|
+
// must already be computed.
|
1562
|
+
bool ssl_encrypt_client_hello(SSL_HANDSHAKE *hs, Span<const uint8_t> enc);
|
1563
|
+
|
1564
|
+
|
1565
|
+
// Delegated credentials.
|
1566
|
+
|
1567
|
+
// This structure stores a delegated credential (DC) as defined by
|
1568
|
+
// draft-ietf-tls-subcerts-03.
|
1569
|
+
struct DC {
|
1570
|
+
static constexpr bool kAllowUniquePtr = true;
|
1571
|
+
~DC();
|
1572
|
+
|
1573
|
+
// Dup returns a copy of this DC and takes references to |raw| and |pkey|.
|
1574
|
+
UniquePtr<DC> Dup();
|
1575
|
+
|
1576
|
+
// Parse parses the delegated credential stored in |in|. If successful it
|
1577
|
+
// returns the parsed structure, otherwise it returns |nullptr| and sets
|
1578
|
+
// |*out_alert|.
|
1579
|
+
static UniquePtr<DC> Parse(CRYPTO_BUFFER *in, uint8_t *out_alert);
|
1580
|
+
|
1581
|
+
// raw is the delegated credential encoded as specified in draft-ietf-tls-
|
1582
|
+
// subcerts-03.
|
1583
|
+
UniquePtr<CRYPTO_BUFFER> raw;
|
1584
|
+
|
1585
|
+
// expected_cert_verify_algorithm is the signature scheme of the DC public
|
1586
|
+
// key.
|
1587
|
+
uint16_t expected_cert_verify_algorithm = 0;
|
1588
|
+
|
1589
|
+
// pkey is the public key parsed from |public_key|.
|
1590
|
+
UniquePtr<EVP_PKEY> pkey;
|
1591
|
+
|
1592
|
+
private:
|
1593
|
+
friend DC* New<DC>();
|
1594
|
+
DC();
|
1595
|
+
};
|
1596
|
+
|
1597
|
+
// ssl_signing_with_dc returns true if the peer has indicated support for
|
1598
|
+
// delegated credentials and this host has sent a delegated credential in
|
1599
|
+
// response. If this is true then we've committed to using the DC in the
|
1600
|
+
// handshake.
|
1601
|
+
bool ssl_signing_with_dc(const SSL_HANDSHAKE *hs);
|
1415
1602
|
|
1416
1603
|
|
1417
1604
|
// Handshake functions.
|
@@ -1426,7 +1613,6 @@ enum ssl_hs_wait_t {
|
|
1426
1613
|
ssl_hs_handoff,
|
1427
1614
|
ssl_hs_handback,
|
1428
1615
|
ssl_hs_x509_lookup,
|
1429
|
-
ssl_hs_channel_id_lookup,
|
1430
1616
|
ssl_hs_private_key_operation,
|
1431
1617
|
ssl_hs_pending_session,
|
1432
1618
|
ssl_hs_pending_ticket,
|
@@ -1435,6 +1621,7 @@ enum ssl_hs_wait_t {
|
|
1435
1621
|
ssl_hs_read_end_of_early_data,
|
1436
1622
|
ssl_hs_read_change_cipher_spec,
|
1437
1623
|
ssl_hs_certificate_verify,
|
1624
|
+
ssl_hs_hints_ready,
|
1438
1625
|
};
|
1439
1626
|
|
1440
1627
|
enum ssl_grease_index_t {
|
@@ -1444,12 +1631,14 @@ enum ssl_grease_index_t {
|
|
1444
1631
|
ssl_grease_extension2,
|
1445
1632
|
ssl_grease_version,
|
1446
1633
|
ssl_grease_ticket_extension,
|
1447
|
-
|
1634
|
+
ssl_grease_ech_config_id,
|
1635
|
+
ssl_grease_last_index = ssl_grease_ech_config_id,
|
1448
1636
|
};
|
1449
1637
|
|
1450
1638
|
enum tls12_server_hs_state_t {
|
1451
1639
|
state12_start_accept = 0,
|
1452
1640
|
state12_read_client_hello,
|
1641
|
+
state12_read_client_hello_after_ech,
|
1453
1642
|
state12_select_certificate,
|
1454
1643
|
state12_tls13,
|
1455
1644
|
state12_select_parameters,
|
@@ -1482,6 +1671,7 @@ enum tls13_server_hs_state_t {
|
|
1482
1671
|
state13_send_half_rtt_ticket,
|
1483
1672
|
state13_read_second_client_flight,
|
1484
1673
|
state13_process_end_of_early_data,
|
1674
|
+
state13_read_client_encrypted_extensions,
|
1485
1675
|
state13_read_client_certificate,
|
1486
1676
|
state13_read_client_certificate_verify,
|
1487
1677
|
state13_read_channel_id,
|
@@ -1500,46 +1690,30 @@ enum handback_t {
|
|
1500
1690
|
handback_max_value = handback_tls13,
|
1501
1691
|
};
|
1502
1692
|
|
1503
|
-
|
1504
|
-
//
|
1505
|
-
|
1506
|
-
// This structure stores a delegated credential (DC) as defined by
|
1507
|
-
// draft-ietf-tls-subcerts-03.
|
1508
|
-
struct DC {
|
1693
|
+
// SSL_HANDSHAKE_HINTS contains handshake hints for a connection. See
|
1694
|
+
// |SSL_request_handshake_hints| and related functions.
|
1695
|
+
struct SSL_HANDSHAKE_HINTS {
|
1509
1696
|
static constexpr bool kAllowUniquePtr = true;
|
1510
|
-
~DC();
|
1511
1697
|
|
1512
|
-
|
1513
|
-
UniquePtr<DC> Dup();
|
1514
|
-
|
1515
|
-
// Parse parses the delegated credential stored in |in|. If successful it
|
1516
|
-
// returns the parsed structure, otherwise it returns |nullptr| and sets
|
1517
|
-
// |*out_alert|.
|
1518
|
-
static UniquePtr<DC> Parse(CRYPTO_BUFFER *in, uint8_t *out_alert);
|
1698
|
+
Array<uint8_t> server_random;
|
1519
1699
|
|
1520
|
-
|
1521
|
-
|
1522
|
-
|
1700
|
+
uint16_t key_share_group_id = 0;
|
1701
|
+
Array<uint8_t> key_share_public_key;
|
1702
|
+
Array<uint8_t> key_share_secret;
|
1523
1703
|
|
1524
|
-
|
1525
|
-
|
1526
|
-
|
1704
|
+
uint16_t signature_algorithm = 0;
|
1705
|
+
Array<uint8_t> signature_input;
|
1706
|
+
Array<uint8_t> signature_spki;
|
1707
|
+
Array<uint8_t> signature;
|
1527
1708
|
|
1528
|
-
|
1529
|
-
|
1709
|
+
Array<uint8_t> decrypted_psk;
|
1710
|
+
bool ignore_psk = false;
|
1530
1711
|
|
1531
|
-
|
1532
|
-
|
1533
|
-
|
1712
|
+
uint16_t cert_compression_alg_id = 0;
|
1713
|
+
Array<uint8_t> cert_compression_input;
|
1714
|
+
Array<uint8_t> cert_compression_output;
|
1534
1715
|
};
|
1535
1716
|
|
1536
|
-
// ssl_signing_with_dc returns true if the peer has indicated support for
|
1537
|
-
// delegated credentials and this host has sent a delegated credential in
|
1538
|
-
// response. If this is true then we've committed to using the DC in the
|
1539
|
-
// handshake.
|
1540
|
-
bool ssl_signing_with_dc(const SSL_HANDSHAKE *hs);
|
1541
|
-
|
1542
|
-
|
1543
1717
|
struct SSL_HANDSHAKE {
|
1544
1718
|
explicit SSL_HANDSHAKE(SSL *ssl);
|
1545
1719
|
~SSL_HANDSHAKE();
|
@@ -1584,7 +1758,21 @@ struct SSL_HANDSHAKE {
|
|
1584
1758
|
public:
|
1585
1759
|
void ResizeSecrets(size_t hash_len);
|
1586
1760
|
|
1761
|
+
// GetClientHello, on the server, returns either the normal ClientHello
|
1762
|
+
// message or the ClientHelloInner if it has been serialized to
|
1763
|
+
// |ech_client_hello_buf|. This function should only be called when the
|
1764
|
+
// current message is a ClientHello. It returns true on success and false on
|
1765
|
+
// error.
|
1766
|
+
//
|
1767
|
+
// Note that fields of the returned |out_msg| and |out_client_hello| point
|
1768
|
+
// into a handshake-owned buffer, so their lifetimes should not exceed this
|
1769
|
+
// SSL_HANDSHAKE.
|
1770
|
+
bool GetClientHello(SSLMessage *out_msg, SSL_CLIENT_HELLO *out_client_hello);
|
1771
|
+
|
1587
1772
|
Span<uint8_t> secret() { return MakeSpan(secret_, hash_len_); }
|
1773
|
+
Span<const uint8_t> secret() const {
|
1774
|
+
return MakeConstSpan(secret_, hash_len_);
|
1775
|
+
}
|
1588
1776
|
Span<uint8_t> early_traffic_secret() {
|
1589
1777
|
return MakeSpan(early_traffic_secret_, hash_len_);
|
1590
1778
|
}
|
@@ -1614,9 +1802,9 @@ struct SSL_HANDSHAKE {
|
|
1614
1802
|
uint32_t received;
|
1615
1803
|
} extensions;
|
1616
1804
|
|
1617
|
-
//
|
1618
|
-
//
|
1619
|
-
|
1805
|
+
// inner_extensions_sent, on clients that offer ECH, is |extensions.sent| for
|
1806
|
+
// the ClientHelloInner.
|
1807
|
+
uint32_t inner_extensions_sent = 0;
|
1620
1808
|
|
1621
1809
|
// error, if |wait| is |ssl_hs_error|, is the error the handshake failed on.
|
1622
1810
|
UniquePtr<ERR_SAVE_STATE> error;
|
@@ -1629,11 +1817,26 @@ struct SSL_HANDSHAKE {
|
|
1629
1817
|
// transcript is the current handshake transcript.
|
1630
1818
|
SSLTranscript transcript;
|
1631
1819
|
|
1820
|
+
// inner_transcript, on the client, is the handshake transcript for the
|
1821
|
+
// ClientHelloInner handshake. It is moved to |transcript| if the server
|
1822
|
+
// accepts ECH.
|
1823
|
+
SSLTranscript inner_transcript;
|
1824
|
+
|
1825
|
+
// inner_client_random is the ClientHello random value used with
|
1826
|
+
// ClientHelloInner.
|
1827
|
+
uint8_t inner_client_random[SSL3_RANDOM_SIZE] = {0};
|
1828
|
+
|
1632
1829
|
// cookie is the value of the cookie received from the server, if any.
|
1633
1830
|
Array<uint8_t> cookie;
|
1634
1831
|
|
1635
|
-
//
|
1636
|
-
|
1832
|
+
// ech_client_bytes contains the ECH extension to send in the ClientHello.
|
1833
|
+
Array<uint8_t> ech_client_bytes;
|
1834
|
+
|
1835
|
+
// ech_client_hello_buf, on the server, contains the bytes of the
|
1836
|
+
// reconstructed ClientHelloInner message.
|
1837
|
+
Array<uint8_t> ech_client_hello_buf;
|
1838
|
+
|
1839
|
+
// key_share_bytes is the key_share extension that the client should send.
|
1637
1840
|
Array<uint8_t> key_share_bytes;
|
1638
1841
|
|
1639
1842
|
// ecdh_public_key, for servers, is the key share to be sent to the client in
|
@@ -1650,20 +1853,28 @@ struct SSL_HANDSHAKE {
|
|
1650
1853
|
// advertise this extension to the client.
|
1651
1854
|
Array<uint16_t> peer_supported_group_list;
|
1652
1855
|
|
1856
|
+
// peer_delegated_credential_sigalgs are the signature algorithms the peer
|
1857
|
+
// supports with delegated credentials.
|
1858
|
+
Array<uint16_t> peer_delegated_credential_sigalgs;
|
1859
|
+
|
1653
1860
|
// peer_key is the peer's ECDH key for a TLS 1.2 client.
|
1654
1861
|
Array<uint8_t> peer_key;
|
1655
1862
|
|
1656
|
-
//
|
1657
|
-
//
|
1658
|
-
//
|
1659
|
-
|
1660
|
-
uint16_t negotiated_token_binding_version;
|
1863
|
+
// extension_permutation is the permutation to apply to ClientHello
|
1864
|
+
// extensions. It maps indices into the |kExtensions| table into other
|
1865
|
+
// indices.
|
1866
|
+
Array<uint8_t> extension_permutation;
|
1661
1867
|
|
1662
1868
|
// cert_compression_alg_id, for a server, contains the negotiated certificate
|
1663
1869
|
// compression algorithm for this client. It is only valid if
|
1664
1870
|
// |cert_compression_negotiated| is true.
|
1665
1871
|
uint16_t cert_compression_alg_id;
|
1666
1872
|
|
1873
|
+
// ech_hpke_ctx is the HPKE context used in ECH. On the server, it is
|
1874
|
+
// initialized if |ech_accept| is true. On the client, it is initialized if
|
1875
|
+
// |selected_ech_config| is not nullptr.
|
1876
|
+
ScopedEVP_HPKE_CTX ech_hpke_ctx;
|
1877
|
+
|
1667
1878
|
// server_params, in a TLS 1.2 server, stores the ServerKeyExchange
|
1668
1879
|
// parameters. It has client and server randoms prepended for signing
|
1669
1880
|
// convenience.
|
@@ -1700,19 +1911,40 @@ struct SSL_HANDSHAKE {
|
|
1700
1911
|
// the client if |in_early_data| is true.
|
1701
1912
|
UniquePtr<SSL_SESSION> early_session;
|
1702
1913
|
|
1914
|
+
// ssl_ech_keys, for servers, is the set of ECH keys to use with this
|
1915
|
+
// handshake. This is copied from |SSL_CTX| to ensure consistent behavior as
|
1916
|
+
// |SSL_CTX| rotates keys.
|
1917
|
+
UniquePtr<SSL_ECH_KEYS> ech_keys;
|
1918
|
+
|
1919
|
+
// selected_ech_config, for clients, is the ECHConfig the client uses to offer
|
1920
|
+
// ECH, or nullptr if ECH is not being offered. If non-NULL, |ech_hpke_ctx|
|
1921
|
+
// will be initialized.
|
1922
|
+
UniquePtr<ECHConfig> selected_ech_config;
|
1923
|
+
|
1703
1924
|
// new_cipher is the cipher being negotiated in this handshake.
|
1704
1925
|
const SSL_CIPHER *new_cipher = nullptr;
|
1705
1926
|
|
1706
1927
|
// key_block is the record-layer key block for TLS 1.2 and earlier.
|
1707
1928
|
Array<uint8_t> key_block;
|
1708
1929
|
|
1930
|
+
// hints contains the handshake hints for this connection. If
|
1931
|
+
// |hints_requested| is true, this field is non-null and contains the pending
|
1932
|
+
// hints to filled as the predicted handshake progresses. Otherwise, this
|
1933
|
+
// field, if non-null, contains hints configured by the caller and will
|
1934
|
+
// influence the handshake on match.
|
1935
|
+
UniquePtr<SSL_HANDSHAKE_HINTS> hints;
|
1936
|
+
|
1937
|
+
// ech_present, on the server, indicates whether the ClientHello contained an
|
1938
|
+
// encrypted_client_hello extension.
|
1939
|
+
bool ech_present : 1;
|
1940
|
+
|
1941
|
+
// ech_is_inner_present, on the server, indicates whether the ClientHello
|
1942
|
+
// contained an ech_is_inner extension.
|
1943
|
+
bool ech_is_inner_present : 1;
|
1944
|
+
|
1709
1945
|
// scts_requested is true if the SCT extension is in the ClientHello.
|
1710
1946
|
bool scts_requested : 1;
|
1711
1947
|
|
1712
|
-
// needs_psk_binder is true if the ClientHello has a placeholder PSK binder to
|
1713
|
-
// be filled in.
|
1714
|
-
bool needs_psk_binder : 1;
|
1715
|
-
|
1716
1948
|
// handshake_finalized is true once the handshake has completed, at which
|
1717
1949
|
// point accessors should use the established state.
|
1718
1950
|
bool handshake_finalized : 1;
|
@@ -1774,15 +2006,17 @@ struct SSL_HANDSHAKE {
|
|
1774
2006
|
// in progress.
|
1775
2007
|
bool pending_private_key_op : 1;
|
1776
2008
|
|
1777
|
-
// grease_seeded is true if |grease_seed| has been initialized.
|
1778
|
-
bool grease_seeded : 1;
|
1779
|
-
|
1780
2009
|
// handback indicates that a server should pause the handshake after
|
1781
2010
|
// finishing operations that require private key material, in such a way that
|
1782
2011
|
// |SSL_get_error| returns |SSL_ERROR_HANDBACK|. It is set by
|
1783
2012
|
// |SSL_apply_handoff|.
|
1784
2013
|
bool handback : 1;
|
1785
2014
|
|
2015
|
+
// hints_requested indicates the caller has requested handshake hints. Only
|
2016
|
+
// the first round-trip of the handshake will complete, after which the
|
2017
|
+
// |hints| structure can be serialized.
|
2018
|
+
bool hints_requested : 1;
|
2019
|
+
|
1786
2020
|
// cert_compression_negotiated is true iff |cert_compression_alg_id| is valid.
|
1787
2021
|
bool cert_compression_negotiated : 1;
|
1788
2022
|
|
@@ -1790,6 +2024,14 @@ struct SSL_HANDSHAKE {
|
|
1790
2024
|
// which implemented TLS 1.3 incorrectly.
|
1791
2025
|
bool apply_jdk11_workaround : 1;
|
1792
2026
|
|
2027
|
+
// can_release_private_key is true if the private key will no longer be used
|
2028
|
+
// in this handshake.
|
2029
|
+
bool can_release_private_key : 1;
|
2030
|
+
|
2031
|
+
// channel_id_negotiated is true if Channel ID should be used in this
|
2032
|
+
// handshake.
|
2033
|
+
bool channel_id_negotiated : 1;
|
2034
|
+
|
1793
2035
|
// client_version is the value sent or received in the ClientHello version.
|
1794
2036
|
uint16_t client_version = 0;
|
1795
2037
|
|
@@ -1801,12 +2043,14 @@ struct SSL_HANDSHAKE {
|
|
1801
2043
|
// record layer.
|
1802
2044
|
uint16_t early_data_written = 0;
|
1803
2045
|
|
2046
|
+
// ech_config_id is the ECH config sent by the client.
|
2047
|
+
uint8_t ech_config_id = 0;
|
2048
|
+
|
1804
2049
|
// session_id is the session ID in the ClientHello.
|
1805
2050
|
uint8_t session_id[SSL_MAX_SSL_SESSION_ID_LENGTH] = {0};
|
1806
2051
|
uint8_t session_id_len = 0;
|
1807
2052
|
|
1808
|
-
// grease_seed is the entropy for GREASE values.
|
1809
|
-
// |grease_seeded| is true.
|
2053
|
+
// grease_seed is the entropy for GREASE values.
|
1810
2054
|
uint8_t grease_seed[ssl_grease_last_index + 1] = {0};
|
1811
2055
|
};
|
1812
2056
|
|
@@ -1863,13 +2107,26 @@ enum ssl_private_key_result_t tls13_add_certificate_verify(SSL_HANDSHAKE *hs);
|
|
1863
2107
|
|
1864
2108
|
bool tls13_add_finished(SSL_HANDSHAKE *hs);
|
1865
2109
|
bool tls13_process_new_session_ticket(SSL *ssl, const SSLMessage &msg);
|
2110
|
+
bssl::UniquePtr<SSL_SESSION> tls13_create_session_with_ticket(SSL *ssl,
|
2111
|
+
CBS *body);
|
2112
|
+
|
2113
|
+
// ssl_setup_extension_permutation computes a ClientHello extension permutation
|
2114
|
+
// for |hs|, if applicable. It returns true on success and false on error.
|
2115
|
+
bool ssl_setup_extension_permutation(SSL_HANDSHAKE *hs);
|
2116
|
+
|
2117
|
+
// ssl_setup_key_shares computes client key shares and saves them in |hs|. It
|
2118
|
+
// returns true on success and false on failure. If |override_group_id| is zero,
|
2119
|
+
// it offers the default groups, including GREASE. If it is non-zero, it offers
|
2120
|
+
// a single key share of the specified group.
|
2121
|
+
bool ssl_setup_key_shares(SSL_HANDSHAKE *hs, uint16_t override_group_id);
|
1866
2122
|
|
1867
2123
|
bool ssl_ext_key_share_parse_serverhello(SSL_HANDSHAKE *hs,
|
1868
2124
|
Array<uint8_t> *out_secret,
|
1869
2125
|
uint8_t *out_alert, CBS *contents);
|
1870
2126
|
bool ssl_ext_key_share_parse_clienthello(SSL_HANDSHAKE *hs, bool *out_found,
|
1871
|
-
|
1872
|
-
uint8_t *out_alert,
|
2127
|
+
Span<const uint8_t> *out_peer_key,
|
2128
|
+
uint8_t *out_alert,
|
2129
|
+
const SSL_CLIENT_HELLO *client_hello);
|
1873
2130
|
bool ssl_ext_key_share_add_serverhello(SSL_HANDSHAKE *hs, CBB *out);
|
1874
2131
|
|
1875
2132
|
bool ssl_ext_pre_shared_key_parse_serverhello(SSL_HANDSHAKE *hs,
|
@@ -1885,7 +2142,17 @@ bool ssl_ext_pre_shared_key_add_serverhello(SSL_HANDSHAKE *hs, CBB *out);
|
|
1885
2142
|
// returns whether it's valid.
|
1886
2143
|
bool ssl_is_sct_list_valid(const CBS *contents);
|
1887
2144
|
|
1888
|
-
|
2145
|
+
// ssl_write_client_hello_without_extensions writes a ClientHello to |out|,
|
2146
|
+
// up to the extensions field. |type| determines the type of ClientHello to
|
2147
|
+
// write. If |omit_session_id| is true, the session ID is empty.
|
2148
|
+
bool ssl_write_client_hello_without_extensions(const SSL_HANDSHAKE *hs,
|
2149
|
+
CBB *cbb,
|
2150
|
+
ssl_client_hello_type_t type,
|
2151
|
+
bool empty_session_id);
|
2152
|
+
|
2153
|
+
// ssl_add_client_hello constructs a ClientHello and adds it to the outgoing
|
2154
|
+
// flight. It returns true on success and false on error.
|
2155
|
+
bool ssl_add_client_hello(SSL_HANDSHAKE *hs);
|
1889
2156
|
|
1890
2157
|
enum ssl_cert_verify_context_t {
|
1891
2158
|
ssl_cert_verify_server,
|
@@ -1901,6 +2168,9 @@ bool tls13_get_cert_verify_signature_input(
|
|
1901
2168
|
SSL_HANDSHAKE *hs, Array<uint8_t> *out,
|
1902
2169
|
enum ssl_cert_verify_context_t cert_verify_context);
|
1903
2170
|
|
2171
|
+
// ssl_is_valid_alpn_list returns whether |in| is a valid ALPN protocol list.
|
2172
|
+
bool ssl_is_valid_alpn_list(Span<const uint8_t> in);
|
2173
|
+
|
1904
2174
|
// ssl_is_alpn_protocol_allowed returns whether |protocol| is a valid server
|
1905
2175
|
// selection for |hs->ssl|'s client preferences.
|
1906
2176
|
bool ssl_is_alpn_protocol_allowed(const SSL_HANDSHAKE *hs,
|
@@ -1912,6 +2182,19 @@ bool ssl_is_alpn_protocol_allowed(const SSL_HANDSHAKE *hs,
|
|
1912
2182
|
bool ssl_negotiate_alpn(SSL_HANDSHAKE *hs, uint8_t *out_alert,
|
1913
2183
|
const SSL_CLIENT_HELLO *client_hello);
|
1914
2184
|
|
2185
|
+
// ssl_get_local_application_settings looks up the configured ALPS value for
|
2186
|
+
// |protocol|. If found, it sets |*out_settings| to the value and returns true.
|
2187
|
+
// Otherwise, it returns false.
|
2188
|
+
bool ssl_get_local_application_settings(const SSL_HANDSHAKE *hs,
|
2189
|
+
Span<const uint8_t> *out_settings,
|
2190
|
+
Span<const uint8_t> protocol);
|
2191
|
+
|
2192
|
+
// ssl_negotiate_alps negotiates the ALPS extension, if applicable. It returns
|
2193
|
+
// true on successful negotiation or if nothing was negotiated. It returns false
|
2194
|
+
// and sets |*out_alert| to an alert on error.
|
2195
|
+
bool ssl_negotiate_alps(SSL_HANDSHAKE *hs, uint8_t *out_alert,
|
2196
|
+
const SSL_CLIENT_HELLO *client_hello);
|
2197
|
+
|
1915
2198
|
struct SSL_EXTENSION_TYPE {
|
1916
2199
|
uint16_t type;
|
1917
2200
|
bool *out_present;
|
@@ -1920,12 +2203,12 @@ struct SSL_EXTENSION_TYPE {
|
|
1920
2203
|
|
1921
2204
|
// ssl_parse_extensions parses a TLS extensions block out of |cbs| and advances
|
1922
2205
|
// it. It writes the parsed extensions to pointers denoted by |ext_types|. On
|
1923
|
-
// success, it fills in the |out_present| and |out_data| fields and returns
|
1924
|
-
// Otherwise, it sets |*out_alert| to an alert to send and returns
|
1925
|
-
// extensions are rejected unless |ignore_unknown| is
|
1926
|
-
|
1927
|
-
|
1928
|
-
|
2206
|
+
// success, it fills in the |out_present| and |out_data| fields and returns
|
2207
|
+
// true. Otherwise, it sets |*out_alert| to an alert to send and returns false.
|
2208
|
+
// Unknown extensions are rejected unless |ignore_unknown| is true.
|
2209
|
+
bool ssl_parse_extensions(const CBS *cbs, uint8_t *out_alert,
|
2210
|
+
Span<const SSL_EXTENSION_TYPE> ext_types,
|
2211
|
+
bool ignore_unknown);
|
1929
2212
|
|
1930
2213
|
// ssl_verify_peer_cert verifies the peer certificate for |hs|.
|
1931
2214
|
enum ssl_verify_result_t ssl_verify_peer_cert(SSL_HANDSHAKE *hs);
|
@@ -1938,6 +2221,15 @@ enum ssl_hs_wait_t ssl_get_finished(SSL_HANDSHAKE *hs);
|
|
1938
2221
|
bool ssl_send_finished(SSL_HANDSHAKE *hs);
|
1939
2222
|
bool ssl_output_cert_chain(SSL_HANDSHAKE *hs);
|
1940
2223
|
|
2224
|
+
// ssl_handshake_session returns the |SSL_SESSION| corresponding to the current
|
2225
|
+
// handshake. Note, in TLS 1.2 resumptions, this session is immutable.
|
2226
|
+
const SSL_SESSION *ssl_handshake_session(const SSL_HANDSHAKE *hs);
|
2227
|
+
|
2228
|
+
// ssl_done_writing_client_hello is called after the last ClientHello is written
|
2229
|
+
// by |hs|. It releases some memory that is no longer needed.
|
2230
|
+
void ssl_done_writing_client_hello(SSL_HANDSHAKE *hs);
|
2231
|
+
|
2232
|
+
|
1941
2233
|
// SSLKEYLOGFILE functions.
|
1942
2234
|
|
1943
2235
|
// ssl_log_secret logs |secret| with label |label|, if logging is enabled for
|
@@ -1948,8 +2240,11 @@ bool ssl_log_secret(const SSL *ssl, const char *label,
|
|
1948
2240
|
|
1949
2241
|
// ClientHello functions.
|
1950
2242
|
|
1951
|
-
|
1952
|
-
|
2243
|
+
// ssl_client_hello_init parses |body| as a ClientHello message, excluding the
|
2244
|
+
// message header, and writes the result to |*out|. It returns true on success
|
2245
|
+
// and false on error. This function is exported for testing.
|
2246
|
+
OPENSSL_EXPORT bool ssl_client_hello_init(const SSL *ssl, SSL_CLIENT_HELLO *out,
|
2247
|
+
Span<const uint8_t> body);
|
1953
2248
|
|
1954
2249
|
bool ssl_client_hello_get_extension(const SSL_CLIENT_HELLO *client_hello,
|
1955
2250
|
CBS *out, uint16_t extension_type);
|
@@ -1964,7 +2259,8 @@ bool ssl_client_cipher_list_contains_cipher(
|
|
1964
2259
|
// connection, the values for each index will be deterministic. This allows the
|
1965
2260
|
// same ClientHello be sent twice for a HelloRetryRequest or the same group be
|
1966
2261
|
// advertised in both supported_groups and key_shares.
|
1967
|
-
uint16_t ssl_get_grease_value(SSL_HANDSHAKE *hs,
|
2262
|
+
uint16_t ssl_get_grease_value(const SSL_HANDSHAKE *hs,
|
2263
|
+
enum ssl_grease_index_t index);
|
1968
2264
|
|
1969
2265
|
|
1970
2266
|
// Signature algorithms.
|
@@ -2124,10 +2420,11 @@ struct SSL_PROTOCOL_METHOD {
|
|
2124
2420
|
// init_message begins a new handshake message of type |type|. |cbb| is the
|
2125
2421
|
// root CBB to be passed into |finish_message|. |*body| is set to a child CBB
|
2126
2422
|
// the caller should write to. It returns true on success and false on error.
|
2127
|
-
bool (*init_message)(SSL *ssl, CBB *cbb, CBB *body, uint8_t type);
|
2423
|
+
bool (*init_message)(const SSL *ssl, CBB *cbb, CBB *body, uint8_t type);
|
2128
2424
|
// finish_message finishes a handshake message. It sets |*out_msg| to the
|
2129
2425
|
// serialized message. It returns true on success and false on error.
|
2130
|
-
bool (*finish_message)(SSL *ssl, CBB *cbb,
|
2426
|
+
bool (*finish_message)(const SSL *ssl, CBB *cbb,
|
2427
|
+
bssl::Array<uint8_t> *out_msg);
|
2131
2428
|
// add_message adds a handshake message to the pending flight. It returns
|
2132
2429
|
// true on success and false on error.
|
2133
2430
|
bool (*add_message)(SSL *ssl, bssl::Array<uint8_t> msg);
|
@@ -2338,9 +2635,8 @@ struct SSL3_STATE {
|
|
2338
2635
|
// key_update_count is the number of consecutive KeyUpdates received.
|
2339
2636
|
uint8_t key_update_count = 0;
|
2340
2637
|
|
2341
|
-
//
|
2342
|
-
|
2343
|
-
uint8_t negotiated_token_binding_param = 0;
|
2638
|
+
// ech_accept indicates whether ECH was accepted by the server.
|
2639
|
+
bool ech_accept : 1;
|
2344
2640
|
|
2345
2641
|
// skip_early_data instructs the record layer to skip unexpected early data
|
2346
2642
|
// messages when 0RTT is rejected.
|
@@ -2375,9 +2671,8 @@ struct SSL3_STATE {
|
|
2375
2671
|
|
2376
2672
|
bool send_connection_binding : 1;
|
2377
2673
|
|
2378
|
-
//
|
2379
|
-
// Channel ID
|
2380
|
-
// Channel IDs and that |channel_id| will be valid after the handshake.
|
2674
|
+
// channel_id_valid is true if, on the server, the client has negotiated a
|
2675
|
+
// Channel ID and the |channel_id| field is filled in.
|
2381
2676
|
bool channel_id_valid : 1;
|
2382
2677
|
|
2383
2678
|
// key_update_pending is true if we have a KeyUpdate acknowledgment
|
@@ -2390,12 +2685,6 @@ struct SSL3_STATE {
|
|
2390
2685
|
// early_data_accepted is true if early data was accepted by the server.
|
2391
2686
|
bool early_data_accepted : 1;
|
2392
2687
|
|
2393
|
-
// tls13_downgrade is whether the TLS 1.3 anti-downgrade logic fired.
|
2394
|
-
bool tls13_downgrade : 1;
|
2395
|
-
|
2396
|
-
// token_binding_negotiated is set if Token Binding was negotiated.
|
2397
|
-
bool token_binding_negotiated : 1;
|
2398
|
-
|
2399
2688
|
// alert_dispatch is true there is an alert in |send_alert| to be sent.
|
2400
2689
|
bool alert_dispatch : 1;
|
2401
2690
|
|
@@ -2613,6 +2902,12 @@ struct DTLS1_STATE {
|
|
2613
2902
|
unsigned timeout_duration_ms = 0;
|
2614
2903
|
};
|
2615
2904
|
|
2905
|
+
// An ALPSConfig is a pair of ALPN protocol and settings value to use with ALPS.
|
2906
|
+
struct ALPSConfig {
|
2907
|
+
Array<uint8_t> protocol;
|
2908
|
+
Array<uint8_t> settings;
|
2909
|
+
};
|
2910
|
+
|
2616
2911
|
// SSL_CONFIG contains configuration bits that can be shed after the handshake
|
2617
2912
|
// completes. Objects of this type are not shared; they are unique to a
|
2618
2913
|
// particular |SSL|.
|
@@ -2672,15 +2967,17 @@ struct SSL_CONFIG {
|
|
2672
2967
|
|
2673
2968
|
Array<uint16_t> supported_group_list; // our list
|
2674
2969
|
|
2675
|
-
//
|
2970
|
+
// channel_id_private is the client's Channel ID private key, or null if
|
2971
|
+
// Channel ID should not be offered on this connection.
|
2676
2972
|
UniquePtr<EVP_PKEY> channel_id_private;
|
2677
2973
|
|
2678
2974
|
// For a client, this contains the list of supported protocols in wire
|
2679
2975
|
// format.
|
2680
2976
|
Array<uint8_t> alpn_client_proto_list;
|
2681
2977
|
|
2682
|
-
//
|
2683
|
-
|
2978
|
+
// alps_configs contains the list of supported protocols to use with ALPS,
|
2979
|
+
// along with their corresponding ALPS values.
|
2980
|
+
GrowableArray<ALPSConfig> alps_configs;
|
2684
2981
|
|
2685
2982
|
// Contains the QUIC transport params that this endpoint will send.
|
2686
2983
|
Array<uint8_t> quic_transport_params;
|
@@ -2696,9 +2993,17 @@ struct SSL_CONFIG {
|
|
2696
2993
|
// DTLS-SRTP.
|
2697
2994
|
UniquePtr<STACK_OF(SRTP_PROTECTION_PROFILE)> srtp_profiles;
|
2698
2995
|
|
2996
|
+
// client_ech_config_list, if not empty, is a serialized ECHConfigList
|
2997
|
+
// structure for the client to use when negotiating ECH.
|
2998
|
+
Array<uint8_t> client_ech_config_list;
|
2999
|
+
|
2699
3000
|
// verify_mode is a bitmask of |SSL_VERIFY_*| values.
|
2700
3001
|
uint8_t verify_mode = SSL_VERIFY_NONE;
|
2701
3002
|
|
3003
|
+
// ech_grease_enabled controls whether ECH GREASE may be sent in the
|
3004
|
+
// ClientHello.
|
3005
|
+
bool ech_grease_enabled : 1;
|
3006
|
+
|
2702
3007
|
// Enable signed certificate time stamps. Currently client only.
|
2703
3008
|
bool signed_cert_timestamps_enabled : 1;
|
2704
3009
|
|
@@ -2706,9 +3011,8 @@ struct SSL_CONFIG {
|
|
2706
3011
|
// whether OCSP stapling will be requested.
|
2707
3012
|
bool ocsp_stapling_enabled : 1;
|
2708
3013
|
|
2709
|
-
// channel_id_enabled is copied from the |SSL_CTX|. For a server, means
|
2710
|
-
// we'll accept Channel IDs from clients.
|
2711
|
-
// advertise support.
|
3014
|
+
// channel_id_enabled is copied from the |SSL_CTX|. For a server, it means
|
3015
|
+
// that we'll accept Channel IDs from clients. It is ignored on the client.
|
2712
3016
|
bool channel_id_enabled : 1;
|
2713
3017
|
|
2714
3018
|
// If enforce_rsa_key_usage is true, the handshake will fail if the
|
@@ -2731,19 +3035,17 @@ struct SSL_CONFIG {
|
|
2731
3035
|
// should be freed after the handshake completes.
|
2732
3036
|
bool shed_handshake_config : 1;
|
2733
3037
|
|
2734
|
-
// ignore_tls13_downgrade is whether the connection should continue when the
|
2735
|
-
// server random signals a downgrade.
|
2736
|
-
bool ignore_tls13_downgrade : 1;
|
2737
|
-
|
2738
3038
|
// jdk11_workaround is whether to disable TLS 1.3 for JDK 11 clients, as a
|
2739
3039
|
// workaround for https://bugs.openjdk.java.net/browse/JDK-8211806.
|
2740
3040
|
bool jdk11_workaround : 1;
|
2741
|
-
};
|
2742
3041
|
|
2743
|
-
//
|
2744
|
-
//
|
2745
|
-
bool
|
2746
|
-
|
3042
|
+
// QUIC drafts up to and including 32 used a different TLS extension
|
3043
|
+
// codepoint to convey QUIC's transport parameters.
|
3044
|
+
bool quic_use_legacy_codepoint : 1;
|
3045
|
+
|
3046
|
+
// permute_extensions is whether to permute extensions when sending messages.
|
3047
|
+
bool permute_extensions : 1;
|
3048
|
+
};
|
2747
3049
|
|
2748
3050
|
// From RFC 8446, used in determining PSK modes.
|
2749
3051
|
#define SSL_PSK_DHE_KE 0x1
|
@@ -2763,7 +3065,7 @@ bool ssl_is_key_type_supported(int key_type);
|
|
2763
3065
|
bool ssl_compare_public_and_private_key(const EVP_PKEY *pubkey,
|
2764
3066
|
const EVP_PKEY *privkey);
|
2765
3067
|
bool ssl_cert_check_private_key(const CERT *cert, const EVP_PKEY *privkey);
|
2766
|
-
|
3068
|
+
bool ssl_get_new_session(SSL_HANDSHAKE *hs);
|
2767
3069
|
int ssl_encrypt_ticket(SSL_HANDSHAKE *hs, CBB *out, const SSL_SESSION *session);
|
2768
3070
|
int ssl_ctx_rotate_ticket_encryption_key(SSL_CTX *ctx);
|
2769
3071
|
|
@@ -2866,14 +3168,14 @@ int tls_write_app_data(SSL *ssl, bool *out_needs_handshake, const uint8_t *buf,
|
|
2866
3168
|
bool tls_new(SSL *ssl);
|
2867
3169
|
void tls_free(SSL *ssl);
|
2868
3170
|
|
2869
|
-
bool tls_init_message(SSL *ssl, CBB *cbb, CBB *body, uint8_t type);
|
2870
|
-
bool tls_finish_message(SSL *ssl, CBB *cbb, Array<uint8_t> *out_msg);
|
3171
|
+
bool tls_init_message(const SSL *ssl, CBB *cbb, CBB *body, uint8_t type);
|
3172
|
+
bool tls_finish_message(const SSL *ssl, CBB *cbb, Array<uint8_t> *out_msg);
|
2871
3173
|
bool tls_add_message(SSL *ssl, Array<uint8_t> msg);
|
2872
3174
|
bool tls_add_change_cipher_spec(SSL *ssl);
|
2873
3175
|
int tls_flush_flight(SSL *ssl);
|
2874
3176
|
|
2875
|
-
bool dtls1_init_message(SSL *ssl, CBB *cbb, CBB *body, uint8_t type);
|
2876
|
-
bool dtls1_finish_message(SSL *ssl, CBB *cbb, Array<uint8_t> *out_msg);
|
3177
|
+
bool dtls1_init_message(const SSL *ssl, CBB *cbb, CBB *body, uint8_t type);
|
3178
|
+
bool dtls1_finish_message(const SSL *ssl, CBB *cbb, Array<uint8_t> *out_msg);
|
2877
3179
|
bool dtls1_add_message(SSL *ssl, Array<uint8_t> msg);
|
2878
3180
|
bool dtls1_add_change_cipher_spec(SSL *ssl);
|
2879
3181
|
int dtls1_flush_flight(SSL *ssl);
|
@@ -2924,13 +3226,14 @@ int dtls1_dispatch_alert(SSL *ssl);
|
|
2924
3226
|
// determined by |direction|) using the keys generated by the TLS KDF. The
|
2925
3227
|
// |key_block_cache| argument is used to store the generated key block, if
|
2926
3228
|
// empty. Otherwise it's assumed that the key block is already contained within
|
2927
|
-
// it.
|
2928
|
-
|
2929
|
-
|
2930
|
-
|
2931
|
-
|
2932
|
-
|
2933
|
-
|
3229
|
+
// it. It returns true on success or false on error.
|
3230
|
+
bool tls1_configure_aead(SSL *ssl, evp_aead_direction_t direction,
|
3231
|
+
Array<uint8_t> *key_block_cache,
|
3232
|
+
const SSL_SESSION *session,
|
3233
|
+
Span<const uint8_t> iv_override);
|
3234
|
+
|
3235
|
+
bool tls1_change_cipher_state(SSL_HANDSHAKE *hs,
|
3236
|
+
evp_aead_direction_t direction);
|
2934
3237
|
int tls1_generate_master_secret(SSL_HANDSHAKE *hs, uint8_t *out,
|
2935
3238
|
Span<const uint8_t> premaster);
|
2936
3239
|
|
@@ -2957,11 +3260,27 @@ bool tls1_set_curves(Array<uint16_t> *out_group_ids, Span<const int> curves);
|
|
2957
3260
|
// false.
|
2958
3261
|
bool tls1_set_curves_list(Array<uint16_t> *out_group_ids, const char *curves);
|
2959
3262
|
|
2960
|
-
// ssl_add_clienthello_tlsext writes ClientHello extensions to |out
|
2961
|
-
// true on success and false on failure. The |header_len| argument is
|
2962
|
-
// of the ClientHello written so far and is used to compute the
|
2963
|
-
// (It does not include the record header.)
|
2964
|
-
|
3263
|
+
// ssl_add_clienthello_tlsext writes ClientHello extensions to |out| for |type|.
|
3264
|
+
// It returns true on success and false on failure. The |header_len| argument is
|
3265
|
+
// the length of the ClientHello written so far and is used to compute the
|
3266
|
+
// padding length. (It does not include the record header or handshake headers.)
|
3267
|
+
//
|
3268
|
+
// If |type| is |ssl_client_hello_inner|, this function also writes the
|
3269
|
+
// compressed extensions to |out_encoded|. Otherwise, |out_encoded| should be
|
3270
|
+
// nullptr.
|
3271
|
+
//
|
3272
|
+
// On success, the function sets |*out_needs_psk_binder| to whether the last
|
3273
|
+
// ClientHello extension was the pre_shared_key extension and needs a PSK binder
|
3274
|
+
// filled in. The caller should then update |out| and, if applicable,
|
3275
|
+
// |out_encoded| with the binder after completing the whole message.
|
3276
|
+
//
|
3277
|
+
// If |omit_ech_len| is non-zero, the ECH extension is omitted, but padding is
|
3278
|
+
// computed as if there were an extension of length |omit_ech_len|. This is used
|
3279
|
+
// to compute ClientHelloOuterAAD.
|
3280
|
+
bool ssl_add_clienthello_tlsext(SSL_HANDSHAKE *hs, CBB *out, CBB *out_encoded,
|
3281
|
+
bool *out_needs_psk_binder,
|
3282
|
+
ssl_client_hello_type_t type, size_t header_len,
|
3283
|
+
size_t omit_ech_len);
|
2965
3284
|
|
2966
3285
|
bool ssl_add_serverhello_tlsext(SSL_HANDSHAKE *hs, CBB *out);
|
2967
3286
|
bool ssl_parse_clienthello_tlsext(SSL_HANDSHAKE *hs,
|
@@ -3004,12 +3323,6 @@ bool tls1_channel_id_hash(SSL_HANDSHAKE *hs, uint8_t *out, size_t *out_len);
|
|
3004
3323
|
// data.
|
3005
3324
|
bool tls1_record_handshake_hashes_for_channel_id(SSL_HANDSHAKE *hs);
|
3006
3325
|
|
3007
|
-
// ssl_do_channel_id_callback checks runs |hs->ssl->ctx->channel_id_cb| if
|
3008
|
-
// necessary. It returns true on success and false on fatal error. Note that, on
|
3009
|
-
// success, |hs->ssl->channel_id_private| may be unset, in which case the
|
3010
|
-
// operation should be retried later.
|
3011
|
-
bool ssl_do_channel_id_callback(SSL_HANDSHAKE *hs);
|
3012
|
-
|
3013
3326
|
// ssl_can_write returns whether |ssl| is allowed to write.
|
3014
3327
|
bool ssl_can_write(const SSL *ssl);
|
3015
3328
|
|
@@ -3133,9 +3446,6 @@ struct ssl_ctx_st {
|
|
3133
3446
|
int (*client_cert_cb)(SSL *ssl, X509 **out_x509,
|
3134
3447
|
EVP_PKEY **out_pkey) = nullptr;
|
3135
3448
|
|
3136
|
-
// get channel id callback
|
3137
|
-
void (*channel_id_cb)(SSL *ssl, EVP_PKEY **out_pkey) = nullptr;
|
3138
|
-
|
3139
3449
|
CRYPTO_EX_DATA ex_data;
|
3140
3450
|
|
3141
3451
|
// Default values used when no per-SSL value is defined follow
|
@@ -3263,9 +3573,15 @@ struct ssl_ctx_st {
|
|
3263
3573
|
// Supported group values inherited by SSL structure
|
3264
3574
|
bssl::Array<uint16_t> supported_group_list;
|
3265
3575
|
|
3266
|
-
//
|
3576
|
+
// channel_id_private is the client's Channel ID private key, or null if
|
3577
|
+
// Channel ID should not be offered on this connection.
|
3267
3578
|
bssl::UniquePtr<EVP_PKEY> channel_id_private;
|
3268
3579
|
|
3580
|
+
// ech_keys contains the server's list of ECHConfig values and associated
|
3581
|
+
// private keys. This list may be swapped out at any time, so all access must
|
3582
|
+
// be synchronized through |lock|.
|
3583
|
+
bssl::UniquePtr<SSL_ECH_KEYS> ech_keys;
|
3584
|
+
|
3269
3585
|
// keylog_callback, if not NULL, is the key logging callback. See
|
3270
3586
|
// |SSL_CTX_set_keylog_callback|.
|
3271
3587
|
void (*keylog_callback)(const SSL *ssl, const char *line) = nullptr;
|
@@ -3313,9 +3629,12 @@ struct ssl_ctx_st {
|
|
3313
3629
|
// advertise support.
|
3314
3630
|
bool channel_id_enabled : 1;
|
3315
3631
|
|
3316
|
-
// grease_enabled is whether
|
3632
|
+
// grease_enabled is whether GREASE (RFC 8701) is enabled.
|
3317
3633
|
bool grease_enabled : 1;
|
3318
3634
|
|
3635
|
+
// permute_extensions is whether to permute extensions when sending messages.
|
3636
|
+
bool permute_extensions : 1;
|
3637
|
+
|
3319
3638
|
// allow_unknown_alpn_protos is whether the client allows unsolicited ALPN
|
3320
3639
|
// protocols from the peer.
|
3321
3640
|
bool allow_unknown_alpn_protos : 1;
|
@@ -3324,10 +3643,6 @@ struct ssl_ctx_st {
|
|
3324
3643
|
// |SSL_MODE_ENABLE_FALSE_START| is enabled) is allowed without ALPN.
|
3325
3644
|
bool false_start_allowed_without_alpn : 1;
|
3326
3645
|
|
3327
|
-
// ignore_tls13_downgrade is whether a connection should continue when the
|
3328
|
-
// server random signals a downgrade.
|
3329
|
-
bool ignore_tls13_downgrade:1;
|
3330
|
-
|
3331
3646
|
// handoff indicates that a server should stop after receiving the
|
3332
3647
|
// ClientHello and pause the handshake in such a way that |SSL_get_error|
|
3333
3648
|
// returns |SSL_ERROR_HANDOFF|.
|
@@ -3448,10 +3763,12 @@ struct ssl_session_st {
|
|
3448
3763
|
// the peer, or zero if not applicable or unknown.
|
3449
3764
|
uint16_t peer_signature_algorithm = 0;
|
3450
3765
|
|
3451
|
-
//
|
3452
|
-
// session. In TLS 1.3 and up, it is the resumption
|
3453
|
-
|
3454
|
-
|
3766
|
+
// secret, in TLS 1.2 and below, is the master secret associated with the
|
3767
|
+
// session. In TLS 1.3 and up, it is the resumption PSK for sessions handed to
|
3768
|
+
// the caller, but it stores the resumption secret when stored on |SSL|
|
3769
|
+
// objects.
|
3770
|
+
int secret_length = 0;
|
3771
|
+
uint8_t secret[SSL_MAX_MASTER_KEY_LENGTH] = {0};
|
3455
3772
|
|
3456
3773
|
// session_id - valid?
|
3457
3774
|
unsigned session_id_length = 0;
|
@@ -3536,9 +3853,18 @@ struct ssl_session_st {
|
|
3536
3853
|
|
3537
3854
|
// early_alpn is the ALPN protocol from the initial handshake. This is only
|
3538
3855
|
// stored for TLS 1.3 and above in order to enforce ALPN matching for 0-RTT
|
3539
|
-
// resumptions.
|
3856
|
+
// resumptions. For the current connection's ALPN protocol, see
|
3857
|
+
// |alpn_selected| on |SSL3_STATE|.
|
3540
3858
|
bssl::Array<uint8_t> early_alpn;
|
3541
3859
|
|
3860
|
+
// local_application_settings, if |has_application_settings| is true, is the
|
3861
|
+
// local ALPS value for this connection.
|
3862
|
+
bssl::Array<uint8_t> local_application_settings;
|
3863
|
+
|
3864
|
+
// peer_application_settings, if |has_application_settings| is true, is the
|
3865
|
+
// peer ALPS value for this connection.
|
3866
|
+
bssl::Array<uint8_t> peer_application_settings;
|
3867
|
+
|
3542
3868
|
// extended_master_secret is whether the master secret in this session was
|
3543
3869
|
// generated using EMS and thus isn't vulnerable to the Triple Handshake
|
3544
3870
|
// attack.
|
@@ -3559,14 +3885,30 @@ struct ssl_session_st {
|
|
3559
3885
|
// is_quic indicates whether this session was created using QUIC.
|
3560
3886
|
bool is_quic : 1;
|
3561
3887
|
|
3562
|
-
//
|
3888
|
+
// has_application_settings indicates whether ALPS was negotiated in this
|
3889
|
+
// session.
|
3890
|
+
bool has_application_settings : 1;
|
3891
|
+
|
3892
|
+
// quic_early_data_context is used to determine whether early data must be
|
3563
3893
|
// rejected when performing a QUIC handshake.
|
3564
|
-
bssl::Array<uint8_t>
|
3894
|
+
bssl::Array<uint8_t> quic_early_data_context;
|
3565
3895
|
|
3566
3896
|
private:
|
3567
3897
|
~ssl_session_st();
|
3568
3898
|
friend void SSL_SESSION_free(SSL_SESSION *);
|
3569
3899
|
};
|
3570
3900
|
|
3901
|
+
struct ssl_ech_keys_st {
|
3902
|
+
ssl_ech_keys_st() = default;
|
3903
|
+
ssl_ech_keys_st(const ssl_ech_keys_st &) = delete;
|
3904
|
+
ssl_ech_keys_st &operator=(const ssl_ech_keys_st &) = delete;
|
3905
|
+
|
3906
|
+
bssl::GrowableArray<bssl::UniquePtr<bssl::ECHServerConfig>> configs;
|
3907
|
+
CRYPTO_refcount_t references = 1;
|
3908
|
+
|
3909
|
+
private:
|
3910
|
+
~ssl_ech_keys_st() = default;
|
3911
|
+
friend void SSL_ECH_KEYS_free(SSL_ECH_KEYS *);
|
3912
|
+
};
|
3571
3913
|
|
3572
3914
|
#endif // OPENSSL_HEADER_SSL_INTERNAL_H
|