mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-01 19:54:40 +02:00
static analysis and windows fix
This commit is contained in:
20
src/ssl.c
20
src/ssl.c
@@ -15184,11 +15184,11 @@ static void ExternalFreeX509(WOLFSSL_X509* x509)
|
|||||||
}
|
}
|
||||||
tmp[0] = '\0';
|
tmp[0] = '\0';
|
||||||
for (i = 0; i < sz - 1 && (3 * i) < tmpSz - valSz; i++) {
|
for (i = 0; i < sz - 1 && (3 * i) < tmpSz - valSz; i++) {
|
||||||
XSNPRINTF(val, sizeof(val) - 1, "%2x:", serial[i]);
|
XSNPRINTF(val, sizeof(val) - 1, "%02x:", serial[i]);
|
||||||
val[3] = '\0'; /* make sure is null terminated */
|
val[3] = '\0'; /* make sure is null terminated */
|
||||||
XSTRNCAT(tmp, val, valSz);
|
XSTRNCAT(tmp, val, valSz);
|
||||||
}
|
}
|
||||||
XSNPRINTF(val, sizeof(val) - 1, "%2x\n", serial[i]);
|
XSNPRINTF(val, sizeof(val) - 1, "%02x\n", serial[i]);
|
||||||
val[3] = '\0'; /* make sure is null terminated */
|
val[3] = '\0'; /* make sure is null terminated */
|
||||||
XSTRNCAT(tmp, val, valSz);
|
XSTRNCAT(tmp, val, valSz);
|
||||||
if (wolfSSL_BIO_write(bio, tmp, (int)XSTRLEN(tmp)) <= 0) {
|
if (wolfSSL_BIO_write(bio, tmp, (int)XSTRLEN(tmp)) <= 0) {
|
||||||
@@ -15222,14 +15222,13 @@ static void ExternalFreeX509(WOLFSSL_X509* x509)
|
|||||||
/* print issuer */
|
/* print issuer */
|
||||||
{
|
{
|
||||||
char* issuer;
|
char* issuer;
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifndef WOLFSSL_SMALL_STACK
|
||||||
char* buff = NULL;
|
char* buff = NULL;
|
||||||
int issSz = 0;
|
int issSz = 0;
|
||||||
#else
|
#else
|
||||||
char buff[256];
|
char buff[256];
|
||||||
int issSz = 256;
|
int issSz = 256;
|
||||||
#endif
|
#endif
|
||||||
issuer = buff;
|
|
||||||
|
|
||||||
issuer = wolfSSL_X509_NAME_oneline(
|
issuer = wolfSSL_X509_NAME_oneline(
|
||||||
wolfSSL_X509_get_issuer_name(x509), buff, issSz);
|
wolfSSL_X509_get_issuer_name(x509), buff, issSz);
|
||||||
@@ -15303,7 +15302,6 @@ static void ExternalFreeX509(WOLFSSL_X509* x509)
|
|||||||
char buff[256];
|
char buff[256];
|
||||||
int subSz = 256;
|
int subSz = 256;
|
||||||
#endif
|
#endif
|
||||||
subject = buff;
|
|
||||||
|
|
||||||
subject = wolfSSL_X509_NAME_oneline(
|
subject = wolfSSL_X509_NAME_oneline(
|
||||||
wolfSSL_X509_get_subject_name(x509), buff, subSz);
|
wolfSSL_X509_get_subject_name(x509), buff, subSz);
|
||||||
@@ -15447,6 +15445,7 @@ static void ExternalFreeX509(WOLFSSL_X509* x509)
|
|||||||
WOLFSSL_MSG("Memory error");
|
WOLFSSL_MSG("Memory error");
|
||||||
return SSL_FAILURE;
|
return SSL_FAILURE;
|
||||||
}
|
}
|
||||||
|
XMEMSET(rawKey, 0, rawLen);
|
||||||
mp_to_unsigned_bin(&rsa.e, rawKey);
|
mp_to_unsigned_bin(&rsa.e, rawKey);
|
||||||
if ((word32)rawLen <= sizeof(word32)) {
|
if ((word32)rawLen <= sizeof(word32)) {
|
||||||
idx = *(word32*)rawKey;
|
idx = *(word32*)rawKey;
|
||||||
@@ -15621,7 +15620,6 @@ static void ExternalFreeX509(WOLFSSL_X509* x509)
|
|||||||
char buff[256];
|
char buff[256];
|
||||||
int issSz = 256;
|
int issSz = 256;
|
||||||
#endif
|
#endif
|
||||||
issuer = buff;
|
|
||||||
|
|
||||||
issuer = wolfSSL_X509_NAME_oneline(
|
issuer = wolfSSL_X509_NAME_oneline(
|
||||||
wolfSSL_X509_get_issuer_name(x509), buff, issSz);
|
wolfSSL_X509_get_issuer_name(x509), buff, issSz);
|
||||||
@@ -15687,7 +15685,7 @@ static void ExternalFreeX509(WOLFSSL_X509* x509)
|
|||||||
return SSL_FAILURE;
|
return SSL_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wolfSSL_X509_get_signature(x509, NULL, &sigSz);
|
sigSz = (int)x509->sig.length;
|
||||||
sig = (unsigned char*)XMALLOC(sigSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
sig = (unsigned char*)XMALLOC(sigSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
if (sig == NULL || sigSz <= 0) {
|
if (sig == NULL || sigSz <= 0) {
|
||||||
return SSL_FAILURE;
|
return SSL_FAILURE;
|
||||||
@@ -22212,7 +22210,7 @@ int wolfSSL_RSA_private_encrypt(int len, unsigned char* in,
|
|||||||
unsigned char* out, WOLFSSL_RSA* rsa, int padding)
|
unsigned char* out, WOLFSSL_RSA* rsa, int padding)
|
||||||
{
|
{
|
||||||
int sz = 0;
|
int sz = 0;
|
||||||
WC_RNG* rng;
|
WC_RNG* rng = NULL;
|
||||||
RsaKey* key;
|
RsaKey* key;
|
||||||
|
|
||||||
WOLFSSL_MSG("wolfSSL_RSA_private_encrypt");
|
WOLFSSL_MSG("wolfSSL_RSA_private_encrypt");
|
||||||
@@ -26217,7 +26215,8 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
|||||||
|
|
||||||
WOLFSSL_ENTER("wolfSSL_X509_NAME_new");
|
WOLFSSL_ENTER("wolfSSL_X509_NAME_new");
|
||||||
|
|
||||||
name = XMALLOC(sizeof(WOLFSSL_X509_NAME), NULL, DYNAMIC_TYPE_X509);
|
name = (WOLFSSL_X509_NAME*)XMALLOC(sizeof(WOLFSSL_X509_NAME), NULL,
|
||||||
|
DYNAMIC_TYPE_X509);
|
||||||
if (name != NULL) {
|
if (name != NULL) {
|
||||||
InitX509Name(name, 1);
|
InitX509Name(name, 1);
|
||||||
}
|
}
|
||||||
@@ -26225,6 +26224,8 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_CERT_GEN) && !defined(NO_RSA)
|
||||||
|
/* needed SetName function from asn.c is wrapped by NO_RSA */
|
||||||
/* helper function for CopyX509NameToCertName() */
|
/* helper function for CopyX509NameToCertName() */
|
||||||
static int CopyX509NameEntry(char* out, int max, char* in, int inLen)
|
static int CopyX509NameEntry(char* out, int max, char* in, int inLen)
|
||||||
{
|
{
|
||||||
@@ -26377,6 +26378,7 @@ void* wolfSSL_GetDhAgreeCtx(WOLFSSL* ssl)
|
|||||||
|
|
||||||
return sz;
|
return sz;
|
||||||
}
|
}
|
||||||
|
#endif /* WOLFSSL_CERT_GEN */
|
||||||
|
|
||||||
|
|
||||||
/* Compares the two X509 names. If the size of x is larger then y then a
|
/* Compares the two X509 names. If the size of x is larger then y then a
|
||||||
|
60
tests/api.c
60
tests/api.c
@@ -215,6 +215,7 @@
|
|||||||
|
|
||||||
#ifdef OPENSSL_EXTRA
|
#ifdef OPENSSL_EXTRA
|
||||||
#include <wolfssl/openssl/ssl.h>
|
#include <wolfssl/openssl/ssl.h>
|
||||||
|
#include <wolfssl/openssl/crypto.h>
|
||||||
#include <wolfssl/openssl/pkcs12.h>
|
#include <wolfssl/openssl/pkcs12.h>
|
||||||
#include <wolfssl/openssl/evp.h>
|
#include <wolfssl/openssl/evp.h>
|
||||||
#include <wolfssl/openssl/dh.h>
|
#include <wolfssl/openssl/dh.h>
|
||||||
@@ -13427,6 +13428,64 @@ static int test_wc_ecc_is_valid_idx (void)
|
|||||||
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
static void test_wolfSSL_X509_NAME(void)
|
||||||
|
{
|
||||||
|
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) \
|
||||||
|
&& !defined(NO_RSA) && defined(WOLFSSL_CERT_GEN)
|
||||||
|
X509* x509;
|
||||||
|
const unsigned char* c;
|
||||||
|
unsigned char buf[4096];
|
||||||
|
int bytes;
|
||||||
|
FILE* f;
|
||||||
|
const X509_NAME* a;
|
||||||
|
const X509_NAME* b;
|
||||||
|
int sz;
|
||||||
|
unsigned char* tmp;
|
||||||
|
char file[] = "./certs/ca-cert.der";
|
||||||
|
|
||||||
|
printf(testingFmt, "wolfSSL_X509_NAME()");
|
||||||
|
|
||||||
|
/* test compile of depricated function, returns 0 */
|
||||||
|
AssertIntEQ(CRYPTO_thread_id(), 0);
|
||||||
|
|
||||||
|
AssertNotNull(a = X509_NAME_new());
|
||||||
|
X509_NAME_free((X509_NAME*)a);
|
||||||
|
|
||||||
|
f = fopen(file, "rb");
|
||||||
|
AssertNotNull(f);
|
||||||
|
bytes = (int)fread(buf, 1, sizeof(buf), f);
|
||||||
|
fclose(f);
|
||||||
|
|
||||||
|
c = buf;
|
||||||
|
AssertNotNull(x509 = wolfSSL_X509_load_certificate_buffer(c, bytes,
|
||||||
|
SSL_FILETYPE_ASN1));
|
||||||
|
|
||||||
|
/* test cmp function */
|
||||||
|
AssertNotNull(a = X509_get_issuer_name(x509));
|
||||||
|
AssertNotNull(b = X509_get_subject_name(x509));
|
||||||
|
|
||||||
|
AssertIntEQ(X509_NAME_cmp(a, b), 0); /* self signed should be 0 */
|
||||||
|
|
||||||
|
tmp = buf;
|
||||||
|
AssertIntGT((sz = i2d_X509_NAME((X509_NAME*)a, &tmp)), 0);
|
||||||
|
if (tmp == buf) {
|
||||||
|
printf("\nERROR - %s line %d failed with:", __FILE__, __LINE__); \
|
||||||
|
printf(" Expected pointer to be incremented\n");
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* retry but with the function creating a buffer */
|
||||||
|
tmp = NULL;
|
||||||
|
AssertIntGT((sz = i2d_X509_NAME((X509_NAME*)b, &tmp)), 0);
|
||||||
|
XFREE(tmp, NULL, DYNAMIC_TYPE_OPENSSL);
|
||||||
|
|
||||||
|
X509_free(x509);
|
||||||
|
|
||||||
|
printf(resultFmt, passed);
|
||||||
|
#endif /* defined(OPENSSL_EXTRA) && !defined(NO_DES3) */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void test_wolfSSL_DES(void)
|
static void test_wolfSSL_DES(void)
|
||||||
{
|
{
|
||||||
#if defined(OPENSSL_EXTRA) && !defined(NO_DES3)
|
#if defined(OPENSSL_EXTRA) && !defined(NO_DES3)
|
||||||
@@ -16206,6 +16265,7 @@ void ApiTest(void)
|
|||||||
test_wolfSSL_mcast();
|
test_wolfSSL_mcast();
|
||||||
|
|
||||||
/* compatibility tests */
|
/* compatibility tests */
|
||||||
|
test_wolfSSL_X509_NAME();
|
||||||
test_wolfSSL_DES();
|
test_wolfSSL_DES();
|
||||||
test_wolfSSL_certs();
|
test_wolfSSL_certs();
|
||||||
test_wolfSSL_ASN1_TIME_print();
|
test_wolfSSL_ASN1_TIME_print();
|
||||||
|
@@ -40,4 +40,5 @@ nobase_include_HEADERS+= \
|
|||||||
wolfssl/openssl/stack.h \
|
wolfssl/openssl/stack.h \
|
||||||
wolfssl/openssl/ui.h \
|
wolfssl/openssl/ui.h \
|
||||||
wolfssl/openssl/x509.h \
|
wolfssl/openssl/x509.h \
|
||||||
wolfssl/openssl/x509v3.h
|
wolfssl/openssl/x509v3.h \
|
||||||
|
wolfssl/openssl/rc4.h
|
||||||
|
Reference in New Issue
Block a user