mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
Refactor sk_*_free functions
Use a single `wolfSSL_sk_pop_free` and `wolfSSL_sk_free` function that free's the stack and optionally free's the node content as well.
This commit is contained in:
@ -2333,7 +2333,7 @@ void SSL_CtxResourceFree(WOLFSSL_CTX* ctx)
|
|||||||
ctx->cm = NULL;
|
ctx->cm = NULL;
|
||||||
#ifdef OPENSSL_ALL
|
#ifdef OPENSSL_ALL
|
||||||
if (ctx->x509_store.objs != NULL) {
|
if (ctx->x509_store.objs != NULL) {
|
||||||
wolfSSL_sk_X509_OBJECT_free(ctx->x509_store.objs);
|
wolfSSL_sk_X509_OBJECT_pop_free(ctx->x509_store.objs, NULL);
|
||||||
ctx->x509_store.objs = NULL;
|
ctx->x509_store.objs = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -2347,7 +2347,7 @@ void SSL_CtxResourceFree(WOLFSSL_CTX* ctx)
|
|||||||
#endif
|
#endif
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(WOLFSSL_HAPROXY)
|
||||||
if (ctx->x509Chain) {
|
if (ctx->x509Chain) {
|
||||||
wolfSSL_sk_X509_free(ctx->x509Chain);
|
wolfSSL_sk_X509_pop_free(ctx->x509Chain, NULL);
|
||||||
ctx->x509Chain = NULL;
|
ctx->x509Chain = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -3979,10 +3979,10 @@ void FreeX509(WOLFSSL_X509* x509)
|
|||||||
XFREE(x509->authInfoCaIssuer, x509->heap, DYNAMIC_TYPE_X509_EXT);
|
XFREE(x509->authInfoCaIssuer, x509->heap, DYNAMIC_TYPE_X509_EXT);
|
||||||
}
|
}
|
||||||
if (x509->ext_sk != NULL) {
|
if (x509->ext_sk != NULL) {
|
||||||
wolfSSL_sk_X509_EXTENSION_free(x509->ext_sk);
|
wolfSSL_sk_X509_EXTENSION_pop_free(x509->ext_sk, NULL);
|
||||||
}
|
}
|
||||||
if (x509->ext_sk_full != NULL) {
|
if (x509->ext_sk_full != NULL) {
|
||||||
wolfSSL_sk_X509_EXTENSION_free(x509->ext_sk_full);
|
wolfSSL_sk_X509_EXTENSION_pop_free(x509->ext_sk_full, NULL);
|
||||||
}
|
}
|
||||||
#endif /* OPENSSL_ALL || WOLFSSL_QT */
|
#endif /* OPENSSL_ALL || WOLFSSL_QT */
|
||||||
#ifdef OPENSSL_EXTRA
|
#ifdef OPENSSL_EXTRA
|
||||||
@ -6953,6 +6953,8 @@ void FreeSuites(WOLFSSL* ssl)
|
|||||||
{
|
{
|
||||||
#ifdef OPENSSL_ALL
|
#ifdef OPENSSL_ALL
|
||||||
if (ssl->suites != NULL) {
|
if (ssl->suites != NULL) {
|
||||||
|
/* Enough to free stack structure since WOLFSSL_CIPHER
|
||||||
|
* isn't allocated separately. */
|
||||||
wolfSSL_sk_SSL_CIPHER_free(ssl->suites->stack);
|
wolfSSL_sk_SSL_CIPHER_free(ssl->suites->stack);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -7251,10 +7253,12 @@ void SSL_ResourceFree(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
#endif /* WOLFSSL_STATIC_MEMORY */
|
#endif /* WOLFSSL_STATIC_MEMORY */
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_QT)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_QT)
|
||||||
|
/* Enough to free stack structure since WOLFSSL_CIPHER
|
||||||
|
* isn't allocated separately. */
|
||||||
wolfSSL_sk_CIPHER_free(ssl->supportedCiphers);
|
wolfSSL_sk_CIPHER_free(ssl->supportedCiphers);
|
||||||
wolfSSL_sk_X509_free(ssl->peerCertChain);
|
wolfSSL_sk_X509_pop_free(ssl->peerCertChain, NULL);
|
||||||
#ifdef KEEP_OUR_CERT
|
#ifdef KEEP_OUR_CERT
|
||||||
wolfSSL_sk_X509_free(ssl->ourCertChain);
|
wolfSSL_sk_X509_pop_free(ssl->ourCertChain, NULL);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA) || defined(HAVE_LIGHTY)
|
#if defined(OPENSSL_EXTRA) || defined(WOLFSSL_EXTRA) || defined(HAVE_LIGHTY)
|
||||||
@ -11371,7 +11375,7 @@ int DoVerifyCallback(WOLFSSL_CERT_MANAGER* cm, WOLFSSL* ssl, int ret,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if defined(SESSION_CERTS) && defined(OPENSSL_EXTRA)
|
#if defined(SESSION_CERTS) && defined(OPENSSL_EXTRA)
|
||||||
wolfSSL_sk_X509_free(store->chain);
|
wolfSSL_sk_X509_pop_free(store->chain, NULL);
|
||||||
store->chain = NULL;
|
store->chain = NULL;
|
||||||
#endif
|
#endif
|
||||||
#ifdef SESSION_CERTS
|
#ifdef SESSION_CERTS
|
||||||
|
41
tests/api.c
41
tests/api.c
@ -1410,7 +1410,7 @@ static void test_wolfSSL_CertManagerGetCerts(void)
|
|||||||
#endif /* DEBUG_WOLFSSL_VERBOSE */
|
#endif /* DEBUG_WOLFSSL_VERBOSE */
|
||||||
}
|
}
|
||||||
wolfSSL_X509_free(cert1);
|
wolfSSL_X509_free(cert1);
|
||||||
sk_X509_free(sk);
|
sk_X509_pop_free(sk, NULL);
|
||||||
wolfSSL_CertManagerFree(cm);
|
wolfSSL_CertManagerFree(cm);
|
||||||
printf(resultFmt, passed);
|
printf(resultFmt, passed);
|
||||||
#endif /* defined(OPENSSL_ALL) && !defined(NO_CERTS) && \
|
#endif /* defined(OPENSSL_ALL) && !defined(NO_CERTS) && \
|
||||||
@ -8052,7 +8052,7 @@ static void test_wolfSSL_PKCS12(void)
|
|||||||
-1, -1, 100, -1, 0)));
|
-1, -1, 100, -1, 0)));
|
||||||
EVP_PKEY_free(pkey);
|
EVP_PKEY_free(pkey);
|
||||||
X509_free(cert);
|
X509_free(cert);
|
||||||
sk_X509_free(ca);
|
sk_X509_pop_free(ca, NULL);
|
||||||
|
|
||||||
AssertIntEQ(PKCS12_parse(pkcs12_2, "a password", &pkey, &cert, &ca),
|
AssertIntEQ(PKCS12_parse(pkcs12_2, "a password", &pkey, &cert, &ca),
|
||||||
SSL_SUCCESS);
|
SSL_SUCCESS);
|
||||||
@ -8063,7 +8063,7 @@ static void test_wolfSSL_PKCS12(void)
|
|||||||
2000, 1, 0)));
|
2000, 1, 0)));
|
||||||
EVP_PKEY_free(pkey);
|
EVP_PKEY_free(pkey);
|
||||||
X509_free(cert);
|
X509_free(cert);
|
||||||
sk_X509_free(ca);
|
sk_X509_pop_free(ca, NULL);
|
||||||
|
|
||||||
/* convert to DER then back and parse */
|
/* convert to DER then back and parse */
|
||||||
AssertNotNull(bio = BIO_new(BIO_s_mem()));
|
AssertNotNull(bio = BIO_new(BIO_s_mem()));
|
||||||
@ -8093,7 +8093,7 @@ static void test_wolfSSL_PKCS12(void)
|
|||||||
2000, 1, 0)));
|
2000, 1, 0)));
|
||||||
EVP_PKEY_free(pkey);
|
EVP_PKEY_free(pkey);
|
||||||
X509_free(cert);
|
X509_free(cert);
|
||||||
sk_X509_free(ca);
|
sk_X509_pop_free(ca, NULL);
|
||||||
|
|
||||||
AssertIntEQ(PKCS12_parse(pkcs12_2, "a password", &pkey, &cert, &ca),
|
AssertIntEQ(PKCS12_parse(pkcs12_2, "a password", &pkey, &cert, &ca),
|
||||||
SSL_SUCCESS);
|
SSL_SUCCESS);
|
||||||
@ -8104,7 +8104,7 @@ static void test_wolfSSL_PKCS12(void)
|
|||||||
X509_free(cert);
|
X509_free(cert);
|
||||||
PKCS12_free(pkcs12);
|
PKCS12_free(pkcs12);
|
||||||
PKCS12_free(pkcs12_2);
|
PKCS12_free(pkcs12_2);
|
||||||
sk_X509_free(ca);
|
sk_X509_pop_free(ca, NULL);
|
||||||
|
|
||||||
#ifdef HAVE_ECC
|
#ifdef HAVE_ECC
|
||||||
/* test order of parsing */
|
/* test order of parsing */
|
||||||
@ -8152,7 +8152,7 @@ static void test_wolfSSL_PKCS12(void)
|
|||||||
X509_free(cert);
|
X509_free(cert);
|
||||||
BIO_free(bio);
|
BIO_free(bio);
|
||||||
PKCS12_free(pkcs12);
|
PKCS12_free(pkcs12);
|
||||||
sk_X509_free(ca); /* TEST d2i_PKCS12_fp */
|
sk_X509_pop_free(ca, NULL); /* TEST d2i_PKCS12_fp */
|
||||||
|
|
||||||
/* test order of parsing */
|
/* test order of parsing */
|
||||||
f = XFOPEN(file, "rb");
|
f = XFOPEN(file, "rb");
|
||||||
@ -8184,7 +8184,7 @@ static void test_wolfSSL_PKCS12(void)
|
|||||||
|
|
||||||
wolfSSL_EVP_PKEY_free(pkey);
|
wolfSSL_EVP_PKEY_free(pkey);
|
||||||
wolfSSL_X509_free(cert);
|
wolfSSL_X509_free(cert);
|
||||||
sk_X509_free(ca);
|
sk_X509_pop_free(ca, NULL);
|
||||||
|
|
||||||
PKCS12_free(pkcs12);
|
PKCS12_free(pkcs12);
|
||||||
#endif /* HAVE_ECC */
|
#endif /* HAVE_ECC */
|
||||||
@ -8220,7 +8220,7 @@ static void test_wolfSSL_PKCS12(void)
|
|||||||
|
|
||||||
wolfSSL_EVP_PKEY_free(pkey);
|
wolfSSL_EVP_PKEY_free(pkey);
|
||||||
wolfSSL_X509_free(cert);
|
wolfSSL_X509_free(cert);
|
||||||
sk_X509_free(ca);
|
sk_X509_pop_free(ca, NULL);
|
||||||
|
|
||||||
BIO_free(bio);
|
BIO_free(bio);
|
||||||
PKCS12_free(pkcs12);
|
PKCS12_free(pkcs12);
|
||||||
@ -29757,7 +29757,7 @@ static void test_wolfSSL_X509_INFO(void)
|
|||||||
|
|
||||||
AssertNotNull(cert = BIO_new_file(cliCertFileExt, "rb"));
|
AssertNotNull(cert = BIO_new_file(cliCertFileExt, "rb"));
|
||||||
AssertNotNull(info_stack = PEM_X509_INFO_read_bio(cert, NULL, NULL, NULL));
|
AssertNotNull(info_stack = PEM_X509_INFO_read_bio(cert, NULL, NULL, NULL));
|
||||||
sk_X509_INFO_free(info_stack);
|
sk_X509_INFO_pop_free(info_stack, X509_INFO_free);
|
||||||
BIO_free(cert);
|
BIO_free(cert);
|
||||||
|
|
||||||
/* This case should fail due to invalid input. */
|
/* This case should fail due to invalid input. */
|
||||||
@ -30244,7 +30244,7 @@ static void test_wolfSSL_certs(void)
|
|||||||
ext = X509V3_EXT_i2d(NID_ext_key_usage, crit, sk);
|
ext = X509V3_EXT_i2d(NID_ext_key_usage, crit, sk);
|
||||||
AssertNotNull(ext);
|
AssertNotNull(ext);
|
||||||
X509_EXTENSION_free(ext);
|
X509_EXTENSION_free(ext);
|
||||||
sk_ASN1_OBJECT_free(sk);
|
sk_ASN1_OBJECT_pop_free(sk, NULL);
|
||||||
#else
|
#else
|
||||||
sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509ext, NID_ext_key_usage,
|
sk = (STACK_OF(ASN1_OBJECT)*)X509_get_ext_d2i(x509ext, NID_ext_key_usage,
|
||||||
&crit, NULL);
|
&crit, NULL);
|
||||||
@ -32641,7 +32641,7 @@ static void test_wolfSSL_X509_LOOKUP_ctrl_file(void)
|
|||||||
X509_free(issuer);
|
X509_free(issuer);
|
||||||
X509_STORE_CTX_free(ctx);
|
X509_STORE_CTX_free(ctx);
|
||||||
X509_STORE_free(str);
|
X509_STORE_free(str);
|
||||||
sk_X509_free(sk);
|
sk_X509_pop_free(sk, NULL);
|
||||||
X509_free(x509Svr);
|
X509_free(x509Svr);
|
||||||
|
|
||||||
AssertNotNull((str = wolfSSL_X509_STORE_new()));
|
AssertNotNull((str = wolfSSL_X509_STORE_new()));
|
||||||
@ -32657,7 +32657,7 @@ static void test_wolfSSL_X509_LOOKUP_ctrl_file(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
X509_STORE_free(str);
|
X509_STORE_free(str);
|
||||||
sk_X509_free(sk);
|
sk_X509_pop_free(sk, NULL);
|
||||||
X509_free(cert1);
|
X509_free(cert1);
|
||||||
|
|
||||||
#ifdef HAVE_CRL
|
#ifdef HAVE_CRL
|
||||||
@ -32849,7 +32849,7 @@ static void test_wolfSSL_X509_STORE_CTX(void)
|
|||||||
|
|
||||||
X509_STORE_CTX_free(ctx);
|
X509_STORE_CTX_free(ctx);
|
||||||
#ifdef OPENSSL_ALL
|
#ifdef OPENSSL_ALL
|
||||||
sk_X509_free(sk);
|
sk_X509_pop_free(sk, NULL);
|
||||||
#endif
|
#endif
|
||||||
X509_STORE_free(str);
|
X509_STORE_free(str);
|
||||||
X509_free(x509);
|
X509_free(x509);
|
||||||
@ -32879,9 +32879,9 @@ static void test_wolfSSL_X509_STORE_CTX(void)
|
|||||||
X509_STORE_free(str);
|
X509_STORE_free(str);
|
||||||
/* CTX certs not freed yet */
|
/* CTX certs not freed yet */
|
||||||
X509_free(x5092);
|
X509_free(x5092);
|
||||||
sk_X509_free(sk);
|
sk_X509_pop_free(sk, NULL);
|
||||||
/* sk3 is dup so free here */
|
/* sk3 is dup so free here */
|
||||||
sk_X509_free(sk3);
|
sk_X509_pop_free(sk3, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* test X509_STORE_CTX_get/set_ex_data */
|
/* test X509_STORE_CTX_get/set_ex_data */
|
||||||
@ -39526,10 +39526,9 @@ static void test_wolfSSL_GENERAL_NAME_print(void)
|
|||||||
AssertIntEQ(XSTRNCMP((const char*)outbuf, uriStr, XSTRLEN(uriStr)), 0);
|
AssertIntEQ(XSTRNCMP((const char*)outbuf, uriStr, XSTRLEN(uriStr)), 0);
|
||||||
|
|
||||||
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL);
|
wolfSSL_sk_ACCESS_DESCRIPTION_pop_free(aia, NULL);
|
||||||
|
|
||||||
aia = (AUTHORITY_INFO_ACCESS*)wolfSSL_X509V3_EXT_d2i(ext);
|
aia = (AUTHORITY_INFO_ACCESS*)wolfSSL_X509V3_EXT_d2i(ext);
|
||||||
AssertNotNull(aia);
|
AssertNotNull(aia);
|
||||||
AUTHORITY_INFO_ACCESS_free(aia);
|
AUTHORITY_INFO_ACCESS_pop_free(aia, NULL);
|
||||||
X509_free(x509);
|
X509_free(x509);
|
||||||
|
|
||||||
/* test for GEN_IPADD */
|
/* test for GEN_IPADD */
|
||||||
@ -46072,11 +46071,11 @@ static void test_sk_X509(void)
|
|||||||
|
|
||||||
AssertNotNull(s = sk_X509_new());
|
AssertNotNull(s = sk_X509_new());
|
||||||
AssertIntEQ(sk_X509_num(s), 0);
|
AssertIntEQ(sk_X509_num(s), 0);
|
||||||
sk_X509_free(s);
|
sk_X509_pop_free(s, NULL);
|
||||||
|
|
||||||
AssertNotNull(s = sk_X509_new_null());
|
AssertNotNull(s = sk_X509_new_null());
|
||||||
AssertIntEQ(sk_X509_num(s), 0);
|
AssertIntEQ(sk_X509_num(s), 0);
|
||||||
sk_X509_free(s);
|
sk_X509_pop_free(s, NULL);
|
||||||
|
|
||||||
AssertNotNull(s = sk_X509_new());
|
AssertNotNull(s = sk_X509_new());
|
||||||
sk_X509_push(s, (X509*)1);
|
sk_X509_push(s, (X509*)1);
|
||||||
@ -48607,14 +48606,14 @@ static void test_wolfSSL_X509_STORE_get1_certs(void)
|
|||||||
AssertNotNull(certs = X509_STORE_get1_certs(storeCtx, subject));
|
AssertNotNull(certs = X509_STORE_get1_certs(storeCtx, subject));
|
||||||
AssertIntEQ(1, wolfSSL_sk_X509_num(certs));
|
AssertIntEQ(1, wolfSSL_sk_X509_num(certs));
|
||||||
|
|
||||||
sk_X509_free(certs);
|
sk_X509_pop_free(certs, NULL);
|
||||||
|
|
||||||
/* Should not find the cert */
|
/* Should not find the cert */
|
||||||
AssertNotNull(subject = X509_get_subject_name(svrX509));
|
AssertNotNull(subject = X509_get_subject_name(svrX509));
|
||||||
AssertNotNull(certs = X509_STORE_get1_certs(storeCtx, subject));
|
AssertNotNull(certs = X509_STORE_get1_certs(storeCtx, subject));
|
||||||
AssertIntEQ(0, wolfSSL_sk_X509_num(certs));
|
AssertIntEQ(0, wolfSSL_sk_X509_num(certs));
|
||||||
|
|
||||||
sk_X509_free(certs);
|
sk_X509_pop_free(certs, NULL);
|
||||||
|
|
||||||
X509_STORE_free(store);
|
X509_STORE_free(store);
|
||||||
X509_STORE_CTX_free(storeCtx);
|
X509_STORE_CTX_free(storeCtx);
|
||||||
|
@ -528,6 +528,7 @@ typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
|
|||||||
|
|
||||||
#define sk_X509_OBJECT_new wolfSSL_sk_X509_OBJECT_new
|
#define sk_X509_OBJECT_new wolfSSL_sk_X509_OBJECT_new
|
||||||
#define sk_X509_OBJECT_free wolfSSL_sk_X509_OBJECT_free
|
#define sk_X509_OBJECT_free wolfSSL_sk_X509_OBJECT_free
|
||||||
|
#define sk_X509_OBJECT_pop_free wolfSSL_sk_X509_OBJECT_pop_free
|
||||||
|
|
||||||
#define sk_X509_EXTENSION_num wolfSSL_sk_X509_EXTENSION_num
|
#define sk_X509_EXTENSION_num wolfSSL_sk_X509_EXTENSION_num
|
||||||
#define sk_X509_EXTENSION_value wolfSSL_sk_X509_EXTENSION_value
|
#define sk_X509_EXTENSION_value wolfSSL_sk_X509_EXTENSION_value
|
||||||
@ -1306,7 +1307,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_
|
|||||||
#define DIST_POINT_new wolfSSL_DIST_POINT_new
|
#define DIST_POINT_new wolfSSL_DIST_POINT_new
|
||||||
#define DIST_POINT_free wolfSSL_DIST_POINT_free
|
#define DIST_POINT_free wolfSSL_DIST_POINT_free
|
||||||
#define DIST_POINTS_free wolfSSL_DIST_POINTS_free
|
#define DIST_POINTS_free wolfSSL_DIST_POINTS_free
|
||||||
#define CRL_DIST_POINTS_free wolfSSL_sk_DIST_POINT_free
|
#define CRL_DIST_POINTS_free(cdp) wolfSSL_sk_DIST_POINT_pop_free((cdp), NULL)
|
||||||
#define sk_DIST_POINT_push wolfSSL_sk_DIST_POINT_push
|
#define sk_DIST_POINT_push wolfSSL_sk_DIST_POINT_push
|
||||||
#define sk_DIST_POINT_value wolfSSL_sk_DIST_POINT_value
|
#define sk_DIST_POINT_value wolfSSL_sk_DIST_POINT_value
|
||||||
#define sk_DIST_POINT_num wolfSSL_sk_DIST_POINT_num
|
#define sk_DIST_POINT_num wolfSSL_sk_DIST_POINT_num
|
||||||
@ -1325,6 +1326,7 @@ wolfSSL_X509_STORE_set_verify_cb((WOLFSSL_X509_STORE *)(s), (WOLFSSL_X509_STORE_
|
|||||||
#define GENERAL_NAMES_free wolfSSL_GENERAL_NAMES_free
|
#define GENERAL_NAMES_free wolfSSL_GENERAL_NAMES_free
|
||||||
|
|
||||||
#define AUTHORITY_INFO_ACCESS_free wolfSSL_AUTHORITY_INFO_ACCESS_free
|
#define AUTHORITY_INFO_ACCESS_free wolfSSL_AUTHORITY_INFO_ACCESS_free
|
||||||
|
#define AUTHORITY_INFO_ACCESS_pop_free wolfSSL_AUTHORITY_INFO_ACCESS_pop_free
|
||||||
#define sk_ACCESS_DESCRIPTION_pop_free wolfSSL_sk_ACCESS_DESCRIPTION_pop_free
|
#define sk_ACCESS_DESCRIPTION_pop_free wolfSSL_sk_ACCESS_DESCRIPTION_pop_free
|
||||||
#define sk_ACCESS_DESCRIPTION_free wolfSSL_sk_ACCESS_DESCRIPTION_free
|
#define sk_ACCESS_DESCRIPTION_free wolfSSL_sk_ACCESS_DESCRIPTION_free
|
||||||
#define ACCESS_DESCRIPTION_free wolfSSL_ACCESS_DESCRIPTION_free
|
#define ACCESS_DESCRIPTION_free wolfSSL_ACCESS_DESCRIPTION_free
|
||||||
|
@ -1383,6 +1383,9 @@ WOLFSSL_API void wolfSSL_DIST_POINTS_free(WOLFSSL_DIST_POINTS* dp);
|
|||||||
WOLFSSL_API int wolfSSL_sk_ACCESS_DESCRIPTION_num(WOLFSSL_STACK* sk);
|
WOLFSSL_API int wolfSSL_sk_ACCESS_DESCRIPTION_num(WOLFSSL_STACK* sk);
|
||||||
WOLFSSL_API void wolfSSL_AUTHORITY_INFO_ACCESS_free(
|
WOLFSSL_API void wolfSSL_AUTHORITY_INFO_ACCESS_free(
|
||||||
WOLF_STACK_OF(WOLFSSL_ACCESS_DESCRIPTION)* sk);
|
WOLF_STACK_OF(WOLFSSL_ACCESS_DESCRIPTION)* sk);
|
||||||
|
WOLFSSL_API void wolfSSL_AUTHORITY_INFO_ACCESS_pop_free(
|
||||||
|
WOLF_STACK_OF(WOLFSSL_ACCESS_DESCRIPTION)* sk,
|
||||||
|
void (*f) (WOLFSSL_ACCESS_DESCRIPTION*));
|
||||||
WOLFSSL_API WOLFSSL_ACCESS_DESCRIPTION* wolfSSL_sk_ACCESS_DESCRIPTION_value(
|
WOLFSSL_API WOLFSSL_ACCESS_DESCRIPTION* wolfSSL_sk_ACCESS_DESCRIPTION_value(
|
||||||
WOLFSSL_STACK* sk, int idx);
|
WOLFSSL_STACK* sk, int idx);
|
||||||
WOLFSSL_API void wolfSSL_sk_ACCESS_DESCRIPTION_free(WOLFSSL_STACK* sk);
|
WOLFSSL_API void wolfSSL_sk_ACCESS_DESCRIPTION_free(WOLFSSL_STACK* sk);
|
||||||
@ -4235,6 +4238,8 @@ WOLFSSL_API int wolfSSL_sk_X509_num(const WOLF_STACK_OF(WOLFSSL_X509) *s);
|
|||||||
|
|
||||||
WOLFSSL_API WOLFSSL_STACK* wolfSSL_sk_X509_OBJECT_new(void);
|
WOLFSSL_API WOLFSSL_STACK* wolfSSL_sk_X509_OBJECT_new(void);
|
||||||
WOLFSSL_API void wolfSSL_sk_X509_OBJECT_free(WOLFSSL_STACK* s);
|
WOLFSSL_API void wolfSSL_sk_X509_OBJECT_free(WOLFSSL_STACK* s);
|
||||||
|
WOLFSSL_API void wolfSSL_sk_X509_OBJECT_pop_free(WOLFSSL_STACK* s,
|
||||||
|
void (*f) (WOLFSSL_X509_OBJECT*));
|
||||||
WOLFSSL_API int wolfSSL_sk_X509_OBJECT_push(WOLFSSL_STACK* sk, WOLFSSL_X509_OBJECT* obj);
|
WOLFSSL_API int wolfSSL_sk_X509_OBJECT_push(WOLFSSL_STACK* sk, WOLFSSL_X509_OBJECT* obj);
|
||||||
|
|
||||||
WOLFSSL_API WOLFSSL_X509_INFO *wolfSSL_X509_INFO_new(void);
|
WOLFSSL_API WOLFSSL_X509_INFO *wolfSSL_X509_INFO_new(void);
|
||||||
@ -4563,6 +4568,7 @@ WOLFSSL_API int wolfSSL_X509_check_issued(WOLFSSL_X509 *issuer,
|
|||||||
WOLFSSL_X509 *subject);
|
WOLFSSL_X509 *subject);
|
||||||
|
|
||||||
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_STRING)* wolfSSL_sk_WOLFSSL_STRING_new(void);
|
WOLFSSL_API WOLF_STACK_OF(WOLFSSL_STRING)* wolfSSL_sk_WOLFSSL_STRING_new(void);
|
||||||
|
WOLFSSL_API void wolfSSL_WOLFSSL_STRING_free(WOLFSSL_STRING s);
|
||||||
WOLFSSL_API void wolfSSL_sk_WOLFSSL_STRING_free(WOLF_STACK_OF(WOLFSSL_STRING)* sk);
|
WOLFSSL_API void wolfSSL_sk_WOLFSSL_STRING_free(WOLF_STACK_OF(WOLFSSL_STRING)* sk);
|
||||||
WOLFSSL_API WOLFSSL_STRING wolfSSL_sk_WOLFSSL_STRING_value(
|
WOLFSSL_API WOLFSSL_STRING wolfSSL_sk_WOLFSSL_STRING_value(
|
||||||
WOLF_STACK_OF(WOLFSSL_STRING)* strings, int idx);
|
WOLF_STACK_OF(WOLFSSL_STRING)* strings, int idx);
|
||||||
|
Reference in New Issue
Block a user