mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-04-08 19:01:50 +02:00
ERR_peek_last_error() and SSL_get_SSL_CTX reference error on opensslextra.
Implemented wolfSSL_X509_get_version().
This commit is contained in:
@@ -84,7 +84,7 @@
|
||||
|
||||
#if defined(TIME_OVERRIDES) && defined(HAVE_TM_TYPE) && defined(HAVE_TIME_T_TYPE)
|
||||
/* #include "time_mng.h" */
|
||||
typedef unsigned long Time_t
|
||||
typedef unsigned long Time_t;
|
||||
#define time_t Time_t
|
||||
#define WOLFSSL_GMTIME
|
||||
#define XGMTIME gmtime
|
||||
|
||||
75
src/ssl.c
75
src/ssl.c
@@ -11166,7 +11166,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl)
|
||||
return WOLFSSL_FATAL_ERROR;
|
||||
}
|
||||
|
||||
int wolfSSL_OPENSSL_add_all_algorithms_noconf(void)
|
||||
int wolfSSL_OpenSSL_add_all_algorithms_noconf(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_OPENSSL_add_all_algorithms_noconf");
|
||||
|
||||
@@ -32224,28 +32224,6 @@ void wolfSSL_ERR_load_crypto_strings(void)
|
||||
return;
|
||||
}
|
||||
|
||||
unsigned long wolfSSL_ERR_peek_last_error(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_ERR_peek_last_error");
|
||||
|
||||
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_NGINX)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if ((ret = wc_PeekErrorNode(-1, NULL, NULL, NULL)) < 0) {
|
||||
WOLFSSL_MSG("Issue peeking at error node in queue");
|
||||
return 0;
|
||||
}
|
||||
if (ret == -ASN_NO_PEM_HEADER)
|
||||
return (ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE;
|
||||
return (unsigned long)ret;
|
||||
}
|
||||
#else
|
||||
return (unsigned long)(0 - NOT_COMPILED_IN);
|
||||
#endif
|
||||
}
|
||||
/* Remove ifdef */
|
||||
|
||||
#ifndef NO_WOLFSSL_STUB
|
||||
int wolfSSL_FIPS_mode(void)
|
||||
{
|
||||
@@ -32388,12 +32366,6 @@ int wolfSSL_version(WOLFSSL* ssl)
|
||||
}
|
||||
|
||||
|
||||
WOLFSSL_CTX* wolfSSL_get_SSL_CTX(WOLFSSL* ssl)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_get_SSL_CTX");
|
||||
return ssl->ctx;
|
||||
}
|
||||
|
||||
int wolfSSL_X509_NAME_get_sz(WOLFSSL_X509_NAME* name)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_X509_NAME_get_sz");
|
||||
@@ -32510,6 +32482,35 @@ WOLF_STACK_OF(WOLFSSL_X509)* wolfSSL_X509_STORE_get1_certs(WOLFSSL_X509_STORE_CT
|
||||
#endif /* OPENSSL_ALL || (OPENSSL_EXTRA && (HAVE_STUNNEL || WOLFSSL_NGINX || HAVE_LIGHTY)) */
|
||||
|
||||
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
unsigned long wolfSSL_ERR_peek_last_error(void)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_ERR_peek_last_error");
|
||||
|
||||
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_NGINX)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if ((ret = wc_PeekErrorNode(-1, NULL, NULL, NULL)) < 0) {
|
||||
WOLFSSL_MSG("Issue peeking at error node in queue");
|
||||
return 0;
|
||||
}
|
||||
if (ret == -ASN_NO_PEM_HEADER)
|
||||
return (ERR_LIB_PEM << 24) | PEM_R_NO_START_LINE;
|
||||
return (unsigned long)ret;
|
||||
}
|
||||
#else
|
||||
return (unsigned long)(0 - NOT_COMPILED_IN);
|
||||
#endif
|
||||
}
|
||||
|
||||
WOLFSSL_CTX* wolfSSL_get_SSL_CTX(WOLFSSL* ssl)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_get_SSL_CTX");
|
||||
return ssl->ctx;
|
||||
}
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#if defined(OPENSSL_ALL) || \
|
||||
(defined(OPENSSL_EXTRA) && (defined(HAVE_STUNNEL) || \
|
||||
defined(WOLFSSL_NGINX)) || defined(WOLFSSL_HAPROXY))
|
||||
@@ -34272,4 +34273,20 @@ int wolfSSL_X509_CA_num(WOLFSSL_X509_STORE* store)
|
||||
return cnt_ret;
|
||||
}
|
||||
#endif /* !NO_CERT */
|
||||
|
||||
long wolfSSL_X509_get_version(const WOLFSSL_X509 *x509){
|
||||
int version = 0;
|
||||
|
||||
WOLFSSL_ENTER("wolfSSL_X509_get_version");
|
||||
|
||||
if (x509 == NULL){
|
||||
WOLFSSL_MSG("invalid parameter");
|
||||
return 0L;
|
||||
}
|
||||
version = x509->version;
|
||||
if (version != 0)
|
||||
return (long)version - 1L;
|
||||
|
||||
return 0L;
|
||||
}
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
36
tests/api.c
36
tests/api.c
@@ -19596,11 +19596,12 @@ static void test_wolfSSL_X509_get_serialNumber(void)
|
||||
}
|
||||
|
||||
|
||||
static void test_wolfSSL_OPENSSL_add_all_algorithms(void){
|
||||
static void test_wolfSSL_OpenSSL_add_all_algorithms(void){
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
printf(testingFmt, "wolfSSL_OPENSSL_add_all_algorithms()");
|
||||
printf(testingFmt, "wolfSSL_OpenSSL_add_all_algorithms()");
|
||||
|
||||
AssertIntEQ(wolfSSL_OPENSSL_add_all_algorithms_noconf(),WOLFSSL_SUCCESS);
|
||||
AssertIntEQ(wolfSSL_OpenSSL_add_all_algorithms_noconf(),WOLFSSL_SUCCESS);
|
||||
wolfSSL_Cleanup();
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
@@ -19781,6 +19782,8 @@ static void test_wolfSSL_X509_check_ca(void){
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_FILESYSTEM)
|
||||
WOLFSSL_X509 *x509;
|
||||
|
||||
printf(testingFmt, "wolfSSL_X509_check_ca()");
|
||||
|
||||
x509 = wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM);
|
||||
AssertIntEQ(wolfSSL_X509_check_ca(x509), 1);
|
||||
wolfSSL_X509_free(x509);
|
||||
@@ -19788,6 +19791,23 @@ static void test_wolfSSL_X509_check_ca(void){
|
||||
x509 = wolfSSL_X509_load_certificate_file(ntruCertFile, WOLFSSL_FILETYPE_PEM);
|
||||
AssertIntEQ(wolfSSL_X509_check_ca(x509), 0);
|
||||
wolfSSL_X509_free(x509);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void test_wolfSSL_X509_get_version(void){
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM)
|
||||
WOLFSSL_X509 *x509;
|
||||
|
||||
printf(testingFmt, "wolfSSL_X509_get_version()");
|
||||
|
||||
x509 = wolfSSL_X509_load_certificate_file(svrCertFile, WOLFSSL_FILETYPE_PEM);
|
||||
AssertNotNull(x509);
|
||||
AssertIntEQ((int)wolfSSL_X509_get_version(x509), 2);
|
||||
wolfSSL_X509_free(x509);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -21012,15 +21032,17 @@ static void test_wolfSSL_X509_CRL(void)
|
||||
|
||||
static void test_wolfSSL_PEM_read_X509(void)
|
||||
{
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM)
|
||||
#if defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && !defined(NO_FILESYSTEM)
|
||||
X509 *x509 = NULL;
|
||||
XFILE fp;
|
||||
|
||||
printf(testingFmt, "wolfSSL_PEM_read_X509");
|
||||
AssertNotNull(fp = XFOPEN(svrCertFile, "rb"));
|
||||
AssertNotNull(x509 = (X509 *)PEM_read_X509(fp, (X509 **)NULL, NULL, NULL));
|
||||
X509_free(x509);
|
||||
XFCLOSE(fp);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -21033,6 +21055,7 @@ static void test_wolfSSL_X509_NAME_ENTRY_get_object()
|
||||
X509_NAME_ENTRY *ne = NULL;
|
||||
ASN1_OBJECT *object = NULL;
|
||||
|
||||
printf(testingFmt, "wolfSSL_X509_NAME_ENTRY_get_object");
|
||||
x509 = wolfSSL_X509_load_certificate_file(cliCertFile, WOLFSSL_FILETYPE_PEM);
|
||||
AssertNotNull(x509);
|
||||
name = X509_get_subject_name(x509);
|
||||
@@ -21044,6 +21067,8 @@ static void test_wolfSSL_X509_NAME_ENTRY_get_object()
|
||||
AssertNotNull(object = X509_NAME_ENTRY_get_object(ne));
|
||||
|
||||
X509_free(x509);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -21314,7 +21339,7 @@ void ApiTest(void)
|
||||
test_wolfSSL_X509_CRL();
|
||||
test_wolfSSL_PEM_read_X509();
|
||||
test_wolfSSL_X509_NAME_ENTRY_get_object();
|
||||
test_wolfSSL_OPENSSL_add_all_algorithms();
|
||||
test_wolfSSL_OpenSSL_add_all_algorithms();
|
||||
test_wolfSSL_ASN1_STRING_print_ex();
|
||||
test_wolfSSL_ASN1_TIME_to_generalizedtime();
|
||||
test_wolfSSL_i2c_ASN1_INTEGER();
|
||||
@@ -21327,6 +21352,7 @@ void ApiTest(void)
|
||||
#endif /* OPENSSL_ALL || WOLFSSL_ASIO */
|
||||
|
||||
test_wolfSSL_X509_CA_num();
|
||||
test_wolfSSL_X509_get_version();
|
||||
/* test the no op functions for compatibility */
|
||||
test_no_op_functions();
|
||||
|
||||
|
||||
@@ -404,7 +404,6 @@ 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
|
||||
@@ -785,7 +784,6 @@ typedef STACK_OF(WOLFSSL_ASN1_OBJECT) GENERAL_NAMES;
|
||||
|
||||
#define SSL_CTX_flush_sessions wolfSSL_flush_sessions
|
||||
#define SSL_CTX_add_session wolfSSL_CTX_add_session
|
||||
#define SSL_get_SSL_CTX wolfSSL_get_SSL_CTX
|
||||
#define SSL_version wolfSSL_version
|
||||
#define SSL_get_state wolfSSL_get_state
|
||||
#define SSL_state_string_long wolfSSL_state_string_long
|
||||
@@ -956,9 +954,12 @@ typedef WOLFSSL_ASN1_BIT_STRING ASN1_BIT_STRING;
|
||||
#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 OpenSSL_add_all_algorithms_noconf wolfSSL_OpenSSL_add_all_alogrithms_noconf
|
||||
#define i2c_ASN1_INTEGER wolfSSL_i2c_ASN1_INTEGER
|
||||
#define X509_NAME_ENTRY_get_object wolfSSL_X509_NAME_ENTRY_get_object
|
||||
#define SSL_get_SSL_CTX wolfSSL_get_SSL_CTX
|
||||
#define ERR_peek_last_error wolfSSL_ERR_peek_last_error
|
||||
#define X509_get_version wolfSSL_X509_get_version
|
||||
|
||||
|
||||
#define ERR_NUM_ERRORS 16
|
||||
|
||||
@@ -825,6 +825,11 @@ WOLFSSL_API WOLFSSL_BIO* wolfSSL_BIO_new_mem_buf(void* buf, int len);
|
||||
WOLFSSL_API long wolfSSL_BIO_set_ssl(WOLFSSL_BIO*, WOLFSSL*, int flag);
|
||||
WOLFSSL_API long wolfSSL_BIO_set_fd(WOLFSSL_BIO* b, int fd, int flag);
|
||||
WOLFSSL_API void wolfSSL_set_bio(WOLFSSL*, WOLFSSL_BIO* rd, WOLFSSL_BIO* wr);
|
||||
WOLFSSL_API int wolfSSL_add_all_algorithms(void);
|
||||
|
||||
#ifdef OPENSSL_EXTRA
|
||||
WOLFSSL_API int wolfSSL_OpenSSL_add_all_algorithms_noconf(void);
|
||||
#endif
|
||||
|
||||
#ifndef NO_FILESYSTEM
|
||||
WOLFSSL_API WOLFSSL_BIO_METHOD *wolfSSL_BIO_s_file(void);
|
||||
@@ -2997,6 +3002,7 @@ WOLFSSL_API WOLFSSL_ASN1_TIME *wolfSSL_ASN1_TIME_to_generalizedtime(WOLFSSL_ASN1
|
||||
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);
|
||||
WOLFSSL_API long wolfSSL_X509_get_version(const WOLFSSL_X509 *x);
|
||||
#endif /* OPENSSL_EXTRA */
|
||||
|
||||
#ifdef HAVE_PK_CALLBACKS
|
||||
|
||||
Reference in New Issue
Block a user