mirror of https://github.com/wolfSSL/wolfssl.git
wolfSSL_X509_CA_num()
parent
aaa26f3f41
commit
050fa2f8f8
|
@ -41,8 +41,11 @@
|
|||
#define HAVE_TLS_EXTENSIONS
|
||||
#define HAVE_SUPPORTED_CURVES
|
||||
|
||||
#define USER_TIME
|
||||
#define XTIME time
|
||||
/* #define USER_TIME */
|
||||
/* #define XTIME time */
|
||||
#define TIME_OVERRIDES
|
||||
#define HAVE_TM_TYPE
|
||||
#define HAVE_TIME_T_TYPE
|
||||
#define USE_WOLF_SUSECONDS_T
|
||||
#define USE_WOLF_TIMEVAL_T
|
||||
|
||||
|
@ -55,7 +58,8 @@
|
|||
#define WC_RSA_BLINDING
|
||||
|
||||
#define SINGLE_THREADED /* or define RTOS option */
|
||||
/* #define WOLFSSL_CMSIS_RTOS */
|
||||
/* #undef SINGLE_THREADED */
|
||||
/*#define WOLFSSL_CMSIS_RTOS */
|
||||
|
||||
/* #define NO_DH */
|
||||
#define HAVE_AESGCM
|
||||
|
@ -66,5 +70,42 @@
|
|||
#define HAVE_ED25519
|
||||
#define NO_OLD_SHA256_NAMES
|
||||
|
||||
#define NO_WOLFSSL_STUB
|
||||
/*#define NO_WOLFSSL_STUB*/
|
||||
#define WOLFSSL_SHA384
|
||||
#define HAVE_CRL
|
||||
|
||||
/* Platform */
|
||||
#define RI600V4
|
||||
|
||||
/* Server Renegotiate */
|
||||
#define WOLFSSL_SERVER_RENEGOTIATION
|
||||
#define HAVE_SERVER_RENEGOTIATION_INFO
|
||||
|
||||
#if defined(TIME_OVERRIDES) && defined(HAVE_TM_TYPE) && defined(HAVE_TIME_T_TYPE)
|
||||
/* #include "time_mng.h" */
|
||||
|
||||
#define time_t Time_t
|
||||
#define WOLFSSL_GMTIME
|
||||
#define XGTIME gmtime
|
||||
#define XTIME user_time
|
||||
|
||||
struct tm {
|
||||
int tm_sec;
|
||||
int tm_min;
|
||||
int tm_hour;
|
||||
int tm_mday;
|
||||
int tm_mon;
|
||||
int tm_year;
|
||||
int tm_yday;
|
||||
};
|
||||
#endif
|
||||
|
||||
#define HAVE_STUNNEL
|
||||
#define KEEP_OUR_CERT
|
||||
|
||||
#ifdef NO_ASN
|
||||
#undef NO_ASN
|
||||
#endif
|
||||
|
||||
#define WOLFSSL_GETENV_RANDFILE "randfile"
|
||||
#define WOLFSSL_GETENV_HOME "envhome"
|
||||
|
|
|
@ -19,7 +19,10 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
|
||||
*/
|
||||
|
||||
typedef unsigned long time_t;
|
||||
#include "../common/user_settings.h"
|
||||
#include "../../../../../wolfssl/wolfcrypt/types.h"
|
||||
|
||||
//typedef unsigned long time_t;
|
||||
|
||||
#define YEAR 2018
|
||||
#define MON 5
|
||||
|
@ -39,3 +42,12 @@ int strncasecmp(const char *s1, const char * s2, unsigned int sz)
|
|||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char* getenv(const char *env)
|
||||
{
|
||||
if (XSTRNCMP(env, "RANDFILE", 9) == 0)
|
||||
return WOLFSSL_GETENV_RANDFILE;
|
||||
else if (XSTRNCMP(env, "HOME", 5) == 0)
|
||||
return WOLFSSL_GETENV_HOME;
|
||||
else return 0;
|
||||
}
|
38
src/ssl.c
38
src/ssl.c
|
@ -32193,12 +32193,11 @@ void wolfSSL_ERR_load_crypto_strings(void)
|
|||
return;
|
||||
}
|
||||
|
||||
#ifndef NO_WOLFSSL_STUB
|
||||
unsigned long wolfSSL_ERR_peek_last_error(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_ERR_peek_last_error");
|
||||
|
||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
|
||||
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_NGINX)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
@ -32214,7 +32213,7 @@ unsigned long wolfSSL_ERR_peek_last_error(void)
|
|||
return (unsigned long)(0 - NOT_COMPILED_IN);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
/* Remove ifdef */
|
||||
|
||||
#ifndef NO_WOLFSSL_STUB
|
||||
int wolfSSL_FIPS_mode(void)
|
||||
|
@ -34211,4 +34210,35 @@ int wolfSSL_i2c_ASN1_INTEGER(WOLFSSL_ASN1_INTEGER *a, unsigned char **pp)
|
|||
}
|
||||
#endif /* !NO_ASN */
|
||||
|
||||
#endif /* OPENSSLEXTRA */
|
||||
#ifndef NO_CERT
|
||||
int wolfSSL_X509_CA_num(WOLFSSL_X509_STORE* store)
|
||||
{
|
||||
int i = 0;
|
||||
int cnt_ret = 0;
|
||||
Signer **table;
|
||||
|
||||
WOLFSSL_ENTER("wolfSSL_X509_CA_num");
|
||||
if (store == NULL || store->cm == NULL){
|
||||
WOLFSSL_MSG("invalid parameter");
|
||||
return WOLFSSL_FAILURE;
|
||||
}
|
||||
|
||||
table = store->cm->caTable;
|
||||
if (table){
|
||||
if (wc_LockMutex(&store->cm->caLock) == 0){
|
||||
for (i = 0; i < CA_TABLE_SIZE; i++) {
|
||||
Signer* signer = table[i];
|
||||
while (signer) {
|
||||
Signer* next = signer->next;
|
||||
cnt_ret++;
|
||||
signer = next;
|
||||
}
|
||||
}
|
||||
wc_UnLockMutex(&store->cm->caLock);
|
||||
}
|
||||
}
|
||||
|
||||
return cnt_ret;
|
||||
}
|
||||
#endif /* !NO_CERT */
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
|
44
tests/api.c
44
tests/api.c
|
@ -19700,15 +19700,11 @@ static void test_wolfSSL_ASN1_TIME_to_generalizedtime(void){
|
|||
t->data[1] = ASN_UTC_TIME_SIZE;
|
||||
XMEMCPY(t->data + 2,"050727123456Z",ASN_UTC_TIME_SIZE);
|
||||
|
||||
<<<<<<< HEAD
|
||||
AssertNotNull(gtime = wolfSSL_ASN1_TIME_to_generalizedtime(t, &out));
|
||||
=======
|
||||
tlen = wolfSSL_ASN1_TIME_get_length(t);
|
||||
AssertIntEQ(tlen, ASN_UTC_TIME_SIZE);
|
||||
wolfSSL_ASN1_TIME_get_data(t,data);
|
||||
AssertStrEQ((char*)data, "050727123456Z");
|
||||
gtime = wolfSSL_ASN1_TIME_to_generalizedtime(t, &out);
|
||||
>>>>>>> wolfSSL_ASN1_TIME_get_length()
|
||||
AssertIntEQ(gtime->data[0], ASN_GENERALIZED_TIME);
|
||||
AssertIntEQ(gtime->data[1], ASN_GENERALIZED_TIME_SIZE);
|
||||
AssertStrEQ((char*)gtime->data + 2, "20050727123456Z");
|
||||
|
@ -19721,16 +19717,12 @@ static void test_wolfSSL_ASN1_TIME_to_generalizedtime(void){
|
|||
t->data[0] = ASN_GENERALIZED_TIME;
|
||||
t->data[1] = ASN_GENERALIZED_TIME_SIZE;
|
||||
XMEMCPY(t->data + 2,"20050727123456Z",ASN_GENERALIZED_TIME_SIZE);
|
||||
<<<<<<< HEAD
|
||||
AssertNotNull(gtime = wolfSSL_ASN1_TIME_to_generalizedtime(t, &out));
|
||||
=======
|
||||
|
||||
tlen = wolfSSL_ASN1_TIME_get_length(t);
|
||||
AssertIntEQ(tlen, ASN_GENERALIZED_TIME_SIZE);
|
||||
wolfSSL_ASN1_TIME_get_data(t,data);
|
||||
AssertStrEQ((char*)data, "20050727123456Z");
|
||||
gtime = wolfSSL_ASN1_TIME_to_generalizedtime(t, &out);
|
||||
>>>>>>> wolfSSL_ASN1_TIME_get_length()
|
||||
AssertIntEQ(gtime->data[0], ASN_GENERALIZED_TIME);
|
||||
AssertIntEQ(gtime->data[1], ASN_GENERALIZED_TIME_SIZE);
|
||||
AssertStrEQ((char*)gtime->data + 2, "20050727123456Z");
|
||||
|
@ -19754,6 +19746,31 @@ static void test_wolfSSL_ASN1_TIME_to_generalizedtime(void){
|
|||
#endif
|
||||
}
|
||||
|
||||
static void test_wolfSSL_X509_CA_num(void){
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_CERT)
|
||||
WOLFSSL_X509_STORE *store;
|
||||
WOLFSSL_X509 *x509_1, *x509_2;
|
||||
int ca_num = 0;
|
||||
|
||||
printf(testingFmt, "wolfSSL_X509_CA_num()");
|
||||
|
||||
store = wolfSSL_X509_STORE_new();
|
||||
x509_1 = wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM);
|
||||
wolfSSL_X509_STORE_add_cert(store, x509_1);
|
||||
ca_num = wolfSSL_X509_CA_num(store);
|
||||
AssertIntEQ(ca_num, 1);
|
||||
|
||||
x509_2 = wolfSSL_X509_load_certificate_file(eccCertFile, WOLFSSL_FILETYPE_PEM);
|
||||
wolfSSL_X509_STORE_add_cert(store, x509_2);
|
||||
ca_num = wolfSSL_X509_CA_num(store);
|
||||
AssertIntEQ(ca_num, 2);
|
||||
|
||||
wolfSSL_X509_free(x509_1);
|
||||
wolfSSL_X509_free(x509_2);
|
||||
wolfSSL_X509_STORE_free(store);
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
}
|
||||
static void test_wolfSSL_X509_check_ca(void){
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_RSA)
|
||||
WOLFSSL_X509 *x509;
|
||||
|
@ -20989,24 +21006,26 @@ static void test_wolfSSL_X509_CRL(void)
|
|||
|
||||
static void test_wolfSSL_i2c_ASN1_INTEGER(void)
|
||||
{
|
||||
#ifdef OPENSSL_EXTRA
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_ASN)
|
||||
ASN1_INTEGER *a;
|
||||
unsigned char *pp,*tpp;
|
||||
int ret;
|
||||
|
||||
printf(testingFmt, "wolfSSL_i2c_ASN1_INTEGER");
|
||||
|
||||
a = wolfSSL_ASN1_INTEGER_new();
|
||||
|
||||
/* 40 */
|
||||
a->intData[0] = ASN_INTEGER;
|
||||
a->intData[1] = 1;
|
||||
a->intData[2] = 40;
|
||||
ret = wolfSSL_i2c_ASN1_INTEGER(a, NULL);
|
||||
ret = i2c_ASN1_INTEGER(a, NULL);
|
||||
AssertIntEQ(ret, 1);
|
||||
AssertNotNull(pp = (unsigned char*)XMALLOC(ret + 1, NULL,
|
||||
DYNAMIC_TYPE_TMP_BUFFER));
|
||||
tpp = pp;
|
||||
XMEMSET(pp, 0, ret + 1);
|
||||
wolfSSL_i2c_ASN1_INTEGER(a, &pp);
|
||||
i2c_ASN1_INTEGER(a, &pp);
|
||||
pp--;
|
||||
AssertIntEQ(*pp, 40);
|
||||
XFREE(tpp, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
|
@ -21079,7 +21098,7 @@ static void test_wolfSSL_i2c_ASN1_INTEGER(void)
|
|||
wolfSSL_ASN1_INTEGER_free(a);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
#endif /* OPENSSL_EXTRA && !NO_ASN */
|
||||
}
|
||||
|
||||
#ifndef NO_INLINE
|
||||
|
@ -21262,6 +21281,7 @@ void ApiTest(void)
|
|||
test_wolfSSL_d2i_PrivateKeys_bio();
|
||||
#endif /* OPENSSL_ALL || WOLFSSL_ASIO */
|
||||
|
||||
test_wolfSSL_X509_CA_num();
|
||||
/* test the no op functions for compatibility */
|
||||
test_no_op_functions();
|
||||
|
||||
|
|
|
@ -404,6 +404,7 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
|
|||
#define SSL_CTX_set_info_callback wolfSSL_CTX_set_info_callback
|
||||
#define SSL_CTX_set_alpn_protos wolfSSL_CTX_set_alpn_protos
|
||||
#define ERR_peek_error wolfSSL_ERR_peek_error
|
||||
#define ERR_peek_last_error wolfSSL_ERR_peek_last_error
|
||||
#define ERR_peek_last_error_line wolfSSL_ERR_peek_last_error_line
|
||||
#define ERR_peek_errors_fp wolfSSL_ERR_peek_errors_fp
|
||||
#define ERR_GET_REASON wolfSSL_ERR_GET_REASON
|
||||
|
@ -924,7 +925,6 @@ typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING;
|
|||
#define SSL_get0_session wolfSSL_SSL_get0_session
|
||||
#define X509_check_host wolfSSL_X509_check_host
|
||||
#define i2a_ASN1_INTEGER wolfSSL_i2a_ASN1_INTEGER
|
||||
#define i2c_ASN1_INTEGER wolfSSL_i2c_ASN1_INTEGER
|
||||
#define ERR_peek_error_line_data wolfSSL_ERR_peek_error_line_data
|
||||
#define ERR_load_BIO_strings wolfSSL_ERR_load_BIO_strings
|
||||
#define SSL_CTX_set_tlsext_ticket_key_cb wolfSSL_CTX_set_tlsext_ticket_key_cb
|
||||
|
@ -950,10 +950,13 @@ typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING;
|
|||
#endif /* WOLFSSL_NGINX || WOLFSSL_HAPROXY || WOLFSSL_MYSQL_COMPATIBLE ||
|
||||
OPENSSL_ALL || HAVE_LIGHTY */
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
#define X509_STORE_CTX_set_time wolfSSL_X509_STORE_CTX_set_time
|
||||
#define SSL_CTX_add_client_CA wolfSSL_CTX_add_client_CA
|
||||
#define SSL_CTX_set_srp_password wolfSSL_CTX_set_srp_password
|
||||
#define SSL_CTX_set_srp_username wolfSSL_CTX_set_srp_username
|
||||
#define OPENSSL_add_all_algorithms_noconf wolfSSL_OPENSSL_add_all_alogrithms_noconf
|
||||
#define i2c_ASN1_INTEGER wolfSSL_i2c_ASN1_INTEGER
|
||||
|
||||
#define ERR_NUM_ERRORS 16
|
||||
#define EVP_PKEY_RSA 6
|
||||
|
@ -963,6 +966,11 @@ typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING;
|
|||
#define NID_pkcs9_emailAddress 48
|
||||
#define OBJ_pkcs9_emailAddress 1L,2L,840L,113539L,1L,9L,1L
|
||||
|
||||
#define SSL_get_rbio wolfSSL_SSL_get_rbio
|
||||
#define SSL_get_wbio wolfSSL_SSL_get_wbio
|
||||
#define SSL_do_handshake wolfSSL_SSL_do_handshake
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
|
|
@ -2995,6 +2995,7 @@ WOLFSSL_API int wolfSSL_ASN1_TIME_get_data(WOLFSSL_ASN1_TIME *t, unsigned char *
|
|||
WOLFSSL_API WOLFSSL_ASN1_TIME *wolfSSL_ASN1_TIME_to_generalizedtime(WOLFSSL_ASN1_TIME *t,
|
||||
WOLFSSL_ASN1_TIME **out);
|
||||
WOLFSSL_API int wolfSSL_i2c_ASN1_INTEGER(WOLFSSL_ASN1_INTEGER *a, unsigned char **pp);
|
||||
WOLFSSL_API int wolfSSL_X509_CA_num(WOLFSSL_X509_STORE *store);
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#ifdef HAVE_PK_CALLBACKS
|
||||
|
|
Loading…
Reference in New Issue