grpc 1.27.0.pre1 → 1.30.1
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 +8023 -11437
- data/include/grpc/grpc.h +2 -2
- data/include/grpc/grpc_security.h +30 -9
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/grpc_types.h +24 -21
- data/include/grpc/impl/codegen/port_platform.h +13 -2
- data/include/grpc/impl/codegen/sync.h +5 -3
- data/include/grpc/impl/codegen/sync_abseil.h +36 -0
- data/include/grpc/module.modulemap +25 -37
- data/include/grpc/support/sync_abseil.h +26 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +282 -249
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +31 -47
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -3
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
- data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/http_proxy.cc +21 -11
- data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
- data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +297 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +271 -465
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +8 -7
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +18 -21
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -14
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -4
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +148 -98
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +49 -77
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
- data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
- data/src/core/ext/filters/client_channel/resolver.cc +5 -8
- data/src/core/ext/filters/client_channel/resolver.h +12 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +120 -132
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +17 -21
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +167 -121
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +3 -2
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +42 -45
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +94 -103
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +61 -10
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
- data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +242 -300
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +21 -18
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +56 -206
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +11 -14
- data/src/core/ext/filters/client_channel/server_address.h +3 -2
- data/src/core/ext/filters/client_channel/service_config.cc +144 -253
- data/src/core/ext/filters/client_channel/service_config.h +32 -109
- data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
- data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
- data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
- data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
- data/src/core/ext/filters/client_channel/subchannel.h +35 -11
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +1381 -301
- data/src/core/ext/filters/client_channel/xds/xds_api.h +211 -152
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +214 -359
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +28 -44
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +3 -1
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +16 -11
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +1118 -472
- data/src/core/ext/filters/client_channel/xds/xds_client.h +116 -45
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +59 -135
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +122 -137
- data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
- data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +38 -44
- data/src/core/ext/filters/message_size/message_size_filter.h +5 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +7 -10
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +26 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
- data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
- data/src/core/ext/transport/chttp2/transport/writing.cc +16 -9
- data/src/core/ext/transport/inproc/inproc_transport.cc +41 -42
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +30 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +54 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +5 -205
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -788
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +5 -362
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +14 -1337
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +403 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +1447 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +30 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +60 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +87 -23
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +262 -62
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +20 -15
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +46 -32
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +27 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +70 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +46 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +98 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +77 -21
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +201 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +8 -68
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +14 -201
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +92 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +240 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +2 -71
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +3 -228
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +266 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +2 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +31 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +109 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +399 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +18 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +145 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +527 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +112 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +30 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +199 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +18 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +815 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +3032 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +59 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +134 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +228 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +725 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +316 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +1132 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +33 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +144 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +12 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +27 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +62 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +89 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +249 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +30 -27
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +64 -52
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +48 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +104 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +17 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +30 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +44 -39
- data/src/core/ext/upb-generated/validate/validate.upb.h +155 -119
- data/src/core/lib/channel/channel_args.cc +15 -14
- data/src/core/lib/channel/channel_args.h +3 -1
- data/src/core/lib/channel/channel_stack.h +20 -13
- data/src/core/lib/channel/channel_trace.cc +32 -41
- data/src/core/lib/channel/channel_trace.h +3 -3
- data/src/core/lib/channel/channelz.cc +163 -254
- data/src/core/lib/channel/channelz.h +15 -17
- data/src/core/lib/channel/channelz_registry.cc +52 -77
- data/src/core/lib/channel/channelz_registry.h +4 -4
- data/src/core/lib/channel/connected_channel.cc +7 -5
- data/src/core/lib/channel/context.h +1 -1
- data/src/core/lib/channel/handshaker.cc +11 -13
- data/src/core/lib/channel/handshaker.h +4 -2
- data/src/core/lib/channel/handshaker_registry.cc +5 -17
- data/src/core/lib/channel/status_util.cc +2 -3
- data/src/core/lib/compression/message_compress.cc +5 -1
- data/src/core/lib/debug/stats.cc +21 -27
- data/src/core/lib/debug/stats.h +3 -1
- data/src/core/lib/gpr/spinlock.h +2 -3
- data/src/core/lib/gpr/string.cc +2 -26
- data/src/core/lib/gpr/string.h +0 -16
- data/src/core/lib/gpr/sync_abseil.cc +116 -0
- data/src/core/lib/gpr/sync_posix.cc +8 -5
- data/src/core/lib/gpr/sync_windows.cc +4 -2
- data/src/core/lib/gpr/time.cc +4 -0
- data/src/core/lib/gpr/time_posix.cc +1 -1
- data/src/core/lib/gprpp/atomic.h +6 -6
- data/src/core/lib/gprpp/fork.cc +1 -1
- data/src/core/lib/gprpp/host_port.cc +30 -36
- data/src/core/lib/gprpp/host_port.h +14 -17
- data/src/core/lib/gprpp/map.h +5 -11
- data/src/core/lib/gprpp/memory.h +2 -6
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
- data/src/core/lib/gprpp/sync.h +9 -0
- data/src/core/lib/http/format_request.cc +46 -65
- data/src/core/lib/http/httpcli.cc +2 -3
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +5 -5
- data/src/core/lib/http/parser.h +2 -3
- data/src/core/lib/iomgr/buffer_list.cc +36 -35
- data/src/core/lib/iomgr/buffer_list.h +22 -21
- data/src/core/lib/iomgr/call_combiner.h +3 -2
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
- data/src/core/lib/iomgr/closure.h +2 -3
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
- data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
- data/src/core/lib/iomgr/endpoint_pair.h +2 -3
- data/src/core/lib/iomgr/error.cc +6 -9
- data/src/core/lib/iomgr/error.h +4 -5
- data/src/core/lib/iomgr/ev_apple.cc +356 -0
- data/src/core/lib/iomgr/ev_apple.h +43 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
- data/src/core/lib/iomgr/ev_epollex_linux.cc +14 -7
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
- data/src/core/lib/iomgr/ev_posix.cc +2 -3
- data/src/core/lib/iomgr/exec_ctx.h +14 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
- data/src/core/lib/iomgr/load_file.cc +1 -0
- data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
- data/src/core/lib/iomgr/pollset_uv.h +32 -0
- data/src/core/lib/iomgr/port.h +1 -0
- data/src/core/lib/iomgr/python_util.h +46 -0
- data/src/core/lib/iomgr/resolve_address.h +4 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
- data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
- data/src/core/lib/iomgr/resource_quota.cc +4 -6
- data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
- data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
- data/src/core/lib/iomgr/socket_mutator.h +2 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
- data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
- data/src/core/lib/iomgr/tcp_client_posix.cc +25 -22
- data/src/core/lib/iomgr/tcp_client_posix.h +6 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
- data/src/core/lib/iomgr/tcp_custom.cc +2 -3
- data/src/core/lib/iomgr/tcp_posix.cc +2 -1
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
- data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
- data/src/core/lib/iomgr/tcp_uv.cc +3 -2
- data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
- data/src/core/lib/iomgr/timer_generic.cc +2 -3
- data/src/core/lib/iomgr/timer_generic.h +39 -0
- data/src/core/lib/iomgr/timer_heap.h +2 -3
- data/src/core/lib/iomgr/udp_server.cc +9 -14
- data/src/core/lib/iomgr/work_serializer.cc +155 -0
- data/src/core/lib/iomgr/work_serializer.h +65 -0
- data/src/core/lib/json/json.h +210 -79
- data/src/core/lib/json/json_reader.cc +469 -455
- data/src/core/lib/json/json_writer.cc +174 -169
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
- data/src/core/lib/security/credentials/credentials.cc +0 -84
- data/src/core/lib/security/credentials/credentials.h +8 -59
- data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -12
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
- data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +26 -56
- data/src/core/lib/security/credentials/jwt/json_token.h +4 -6
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -18
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +151 -168
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -6
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +91 -60
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +10 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +40 -12
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +6 -8
- data/src/core/lib/security/security_connector/security_connector.h +1 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -37
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +62 -13
- data/src/core/lib/security/security_connector/ssl_utils.h +12 -11
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +101 -52
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +32 -6
- data/src/core/lib/security/transport/auth_filters.h +0 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
- data/src/core/lib/security/transport/security_handshaker.cc +2 -2
- data/src/core/lib/security/util/json_util.cc +22 -15
- data/src/core/lib/security/util/json_util.h +2 -2
- data/src/core/lib/slice/slice_intern.cc +2 -3
- data/src/core/lib/slice/slice_internal.h +14 -0
- data/src/core/lib/slice/slice_utils.h +9 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
- data/src/core/lib/surface/call.cc +2 -3
- data/src/core/lib/surface/call_log_batch.cc +50 -58
- data/src/core/lib/surface/channel.cc +53 -31
- data/src/core/lib/surface/channel.h +35 -4
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/completion_queue.cc +33 -33
- data/src/core/lib/surface/event_string.cc +18 -25
- data/src/core/lib/surface/event_string.h +3 -1
- data/src/core/lib/surface/init_secure.cc +1 -4
- data/src/core/lib/surface/server.cc +570 -369
- data/src/core/lib/surface/server.h +32 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.h +7 -2
- data/src/core/lib/transport/connectivity_state.cc +7 -6
- data/src/core/lib/transport/connectivity_state.h +5 -3
- data/src/core/lib/transport/metadata.cc +3 -3
- data/src/core/lib/transport/metadata_batch.h +2 -3
- data/src/core/lib/transport/static_metadata.h +1 -1
- data/src/core/lib/transport/status_conversion.cc +6 -14
- data/src/core/lib/transport/transport.cc +2 -3
- data/src/core/lib/transport/transport.h +3 -2
- data/src/core/lib/transport/transport_op_string.cc +61 -102
- data/src/core/lib/uri/uri_parser.h +2 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +9 -2
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +33 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
- data/src/core/tsi/fake_transport_security.cc +10 -15
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +54 -40
- data/src/core/tsi/ssl_transport_security.h +8 -8
- data/src/core/tsi/ssl_types.h +0 -2
- data/src/core/tsi/transport_security.h +6 -9
- data/src/core/tsi/transport_security_grpc.h +2 -3
- data/src/core/tsi/transport_security_interface.h +3 -3
- data/src/ruby/ext/grpc/rb_call.c +9 -1
- data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
- data/src/ruby/lib/grpc/errors.rb +103 -42
- data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
- data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
- data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
- data/src/ruby/lib/grpc/generic/service.rb +5 -4
- data/src/ruby/lib/grpc/structs.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +5 -3
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/generic/service_spec.rb +2 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +5 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -0
- data/src/ruby/spec/support/services.rb +10 -4
- data/src/ruby/spec/testdata/ca.pem +18 -13
- data/src/ruby/spec/testdata/client.key +26 -14
- data/src/ruby/spec/testdata/client.pem +18 -12
- data/src/ruby/spec/testdata/server1.key +26 -14
- data/src/ruby/spec/testdata/server1.pem +20 -14
- data/third_party/abseil-cpp/absl/base/attributes.h +13 -1
- data/third_party/abseil-cpp/absl/base/config.h +55 -6
- data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +30 -9
- data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +9 -6
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +5 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +15 -13
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +12 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +9 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +37 -0
- data/third_party/abseil-cpp/absl/base/options.h +9 -12
- data/third_party/abseil-cpp/absl/numeric/int128.cc +2 -2
- data/third_party/abseil-cpp/absl/numeric/int128.h +1 -1
- data/third_party/abseil-cpp/absl/strings/ascii.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +0 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +388 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +432 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +245 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +209 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +326 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +51 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +415 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +493 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +23 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +104 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +334 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +333 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +54 -5
- data/third_party/abseil-cpp/absl/strings/numbers.h +6 -3
- data/third_party/abseil-cpp/absl/strings/str_format.h +537 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +31 -24
- data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
- data/third_party/abseil-cpp/absl/time/clock.h +74 -0
- data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
- data/third_party/abseil-cpp/absl/time/format.cc +153 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
- data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
- data/third_party/abseil-cpp/absl/time/time.cc +499 -0
- data/third_party/abseil-cpp/absl/time/time.h +1584 -0
- data/{src/boringssl → third_party/boringssl-with-bazel}/err_data.c +329 -297
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bitstr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bool.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_d2i_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_dup.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_gentm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_i2d_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_mbstr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_object.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_octet.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_strnid.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_time.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_type.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utctm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utf8.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_locl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_par.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn_pack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_string.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_dec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_enc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_fre.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_new.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_typ.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_utl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/time_support.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/base64/base64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio_mem.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/connect.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/fd.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/file.c +5 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/hexdump.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/pair.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/printf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket_helper.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/bn_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/convert.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/buf/buf.c +10 -69
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/asn1_compat.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/ber.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbb.c +41 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbs.c +60 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/unicode.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/chacha.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/cipher_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/derive_key.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesccm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesctrhmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesgcmsiv.c +8 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_chacha20poly1305.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_null.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_tls.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/tls_cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cmac/cmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf_def.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-fuchsia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-linux.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.c +7 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-intel.c +13 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-ppc64le.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/crypto.c +11 -0
- data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/curve25519.c +18 -26
- data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/curve25519_tables.h +13 -21
- data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/internal.h +14 -22
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/curve25519/spake25519.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/check.c +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh.c +16 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/params.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/digest_extra/digest_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa.c +10 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_derive.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdh_extra/ecdh_extra.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdsa_extra/ecdsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/engine/engine.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/err.c +39 -38
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/digestsign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_dsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa.c +14 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519_asn1.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/pbkdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/scrypt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/sign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ex_data.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +108 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1282 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/internal.h +5 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/key_wrap.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/mode_wrappers.c +0 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bcm.c +4 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/add.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bytes.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/cmp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/exponentiation.c +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/generic.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/internal.h +14 -11
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/jacobi.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery.c +8 -8
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery_inv.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/mul.c +30 -154
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/prime.c +11 -12
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/random.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/shift.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/sqrt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/aead.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/cipher.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_aes.c +3 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/delocate.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digest.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digests.c +16 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/md32_common.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec.c +289 -117
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_key.c +14 -28
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/felem.c +25 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/internal.h +432 -160
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/oct.c +63 -71
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p224-64.c +5 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9497 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +175 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/simple.c +125 -148
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +270 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/util.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/wnaf.c +61 -18
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdh/ecdh.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/fips_shared_support.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/hmac/hmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/is_fips.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md4/md4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/md5.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cfb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ctr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/gcm.c +45 -193
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +304 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/internal.h +8 -18
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ofb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/polyval.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/ctrdrbg.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/internal.h +41 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/rand.c +32 -17
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/urandom.c +24 -114
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/blinding.c +4 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/internal.h +1 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/padding.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa.c +58 -39
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa_impl.c +72 -49
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/self_check/self_check.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1-altivec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha256.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha512.c +44 -35
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/kdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hkdf/hkdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/hrss.c +210 -311
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/internal.h +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/internal.h +21 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/lhash/lhash.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/mem.c +99 -12
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj.c +16 -21
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_dat.h +41 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_xref.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_all.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_info.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_lib.c +7 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_oth.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pk8.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pkey.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_xaux.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/p5_pbev2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_arm.c +21 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_vec.c +34 -17
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/pool.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/deterministic.c +6 -10
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/forkunsafe.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/fuchsia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/rand_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/windows.c +16 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rc4/rc4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_c11.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_lock.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/siphash/siphash.c +3 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/stack/stack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_none.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_pthread.c +4 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_win.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_digest.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_sign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_strex.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_verify.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/algorithm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/asn1_gen.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_dir.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_file.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/charmap.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/i2d_pr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/rsa_pss.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/vpm_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_att.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_cmp.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_d2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_def.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_ext.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_lu.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_obj.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_r2x.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_req.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_set.c +16 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_trs.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_txt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_v3.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vfy.c +5 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vpm.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509cset.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509name.c +4 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509rset.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_algor.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_all.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_attrib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_exten.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_info.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_name.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pubkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_sig.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_val.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/ext_dat.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_cache.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_data.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_map.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_node.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_tree.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akeya.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_alt.c +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bitst.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_conf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_cpols.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_crld.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_enum.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_extku.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_genn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ia5.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_info.c +4 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ncons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ocsp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pci.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pku.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pmaps.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_prn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_purp.c +2 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_skey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_sxnet.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_utl.c +11 -12
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aead.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aes.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/arm_arch.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1t.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base.h +5 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bio.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/blowfish.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bn.h +32 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buf.h +9 -9
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buffer.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bytestring.h +34 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cast.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/chacha.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cipher.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/conf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cpu.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/crypto.h +9 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/curve25519.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/des.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dh.h +20 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/digest.h +1 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dsa.h +16 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dtls1.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/e_os2.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec.h +11 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec_key.h +4 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdh.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdsa.h +6 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/engine.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/err.h +13 -9
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/evp.h +20 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ex_data.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hkdf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hrss.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/is_boringssl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/lhash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md4.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md5.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/mem.h +17 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/nid.h +14 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/objects.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslconf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslv.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ossl_typ.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pem.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs12.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs7.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs8.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/poly1305.h +5 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pool.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rand.h +3 -17
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rc4.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ripemd.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rsa.h +31 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/safestack.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/sha.h +26 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/siphash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/span.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/srtp.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl.h +182 -97
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl3.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/stack.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/thread.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/tls1.h +1 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/type_check.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509.h +5 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509_vfy.h +1 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509v3.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/bio_ssl.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_both.cc +0 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_lib.cc +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_pkt.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_srtp.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_method.cc +13 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_record.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handoff.cc +237 -51
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake.cc +19 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_client.cc +51 -32
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_server.cc +12 -8
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/internal.h +94 -71
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_both.cc +10 -10
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_lib.cc +4 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_pkt.cc +21 -22
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_aead_ctx.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_asn1.cc +30 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_buffer.cc +34 -15
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cert.cc +4 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cipher.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_file.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_key_share.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_lib.cc +19 -15
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_privkey.cc +13 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_session.cc +66 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_stat.cc +6 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_transcript.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_versions.cc +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_x509.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_enc.cc +6 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_lib.cc +53 -219
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_both.cc +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_client.cc +101 -31
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_enc.cc +28 -76
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_server.cc +111 -104
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_method.cc +64 -26
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_record.cc +7 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_32.h +245 -175
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_64.h +135 -75
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3147 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256_64.h +512 -503
- metadata +648 -503
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1917
- data/src/core/lib/gprpp/inlined_vector.h +0 -246
- data/src/core/lib/gprpp/optional.h +0 -74
- data/src/core/lib/gprpp/string_view.h +0 -169
- data/src/core/lib/iomgr/logical_thread.cc +0 -103
- data/src/core/lib/iomgr/logical_thread.h +0 -52
- data/src/core/lib/json/json.cc +0 -94
- data/src/core/tsi/grpc_shadow_boringssl.h +0 -3297
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +0 -860
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -9501
- data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +0 -96
- data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +0 -84
- data/third_party/boringssl/third_party/fiat/p256.c +0 -1063
- data/third_party/boringssl/third_party/fiat/p256_32.h +0 -3226
@@ -356,7 +356,7 @@ bool tls13_process_certificate_verify(SSL_HANDSHAKE *hs, const SSLMessage &msg)
|
|
356
356
|
}
|
357
357
|
|
358
358
|
uint8_t alert = SSL_AD_DECODE_ERROR;
|
359
|
-
if (!tls12_check_peer_sigalg(
|
359
|
+
if (!tls12_check_peer_sigalg(hs, &alert, signature_algorithm)) {
|
360
360
|
ssl_send_alert(ssl, SSL3_AL_FATAL, alert);
|
361
361
|
return false;
|
362
362
|
}
|
@@ -52,6 +52,54 @@ enum client_hs_state_t {
|
|
52
52
|
|
53
53
|
static const uint8_t kZeroes[EVP_MAX_MD_SIZE] = {0};
|
54
54
|
|
55
|
+
// end_of_early_data closes the early data stream for |hs| and switches the
|
56
|
+
// encryption level to |level|. It returns true on success and false on error.
|
57
|
+
static bool close_early_data(SSL_HANDSHAKE *hs, ssl_encryption_level_t level) {
|
58
|
+
SSL *const ssl = hs->ssl;
|
59
|
+
assert(hs->in_early_data);
|
60
|
+
|
61
|
+
// Note |can_early_write| may already be false if |SSL_write| exceeded the
|
62
|
+
// early data write limit.
|
63
|
+
hs->can_early_write = false;
|
64
|
+
|
65
|
+
// 0-RTT write states on the client differ between TLS 1.3, DTLS 1.3, and
|
66
|
+
// QUIC. TLS 1.3 has one write encryption level at a time. 0-RTT write keys
|
67
|
+
// overwrite the null cipher and defer handshake write keys. While a
|
68
|
+
// HelloRetryRequest can cause us to rewind back to the null cipher, sequence
|
69
|
+
// numbers have no effect, so we can install a "new" null cipher.
|
70
|
+
//
|
71
|
+
// In QUIC and DTLS 1.3, 0-RTT write state cannot override or defer the normal
|
72
|
+
// write state. The two ClientHello sequence numbers must align, and handshake
|
73
|
+
// write keys must be installed early to ACK the EncryptedExtensions.
|
74
|
+
//
|
75
|
+
// We do not currently implement DTLS 1.3 and, in QUIC, the caller handles
|
76
|
+
// 0-RTT data, so we can skip installing 0-RTT keys and act as if there is one
|
77
|
+
// write level. If we implement DTLS 1.3, we'll need to model this better.
|
78
|
+
if (ssl->quic_method == nullptr) {
|
79
|
+
if (level == ssl_encryption_initial) {
|
80
|
+
bssl::UniquePtr<SSLAEADContext> null_ctx =
|
81
|
+
SSLAEADContext::CreateNullCipher(SSL_is_dtls(ssl));
|
82
|
+
if (!null_ctx ||
|
83
|
+
!ssl->method->set_write_state(ssl, ssl_encryption_initial,
|
84
|
+
std::move(null_ctx),
|
85
|
+
/*secret_for_quic=*/{})) {
|
86
|
+
return false;
|
87
|
+
}
|
88
|
+
ssl->s3->aead_write_ctx->SetVersionIfNullCipher(ssl->version);
|
89
|
+
} else {
|
90
|
+
assert(level == ssl_encryption_handshake);
|
91
|
+
if (!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_seal,
|
92
|
+
hs->new_session.get(),
|
93
|
+
hs->client_handshake_secret())) {
|
94
|
+
return false;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
assert(ssl->s3->write_level == level);
|
100
|
+
return true;
|
101
|
+
}
|
102
|
+
|
55
103
|
static enum ssl_hs_wait_t do_read_hello_retry_request(SSL_HANDSHAKE *hs) {
|
56
104
|
SSL *const ssl = hs->ssl;
|
57
105
|
assert(ssl->s3->have_version);
|
@@ -183,28 +231,30 @@ static enum ssl_hs_wait_t do_read_hello_retry_request(SSL_HANDSHAKE *hs) {
|
|
183
231
|
return ssl_hs_error;
|
184
232
|
}
|
185
233
|
|
234
|
+
// HelloRetryRequest should be the end of the flight.
|
235
|
+
if (ssl->method->has_unprocessed_handshake_data(ssl)) {
|
236
|
+
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE);
|
237
|
+
OPENSSL_PUT_ERROR(SSL, SSL_R_EXCESS_HANDSHAKE_DATA);
|
238
|
+
return ssl_hs_error;
|
239
|
+
}
|
240
|
+
|
186
241
|
ssl->method->next_message(ssl);
|
187
|
-
|
242
|
+
ssl->s3->used_hello_retry_request = true;
|
188
243
|
hs->tls13_state = state_send_second_client_hello;
|
189
244
|
// 0-RTT is rejected if we receive a HelloRetryRequest.
|
190
245
|
if (hs->in_early_data) {
|
191
246
|
ssl->s3->early_data_reason = ssl_early_data_hello_retry_request;
|
247
|
+
if (!close_early_data(hs, ssl_encryption_initial)) {
|
248
|
+
return ssl_hs_error;
|
249
|
+
}
|
192
250
|
return ssl_hs_early_data_rejected;
|
193
251
|
}
|
194
252
|
return ssl_hs_ok;
|
195
253
|
}
|
196
254
|
|
197
255
|
static enum ssl_hs_wait_t do_send_second_client_hello(SSL_HANDSHAKE *hs) {
|
198
|
-
|
199
|
-
|
200
|
-
bssl::UniquePtr<SSLAEADContext> null_ctx =
|
201
|
-
SSLAEADContext::CreateNullCipher(SSL_is_dtls(ssl));
|
202
|
-
if (!null_ctx ||
|
203
|
-
!ssl->method->set_write_state(ssl, std::move(null_ctx))) {
|
204
|
-
return ssl_hs_error;
|
205
|
-
}
|
206
|
-
|
207
|
-
ssl->s3->aead_write_ctx->SetVersionIfNullCipher(ssl->version);
|
256
|
+
// Any 0-RTT keys must have been discarded.
|
257
|
+
assert(hs->ssl->s3->write_level == ssl_encryption_initial);
|
208
258
|
|
209
259
|
if (!ssl_write_client_hello(hs)) {
|
210
260
|
return ssl_hs_error;
|
@@ -269,8 +319,7 @@ static enum ssl_hs_wait_t do_read_server_hello(SSL_HANDSHAKE *hs) {
|
|
269
319
|
}
|
270
320
|
|
271
321
|
// Check that the cipher matches the one in the HelloRetryRequest.
|
272
|
-
if (hs->
|
273
|
-
hs->new_cipher != cipher) {
|
322
|
+
if (ssl->s3->used_hello_retry_request && hs->new_cipher != cipher) {
|
274
323
|
OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_CIPHER_RETURNED);
|
275
324
|
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
|
276
325
|
return ssl_hs_error;
|
@@ -392,21 +441,28 @@ static enum ssl_hs_wait_t do_read_server_hello(SSL_HANDSHAKE *hs) {
|
|
392
441
|
|
393
442
|
if (!tls13_advance_key_schedule(hs, dhe_secret) ||
|
394
443
|
!ssl_hash_message(hs, msg) ||
|
395
|
-
!tls13_derive_handshake_secrets(hs)
|
396
|
-
!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_open,
|
397
|
-
hs->server_handshake_secret())) {
|
444
|
+
!tls13_derive_handshake_secrets(hs)) {
|
398
445
|
return ssl_hs_error;
|
399
446
|
}
|
400
447
|
|
401
|
-
|
402
|
-
|
403
|
-
|
448
|
+
// If currently sending early data over TCP, we defer installing client
|
449
|
+
// traffic keys to when the early data stream is closed. See
|
450
|
+
// |close_early_data|. Note if the server has already rejected 0-RTT via
|
451
|
+
// HelloRetryRequest, |in_early_data| is already false.
|
452
|
+
if (!hs->in_early_data || ssl->quic_method != nullptr) {
|
404
453
|
if (!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_seal,
|
454
|
+
hs->new_session.get(),
|
405
455
|
hs->client_handshake_secret())) {
|
406
456
|
return ssl_hs_error;
|
407
457
|
}
|
408
458
|
}
|
409
459
|
|
460
|
+
if (!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_open,
|
461
|
+
hs->new_session.get(),
|
462
|
+
hs->server_handshake_secret())) {
|
463
|
+
return ssl_hs_error;
|
464
|
+
}
|
465
|
+
|
410
466
|
ssl->method->next_message(ssl);
|
411
467
|
hs->tls13_state = state_read_encrypted_extensions;
|
412
468
|
return ssl_hs_ok;
|
@@ -440,14 +496,20 @@ static enum ssl_hs_wait_t do_read_encrypted_extensions(SSL_HANDSHAKE *hs) {
|
|
440
496
|
}
|
441
497
|
|
442
498
|
if (ssl->s3->early_data_accepted) {
|
443
|
-
if (hs->early_session->cipher != hs->new_session->cipher
|
444
|
-
|
445
|
-
|
499
|
+
if (hs->early_session->cipher != hs->new_session->cipher) {
|
500
|
+
OPENSSL_PUT_ERROR(SSL, SSL_R_CIPHER_MISMATCH_ON_EARLY_DATA);
|
501
|
+
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
|
502
|
+
return ssl_hs_error;
|
503
|
+
}
|
504
|
+
if (MakeConstSpan(hs->early_session->early_alpn) !=
|
505
|
+
ssl->s3->alpn_selected) {
|
446
506
|
OPENSSL_PUT_ERROR(SSL, SSL_R_ALPN_MISMATCH_ON_EARLY_DATA);
|
507
|
+
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
|
447
508
|
return ssl_hs_error;
|
448
509
|
}
|
449
510
|
if (ssl->s3->channel_id_valid || ssl->s3->token_binding_negotiated) {
|
450
511
|
OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA);
|
512
|
+
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
|
451
513
|
return ssl_hs_error;
|
452
514
|
}
|
453
515
|
}
|
@@ -459,6 +521,9 @@ static enum ssl_hs_wait_t do_read_encrypted_extensions(SSL_HANDSHAKE *hs) {
|
|
459
521
|
ssl->method->next_message(ssl);
|
460
522
|
hs->tls13_state = state_read_certificate_request;
|
461
523
|
if (hs->in_early_data && !ssl->s3->early_data_accepted) {
|
524
|
+
if (!close_early_data(hs, ssl_encryption_handshake)) {
|
525
|
+
return ssl_hs_error;
|
526
|
+
}
|
462
527
|
return ssl_hs_early_data_rejected;
|
463
528
|
}
|
464
529
|
return ssl_hs_ok;
|
@@ -594,7 +659,7 @@ static enum ssl_hs_wait_t do_read_server_certificate_verify(
|
|
594
659
|
|
595
660
|
static enum ssl_hs_wait_t do_server_certificate_reverify(
|
596
661
|
SSL_HANDSHAKE *hs) {
|
597
|
-
switch (ssl_reverify_peer_cert(hs)) {
|
662
|
+
switch (ssl_reverify_peer_cert(hs, /*send_alert=*/true)) {
|
598
663
|
case ssl_verify_ok:
|
599
664
|
break;
|
600
665
|
case ssl_verify_invalid:
|
@@ -623,6 +688,13 @@ static enum ssl_hs_wait_t do_read_server_finished(SSL_HANDSHAKE *hs) {
|
|
623
688
|
return ssl_hs_error;
|
624
689
|
}
|
625
690
|
|
691
|
+
// Finished should be the end of the flight.
|
692
|
+
if (ssl->method->has_unprocessed_handshake_data(ssl)) {
|
693
|
+
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE);
|
694
|
+
OPENSSL_PUT_ERROR(SSL, SSL_R_EXCESS_HANDSHAKE_DATA);
|
695
|
+
return ssl_hs_error;
|
696
|
+
}
|
697
|
+
|
626
698
|
ssl->method->next_message(ssl);
|
627
699
|
hs->tls13_state = state_send_end_of_early_data;
|
628
700
|
return ssl_hs_ok;
|
@@ -632,7 +704,6 @@ static enum ssl_hs_wait_t do_send_end_of_early_data(SSL_HANDSHAKE *hs) {
|
|
632
704
|
SSL *const ssl = hs->ssl;
|
633
705
|
|
634
706
|
if (ssl->s3->early_data_accepted) {
|
635
|
-
hs->can_early_write = false;
|
636
707
|
// QUIC omits the EndOfEarlyData message. See draft-ietf-quic-tls-22,
|
637
708
|
// section 8.3.
|
638
709
|
if (ssl->quic_method == nullptr) {
|
@@ -644,11 +715,8 @@ static enum ssl_hs_wait_t do_send_end_of_early_data(SSL_HANDSHAKE *hs) {
|
|
644
715
|
return ssl_hs_error;
|
645
716
|
}
|
646
717
|
}
|
647
|
-
}
|
648
718
|
|
649
|
-
|
650
|
-
if (!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_seal,
|
651
|
-
hs->client_handshake_secret())) {
|
719
|
+
if (!close_early_data(hs, ssl_encryption_handshake)) {
|
652
720
|
return ssl_hs_error;
|
653
721
|
}
|
654
722
|
}
|
@@ -742,10 +810,12 @@ static enum ssl_hs_wait_t do_complete_second_flight(SSL_HANDSHAKE *hs) {
|
|
742
810
|
}
|
743
811
|
|
744
812
|
// Derive the final keys and enable them.
|
745
|
-
if (!tls13_set_traffic_key(ssl, ssl_encryption_application,
|
746
|
-
hs->
|
747
|
-
!tls13_set_traffic_key(ssl, ssl_encryption_application, evp_aead_seal,
|
813
|
+
if (!tls13_set_traffic_key(ssl, ssl_encryption_application, evp_aead_seal,
|
814
|
+
hs->new_session.get(),
|
748
815
|
hs->client_traffic_secret_0()) ||
|
816
|
+
!tls13_set_traffic_key(ssl, ssl_encryption_application, evp_aead_open,
|
817
|
+
hs->new_session.get(),
|
818
|
+
hs->server_traffic_secret_0()) ||
|
749
819
|
!tls13_derive_resumption_secret(hs)) {
|
750
820
|
return ssl_hs_error;
|
751
821
|
}
|
@@ -62,7 +62,11 @@ bool tls13_init_key_schedule(SSL_HANDSHAKE *hs, Span
|
|
62
62
|
return false;
|
63
63
|
}
|
64
64
|
|
65
|
-
|
65
|
+
// Handback includes the whole handshake transcript, so we cannot free the
|
66
|
+
// transcript buffer in the handback case.
|
67
|
+
if (!hs->handback) {
|
68
|
+
hs->transcript.FreeBuffer();
|
69
|
+
}
|
66
70
|
return hkdf_extract_to_secret(hs, psk);
|
67
71
|
}
|
68
72
|
|
@@ -135,12 +139,18 @@ static bool derive_secret(SSL_HANDSHAKE *hs, Span
|
|
135
139
|
|
136
140
|
bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level,
|
137
141
|
enum evp_aead_direction_t direction,
|
142
|
+
const SSL_SESSION *session,
|
138
143
|
Span<const uint8_t> traffic_secret) {
|
139
|
-
const SSL_SESSION *session = SSL_get_session(ssl);
|
140
144
|
uint16_t version = ssl_session_protocol_version(session);
|
141
|
-
|
142
145
|
UniquePtr<SSLAEADContext> traffic_aead;
|
143
|
-
|
146
|
+
Span<const uint8_t> secret_for_quic;
|
147
|
+
if (ssl->quic_method != nullptr) {
|
148
|
+
// Install a placeholder SSLAEADContext so that SSL accessors work. The
|
149
|
+
// encryption itself will be handled by the SSL_QUIC_METHOD.
|
150
|
+
traffic_aead =
|
151
|
+
SSLAEADContext::CreatePlaceholderForQUIC(version, session->cipher);
|
152
|
+
secret_for_quic = traffic_secret;
|
153
|
+
} else {
|
144
154
|
// Look up cipher suite properties.
|
145
155
|
const EVP_AEAD *aead;
|
146
156
|
size_t discard;
|
@@ -169,34 +179,15 @@ bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level,
|
|
169
179
|
return false;
|
170
180
|
}
|
171
181
|
|
172
|
-
|
173
182
|
traffic_aead = SSLAEADContext::Create(direction, session->ssl_version,
|
174
183
|
SSL_is_dtls(ssl), session->cipher,
|
175
184
|
key, Span<const uint8_t>(), iv);
|
176
|
-
} else {
|
177
|
-
// Install a placeholder SSLAEADContext so that SSL accessors work. The
|
178
|
-
// encryption itself will be handled by the SSL_QUIC_METHOD.
|
179
|
-
traffic_aead =
|
180
|
-
SSLAEADContext::CreatePlaceholderForQUIC(version, session->cipher);
|
181
|
-
// QUIC never installs early data keys at the TLS layer.
|
182
|
-
assert(level != ssl_encryption_early_data);
|
183
185
|
}
|
184
186
|
|
185
187
|
if (!traffic_aead) {
|
186
188
|
return false;
|
187
189
|
}
|
188
190
|
|
189
|
-
if (direction == evp_aead_open) {
|
190
|
-
if (!ssl->method->set_read_state(ssl, std::move(traffic_aead))) {
|
191
|
-
return false;
|
192
|
-
}
|
193
|
-
} else {
|
194
|
-
if (!ssl->method->set_write_state(ssl, std::move(traffic_aead))) {
|
195
|
-
return false;
|
196
|
-
}
|
197
|
-
}
|
198
|
-
|
199
|
-
// Save the traffic secret.
|
200
191
|
if (traffic_secret.size() >
|
201
192
|
OPENSSL_ARRAY_SIZE(ssl->s3->read_traffic_secret) ||
|
202
193
|
traffic_secret.size() >
|
@@ -204,16 +195,23 @@ bool tls13_set_traffic_key(SSL *ssl, enum ssl_encryption_level_t level,
|
|
204
195
|
OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
|
205
196
|
return false;
|
206
197
|
}
|
198
|
+
|
207
199
|
if (direction == evp_aead_open) {
|
200
|
+
if (!ssl->method->set_read_state(ssl, level, std::move(traffic_aead),
|
201
|
+
secret_for_quic)) {
|
202
|
+
return false;
|
203
|
+
}
|
208
204
|
OPENSSL_memmove(ssl->s3->read_traffic_secret, traffic_secret.data(),
|
209
205
|
traffic_secret.size());
|
210
206
|
ssl->s3->read_traffic_secret_len = traffic_secret.size();
|
211
|
-
ssl->s3->read_level = level;
|
212
207
|
} else {
|
208
|
+
if (!ssl->method->set_write_state(ssl, level, std::move(traffic_aead),
|
209
|
+
secret_for_quic)) {
|
210
|
+
return false;
|
211
|
+
}
|
213
212
|
OPENSSL_memmove(ssl->s3->write_traffic_secret, traffic_secret.data(),
|
214
213
|
traffic_secret.size());
|
215
214
|
ssl->s3->write_traffic_secret_len = traffic_secret.size();
|
216
|
-
ssl->s3->write_level = level;
|
217
215
|
}
|
218
216
|
|
219
217
|
return true;
|
@@ -239,47 +237,6 @@ bool tls13_derive_early_secret(SSL_HANDSHAKE *hs) {
|
|
239
237
|
return true;
|
240
238
|
}
|
241
239
|
|
242
|
-
bool tls13_set_early_secret_for_quic(SSL_HANDSHAKE *hs) {
|
243
|
-
SSL *const ssl = hs->ssl;
|
244
|
-
if (ssl->quic_method == nullptr) {
|
245
|
-
return true;
|
246
|
-
}
|
247
|
-
if (ssl->server) {
|
248
|
-
if (!ssl->quic_method->set_encryption_secrets(
|
249
|
-
ssl, ssl_encryption_early_data, hs->early_traffic_secret().data(),
|
250
|
-
/*write_secret=*/nullptr, hs->early_traffic_secret().size())) {
|
251
|
-
OPENSSL_PUT_ERROR(SSL, SSL_R_QUIC_INTERNAL_ERROR);
|
252
|
-
return false;
|
253
|
-
}
|
254
|
-
} else {
|
255
|
-
if (!ssl->quic_method->set_encryption_secrets(
|
256
|
-
ssl, ssl_encryption_early_data, /*read_secret=*/nullptr,
|
257
|
-
hs->early_traffic_secret().data(),
|
258
|
-
hs->early_traffic_secret().size())) {
|
259
|
-
OPENSSL_PUT_ERROR(SSL, SSL_R_QUIC_INTERNAL_ERROR);
|
260
|
-
return false;
|
261
|
-
}
|
262
|
-
}
|
263
|
-
return true;
|
264
|
-
}
|
265
|
-
|
266
|
-
static bool set_quic_secrets(SSL_HANDSHAKE *hs, ssl_encryption_level_t level,
|
267
|
-
Span<const uint8_t> client_write_secret,
|
268
|
-
Span<const uint8_t> server_write_secret) {
|
269
|
-
SSL *const ssl = hs->ssl;
|
270
|
-
assert(client_write_secret.size() == server_write_secret.size());
|
271
|
-
if (ssl->quic_method == nullptr) {
|
272
|
-
return true;
|
273
|
-
}
|
274
|
-
if (!ssl->server) {
|
275
|
-
std::swap(client_write_secret, server_write_secret);
|
276
|
-
}
|
277
|
-
return ssl->quic_method->set_encryption_secrets(
|
278
|
-
ssl, level,
|
279
|
-
/*read_secret=*/client_write_secret.data(),
|
280
|
-
/*write_secret=*/server_write_secret.data(), client_write_secret.size());
|
281
|
-
}
|
282
|
-
|
283
240
|
bool tls13_derive_handshake_secrets(SSL_HANDSHAKE *hs) {
|
284
241
|
SSL *const ssl = hs->ssl;
|
285
242
|
if (!derive_secret(hs, hs->client_handshake_secret(),
|
@@ -289,10 +246,7 @@ bool tls13_derive_handshake_secrets(SSL_HANDSHAKE *hs) {
|
|
289
246
|
!derive_secret(hs, hs->server_handshake_secret(),
|
290
247
|
label_to_span(kTLS13LabelServerHandshakeTraffic)) ||
|
291
248
|
!ssl_log_secret(ssl, "SERVER_HANDSHAKE_TRAFFIC_SECRET",
|
292
|
-
hs->server_handshake_secret())
|
293
|
-
!set_quic_secrets(hs, ssl_encryption_handshake,
|
294
|
-
hs->client_handshake_secret(),
|
295
|
-
hs->server_handshake_secret())) {
|
249
|
+
hs->server_handshake_secret())) {
|
296
250
|
return false;
|
297
251
|
}
|
298
252
|
|
@@ -315,10 +269,7 @@ bool tls13_derive_application_secrets(SSL_HANDSHAKE *hs) {
|
|
315
269
|
label_to_span(kTLS13LabelExporter)) ||
|
316
270
|
!ssl_log_secret(ssl, "EXPORTER_SECRET",
|
317
271
|
MakeConstSpan(ssl->s3->exporter_secret,
|
318
|
-
ssl->s3->exporter_secret_len))
|
319
|
-
!set_quic_secrets(hs, ssl_encryption_application,
|
320
|
-
hs->client_traffic_secret_0(),
|
321
|
-
hs->server_traffic_secret_0())) {
|
272
|
+
ssl->s3->exporter_secret_len))) {
|
322
273
|
return false;
|
323
274
|
}
|
324
275
|
|
@@ -337,11 +288,12 @@ bool tls13_rotate_traffic_key(SSL *ssl, enum evp_aead_direction_t direction) {
|
|
337
288
|
ssl->s3->write_traffic_secret_len);
|
338
289
|
}
|
339
290
|
|
340
|
-
const
|
291
|
+
const SSL_SESSION *session = SSL_get_session(ssl);
|
292
|
+
const EVP_MD *digest = ssl_session_get_digest(session);
|
341
293
|
return hkdf_expand_label(secret, digest, secret,
|
342
294
|
label_to_span(kTLS13LabelApplicationTraffic), {}) &&
|
343
295
|
tls13_set_traffic_key(ssl, ssl_encryption_application, direction,
|
344
|
-
secret);
|
296
|
+
session, secret);
|
345
297
|
}
|
346
298
|
|
347
299
|
static const char kTLS13LabelResumption[] = "res master";
|
@@ -33,24 +33,6 @@
|
|
33
33
|
|
34
34
|
BSSL_NAMESPACE_BEGIN
|
35
35
|
|
36
|
-
enum server_hs_state_t {
|
37
|
-
state_select_parameters = 0,
|
38
|
-
state_select_session,
|
39
|
-
state_send_hello_retry_request,
|
40
|
-
state_read_second_client_hello,
|
41
|
-
state_send_server_hello,
|
42
|
-
state_send_server_certificate_verify,
|
43
|
-
state_send_server_finished,
|
44
|
-
state_read_second_client_flight,
|
45
|
-
state_process_end_of_early_data,
|
46
|
-
state_read_client_certificate,
|
47
|
-
state_read_client_certificate_verify,
|
48
|
-
state_read_channel_id,
|
49
|
-
state_read_client_finished,
|
50
|
-
state_send_new_session_ticket,
|
51
|
-
state_done,
|
52
|
-
};
|
53
|
-
|
54
36
|
static const uint8_t kZeroes[EVP_MAX_MD_SIZE] = {0};
|
55
37
|
|
56
38
|
// Allow a minute of ticket age skew in either direction. This covers
|
@@ -244,7 +226,7 @@ static enum ssl_hs_wait_t do_select_parameters(SSL_HANDSHAKE *hs) {
|
|
244
226
|
return ssl_hs_error;
|
245
227
|
}
|
246
228
|
|
247
|
-
hs->tls13_state =
|
229
|
+
hs->tls13_state = state13_select_session;
|
248
230
|
return ssl_hs_ok;
|
249
231
|
}
|
250
232
|
|
@@ -327,6 +309,23 @@ static enum ssl_ticket_aead_result_t select_session(
|
|
327
309
|
return ssl_ticket_aead_success;
|
328
310
|
}
|
329
311
|
|
312
|
+
static bool quic_ticket_compatible(const SSL_SESSION *session,
|
313
|
+
const SSL_CONFIG *config) {
|
314
|
+
if (!session->is_quic) {
|
315
|
+
return true;
|
316
|
+
}
|
317
|
+
if (session->quic_early_data_hash.size() != SHA256_DIGEST_LENGTH) {
|
318
|
+
return false;
|
319
|
+
}
|
320
|
+
uint8_t early_data_hash[SHA256_DIGEST_LENGTH];
|
321
|
+
if (!compute_quic_early_data_hash(config, early_data_hash) ||
|
322
|
+
CRYPTO_memcmp(session->quic_early_data_hash.data(), early_data_hash,
|
323
|
+
SHA256_DIGEST_LENGTH) != 0) {
|
324
|
+
return false;
|
325
|
+
}
|
326
|
+
return true;
|
327
|
+
}
|
328
|
+
|
330
329
|
static enum ssl_hs_wait_t do_select_session(SSL_HANDSHAKE *hs) {
|
331
330
|
SSL *const ssl = hs->ssl;
|
332
331
|
SSLMessage msg;
|
@@ -370,6 +369,10 @@ static enum ssl_hs_wait_t do_select_session(SSL_HANDSHAKE *hs) {
|
|
370
369
|
return ssl_hs_error;
|
371
370
|
}
|
372
371
|
|
372
|
+
// |ssl_session_is_resumable| forbids cross-cipher resumptions even if the
|
373
|
+
// PRF hashes match.
|
374
|
+
assert(hs->new_cipher == session->cipher);
|
375
|
+
|
373
376
|
if (!ssl->enable_early_data) {
|
374
377
|
ssl->s3->early_data_reason = ssl_early_data_disabled;
|
375
378
|
} else if (session->ticket_max_early_data == 0) {
|
@@ -388,6 +391,8 @@ static enum ssl_hs_wait_t do_select_session(SSL_HANDSHAKE *hs) {
|
|
388
391
|
} else if (ssl->s3->ticket_age_skew < -kMaxTicketAgeSkewSeconds ||
|
389
392
|
kMaxTicketAgeSkewSeconds < ssl->s3->ticket_age_skew) {
|
390
393
|
ssl->s3->early_data_reason = ssl_early_data_ticket_age_skew;
|
394
|
+
} else if (!quic_ticket_compatible(session.get(), hs->config)) {
|
395
|
+
ssl->s3->early_data_reason = ssl_early_data_quic_parameter_mismatch;
|
391
396
|
} else {
|
392
397
|
ssl->s3->early_data_reason = ssl_early_data_accepted;
|
393
398
|
ssl->s3->early_data_accepted = true;
|
@@ -405,7 +410,7 @@ static enum ssl_hs_wait_t do_select_session(SSL_HANDSHAKE *hs) {
|
|
405
410
|
return ssl_hs_error;
|
406
411
|
|
407
412
|
case ssl_ticket_aead_retry:
|
408
|
-
hs->tls13_state =
|
413
|
+
hs->tls13_state = state13_select_session;
|
409
414
|
return ssl_hs_pending_ticket;
|
410
415
|
}
|
411
416
|
|
@@ -465,23 +470,14 @@ static enum ssl_hs_wait_t do_select_session(SSL_HANDSHAKE *hs) {
|
|
465
470
|
if (!hs->transcript.UpdateForHelloRetryRequest()) {
|
466
471
|
return ssl_hs_error;
|
467
472
|
}
|
468
|
-
hs->tls13_state =
|
473
|
+
hs->tls13_state = state13_send_hello_retry_request;
|
469
474
|
return ssl_hs_ok;
|
470
475
|
}
|
471
476
|
return ssl_hs_error;
|
472
477
|
}
|
473
478
|
|
474
|
-
// Note we defer releasing the early traffic secret to QUIC until after ECDHE
|
475
|
-
// is resolved. The early traffic secret should be derived before the key
|
476
|
-
// schedule incorporates ECDHE, but doing so may reject 0-RTT. To avoid
|
477
|
-
// confusing the caller, we split derivation and releasing the secret to QUIC.
|
478
|
-
if (ssl->s3->early_data_accepted &&
|
479
|
-
!tls13_set_early_secret_for_quic(hs)) {
|
480
|
-
return ssl_hs_error;
|
481
|
-
}
|
482
|
-
|
483
479
|
ssl->method->next_message(ssl);
|
484
|
-
hs->tls13_state =
|
480
|
+
hs->tls13_state = state13_send_server_hello;
|
485
481
|
return ssl_hs_ok;
|
486
482
|
}
|
487
483
|
|
@@ -515,8 +511,8 @@ static enum ssl_hs_wait_t do_send_hello_retry_request(SSL_HANDSHAKE *hs) {
|
|
515
511
|
return ssl_hs_error;
|
516
512
|
}
|
517
513
|
|
518
|
-
|
519
|
-
hs->tls13_state =
|
514
|
+
ssl->s3->used_hello_retry_request = true;
|
515
|
+
hs->tls13_state = state13_read_second_client_hello;
|
520
516
|
return ssl_hs_flush;
|
521
517
|
}
|
522
518
|
|
@@ -585,8 +581,15 @@ static enum ssl_hs_wait_t do_read_second_client_hello(SSL_HANDSHAKE *hs) {
|
|
585
581
|
return ssl_hs_error;
|
586
582
|
}
|
587
583
|
|
584
|
+
// ClientHello should be the end of the flight.
|
585
|
+
if (ssl->method->has_unprocessed_handshake_data(ssl)) {
|
586
|
+
ssl_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE);
|
587
|
+
OPENSSL_PUT_ERROR(SSL, SSL_R_EXCESS_HANDSHAKE_DATA);
|
588
|
+
return ssl_hs_error;
|
589
|
+
}
|
590
|
+
|
588
591
|
ssl->method->next_message(ssl);
|
589
|
-
hs->tls13_state =
|
592
|
+
hs->tls13_state = state13_send_server_hello;
|
590
593
|
return ssl_hs_ok;
|
591
594
|
}
|
592
595
|
|
@@ -612,7 +615,7 @@ static enum ssl_hs_wait_t do_send_server_hello(SSL_HANDSHAKE *hs) {
|
|
612
615
|
return ssl_hs_error;
|
613
616
|
}
|
614
617
|
|
615
|
-
if (!
|
618
|
+
if (!ssl->s3->used_hello_retry_request &&
|
616
619
|
!ssl->method->add_change_cipher_spec(ssl)) {
|
617
620
|
return ssl_hs_error;
|
618
621
|
}
|
@@ -620,6 +623,7 @@ static enum ssl_hs_wait_t do_send_server_hello(SSL_HANDSHAKE *hs) {
|
|
620
623
|
// Derive and enable the handshake traffic secrets.
|
621
624
|
if (!tls13_derive_handshake_secrets(hs) ||
|
622
625
|
!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_seal,
|
626
|
+
hs->new_session.get(),
|
623
627
|
hs->server_handshake_secret())) {
|
624
628
|
return ssl_hs_error;
|
625
629
|
}
|
@@ -654,22 +658,10 @@ static enum ssl_hs_wait_t do_send_server_hello(SSL_HANDSHAKE *hs) {
|
|
654
658
|
!CBB_add_u16_length_prefixed(&cert_request_extensions,
|
655
659
|
&sigalg_contents) ||
|
656
660
|
!CBB_add_u16_length_prefixed(&sigalg_contents, &sigalgs_cbb) ||
|
657
|
-
!tls12_add_verify_sigalgs(
|
658
|
-
false /* online signature */)) {
|
661
|
+
!tls12_add_verify_sigalgs(hs, &sigalgs_cbb)) {
|
659
662
|
return ssl_hs_error;
|
660
663
|
}
|
661
664
|
|
662
|
-
if (tls12_has_different_verify_sigalgs_for_certs(ssl)) {
|
663
|
-
if (!CBB_add_u16(&cert_request_extensions,
|
664
|
-
TLSEXT_TYPE_signature_algorithms_cert) ||
|
665
|
-
!CBB_add_u16_length_prefixed(&cert_request_extensions,
|
666
|
-
&sigalg_contents) ||
|
667
|
-
!CBB_add_u16_length_prefixed(&sigalg_contents, &sigalgs_cbb) ||
|
668
|
-
!tls12_add_verify_sigalgs(ssl, &sigalgs_cbb, true /* certs */)) {
|
669
|
-
return ssl_hs_error;
|
670
|
-
}
|
671
|
-
}
|
672
|
-
|
673
665
|
if (ssl_has_client_CAs(hs->config)) {
|
674
666
|
CBB ca_contents;
|
675
667
|
if (!CBB_add_u16(&cert_request_extensions,
|
@@ -698,22 +690,22 @@ static enum ssl_hs_wait_t do_send_server_hello(SSL_HANDSHAKE *hs) {
|
|
698
690
|
return ssl_hs_error;
|
699
691
|
}
|
700
692
|
|
701
|
-
hs->tls13_state =
|
693
|
+
hs->tls13_state = state13_send_server_certificate_verify;
|
702
694
|
return ssl_hs_ok;
|
703
695
|
}
|
704
696
|
|
705
|
-
hs->tls13_state =
|
697
|
+
hs->tls13_state = state13_send_server_finished;
|
706
698
|
return ssl_hs_ok;
|
707
699
|
}
|
708
700
|
|
709
701
|
static enum ssl_hs_wait_t do_send_server_certificate_verify(SSL_HANDSHAKE *hs) {
|
710
702
|
switch (tls13_add_certificate_verify(hs)) {
|
711
703
|
case ssl_private_key_success:
|
712
|
-
hs->tls13_state =
|
704
|
+
hs->tls13_state = state13_send_server_finished;
|
713
705
|
return ssl_hs_ok;
|
714
706
|
|
715
707
|
case ssl_private_key_retry:
|
716
|
-
hs->tls13_state =
|
708
|
+
hs->tls13_state = state13_send_server_certificate_verify;
|
717
709
|
return ssl_hs_private_key_operation;
|
718
710
|
|
719
711
|
case ssl_private_key_failure:
|
@@ -732,10 +724,18 @@ static enum ssl_hs_wait_t do_send_server_finished(SSL_HANDSHAKE *hs) {
|
|
732
724
|
hs, MakeConstSpan(kZeroes, hs->transcript.DigestLen())) ||
|
733
725
|
!tls13_derive_application_secrets(hs) ||
|
734
726
|
!tls13_set_traffic_key(ssl, ssl_encryption_application, evp_aead_seal,
|
727
|
+
hs->new_session.get(),
|
735
728
|
hs->server_traffic_secret_0())) {
|
736
729
|
return ssl_hs_error;
|
737
730
|
}
|
738
731
|
|
732
|
+
hs->tls13_state = state13_send_half_rtt_ticket;
|
733
|
+
return hs->handback ? ssl_hs_handback : ssl_hs_ok;
|
734
|
+
}
|
735
|
+
|
736
|
+
static enum ssl_hs_wait_t do_send_half_rtt_ticket(SSL_HANDSHAKE *hs) {
|
737
|
+
SSL *const ssl = hs->ssl;
|
738
|
+
|
739
739
|
if (ssl->s3->early_data_accepted) {
|
740
740
|
// If accepting 0-RTT, we send tickets half-RTT. This gets the tickets on
|
741
741
|
// the wire sooner and also avoids triggering a write on |SSL_read| when
|
@@ -778,16 +778,15 @@ static enum ssl_hs_wait_t do_send_server_finished(SSL_HANDSHAKE *hs) {
|
|
778
778
|
}
|
779
779
|
}
|
780
780
|
|
781
|
-
hs->tls13_state =
|
781
|
+
hs->tls13_state = state13_read_second_client_flight;
|
782
782
|
return ssl_hs_flush;
|
783
783
|
}
|
784
784
|
|
785
785
|
static enum ssl_hs_wait_t do_read_second_client_flight(SSL_HANDSHAKE *hs) {
|
786
786
|
SSL *const ssl = hs->ssl;
|
787
787
|
if (ssl->s3->early_data_accepted) {
|
788
|
-
|
789
|
-
|
790
|
-
!tls13_set_traffic_key(ssl, ssl_encryption_early_data, evp_aead_open,
|
788
|
+
if (!tls13_set_traffic_key(ssl, ssl_encryption_early_data, evp_aead_open,
|
789
|
+
hs->new_session.get(),
|
791
790
|
hs->early_traffic_secret())) {
|
792
791
|
return ssl_hs_error;
|
793
792
|
}
|
@@ -801,14 +800,15 @@ static enum ssl_hs_wait_t do_read_second_client_flight(SSL_HANDSHAKE *hs) {
|
|
801
800
|
// return.
|
802
801
|
if (ssl->quic_method != nullptr) {
|
803
802
|
if (!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_open,
|
803
|
+
hs->new_session.get(),
|
804
804
|
hs->client_handshake_secret())) {
|
805
805
|
return ssl_hs_error;
|
806
806
|
}
|
807
|
-
hs->tls13_state =
|
807
|
+
hs->tls13_state = state13_read_client_certificate;
|
808
808
|
return ssl->s3->early_data_accepted ? ssl_hs_early_return : ssl_hs_ok;
|
809
809
|
}
|
810
810
|
|
811
|
-
hs->tls13_state =
|
811
|
+
hs->tls13_state = state13_process_end_of_early_data;
|
812
812
|
return ssl->s3->early_data_accepted ? ssl_hs_read_end_of_early_data
|
813
813
|
: ssl_hs_ok;
|
814
814
|
}
|
@@ -833,10 +833,11 @@ static enum ssl_hs_wait_t do_process_end_of_early_data(SSL_HANDSHAKE *hs) {
|
|
833
833
|
ssl->method->next_message(ssl);
|
834
834
|
}
|
835
835
|
if (!tls13_set_traffic_key(ssl, ssl_encryption_handshake, evp_aead_open,
|
836
|
+
hs->new_session.get(),
|
836
837
|
hs->client_handshake_secret())) {
|
837
838
|
return ssl_hs_error;
|
838
839
|
}
|
839
|
-
hs->tls13_state =
|
840
|
+
hs->tls13_state = state13_read_client_certificate;
|
840
841
|
return ssl_hs_ok;
|
841
842
|
}
|
842
843
|
|
@@ -853,7 +854,7 @@ static enum ssl_hs_wait_t do_read_client_certificate(SSL_HANDSHAKE *hs) {
|
|
853
854
|
}
|
854
855
|
|
855
856
|
// Skip this state.
|
856
|
-
hs->tls13_state =
|
857
|
+
hs->tls13_state = state13_read_channel_id;
|
857
858
|
return ssl_hs_ok;
|
858
859
|
}
|
859
860
|
|
@@ -870,7 +871,7 @@ static enum ssl_hs_wait_t do_read_client_certificate(SSL_HANDSHAKE *hs) {
|
|
870
871
|
}
|
871
872
|
|
872
873
|
ssl->method->next_message(ssl);
|
873
|
-
hs->tls13_state =
|
874
|
+
hs->tls13_state = state13_read_client_certificate_verify;
|
874
875
|
return ssl_hs_ok;
|
875
876
|
}
|
876
877
|
|
@@ -879,7 +880,7 @@ static enum ssl_hs_wait_t do_read_client_certificate_verify(
|
|
879
880
|
SSL *const ssl = hs->ssl;
|
880
881
|
if (sk_CRYPTO_BUFFER_num(hs->new_session->certs.get()) == 0) {
|
881
882
|
// Skip this state.
|
882
|
-
hs->tls13_state =
|
883
|
+
hs->tls13_state = state13_read_channel_id;
|
883
884
|
return ssl_hs_ok;
|
884
885
|
}
|
885
886
|
|
@@ -894,7 +895,7 @@ static enum ssl_hs_wait_t do_read_client_certificate_verify(
|
|
894
895
|
case ssl_verify_invalid:
|
895
896
|
return ssl_hs_error;
|
896
897
|
case ssl_verify_retry:
|
897
|
-
hs->tls13_state =
|
898
|
+
hs->tls13_state = state13_read_client_certificate_verify;
|
898
899
|
return ssl_hs_certificate_verify;
|
899
900
|
}
|
900
901
|
|
@@ -905,14 +906,14 @@ static enum ssl_hs_wait_t do_read_client_certificate_verify(
|
|
905
906
|
}
|
906
907
|
|
907
908
|
ssl->method->next_message(ssl);
|
908
|
-
hs->tls13_state =
|
909
|
+
hs->tls13_state = state13_read_channel_id;
|
909
910
|
return ssl_hs_ok;
|
910
911
|
}
|
911
912
|
|
912
913
|
static enum ssl_hs_wait_t do_read_channel_id(SSL_HANDSHAKE *hs) {
|
913
914
|
SSL *const ssl = hs->ssl;
|
914
915
|
if (!ssl->s3->channel_id_valid) {
|
915
|
-
hs->tls13_state =
|
916
|
+
hs->tls13_state = state13_read_client_finished;
|
916
917
|
return ssl_hs_ok;
|
917
918
|
}
|
918
919
|
|
@@ -927,7 +928,7 @@ static enum ssl_hs_wait_t do_read_channel_id(SSL_HANDSHAKE *hs) {
|
|
927
928
|
}
|
928
929
|
|
929
930
|
ssl->method->next_message(ssl);
|
930
|
-
hs->tls13_state =
|
931
|
+
hs->tls13_state = state13_read_client_finished;
|
931
932
|
return ssl_hs_ok;
|
932
933
|
}
|
933
934
|
|
@@ -943,6 +944,7 @@ static enum ssl_hs_wait_t do_read_client_finished(SSL_HANDSHAKE *hs) {
|
|
943
944
|
!tls13_process_finished(hs, msg, ssl->s3->early_data_accepted) ||
|
944
945
|
// evp_aead_seal keys have already been switched.
|
945
946
|
!tls13_set_traffic_key(ssl, ssl_encryption_application, evp_aead_open,
|
947
|
+
hs->new_session.get(),
|
946
948
|
hs->client_traffic_secret_0())) {
|
947
949
|
return ssl_hs_error;
|
948
950
|
}
|
@@ -954,10 +956,10 @@ static enum ssl_hs_wait_t do_read_client_finished(SSL_HANDSHAKE *hs) {
|
|
954
956
|
}
|
955
957
|
|
956
958
|
// We send post-handshake tickets as part of the handshake in 1-RTT.
|
957
|
-
hs->tls13_state =
|
959
|
+
hs->tls13_state = state13_send_new_session_ticket;
|
958
960
|
} else {
|
959
961
|
// We already sent half-RTT tickets.
|
960
|
-
hs->tls13_state =
|
962
|
+
hs->tls13_state = state13_done;
|
961
963
|
}
|
962
964
|
|
963
965
|
ssl->method->next_message(ssl);
|
@@ -970,7 +972,7 @@ static enum ssl_hs_wait_t do_send_new_session_ticket(SSL_HANDSHAKE *hs) {
|
|
970
972
|
return ssl_hs_error;
|
971
973
|
}
|
972
974
|
|
973
|
-
hs->tls13_state =
|
975
|
+
hs->tls13_state = state13_done;
|
974
976
|
// In TLS 1.3, the NewSessionTicket isn't flushed until the server performs a
|
975
977
|
// write, to prevent a non-reading client from causing the server to hang in
|
976
978
|
// the case of a small server write buffer. Consumers which don't write data
|
@@ -983,54 +985,57 @@ static enum ssl_hs_wait_t do_send_new_session_ticket(SSL_HANDSHAKE *hs) {
|
|
983
985
|
}
|
984
986
|
|
985
987
|
enum ssl_hs_wait_t tls13_server_handshake(SSL_HANDSHAKE *hs) {
|
986
|
-
while (hs->tls13_state !=
|
988
|
+
while (hs->tls13_state != state13_done) {
|
987
989
|
enum ssl_hs_wait_t ret = ssl_hs_error;
|
988
|
-
enum
|
989
|
-
static_cast<enum
|
990
|
+
enum tls13_server_hs_state_t state =
|
991
|
+
static_cast<enum tls13_server_hs_state_t>(hs->tls13_state);
|
990
992
|
switch (state) {
|
991
|
-
case
|
993
|
+
case state13_select_parameters:
|
992
994
|
ret = do_select_parameters(hs);
|
993
995
|
break;
|
994
|
-
case
|
996
|
+
case state13_select_session:
|
995
997
|
ret = do_select_session(hs);
|
996
998
|
break;
|
997
|
-
case
|
999
|
+
case state13_send_hello_retry_request:
|
998
1000
|
ret = do_send_hello_retry_request(hs);
|
999
1001
|
break;
|
1000
|
-
case
|
1002
|
+
case state13_read_second_client_hello:
|
1001
1003
|
ret = do_read_second_client_hello(hs);
|
1002
1004
|
break;
|
1003
|
-
case
|
1005
|
+
case state13_send_server_hello:
|
1004
1006
|
ret = do_send_server_hello(hs);
|
1005
1007
|
break;
|
1006
|
-
case
|
1008
|
+
case state13_send_server_certificate_verify:
|
1007
1009
|
ret = do_send_server_certificate_verify(hs);
|
1008
1010
|
break;
|
1009
|
-
case
|
1011
|
+
case state13_send_server_finished:
|
1010
1012
|
ret = do_send_server_finished(hs);
|
1011
1013
|
break;
|
1012
|
-
case
|
1014
|
+
case state13_send_half_rtt_ticket:
|
1015
|
+
ret = do_send_half_rtt_ticket(hs);
|
1016
|
+
break;
|
1017
|
+
case state13_read_second_client_flight:
|
1013
1018
|
ret = do_read_second_client_flight(hs);
|
1014
1019
|
break;
|
1015
|
-
case
|
1020
|
+
case state13_process_end_of_early_data:
|
1016
1021
|
ret = do_process_end_of_early_data(hs);
|
1017
1022
|
break;
|
1018
|
-
case
|
1023
|
+
case state13_read_client_certificate:
|
1019
1024
|
ret = do_read_client_certificate(hs);
|
1020
1025
|
break;
|
1021
|
-
case
|
1026
|
+
case state13_read_client_certificate_verify:
|
1022
1027
|
ret = do_read_client_certificate_verify(hs);
|
1023
1028
|
break;
|
1024
|
-
case
|
1029
|
+
case state13_read_channel_id:
|
1025
1030
|
ret = do_read_channel_id(hs);
|
1026
1031
|
break;
|
1027
|
-
case
|
1032
|
+
case state13_read_client_finished:
|
1028
1033
|
ret = do_read_client_finished(hs);
|
1029
1034
|
break;
|
1030
|
-
case
|
1035
|
+
case state13_send_new_session_ticket:
|
1031
1036
|
ret = do_send_new_session_ticket(hs);
|
1032
1037
|
break;
|
1033
|
-
case
|
1038
|
+
case state13_done:
|
1034
1039
|
ret = ssl_hs_ok;
|
1035
1040
|
break;
|
1036
1041
|
}
|
@@ -1048,38 +1053,40 @@ enum ssl_hs_wait_t tls13_server_handshake(SSL_HANDSHAKE *hs) {
|
|
1048
1053
|
}
|
1049
1054
|
|
1050
1055
|
const char *tls13_server_handshake_state(SSL_HANDSHAKE *hs) {
|
1051
|
-
enum
|
1052
|
-
static_cast<enum
|
1056
|
+
enum tls13_server_hs_state_t state =
|
1057
|
+
static_cast<enum tls13_server_hs_state_t>(hs->tls13_state);
|
1053
1058
|
switch (state) {
|
1054
|
-
case
|
1059
|
+
case state13_select_parameters:
|
1055
1060
|
return "TLS 1.3 server select_parameters";
|
1056
|
-
case
|
1061
|
+
case state13_select_session:
|
1057
1062
|
return "TLS 1.3 server select_session";
|
1058
|
-
case
|
1063
|
+
case state13_send_hello_retry_request:
|
1059
1064
|
return "TLS 1.3 server send_hello_retry_request";
|
1060
|
-
case
|
1065
|
+
case state13_read_second_client_hello:
|
1061
1066
|
return "TLS 1.3 server read_second_client_hello";
|
1062
|
-
case
|
1067
|
+
case state13_send_server_hello:
|
1063
1068
|
return "TLS 1.3 server send_server_hello";
|
1064
|
-
case
|
1069
|
+
case state13_send_server_certificate_verify:
|
1065
1070
|
return "TLS 1.3 server send_server_certificate_verify";
|
1066
|
-
case
|
1071
|
+
case state13_send_half_rtt_ticket:
|
1072
|
+
return "TLS 1.3 server send_half_rtt_ticket";
|
1073
|
+
case state13_send_server_finished:
|
1067
1074
|
return "TLS 1.3 server send_server_finished";
|
1068
|
-
case
|
1075
|
+
case state13_read_second_client_flight:
|
1069
1076
|
return "TLS 1.3 server read_second_client_flight";
|
1070
|
-
case
|
1077
|
+
case state13_process_end_of_early_data:
|
1071
1078
|
return "TLS 1.3 server process_end_of_early_data";
|
1072
|
-
case
|
1079
|
+
case state13_read_client_certificate:
|
1073
1080
|
return "TLS 1.3 server read_client_certificate";
|
1074
|
-
case
|
1081
|
+
case state13_read_client_certificate_verify:
|
1075
1082
|
return "TLS 1.3 server read_client_certificate_verify";
|
1076
|
-
case
|
1083
|
+
case state13_read_channel_id:
|
1077
1084
|
return "TLS 1.3 server read_channel_id";
|
1078
|
-
case
|
1085
|
+
case state13_read_client_finished:
|
1079
1086
|
return "TLS 1.3 server read_client_finished";
|
1080
|
-
case
|
1087
|
+
case state13_send_new_session_ticket:
|
1081
1088
|
return "TLS 1.3 server send_new_session_ticket";
|
1082
|
-
case
|
1089
|
+
case state13_done:
|
1083
1090
|
return "TLS 1.3 server done";
|
1084
1091
|
}
|
1085
1092
|
|