@@ -68693,6 +68693,102 @@ static int test_dtls13_early_data(void)
6869368693 return EXPECT_RESULT();
6869468694}
6869568695
68696+ #ifdef HAVE_CERTIFICATE_STATUS_REQUEST
68697+ static int test_self_signed_stapling_client_v1_ctx_ready(WOLFSSL_CTX* ctx)
68698+ {
68699+ EXPECT_DECLS;
68700+ ExpectIntEQ(wolfSSL_CTX_EnableOCSPStapling(ctx), 1);
68701+ ExpectIntEQ(wolfSSL_CTX_UseOCSPStapling(ctx, WOLFSSL_CSR_OCSP,
68702+ WOLFSSL_CSR_OCSP_USE_NONCE), 1);
68703+ return EXPECT_RESULT();
68704+ }
68705+ #endif
68706+
68707+ #ifdef HAVE_CERTIFICATE_STATUS_REQUEST_V2
68708+ static int test_self_signed_stapling_client_v2_ctx_ready(WOLFSSL_CTX* ctx)
68709+ {
68710+ EXPECT_DECLS;
68711+ ExpectIntEQ(wolfSSL_CTX_EnableOCSPStapling(ctx), 1);
68712+ ExpectIntEQ(wolfSSL_CTX_UseOCSPStaplingV2(ctx, WOLFSSL_CSR2_OCSP,
68713+ WOLFSSL_CSR2_OCSP_USE_NONCE), 1);
68714+ return EXPECT_RESULT();
68715+ }
68716+
68717+ static int test_self_signed_stapling_client_v2_multi_ctx_ready(WOLFSSL_CTX* ctx)
68718+ {
68719+ EXPECT_DECLS;
68720+ ExpectIntEQ(wolfSSL_CTX_EnableOCSPStapling(ctx), 1);
68721+ ExpectIntEQ(wolfSSL_CTX_UseOCSPStaplingV2(ctx, WOLFSSL_CSR2_OCSP_MULTI,
68722+ 0), 1);
68723+ return EXPECT_RESULT();
68724+ }
68725+ #endif
68726+
68727+ #if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
68728+ || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
68729+ static int test_self_signed_stapling_server_ctx_ready(WOLFSSL_CTX* ctx)
68730+ {
68731+ EXPECT_DECLS;
68732+ ExpectIntEQ(wolfSSL_CTX_EnableOCSPStapling(ctx), 1);
68733+ return EXPECT_RESULT();
68734+ }
68735+ #endif
68736+
68737+ static int test_self_signed_stapling(void)
68738+ {
68739+ EXPECT_DECLS;
68740+ #if defined(HAVE_CERTIFICATE_STATUS_REQUEST) \
68741+ || defined(HAVE_CERTIFICATE_STATUS_REQUEST_V2)
68742+ test_ssl_cbf client_cbf;
68743+ test_ssl_cbf server_cbf;
68744+ size_t i;
68745+ struct {
68746+ method_provider client_meth;
68747+ method_provider server_meth;
68748+ ctx_cb client_ctx;
68749+ const char* tls_version;
68750+ } params[] = {
68751+ #if defined(WOLFSSL_TLS13) && defined(HAVE_CERTIFICATE_STATUS_REQUEST)
68752+ { wolfTLSv1_3_client_method, wolfTLSv1_3_server_method,
68753+ test_self_signed_stapling_client_v1_ctx_ready, "TLSv1_3 v1" },
68754+ #endif
68755+ #ifndef WOLFSSL_NO_TLS12
68756+ #ifdef HAVE_CERTIFICATE_STATUS_REQUEST
68757+ { wolfTLSv1_2_client_method, wolfTLSv1_2_server_method,
68758+ test_self_signed_stapling_client_v1_ctx_ready, "TLSv1_2 v1" },
68759+ #endif
68760+ #ifdef HAVE_CERTIFICATE_STATUS_REQUEST_V2
68761+ { wolfTLSv1_2_client_method, wolfTLSv1_2_server_method,
68762+ test_self_signed_stapling_client_v2_ctx_ready, "TLSv1_2 v2" },
68763+ { wolfTLSv1_2_client_method, wolfTLSv1_2_server_method,
68764+ test_self_signed_stapling_client_v2_multi_ctx_ready,
68765+ "TLSv1_2 v2 multi" },
68766+ #endif
68767+ #endif
68768+ };
68769+
68770+ for (i = 0; i < sizeof(params)/sizeof(*params) && !EXPECT_FAIL(); i++) {
68771+ XMEMSET(&client_cbf, 0, sizeof(client_cbf));
68772+ XMEMSET(&server_cbf, 0, sizeof(server_cbf));
68773+
68774+ printf("\nTesting self-signed cert with status request: %s\n",
68775+ params[i].tls_version);
68776+
68777+ client_cbf.method = params[i].client_meth;
68778+ client_cbf.ctx_ready = params[i].client_ctx;
68779+
68780+ server_cbf.method = params[i].server_meth;
68781+ server_cbf.certPemFile = "certs/ca-cert.pem";
68782+ server_cbf.keyPemFile = "certs/ca-key.pem";
68783+ server_cbf.ctx_ready = test_self_signed_stapling_server_ctx_ready;
68784+
68785+ ExpectIntEQ(test_wolfSSL_client_server_nofail_memio(&client_cbf,
68786+ &server_cbf, NULL), TEST_SUCCESS);
68787+ }
68788+ #endif
68789+ return EXPECT_RESULT();
68790+ }
68791+
6869668792/*----------------------------------------------------------------------------*
6869768793 | Main
6869868794 *----------------------------------------------------------------------------*/
@@ -69886,6 +69982,7 @@ TEST_CASE testCases[] = {
6988669982 /* OCSP Stapling */
6988769983 TEST_DECL(test_wolfSSL_UseOCSPStapling),
6988869984 TEST_DECL(test_wolfSSL_UseOCSPStaplingV2),
69985+ TEST_DECL(test_self_signed_stapling),
6988969986
6989069987 /* Multicast */
6989169988 TEST_DECL(test_wolfSSL_mcast),
0 commit comments