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

View File

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

View File

@ -67,11 +67,14 @@
/* Character driver methods */ /* 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); 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); 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); unsigned long arg);
/**************************************************************************** /****************************************************************************
@ -96,19 +99,23 @@ static const struct file_operations g_cryptodevops =
* Private Functions * 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) size_t len)
{ {
return -EACCES; 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) size_t len)
{ {
return -EACCES; 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) switch (cmd)
{ {

View File

@ -68,7 +68,9 @@
* Private Functions * 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); FAR void *out = kmm_zalloc(test->rlen);