crypto: nxstyle fixes

nxstyle fixes to reduce the CI warnings

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
This commit is contained in:
Alin Jerpelea 2020-04-22 10:56:23 +02:00 committed by patacongo
parent e6b47ea948
commit 048d4954a0
4 changed files with 299 additions and 115 deletions

View file

@ -53,45 +53,80 @@
static const uint8_t g_sbox[256] =
{
/* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, /* 0 */
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, /* 1 */
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, /* 2 */
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, /* 3 */
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, /* 4 */
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, /* 5 */
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, /* 6 */
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, /* 7 */
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, /* 8 */
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, /* 9 */
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, /* A */
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, /* B */
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, /* C */
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, /* D */
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, /* E */
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 /* F */
/* 0 1 2 3 4 5 6 7 8 9
* A B C D E F
*/
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01,
0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, /* 0 */
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4,
0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, /* 1 */
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5,
0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, /* 2 */
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12,
0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, /* 3 */
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b,
0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, /* 4 */
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb,
0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, /* 5 */
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9,
0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, /* 6 */
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6,
0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, /* 7 */
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7,
0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, /* 8 */
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee,
0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, /* 9 */
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3,
0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, /* A */
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56,
0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, /* B */
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd,
0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, /* C */
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35,
0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, /* D */
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e,
0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, /* E */
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99,
0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 /* F */
};
/* Inverse sbox */
static const uint8_t g_rsbox[256] =
{
0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,
0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,
0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,
0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,
0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,
0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,
0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,
0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,
0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,
0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40,
0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e,
0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,
0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c,
0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b,
0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,
0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4,
0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,
0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15,
0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4,
0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,
0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf,
0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,
0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2,
0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9,
0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,
0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7,
0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,
0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb,
0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12,
0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,
0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5,
0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,
0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb,
0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69,
0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
};
/* Round constant */
@ -134,27 +169,58 @@ static void expand_key(FAR uint8_t *expanded_key, FAR const uint8_t *key)
for (ii = 1; ii < 11; ii++)
{
buf1 = expanded_key[ii*16 - 4];
expanded_key[ii * 16 + 0] = g_sbox[expanded_key[ii *16 - 3]] ^ expanded_key[(ii - 1) * 16 + 0] ^ g_rcon[ii];
expanded_key[ii * 16 + 1] = g_sbox[expanded_key[ii *16 - 2]] ^ expanded_key[(ii - 1) * 16 + 1];
expanded_key[ii * 16 + 2] = g_sbox[expanded_key[ii *16 - 1]] ^ expanded_key[(ii - 1) * 16 + 2];
expanded_key[ii * 16 + 3] = g_sbox[buf1] ^ expanded_key[(ii - 1) * 16 + 3];
expanded_key[ii * 16 + 4] = expanded_key[(ii - 1) * 16 + 4] ^ expanded_key[ii * 16 + 0];
expanded_key[ii * 16 + 5] = expanded_key[(ii - 1) * 16 + 5] ^ expanded_key[ii * 16 + 1];
expanded_key[ii * 16 + 6] = expanded_key[(ii - 1) * 16 + 6] ^ expanded_key[ii * 16 + 2];
expanded_key[ii * 16 + 7] = expanded_key[(ii - 1) * 16 + 7] ^ expanded_key[ii * 16 + 3];
expanded_key[ii * 16 + 8] = expanded_key[(ii - 1) * 16 + 8] ^ expanded_key[ii * 16 + 4];
expanded_key[ii * 16 + 9] = expanded_key[(ii - 1) * 16 + 9] ^ expanded_key[ii * 16 + 5];
expanded_key[ii * 16 +10] = expanded_key[(ii - 1) * 16 +10] ^ expanded_key[ii * 16 + 6];
expanded_key[ii * 16 +11] = expanded_key[(ii - 1) * 16 +11] ^ expanded_key[ii * 16 + 7];
expanded_key[ii * 16 +12] = expanded_key[(ii - 1) * 16 +12] ^ expanded_key[ii * 16 + 8];
expanded_key[ii * 16 +13] = expanded_key[(ii - 1) * 16 +13] ^ expanded_key[ii * 16 + 9];
expanded_key[ii * 16 +14] = expanded_key[(ii - 1) * 16 +14] ^ expanded_key[ii * 16 +10];
expanded_key[ii * 16 +15] = expanded_key[(ii - 1) * 16 +15] ^ expanded_key[ii * 16 +11];
buf1 = expanded_key[ii * 16 - 4];
expanded_key[ii * 16 + 0] = g_sbox[expanded_key[ii *16 - 3]] ^
expanded_key[(ii - 1) * 16 + 0] ^ g_rcon[ii];
expanded_key[ii * 16 + 1] = g_sbox[expanded_key[ii *16 - 2]] ^
expanded_key[(ii - 1) * 16 + 1];
expanded_key[ii * 16 + 2] = g_sbox[expanded_key[ii *16 - 1]] ^
expanded_key[(ii - 1) * 16 + 2];
expanded_key[ii * 16 + 3] = g_sbox[buf1] ^
expanded_key[(ii - 1) * 16 + 3];
expanded_key[ii * 16 + 4] = expanded_key[(ii - 1) * 16 + 4] ^
expanded_key[ii * 16 + 0];
expanded_key[ii * 16 + 5] = expanded_key[(ii - 1) * 16 + 5] ^
expanded_key[ii * 16 + 1];
expanded_key[ii * 16 + 6] = expanded_key[(ii - 1) * 16 + 6] ^
expanded_key[ii * 16 + 2];
expanded_key[ii * 16 + 7] = expanded_key[(ii - 1) * 16 + 7] ^
expanded_key[ii * 16 + 3];
expanded_key[ii * 16 + 8] = expanded_key[(ii - 1) * 16 + 8] ^
expanded_key[ii * 16 + 4];
expanded_key[ii * 16 + 9] = expanded_key[(ii - 1) * 16 + 9] ^
expanded_key[ii * 16 + 5];
expanded_key[ii * 16 +10] = expanded_key[(ii - 1) * 16 +10] ^
expanded_key[ii * 16 + 6];
expanded_key[ii * 16 +11] = expanded_key[(ii - 1) * 16 +11] ^
expanded_key[ii * 16 + 7];
expanded_key[ii * 16 +12] = expanded_key[(ii - 1) * 16 +12] ^
expanded_key[ii * 16 + 8];
expanded_key[ii * 16 +13] = expanded_key[(ii - 1) * 16 +13] ^
expanded_key[ii * 16 + 9];
expanded_key[ii * 16 +14] = expanded_key[(ii - 1) * 16 +14] ^
expanded_key[ii * 16 +10];
expanded_key[ii * 16 +15] = expanded_key[(ii - 1) * 16 +15] ^
expanded_key[ii * 16 +11];
}
}
/******************************************************************************
/****************************************************************************
* Name: galois_mul2
*
* Description:
@ -166,7 +232,7 @@ static void expand_key(FAR uint8_t *expanded_key, FAR const uint8_t *key)
* Returned Value:
* Multiplied argument
*
******************************************************************************/
****************************************************************************/
static uint8_t galois_mul2(uint8_t value)
{
@ -181,7 +247,7 @@ static uint8_t galois_mul2(uint8_t value)
}
}
/******************************************************************************
/****************************************************************************
* Name: aes_encr
*
* Description:
@ -194,9 +260,10 @@ static uint8_t galois_mul2(uint8_t value)
* - shiftrows
* - mixcolums
*
* is executed 9 times, after this addroundkey to finish the 9th round, after
* that the 10th round without mixcolums no further subfunctions to save
* cycles for function calls no structuring with "for (....)" to save cycles.
* is executed 9 times, after this addroundkey to finish the 9th round,
* after that the 10th round without mixcolums no further subfunctions
* to save cycles for function calls no structuring with "for (....)"
* to save cycles.
*
* Input Parameters:
* expanded_key expanded AES128 key
@ -205,7 +272,7 @@ static uint8_t galois_mul2(uint8_t value)
* Returned Value:
* None
*
******************************************************************************/
****************************************************************************/
static void aes_encr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
{
@ -217,6 +284,7 @@ static void aes_encr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
for (round = 0; round < 9; round ++)
{
/* addroundkey, sbox and shiftrows */
/* Row 0 */
state[0] = g_sbox[(state[0] ^ expanded_key[(round * 16)])];
@ -250,41 +318,90 @@ static void aes_encr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
state[3] = g_sbox[buf1];
/* mixcolums */
/* Col1 */
buf1 = state[0] ^ state[1] ^ state[2] ^ state[3];
buf2 = state[0];
buf3 = state[0] ^ state[1]; buf3 = galois_mul2(buf3); state[0] = state[0] ^ buf3 ^ buf1;
buf3 = state[1] ^ state[2]; buf3 = galois_mul2(buf3); state[1] = state[1] ^ buf3 ^ buf1;
buf3 = state[2] ^ state[3]; buf3 = galois_mul2(buf3); state[2] = state[2] ^ buf3 ^ buf1;
buf3 = state[3] ^ buf2; buf3 = galois_mul2(buf3); state[3] = state[3] ^ buf3 ^ buf1;
buf3 = state[0] ^ state[1];
buf3 = galois_mul2(buf3);
state[0] = state[0] ^ buf3 ^ buf1;
buf3 = state[1] ^ state[2];
buf3 = galois_mul2(buf3);
state[1] = state[1] ^ buf3 ^ buf1;
buf3 = state[2] ^ state[3];
buf3 = galois_mul2(buf3);
state[2] = state[2] ^ buf3 ^ buf1;
buf3 = state[3] ^ buf2;
buf3 = galois_mul2(buf3);
state[3] = state[3] ^ buf3 ^ buf1;
/* Col2 */
buf1 = state[4] ^ state[5] ^ state[6] ^ state[7];
buf2 = state[4];
buf3 = state[4] ^ state[5]; buf3 = galois_mul2(buf3); state[4] = state[4] ^ buf3 ^ buf1;
buf3 = state[5] ^ state[6]; buf3 = galois_mul2(buf3); state[5] = state[5] ^ buf3 ^ buf1;
buf3 = state[6] ^ state[7]; buf3 = galois_mul2(buf3); state[6] = state[6] ^ buf3 ^ buf1;
buf3 = state[7] ^ buf2; buf3 = galois_mul2(buf3); state[7] = state[7] ^ buf3 ^ buf1;
buf3 = state[4] ^ state[5];
buf3 = galois_mul2(buf3);
state[4] = state[4] ^ buf3 ^ buf1;
buf3 = state[5] ^ state[6];
buf3 = galois_mul2(buf3);
state[5] = state[5] ^ buf3 ^ buf1;
buf3 = state[6] ^ state[7];
buf3 = galois_mul2(buf3);
state[6] = state[6] ^ buf3 ^ buf1;
buf3 = state[7] ^ buf2;
buf3 = galois_mul2(buf3);
state[7] = state[7] ^ buf3 ^ buf1;
/* Col3 */
buf1 = state[8] ^ state[9] ^ state[10] ^ state[11];
buf2 = state[8];
buf3 = state[8] ^ state[9]; buf3 = galois_mul2(buf3); state[8] = state[8] ^ buf3 ^ buf1;
buf3 = state[9] ^ state[10]; buf3 = galois_mul2(buf3); state[9] = state[9] ^ buf3 ^ buf1;
buf3 = state[10] ^ state[11]; buf3 = galois_mul2(buf3); state[10] = state[10] ^ buf3 ^ buf1;
buf3 = state[11] ^ buf2; buf3 = galois_mul2(buf3); state[11] = state[11] ^ buf3 ^ buf1;
buf3 = state[8] ^ state[9];
buf3 = galois_mul2(buf3);
state[8] = state[8] ^ buf3 ^ buf1;
buf3 = state[9] ^ state[10];
buf3 = galois_mul2(buf3);
state[9] = state[9] ^ buf3 ^ buf1;
buf3 = state[10] ^ state[11];
buf3 = galois_mul2(buf3);
state[10] = state[10] ^ buf3 ^ buf1;
buf3 = state[11] ^ buf2;
buf3 = galois_mul2(buf3);
state[11] = state[11] ^ buf3 ^ buf1;
/* Col4 */
buf1 = state[12] ^ state[13] ^ state[14] ^ state[15];
buf2 = state[12];
buf3 = state[12] ^ state[13]; buf3 = galois_mul2(buf3); state[12] = state[12] ^ buf3 ^ buf1;
buf3 = state[13] ^ state[14]; buf3 = galois_mul2(buf3); state[13] = state[13] ^ buf3 ^ buf1;
buf3 = state[14] ^ state[15]; buf3 = galois_mul2(buf3); state[14] = state[14] ^ buf3 ^ buf1;
buf3 = state[15] ^ buf2; buf3 = galois_mul2(buf3); state[15] = state[15] ^ buf3 ^ buf1;
buf3 = state[12] ^ state[13];
buf3 = galois_mul2(buf3);
state[12] = state[12] ^ buf3 ^ buf1;
buf3 = state[13] ^ state[14];
buf3 = galois_mul2(buf3);
state[13] = state[13] ^ buf3 ^ buf1;
buf3 = state[14] ^ state[15];
buf3 = galois_mul2(buf3);
state[14] = state[14] ^ buf3 ^ buf1;
buf3 = state[15] ^ buf2;
buf3 = galois_mul2(buf3);
state[15] = state[15] ^ buf3 ^ buf1;
}
/* 10th round without mixcols */
@ -339,7 +456,7 @@ static void aes_encr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
state[15] ^= expanded_key[175];
}
/******************************************************************************
/****************************************************************************
* Name: aes_decr
*
* Description:
@ -362,7 +479,7 @@ static void aes_encr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
* Returned Value:
* None
*
******************************************************************************/
****************************************************************************/
static void aes_decr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
{
@ -427,6 +544,7 @@ static void aes_decr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
for (round = 8; round >= 0; round--)
{
/* barreto */
/* Col1 */
buf1 = galois_mul2(galois_mul2(state[0] ^ state[2]));
@ -464,43 +582,93 @@ static void aes_decr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
state[15] ^= buf2;
/* mixcolums */
/* Col1 */
buf1 = state[0] ^ state[1] ^ state[2] ^ state[3];
buf2 = state[0];
buf3 = state[0] ^ state[1]; buf3 = galois_mul2(buf3); state[0] = state[0] ^ buf3 ^ buf1;
buf3 = state[1] ^ state[2]; buf3 = galois_mul2(buf3); state[1] = state[1] ^ buf3 ^ buf1;
buf3 = state[2] ^ state[3]; buf3 = galois_mul2(buf3); state[2] = state[2] ^ buf3 ^ buf1;
buf3 = state[3] ^ buf2; buf3 = galois_mul2(buf3); state[3] = state[3] ^ buf3 ^ buf1;
buf3 = state[0] ^ state[1];
buf3 = galois_mul2(buf3);
state[0] = state[0] ^ buf3 ^ buf1;
buf3 = state[1] ^ state[2];
buf3 = galois_mul2(buf3);
state[1] = state[1] ^ buf3 ^ buf1;
buf3 = state[2] ^ state[3];
buf3 = galois_mul2(buf3);
state[2] = state[2] ^ buf3 ^ buf1;
buf3 = state[3] ^ buf2;
buf3 = galois_mul2(buf3);
state[3] = state[3] ^ buf3 ^ buf1;
/* Col2 */
buf1 = state[4] ^ state[5] ^ state[6] ^ state[7];
buf2 = state[4];
buf3 = state[4] ^ state[5]; buf3 = galois_mul2(buf3); state[4] = state[4] ^ buf3 ^ buf1;
buf3 = state[5] ^ state[6]; buf3 = galois_mul2(buf3); state[5] = state[5] ^ buf3 ^ buf1;
buf3 = state[6] ^ state[7]; buf3 = galois_mul2(buf3); state[6] = state[6] ^ buf3 ^ buf1;
buf3 = state[7] ^ buf2; buf3 = galois_mul2(buf3); state[7] = state[7] ^ buf3 ^ buf1;
buf3 = state[4] ^ state[5];
buf3 = galois_mul2(buf3);
state[4] = state[4] ^ buf3 ^ buf1;
buf3 = state[5] ^ state[6];
buf3 = galois_mul2(buf3);
state[5] = state[5] ^ buf3 ^ buf1;
buf3 = state[6] ^ state[7];
buf3 = galois_mul2(buf3);
state[6] = state[6] ^ buf3 ^ buf1;
buf3 = state[7] ^ buf2;
buf3 = galois_mul2(buf3);
state[7] = state[7] ^ buf3 ^ buf1;
/* Col3 */
buf1 = state[8] ^ state[9] ^ state[10] ^ state[11];
buf2 = state[8];
buf3 = state[8] ^ state[9]; buf3 = galois_mul2(buf3); state[8] = state[8] ^ buf3 ^ buf1;
buf3 = state[9] ^ state[10]; buf3 = galois_mul2(buf3); state[9] = state[9] ^ buf3 ^ buf1;
buf3 = state[10] ^ state[11]; buf3 = galois_mul2(buf3); state[10] = state[10] ^ buf3 ^ buf1;
buf3 = state[11] ^ buf2; buf3 = galois_mul2(buf3); state[11] = state[11] ^ buf3 ^ buf1;
buf3 = state[8] ^ state[9];
buf3 = galois_mul2(buf3);
state[8] = state[8] ^ buf3 ^ buf1;
buf3 = state[9] ^ state[10];
buf3 = galois_mul2(buf3);
state[9] = state[9] ^ buf3 ^ buf1;
buf3 = state[10] ^ state[11];
buf3 = galois_mul2(buf3);
state[10] = state[10] ^ buf3 ^ buf1;
buf3 = state[11] ^ buf2;
buf3 = galois_mul2(buf3);
state[11] = state[11] ^ buf3 ^ buf1;
/* Col4 */
buf1 = state[12] ^ state[13] ^ state[14] ^ state[15];
buf2 = state[12];
buf3 = state[12] ^ state[13]; buf3 = galois_mul2(buf3); state[12] = state[12] ^ buf3 ^ buf1;
buf3 = state[13] ^ state[14]; buf3 = galois_mul2(buf3); state[13] = state[13] ^ buf3 ^ buf1;
buf3 = state[14] ^ state[15]; buf3 = galois_mul2(buf3); state[14] = state[14] ^ buf3 ^ buf1;
buf3 = state[15] ^ buf2; buf3 = galois_mul2(buf3); state[15] = state[15] ^ buf3 ^ buf1;
buf3 = state[12] ^ state[13];
buf3 = galois_mul2(buf3);
state[12] = state[12] ^ buf3 ^ buf1;
buf3 = state[13] ^ state[14];
buf3 = galois_mul2(buf3);
state[13] = state[13] ^ buf3 ^ buf1;
buf3 = state[14] ^ state[15];
buf3 = galois_mul2(buf3);
state[14] = state[14] ^ buf3 ^ buf1;
buf3 = state[15] ^ buf2;
buf3 = galois_mul2(buf3);
state[15] = state[15] ^ buf3 ^ buf1;
/* addroundkey, rsbox and shiftrows */
/* Row 0 */
state[0] = g_rsbox[state[0]] ^ expanded_key[(round * 16)];
@ -558,7 +726,9 @@ static void aes_decr(FAR uint8_t *state, FAR const uint8_t *expanded_key)
*
****************************************************************************/
int aes_setupkey(FAR struct aes_state_s *state, FAR const uint8_t *key, int len)
int aes_setupkey(FAR struct aes_state_s *state,
FAR const uint8_t *key,
int len)
{
if (len != 16)
{

View file

@ -62,7 +62,7 @@
* Private Data
****************************************************************************/
static const uint32_t blake2s_IV[8] =
static const uint32_t blake2s_iv[8] =
{
0x6a09e667ul, 0xbb67ae85ul, 0x3c6ef372ul, 0xa54ff53aul, 0x510e527ful,
0x9b05688cul, 0x1f83d9abul, 0x5be0cd19ul
@ -129,7 +129,7 @@ static void blake2_memset(FAR void *dst, int set, size_t len)
uint32_t mset;
set &= 0xff;
mset = (uint32_t)set * 0x01010101UL;
mset = (uint32_t)set * 0x01010101ul;
while (len >= sizeof(uint32_alias_t))
{
@ -182,7 +182,7 @@ static void blake2s_init0(FAR blake2s_state *S)
blake2_memset(S, 0, sizeof(*S) - sizeof(S->buf));
for (i = 0; i < 8; ++i)
S->h[i] = blake2s_IV[i];
S->h[i] = blake2s_iv[i];
}
static void blake2s_compress(FAR blake2s_state *S,
@ -203,14 +203,14 @@ static void blake2s_compress(FAR blake2s_state *S,
v[i] = S->h[i];
}
v[8] = blake2s_IV[0];
v[9] = blake2s_IV[1];
v[10] = blake2s_IV[2];
v[11] = blake2s_IV[3];
v[12] = S->t[0] ^ blake2s_IV[4];
v[13] = S->t[1] ^ blake2s_IV[5];
v[14] = S->f[0] ^ blake2s_IV[6];
v[15] = S->f[1] ^ blake2s_IV[7];
v[8] = blake2s_iv[0];
v[9] = blake2s_iv[1];
v[10] = blake2s_iv[2];
v[11] = blake2s_iv[3];
v[12] = S->t[0] ^ blake2s_iv[4];
v[13] = S->t[1] ^ blake2s_iv[5];
v[14] = S->f[0] ^ blake2s_iv[6];
v[15] = S->f[1] ^ blake2s_iv[7];
#define G(r,i,a,b,c,d) \
do { \
@ -283,7 +283,7 @@ static void selftest_seq(FAR uint8_t *out, size_t len, uint32_t seed)
uint32_t a;
uint32_t b;
a = 0xDEAD4BAD * seed; /* prime */
a = 0xdead4bad * seed; /* prime */
b = 1;
/* fill the buf */
@ -293,7 +293,7 @@ static void selftest_seq(FAR uint8_t *out, size_t len, uint32_t seed)
t = a + b;
a = b;
b = t;
out[i] = (t >> 24) & 0xFF;
out[i] = (t >> 24) & 0xff;
}
}
@ -314,10 +314,12 @@ static int blake2s_selftest(void)
{
16, 20, 28, 32
};
static const size_t b2s_in_len[6] =
{
0, 3, 64, 65, 255, 1024
};
size_t i;
size_t j;
size_t outlen;
@ -364,7 +366,7 @@ static int blake2s_selftest(void)
for (i = 0; i < 32; i++)
{
if (md[i] != blake2s_res[i])
goto out;
goto out;
}
ret = 0;
@ -395,7 +397,7 @@ int blake2s_init_param(FAR blake2s_state *S, FAR const blake2s_param *P)
ret = blake2s_selftest();
DEBUGASSERT(ret == 0);
if (ret)
return -1;
return -1;
}
#endif
@ -442,7 +444,9 @@ int blake2s_init(FAR blake2s_state *S, size_t outlen)
return blake2s_init_param(S, P);
}
int blake2s_init_key(FAR blake2s_state *S, size_t outlen, FAR const void *key,
int blake2s_init_key(FAR blake2s_state *S,
size_t outlen,
FAR const void *key,
size_t keylen)
{
blake2s_param P[1];
@ -548,6 +552,7 @@ int blake2s_final(FAR blake2s_state *S, FAR void *out, size_t outlen)
{
blake2_memset(S->buf + S->buflen, 0, padding);
}
blake2s_compress(S, S->buf);
/* Output hash to out buffer */

View file

@ -67,11 +67,14 @@
/* Character driver methods */
static ssize_t cryptodev_read(FAR struct file *filep, FAR char *buffer,
static ssize_t cryptodev_read(FAR struct file *filep,
FAR char *buffer,
size_t len);
static ssize_t cryptodev_write(FAR struct file *filep, FAR const char *buffer,
static ssize_t cryptodev_write(FAR struct file *filep,
FAR const char *buffer,
size_t len);
static int cryptodev_ioctl(FAR struct file *filep, int cmd,
static int cryptodev_ioctl(FAR struct file *filep,
int cmd,
unsigned long arg);
/****************************************************************************
@ -96,19 +99,23 @@ static const struct file_operations g_cryptodevops =
* Private Functions
****************************************************************************/
static ssize_t cryptodev_read(FAR struct file *filep, FAR char *buffer,
static ssize_t cryptodev_read(FAR struct file *filep,
FAR char *buffer,
size_t len)
{
return -EACCES;
}
static ssize_t cryptodev_write(FAR struct file *filep, FAR const char *buffer,
static ssize_t cryptodev_write(FAR struct file *filep,
FAR const char *buffer,
size_t len)
{
return -EACCES;
}
static int cryptodev_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
static int cryptodev_ioctl(FAR struct file *filep,
int cmd,
unsigned long arg)
{
switch (cmd)
{

View file

@ -68,7 +68,9 @@
* Private Functions
****************************************************************************/
static int do_test_aes(FAR struct cipher_testvec *test, int mode, int encrypt)
static int do_test_aes(FAR struct cipher_testvec *test,
int mode,
int encrypt)
{
FAR void *out = kmm_zalloc(test->rlen);