Merge pull request #8482 from douzzer/20250220-misc-UnalignedWord64

20250220-misc-UnalignedWord64
This commit is contained in:
JacobBarthelmeh
2025-02-20 17:26:44 -07:00
committed by GitHub
3 changed files with 25 additions and 49 deletions
-32
View File
@@ -254,36 +254,6 @@ WC_MISC_STATIC WC_INLINE void writeUnalignedWords32(byte *out, const word32 *in,
#if defined(WORD64_AVAILABLE) && !defined(WOLFSSL_NO_WORD64_OPS)
#ifdef WOLFSSL_X86_64_BUILD
WC_MISC_STATIC WC_INLINE word64 readUnalignedWord64(const byte *in)
{
return ((word64*)in)[0];
}
WC_MISC_STATIC WC_INLINE word64 writeUnalignedWord64(void *out, word64 in)
{
return ((word64*)out)[0] = in;
}
WC_MISC_STATIC WC_INLINE void readUnalignedWords64(word64 *out, const byte *in,
size_t count)
{
const word64 *in_word64 = (const word64 *)in;
while (count-- > 0)
*out++ = *in_word64++;
}
WC_MISC_STATIC WC_INLINE void writeUnalignedWords64(byte *out, const word64 *in,
size_t count)
{
word64 *out_word64 = (word64 *)out;
while (count-- > 0)
*out_word64++ = *in++;
}
#else
WC_MISC_STATIC WC_INLINE word64 readUnalignedWord64(const byte *in)
{
if (((wc_ptr_t)in & (wc_ptr_t)(sizeof(word64) - 1U)) == (wc_ptr_t)0)
@@ -331,8 +301,6 @@ WC_MISC_STATIC WC_INLINE void writeUnalignedWords64(byte *out, const word64 *in,
}
}
#endif
WC_MISC_STATIC WC_INLINE word64 rotlFixed64(word64 x, word64 y)
{
return (x << y) | (x >> (sizeof(y) * 8 - y));
+17 -17
View File
@@ -17157,18 +17157,18 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t camellia_test(void)
wc_Camellia cam;
WOLFSSL_SMALL_STACK_STATIC const test_vector_t testVectors[] =
{
{CAM_ECB_ENC, pte, ive, c1, k1, sizeof(k1), -114},
{CAM_ECB_ENC, pte, ive, c2, k2, sizeof(k2), -115},
{CAM_ECB_ENC, pte, ive, c3, k3, sizeof(k3), -116},
{CAM_ECB_DEC, pte, ive, c1, k1, sizeof(k1), -117},
{CAM_ECB_DEC, pte, ive, c2, k2, sizeof(k2), -118},
{CAM_ECB_DEC, pte, ive, c3, k3, sizeof(k3), -119},
{CAM_CBC_ENC, ptc, ivc, c4, k4, sizeof(k4), -120},
{CAM_CBC_ENC, ptc, ivc, c5, k5, sizeof(k5), -121},
{CAM_CBC_ENC, ptc, ivc, c6, k6, sizeof(k6), -122},
{CAM_CBC_DEC, ptc, ivc, c4, k4, sizeof(k4), -123},
{CAM_CBC_DEC, ptc, ivc, c5, k5, sizeof(k5), -124},
{CAM_CBC_DEC, ptc, ivc, c6, k6, sizeof(k6), -125}
{CAM_ECB_ENC, pte, ive, c1, k1, sizeof(k1), 114},
{CAM_ECB_ENC, pte, ive, c2, k2, sizeof(k2), 115},
{CAM_ECB_ENC, pte, ive, c3, k3, sizeof(k3), 116},
{CAM_ECB_DEC, pte, ive, c1, k1, sizeof(k1), 117},
{CAM_ECB_DEC, pte, ive, c2, k2, sizeof(k2), 118},
{CAM_ECB_DEC, pte, ive, c3, k3, sizeof(k3), 119},
{CAM_CBC_ENC, ptc, ivc, c4, k4, sizeof(k4), 120},
{CAM_CBC_ENC, ptc, ivc, c5, k5, sizeof(k5), 121},
{CAM_CBC_ENC, ptc, ivc, c6, k6, sizeof(k6), 122},
{CAM_CBC_DEC, ptc, ivc, c4, k4, sizeof(k4), 123},
{CAM_CBC_DEC, ptc, ivc, c5, k5, sizeof(k5), 124},
{CAM_CBC_DEC, ptc, ivc, c6, k6, sizeof(k6), 125}
};
int i, testsSz;
int ret;
@@ -17178,7 +17178,7 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t camellia_test(void)
for (i = 0; i < testsSz; i++) {
if (wc_CamelliaSetKey(&cam, testVectors[i].key, testVectors[i].keySz,
testVectors[i].iv) != 0)
return testVectors[i].errorCode;
return WC_TEST_RET_ENC_I(testVectors[i].errorCode);
switch (testVectors[i].type) {
case CAM_ECB_ENC:
@@ -17186,28 +17186,28 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t camellia_test(void)
testVectors[i].plaintext);
if (ret != 0 || XMEMCMP(out, testVectors[i].ciphertext,
WC_CAMELLIA_BLOCK_SIZE))
return testVectors[i].errorCode;
return WC_TEST_RET_ENC_I(testVectors[i].errorCode);
break;
case CAM_ECB_DEC:
ret = wc_CamelliaDecryptDirect(&cam, out,
testVectors[i].ciphertext);
if (ret != 0 || XMEMCMP(out, testVectors[i].plaintext,
WC_CAMELLIA_BLOCK_SIZE))
return testVectors[i].errorCode;
return WC_TEST_RET_ENC_I(testVectors[i].errorCode);
break;
case CAM_CBC_ENC:
ret = wc_CamelliaCbcEncrypt(&cam, out, testVectors[i].plaintext,
WC_CAMELLIA_BLOCK_SIZE);
if (ret != 0 || XMEMCMP(out, testVectors[i].ciphertext,
WC_CAMELLIA_BLOCK_SIZE))
return testVectors[i].errorCode;
return WC_TEST_RET_ENC_I(testVectors[i].errorCode);
break;
case CAM_CBC_DEC:
ret = wc_CamelliaCbcDecrypt(&cam, out,
testVectors[i].ciphertext, WC_CAMELLIA_BLOCK_SIZE);
if (ret != 0 || XMEMCMP(out, testVectors[i].plaintext,
WC_CAMELLIA_BLOCK_SIZE))
return testVectors[i].errorCode;
return WC_TEST_RET_ENC_I(testVectors[i].errorCode);
break;
default:
break;