mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-29 18:27:29 +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
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_AES) && defined(HAVE_AES_ECB)
|
||||
@ -24702,6 +24750,7 @@ void ApiTest(void)
|
||||
test_wolfSSL_msg_callback();
|
||||
test_wolfSSL_SHA();
|
||||
test_wolfSSL_DH_1536_prime();
|
||||
test_wolfSSL_PEM_write_DHparams();
|
||||
test_wolfSSL_AES_ecb_encrypt();
|
||||
test_wolfSSL_SHA256();
|
||||
test_wolfSSL_X509_get_serialNumber();
|
||||
|
Reference in New Issue
Block a user