mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
SP: regenerated SP code
This commit is contained in:
@ -1956,10 +1956,17 @@ int sp_ModExp_2048(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
mp_int* res)
|
mp_int* res)
|
||||||
{
|
{
|
||||||
int err = MP_OKAY;
|
int err = MP_OKAY;
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
sp_digit *b = NULL;
|
||||||
|
sp_digit *e = NULL;
|
||||||
|
sp_digit *m = NULL;
|
||||||
|
sp_digit* r;
|
||||||
|
#else
|
||||||
sp_digit b[64];
|
sp_digit b[64];
|
||||||
sp_digit e[32];
|
sp_digit e[32];
|
||||||
sp_digit m[32];
|
sp_digit m[32];
|
||||||
sp_digit* r = b;
|
sp_digit* r = b;
|
||||||
|
#endif
|
||||||
#ifdef HAVE_INTEL_AVX2
|
#ifdef HAVE_INTEL_AVX2
|
||||||
word32 cpuid_flags = cpuid_get_flags();
|
word32 cpuid_flags = cpuid_get_flags();
|
||||||
#endif
|
#endif
|
||||||
@ -1973,6 +1980,19 @@ int sp_ModExp_2048(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (err == MP_OKAY) {
|
||||||
|
if (((b = (sp_digit *)XMALLOC(64 * sizeof(*b), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((e = (sp_digit *)XMALLOC(32 * sizeof(*e), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((m = (sp_digit *)XMALLOC(32 * sizeof(*m), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL))
|
||||||
|
{
|
||||||
|
err = MEMORY_E;
|
||||||
|
} else {
|
||||||
|
r = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_2048_from_mp(b, 32, base);
|
sp_2048_from_mp(b, 32, base);
|
||||||
sp_2048_from_mp(e, 32, exp);
|
sp_2048_from_mp(e, 32, exp);
|
||||||
@ -1990,7 +2010,18 @@ int sp_ModExp_2048(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = sp_2048_to_mp(r, res);
|
err = sp_2048_to_mp(r, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (b != NULL)
|
||||||
|
XFREE(b, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (e != NULL) {
|
||||||
|
XMEMSET(e, 0, 32);
|
||||||
|
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
}
|
||||||
|
if (m != NULL)
|
||||||
|
XFREE(m, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
#else
|
||||||
XMEMSET(e, 0, sizeof(e));
|
XMEMSET(e, 0, sizeof(e));
|
||||||
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -2266,10 +2297,17 @@ int sp_DhExp_2048(const mp_int* base, const byte* exp, word32 expLen,
|
|||||||
const mp_int* mod, byte* out, word32* outLen)
|
const mp_int* mod, byte* out, word32* outLen)
|
||||||
{
|
{
|
||||||
int err = MP_OKAY;
|
int err = MP_OKAY;
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
sp_digit *b = NULL;
|
||||||
|
sp_digit *e = NULL;
|
||||||
|
sp_digit *m = NULL;
|
||||||
|
sp_digit* r;
|
||||||
|
#else
|
||||||
sp_digit b[64];
|
sp_digit b[64];
|
||||||
sp_digit e[32];
|
sp_digit e[32];
|
||||||
sp_digit m[32];
|
sp_digit m[32];
|
||||||
sp_digit* r = b;
|
sp_digit* r = b;
|
||||||
|
#endif
|
||||||
word32 i;
|
word32 i;
|
||||||
#ifdef HAVE_INTEL_AVX2
|
#ifdef HAVE_INTEL_AVX2
|
||||||
word32 cpuid_flags = cpuid_get_flags();
|
word32 cpuid_flags = cpuid_get_flags();
|
||||||
@ -2283,6 +2321,19 @@ int sp_DhExp_2048(const mp_int* base, const byte* exp, word32 expLen,
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (err == MP_OKAY) {
|
||||||
|
if (((b = (sp_digit *)XMALLOC(64 * sizeof(*b), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((e = (sp_digit *)XMALLOC(32 * sizeof(*e), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((m = (sp_digit *)XMALLOC(32 * sizeof(*m), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL))
|
||||||
|
{
|
||||||
|
err = MEMORY_E;
|
||||||
|
} else {
|
||||||
|
r = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_2048_from_mp(b, 32, base);
|
sp_2048_from_mp(b, 32, base);
|
||||||
sp_2048_from_bin(e, 32, exp, expLen);
|
sp_2048_from_bin(e, 32, exp, expLen);
|
||||||
@ -2319,7 +2370,18 @@ int sp_DhExp_2048(const mp_int* base, const byte* exp, word32 expLen,
|
|||||||
XMEMMOVE(out, out + i, *outLen);
|
XMEMMOVE(out, out + i, *outLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (b != NULL)
|
||||||
|
XFREE(b, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (e != NULL) {
|
||||||
|
XMEMSET(e, 0, 32);
|
||||||
|
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
}
|
||||||
|
if (m != NULL)
|
||||||
|
XFREE(m, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
#else
|
||||||
XMEMSET(e, 0, sizeof(e));
|
XMEMSET(e, 0, sizeof(e));
|
||||||
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -2337,10 +2399,17 @@ int sp_ModExp_1024(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
mp_int* res)
|
mp_int* res)
|
||||||
{
|
{
|
||||||
int err = MP_OKAY;
|
int err = MP_OKAY;
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
sp_digit *b = NULL;
|
||||||
|
sp_digit *e = NULL;
|
||||||
|
sp_digit *m = NULL;
|
||||||
|
sp_digit* r;
|
||||||
|
#else
|
||||||
sp_digit b[32];
|
sp_digit b[32];
|
||||||
sp_digit e[16];
|
sp_digit e[16];
|
||||||
sp_digit m[16];
|
sp_digit m[16];
|
||||||
sp_digit* r = b;
|
sp_digit* r = b;
|
||||||
|
#endif
|
||||||
#ifdef HAVE_INTEL_AVX2
|
#ifdef HAVE_INTEL_AVX2
|
||||||
word32 cpuid_flags = cpuid_get_flags();
|
word32 cpuid_flags = cpuid_get_flags();
|
||||||
#endif
|
#endif
|
||||||
@ -2354,6 +2423,19 @@ int sp_ModExp_1024(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (err == MP_OKAY) {
|
||||||
|
if (((b = (sp_digit *)XMALLOC(32 * sizeof(*b), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((e = (sp_digit *)XMALLOC(16 * sizeof(*e), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((m = (sp_digit *)XMALLOC(16 * sizeof(*m), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL))
|
||||||
|
{
|
||||||
|
err = MEMORY_E;
|
||||||
|
} else {
|
||||||
|
r = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_2048_from_mp(b, 16, base);
|
sp_2048_from_mp(b, 16, base);
|
||||||
sp_2048_from_mp(e, 16, exp);
|
sp_2048_from_mp(e, 16, exp);
|
||||||
@ -2372,7 +2454,18 @@ int sp_ModExp_1024(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = sp_2048_to_mp(r, res);
|
err = sp_2048_to_mp(r, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (b != NULL)
|
||||||
|
XFREE(b, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (e != NULL) {
|
||||||
|
XMEMSET(e, 0, 16);
|
||||||
|
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
}
|
||||||
|
if (m != NULL)
|
||||||
|
XFREE(m, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
#else
|
||||||
XMEMSET(e, 0, sizeof(e));
|
XMEMSET(e, 0, sizeof(e));
|
||||||
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -4287,10 +4380,17 @@ int sp_ModExp_3072(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
mp_int* res)
|
mp_int* res)
|
||||||
{
|
{
|
||||||
int err = MP_OKAY;
|
int err = MP_OKAY;
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
sp_digit *b = NULL;
|
||||||
|
sp_digit *e = NULL;
|
||||||
|
sp_digit *m = NULL;
|
||||||
|
sp_digit* r;
|
||||||
|
#else
|
||||||
sp_digit b[96];
|
sp_digit b[96];
|
||||||
sp_digit e[48];
|
sp_digit e[48];
|
||||||
sp_digit m[48];
|
sp_digit m[48];
|
||||||
sp_digit* r = b;
|
sp_digit* r = b;
|
||||||
|
#endif
|
||||||
#ifdef HAVE_INTEL_AVX2
|
#ifdef HAVE_INTEL_AVX2
|
||||||
word32 cpuid_flags = cpuid_get_flags();
|
word32 cpuid_flags = cpuid_get_flags();
|
||||||
#endif
|
#endif
|
||||||
@ -4304,6 +4404,19 @@ int sp_ModExp_3072(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (err == MP_OKAY) {
|
||||||
|
if (((b = (sp_digit *)XMALLOC(96 * sizeof(*b), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((e = (sp_digit *)XMALLOC(48 * sizeof(*e), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((m = (sp_digit *)XMALLOC(48 * sizeof(*m), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL))
|
||||||
|
{
|
||||||
|
err = MEMORY_E;
|
||||||
|
} else {
|
||||||
|
r = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_3072_from_mp(b, 48, base);
|
sp_3072_from_mp(b, 48, base);
|
||||||
sp_3072_from_mp(e, 48, exp);
|
sp_3072_from_mp(e, 48, exp);
|
||||||
@ -4321,7 +4434,18 @@ int sp_ModExp_3072(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = sp_3072_to_mp(r, res);
|
err = sp_3072_to_mp(r, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (b != NULL)
|
||||||
|
XFREE(b, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (e != NULL) {
|
||||||
|
XMEMSET(e, 0, 48);
|
||||||
|
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
}
|
||||||
|
if (m != NULL)
|
||||||
|
XFREE(m, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
#else
|
||||||
XMEMSET(e, 0, sizeof(e));
|
XMEMSET(e, 0, sizeof(e));
|
||||||
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -4597,10 +4721,17 @@ int sp_DhExp_3072(const mp_int* base, const byte* exp, word32 expLen,
|
|||||||
const mp_int* mod, byte* out, word32* outLen)
|
const mp_int* mod, byte* out, word32* outLen)
|
||||||
{
|
{
|
||||||
int err = MP_OKAY;
|
int err = MP_OKAY;
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
sp_digit *b = NULL;
|
||||||
|
sp_digit *e = NULL;
|
||||||
|
sp_digit *m = NULL;
|
||||||
|
sp_digit* r;
|
||||||
|
#else
|
||||||
sp_digit b[96];
|
sp_digit b[96];
|
||||||
sp_digit e[48];
|
sp_digit e[48];
|
||||||
sp_digit m[48];
|
sp_digit m[48];
|
||||||
sp_digit* r = b;
|
sp_digit* r = b;
|
||||||
|
#endif
|
||||||
word32 i;
|
word32 i;
|
||||||
#ifdef HAVE_INTEL_AVX2
|
#ifdef HAVE_INTEL_AVX2
|
||||||
word32 cpuid_flags = cpuid_get_flags();
|
word32 cpuid_flags = cpuid_get_flags();
|
||||||
@ -4614,6 +4745,19 @@ int sp_DhExp_3072(const mp_int* base, const byte* exp, word32 expLen,
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (err == MP_OKAY) {
|
||||||
|
if (((b = (sp_digit *)XMALLOC(96 * sizeof(*b), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((e = (sp_digit *)XMALLOC(48 * sizeof(*e), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((m = (sp_digit *)XMALLOC(48 * sizeof(*m), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL))
|
||||||
|
{
|
||||||
|
err = MEMORY_E;
|
||||||
|
} else {
|
||||||
|
r = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_3072_from_mp(b, 48, base);
|
sp_3072_from_mp(b, 48, base);
|
||||||
sp_3072_from_bin(e, 48, exp, expLen);
|
sp_3072_from_bin(e, 48, exp, expLen);
|
||||||
@ -4650,7 +4794,18 @@ int sp_DhExp_3072(const mp_int* base, const byte* exp, word32 expLen,
|
|||||||
XMEMMOVE(out, out + i, *outLen);
|
XMEMMOVE(out, out + i, *outLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (b != NULL)
|
||||||
|
XFREE(b, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (e != NULL) {
|
||||||
|
XMEMSET(e, 0, 48);
|
||||||
|
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
}
|
||||||
|
if (m != NULL)
|
||||||
|
XFREE(m, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
#else
|
||||||
XMEMSET(e, 0, sizeof(e));
|
XMEMSET(e, 0, sizeof(e));
|
||||||
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -4668,10 +4823,17 @@ int sp_ModExp_1536(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
mp_int* res)
|
mp_int* res)
|
||||||
{
|
{
|
||||||
int err = MP_OKAY;
|
int err = MP_OKAY;
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
sp_digit *b = NULL;
|
||||||
|
sp_digit *e = NULL;
|
||||||
|
sp_digit *m = NULL;
|
||||||
|
sp_digit* r;
|
||||||
|
#else
|
||||||
sp_digit b[48];
|
sp_digit b[48];
|
||||||
sp_digit e[24];
|
sp_digit e[24];
|
||||||
sp_digit m[24];
|
sp_digit m[24];
|
||||||
sp_digit* r = b;
|
sp_digit* r = b;
|
||||||
|
#endif
|
||||||
#ifdef HAVE_INTEL_AVX2
|
#ifdef HAVE_INTEL_AVX2
|
||||||
word32 cpuid_flags = cpuid_get_flags();
|
word32 cpuid_flags = cpuid_get_flags();
|
||||||
#endif
|
#endif
|
||||||
@ -4685,6 +4847,19 @@ int sp_ModExp_1536(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = MP_VAL;
|
err = MP_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (err == MP_OKAY) {
|
||||||
|
if (((b = (sp_digit *)XMALLOC(48 * sizeof(*b), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((e = (sp_digit *)XMALLOC(24 * sizeof(*e), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL) ||
|
||||||
|
((m = (sp_digit *)XMALLOC(24 * sizeof(*m), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL))
|
||||||
|
{
|
||||||
|
err = MEMORY_E;
|
||||||
|
} else {
|
||||||
|
r = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (err == MP_OKAY) {
|
if (err == MP_OKAY) {
|
||||||
sp_3072_from_mp(b, 24, base);
|
sp_3072_from_mp(b, 24, base);
|
||||||
sp_3072_from_mp(e, 24, exp);
|
sp_3072_from_mp(e, 24, exp);
|
||||||
@ -4703,7 +4878,18 @@ int sp_ModExp_1536(const mp_int* base, const mp_int* exp, const mp_int* mod,
|
|||||||
err = sp_3072_to_mp(r, res);
|
err = sp_3072_to_mp(r, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(WOLFSSL_SMALL_STACK) && !defined(WOLFSSL_SP_NO_MALLOC)
|
||||||
|
if (b != NULL)
|
||||||
|
XFREE(b, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (e != NULL) {
|
||||||
|
XMEMSET(e, 0, 24);
|
||||||
|
XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
}
|
||||||
|
if (m != NULL)
|
||||||
|
XFREE(m, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
#else
|
||||||
XMEMSET(e, 0, sizeof(e));
|
XMEMSET(e, 0, sizeof(e));
|
||||||
|
#endif
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user