You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[CRYPTO] Use standard byte order macros wherever possible
A lot of crypto code needs to read/write a 32-bit/64-bit words in a specific gender. Many of them open code them by reading/writing one byte at a time. This patch converts all the applicable usages over to use the standard byte order macros. This is based on a previous patch by Denis Vlasenko. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
David S. Miller
parent
2df15fffc6
commit
06ace7a9ba
@@ -99,9 +99,6 @@ byte(const uint32_t x, const unsigned n)
|
||||
return x >> (n << 3);
|
||||
}
|
||||
|
||||
#define uint32_t_in(x) le32_to_cpu(*(const uint32_t *)(x))
|
||||
#define uint32_t_out(to, from) (*(uint32_t *)(to) = cpu_to_le32(from))
|
||||
|
||||
#define E_KEY ctx->E
|
||||
#define D_KEY ctx->D
|
||||
|
||||
@@ -294,6 +291,7 @@ static int
|
||||
aes_set_key(void *ctx_arg, const uint8_t *in_key, unsigned int key_len, uint32_t *flags)
|
||||
{
|
||||
struct aes_ctx *ctx = aes_ctx(ctx_arg);
|
||||
const __le32 *key = (const __le32 *)in_key;
|
||||
uint32_t i, t, u, v, w;
|
||||
uint32_t P[AES_EXTENDED_KEY_SIZE];
|
||||
uint32_t rounds;
|
||||
@@ -313,10 +311,10 @@ aes_set_key(void *ctx_arg, const uint8_t *in_key, unsigned int key_len, uint32_t
|
||||
ctx->E = ctx->e_data;
|
||||
ctx->D = ctx->e_data;
|
||||
|
||||
E_KEY[0] = uint32_t_in (in_key);
|
||||
E_KEY[1] = uint32_t_in (in_key + 4);
|
||||
E_KEY[2] = uint32_t_in (in_key + 8);
|
||||
E_KEY[3] = uint32_t_in (in_key + 12);
|
||||
E_KEY[0] = le32_to_cpu(key[0]);
|
||||
E_KEY[1] = le32_to_cpu(key[1]);
|
||||
E_KEY[2] = le32_to_cpu(key[2]);
|
||||
E_KEY[3] = le32_to_cpu(key[3]);
|
||||
|
||||
/* Prepare control words. */
|
||||
memset(&ctx->cword, 0, sizeof(ctx->cword));
|
||||
@@ -343,17 +341,17 @@ aes_set_key(void *ctx_arg, const uint8_t *in_key, unsigned int key_len, uint32_t
|
||||
break;
|
||||
|
||||
case 24:
|
||||
E_KEY[4] = uint32_t_in (in_key + 16);
|
||||
t = E_KEY[5] = uint32_t_in (in_key + 20);
|
||||
E_KEY[4] = le32_to_cpu(key[4]);
|
||||
t = E_KEY[5] = le32_to_cpu(key[5]);
|
||||
for (i = 0; i < 8; ++i)
|
||||
loop6 (i);
|
||||
break;
|
||||
|
||||
case 32:
|
||||
E_KEY[4] = uint32_t_in (in_key + 16);
|
||||
E_KEY[5] = uint32_t_in (in_key + 20);
|
||||
E_KEY[6] = uint32_t_in (in_key + 24);
|
||||
t = E_KEY[7] = uint32_t_in (in_key + 28);
|
||||
E_KEY[4] = le32_to_cpu(in_key[4]);
|
||||
E_KEY[5] = le32_to_cpu(in_key[5]);
|
||||
E_KEY[6] = le32_to_cpu(in_key[6]);
|
||||
t = E_KEY[7] = le32_to_cpu(in_key[7]);
|
||||
for (i = 0; i < 7; ++i)
|
||||
loop8 (i);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user