mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-02 12:14:38 +02:00
implement wolfSSL_dup_CA_list()
wolfSSL_dup_CA_list() duplicates a WOLF_STACK_OF(WOLFSSL_X509_NAME) (replaces stub function)
This commit is contained in:
committed by
Daniel Pouzzner
parent
e5ed227a87
commit
be7592fb43
@@ -17187,7 +17187,7 @@ int SendCertificateRequest(WOLFSSL* ssl)
|
|||||||
int sendSz;
|
int sendSz;
|
||||||
word32 i = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
|
word32 i = RECORD_HEADER_SZ + HANDSHAKE_HEADER_SZ;
|
||||||
word32 dnLen = 0;
|
word32 dnLen = 0;
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)
|
||||||
WOLF_STACK_OF(WOLFSSL_X509_NAME)* names;
|
WOLF_STACK_OF(WOLFSSL_X509_NAME)* names;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -17200,7 +17200,7 @@ int SendCertificateRequest(WOLFSSL* ssl)
|
|||||||
if (IsAtLeastTLSv1_2(ssl))
|
if (IsAtLeastTLSv1_2(ssl))
|
||||||
reqSz += LENGTH_SZ + ssl->suites->hashSigAlgoSz;
|
reqSz += LENGTH_SZ + ssl->suites->hashSigAlgoSz;
|
||||||
|
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)
|
||||||
/* Certificate Authorities */
|
/* Certificate Authorities */
|
||||||
names = ssl->ctx->ca_names;
|
names = ssl->ctx->ca_names;
|
||||||
while (names != NULL) {
|
while (names != NULL) {
|
||||||
@@ -17269,7 +17269,7 @@ int SendCertificateRequest(WOLFSSL* ssl)
|
|||||||
/* Certificate Authorities */
|
/* Certificate Authorities */
|
||||||
c16toa((word16)dnLen, &output[i]); /* auth's */
|
c16toa((word16)dnLen, &output[i]); /* auth's */
|
||||||
i += REQ_HEADER_SZ;
|
i += REQ_HEADER_SZ;
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)
|
||||||
names = ssl->ctx->ca_names;
|
names = ssl->ctx->ca_names;
|
||||||
while (names != NULL) {
|
while (names != NULL) {
|
||||||
byte seq[MAX_SEQ_SZ];
|
byte seq[MAX_SEQ_SZ];
|
||||||
|
42
src/ssl.c
42
src/ssl.c
@@ -39855,16 +39855,6 @@ err:
|
|||||||
|
|
||||||
return WOLFSSL_SUCCESS;
|
return WOLFSSL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
WOLF_STACK_OF(WOLFSSL_X509_NAME) *wolfSSL_dup_CA_list(
|
|
||||||
WOLF_STACK_OF(WOLFSSL_X509_NAME) *sk)
|
|
||||||
{
|
|
||||||
(void) sk;
|
|
||||||
WOLFSSL_ENTER("wolfSSL_dup_CA_list");
|
|
||||||
WOLFSSL_STUB("SSL_dup_CA_list");
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* wolfSSL uses negative values for error states. This function returns an
|
/* wolfSSL uses negative values for error states. This function returns an
|
||||||
@@ -41996,6 +41986,38 @@ WOLF_STACK_OF(WOLFSSL_X509_NAME)* wolfSSL_sk_X509_NAME_new(wolf_sk_compare_cb cb
|
|||||||
return sk;
|
return sk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Creates a duplicate of WOLF_STACK_OF(WOLFSSL_X509_NAME).
|
||||||
|
* Returns a new WOLF_STACK_OF(WOLFSSL_X509_NAME) or NULL on failure */
|
||||||
|
WOLF_STACK_OF(WOLFSSL_X509_NAME) *wolfSSL_dup_CA_list(
|
||||||
|
WOLF_STACK_OF(WOLFSSL_X509_NAME)* sk)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
const int num = wolfSSL_sk_X509_NAME_num(sk);
|
||||||
|
WOLF_STACK_OF(WOLFSSL_X509_NAME) *copy;
|
||||||
|
WOLFSSL_X509_NAME *name;
|
||||||
|
|
||||||
|
WOLFSSL_ENTER("wolfSSL_dup_CA_list");
|
||||||
|
|
||||||
|
copy = wolfSSL_sk_X509_NAME_new(NULL);
|
||||||
|
if (copy == NULL) {
|
||||||
|
WOLFSSL_MSG("Memory error");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < num; i++) {
|
||||||
|
name = wolfSSL_X509_NAME_dup(wolfSSL_sk_X509_NAME_value(sk, i));
|
||||||
|
if (name == NULL || 0 != wolfSSL_sk_X509_NAME_push(copy, name)) {
|
||||||
|
WOLFSSL_MSG("Memory error");
|
||||||
|
wolfSSL_sk_X509_NAME_pop_free(copy, wolfSSL_X509_NAME_free);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int wolfSSL_sk_X509_NAME_push(WOLF_STACK_OF(WOLFSSL_X509_NAME)* sk,
|
int wolfSSL_sk_X509_NAME_push(WOLF_STACK_OF(WOLFSSL_X509_NAME)* sk,
|
||||||
WOLFSSL_X509_NAME* name)
|
WOLFSSL_X509_NAME* name)
|
||||||
{
|
{
|
||||||
|
@@ -3633,7 +3633,7 @@ struct WOLFSSL_X509_NAME {
|
|||||||
WOLFSSL_X509_NAME_ENTRY entry[MAX_NAME_ENTRIES]; /* all entries i.e. CN */
|
WOLFSSL_X509_NAME_ENTRY entry[MAX_NAME_ENTRIES]; /* all entries i.e. CN */
|
||||||
WOLFSSL_X509* x509; /* x509 that struct belongs to */
|
WOLFSSL_X509* x509; /* x509 that struct belongs to */
|
||||||
#endif /* OPENSSL_EXTRA */
|
#endif /* OPENSSL_EXTRA */
|
||||||
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX)
|
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || defined(HAVE_LIGHTY)
|
||||||
byte raw[ASN_NAME_MAX];
|
byte raw[ASN_NAME_MAX];
|
||||||
int rawLen;
|
int rawLen;
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user