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 <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/fuzz/ssl_ctx_api.cc b/fuzz/ssl_ctx_api.cc
index abf2f16..08b3e6f 100644
--- a/fuzz/ssl_ctx_api.cc
+++ b/fuzz/ssl_ctx_api.cc
@@ -491,6 +491,25 @@
         }
         SSL_CTX_set1_sigalgs_list(ctx, sigalgs.c_str());
       },
+      [](SSL_CTX *ctx, CBS *cbs) {
+        bssl::UniquePtr<SSL_ECH_SERVER_CONFIG_LIST> 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<SSL_CTX> ctx(SSL_CTX_new(TLS_method()));