mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 19:24:42 +02:00
flush out x509 object stack deep copy and md get flag
This commit is contained in:
36
src/ssl.c
36
src/ssl.c
@@ -15041,6 +15041,7 @@ word32 wolfSSL_lib_version_hex(void)
|
||||
WOLF_STACK_OF(WOLFSSL_CIPHER)* wolfSSL_get_client_ciphers(WOLFSSL* ssl)
|
||||
{
|
||||
WOLFSSL_STUB("wolfSSL_get_client_ciphers");
|
||||
(void)ssl;
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
@@ -17611,6 +17612,31 @@ static void wolfSSL_CIPHER_copy(WOLFSSL_CIPHER* in, WOLFSSL_CIPHER* out)
|
||||
*out = *in;
|
||||
}
|
||||
|
||||
|
||||
static WOLFSSL_X509_OBJECT* wolfSSL_X509_OBJECT_dup(WOLFSSL_X509_OBJECT* obj)
|
||||
{
|
||||
WOLFSSL_X509_OBJECT* ret = NULL;
|
||||
if (obj) {
|
||||
ret = wolfSSL_X509_OBJECT_new();
|
||||
if (ret) {
|
||||
ret->type = obj->type;
|
||||
switch (ret->type) {
|
||||
case WOLFSSL_X509_LU_NONE:
|
||||
break;
|
||||
case WOLFSSL_X509_LU_X509:
|
||||
ret->data.x509 = wolfSSL_X509_dup(obj->data.x509);
|
||||
break;
|
||||
case WOLFSSL_X509_LU_CRL:
|
||||
#if defined(HAVE_CRL)
|
||||
ret->data.crl = wolfSSL_X509_CRL_dup(obj->data.crl);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
WOLFSSL_STACK* wolfSSL_sk_dup(WOLFSSL_STACK* sk)
|
||||
{
|
||||
|
||||
@@ -17673,6 +17699,15 @@ WOLFSSL_STACK* wolfSSL_sk_dup(WOLFSSL_STACK* sk)
|
||||
goto error;
|
||||
}
|
||||
break;
|
||||
case STACK_TYPE_X509_OBJ:
|
||||
if (!sk->data.x509_obj)
|
||||
break;
|
||||
cur->data.x509_obj = wolfSSL_X509_OBJECT_dup(sk->data.x509_obj);
|
||||
if (!cur->data.x509_obj) {
|
||||
WOLFSSL_MSG("wolfSSL_X509_OBJECT_dup error");
|
||||
goto error;
|
||||
}
|
||||
break;
|
||||
case STACK_TYPE_BIO:
|
||||
case STACK_TYPE_STRING:
|
||||
case STACK_TYPE_ACCESS_DESCRIPTION:
|
||||
@@ -17685,7 +17720,6 @@ WOLFSSL_STACK* wolfSSL_sk_dup(WOLFSSL_STACK* sk)
|
||||
case STACK_TYPE_X509_INFO:
|
||||
case STACK_TYPE_BY_DIR_entry:
|
||||
case STACK_TYPE_BY_DIR_hash:
|
||||
case STACK_TYPE_X509_OBJ:
|
||||
case STACK_TYPE_DIST_POINT:
|
||||
case STACK_TYPE_X509_CRL:
|
||||
default:
|
||||
|
@@ -485,12 +485,17 @@ int wolfSSL_X509_get_ext_by_OBJ(const WOLFSSL_X509 *x,
|
||||
int wolfSSL_X509_OBJECT_set1_X509(WOLFSSL_X509_OBJECT *a, WOLFSSL_X509 *obj)
|
||||
{
|
||||
WOLFSSL_STUB("wolfSSL_X509_OBJECT_set1_X509");
|
||||
(void)a;
|
||||
(void)obj;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int wolfSSL_X509_OBJECT_set1_X509_CRL(WOLFSSL_X509_OBJECT *a, WOLFSSL_X509_CRL *obj)
|
||||
int wolfSSL_X509_OBJECT_set1_X509_CRL(WOLFSSL_X509_OBJECT *a,
|
||||
WOLFSSL_X509_CRL *obj)
|
||||
{
|
||||
WOLFSSL_STUB("wolfSSL_X509_OBJECT_set1_X509_CRL");
|
||||
(void)a;
|
||||
(void)obj;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -10378,7 +10383,7 @@ WOLF_STACK_OF(WOLFSSL_X509_OBJECT)* wolfSSL_sk_X509_OBJECT_deep_copy(
|
||||
{
|
||||
(void)f; /* free function */
|
||||
(void)c; /* copy function */
|
||||
return wolfSSL_sk_dup(sk);
|
||||
return wolfSSL_sk_dup((WOLFSSL_STACK*)sk);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -10882,15 +10882,32 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD* type)
|
||||
int wolfSSL_EVP_DigestFinalXOF(WOLFSSL_EVP_MD_CTX *ctx, unsigned char *md,
|
||||
size_t sz)
|
||||
{
|
||||
unsigned int len;
|
||||
|
||||
WOLFSSL_ENTER("wolfSSL_EVP_DigestFinalXOF");
|
||||
//@TODO
|
||||
return WOLFSSL_SUCCESS;
|
||||
len = (unsigned int)sz;
|
||||
return wolfSSL_EVP_DigestFinal(ctx, md, &len);
|
||||
}
|
||||
|
||||
|
||||
unsigned long wolfSSL_EVP_MD_flags(const WOLFSSL_EVP_MD *md)
|
||||
{
|
||||
return 0;
|
||||
enum wc_HashType macType;
|
||||
|
||||
macType = EvpMd2MacType(md);
|
||||
switch ((int)macType) {
|
||||
case WC_HASH_TYPE_BLAKE2B:
|
||||
case WC_HASH_TYPE_BLAKE2S:
|
||||
#if defined(WOLFSSL_SHA3) && defined(WOLFSSL_SHAKE128)
|
||||
case WC_HASH_TYPE_SHAKE128:
|
||||
#endif
|
||||
#if defined(WOLFSSL_SHA3) && defined(WOLFSSL_SHAKE256)
|
||||
case WC_HASH_TYPE_SHAKE256:
|
||||
#endif
|
||||
return EVP_MD_FLAG_XOF;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user