mirror of https://github.com/wolfSSL/wolfssl
add internal to DER X509 function
This commit is contained in:
parent
11d42f5112
commit
f0c19ba9b2
30
src/ssl.c
30
src/ssl.c
|
@ -16215,6 +16215,36 @@ WOLFSSL_X509_LOOKUP* wolfSSL_X509_STORE_add_lookup(WOLFSSL_X509_STORE* store,
|
|||
|
||||
|
||||
#ifndef NO_CERTS
|
||||
int wolfSSL_i2d_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509* x509)
|
||||
{
|
||||
WOLFSSL_ENTER("wolfSSL_i2d_X509_bio");
|
||||
|
||||
if (bio == NULL || x509 == NULL) {
|
||||
return SSL_FAILURE;
|
||||
}
|
||||
|
||||
if (bio->mem != NULL) {
|
||||
XFREE(bio->mem, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||
}
|
||||
|
||||
if (x509->derCert != NULL) {
|
||||
word32 len = x509->derCert->length;
|
||||
byte* der = x509->derCert->buffer;
|
||||
|
||||
bio->mem = (byte*)XMALLOC(len, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||
if (bio->mem == NULL) {
|
||||
WOLFSSL_MSG("Memory allocation error");
|
||||
return SSL_FAILURE;
|
||||
}
|
||||
bio->memLen = len;
|
||||
XMEMCPY(bio->mem, der, len);
|
||||
return SSL_SUCCESS;
|
||||
}
|
||||
|
||||
return SSL_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
WOLFSSL_X509* wolfSSL_d2i_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509** x509)
|
||||
{
|
||||
WOLFSSL_X509* localX509 = NULL;
|
||||
|
|
28
tests/api.c
28
tests/api.c
|
@ -14604,6 +14604,32 @@ static void test_wolfSSL_ASN1_TIME_adj(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
|
||||
static void test_wolfSSL_X509(void)
|
||||
{
|
||||
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM)
|
||||
X509* x509;
|
||||
BIO* bio;
|
||||
|
||||
printf(testingFmt, "wolfSSL_X509()");
|
||||
|
||||
AssertNotNull(x509 = X509_new());
|
||||
X509_free(x509);
|
||||
|
||||
x509 = wolfSSL_X509_load_certificate_file(cliCertFile, SSL_FILETYPE_PEM);
|
||||
|
||||
AssertNotNull(bio = BIO_new(BIO_s_mem()));
|
||||
|
||||
AssertIntEQ(i2d_X509_bio(bio, x509), SSL_SUCCESS);
|
||||
|
||||
BIO_free(bio);
|
||||
X509_free(x509);
|
||||
|
||||
printf(resultFmt, passed);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------------*
|
||||
| wolfCrypt ASN
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
@ -15373,7 +15399,9 @@ void ApiTest(void)
|
|||
test_wolfSSL_X509_STORE_CTX();
|
||||
test_wolfSSL_PEM_read_bio();
|
||||
test_wolfSSL_BIO();
|
||||
test_wolfSSL_DES_ecb_encrypt();
|
||||
test_wolfSSL_ASN1_STRING();
|
||||
test_wolfSSL_X509();
|
||||
test_wolfSSL_DES_ecb_encrypt();
|
||||
test_wolfSSL_set_tlsext_status_type();
|
||||
test_wolfSSL_ASN1_TIME_adj();
|
||||
|
|
|
@ -271,6 +271,7 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
|
|||
#define BIO_set_flags wolfSSL_BIO_set_flags
|
||||
|
||||
#define OpenSSL_add_all_digests()
|
||||
#define OpenSSL_add_all_ciphers()
|
||||
#define OpenSSL_add_all_algorithms wolfSSL_add_all_algorithms
|
||||
#define SSLeay_add_ssl_algorithms wolfSSL_add_all_algorithms
|
||||
#define SSLeay_add_all_algorithms wolfSSL_add_all_algorithms
|
||||
|
@ -457,6 +458,7 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
|
|||
#define sk_value wolfSSL_sk_value
|
||||
#define sk_X509_pop wolfSSL_sk_X509_pop
|
||||
#define sk_X509_free wolfSSL_sk_X509_free
|
||||
#define i2d_X509_bio wolfSSL_i2d_X509_bio
|
||||
#define d2i_X509_bio wolfSSL_d2i_X509_bio
|
||||
|
||||
#define SSL_CTX_get_ex_data wolfSSL_CTX_get_ex_data
|
||||
|
|
|
@ -2345,7 +2345,9 @@ WOLFSSL_API int wolfSSL_SESSION_get_master_key_length(const WOLFSSL_SESSION* ses
|
|||
|
||||
WOLFSSL_API void wolfSSL_CTX_set_cert_store(WOLFSSL_CTX* ctx,
|
||||
WOLFSSL_X509_STORE* str);
|
||||
WOLFSSL_X509* wolfSSL_d2i_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509** x509);
|
||||
WOLFSSL_API int wolfSSL_i2d_X509_bio(WOLFSSL_BIO* bio, WOLFSSL_X509* x509);
|
||||
WOLFSSL_API WOLFSSL_X509* wolfSSL_d2i_X509_bio(WOLFSSL_BIO* bio,
|
||||
WOLFSSL_X509** x509);
|
||||
WOLFSSL_API WOLFSSL_X509_STORE* wolfSSL_CTX_get_cert_store(WOLFSSL_CTX* ctx);
|
||||
|
||||
WOLFSSL_API size_t wolfSSL_BIO_ctrl_pending(WOLFSSL_BIO *b);
|
||||
|
|
Loading…
Reference in New Issue