diff --git a/fuzz/ssl_ctx_api.cc b/fuzz/ssl_ctx_api.cc index abf2f16cf..08b3e6f60 100644 --- a/fuzz/ssl_ctx_api.cc +++ b/fuzz/ssl_ctx_api.cc @@ -491,6 +491,25 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len) { } SSL_CTX_set1_sigalgs_list(ctx, sigalgs.c_str()); }, + [](SSL_CTX *ctx, CBS *cbs) { + bssl::UniquePtr config_list( + SSL_ECH_SERVER_CONFIG_LIST_new()); + if (config_list == nullptr) { + return; + } + uint8_t is_retry_config; + CBS ech_config, private_key; + if (!CBS_get_u8(cbs, &is_retry_config) || + !CBS_get_u16_length_prefixed(cbs, &ech_config) || + !CBS_get_u16_length_prefixed(cbs, &private_key)) { + return; + } + SSL_ECH_SERVER_CONFIG_LIST_add( + config_list.get(), is_retry_config, CBS_data(&ech_config), + CBS_len(&ech_config), CBS_data(&private_key), + CBS_len(&private_key)); + SSL_CTX_set1_ech_server_config_list(ctx, config_list.get()); + }, }; bssl::UniquePtr ctx(SSL_CTX_new(TLS_method()));