compatibility mapping for STORE_CTX functions and added test case

This commit is contained in:
Jacob Barthelmeh
2017-01-06 16:53:15 -07:00
parent f0c19ba9b2
commit 54af9fb884
4 changed files with 34 additions and 1 deletions

View File

@@ -24387,6 +24387,21 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
* root CA. */
return wolfSSL_PEM_read_bio_X509(bp, x, cb, u);
}
/* Copies entry into name. With it being copied freeing entry becomes the
* callers responsibility.
* returns 1 for success and 0 for error */
int wolfSSL_X509_NAME_add_entry(WOLFSSL_X509_NAME* name,
WOLFSSL_X509_NAME_ENTRY* entry, int idx, int set)
{
(void)name;
(void)entry;
(void)idx;
(void)set;
WOLFSSL_STUB("wolfSSL_X509_NAME_add_entry");
return SSL_FAILURE;
}
#endif /* ifndef NO_CERTS */
#ifndef NO_CERTS

View File

@@ -14610,6 +14610,8 @@ static void test_wolfSSL_X509(void)
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)
X509* x509;
BIO* bio;
X509_STORE_CTX* ctx;
X509_STORE* store;
printf(testingFmt, "wolfSSL_X509()");
@@ -14622,8 +14624,18 @@ static void test_wolfSSL_X509(void)
AssertIntEQ(i2d_X509_bio(bio, x509), SSL_SUCCESS);
AssertNotNull(ctx = X509_STORE_CTX_new());
AssertIntEQ(X509_verify_cert(ctx), SSL_FATAL_ERROR);
AssertNotNull(store = X509_STORE_new());
AssertIntEQ(X509_STORE_add_cert(store, x509), SSL_SUCCESS);
AssertIntEQ(X509_STORE_CTX_init(ctx, store, x509, NULL), SSL_SUCCESS);
AssertIntEQ(X509_verify_cert(ctx), SSL_SUCCESS);
X509_STORE_CTX_free(ctx);
BIO_free(bio);
X509_free(x509);
printf(resultFmt, passed);
#endif

View File

@@ -307,14 +307,18 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
#define X509_STORE_add_cert wolfSSL_X509_STORE_add_cert
#define X509_STORE_set_flags wolfSSL_X509_STORE_set_flags
#define X509_STORE_CTX_set_verify_cb wolfSSL_X509_STORE_CTX_set_verify_cb
#define X509_STORE_CTX_free wolfSSL_X509_STORE_CTX_free
#define X509_STORE_CTX_new wolfSSL_X509_STORE_CTX_new
#define X509_STORE_CTX_get_chain wolfSSL_X509_STORE_CTX_get_chain
#define X509_STORE_CTX_get_error wolfSSL_X509_STORE_CTX_get_error
#define X509_STORE_CTX_get_error_depth wolfSSL_X509_STORE_CTX_get_error_depth
#define X509_NAME_add_entry wolfSSL_X509_NAME_add_entry
#define X509_NAME_oneline wolfSSL_X509_NAME_oneline
#define X509_get_issuer_name wolfSSL_X509_get_issuer_name
#define X509_get_subject_name wolfSSL_X509_get_subject_name
#define X509_verify_cert_error_string wolfSSL_X509_verify_cert_error_string
#define X509_verify_cert wolfSSL_X509_verify_cert
#define X509_LOOKUP_add_dir wolfSSL_X509_LOOKUP_add_dir
#define X509_LOOKUP_load_file wolfSSL_X509_LOOKUP_load_file

View File

@@ -2319,6 +2319,8 @@ WOLFSSL_API long wolfSSL_ctrl(WOLFSSL* ssl, int cmd, long opt, void* pt);
WOLFSSL_API long wolfSSL_CTX_ctrl(WOLFSSL_CTX* ctx, int cmd, long opt,void* pt);
#ifndef NO_CERTS
WOLFSSL_API int wolfSSL_X509_NAME_add_entry(WOLFSSL_X509_NAME* name,
WOLFSSL_X509_NAME_ENTRY* entry, int idx, int set);
WOLFSSL_API int wolfSSL_check_private_key(const WOLFSSL* ssl);
WOLFSSL_API void* wolfSSL_X509_get_ext_d2i(const WOLFSSL_X509* x509,
int nid, int* c, int* idx);