Skip to content

Commit 86dc847

Browse files
committed
Refactor - Split test to two different functions
1 parent 00ffde8 commit 86dc847

2 files changed

Lines changed: 48 additions & 24 deletions

File tree

tests/api/test_ossl_pem.c

Lines changed: 44 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -755,40 +755,31 @@ int test_wolfSSL_PEM_PrivateKey(void)
755755
return EXPECT_RESULT();
756756
}
757757

758-
int test_wolfSSL_PEM_write_PrivateKey_PUBKEY(void)
758+
int test_wolfSSL_PEM_write_PrivateKey(void)
759759
{
760760
EXPECT_DECLS;
761761
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_RSA) && \
762762
!defined(NO_FILESYSTEM) && defined(USE_CERT_BUFFERS_2048) && \
763763
!defined(NO_ASN) && !defined(NO_PWDBASED)
764764
const char* privFile = "./test-pem-write-private-key.pem";
765-
const char* pubFile = "./test-pem-write-pubkey.pem";
766765
const unsigned char* serverKey =
767766
(const unsigned char*)server_key_der_2048;
768767
EVP_PKEY* pkey = NULL;
769768
EVP_PKEY* readPriv = NULL;
770-
EVP_PKEY* readPub = NULL;
771-
unsigned char* pubDer = NULL;
772-
unsigned char* readPubDer = NULL;
773769
XFILE fp = XBADFILE;
774-
long privSz = 0;
775-
long pubSz = 0;
776-
int pubDerSz = 0;
777-
int readPubDerSz = 0;
778770

779771
remove(privFile);
780-
remove(pubFile);
781772

782773
ExpectNotNull(wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, &pkey, &serverKey,
783774
(long)sizeof_server_key_der_2048));
784775

776+
/* Bad-argument checks. */
785777
ExpectIntEQ(PEM_write_PrivateKey(XBADFILE, pkey, NULL, NULL, 0, NULL,
786778
NULL), 0);
787779
ExpectIntEQ(PEM_write_PrivateKey(stderr, NULL, NULL, NULL, 0, NULL,
788780
NULL), 0);
789-
ExpectIntEQ(PEM_write_PUBKEY(XBADFILE, pkey), 0);
790-
ExpectIntEQ(PEM_write_PUBKEY(stderr, NULL), 0);
791781

782+
/* Write private key to file. */
792783
ExpectTrue((fp = XFOPEN(privFile, "wb")) != XBADFILE);
793784
if (fp != XBADFILE) {
794785
ExpectIntEQ(PEM_write_PrivateKey(fp, pkey, NULL, NULL, 0, NULL, NULL),
@@ -797,11 +788,9 @@ int test_wolfSSL_PEM_write_PrivateKey_PUBKEY(void)
797788
fp = XBADFILE;
798789
}
799790

791+
/* Read it back and verify the DER content matches. */
800792
ExpectTrue((fp = XFOPEN(privFile, "rb")) != XBADFILE);
801793
if (fp != XBADFILE) {
802-
ExpectTrue(XFSEEK(fp, 0, XSEEK_END) == 0);
803-
ExpectIntGT(privSz = XFTELL(fp), 0);
804-
ExpectTrue(XFSEEK(fp, 0, XSEEK_SET) == 0);
805794
ExpectNotNull(readPriv = PEM_read_PrivateKey(fp, NULL, NULL, NULL));
806795
XFCLOSE(fp);
807796
fp = XBADFILE;
@@ -813,19 +802,56 @@ int test_wolfSSL_PEM_write_PrivateKey_PUBKEY(void)
813802
pkey->pkey_sz), 0);
814803
}
815804

805+
EVP_PKEY_free(readPriv);
806+
EVP_PKEY_free(pkey);
807+
if (fp != XBADFILE) {
808+
XFCLOSE(fp);
809+
}
810+
remove(privFile);
811+
#endif
812+
return EXPECT_RESULT();
813+
}
814+
815+
int test_wolfSSL_PEM_write_PUBKEY(void)
816+
{
817+
EXPECT_DECLS;
818+
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_RSA) && \
819+
!defined(NO_FILESYSTEM) && defined(USE_CERT_BUFFERS_2048) && \
820+
!defined(NO_ASN) && !defined(NO_PWDBASED)
821+
const char* pubFile = "./test-pem-write-pubkey.pem";
822+
const unsigned char* serverKey =
823+
(const unsigned char*)server_key_der_2048;
824+
EVP_PKEY* pkey = NULL;
825+
EVP_PKEY* readPub = NULL;
826+
unsigned char* pubDer = NULL;
827+
unsigned char* readPubDer = NULL;
828+
XFILE fp = XBADFILE;
829+
int pubDerSz = 0;
830+
int readPubDerSz = 0;
831+
832+
remove(pubFile);
833+
834+
ExpectNotNull(wolfSSL_d2i_PrivateKey(EVP_PKEY_RSA, &pkey, &serverKey,
835+
(long)sizeof_server_key_der_2048));
836+
837+
/* Bad-argument checks. */
838+
ExpectIntEQ(PEM_write_PUBKEY(XBADFILE, pkey), 0);
839+
ExpectIntEQ(PEM_write_PUBKEY(stderr, NULL), 0);
840+
841+
/* Capture the expected public-key DER for later comparison. */
816842
ExpectIntGT(pubDerSz = wolfSSL_i2d_PUBKEY(pkey, &pubDer), 0);
843+
844+
/* Write public key to file. */
817845
ExpectTrue((fp = XFOPEN(pubFile, "wb")) != XBADFILE);
818846
if (fp != XBADFILE) {
819847
ExpectIntEQ(PEM_write_PUBKEY(fp, pkey), 1);
820848
XFCLOSE(fp);
821849
fp = XBADFILE;
822850
}
823851

852+
/* Read it back and verify the DER content matches. */
824853
ExpectTrue((fp = XFOPEN(pubFile, "rb")) != XBADFILE);
825854
if (fp != XBADFILE) {
826-
ExpectTrue(XFSEEK(fp, 0, XSEEK_END) == 0);
827-
ExpectIntGT(pubSz = XFTELL(fp), 0);
828-
ExpectTrue(XFSEEK(fp, 0, XSEEK_SET) == 0);
829855
ExpectNotNull(readPub = PEM_read_PUBKEY(fp, NULL, NULL, NULL));
830856
XFCLOSE(fp);
831857
fp = XBADFILE;
@@ -837,17 +863,13 @@ int test_wolfSSL_PEM_write_PrivateKey_PUBKEY(void)
837863
ExpectIntEQ(XMEMCMP(pubDer, readPubDer, pubDerSz), 0);
838864
}
839865

840-
ExpectIntGT(privSz, pubSz);
841-
842866
XFREE(readPubDer, NULL, DYNAMIC_TYPE_PUBLIC_KEY);
843867
XFREE(pubDer, NULL, DYNAMIC_TYPE_PUBLIC_KEY);
844868
EVP_PKEY_free(readPub);
845-
EVP_PKEY_free(readPriv);
846869
EVP_PKEY_free(pkey);
847870
if (fp != XBADFILE) {
848871
XFCLOSE(fp);
849872
}
850-
remove(privFile);
851873
remove(pubFile);
852874
#endif
853875
return EXPECT_RESULT();

tests/api/test_ossl_pem.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ int test_wolfSSL_PEM_PrivateKey_ecc(void);
3232
int test_wolfSSL_PEM_PrivateKey_dsa(void);
3333
int test_wolfSSL_PEM_PrivateKey_dh(void);
3434
int test_wolfSSL_PEM_PrivateKey(void);
35-
int test_wolfSSL_PEM_write_PrivateKey_PUBKEY(void);
35+
int test_wolfSSL_PEM_write_PrivateKey(void);
36+
int test_wolfSSL_PEM_write_PUBKEY(void);
3637
int test_wolfSSL_PEM_file_RSAKey(void);
3738
int test_wolfSSL_PEM_file_RSAPrivateKey(void);
3839
int test_wolfSSL_PEM_read_RSA_PUBKEY(void);
@@ -53,7 +54,8 @@ int test_wolfSSL_PEM_PUBKEY(void);
5354
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_PrivateKey_dsa), \
5455
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_PrivateKey_dh), \
5556
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_PrivateKey), \
56-
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_write_PrivateKey_PUBKEY), \
57+
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_write_PrivateKey), \
58+
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_write_PUBKEY), \
5759
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_file_RSAKey), \
5860
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_file_RSAPrivateKey), \
5961
TEST_DECL_GROUP("ossl_pem", test_wolfSSL_PEM_read_RSA_PUBKEY), \

0 commit comments

Comments
 (0)