mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
add test case for wolfSSL_PEM_write_DHparams
This commit is contained in:
49
tests/api.c
49
tests/api.c
@ -21908,6 +21908,54 @@ static void test_wolfSSL_DH_1536_prime(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_wolfSSL_PEM_write_DHparams(void)
|
||||||
|
{
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_DH) && !defined(NO_FILESYSTEM)
|
||||||
|
DH* dh;
|
||||||
|
XFILE fp;
|
||||||
|
byte pem[2048];
|
||||||
|
int pemSz;
|
||||||
|
DerBuffer *der = NULL;
|
||||||
|
word32 idx = 0;
|
||||||
|
const char expected[] =
|
||||||
|
"-----BEGIN DH PARAMETERS-----\n\
|
||||||
|
MIIBCAKCAQEAsKEIBpwIE7pZBjy8MNX1AMFPRKfW70rGJScc6NKWUwpckd2iwpSE\n\
|
||||||
|
v32yRJ+b0sGKxb5yXKfnkebUn3MHhVtmSMdw+rTuAsk9mkraPcFGPhlp0RdGB6NN\n\
|
||||||
|
nyuWFzltMI0q85TTdc+gdebykh8acAWqBINXMPvadpM4UOgn/WPuPOW3yAmub1A1\n\
|
||||||
|
joTOSgDpEn5aMdcz/CETdswWMNsM/MVipzW477ewrMA29tnJRkj5QJAAKxuqbOMa\n\
|
||||||
|
wwsDnhvCRuRITiJzb8Nf1JrWMAdI1oyQq9T28eNI01hLprnNKb9oHwhLY4YvXGvW\n\
|
||||||
|
tgZl96bcAGdru8OpQYP7x/rI4h5+rwA/kwIBAg==\n\
|
||||||
|
-----END DH PARAMETERS-----\n";
|
||||||
|
printf(testingFmt, "wolfSSL_PEM_write_DHparams()");
|
||||||
|
|
||||||
|
AssertNotNull(fp = XFOPEN(dhParamFile, "rb"));
|
||||||
|
AssertIntGT((pemSz = XFREAD(pem, 1, sizeof(pem), fp)), 0);
|
||||||
|
XFCLOSE(fp);
|
||||||
|
|
||||||
|
wc_PemToDer(pem, pemSz, DH_PARAM_TYPE, &der, NULL, NULL, NULL);
|
||||||
|
AssertNotNull(dh = DH_new());
|
||||||
|
printf("derSz = %d idx = %d\n", der->length, idx);
|
||||||
|
AssertIntEQ(wc_DhKeyDecode(der->buffer, &idx, (DhKey*)dh->internal,
|
||||||
|
der->length), 0);
|
||||||
|
wc_FreeDer(&der);
|
||||||
|
|
||||||
|
AssertNotNull(fp = XFOPEN("./test-write-dhparams.pem", "wb"));
|
||||||
|
AssertIntEQ(PEM_write_DHparams(fp, dh), WOLFSSL_SUCCESS);
|
||||||
|
AssertIntEQ(PEM_write_DHparams(fp, NULL), WOLFSSL_FAILURE);
|
||||||
|
XFCLOSE(fp);
|
||||||
|
DH_free(dh);
|
||||||
|
|
||||||
|
/* check results */
|
||||||
|
XMEMSET(pem, 0, sizeof(pem));
|
||||||
|
AssertNotNull(fp = XFOPEN("./test-write-dhparams.pem", "rb"));
|
||||||
|
AssertIntGT((pemSz = XFREAD(pem, 1, sizeof(pem), fp)), 0);
|
||||||
|
AssertIntEQ(XMEMCMP(pem, expected, pemSz), 0);
|
||||||
|
XFCLOSE(fp);
|
||||||
|
|
||||||
|
printf(resultFmt, passed);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static void test_wolfSSL_AES_ecb_encrypt(void)
|
static void test_wolfSSL_AES_ecb_encrypt(void)
|
||||||
{
|
{
|
||||||
#if defined(OPENSSL_EXTRA) && !defined(NO_AES) && defined(HAVE_AES_ECB)
|
#if defined(OPENSSL_EXTRA) && !defined(NO_AES) && defined(HAVE_AES_ECB)
|
||||||
@ -24702,6 +24750,7 @@ void ApiTest(void)
|
|||||||
test_wolfSSL_msg_callback();
|
test_wolfSSL_msg_callback();
|
||||||
test_wolfSSL_SHA();
|
test_wolfSSL_SHA();
|
||||||
test_wolfSSL_DH_1536_prime();
|
test_wolfSSL_DH_1536_prime();
|
||||||
|
test_wolfSSL_PEM_write_DHparams();
|
||||||
test_wolfSSL_AES_ecb_encrypt();
|
test_wolfSSL_AES_ecb_encrypt();
|
||||||
test_wolfSSL_SHA256();
|
test_wolfSSL_SHA256();
|
||||||
test_wolfSSL_X509_get_serialNumber();
|
test_wolfSSL_X509_get_serialNumber();
|
||||||
|
Reference in New Issue
Block a user