Skip to content

Commit cb11e2f

Browse files
committed
Regression testing fixes: ARM/PP64 asm fixes, plus more
ARM64/ARM32/Thumb2: - Inline-asm use param names not registers. - Return value through first parameter and not first register - 32-bit values zero extended when loaded off stack aes.c: Aligned-accedd GHASH for 32-bit CPUs. test.c: #ifdef protection update. sha3.h: make digest and block size constants defines for use in hash.h sha512.h: internal Transform_Sha512* functions declared when only SHA-384. sp_int.h: include WOLFSSL_SP_MATH_ALL in SP_INT_BITS selection memory.c: fix printf format to be compatible with more platforms
1 parent ad1cd47 commit cb11e2f

12 files changed

Lines changed: 1035 additions & 1048 deletions

File tree

wolfcrypt/src/aes.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8441,6 +8441,7 @@ static void GMULT(byte *x, byte m[256][WC_AES_BLOCK_SIZE])
84418441

84428442
XMEMCPY(x, Z, WC_AES_BLOCK_SIZE);
84438443
#elif defined(WC_32BIT_CPU)
8444+
#ifndef WOLFSSL_USE_ALIGN
84448445
byte Z[WC_AES_BLOCK_SIZE + WC_AES_BLOCK_SIZE];
84458446
byte a;
84468447
word32* pZ;
@@ -8472,6 +8473,24 @@ static void GMULT(byte *x, byte m[256][WC_AES_BLOCK_SIZE])
84728473
pm = (word32*)(m[x[0]]);
84738474
px[0] = pZ[0] ^ pm[0]; px[1] = pZ[1] ^ pm[1];
84748475
px[2] = pZ[2] ^ pm[2]; px[3] = pZ[3] ^ pm[3];
8476+
#else
8477+
byte Z[WC_AES_BLOCK_SIZE + WC_AES_BLOCK_SIZE];
8478+
byte a;
8479+
int i;
8480+
8481+
XMEMCPY(Z + 16, m[x[15]], WC_AES_BLOCK_SIZE);
8482+
a = Z[16 + 15];
8483+
Z[15] = R[a][0];
8484+
Z[16] ^= R[a][1];
8485+
for (i = 14; i > 0; i--) {
8486+
xorbuf(Z + i + 1, m[x[i]], WC_AES_BLOCK_SIZE);
8487+
a = Z[16 + i];
8488+
Z[i] = R[a][0];
8489+
Z[i+1] ^= R[a][1];
8490+
}
8491+
xorbuf(Z + 1, m[x[0]], WC_AES_BLOCK_SIZE);
8492+
XMEMCPY(x, Z + 1, WC_AES_BLOCK_SIZE);
8493+
#endif
84758494
#else
84768495
byte Z[WC_AES_BLOCK_SIZE + WC_AES_BLOCK_SIZE];
84778496
byte a;

wolfcrypt/src/memory.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,8 @@ void wc_MemZero_Free(void)
239239
int i;
240240
fprintf(stderr, "[MEM_ZERO] Unseen: %d\n", nextIdx);
241241
for (i = 0; i < nextIdx; i++) {
242-
fprintf(stderr, " %s - %p:%ld\n", memZero[i].name, memZero[i].addr,
243-
memZero[i].len);
242+
fprintf(stderr, " %s - %p:%lu\n", memZero[i].name, memZero[i].addr,
243+
(unsigned long)memZero[i].len);
244244
}
245245
}
246246
/* Uninitialized value in next index. */
@@ -301,9 +301,10 @@ void wc_MemZero_Check(void* addr, size_t len)
301301
for (j = 0; j < memZero[i].len; j++) {
302302
if (((unsigned char*)memZero[i].addr)[j] != 0) {
303303
/* Byte not zero - abort! */
304-
fprintf(stderr, "\n[MEM_ZERO] %s:%p + %ld is not zero\n",
305-
memZero[i].name, memZero[i].addr, j);
306-
fprintf(stderr, "[MEM_ZERO] Checking %p:%ld\n", addr, len);
304+
fprintf(stderr, "\n[MEM_ZERO] %s:%p + %lu is not zero\n",
305+
memZero[i].name, memZero[i].addr, (unsigned long)j);
306+
fprintf(stderr, "[MEM_ZERO] Checking %p:%lu\n", addr,
307+
(unsigned long)len);
307308
#ifndef TEST_ALWAYS_RUN_TO_END
308309
abort();
309310
#endif

wolfcrypt/src/port/arm/armv8-32-curve25519_c.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@
5959
#if !defined(CURVE25519_SMALL) || !defined(ED25519_SMALL)
6060

6161
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
62-
WC_OMIT_FRAME_POINTER void fe_init()
62+
WC_OMIT_FRAME_POINTER void fe_init(void)
6363
#else
64-
WC_OMIT_FRAME_POINTER void fe_init()
64+
WC_OMIT_FRAME_POINTER void fe_init(void)
6565
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
6666
{
6767
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
@@ -81,9 +81,9 @@ WC_OMIT_FRAME_POINTER void fe_init()
8181

8282
void fe_add_sub_op(void);
8383
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
84-
WC_OMIT_FRAME_POINTER void fe_add_sub_op()
84+
WC_OMIT_FRAME_POINTER void fe_add_sub_op(void)
8585
#else
86-
WC_OMIT_FRAME_POINTER void fe_add_sub_op()
86+
WC_OMIT_FRAME_POINTER void fe_add_sub_op(void)
8787
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
8888
{
8989
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
@@ -300,9 +300,9 @@ WC_OMIT_FRAME_POINTER void fe_add_sub_op()
300300

301301
void fe_sub_op(void);
302302
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
303-
WC_OMIT_FRAME_POINTER void fe_sub_op()
303+
WC_OMIT_FRAME_POINTER void fe_sub_op(void)
304304
#else
305-
WC_OMIT_FRAME_POINTER void fe_sub_op()
305+
WC_OMIT_FRAME_POINTER void fe_sub_op(void)
306306
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
307307
{
308308
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
@@ -379,9 +379,9 @@ WC_OMIT_FRAME_POINTER void fe_sub(fe r, const fe a, const fe b)
379379

380380
void fe_add_op(void);
381381
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
382-
WC_OMIT_FRAME_POINTER void fe_add_op()
382+
WC_OMIT_FRAME_POINTER void fe_add_op(void)
383383
#else
384-
WC_OMIT_FRAME_POINTER void fe_add_op()
384+
WC_OMIT_FRAME_POINTER void fe_add_op(void)
385385
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
386386
{
387387
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
@@ -2510,9 +2510,9 @@ WC_OMIT_FRAME_POINTER void fe_cmov_table(fe* r, const fe* base, signed char b)
25102510
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 6)
25112511
void fe_mul_op(void);
25122512
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
2513-
WC_OMIT_FRAME_POINTER void fe_mul_op()
2513+
WC_OMIT_FRAME_POINTER void fe_mul_op(void)
25142514
#else
2515-
WC_OMIT_FRAME_POINTER void fe_mul_op()
2515+
WC_OMIT_FRAME_POINTER void fe_mul_op(void)
25162516
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
25172517
{
25182518
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
@@ -2905,9 +2905,9 @@ WC_OMIT_FRAME_POINTER void fe_mul_op()
29052905
#else
29062906
void fe_mul_op(void);
29072907
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
2908-
WC_OMIT_FRAME_POINTER void fe_mul_op()
2908+
WC_OMIT_FRAME_POINTER void fe_mul_op(void)
29092909
#else
2910-
WC_OMIT_FRAME_POINTER void fe_mul_op()
2910+
WC_OMIT_FRAME_POINTER void fe_mul_op(void)
29112911
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
29122912
{
29132913
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
@@ -3086,9 +3086,9 @@ WC_OMIT_FRAME_POINTER void fe_mul(fe r, const fe a, const fe b)
30863086
#if defined(WOLFSSL_ARM_ARCH) && (WOLFSSL_ARM_ARCH < 6)
30873087
void fe_sq_op(void);
30883088
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
3089-
WC_OMIT_FRAME_POINTER void fe_sq_op()
3089+
WC_OMIT_FRAME_POINTER void fe_sq_op(void)
30903090
#else
3091-
WC_OMIT_FRAME_POINTER void fe_sq_op()
3091+
WC_OMIT_FRAME_POINTER void fe_sq_op(void)
30923092
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
30933093
{
30943094
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
@@ -3374,9 +3374,9 @@ WC_OMIT_FRAME_POINTER void fe_sq_op()
33743374
#else
33753375
void fe_sq_op(void);
33763376
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG
3377-
WC_OMIT_FRAME_POINTER void fe_sq_op()
3377+
WC_OMIT_FRAME_POINTER void fe_sq_op(void)
33783378
#else
3379-
WC_OMIT_FRAME_POINTER void fe_sq_op()
3379+
WC_OMIT_FRAME_POINTER void fe_sq_op(void)
33803380
#endif /* !WOLFSSL_NO_VAR_ASSIGN_REG */
33813381
{
33823382
#ifndef WOLFSSL_NO_VAR_ASSIGN_REG

0 commit comments

Comments
 (0)