forked from wolfSSL/wolfssl
add test for degenerate case and allow degenerate case by default
This commit is contained in:
37
tests/api.c
37
tests/api.c
@@ -15897,6 +15897,42 @@ static void test_wc_PKCS7_EncodeEncryptedData (void)
|
||||
#endif
|
||||
} /* END test_wc_PKCS7_EncodeEncryptedData() */
|
||||
|
||||
/*
|
||||
* Testing wc_PKCS7_Degenerate()
|
||||
*/
|
||||
static void test_wc_PKCS7_Degenerate(void)
|
||||
{
|
||||
#if defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM)
|
||||
PKCS7 pkcs7;
|
||||
char fName[] = "./certs/test-degenerate.p7b";
|
||||
XFILE f;
|
||||
byte der[4096];
|
||||
word32 derSz;
|
||||
|
||||
printf(testingFmt, "wc_PKCS7_Degenerate()");
|
||||
|
||||
AssertNotNull(f = XFOPEN(fName, "rb"));
|
||||
AssertIntGT((derSz = fread(der, 1, sizeof(der), f)), 0);
|
||||
XFCLOSE(f);
|
||||
|
||||
/* test degenerate success */
|
||||
AssertIntEQ(wc_PKCS7_Init(&pkcs7, HEAP_HINT, INVALID_DEVID), 0);
|
||||
AssertIntEQ(wc_PKCS7_InitWithCert(&pkcs7, NULL, 0), 0);
|
||||
AssertIntEQ(wc_PKCS7_VerifySignedData(&pkcs7, der, derSz), 0);
|
||||
wc_PKCS7_Free(&pkcs7);
|
||||
|
||||
/* test with turning off degenerate cases */
|
||||
AssertIntEQ(wc_PKCS7_Init(&pkcs7, HEAP_HINT, INVALID_DEVID), 0);
|
||||
AssertIntEQ(wc_PKCS7_InitWithCert(&pkcs7, NULL, 0), 0);
|
||||
wc_PKCS7_AllowDegenerate(&pkcs7, 0); /* override allowing degenerate case */
|
||||
AssertIntEQ(wc_PKCS7_VerifySignedData(&pkcs7, der, derSz), PKCS7_NO_SIGNER_E);
|
||||
wc_PKCS7_Free(&pkcs7);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
} /* END test_wc_PKCS7_Degenerate() */
|
||||
|
||||
|
||||
/* Testing wc_SignatureGetSize() for signature type ECC */
|
||||
static int test_wc_SignatureGetSize_ecc(void)
|
||||
{
|
||||
@@ -22474,6 +22510,7 @@ void ApiTest(void)
|
||||
test_wc_PKCS7_VerifySignedData();
|
||||
test_wc_PKCS7_EncodeDecodeEnvelopedData();
|
||||
test_wc_PKCS7_EncodeEncryptedData();
|
||||
test_wc_PKCS7_Degenerate();
|
||||
|
||||
test_wolfSSL_CTX_LoadCRL();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user