QUIC SSL: Prohibit early data functionailty
[openssl.git] / test / quicapitest.c
index aa4badbcdaf2db59a24a21b87ab9164641cf37bd..5255674384639f5ba799365e142caa3d4bbaa27b 100644 (file)
@@ -422,6 +422,8 @@ static int test_quic_forbidden_options(void)
     int testresult = 0;
     SSL_CTX *ctx = NULL;
     SSL *ssl = NULL;
+    char buf[16];
+    size_t len;
 
     if (!TEST_ptr(ctx = SSL_CTX_new_ex(libctx, NULL, OSSL_QUIC_client_method())))
         goto err;
@@ -432,6 +434,11 @@ static int test_quic_forbidden_options(void)
     if (!TEST_uint64_t_eq(SSL_CTX_get_options(ctx), UINT64_MAX))
         goto err;
 
+    /* Set options on CTX which should not be inherited (tested below). */
+    SSL_CTX_set_read_ahead(ctx, 1);
+    SSL_CTX_set_max_early_data(ctx, 1);
+    SSL_CTX_set_recv_max_early_data(ctx, 1);
+
     if (!TEST_ptr(ssl = SSL_new(ctx)))
         goto err;
 
@@ -452,6 +459,9 @@ static int test_quic_forbidden_options(void)
         goto err;
 
     /* Readahead */
+    if (!TEST_false(SSL_get_read_ahead(ssl)))
+        goto err;
+
     SSL_set_read_ahead(ssl, 1);
     if (!TEST_false(SSL_get_read_ahead(ssl)))
         goto err;
@@ -467,6 +477,18 @@ static int test_quic_forbidden_options(void)
         || !TEST_false(SSL_set_tlsext_max_fragment_length(ssl, TLSEXT_max_fragment_length_512)))
         goto err;
 
+    /* Max early data */
+    if (!TEST_false(SSL_get_recv_max_early_data(ssl))
+        || !TEST_false(SSL_get_max_early_data(ssl))
+        || !TEST_false(SSL_set_recv_max_early_data(ssl, 1))
+        || !TEST_false(SSL_set_max_early_data(ssl, 1)))
+        goto err;
+
+    /* Read/Write */
+    if (!TEST_false(SSL_read_early_data(ssl, buf, sizeof(buf), &len))
+        || !TEST_false(SSL_write_early_data(ssl, buf, sizeof(buf), &len)))
+        goto err;
+
     testresult = 1;
 err:
     SSL_free(ssl);