Regression test fixes

./configure --enable-all --disable-rsa
./configure --disable-chacha --disable-asm
./configure --disable-rsa --disable-ecc --disable-dh --enable-curve25519
--enable-cryptonly (and ed25519, curve448, ed448)
./configure --disable-tls13 --enable-psk --disable-rsa --disable-ecc
--disable-dh C_EXTRA_FLAGS=-DWOLFSSL_STATIC_PSK
./configure --disable-oldtls --enable-psk -disable-rsa --disable-dh
-disable-ecc --disable-asn C_EXTRA_FLAGS=-DWOLFSSL_STATIC_PSK
--enable-lowresource --enable-singlethreaded --disable-asm
--disable-errorstrings --disable-pkcs12 --disable-sha3 --disable-sha224
--disable-sha384 --disable-sha512 --disable-sha --disable-md5
-disable-aescbc --disable-chacha --disable-poly1305 --disable-coding
Various build combinations with WOLFSSL_SP_MATH and WOLFSSL_SP_MATH_ALL
This commit is contained in:
Sean Parkinson
2021-06-23 21:25:27 +10:00
parent c59d1f2e8d
commit 8592053856
8 changed files with 205 additions and 142 deletions

View File

@@ -3260,10 +3260,10 @@ fi
if test "$ENABLED_CHACHA" = "noasm" || test "$ENABLED_ASM" = "no" if test "$ENABLED_CHACHA" = "noasm" || test "$ENABLED_ASM" = "no"
then then
AM_CFLAGS="$AM_CFLAGS -DHAVE_CHACHA -DNO_CHACHA_ASM" AM_CFLAGS="$AM_CFLAGS -DNO_CHACHA_ASM"
fi fi
if test "$ENABLED_CHACHA" = "yes" if test "$ENABLED_CHACHA" != "no"
then then
AM_CFLAGS="$AM_CFLAGS -DHAVE_CHACHA" AM_CFLAGS="$AM_CFLAGS -DHAVE_CHACHA"
fi fi

View File

@@ -1259,7 +1259,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
WOLFSSL_MEM_STATS mem_stats; WOLFSSL_MEM_STATS mem_stats;
#endif #endif
#endif #endif
#if defined(WOLFSSL_TLS13) #if defined(WOLFSSL_TLS13) && defined(HAVE_SUPPORTED_CURVES)
int onlyKeyShare = 0; int onlyKeyShare = 0;
#endif #endif
#if defined(HAVE_SESSION_TICKET) #if defined(HAVE_SESSION_TICKET)
@@ -1643,13 +1643,15 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
break; break;
case 'y' : case 'y' :
#if defined(WOLFSSL_TLS13) && !defined(NO_DH) #if defined(WOLFSSL_TLS13) && defined(HAVE_SUPPORTED_CURVES) \
&& !defined(NO_DH)
onlyKeyShare = 1; onlyKeyShare = 1;
#endif #endif
break; break;
case 'Y' : case 'Y' :
#if defined(WOLFSSL_TLS13) && defined(HAVE_ECC) #if defined(WOLFSSL_TLS13) && defined(HAVE_SUPPORTED_CURVES) \
&& defined(HAVE_ECC)
onlyKeyShare = 2; onlyKeyShare = 2;
#endif #endif
break; break;
@@ -1657,7 +1659,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
case 't' : case 't' :
#ifdef HAVE_CURVE25519 #ifdef HAVE_CURVE25519
useX25519 = 1; useX25519 = 1;
#if defined(WOLFSSL_TLS13) && defined(HAVE_ECC) #if defined(WOLFSSL_TLS13) && defined(HAVE_SUPPORTED_CURVES)
onlyKeyShare = 2; onlyKeyShare = 2;
#endif #endif
#endif #endif
@@ -1786,7 +1788,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
case '8' : case '8' :
#ifdef HAVE_CURVE448 #ifdef HAVE_CURVE448
useX448 = 1; useX448 = 1;
#if defined(WOLFSSL_TLS13) && defined(HAVE_ECC) #if defined(WOLFSSL_TLS13) && defined(HAVE_SUPPORTED_CURVES)
onlyKeyShare = 2; onlyKeyShare = 2;
#endif #endif
#endif #endif
@@ -2558,7 +2560,7 @@ THREAD_RETURN WOLFSSL_THREAD server_test(void* args)
SetupPkCallbackContexts(ssl, &pkCbInfo); SetupPkCallbackContexts(ssl, &pkCbInfo);
#endif #endif
#ifdef WOLFSSL_TLS13 #if defined(WOLFSSL_TLS13) && defined(HAVE_SUPPORTED_CURVES)
if (version >= 4) { if (version >= 4) {
SetKeyShare(ssl, onlyKeyShare, useX25519, useX448); SetKeyShare(ssl, onlyKeyShare, useX25519, useX448);
} }

View File

@@ -10244,10 +10244,11 @@ int TLSX_PopulateExtensions(WOLFSSL* ssl, byte isServer)
#if defined(WOLFSSL_TLS13) && (defined(HAVE_SESSION_TICKET) || !defined(NO_PSK)) #if defined(WOLFSSL_TLS13) && (defined(HAVE_SESSION_TICKET) || !defined(NO_PSK))
int usingPSK = 0; int usingPSK = 0;
#endif #endif
#if defined(HAVE_SUPPORTED_CURVES) || defined(HAVE_QSH) #if (defined(HAVE_SUPPORTED_CURVES) && defined(WOLFSSL_TLS13)) || \
defined(HAVE_QSH)
TLSX* extension = NULL; TLSX* extension = NULL;
#endif #endif
#if defined(HAVE_SUPPORTED_CURVES) #if defined(HAVE_SUPPORTED_CURVES) && defined(WOLFSSL_TLS13)
word16 namedGroup = 0; word16 namedGroup = 0;
#endif #endif
#ifdef HAVE_QSH #ifdef HAVE_QSH
@@ -10623,8 +10624,6 @@ int TLSX_PopulateExtensions(WOLFSSL* ssl, byte isServer)
(void)public_key; (void)public_key;
(void)public_key_len; (void)public_key_len;
(void)ssl; (void)ssl;
(void)extension;
(void)namedGroup;
return ret; return ret;
} }

View File

@@ -1131,7 +1131,7 @@ static int test_cm_load_ca_file(const char* ca_cert_file)
static void test_wolfSSL_CertManagerCheckOCSPResponse(void) static void test_wolfSSL_CertManagerCheckOCSPResponse(void)
{ {
#ifdef HAVE_OCSP #if defined(HAVE_OCSP) && !defined(NO_RSA)
/* Need one of these for wolfSSL_OCSP_REQUEST_new. */ /* Need one of these for wolfSSL_OCSP_REQUEST_new. */
#if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || \ #if defined(OPENSSL_ALL) || defined(WOLFSSL_NGINX) || \
defined(WOLFSSL_HAPROXY) || defined(WOLFSSL_APACHE_HTTPD) || \ defined(WOLFSSL_HAPROXY) || defined(WOLFSSL_APACHE_HTTPD) || \
@@ -5728,7 +5728,8 @@ static void test_wolfSSL_UseSNI(void)
static void test_wolfSSL_UseTrustedCA(void) static void test_wolfSSL_UseTrustedCA(void)
{ {
#if defined(HAVE_TRUSTED_CA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) #if defined(HAVE_TRUSTED_CA) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) \
&& !defined(NO_RSA)
WOLFSSL_CTX *ctx; WOLFSSL_CTX *ctx;
WOLFSSL *ssl; WOLFSSL *ssl;
byte id[20]; byte id[20];
@@ -5775,7 +5776,8 @@ static void test_wolfSSL_UseTrustedCA(void)
static void test_wolfSSL_UseMaxFragment(void) static void test_wolfSSL_UseMaxFragment(void)
{ {
#if defined(HAVE_MAX_FRAGMENT) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) #if defined(HAVE_MAX_FRAGMENT) && !defined(NO_CERTS) && \
!defined(NO_FILESYSTEM) && !defined(NO_RSA)
#ifndef NO_WOLFSSL_SERVER #ifndef NO_WOLFSSL_SERVER
WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()); WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_server_method());
AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM)); AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
@@ -5817,7 +5819,8 @@ static void test_wolfSSL_UseMaxFragment(void)
static void test_wolfSSL_UseTruncatedHMAC(void) static void test_wolfSSL_UseTruncatedHMAC(void)
{ {
#if defined(HAVE_TRUNCATED_HMAC) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) #if defined(HAVE_TRUNCATED_HMAC) && !defined(NO_CERTS) && \
!defined(NO_FILESYSTEM) && !defined(NO_RSA)
#ifndef NO_WOLFSSL_SERVER #ifndef NO_WOLFSSL_SERVER
WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_server_method()); WOLFSSL_CTX* ctx = wolfSSL_CTX_new(wolfSSLv23_server_method());
AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM)); AssertTrue(wolfSSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
@@ -27166,7 +27169,7 @@ static void test_wolfSSL_X509_NAME(void)
#ifndef NO_BIO #ifndef NO_BIO
static void test_wolfSSL_X509_INFO(void) static void test_wolfSSL_X509_INFO(void)
{ {
#if defined(OPENSSL_ALL) #if defined(OPENSSL_ALL) && !defined(NO_RSA)
STACK_OF(X509_INFO) *info_stack; STACK_OF(X509_INFO) *info_stack;
X509_INFO *info; X509_INFO *info;
BIO *cert; BIO *cert;
@@ -27273,7 +27276,7 @@ static void test_wolfSSL_X509_check_host(void)
static void test_wolfSSL_X509_check_email(void) static void test_wolfSSL_X509_check_email(void)
{ {
#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_CERT_GEN) #if defined(OPENSSL_EXTRA) && defined(WOLFSSL_CERT_GEN) && !defined(NO_RSA)
X509* x509; X509* x509;
const char goodEmail[] = "info@wolfssl.com"; const char goodEmail[] = "info@wolfssl.com";
const char badEmail[] = "disinfo@wolfssl.com"; const char badEmail[] = "disinfo@wolfssl.com";
@@ -29445,7 +29448,7 @@ static void test_wolfSSL_X509_Name_canon(void)
#if defined(OPENSSL_ALL) && !defined(NO_CERTS) && \ #if defined(OPENSSL_ALL) && !defined(NO_CERTS) && \
!defined(NO_FILESYSTEM) && !defined(NO_SHA) && \ !defined(NO_FILESYSTEM) && !defined(NO_SHA) && \
defined(WOLFSSL_CERT_GEN) && \ defined(WOLFSSL_CERT_GEN) && \
(defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) (defined(WOLFSSL_CERT_REQ) || defined(WOLFSSL_CERT_EXT)) && !defined(NO_RSA)
const long ex_hash1 = 0x0fdb2da4; const long ex_hash1 = 0x0fdb2da4;
const long ex_hash2 = 0x9f3e8c9e; const long ex_hash2 = 0x9f3e8c9e;
@@ -30443,8 +30446,8 @@ static void test_wolfSSL_X509_STORE(void)
static void test_wolfSSL_X509_STORE_load_locations(void) static void test_wolfSSL_X509_STORE_load_locations(void)
{ {
#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && !defined(NO_FILESYSTEM)\ #if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && \
&& !defined(NO_WOLFSSL_DIR) !defined(NO_FILESYSTEM) && !defined(NO_WOLFSSL_DIR) && !defined(NO_RSA)
SSL_CTX *ctx; SSL_CTX *ctx;
X509_STORE *store; X509_STORE *store;
@@ -31848,7 +31851,8 @@ static void test_wolfSSL_X509(void)
static void test_wolfSSL_X509_get_ext_count(void) static void test_wolfSSL_X509_get_ext_count(void)
{ {
#if defined(OPENSSL_ALL) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_ALL) && !defined(NO_CERTS) && !defined(NO_FILESYSTEM) && \
!defined(NO_RSA)
int ret = 0; int ret = 0;
WOLFSSL_X509* x509; WOLFSSL_X509* x509;
const char ocspRootCaFile[] = "./certs/ocsp/root-ca-cert.pem"; const char ocspRootCaFile[] = "./certs/ocsp/root-ca-cert.pem";
@@ -31889,7 +31893,7 @@ static void test_wolfSSL_X509_get_ext_count(void)
static void test_wolfSSL_X509_sign2(void) static void test_wolfSSL_X509_sign2(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_RSA) && !defined(NO_CERTS) && \
defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_ALT_NAMES) && \ defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_ALT_NAMES) && \
defined(WOLFSSL_CERT_EXT) && \ defined(WOLFSSL_CERT_EXT) && \
(defined(WOLFSSL_QT) || defined(OPENSSL_ALL) || defined(WOLFSSL_IP_ALT_NAME)) (defined(WOLFSSL_QT) || defined(OPENSSL_ALL) || defined(WOLFSSL_IP_ALT_NAME))
@@ -32086,7 +32090,7 @@ static void test_wolfSSL_X509_sign2(void)
static void test_wolfSSL_X509_sign(void) static void test_wolfSSL_X509_sign(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_CERTS) && \
defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ) defined(WOLFSSL_CERT_GEN) && defined(WOLFSSL_CERT_REQ) && !defined(NO_RSA)
int ret; int ret;
char *caSubject; char *caSubject;
X509_NAME *name; X509_NAME *name;
@@ -32279,7 +32283,8 @@ static void test_wolfSSL_X509_get0_tbs_sigalg(void)
static void test_wolfSSL_X509_ALGOR_get0(void) static void test_wolfSSL_X509_ALGOR_get0(void)
{ {
#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && !defined(NO_SHA256) #if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && \
!defined(NO_SHA256) && !defined(NO_RSA)
X509* x509 = NULL; X509* x509 = NULL;
const ASN1_OBJECT* obj = NULL; const ASN1_OBJECT* obj = NULL;
const X509_ALGOR* alg; const X509_ALGOR* alg;
@@ -32468,7 +32473,8 @@ static void test_wolfSSL_X509_get_X509_PUBKEY(void)
static void test_wolfSSL_X509_PUBKEY(void) static void test_wolfSSL_X509_PUBKEY(void)
{ {
#if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && !defined(NO_SHA256) #if (defined(OPENSSL_ALL) || defined(WOLFSSL_APACHE_HTTPD)) && \
!defined(NO_SHA256) && !defined(NO_RSA)
X509* x509 = NULL; X509* x509 = NULL;
ASN1_OBJECT* obj = NULL; ASN1_OBJECT* obj = NULL;
X509_PUBKEY* pubKey; X509_PUBKEY* pubKey;
@@ -35112,7 +35118,7 @@ static void test_wolfSSL_RSA_meth(void)
static void test_wolfSSL_verify_mode(void) static void test_wolfSSL_verify_mode(void)
{ {
#if defined(OPENSSL_ALL) #if defined(OPENSSL_ALL) && !defined(NO_RSA)
WOLFSSL* ssl; WOLFSSL* ssl;
WOLFSSL_CTX* ctx; WOLFSSL_CTX* ctx;
@@ -36791,6 +36797,7 @@ static void test_wolfSSL_AES_cbc_encrypt(void)
#if !defined(NO_ASN) #if !defined(NO_ASN)
static void test_wolfSSL_ASN1_STRING_to_UTF8(void) static void test_wolfSSL_ASN1_STRING_to_UTF8(void)
{ {
#if !defined(NO_RSA)
WOLFSSL_X509* x509; WOLFSSL_X509* x509;
WOLFSSL_X509_NAME* subject; WOLFSSL_X509_NAME* subject;
WOLFSSL_X509_NAME_ENTRY* e; WOLFSSL_X509_NAME_ENTRY* e;
@@ -36834,6 +36841,7 @@ static void test_wolfSSL_ASN1_STRING_to_UTF8(void)
wolfSSL_X509_free(x509); wolfSSL_X509_free(x509);
XFREE(actual_output, NULL, DYNAMIC_TYPE_TMP_BUFFER); XFREE(actual_output, NULL, DYNAMIC_TYPE_TMP_BUFFER);
#endif
} }
static void test_wolfSSL_ASN1_UNIVERSALSTRING_to_string(void) static void test_wolfSSL_ASN1_UNIVERSALSTRING_to_string(void)
@@ -36869,6 +36877,7 @@ static void test_wolfSSL_ASN1_UNIVERSALSTRING_to_string(void)
static void test_wolfSSL_sk_CIPHER_description(void) static void test_wolfSSL_sk_CIPHER_description(void)
{ {
#if !defined(NO_RSA)
const long flags = SSL_OP_NO_SSLv2 | SSL_OP_NO_COMPRESSION; const long flags = SSL_OP_NO_SSLv2 | SSL_OP_NO_COMPRESSION;
int i,j,k; int i,j,k;
int numCiphers = 0; int numCiphers = 0;
@@ -36930,10 +36939,12 @@ static void test_wolfSSL_sk_CIPHER_description(void)
SSL_CTX_free(ctx); SSL_CTX_free(ctx);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif
} }
static void test_wolfSSL_get_ciphers_compat(void) static void test_wolfSSL_get_ciphers_compat(void)
{ {
#if !defined(NO_RSA)
const SSL_METHOD *method = NULL; const SSL_METHOD *method = NULL;
const char certPath[] = "./certs/client-cert.pem"; const char certPath[] = "./certs/client-cert.pem";
STACK_OF(SSL_CIPHER) *supportedCiphers = NULL; STACK_OF(SSL_CIPHER) *supportedCiphers = NULL;
@@ -36967,6 +36978,7 @@ static void test_wolfSSL_get_ciphers_compat(void)
SSL_CTX_free(ctx); SSL_CTX_free(ctx);
printf(resultFmt, passed); printf(resultFmt, passed);
#endif
} }
static void test_wolfSSL_X509_PUBKEY_get(void) static void test_wolfSSL_X509_PUBKEY_get(void)
@@ -38767,7 +38779,7 @@ static void test_wolfSSL_EC_KEY_set_group(void)
} }
static void test_wolfSSL_X509V3_EXT_get(void) { static void test_wolfSSL_X509V3_EXT_get(void) {
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) #if !defined(NO_FILESYSTEM) && defined(OPENSSL_ALL) && !defined(NO_RSA)
FILE* f; FILE* f;
int numOfExt =0; int numOfExt =0;
int extNid = 0; int extNid = 0;
@@ -38799,7 +38811,7 @@ static void test_wolfSSL_X509V3_EXT_get(void) {
} }
static void test_wolfSSL_X509V3_EXT(void) { static void test_wolfSSL_X509V3_EXT(void) {
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) #if !defined(NO_FILESYSTEM) && defined(OPENSSL_ALL) && !defined(NO_RSA)
FILE* f; FILE* f;
int numOfExt = 0, nid = 0, i = 0, expected, actual; int numOfExt = 0, nid = 0, i = 0, expected, actual;
char* str; char* str;
@@ -38943,7 +38955,7 @@ static void test_wolfSSL_X509V3_EXT(void) {
} }
static void test_wolfSSL_X509_get_ext(void){ static void test_wolfSSL_X509_get_ext(void){
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) #if !defined(NO_FILESYSTEM) && defined(OPENSSL_ALL) && !defined(NO_RSA)
int ret = 0; int ret = 0;
FILE* f; FILE* f;
WOLFSSL_X509* x509; WOLFSSL_X509* x509;
@@ -38978,7 +38990,7 @@ static void test_wolfSSL_X509_get_ext(void){
static void test_wolfSSL_X509_get_ext_by_NID(void) static void test_wolfSSL_X509_get_ext_by_NID(void)
{ {
#if defined(OPENSSL_ALL) #if defined(OPENSSL_ALL) && !defined(NO_RSA)
int rc; int rc;
FILE* f; FILE* f;
WOLFSSL_X509* x509; WOLFSSL_X509* x509;
@@ -39024,7 +39036,7 @@ static void test_wolfSSL_X509_EXTENSION_new(void)
static void test_wolfSSL_X509_EXTENSION_get_object(void) static void test_wolfSSL_X509_EXTENSION_get_object(void)
{ {
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) #if !defined(NO_FILESYSTEM) && defined(OPENSSL_ALL) && !defined(NO_RSA)
WOLFSSL_X509* x509; WOLFSSL_X509* x509;
WOLFSSL_X509_EXTENSION* ext; WOLFSSL_X509_EXTENSION* ext;
WOLFSSL_ASN1_OBJECT* o; WOLFSSL_ASN1_OBJECT* o;
@@ -39052,7 +39064,7 @@ static void test_wolfSSL_X509_EXTENSION_get_object(void)
static void test_wolfSSL_X509_EXTENSION_get_data(void) static void test_wolfSSL_X509_EXTENSION_get_data(void)
{ {
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) #if !defined(NO_FILESYSTEM) && defined(OPENSSL_ALL) && !defined(NO_RSA)
WOLFSSL_X509* x509; WOLFSSL_X509* x509;
WOLFSSL_X509_EXTENSION* ext; WOLFSSL_X509_EXTENSION* ext;
WOLFSSL_ASN1_STRING* str; WOLFSSL_ASN1_STRING* str;
@@ -39074,7 +39086,7 @@ static void test_wolfSSL_X509_EXTENSION_get_data(void)
static void test_wolfSSL_X509_EXTENSION_get_critical(void) static void test_wolfSSL_X509_EXTENSION_get_critical(void)
{ {
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) #if !defined(NO_FILESYSTEM) && defined(OPENSSL_ALL) && !defined(NO_RSA)
WOLFSSL_X509* x509; WOLFSSL_X509* x509;
WOLFSSL_X509_EXTENSION* ext; WOLFSSL_X509_EXTENSION* ext;
FILE* file; FILE* file;
@@ -39097,7 +39109,8 @@ static void test_wolfSSL_X509_EXTENSION_get_critical(void)
static void test_wolfSSL_X509V3_EXT_print(void) static void test_wolfSSL_X509V3_EXT_print(void)
{ {
#if !defined(NO_FILESYSTEM) && defined (OPENSSL_ALL) && !defined(NO_BIO) #if !defined(NO_FILESYSTEM) && defined(OPENSSL_ALL) && !defined(NO_BIO) && \
!defined(NO_RSA)
printf(testingFmt, "wolfSSL_X509V3_EXT_print"); printf(testingFmt, "wolfSSL_X509V3_EXT_print");
{ {
@@ -39172,7 +39185,7 @@ static void test_wolfSSL_X509V3_EXT_print(void)
static void test_wolfSSL_X509_cmp(void) static void test_wolfSSL_X509_cmp(void)
{ {
#if defined(OPENSSL_ALL) #if defined(OPENSSL_ALL) && !defined(NO_RSA)
FILE* file1; FILE* file1;
FILE* file2; FILE* file2;
WOLFSSL_X509* cert1; WOLFSSL_X509* cert1;
@@ -39284,7 +39297,8 @@ static void test_wolfSSL_i2d_PrivateKey(void)
static void test_wolfSSL_OCSP_id_get0_info(void) static void test_wolfSSL_OCSP_id_get0_info(void)
{ {
#if defined(OPENSSL_ALL) && defined(HAVE_OCSP) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_ALL) && defined(HAVE_OCSP) && !defined(NO_FILESYSTEM) && \
!defined(NO_RSA)
X509* cert; X509* cert;
X509* issuer; X509* issuer;
OCSP_CERTID* id; OCSP_CERTID* id;
@@ -40714,7 +40728,8 @@ static void test_wolfSSL_PEM_write_bio_PKCS7(void)
#ifdef HAVE_SMIME #ifdef HAVE_SMIME
static void test_wolfSSL_SMIME_read_PKCS7(void) static void test_wolfSSL_SMIME_read_PKCS7(void)
{ {
#if defined(OPENSSL_ALL) && defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_ALL) && defined(HAVE_PKCS7) && !defined(NO_FILESYSTEM) && \
!defined(NO_RSA)
PKCS7* pkcs7 = NULL; PKCS7* pkcs7 = NULL;
BIO* bio = NULL; BIO* bio = NULL;
BIO* bcont = NULL; BIO* bcont = NULL;
@@ -42018,7 +42033,8 @@ static void test_wolfSSL_X509_CRL(void)
static void test_wolfSSL_X509_load_crl_file(void) static void test_wolfSSL_X509_load_crl_file(void)
{ {
#if defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_EXTRA) && defined(HAVE_CRL) && !defined(NO_FILESYSTEM) && \
!defined(NO_RSA)
int i; int i;
char pem[][100] = { char pem[][100] = {
"./certs/crl/crl.pem", "./certs/crl/crl.pem",
@@ -42107,7 +42123,8 @@ static void test_wolfSSL_X509_load_crl_file(void)
static void test_wolfSSL_d2i_X509_REQ(void) static void test_wolfSSL_d2i_X509_REQ(void)
{ {
#if defined(WOLFSSL_CERT_REQ) && (defined(OPENSSL_ALL) || defined(OPENSSL_EXTRA)) #if defined(WOLFSSL_CERT_REQ) && !defined(NO_RSA) && \
(defined(OPENSSL_ALL) || defined(OPENSSL_EXTRA))
/* ./certs/csr.signed.der, ./certs/csr.ext.der, and ./certs/csr.attr.der were /* ./certs/csr.signed.der, ./certs/csr.ext.der, and ./certs/csr.attr.der were
* generated by libest * generated by libest
* ./certs/csr.attr.der contains sample attributes * ./certs/csr.attr.der contains sample attributes
@@ -42669,7 +42686,7 @@ static void test_wolfssl_EVP_aes_gcm(void)
#ifndef NO_BIO #ifndef NO_BIO
static void test_wolfSSL_PEM_X509_INFO_read_bio(void) static void test_wolfSSL_PEM_X509_INFO_read_bio(void)
{ {
#if defined(OPENSSL_ALL) && !defined(NO_FILESYSTEM) #if defined(OPENSSL_ALL) && !defined(NO_FILESYSTEM) && !defined(NO_RSA)
BIO* bio; BIO* bio;
X509_INFO* info; X509_INFO* info;
STACK_OF(X509_INFO)* sk; STACK_OF(X509_INFO)* sk;
@@ -42820,7 +42837,7 @@ static void test_wolfSSL_ASN1_INTEGER_set(void)
static void test_wolfSSL_X509_STORE_get1_certs(void) static void test_wolfSSL_X509_STORE_get1_certs(void)
{ {
#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_SIGNER_DER_CERT) && \ #if defined(OPENSSL_EXTRA) && defined(WOLFSSL_SIGNER_DER_CERT) && \
!defined(NO_FILESYSTEM) !defined(NO_FILESYSTEM) && !defined(NO_RSA)
X509_STORE_CTX *storeCtx; X509_STORE_CTX *storeCtx;
X509_STORE *store; X509_STORE *store;
X509 *caX509; X509 *caX509;
@@ -43923,7 +43940,7 @@ static int test_various_pathlen_chains(void)
} }
#endif /* !NO_RSA && !NO_SHA && !NO_FILESYSTEM && !NO_CERTS */ #endif /* !NO_RSA && !NO_SHA && !NO_FILESYSTEM && !NO_CERTS */
#ifdef HAVE_KEYING_MATERIAL #if defined(HAVE_KEYING_MATERIAL) && defined(HAVE_IO_TESTS_DEPENDENCIES)
static int test_export_keying_material_cb(WOLFSSL_CTX *ctx, WOLFSSL *ssl) static int test_export_keying_material_cb(WOLFSSL_CTX *ctx, WOLFSSL *ssl)
{ {
byte ekm[100] = {0}; byte ekm[100] = {0};
@@ -44490,7 +44507,7 @@ static void test_CONF_CTX_CMDLINE(void)
/* cmd Certificate and Private Key*/ /* cmd Certificate and Private Key*/
{ {
#ifndef NO_CERTS #if !defined(NO_CERTS) && !defined(NO_RSA)
const char* ourCert = svrCertFile; const char* ourCert = svrCertFile;
const char* ourKey = svrKeyFile; const char* ourKey = svrKeyFile;
@@ -44526,7 +44543,7 @@ static void test_CONF_CTX_CMDLINE(void)
/* cmd DH parameter */ /* cmd DH parameter */
{ {
#if !defined(NO_DH) && !defined(NO_BIO) #if !defined(NO_DH) && !defined(NO_BIO)
const char* ourdhcert = "./certs/dh4096.pem"; const char* ourdhcert = "./certs/dh2048.pem";
AssertIntEQ(SSL_CONF_cmd(cctx, "-dhparam", NULL), AssertIntEQ(SSL_CONF_cmd(cctx, "-dhparam", NULL),
-3); -3);
@@ -44570,7 +44587,7 @@ static void test_CONF_CTX_FILE(void)
/* cmd Certificate and Private Key*/ /* cmd Certificate and Private Key*/
{ {
#ifndef NO_CERTS #if !defined(NO_CERTS) && !defined(NO_RSA)
const char* ourCert = svrCertFile; const char* ourCert = svrCertFile;
const char* ourKey = svrKeyFile; const char* ourKey = svrKeyFile;
@@ -45271,7 +45288,7 @@ void ApiTest(void)
#endif #endif
#ifdef HAVE_KEYING_MATERIAL #if defined(HAVE_KEYING_MATERIAL) && defined(HAVE_IO_TESTS_DEPENDENCIES)
test_export_keying_material(); test_export_keying_material();
#endif /* HAVE_KEYING_MATERIAL */ #endif /* HAVE_KEYING_MATERIAL */

View File

@@ -783,7 +783,9 @@ static const char* bench_desc_words[][14] = {
#endif #endif
#if defined(BENCH_ASYM) #if defined(BENCH_ASYM)
#if defined(HAVE_ECC) || !defined(NO_RSA) || !defined(NO_DH) #if defined(HAVE_ECC) || !defined(NO_RSA) || !defined(NO_DH) || \
defined(HAVE_CURVE25519) || defined(HAVE_ED25519) || \
defined(HAVE_CURVE448) || defined(HAVE_ED448)
static const char* bench_result_words2[][5] = { static const char* bench_result_words2[][5] = {
{ "ops took", "sec" , "avg" , "ops/sec", NULL }, /* 0 English */ { "ops took", "sec" , "avg" , "ops/sec", NULL }, /* 0 English */
#ifndef NO_MULTIBYTE_PRINT #ifndef NO_MULTIBYTE_PRINT
@@ -1325,7 +1327,9 @@ static void bench_stats_sym_finish(const char* desc, int doAsync, int count,
} }
#ifdef BENCH_ASYM #ifdef BENCH_ASYM
#if defined(HAVE_ECC) || !defined(NO_RSA) || !defined(NO_DH) #if defined(HAVE_ECC) || !defined(NO_RSA) || !defined(NO_DH) || \
defined(HAVE_CURVE25519) || defined(HAVE_ED25519) || \
defined(HAVE_CURVE448) || defined(HAVE_ED448)
static void bench_stats_asym_finish(const char* algo, int strength, static void bench_stats_asym_finish(const char* algo, int strength,
const char* desc, int doAsync, int count, double start, int ret) const char* desc, int doAsync, int count, double start, int ret)
{ {

View File

@@ -3007,10 +3007,34 @@ int sp_cmp_d(sp_int* a, sp_int_digit d)
} }
#endif #endif
#if defined(WOLFSSL_SP_INT_NEGATIVE) || !defined(NO_PWDBASED) || \ #if !defined(NO_PWDBASED) || defined(WOLFSSL_KEY_GEN) || !defined(NO_DH) || \
defined(WOLFSSL_KEY_GEN) || !defined(NO_DH) || \ !defined(NO_DSA) || (!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY))
((defined(WOLFSSL_SP_MATH_ALL) || !defined(NO_RSA)) && \ #define WOLFSSL_SP_ADD_D
!defined(WOLFSSL_RSA_VERIFY_ONLY)) #endif
#if (!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
!defined(NO_DH) || defined(HAVE_ECC) || !defined(NO_DSA)
#define WOLFSSL_SP_SUB_D
#endif
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && \
!defined(WOLFSSL_RSA_VERIFY_ONLY)
#define WOLFSSL_SP_READ_RADIX_10
#endif
#if defined(HAVE_ECC) || !defined(NO_DSA) || defined(OPENSSL_EXTRA) || \
(!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY) && \
!defined(WOLFSSL_RSA_PUBLIC_ONLY))
#define WOLFSSL_SP_INVMOD
#endif
#if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC)
#define WOLFSSL_SP_INVMOD_MONT_CT
#endif
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY) && \
!defined(WOLFSSL_RSA_PUBLIC_ONLY)) || defined(WOLFSSL_HAVE_SP_DH) || \
(!defined(NO_RSA) && defined(WOLFSSL_KEY_GEN))
#define WOLFSSL_SP_PRIME_GEN
#endif
#if defined(WOLFSSL_SP_ADD_D) || (defined(WOLFSSL_SP_INT_NEGATIVE) && \
defined(WOFLSSL_SP_SUB_D)) || defined(WOLFSSL_SP_READ_RADIX_10)
/* Add a one digit number to the multi-precision number. /* Add a one digit number to the multi-precision number.
* *
* @param [in] a SP integer be added to. * @param [in] a SP integer be added to.
@@ -3057,13 +3081,12 @@ static int _sp_add_d(sp_int* a, sp_int_digit d, sp_int* r)
return err; return err;
} }
#endif /* WOLFSSL_SP_INT_NEGATIVE || !NO_PWDBASED || WOLFSSL_KEY_GEN || #endif /* WOLFSSL_SP_ADD_D || (WOLFSSL_SP_INT_NEGATIVE && WOFLSSL_SP_SUB_D) ||
* !NO_DH || !NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) */ * defined(WOLFSSL_SP_READ_RADIX_10) */
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY) || \ #if (defined(WOLFSSL_SP_INT_NEGATIVE) && defined(WOLFSSL_SP_ADD_D)) || \
defined(WOLFSSL_SP_INT_NEGATIVE) || \ defined(WOLFSSL_SP_SUB_D) || defined(WOLFSSL_SP_INVMOD) || \
!defined(NO_DH) || !defined(NO_DSA) || defined(HAVE_ECC) || \ defined(WOLFSSL_SP_INVMOD_MONT_CT) || defined(WOLFSSL_SP_PRIME_GEN)
(!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY))
/* Sub a one digit number from the multi-precision number. /* Sub a one digit number from the multi-precision number.
* *
* returns MP_OKAY always. * returns MP_OKAY always.
@@ -3099,11 +3122,11 @@ static void _sp_sub_d(sp_int* a, sp_int_digit d, sp_int* r)
sp_clamp(r); sp_clamp(r);
} }
} }
#endif /* WOLFSSL_SP_MATH_ALL || WOLFSSL_SP_INT_NEGATIVE || !NO_DH || !NO_DSA || #endif /* (WOLFSSL_SP_INT_NEGATIVE && WOLFSSL_SP_ADD_D) || WOLFSSL_SP_SUB_D
* HAVE_ECC || (!NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) */ * WOLFSSL_SP_INVMOD || WOLFSSL_SP_INVMOD_MONT_CT ||
* WOLFSSL_SP_PRIME_GEN */
#if !defined(NO_PWDBASED) || defined(WOLFSSL_KEY_GEN) || !defined(NO_DH) || \ #ifdef WOLFSSL_SP_ADD_D
!defined(NO_DSA) || (!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY))
/* Add a one digit number to the multi-precision number. /* Add a one digit number to the multi-precision number.
* *
* @param [in] a SP integer be added to. * @param [in] a SP integer be added to.
@@ -3150,10 +3173,9 @@ int sp_add_d(sp_int* a, sp_int_digit d, sp_int* r)
return err; return err;
} }
#endif /* !NO_PWDBASED || WOLFSSL_KEY_GEN || !NO_DH || !NO_DSA || !NO_RSA */ #endif /* WOLFSSL_SP_ADD_D */
#if (!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #ifdef WOLFSSL_SP_SUB_D
!defined(NO_DH) || defined(HAVE_ECC) || !defined(NO_DSA)
/* Sub a one digit number from the multi-precision number. /* Sub a one digit number from the multi-precision number.
* *
* @param [in] a SP integer be subtracted from. * @param [in] a SP integer be subtracted from.
@@ -3199,8 +3221,7 @@ int sp_sub_d(sp_int* a, sp_int_digit d, sp_int* r)
return err; return err;
} }
#endif /* (!NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) || !NO_DH || HAVE_ECC || #endif /* WOLFSSL_SP_SUB_D */
* !NO_DSA */
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
defined(WOLFSSL_SP_SMALL) && (defined(WOLFSSL_SP_MATH_ALL) || \ defined(WOLFSSL_SP_SMALL) && (defined(WOLFSSL_SP_MATH_ALL) || \
@@ -3346,10 +3367,20 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo,
#endif /* WOLFSSL_SP_MATH_ALL || !NO_DH || HAVE_ECC || #endif /* WOLFSSL_SP_MATH_ALL || !NO_DH || HAVE_ECC ||
* (!NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) */ * (!NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) */
#if !defined(WOLFSSL_SP_SMALL) && ((defined(WOLFSSL_SP_MATH_ALL) && \ /* Predefine complicated rules of when to compile in sp_div_d and sp_mod_d. */
!defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
defined(WOLFSSL_HAVE_SP_DH) || (defined(HAVE_ECC) && (defined(FP_ECC) || \ defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY)
defined(HAVE_COMP_KEY)))) #define WOLFSSL_SP_DIV_D
#endif
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
defined(WOLFSSL_HAVE_SP_DH) || \
(defined(HAVE_ECC) && (defined(FP_ECC) || defined(HAVE_COMP_KEY))) || \
(!defined(NO_RSA) && defined(WOLFSSL_KEY_GEN))
#define WOLFSSL_SP_MOD_D
#endif
#if (defined(WOLFSSL_SP_DIV_D) || defined(WOLFSSL_SP_MOD_D)) && \
!defined(WOLFSSL_SP_SMALL)
/* Divide by 3: r = a / 3 and rem = a % 3 /* Divide by 3: r = a / 3 and rem = a % 3
* *
* @param [in] a SP integer to be divided. * @param [in] a SP integer to be divided.
@@ -3461,14 +3492,9 @@ static void _sp_div_10(sp_int* a, sp_int* r, sp_int_digit* rem)
} }
} }
} }
#endif /* !WOLFSSL_SP_SMALL && ((WOLFSSL_SP_MATH_ALL && #endif /* (WOLFSSL_SP_DIV_D || WOLFSSL_SP_MOD_D) && !WOLFSSL_SP_SMALL */
* !WOLFSSL_RSA_VERIFY_ONLY) || WOLFSSL_HAVE_SP_DH ||
* (HAVE_ECC && FP_ECC)) */
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #if defined(WOLFSSL_SP_DIV_D) || defined(WOLFSSL_SP_MOD_D)
defined(WOLFSSL_HAVE_SP_DH) || \
(defined(HAVE_ECC) && (defined(FP_ECC) || defined(HAVE_COMP_KEY))) || \
(!defined(NO_RSA) && defined(WOLFSSL_KEY_GEN))
/* Divide by small number: r = a / d and rem = a % d /* Divide by small number: r = a / d and rem = a % d
* *
* @param [in] a SP integer to be divided. * @param [in] a SP integer to be divided.
@@ -3514,8 +3540,7 @@ static void _sp_div_small(sp_int* a, sp_int_digit d, sp_int* r,
} }
#endif #endif
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #ifdef WOLFSSL_SP_DIV_D
defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY)
/* Divide a multi-precision number by a digit size number and calculate /* Divide a multi-precision number by a digit size number and calculate
* remainder. * remainder.
* r = a / d; rem = a % d * r = a / d; rem = a % d
@@ -3582,12 +3607,9 @@ int sp_div_d(sp_int* a, sp_int_digit d, sp_int* r, sp_int_digit* rem)
return err; return err;
} }
#endif #endif /* WOLFSSL_SP_DIV_D */
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #ifdef WOLFSSL_SP_MOD_D
defined(WOLFSSL_HAVE_SP_DH) || \
(defined(HAVE_ECC) && (defined(FP_ECC) || defined(HAVE_COMP_KEY))) || \
(!defined(NO_RSA) && defined(WOLFSSL_KEY_GEN))
/* Calculate a modulo the digit d into r: r = a mod d /* Calculate a modulo the digit d into r: r = a mod d
* *
* @param [in] a SP integer to reduce. * @param [in] a SP integer to reduce.
@@ -3662,8 +3684,7 @@ int sp_mod_d(sp_int* a, const sp_int_digit d, sp_int_digit* r)
return err; return err;
} }
#endif /* (WOLFSSL_SP_MATH_ALL && !WOLFSSL_RSA_VERFIY_ONLY) || \ #endif /* WOLFSSL_SP_MOD_D */
* WOLFSSL_HAVE_SP_DH || (HAVE_ECC && (FP_ECC || HAVE_COMP_KEY)) */
#if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC) #if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC)
/* Divides a by 2 mod m and stores in r: r = (a / 2) mod m /* Divides a by 2 mod m and stores in r: r = (a / 2) mod m
@@ -7762,9 +7783,7 @@ int sp_mulmod(sp_int* a, sp_int* b, sp_int* m, sp_int* r)
} }
#endif #endif
#if defined(HAVE_ECC) || !defined(NO_DSA) || defined(OPENSSL_EXTRA) || \ #ifdef WOLFSSL_SP_INVMOD
(!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY) && \
!defined(WOLFSSL_RSA_PUBLIC_ONLY))
/* Calculates the multiplicative inverse in the field. /* Calculates the multiplicative inverse in the field.
* *
* @param [in] a SP integer to find inverse of. * @param [in] a SP integer to find inverse of.
@@ -7901,10 +7920,9 @@ int sp_invmod(sp_int* a, sp_int* m, sp_int* r)
FREE_SP_INT_ARRAY(t, NULL); FREE_SP_INT_ARRAY(t, NULL);
return err; return err;
} }
#endif /* HAVE_ECC || !NO_DSA || OPENSSL_EXTRA || \ #endif /* WOLFSSL_SP_INVMOD */
* (!NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) */
#if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC) #ifdef WOLFSSL_SP_INVMOD_MONT_CT
#define CT_INV_MOD_PRE_CNT 8 #define CT_INV_MOD_PRE_CNT 8
@@ -8008,7 +8026,7 @@ int sp_invmod_mont_ct(sp_int* a, sp_int* m, sp_int* r, sp_int_digit mp)
return err; return err;
} }
#endif /* WOLFSSL_SP_MATH_ALL && HAVE_ECC */ #endif /* WOLFSSL_SP_INVMOD_MONT_CT */
/************************** /**************************
@@ -12407,7 +12425,7 @@ static int _sp_read_radix_16(sp_int* a, const char* in)
} }
#endif /* (WOLFSSL_SP_MATH_ALL && !NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) || HAVE_ECC */ #endif /* (WOLFSSL_SP_MATH_ALL && !NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY) || HAVE_ECC */
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY) #ifdef WOLFSSL_SP_READ_RADIX_10
/* Convert decimal number as string in big-endian format to a multi-precision /* Convert decimal number as string in big-endian format to a multi-precision
* number. * number.
* *
@@ -12464,10 +12482,10 @@ static int _sp_read_radix_10(sp_int* a, const char* in)
return err; return err;
} }
#endif /* WOLFSSL_SP_MATH_ALL && !NO_RSA && !WOLFSSL_RSA_VERIFY_ONLY */ #endif /* WOLFSSL_SP_READ_RADIX_10 */
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \ #if (defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && \
defined(HAVE_ECC) || !defined(NO_DSA) !defined(WOLFSSL_RSA_VERIFY_ONLY)) || defined(HAVE_ECC) || !defined(NO_DSA)
/* Convert a number as string in big-endian format to a big number. /* Convert a number as string in big-endian format to a big number.
* Only supports base-16 (hexadecimal) and base-10 (decimal). * Only supports base-16 (hexadecimal) and base-10 (decimal).
* *
@@ -12499,7 +12517,7 @@ int sp_read_radix(sp_int* a, const char* in, int radix)
if (radix == 16) { if (radix == 16) {
err = _sp_read_radix_16(a, in); err = _sp_read_radix_16(a, in);
} }
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY) #ifdef WOLFSSL_SP_READ_RADIX_10
else if (radix == 10) { else if (radix == 10) {
err = _sp_read_radix_10(a, in); err = _sp_read_radix_10(a, in);
} }
@@ -12907,9 +12925,7 @@ int sp_rand_prime(sp_int* r, int len, WC_RNG* rng, void* heap)
} }
#endif /* WOLFSSL_KEY_GEN && (!NO_DH || !NO_DSA) && !WC_NO_RNG */ #endif /* WOLFSSL_KEY_GEN && (!NO_DH || !NO_DSA) && !WC_NO_RNG */
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY) && \ #ifdef WOLFSSL_SP_PRIME_GEN
!defined(WOLFSSL_RSA_PUBLIC_ONLY)) || defined(WOLFSSL_HAVE_SP_DH) || \
(!defined(NO_RSA) && defined(WOLFSSL_KEY_GEN))
/* Miller-Rabin test of "a" to the base of "b" as described in /* Miller-Rabin test of "a" to the base of "b" as described in
* HAC pp. 139 Algorithm 4.24 * HAC pp. 139 Algorithm 4.24
* *
@@ -13302,7 +13318,7 @@ int sp_prime_is_prime_ex(sp_int* a, int t, int* result, WC_RNG* rng)
} }
return err; return err;
} }
#endif /* WOLFSSL_SP_MATH_ALL || WOLFSSL_HAVE_SP_DH */ #endif /* WOLFSSL_SP_PRIME_GEN */
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) #if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
@@ -13415,7 +13431,7 @@ int sp_gcd(sp_int* a, sp_int* b, sp_int* r)
#endif /* WOLFSSL_SP_MATH_ALL && !NO_RSA && WOLFSSL_KEY_GEN */ #endif /* WOLFSSL_SP_MATH_ALL && !NO_RSA && WOLFSSL_KEY_GEN */
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) #if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && !defined(WC_RSA_BLINDING)
/* Calculates the Lowest Common Multiple (LCM) of a and b and stores in r. /* Calculates the Lowest Common Multiple (LCM) of a and b and stores in r.
* *

View File

@@ -15894,6 +15894,7 @@ exit_rsa:
(void)res; (void)res;
(void)bytes; (void)bytes;
(void)idx;
(void)in; (void)in;
(void)out; (void)out;
(void)plain; (void)plain;
@@ -33480,6 +33481,8 @@ static int mp_test_div_3(mp_int* a, mp_int* r, WC_RNG* rng)
mp_digit rem; mp_digit rem;
mp_digit rem2; mp_digit rem2;
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY)
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
for (j = 1; j < 10; j++) { for (j = 1; j < 10; j++) {
if (randNum(a, j, rng, NULL) != 0) if (randNum(a, j, rng, NULL) != 0)
@@ -33501,6 +33504,7 @@ static int mp_test_div_3(mp_int* a, mp_int* r, WC_RNG* rng)
return -12626; return -12626;
if (mp_cmp(r, a) != MP_EQ) if (mp_cmp(r, a) != MP_EQ)
return -12627; return -12627;
#endif
#if defined(WOLFSSL_SP_MATH_ALL) #if defined(WOLFSSL_SP_MATH_ALL)
if (mp_div_d(a, 10, r, &rem) != 0) if (mp_div_d(a, 10, r, &rem) != 0)
@@ -33527,10 +33531,16 @@ static int mp_test_div_3(mp_int* a, mp_int* r, WC_RNG* rng)
return -12637; return -12637;
if (rem != rem2) if (rem != rem2)
return -12638; return -12638;
#else
(void)rem2;
#endif #endif
(void)a;
(void)r;
(void)rng;
(void)i;
(void)j;
(void)rem;
(void)rem2;
return 0; return 0;
} }
#endif /* WOLFSSL_SP_MATH || !USE_FAST_MATH */ #endif /* WOLFSSL_SP_MATH || !USE_FAST_MATH */
@@ -33602,7 +33612,8 @@ static int mp_test_radix_10(mp_int* a, mp_int* r, WC_RNG* rng)
} }
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) || defined(HAVE_ECC) #if defined(WOLFSSL_SP_MATH_ALL) || (!defined WOLFSSL_SP_MATH && \
defined(HAVE_ECC))
static int mp_test_radix_16(mp_int* a, mp_int* r, WC_RNG* rng) static int mp_test_radix_16(mp_int* a, mp_int* r, WC_RNG* rng)
{ {
int ret; int ret;
@@ -33698,6 +33709,7 @@ static int mp_test_shift(mp_int* a, mp_int* r1, WC_RNG* rng)
if (mp_cmp(a, r1) != MP_EQ) if (mp_cmp(a, r1) != MP_EQ)
return -12682; return -12682;
} }
#ifndef WOLFSSL_SP_MATH
for (i = 0; i < DIGIT_BIT+1; i++) { for (i = 0; i < DIGIT_BIT+1; i++) {
if (mp_mul_2d(a, i, r1) != MP_OKAY) if (mp_mul_2d(a, i, r1) != MP_OKAY)
return -12683; return -12683;
@@ -33705,6 +33717,7 @@ static int mp_test_shift(mp_int* a, mp_int* r1, WC_RNG* rng)
if (mp_cmp(a, r1) != MP_EQ) if (mp_cmp(a, r1) != MP_EQ)
return -12684; return -12684;
} }
#endif
return 0; return 0;
} }
@@ -33740,21 +33753,6 @@ static int mp_test_add_sub_d(mp_int* a, mp_int* r1)
if (r1->used != 0) if (r1->used != 0)
return -12697; return -12697;
#ifdef WOLFSSL_SP_MATH
if (mp_set(r1, 1) != MP_OKAY)
return -12698;
if (mp_mul_2d(r1, SP_INT_MAX_BITS - 1, r1) != MP_OKAY)
return -12699;
if (mp_sub_d(r1, 1, r1) != MP_OKAY)
return -12700;
if (mp_mul_2d(r1, 1, r1) != MP_OKAY)
return -12701;
if (mp_add_d(r1, 1, r1) != MP_OKAY)
return -12702;
if (mp_add_d(r1, 1, r1) == MP_OKAY)
return -12703;
#endif
return 0; return 0;
} }
@@ -34303,8 +34301,8 @@ static int mp_test_param(mp_int* a, mp_int* b, mp_int* r, WC_RNG* rng)
return -12821; return -12821;
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_HAVE_SP_DH) || \ #if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
(defined(HAVE_ECC) && defined(FP_ECC)) defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY)
ret = mp_div_d(NULL, 0, NULL, NULL); ret = mp_div_d(NULL, 0, NULL, NULL);
if (ret != MP_VAL) if (ret != MP_VAL)
return -12822; return -12822;
@@ -34353,7 +34351,7 @@ static int mp_test_param(mp_int* a, mp_int* b, mp_int* r, WC_RNG* rng)
return -12834; return -12834;
#endif #endif
#ifdef HAVE_ECC #if !defined(WOLFSSL_SP_MATH) && defined(HAVE_ECC)
ret = mp_div_2_mod_ct(NULL, NULL, NULL); ret = mp_div_2_mod_ct(NULL, NULL, NULL);
if (ret != MP_VAL) if (ret != MP_VAL)
return -12835; return -12835;
@@ -34412,7 +34410,7 @@ static int mp_test_param(mp_int* a, mp_int* b, mp_int* r, WC_RNG* rng)
return -12851; return -12851;
#endif #endif
#ifdef HAVE_ECC #if !defined(WOLFSSL_SP_MATH) && defined(HAVE_ECC)
ret = mp_invmod_mont_ct(NULL, NULL, NULL, 1); ret = mp_invmod_mont_ct(NULL, NULL, NULL, 1);
if (ret != MP_VAL) if (ret != MP_VAL)
return -12852; return -12852;
@@ -34436,7 +34434,7 @@ static int mp_test_param(mp_int* a, mp_int* b, mp_int* r, WC_RNG* rng)
return -12858; return -12858;
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) #if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && !defined(WC_RSA_BLINDING)
ret = mp_lcm(NULL, NULL, NULL); ret = mp_lcm(NULL, NULL, NULL);
if (ret != MP_VAL) if (ret != MP_VAL)
return -12859; return -12859;
@@ -35022,6 +35020,7 @@ static int mp_test_shbd(mp_int* a, mp_int* b, WC_RNG* rng)
int ret; int ret;
int i, j, k; int i, j, k;
#ifndef WOLFSSL_SP_MATH
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
for (j = 1; j < (DIGIT_BIT + 7) / 8 * 3; j++) { for (j = 1; j < (DIGIT_BIT + 7) / 8 * 3; j++) {
ret = randNum(a, j, rng, NULL); ret = randNum(a, j, rng, NULL);
@@ -35038,6 +35037,7 @@ static int mp_test_shbd(mp_int* a, mp_int* b, WC_RNG* rng)
} }
} }
} }
#endif
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
for (j = 1; j < (DIGIT_BIT + 7) / 8 * 3; j++) { for (j = 1; j < (DIGIT_BIT + 7) / 8 * 3; j++) {
@@ -35075,6 +35075,7 @@ static int mp_test_shbd(mp_int* a, mp_int* b, WC_RNG* rng)
} }
#endif #endif
#ifndef WOLFSSL_SP_MATH
static int mp_test_div(mp_int* a, mp_int* d, mp_int* r, mp_int* rem, static int mp_test_div(mp_int* a, mp_int* d, mp_int* r, mp_int* rem,
WC_RNG* rng) WC_RNG* rng)
{ {
@@ -35192,6 +35193,7 @@ static int mp_test_div(mp_int* a, mp_int* d, mp_int* r, mp_int* rem,
return 0; return 0;
} }
#endif
#if defined(WOLFSSL_KEY_GEN) && (!defined(NO_DH) || !defined(NO_DSA)) && \ #if defined(WOLFSSL_KEY_GEN) && (!defined(NO_DH) || !defined(NO_DSA)) && \
!defined(WC_NO_RNG) !defined(WC_NO_RNG)
@@ -35201,20 +35203,28 @@ static int mp_test_prime(mp_int* a, WC_RNG* rng)
int res; int res;
ret = mp_rand_prime(a, 1, rng, NULL); ret = mp_rand_prime(a, 1, rng, NULL);
#if defined(WOLFSSL_SP_MATH) || defined(WOLFSSL_SP_MATH_ALL) #if defined(WOLFSSL_SP_MATH_ALL)
if (ret != 0) if (ret != 0)
return -13060;
#else #else
if (ret != MP_VAL) if (ret != MP_VAL)
#endif
return -13060; return -13060;
#endif
#ifndef WOLFSSL_SP_MATH
ret = mp_rand_prime(a, -5, rng, NULL); ret = mp_rand_prime(a, -5, rng, NULL);
if (ret != 0) if (ret != 0)
return -13061; return -13061;
#endif
ret = mp_prime_is_prime(a, 1, &res); ret = mp_prime_is_prime(a, 1, &res);
if (ret != MP_OKAY) if (ret != MP_OKAY)
return -13062; return -13062;
#ifndef WOLFSSL_SP_MATH
if (res != MP_YES) if (res != MP_YES)
return -13063; return -13063;
#else
if (res != MP_NO)
return -13063;
#endif
ret = mp_prime_is_prime(a, 0, &res); ret = mp_prime_is_prime(a, 0, &res);
if (ret != MP_VAL) if (ret != MP_VAL)
@@ -35290,8 +35300,7 @@ static int mp_test_prime(mp_int* a, WC_RNG* rng)
} }
#endif #endif
#if defined(WOLFSSL_KEY_GEN) && (!defined(WOLFSSL_SP_MATH_ALL) || \ #if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && !defined(WC_RSA_BLINDING)
!defined(NO_RSA))
static int mp_test_lcm_gcd(mp_int* a, mp_int* b, mp_int* r, mp_int* exp, static int mp_test_lcm_gcd(mp_int* a, mp_int* b, mp_int* r, mp_int* exp,
WC_RNG* rng) WC_RNG* rng)
{ {
@@ -35490,7 +35499,7 @@ static int mp_test_mul_sqr(mp_int* a, mp_int* b, mp_int* r1, mp_int* r2,
if (!mp_iszero(r1)) if (!mp_iszero(r1))
return -13148; return -13148;
#ifdef WOLFSSL_SP_MATH #ifdef WOLFSSL_SP_MATH_ALL
ret = mp_set(a, 1); ret = mp_set(a, 1);
if (ret != MP_OKAY) if (ret != MP_OKAY)
return -13149; return -13149;
@@ -35535,7 +35544,7 @@ static int mp_test_mul_sqr(mp_int* a, mp_int* b, mp_int* r1, mp_int* r2,
return -13160; return -13160;
#endif /* HAVE_ECC && (ECC_SHAMIR || FP_ECC) */ #endif /* HAVE_ECC && (ECC_SHAMIR || FP_ECC) */
#endif /* WOLFSSL_SP_MATH_ALL || WOLFSSL_HAVE_SP_DH || (HAVE_ECC && FP_ECC) */ #endif /* WOLFSSL_SP_MATH_ALL || WOLFSSL_HAVE_SP_DH || (HAVE_ECC && FP_ECC) */
#endif /* WOLFSSL_SP_MATH */ #endif /* WOLFSSL_SP_MATH_ALL */
return 0; return 0;
} }
@@ -35586,8 +35595,7 @@ static int mp_test_invmod(mp_int* a, mp_int* m, mp_int* r)
return -13177; return -13177;
#endif #endif
#if defined(WOLFSSL_SP_MATH) || defined(WOLFSSL_SP_MATH_ALL) #if defined(WOLFSSL_SP_MATH_ALL) && defined(HAVE_ECC)
#ifdef HAVE_ECC
mp_set(a, 0); mp_set(a, 0);
mp_set(m, 3); mp_set(m, 3);
ret = mp_invmod_mont_ct(a, m, r, 1); ret = mp_invmod_mont_ct(a, m, r, 1);
@@ -35614,7 +35622,6 @@ static int mp_test_invmod(mp_int* a, mp_int* m, mp_int* r)
ret = mp_invmod_mont_ct(a, m, r, 1); ret = mp_invmod_mont_ct(a, m, r, 1);
if (ret != MP_OKAY) if (ret != MP_OKAY)
return -13182; return -13182;
#endif
#endif #endif
return 0; return 0;
@@ -35704,6 +35711,7 @@ static int mp_test_exptmod(mp_int* b, mp_int* e, mp_int* m, mp_int* r)
if (!mp_iszero(r)) if (!mp_iszero(r))
return -13209; return -13209;
#ifndef WOLFSSL_SP_MATH
mp_set(b, 0x01); mp_set(b, 0x01);
mp_mul_2d(b, DIGIT_BIT, b); mp_mul_2d(b, DIGIT_BIT, b);
mp_add_d(b, 1, b); mp_add_d(b, 1, b);
@@ -35719,6 +35727,7 @@ static int mp_test_exptmod(mp_int* b, mp_int* e, mp_int* m, mp_int* r)
return -13212; return -13212;
if (!mp_iszero(r)) if (!mp_iszero(r))
return -13213; return -13213;
#endif
mp_set(b, 0x2); mp_set(b, 0x2);
mp_set(e, 0x3); mp_set(e, 0x3);
@@ -35730,7 +35739,7 @@ static int mp_test_exptmod(mp_int* b, mp_int* e, mp_int* m, mp_int* r)
if (ret != MP_OKAY) if (ret != MP_OKAY)
return -13215; return -13215;
#ifdef WOLFSSL_SP_MATH #ifdef WOLFSSL_SP_MATH_ALL
mp_set(b, 0x2); mp_set(b, 0x2);
mp_set(e, 0x3); mp_set(e, 0x3);
mp_set(m, 0x01); mp_set(m, 0x01);
@@ -35829,7 +35838,10 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
WC_RNG rng; WC_RNG rng;
int ret; int ret;
#if defined(HAVE_ECC) || defined(WOLFSSL_KEY_GEN) #if defined(HAVE_ECC) || defined(WOLFSSL_KEY_GEN)
int i, j, k; int i, j;
#ifndef WOLFSSL_SP_MATH
int k;
#endif
mp_digit d; mp_digit d;
#endif #endif
mp_int a, b, r1, r2, p; mp_int a, b, r1, r2, p;
@@ -35889,6 +35901,7 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
return -13309; return -13309;
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)
#if defined(WOLFSSL_SP_MATH) || (defined(WOLFSSL_SP_MATH_ALL) && \ #if defined(WOLFSSL_SP_MATH) || (defined(WOLFSSL_SP_MATH_ALL) && \
!defined(WOLFSSL_SP_INT_NEGATIVE)) !defined(WOLFSSL_SP_INT_NEGATIVE))
ret = mp_addmod(&a, &b, &p, &r1); ret = mp_addmod(&a, &b, &p, &r1);
@@ -35913,6 +35926,7 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
return -13315; return -13315;
if (mp_cmp(&r1, &r2) != 0) if (mp_cmp(&r1, &r2) != 0)
return -13316; return -13316;
#endif
#endif #endif
/* Ensure add digit produce same result as sub digit. */ /* Ensure add digit produce same result as sub digit. */
@@ -35933,6 +35947,7 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
return -13320; return -13320;
ret = 0; ret = 0;
#ifndef WOLFSSL_SP_MATH
/* Shift up and down number all bits in a digit. */ /* Shift up and down number all bits in a digit. */
for (k = 0; k < DIGIT_BIT; k++) { for (k = 0; k < DIGIT_BIT; k++) {
mp_mul_2d(&a, k, &r1); mp_mul_2d(&a, k, &r1);
@@ -35945,6 +35960,7 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
if (mp_cmp(&a, &r1) != 0) if (mp_cmp(&a, &r1) != 0)
return -13323; return -13323;
} }
#endif
} }
} }
@@ -35990,7 +36006,8 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
if ((ret = mp_test_radix_10(&a, &r1, &rng)) != 0) if ((ret = mp_test_radix_10(&a, &r1, &rng)) != 0)
return ret; return ret;
#endif #endif
#if defined(WOLFSSL_SP_MATH_ALL) || defined(HAVE_ECC) #if defined(WOLFSSL_SP_MATH_ALL) || (!defined WOLFSSL_SP_MATH && \
defined(HAVE_ECC))
if ((ret = mp_test_radix_16(&a, &r1, &rng)) != 0) if ((ret = mp_test_radix_16(&a, &r1, &rng)) != 0)
return ret; return ret;
#endif #endif
@@ -36015,15 +36032,16 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
if ((ret = mp_test_set_is_bit(&a)) != 0) if ((ret = mp_test_set_is_bit(&a)) != 0)
return ret; return ret;
#endif #endif
#ifdef WOLFSSL_SP_MATH_ALL
if ((ret = mp_test_div(&a, &b, &r1, &r2, &rng)) != 0) if ((ret = mp_test_div(&a, &b, &r1, &r2, &rng)) != 0)
return ret; return ret;
#endif
#if defined(WOLFSSL_KEY_GEN) && (!defined(NO_DH) || !defined(NO_DSA)) && \ #if defined(WOLFSSL_KEY_GEN) && (!defined(NO_DH) || !defined(NO_DSA)) && \
!defined(WC_NO_RNG) !defined(WC_NO_RNG)
if ((ret = mp_test_prime(&a, &rng)) != 0) if ((ret = mp_test_prime(&a, &rng)) != 0)
return ret; return ret;
#endif #endif
#if defined(WOLFSSL_KEY_GEN) && (!defined(WOLFSSL_SP_MATH_ALL) || \ #if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && !defined(WC_RSA_BLINDING)
!defined(NO_RSA))
if ((ret = mp_test_lcm_gcd(&a, &b, &r1, &r2, &rng)) != 0) if ((ret = mp_test_lcm_gcd(&a, &b, &r1, &r2, &rng)) != 0)
return ret; return ret;
#endif #endif

View File

@@ -802,7 +802,10 @@ MP_API int sp_cmp_d(sp_int* a, sp_int_digit d);
MP_API int sp_add_d(sp_int* a, sp_int_digit d, sp_int* r); MP_API int sp_add_d(sp_int* a, sp_int_digit d, sp_int* r);
MP_API int sp_sub_d(sp_int* a, sp_int_digit d, sp_int* r); MP_API int sp_sub_d(sp_int* a, sp_int_digit d, sp_int* r);
MP_API int sp_mul_d(sp_int* a, sp_int_digit d, sp_int* r); MP_API int sp_mul_d(sp_int* a, sp_int_digit d, sp_int* r);
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
defined(WOLFSSL_KEY_GEN) || defined(HAVE_COMP_KEY)
MP_API int sp_div_d(sp_int* a, sp_int_digit d, sp_int* r, sp_int_digit* rem); MP_API int sp_div_d(sp_int* a, sp_int_digit d, sp_int* r, sp_int_digit* rem);
#endif
#if defined(WOLFSSL_SP_MATH_ALL) || (defined(HAVE_ECC) && \ #if defined(WOLFSSL_SP_MATH_ALL) || (defined(HAVE_ECC) && \
defined(HAVE_COMP_KEY)) defined(HAVE_COMP_KEY))
MP_API int sp_mod_d(sp_int* a, const sp_int_digit d, sp_int_digit* r); MP_API int sp_mod_d(sp_int* a, const sp_int_digit d, sp_int_digit* r);
@@ -883,8 +886,12 @@ MP_API int sp_radix_size(mp_int* a, int radix, int* size);
MP_API int sp_rand_prime(sp_int* r, int len, WC_RNG* rng, void* heap); MP_API int sp_rand_prime(sp_int* r, int len, WC_RNG* rng, void* heap);
MP_API int sp_prime_is_prime(mp_int* a, int t, int* result); MP_API int sp_prime_is_prime(mp_int* a, int t, int* result);
MP_API int sp_prime_is_prime_ex(mp_int* a, int t, int* result, WC_RNG* rng); MP_API int sp_prime_is_prime_ex(mp_int* a, int t, int* result, WC_RNG* rng);
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
MP_API int sp_gcd(sp_int* a, sp_int* b, sp_int* r); MP_API int sp_gcd(sp_int* a, sp_int* b, sp_int* r);
#endif
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN) && !defined(WC_RSA_BLINDING)
MP_API int sp_lcm(sp_int* a, sp_int* b, sp_int* r); MP_API int sp_lcm(sp_int* a, sp_int* b, sp_int* r);
#endif
WOLFSSL_API word32 CheckRunTimeFastMath(void); WOLFSSL_API word32 CheckRunTimeFastMath(void);