From 2de33c6b2bd882c58bfccec6617df775caeb76af Mon Sep 17 00:00:00 2001 From: Dan McArdle Date: Mon, 12 Apr 2021 12:15:51 -0400 Subject: [PATCH] Add ECH server config API to ssl_ctx_api fuzzer Bug: 275 Change-Id: I4ccf7e8385d708326c71a855585583908e82bb2d Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/46744 Reviewed-by: David Benjamin Commit-Queue: David Benjamin --- fuzz/ssl_ctx_api.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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()));