Commit f1740751 authored by Eric Biggers's avatar Eric Biggers Committed by Herbert Xu

crypto: x86/ghash - use le128 instead of u128

The u128 struct type is going away, so make ghash-clmulni-intel use
le128 instead.  Note that the field names a and b swapped, as they were
backwards with u128.  (a is meant to be high-order and b low-order.)
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 116db270
...@@ -88,7 +88,7 @@ SYM_FUNC_START_LOCAL(__clmul_gf128mul_ble) ...@@ -88,7 +88,7 @@ SYM_FUNC_START_LOCAL(__clmul_gf128mul_ble)
RET RET
SYM_FUNC_END(__clmul_gf128mul_ble) SYM_FUNC_END(__clmul_gf128mul_ble)
/* void clmul_ghash_mul(char *dst, const u128 *shash) */ /* void clmul_ghash_mul(char *dst, const le128 *shash) */
SYM_FUNC_START(clmul_ghash_mul) SYM_FUNC_START(clmul_ghash_mul)
FRAME_BEGIN FRAME_BEGIN
movups (%rdi), DATA movups (%rdi), DATA
...@@ -104,7 +104,7 @@ SYM_FUNC_END(clmul_ghash_mul) ...@@ -104,7 +104,7 @@ SYM_FUNC_END(clmul_ghash_mul)
/* /*
* void clmul_ghash_update(char *dst, const char *src, unsigned int srclen, * void clmul_ghash_update(char *dst, const char *src, unsigned int srclen,
* const u128 *shash); * const le128 *shash);
*/ */
SYM_FUNC_START(clmul_ghash_update) SYM_FUNC_START(clmul_ghash_update)
FRAME_BEGIN FRAME_BEGIN
......
...@@ -24,17 +24,17 @@ ...@@ -24,17 +24,17 @@
#define GHASH_BLOCK_SIZE 16 #define GHASH_BLOCK_SIZE 16
#define GHASH_DIGEST_SIZE 16 #define GHASH_DIGEST_SIZE 16
void clmul_ghash_mul(char *dst, const u128 *shash); void clmul_ghash_mul(char *dst, const le128 *shash);
void clmul_ghash_update(char *dst, const char *src, unsigned int srclen, void clmul_ghash_update(char *dst, const char *src, unsigned int srclen,
const u128 *shash); const le128 *shash);
struct ghash_async_ctx { struct ghash_async_ctx {
struct cryptd_ahash *cryptd_tfm; struct cryptd_ahash *cryptd_tfm;
}; };
struct ghash_ctx { struct ghash_ctx {
u128 shash; le128 shash;
}; };
struct ghash_desc_ctx { struct ghash_desc_ctx {
...@@ -64,11 +64,11 @@ static int ghash_setkey(struct crypto_shash *tfm, ...@@ -64,11 +64,11 @@ static int ghash_setkey(struct crypto_shash *tfm,
a = get_unaligned_be64(key); a = get_unaligned_be64(key);
b = get_unaligned_be64(key + 8); b = get_unaligned_be64(key + 8);
ctx->shash.a = (b << 1) | (a >> 63); ctx->shash.a = cpu_to_le64((a << 1) | (b >> 63));
ctx->shash.b = (a << 1) | (b >> 63); ctx->shash.b = cpu_to_le64((b << 1) | (a >> 63));
if (a >> 63) if (a >> 63)
ctx->shash.b ^= ((u64)0xc2) << 56; ctx->shash.a ^= cpu_to_le64((u64)0xc2 << 56);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment