forked from wolfSSL/wolfssl
add test cases
This commit is contained in:
@@ -2815,6 +2815,7 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
|
|||||||
showPeerEx(ssl, lng_index);
|
showPeerEx(ssl, lng_index);
|
||||||
|
|
||||||
#ifdef OPENSSL_EXTRA
|
#ifdef OPENSSL_EXTRA
|
||||||
|
printf("Session timeout set to %ld seconds\n", wolfSSL_get_timeout(ssl));
|
||||||
{
|
{
|
||||||
byte* rnd;
|
byte* rnd;
|
||||||
byte* pt;
|
byte* pt;
|
||||||
|
21
src/ssl.c
21
src/ssl.c
@@ -15432,6 +15432,8 @@ WOLFSSL_X509* wolfSSL_X509_d2i(WOLFSSL_X509** x509, const byte* in, int len)
|
|||||||
* return public key OID stored in WOLFSSL_X509 structure */
|
* return public key OID stored in WOLFSSL_X509 structure */
|
||||||
int wolfSSL_X509_get_pubkey_type(WOLFSSL_X509* x509)
|
int wolfSSL_X509_get_pubkey_type(WOLFSSL_X509* x509)
|
||||||
{
|
{
|
||||||
|
if (x509 == NULL)
|
||||||
|
return WOLFSSL_FAILURE;
|
||||||
return x509->pubKeyOID;
|
return x509->pubKeyOID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32385,7 +32387,6 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
|||||||
ret = EncodePolicyOID(out, &outSz, s, NULL);
|
ret = EncodePolicyOID(out, &outSz, s, NULL);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
unsigned int i, sum = 0;
|
unsigned int i, sum = 0;
|
||||||
int nid, grp = -1;
|
|
||||||
|
|
||||||
/* sum OID */
|
/* sum OID */
|
||||||
for (i = 0; i < outSz; i++) {
|
for (i = 0; i < outSz; i++) {
|
||||||
@@ -32396,25 +32397,11 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
|||||||
* @TODO possible conflict with multiples */
|
* @TODO possible conflict with multiples */
|
||||||
for (i = 0; i < WOLFSSL_OBJECT_INFO_SZ; i++) {
|
for (i = 0; i < WOLFSSL_OBJECT_INFO_SZ; i++) {
|
||||||
if (wolfssl_object_info[i].id == (int)sum) {
|
if (wolfssl_object_info[i].id == (int)sum) {
|
||||||
grp = wolfssl_object_info[i].type;
|
return wolfssl_object_info[i].nid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (grp == -1) {
|
|
||||||
WOLFSSL_MSG("OID sum's group was not found");
|
|
||||||
return NID_undef;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* success return nid */
|
|
||||||
nid = oid2nid(sum, grp);
|
|
||||||
if (nid < 0) {
|
|
||||||
WOLFSSL_MSG("OID 2 NID function failed");
|
|
||||||
return NID_undef;
|
|
||||||
}
|
|
||||||
return nid;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
return NID_undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
82
tests/api.c
82
tests/api.c
@@ -4356,6 +4356,85 @@ static void test_wolfSSL_URI(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void test_wolfSSL_TBS(void)
|
||||||
|
{
|
||||||
|
#if !defined(NO_CERTS) && !defined(NO_RSA) && !defined(NO_FILESYSTEM) \
|
||||||
|
&& defined(OPENSSL_EXTRA)
|
||||||
|
WOLFSSL_X509* x509;
|
||||||
|
const unsigned char* tbs;
|
||||||
|
int tbsSz;
|
||||||
|
|
||||||
|
printf(testingFmt, "wolfSSL TBS");
|
||||||
|
|
||||||
|
AssertNotNull(x509 =
|
||||||
|
wolfSSL_X509_load_certificate_file(caCertFile, WOLFSSL_FILETYPE_PEM));
|
||||||
|
|
||||||
|
AssertNull(tbs = wolfSSL_X509_get_tbs(NULL, &tbsSz));
|
||||||
|
AssertNull(tbs = wolfSSL_X509_get_tbs(x509, NULL));
|
||||||
|
AssertNotNull(tbs = wolfSSL_X509_get_tbs(x509, &tbsSz));
|
||||||
|
AssertIntEQ(tbsSz, 918);
|
||||||
|
|
||||||
|
wolfSSL_FreeX509(x509);
|
||||||
|
|
||||||
|
printf(resultFmt, passed);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_wolfSSL_X509_verify(void)
|
||||||
|
{
|
||||||
|
#if !defined(NO_CERTS) && !defined(NO_RSA) && !defined(NO_FILESYSTEM) \
|
||||||
|
&& defined(OPENSSL_EXTRA)
|
||||||
|
WOLFSSL_X509* ca;
|
||||||
|
WOLFSSL_X509* server;
|
||||||
|
WOLFSSL_EVP_PKEY* pkey;
|
||||||
|
unsigned char buf[2048];
|
||||||
|
unsigned char* pt;
|
||||||
|
int bufSz;
|
||||||
|
|
||||||
|
printf(testingFmt, "wolfSSL X509 verify");
|
||||||
|
|
||||||
|
AssertNotNull(ca =
|
||||||
|
wolfSSL_X509_load_certificate_file(caCertFile, WOLFSSL_FILETYPE_PEM));
|
||||||
|
|
||||||
|
AssertIntNE(wolfSSL_X509_get_pubkey_buffer(NULL, buf, &bufSz),
|
||||||
|
WOLFSSL_SUCCESS);
|
||||||
|
AssertIntEQ(wolfSSL_X509_get_pubkey_buffer(ca, NULL, &bufSz),
|
||||||
|
WOLFSSL_SUCCESS);
|
||||||
|
AssertIntEQ(bufSz, 294);
|
||||||
|
|
||||||
|
bufSz = 2048;
|
||||||
|
AssertIntEQ(wolfSSL_X509_get_pubkey_buffer(ca, buf, &bufSz),
|
||||||
|
WOLFSSL_SUCCESS);
|
||||||
|
AssertIntEQ(wolfSSL_X509_get_pubkey_type(NULL), WOLFSSL_FAILURE);
|
||||||
|
AssertIntEQ(wolfSSL_X509_get_pubkey_type(ca), RSAk);
|
||||||
|
|
||||||
|
|
||||||
|
AssertNotNull(server =
|
||||||
|
wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM));
|
||||||
|
|
||||||
|
/* success case */
|
||||||
|
pt = buf;
|
||||||
|
AssertNotNull(pkey = wolfSSL_d2i_PUBKEY(NULL, &pt, bufSz));
|
||||||
|
AssertIntEQ(wolfSSL_X509_verify(server, pkey), WOLFSSL_SUCCESS);
|
||||||
|
|
||||||
|
/* fail case */
|
||||||
|
bufSz = 2048;
|
||||||
|
AssertIntEQ(wolfSSL_X509_get_pubkey_buffer(server, buf, &bufSz),
|
||||||
|
WOLFSSL_SUCCESS);
|
||||||
|
pt = buf;
|
||||||
|
AssertNotNull(pkey = wolfSSL_d2i_PUBKEY(NULL, &pt, bufSz));
|
||||||
|
AssertIntEQ(wolfSSL_X509_verify(server, pkey), WOLFSSL_FAILURE);
|
||||||
|
|
||||||
|
AssertIntEQ(wolfSSL_X509_verify(NULL, pkey), WOLFSSL_FATAL_ERROR);
|
||||||
|
AssertIntEQ(wolfSSL_X509_verify(server, NULL), WOLFSSL_FATAL_ERROR);
|
||||||
|
|
||||||
|
wolfSSL_FreeX509(ca);
|
||||||
|
wolfSSL_FreeX509(server);
|
||||||
|
|
||||||
|
printf(resultFmt, passed);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
/* Testing function wolfSSL_CTX_SetMinVersion; sets the minimum downgrade
|
/* Testing function wolfSSL_CTX_SetMinVersion; sets the minimum downgrade
|
||||||
* version allowed.
|
* version allowed.
|
||||||
* POST: 1 on success.
|
* POST: 1 on success.
|
||||||
@@ -20679,6 +20758,7 @@ static void test_wolfSSL_OBJ(void)
|
|||||||
AssertNotNull(obj = OBJ_nid2obj(NID_sha256));
|
AssertNotNull(obj = OBJ_nid2obj(NID_sha256));
|
||||||
AssertIntEQ(OBJ_obj2nid(obj), NID_sha256);
|
AssertIntEQ(OBJ_obj2nid(obj), NID_sha256);
|
||||||
AssertIntEQ(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1), 22);
|
AssertIntEQ(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 1), 22);
|
||||||
|
AssertIntEQ(OBJ_txt2nid(buf), NID_sha256);
|
||||||
AssertIntGT(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 0), 0);
|
AssertIntGT(OBJ_obj2txt(buf, (int)sizeof(buf), obj, 0), 0);
|
||||||
ASN1_OBJECT_free(obj);
|
ASN1_OBJECT_free(obj);
|
||||||
|
|
||||||
@@ -24368,6 +24448,8 @@ void ApiTest(void)
|
|||||||
test_wolfSSL_PKCS8();
|
test_wolfSSL_PKCS8();
|
||||||
test_wolfSSL_PKCS5();
|
test_wolfSSL_PKCS5();
|
||||||
test_wolfSSL_URI();
|
test_wolfSSL_URI();
|
||||||
|
test_wolfSSL_TBS();
|
||||||
|
test_wolfSSL_X509_verify();
|
||||||
|
|
||||||
test_wc_PemToDer();
|
test_wc_PemToDer();
|
||||||
test_wc_AllocDer();
|
test_wc_AllocDer();
|
||||||
|
Reference in New Issue
Block a user