add test cases
This commit is contained in:
parent
b291b51988
commit
efc96e40d1
@ -2815,6 +2815,7 @@ THREAD_RETURN WOLFSSL_THREAD client_test(void* args)
|
||||
showPeerEx(ssl, lng_index);
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
printf("Session timeout set to %ld seconds\n", wolfSSL_get_timeout(ssl));
|
||||
{
|
||||
byte* rnd;
|
||||
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 */
|
||||
int wolfSSL_X509_get_pubkey_type(WOLFSSL_X509* x509)
|
||||
{
|
||||
if (x509 == NULL)
|
||||
return WOLFSSL_FAILURE;
|
||||
return x509->pubKeyOID;
|
||||
}
|
||||
|
||||
@ -32385,7 +32387,6 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
ret = EncodePolicyOID(out, &outSz, s, NULL);
|
||||
if (ret == 0) {
|
||||
unsigned int i, sum = 0;
|
||||
int nid, grp = -1;
|
||||
|
||||
/* sum OID */
|
||||
for (i = 0; i < outSz; i++) {
|
||||
@ -32396,25 +32397,11 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
||||
* @TODO possible conflict with multiples */
|
||||
for (i = 0; i < WOLFSSL_OBJECT_INFO_SZ; i++) {
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
* version allowed.
|
||||
* POST: 1 on success.
|
||||
@ -20679,6 +20758,7 @@ static void test_wolfSSL_OBJ(void)
|
||||
AssertNotNull(obj = OBJ_nid2obj(NID_sha256));
|
||||
AssertIntEQ(OBJ_obj2nid(obj), NID_sha256);
|
||||
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);
|
||||
ASN1_OBJECT_free(obj);
|
||||
|
||||
@ -24368,6 +24448,8 @@ void ApiTest(void)
|
||||
test_wolfSSL_PKCS8();
|
||||
test_wolfSSL_PKCS5();
|
||||
test_wolfSSL_URI();
|
||||
test_wolfSSL_TBS();
|
||||
test_wolfSSL_X509_verify();
|
||||
|
||||
test_wc_PemToDer();
|
||||
test_wc_AllocDer();
|
||||
|
Loading…
Reference in New Issue
Block a user