forked from wolfSSL/wolfssl
SP int, cortex, thumb div_word: fix to work
Cortex builds needed # before number. Arm32 works with or without. Thumb div_word needed to shift up if divisor too small (like other ARM implementations).
This commit is contained in:
@@ -1017,17 +1017,17 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo,
|
|||||||
sp_int_digit r = 0;
|
sp_int_digit r = 0;
|
||||||
|
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
"lsrs r5, %[d], 24\n\t"
|
"lsrs r5, %[d], #24\n\t"
|
||||||
"it eq\n\t"
|
"it eq\n\t"
|
||||||
"moveq r5, 8\n\t"
|
"moveq r5, #8\n\t"
|
||||||
"it ne\n\t"
|
"it ne\n\t"
|
||||||
"movne r5, 0\n\t"
|
"movne r5, #0\n\t"
|
||||||
"rsb r6, r5, 31\n\t"
|
"rsb r6, r5, #31\n\t"
|
||||||
"lsl %[d], %[d], r5\n\t"
|
"lsl %[d], %[d], r5\n\t"
|
||||||
"lsl %[hi], %[hi], r5\n\t"
|
"lsl %[hi], %[hi], r5\n\t"
|
||||||
"lsr r7, %[lo], r6\n\t"
|
"lsr r7, %[lo], r6\n\t"
|
||||||
"lsl %[lo], %[lo], r5\n\t"
|
"lsl %[lo], %[lo], r5\n\t"
|
||||||
"orr %[hi], %[hi], r7, lsr 1\n\t"
|
"orr %[hi], %[hi], r7, lsr #1\n\t"
|
||||||
|
|
||||||
"lsr r5, %[d], #1\n\t"
|
"lsr r5, %[d], #1\n\t"
|
||||||
"add r5, r5, #1\n\t"
|
"add r5, r5, #1\n\t"
|
||||||
@@ -1092,17 +1092,17 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo,
|
|||||||
sp_int_digit d)
|
sp_int_digit d)
|
||||||
{
|
{
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
"lsrs r3, %[d], 24\n\t"
|
"lsrs r3, %[d], #24\n\t"
|
||||||
"it eq\n\t"
|
"it eq\n\t"
|
||||||
"moveq r3, 8\n\t"
|
"moveq r3, #8\n\t"
|
||||||
"it ne\n\t"
|
"it ne\n\t"
|
||||||
"movne r3, 0\n\t"
|
"movne r3, #0\n\t"
|
||||||
"rsb r4, r3, 31\n\t"
|
"rsb r4, r3, #31\n\t"
|
||||||
"lsl %[d], %[d], r3\n\t"
|
"lsl %[d], %[d], r3\n\t"
|
||||||
"lsl %[hi], %[hi], r3\n\t"
|
"lsl %[hi], %[hi], r3\n\t"
|
||||||
"lsr r5, %[lo], r4\n\t"
|
"lsr r5, %[lo], r4\n\t"
|
||||||
"lsl %[lo], %[lo], r3\n\t"
|
"lsl %[lo], %[lo], r3\n\t"
|
||||||
"orr %[hi], %[hi], r5, lsr 1\n\t"
|
"orr %[hi], %[hi], r5, lsr #1\n\t"
|
||||||
|
|
||||||
"lsr r5, %[d], 16\n\t"
|
"lsr r5, %[d], 16\n\t"
|
||||||
"add r5, r5, 1\n\t"
|
"add r5, r5, 1\n\t"
|
||||||
@@ -2175,6 +2175,58 @@ static WC_INLINE sp_int_digit sp_div_word(sp_int_digit hi, sp_int_digit lo,
|
|||||||
sp_int_digit d)
|
sp_int_digit d)
|
||||||
{
|
{
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
|
"lsrs r3, %[d], #24\n\t"
|
||||||
|
#else
|
||||||
|
"lsr r3, %[d], #24\n\t"
|
||||||
|
#endif
|
||||||
|
"beq 2%=f\n\t"
|
||||||
|
"1%=:\n\t"
|
||||||
|
"movs r3, #0\n\t"
|
||||||
|
"b 3%=f\n\t"
|
||||||
|
"2%=:\n\t"
|
||||||
|
"mov r3, #8\n\t"
|
||||||
|
"3%=:\n\t"
|
||||||
|
"movs r4, #31\n\t"
|
||||||
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
|
"subs r4, r4, r3\n\t"
|
||||||
|
#else
|
||||||
|
"sub r4, r4, r3\n\t"
|
||||||
|
#endif
|
||||||
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
|
"lsls %[d], %[d], r3\n\t"
|
||||||
|
#else
|
||||||
|
"lsl %[d], %[d], r3\n\t"
|
||||||
|
#endif
|
||||||
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
|
"lsls %[hi], %[hi], r3\n\t"
|
||||||
|
#else
|
||||||
|
"lsl %[hi], %[hi], r3\n\t"
|
||||||
|
#endif
|
||||||
|
"mov r5, %[lo]\n\t"
|
||||||
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
|
"lsrs r5, r5, r4\n\t"
|
||||||
|
#else
|
||||||
|
"lsr r5, r5, r4\n\t"
|
||||||
|
#endif
|
||||||
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
|
"lsls %[lo], %[lo], r3\n\t"
|
||||||
|
#else
|
||||||
|
"lsl %[lo], %[lo], r3\n\t"
|
||||||
|
#endif
|
||||||
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
|
"lsrs r5, r5, #1\n\t"
|
||||||
|
#else
|
||||||
|
"lsr r5, r5, #1\n\t"
|
||||||
|
#endif
|
||||||
|
#if defined(WOLFSSL_KEIL)
|
||||||
|
"orrs %[hi], %[hi], r5\n\t"
|
||||||
|
#elif defined(__clang__)
|
||||||
|
"orrs %[hi], r5\n\t"
|
||||||
|
#else
|
||||||
|
"orr %[hi], r5\n\t"
|
||||||
|
#endif
|
||||||
|
|
||||||
"movs r3, #0\n\t"
|
"movs r3, #0\n\t"
|
||||||
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
#if defined(__clang__) || defined(WOLFSSL_KEIL)
|
||||||
"lsrs r5, %[d], #1\n\t"
|
"lsrs r5, %[d], #1\n\t"
|
||||||
@@ -4422,7 +4474,8 @@ static int _sp_cmp(sp_int* a, sp_int* b)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
|
#if (!defined(NO_RSA) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
|
||||||
!defined(NO_DSA) || defined(HAVE_ECC) || !defined(NO_DH)
|
!defined(NO_DSA) || defined(HAVE_ECC) || !defined(NO_DH) || \
|
||||||
|
defined(WOLFSSL_SP_MATH_ALL)
|
||||||
/* Compare two multi-precision numbers.
|
/* Compare two multi-precision numbers.
|
||||||
*
|
*
|
||||||
* Pointers are compared such that NULL is less than not NULL.
|
* Pointers are compared such that NULL is less than not NULL.
|
||||||
@@ -5449,10 +5502,10 @@ int sp_mod_d(sp_int* a, const sp_int_digit d, sp_int_digit* r)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print_digit(d, "m");
|
sp_print_digit(d, "m");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
/* Check whether d is a power of 2. */
|
/* Check whether d is a power of 2. */
|
||||||
@@ -5496,9 +5549,9 @@ int sp_mod_d(sp_int* a, const sp_int_digit d, sp_int_digit* r)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
sp_print_digit(*r, "rmod");
|
sp_print_digit(*r, "rmod");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -5532,10 +5585,10 @@ int sp_div_2_mod_ct(sp_int* a, sp_int* m, sp_int* r)
|
|||||||
sp_int_digit mask;
|
sp_int_digit mask;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print(m, "m");
|
sp_print(m, "m");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mask = 0 - (a->dp[0] & 1);
|
mask = 0 - (a->dp[0] & 1);
|
||||||
for (i = 0; i < m->used; i++) {
|
for (i = 0; i < m->used; i++) {
|
||||||
@@ -5554,9 +5607,9 @@ int sp_div_2_mod_ct(sp_int* a, sp_int* m, sp_int* r)
|
|||||||
sp_clamp(r);
|
sp_clamp(r);
|
||||||
sp_div_2(r, r);
|
sp_div_2(r, r);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
sp_print(r, "rd2");
|
sp_print(r, "rd2");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@@ -5628,10 +5681,10 @@ static int _sp_add_off(sp_int* a, sp_int* b, sp_int* r, int o)
|
|||||||
int j;
|
int j;
|
||||||
sp_int_word t = 0;
|
sp_int_word t = 0;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print(b, "b");
|
sp_print(b, "b");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SP_MATH_NEED_ADD_OFF
|
#ifdef SP_MATH_NEED_ADD_OFF
|
||||||
for (i = 0; (i < o) && (i < a->used); i++) {
|
for (i = 0; (i < o) && (i < a->used); i++) {
|
||||||
@@ -5669,9 +5722,9 @@ static int _sp_add_off(sp_int* a, sp_int* b, sp_int* r, int o)
|
|||||||
|
|
||||||
sp_clamp(r);
|
sp_clamp(r);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
sp_print(r, "radd");
|
sp_print(r, "radd");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return MP_OKAY;
|
return MP_OKAY;
|
||||||
}
|
}
|
||||||
@@ -5855,13 +5908,13 @@ int sp_addmod(sp_int* a, sp_int* b, sp_int* m, sp_int* r)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ALLOC_SP_INT_SIZE(t, used, err, NULL);
|
ALLOC_SP_INT_SIZE(t, used, err, NULL);
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print(b, "b");
|
sp_print(b, "b");
|
||||||
sp_print(m, "m");
|
sp_print(m, "m");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
err = sp_add(a, b, t);
|
err = sp_add(a, b, t);
|
||||||
@@ -5870,11 +5923,11 @@ int sp_addmod(sp_int* a, sp_int* b, sp_int* m, sp_int* r)
|
|||||||
err = sp_mod(t, m, r);
|
err = sp_mod(t, m, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(r, "rma");
|
sp_print(r, "rma");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FREE_SP_INT(t, NULL);
|
FREE_SP_INT(t, NULL);
|
||||||
return err;
|
return err;
|
||||||
@@ -5909,13 +5962,13 @@ int sp_submod(sp_int* a, sp_int* b, sp_int* m, sp_int* r)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print(b, "b");
|
sp_print(b, "b");
|
||||||
sp_print(m, "m");
|
sp_print(m, "m");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ALLOC_SP_INT_ARRAY(t, used, 2, err, NULL);
|
ALLOC_SP_INT_ARRAY(t, used, 2, err, NULL);
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
@@ -5942,11 +5995,11 @@ int sp_submod(sp_int* a, sp_int* b, sp_int* m, sp_int* r)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(r, "rms");
|
sp_print(r, "rms");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FREE_SP_INT_ARRAY(t, NULL);
|
FREE_SP_INT_ARRAY(t, NULL);
|
||||||
return err;
|
return err;
|
||||||
@@ -5962,13 +6015,13 @@ int sp_submod(sp_int* a, sp_int* b, sp_int* m, sp_int* r)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print(b, "b");
|
sp_print(b, "b");
|
||||||
sp_print(m, "m");
|
sp_print(m, "m");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ALLOC_SP_INT_SIZE(t, used, err, NULL);
|
ALLOC_SP_INT_SIZE(t, used, err, NULL);
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
@@ -5978,11 +6031,11 @@ int sp_submod(sp_int* a, sp_int* b, sp_int* m, sp_int* r)
|
|||||||
err = sp_mod(t, m, r);
|
err = sp_mod(t, m, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(r, "rms");
|
sp_print(r, "rms");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FREE_SP_INT(t, NULL);
|
FREE_SP_INT(t, NULL);
|
||||||
return err;
|
return err;
|
||||||
@@ -6367,12 +6420,12 @@ int sp_div(sp_int* a, sp_int* d, sp_int* r, sp_int* rem)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print(d, "b");
|
sp_print(d, "b");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
||||||
@@ -6574,7 +6627,7 @@ int sp_div(sp_int* a, sp_int* d, sp_int* r, sp_int* rem)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
if (rem != NULL) {
|
if (rem != NULL) {
|
||||||
sp_print(rem, "rdr");
|
sp_print(rem, "rdr");
|
||||||
@@ -6583,7 +6636,7 @@ int sp_div(sp_int* a, sp_int* d, sp_int* r, sp_int* rem)
|
|||||||
sp_print(r, "rdw");
|
sp_print(r, "rdw");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FREE_SP_INT_ARRAY(td, NULL);
|
FREE_SP_INT_ARRAY(td, NULL);
|
||||||
return err;
|
return err;
|
||||||
@@ -9499,12 +9552,12 @@ int sp_mul(sp_int* a, sp_int* b, sp_int* r)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
sp_print(b, "b");
|
sp_print(b, "b");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
#ifdef WOLFSSL_SP_INT_NEGATIVE
|
||||||
@@ -9605,11 +9658,11 @@ int sp_mul(sp_int* a, sp_int* b, sp_int* r)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(r, "rmul");
|
sp_print(r, "rmul");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -10507,13 +10560,13 @@ int sp_exptmod_ex(sp_int* b, sp_int* e, int digits, sp_int* m, sp_int* r)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(b, "a");
|
sp_print(b, "a");
|
||||||
sp_print(e, "b");
|
sp_print(e, "b");
|
||||||
sp_print(m, "m");
|
sp_print(m, "m");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (err != MP_OKAY) {
|
if (err != MP_OKAY) {
|
||||||
}
|
}
|
||||||
@@ -10622,11 +10675,11 @@ int sp_exptmod_ex(sp_int* b, sp_int* e, int digits, sp_int* m, sp_int* r)
|
|||||||
(void)eBits;
|
(void)eBits;
|
||||||
(void)digits;
|
(void)digits;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(r, "rme");
|
sp_print(r, "rme");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
#endif /* WOLFSSL_SP_MATH_ALL || WOLFSSL_HAVE_SP_DH */
|
#endif /* WOLFSSL_SP_MATH_ALL || WOLFSSL_HAVE_SP_DH */
|
||||||
@@ -11021,13 +11074,13 @@ int sp_exptmod_nct(sp_int* b, sp_int* e, sp_int* m, sp_int* r)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(b, "a");
|
sp_print(b, "a");
|
||||||
sp_print(e, "b");
|
sp_print(e, "b");
|
||||||
sp_print(m, "m");
|
sp_print(m, "m");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (err != MP_OKAY) {
|
if (err != MP_OKAY) {
|
||||||
}
|
}
|
||||||
@@ -11062,11 +11115,11 @@ int sp_exptmod_nct(sp_int* b, sp_int* e, sp_int* m, sp_int* r)
|
|||||||
err = _sp_exptmod_nct(b, e, m, r);
|
err = _sp_exptmod_nct(b, e, m, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(r, "rme");
|
sp_print(r, "rme");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -13529,11 +13582,11 @@ int sp_sqr(sp_int* a, sp_int* r)
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(a, "a");
|
sp_print(a, "a");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
if (a->used == 0) {
|
if (a->used == 0) {
|
||||||
@@ -13623,11 +13676,11 @@ int sp_sqr(sp_int* a, sp_int* r)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_print(r, "rsqr");
|
sp_print(r, "rsqr");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
#endif /* WOLFSSL_SP_MATH && WOLFSSL_SP_SMALL */
|
#endif /* WOLFSSL_SP_MATH && WOLFSSL_SP_SMALL */
|
||||||
|
Reference in New Issue
Block a user