From 4934e92cda62673a60abe0c5bbc2b95a13d24fa7 Mon Sep 17 00:00:00 2001 From: Jens Steube Date: Mon, 5 Jul 2021 11:33:12 +0200 Subject: [PATCH] OpenCL Runtime: Workaround a problem of the AMD OpenCL GPU driver under macOS which results in false negatives due to changes in the kernel crypto library --- OpenCL/inc_hash_md4.cl | 162 +++++++++-------- OpenCL/inc_hash_md5.cl | 162 +++++++++-------- OpenCL/inc_hash_ripemd160.cl | 162 +++++++++-------- OpenCL/inc_hash_sha1.cl | 162 +++++++++-------- OpenCL/inc_hash_sha224.cl | 162 +++++++++-------- OpenCL/inc_hash_sha256.cl | 162 +++++++++-------- OpenCL/inc_hash_sha384.cl | 314 +++++++++++++++++---------------- OpenCL/inc_hash_sha512.cl | 314 +++++++++++++++++---------------- OpenCL/inc_hash_streebog256.cl | 162 +++++++++-------- OpenCL/inc_hash_streebog512.cl | 162 +++++++++-------- OpenCL/inc_hash_whirlpool.cl | 162 +++++++++-------- docs/changes.txt | 1 + 12 files changed, 1107 insertions(+), 980 deletions(-) diff --git a/OpenCL/inc_hash_md4.cl b/OpenCL/inc_hash_md4.cl index 9da981841..309bf5994 100644 --- a/OpenCL/inc_hash_md4.cl +++ b/OpenCL/inc_hash_md4.cl @@ -881,56 +881,61 @@ DECLSPEC void md4_final (md4_ctx_t *ctx) DECLSPEC void md4_hmac_init_64 (md4_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; md4_init (&ctx->ipad); - md4_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + md4_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; md4_init (&ctx->opad); - md4_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + md4_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void md4_hmac_init (md4_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -1766,56 +1771,61 @@ DECLSPEC void md4_final_vector (md4_ctx_vector_t *ctx) DECLSPEC void md4_hmac_init_vector_64 (md4_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; md4_init_vector (&ctx->ipad); - md4_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + md4_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; md4_init_vector (&ctx->opad); - md4_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + md4_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void md4_hmac_init_vector (md4_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_md5.cl b/OpenCL/inc_hash_md5.cl index d9e4fcecd..c51752fb3 100644 --- a/OpenCL/inc_hash_md5.cl +++ b/OpenCL/inc_hash_md5.cl @@ -917,56 +917,61 @@ DECLSPEC void md5_final (md5_ctx_t *ctx) DECLSPEC void md5_hmac_init_64 (md5_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; md5_init (&ctx->ipad); - md5_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + md5_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; md5_init (&ctx->opad); - md5_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + md5_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void md5_hmac_init (md5_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -1838,56 +1843,61 @@ DECLSPEC void md5_final_vector (md5_ctx_vector_t *ctx) DECLSPEC void md5_hmac_init_vector_64 (md5_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; md5_init_vector (&ctx->ipad); - md5_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + md5_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; md5_init_vector (&ctx->opad); - md5_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + md5_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void md5_hmac_init_vector (md5_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_ripemd160.cl b/OpenCL/inc_hash_ripemd160.cl index da0830dc7..0a4aa22e6 100644 --- a/OpenCL/inc_hash_ripemd160.cl +++ b/OpenCL/inc_hash_ripemd160.cl @@ -1015,56 +1015,61 @@ DECLSPEC void ripemd160_final (ripemd160_ctx_t *ctx) DECLSPEC void ripemd160_hmac_init_64 (ripemd160_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; ripemd160_init (&ctx->ipad); - ripemd160_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + ripemd160_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; ripemd160_init (&ctx->opad); - ripemd160_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + ripemd160_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void ripemd160_hmac_init (ripemd160_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -2035,56 +2040,61 @@ DECLSPEC void ripemd160_final_vector (ripemd160_ctx_vector_t *ctx) DECLSPEC void ripemd160_hmac_init_vector_64 (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; ripemd160_init_vector (&ctx->ipad); - ripemd160_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + ripemd160_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; ripemd160_init_vector (&ctx->opad); - ripemd160_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + ripemd160_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void ripemd160_hmac_init_vector (ripemd160_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_sha1.cl b/OpenCL/inc_hash_sha1.cl index 0ac702926..0ca52926b 100644 --- a/OpenCL/inc_hash_sha1.cl +++ b/OpenCL/inc_hash_sha1.cl @@ -1366,56 +1366,61 @@ DECLSPEC void sha1_final (sha1_ctx_t *ctx) DECLSPEC void sha1_hmac_init_64 (sha1_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; sha1_init (&ctx->ipad); - sha1_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + sha1_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; sha1_init (&ctx->opad); - sha1_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + sha1_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void sha1_hmac_init (sha1_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -2587,56 +2592,61 @@ DECLSPEC void sha1_final_vector (sha1_ctx_vector_t *ctx) DECLSPEC void sha1_hmac_init_vector_64 (sha1_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; sha1_init_vector (&ctx->ipad); - sha1_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + sha1_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; sha1_init_vector (&ctx->opad); - sha1_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + sha1_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void sha1_hmac_init_vector (sha1_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_sha224.cl b/OpenCL/inc_hash_sha224.cl index 5733578e4..5e4aa55ca 100644 --- a/OpenCL/inc_hash_sha224.cl +++ b/OpenCL/inc_hash_sha224.cl @@ -932,56 +932,61 @@ DECLSPEC void sha224_final (sha224_ctx_t *ctx) DECLSPEC void sha224_hmac_init_64 (sha224_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; sha224_init (&ctx->ipad); - sha224_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + sha224_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; sha224_init (&ctx->opad); - sha224_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + sha224_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void sha224_hmac_init (sha224_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -1894,56 +1899,61 @@ DECLSPEC void sha224_final_vector (sha224_ctx_vector_t *ctx) DECLSPEC void sha224_hmac_init_vector_64 (sha224_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; sha224_init_vector (&ctx->ipad); - sha224_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + sha224_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; sha224_init_vector (&ctx->opad); - sha224_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + sha224_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void sha224_hmac_init_vector (sha224_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_sha256.cl b/OpenCL/inc_hash_sha256.cl index 6954ce3b1..40f456d8b 100644 --- a/OpenCL/inc_hash_sha256.cl +++ b/OpenCL/inc_hash_sha256.cl @@ -932,56 +932,61 @@ DECLSPEC void sha256_final (sha256_ctx_t *ctx) DECLSPEC void sha256_hmac_init_64 (sha256_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; sha256_init (&ctx->ipad); - sha256_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + sha256_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; sha256_init (&ctx->opad); - sha256_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + sha256_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void sha256_hmac_init (sha256_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -1894,56 +1899,61 @@ DECLSPEC void sha256_final_vector (sha256_ctx_vector_t *ctx) DECLSPEC void sha256_hmac_init_vector_64 (sha256_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; sha256_init_vector (&ctx->ipad); - sha256_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + sha256_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; sha256_init_vector (&ctx->opad); - sha256_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + sha256_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void sha256_hmac_init_vector (sha256_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_sha384.cl b/OpenCL/inc_hash_sha384.cl index e1126e532..3d433bb33 100644 --- a/OpenCL/inc_hash_sha384.cl +++ b/OpenCL/inc_hash_sha384.cl @@ -1452,92 +1452,101 @@ DECLSPEC void sha384_final (sha384_ctx_t *ctx) DECLSPEC void sha384_hmac_init_128 (sha384_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; - u32 t4[4]; - u32 t5[4]; - u32 t6[4]; - u32 t7[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; + u32 a4[4]; + u32 a5[4]; + u32 a6[4]; + u32 a7[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; - t4[0] = w4[0] ^ 0x36363636; - t4[1] = w4[1] ^ 0x36363636; - t4[2] = w4[2] ^ 0x36363636; - t4[3] = w4[3] ^ 0x36363636; - t5[0] = w5[0] ^ 0x36363636; - t5[1] = w5[1] ^ 0x36363636; - t5[2] = w5[2] ^ 0x36363636; - t5[3] = w5[3] ^ 0x36363636; - t6[0] = w6[0] ^ 0x36363636; - t6[1] = w6[1] ^ 0x36363636; - t6[2] = w6[2] ^ 0x36363636; - t6[3] = w6[3] ^ 0x36363636; - t7[0] = w7[0] ^ 0x36363636; - t7[1] = w7[1] ^ 0x36363636; - t7[2] = w7[2] ^ 0x36363636; - t7[3] = w7[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; + a4[0] = w4[0] ^ 0x36363636; + a4[1] = w4[1] ^ 0x36363636; + a4[2] = w4[2] ^ 0x36363636; + a4[3] = w4[3] ^ 0x36363636; + a5[0] = w5[0] ^ 0x36363636; + a5[1] = w5[1] ^ 0x36363636; + a5[2] = w5[2] ^ 0x36363636; + a5[3] = w5[3] ^ 0x36363636; + a6[0] = w6[0] ^ 0x36363636; + a6[1] = w6[1] ^ 0x36363636; + a6[2] = w6[2] ^ 0x36363636; + a6[3] = w6[3] ^ 0x36363636; + a7[0] = w7[0] ^ 0x36363636; + a7[1] = w7[1] ^ 0x36363636; + a7[2] = w7[2] ^ 0x36363636; + a7[3] = w7[3] ^ 0x36363636; sha384_init (&ctx->ipad); - sha384_update_128 (&ctx->ipad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha384_update_128 (&ctx->ipad, a0, a1, a2, a3, a4, a5, a6, a7, 128); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; - t4[0] = w4[0] ^ 0x5c5c5c5c; - t4[1] = w4[1] ^ 0x5c5c5c5c; - t4[2] = w4[2] ^ 0x5c5c5c5c; - t4[3] = w4[3] ^ 0x5c5c5c5c; - t5[0] = w5[0] ^ 0x5c5c5c5c; - t5[1] = w5[1] ^ 0x5c5c5c5c; - t5[2] = w5[2] ^ 0x5c5c5c5c; - t5[3] = w5[3] ^ 0x5c5c5c5c; - t6[0] = w6[0] ^ 0x5c5c5c5c; - t6[1] = w6[1] ^ 0x5c5c5c5c; - t6[2] = w6[2] ^ 0x5c5c5c5c; - t6[3] = w6[3] ^ 0x5c5c5c5c; - t7[0] = w7[0] ^ 0x5c5c5c5c; - t7[1] = w7[1] ^ 0x5c5c5c5c; - t7[2] = w7[2] ^ 0x5c5c5c5c; - t7[3] = w7[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + u32x b4[4]; + u32x b5[4]; + u32x b6[4]; + u32x b7[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; + b4[0] = w4[0] ^ 0x5c5c5c5c; + b4[1] = w4[1] ^ 0x5c5c5c5c; + b4[2] = w4[2] ^ 0x5c5c5c5c; + b4[3] = w4[3] ^ 0x5c5c5c5c; + b5[0] = w5[0] ^ 0x5c5c5c5c; + b5[1] = w5[1] ^ 0x5c5c5c5c; + b5[2] = w5[2] ^ 0x5c5c5c5c; + b5[3] = w5[3] ^ 0x5c5c5c5c; + b6[0] = w6[0] ^ 0x5c5c5c5c; + b6[1] = w6[1] ^ 0x5c5c5c5c; + b6[2] = w6[2] ^ 0x5c5c5c5c; + b6[3] = w6[3] ^ 0x5c5c5c5c; + b7[0] = w7[0] ^ 0x5c5c5c5c; + b7[1] = w7[1] ^ 0x5c5c5c5c; + b7[2] = w7[2] ^ 0x5c5c5c5c; + b7[3] = w7[3] ^ 0x5c5c5c5c; sha384_init (&ctx->opad); - sha384_update_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha384_update_128 (&ctx->opad, b0, b1, b2, b3, b4, b5, b6, b7, 128); } DECLSPEC void sha384_hmac_init (sha384_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -2950,92 +2959,101 @@ DECLSPEC void sha384_final_vector (sha384_ctx_vector_t *ctx) DECLSPEC void sha384_hmac_init_vector_128 (sha384_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; - u32x t4[4]; - u32x t5[4]; - u32x t6[4]; - u32x t7[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; + u32x a4[4]; + u32x a5[4]; + u32x a6[4]; + u32x a7[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; - t4[0] = w4[0] ^ 0x36363636; - t4[1] = w4[1] ^ 0x36363636; - t4[2] = w4[2] ^ 0x36363636; - t4[3] = w4[3] ^ 0x36363636; - t5[0] = w5[0] ^ 0x36363636; - t5[1] = w5[1] ^ 0x36363636; - t5[2] = w5[2] ^ 0x36363636; - t5[3] = w5[3] ^ 0x36363636; - t6[0] = w6[0] ^ 0x36363636; - t6[1] = w6[1] ^ 0x36363636; - t6[2] = w6[2] ^ 0x36363636; - t6[3] = w6[3] ^ 0x36363636; - t7[0] = w7[0] ^ 0x36363636; - t7[1] = w7[1] ^ 0x36363636; - t7[2] = w7[2] ^ 0x36363636; - t7[3] = w7[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; + a4[0] = w4[0] ^ 0x36363636; + a4[1] = w4[1] ^ 0x36363636; + a4[2] = w4[2] ^ 0x36363636; + a4[3] = w4[3] ^ 0x36363636; + a5[0] = w5[0] ^ 0x36363636; + a5[1] = w5[1] ^ 0x36363636; + a5[2] = w5[2] ^ 0x36363636; + a5[3] = w5[3] ^ 0x36363636; + a6[0] = w6[0] ^ 0x36363636; + a6[1] = w6[1] ^ 0x36363636; + a6[2] = w6[2] ^ 0x36363636; + a6[3] = w6[3] ^ 0x36363636; + a7[0] = w7[0] ^ 0x36363636; + a7[1] = w7[1] ^ 0x36363636; + a7[2] = w7[2] ^ 0x36363636; + a7[3] = w7[3] ^ 0x36363636; sha384_init_vector (&ctx->ipad); - sha384_update_vector_128 (&ctx->ipad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha384_update_vector_128 (&ctx->ipad, a0, a1, a2, a3, a4, a5, a6, a7, 128); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; - t4[0] = w4[0] ^ 0x5c5c5c5c; - t4[1] = w4[1] ^ 0x5c5c5c5c; - t4[2] = w4[2] ^ 0x5c5c5c5c; - t4[3] = w4[3] ^ 0x5c5c5c5c; - t5[0] = w5[0] ^ 0x5c5c5c5c; - t5[1] = w5[1] ^ 0x5c5c5c5c; - t5[2] = w5[2] ^ 0x5c5c5c5c; - t5[3] = w5[3] ^ 0x5c5c5c5c; - t6[0] = w6[0] ^ 0x5c5c5c5c; - t6[1] = w6[1] ^ 0x5c5c5c5c; - t6[2] = w6[2] ^ 0x5c5c5c5c; - t6[3] = w6[3] ^ 0x5c5c5c5c; - t7[0] = w7[0] ^ 0x5c5c5c5c; - t7[1] = w7[1] ^ 0x5c5c5c5c; - t7[2] = w7[2] ^ 0x5c5c5c5c; - t7[3] = w7[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + u32 b4[4]; + u32 b5[4]; + u32 b6[4]; + u32 b7[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; + b4[0] = w4[0] ^ 0x5c5c5c5c; + b4[1] = w4[1] ^ 0x5c5c5c5c; + b4[2] = w4[2] ^ 0x5c5c5c5c; + b4[3] = w4[3] ^ 0x5c5c5c5c; + b5[0] = w5[0] ^ 0x5c5c5c5c; + b5[1] = w5[1] ^ 0x5c5c5c5c; + b5[2] = w5[2] ^ 0x5c5c5c5c; + b5[3] = w5[3] ^ 0x5c5c5c5c; + b6[0] = w6[0] ^ 0x5c5c5c5c; + b6[1] = w6[1] ^ 0x5c5c5c5c; + b6[2] = w6[2] ^ 0x5c5c5c5c; + b6[3] = w6[3] ^ 0x5c5c5c5c; + b7[0] = w7[0] ^ 0x5c5c5c5c; + b7[1] = w7[1] ^ 0x5c5c5c5c; + b7[2] = w7[2] ^ 0x5c5c5c5c; + b7[3] = w7[3] ^ 0x5c5c5c5c; sha384_init_vector (&ctx->opad); - sha384_update_vector_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha384_update_vector_128 (&ctx->opad, b0, b1, b2, b3, b4, b5, b6, b7, 128); } DECLSPEC void sha384_hmac_init_vector (sha384_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_sha512.cl b/OpenCL/inc_hash_sha512.cl index 1bc87cb58..c3f3e9d95 100644 --- a/OpenCL/inc_hash_sha512.cl +++ b/OpenCL/inc_hash_sha512.cl @@ -1452,92 +1452,101 @@ DECLSPEC void sha512_final (sha512_ctx_t *ctx) DECLSPEC void sha512_hmac_init_128 (sha512_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, const u32 *w4, const u32 *w5, const u32 *w6, const u32 *w7) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; - u32 t4[4]; - u32 t5[4]; - u32 t6[4]; - u32 t7[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; + u32 a4[4]; + u32 a5[4]; + u32 a6[4]; + u32 a7[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; - t4[0] = w4[0] ^ 0x36363636; - t4[1] = w4[1] ^ 0x36363636; - t4[2] = w4[2] ^ 0x36363636; - t4[3] = w4[3] ^ 0x36363636; - t5[0] = w5[0] ^ 0x36363636; - t5[1] = w5[1] ^ 0x36363636; - t5[2] = w5[2] ^ 0x36363636; - t5[3] = w5[3] ^ 0x36363636; - t6[0] = w6[0] ^ 0x36363636; - t6[1] = w6[1] ^ 0x36363636; - t6[2] = w6[2] ^ 0x36363636; - t6[3] = w6[3] ^ 0x36363636; - t7[0] = w7[0] ^ 0x36363636; - t7[1] = w7[1] ^ 0x36363636; - t7[2] = w7[2] ^ 0x36363636; - t7[3] = w7[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; + a4[0] = w4[0] ^ 0x36363636; + a4[1] = w4[1] ^ 0x36363636; + a4[2] = w4[2] ^ 0x36363636; + a4[3] = w4[3] ^ 0x36363636; + a5[0] = w5[0] ^ 0x36363636; + a5[1] = w5[1] ^ 0x36363636; + a5[2] = w5[2] ^ 0x36363636; + a5[3] = w5[3] ^ 0x36363636; + a6[0] = w6[0] ^ 0x36363636; + a6[1] = w6[1] ^ 0x36363636; + a6[2] = w6[2] ^ 0x36363636; + a6[3] = w6[3] ^ 0x36363636; + a7[0] = w7[0] ^ 0x36363636; + a7[1] = w7[1] ^ 0x36363636; + a7[2] = w7[2] ^ 0x36363636; + a7[3] = w7[3] ^ 0x36363636; sha512_init (&ctx->ipad); - sha512_update_128 (&ctx->ipad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha512_update_128 (&ctx->ipad, a0, a1, a2, a3, a4, a5, a6, a7, 128); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; - t4[0] = w4[0] ^ 0x5c5c5c5c; - t4[1] = w4[1] ^ 0x5c5c5c5c; - t4[2] = w4[2] ^ 0x5c5c5c5c; - t4[3] = w4[3] ^ 0x5c5c5c5c; - t5[0] = w5[0] ^ 0x5c5c5c5c; - t5[1] = w5[1] ^ 0x5c5c5c5c; - t5[2] = w5[2] ^ 0x5c5c5c5c; - t5[3] = w5[3] ^ 0x5c5c5c5c; - t6[0] = w6[0] ^ 0x5c5c5c5c; - t6[1] = w6[1] ^ 0x5c5c5c5c; - t6[2] = w6[2] ^ 0x5c5c5c5c; - t6[3] = w6[3] ^ 0x5c5c5c5c; - t7[0] = w7[0] ^ 0x5c5c5c5c; - t7[1] = w7[1] ^ 0x5c5c5c5c; - t7[2] = w7[2] ^ 0x5c5c5c5c; - t7[3] = w7[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + u32 b4[4]; + u32 b5[4]; + u32 b6[4]; + u32 b7[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; + b4[0] = w4[0] ^ 0x5c5c5c5c; + b4[1] = w4[1] ^ 0x5c5c5c5c; + b4[2] = w4[2] ^ 0x5c5c5c5c; + b4[3] = w4[3] ^ 0x5c5c5c5c; + b5[0] = w5[0] ^ 0x5c5c5c5c; + b5[1] = w5[1] ^ 0x5c5c5c5c; + b5[2] = w5[2] ^ 0x5c5c5c5c; + b5[3] = w5[3] ^ 0x5c5c5c5c; + b6[0] = w6[0] ^ 0x5c5c5c5c; + b6[1] = w6[1] ^ 0x5c5c5c5c; + b6[2] = w6[2] ^ 0x5c5c5c5c; + b6[3] = w6[3] ^ 0x5c5c5c5c; + b7[0] = w7[0] ^ 0x5c5c5c5c; + b7[1] = w7[1] ^ 0x5c5c5c5c; + b7[2] = w7[2] ^ 0x5c5c5c5c; + b7[3] = w7[3] ^ 0x5c5c5c5c; sha512_init (&ctx->opad); - sha512_update_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha512_update_128 (&ctx->opad, b0, b1, b2, b3, b4, b5, b6, b7, 128); } DECLSPEC void sha512_hmac_init (sha512_hmac_ctx_t *ctx, const u32 *w, const int len) @@ -3166,92 +3175,101 @@ DECLSPEC void sha512_final_vector (sha512_ctx_vector_t *ctx) DECLSPEC void sha512_hmac_init_vector_128 (sha512_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, const u32x *w4, const u32x *w5, const u32x *w6, const u32x *w7) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; - u32x t4[4]; - u32x t5[4]; - u32x t6[4]; - u32x t7[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; + u32x a4[4]; + u32x a5[4]; + u32x a6[4]; + u32x a7[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; - t4[0] = w4[0] ^ 0x36363636; - t4[1] = w4[1] ^ 0x36363636; - t4[2] = w4[2] ^ 0x36363636; - t4[3] = w4[3] ^ 0x36363636; - t5[0] = w5[0] ^ 0x36363636; - t5[1] = w5[1] ^ 0x36363636; - t5[2] = w5[2] ^ 0x36363636; - t5[3] = w5[3] ^ 0x36363636; - t6[0] = w6[0] ^ 0x36363636; - t6[1] = w6[1] ^ 0x36363636; - t6[2] = w6[2] ^ 0x36363636; - t6[3] = w6[3] ^ 0x36363636; - t7[0] = w7[0] ^ 0x36363636; - t7[1] = w7[1] ^ 0x36363636; - t7[2] = w7[2] ^ 0x36363636; - t7[3] = w7[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; + a4[0] = w4[0] ^ 0x36363636; + a4[1] = w4[1] ^ 0x36363636; + a4[2] = w4[2] ^ 0x36363636; + a4[3] = w4[3] ^ 0x36363636; + a5[0] = w5[0] ^ 0x36363636; + a5[1] = w5[1] ^ 0x36363636; + a5[2] = w5[2] ^ 0x36363636; + a5[3] = w5[3] ^ 0x36363636; + a6[0] = w6[0] ^ 0x36363636; + a6[1] = w6[1] ^ 0x36363636; + a6[2] = w6[2] ^ 0x36363636; + a6[3] = w6[3] ^ 0x36363636; + a7[0] = w7[0] ^ 0x36363636; + a7[1] = w7[1] ^ 0x36363636; + a7[2] = w7[2] ^ 0x36363636; + a7[3] = w7[3] ^ 0x36363636; sha512_init_vector (&ctx->ipad); - sha512_update_vector_128 (&ctx->ipad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha512_update_vector_128 (&ctx->ipad, a0, a1, a2, a3, a4, a5, a6, a7, 128); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; - t4[0] = w4[0] ^ 0x5c5c5c5c; - t4[1] = w4[1] ^ 0x5c5c5c5c; - t4[2] = w4[2] ^ 0x5c5c5c5c; - t4[3] = w4[3] ^ 0x5c5c5c5c; - t5[0] = w5[0] ^ 0x5c5c5c5c; - t5[1] = w5[1] ^ 0x5c5c5c5c; - t5[2] = w5[2] ^ 0x5c5c5c5c; - t5[3] = w5[3] ^ 0x5c5c5c5c; - t6[0] = w6[0] ^ 0x5c5c5c5c; - t6[1] = w6[1] ^ 0x5c5c5c5c; - t6[2] = w6[2] ^ 0x5c5c5c5c; - t6[3] = w6[3] ^ 0x5c5c5c5c; - t7[0] = w7[0] ^ 0x5c5c5c5c; - t7[1] = w7[1] ^ 0x5c5c5c5c; - t7[2] = w7[2] ^ 0x5c5c5c5c; - t7[3] = w7[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + u32x b4[4]; + u32x b5[4]; + u32x b6[4]; + u32x b7[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; + b4[0] = w4[0] ^ 0x5c5c5c5c; + b4[1] = w4[1] ^ 0x5c5c5c5c; + b4[2] = w4[2] ^ 0x5c5c5c5c; + b4[3] = w4[3] ^ 0x5c5c5c5c; + b5[0] = w5[0] ^ 0x5c5c5c5c; + b5[1] = w5[1] ^ 0x5c5c5c5c; + b5[2] = w5[2] ^ 0x5c5c5c5c; + b5[3] = w5[3] ^ 0x5c5c5c5c; + b6[0] = w6[0] ^ 0x5c5c5c5c; + b6[1] = w6[1] ^ 0x5c5c5c5c; + b6[2] = w6[2] ^ 0x5c5c5c5c; + b6[3] = w6[3] ^ 0x5c5c5c5c; + b7[0] = w7[0] ^ 0x5c5c5c5c; + b7[1] = w7[1] ^ 0x5c5c5c5c; + b7[2] = w7[2] ^ 0x5c5c5c5c; + b7[3] = w7[3] ^ 0x5c5c5c5c; sha512_init_vector (&ctx->opad); - sha512_update_vector_128 (&ctx->opad, t0, t1, t2, t3, t4, t5, t6, t7, 128); + sha512_update_vector_128 (&ctx->opad, b0, b1, b2, b3, b4, b5, b6, b7, 128); } DECLSPEC void sha512_hmac_init_vector (sha512_hmac_ctx_vector_t *ctx, const u32x *w, const int len) diff --git a/OpenCL/inc_hash_streebog256.cl b/OpenCL/inc_hash_streebog256.cl index 58d08131d..074da7d84 100644 --- a/OpenCL/inc_hash_streebog256.cl +++ b/OpenCL/inc_hash_streebog256.cl @@ -1082,56 +1082,61 @@ DECLSPEC void streebog256_final (streebog256_ctx_t *ctx) DECLSPEC void streebog256_hmac_init_64 (streebog256_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; streebog256_init (&ctx->ipad, s_sbob_sl64); - streebog256_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + streebog256_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; streebog256_init (&ctx->opad, s_sbob_sl64); - streebog256_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + streebog256_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void streebog256_hmac_init (streebog256_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) @@ -1726,56 +1731,61 @@ DECLSPEC void streebog256_final_vector (streebog256_ctx_vector_t *ctx) DECLSPEC void streebog256_hmac_init_vector_64 (streebog256_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; streebog256_init_vector (&ctx->ipad, s_sbob_sl64); - streebog256_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + streebog256_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; streebog256_init_vector (&ctx->opad, s_sbob_sl64); - streebog256_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + streebog256_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void streebog256_hmac_init_vector (streebog256_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) diff --git a/OpenCL/inc_hash_streebog512.cl b/OpenCL/inc_hash_streebog512.cl index 45ce8dbb2..f52780096 100644 --- a/OpenCL/inc_hash_streebog512.cl +++ b/OpenCL/inc_hash_streebog512.cl @@ -1082,56 +1082,61 @@ DECLSPEC void streebog512_final (streebog512_ctx_t *ctx) DECLSPEC void streebog512_hmac_init_64 (streebog512_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; streebog512_init (&ctx->ipad, s_sbob_sl64); - streebog512_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + streebog512_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; streebog512_init (&ctx->opad, s_sbob_sl64); - streebog512_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + streebog512_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void streebog512_hmac_init (streebog512_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) @@ -1745,56 +1750,61 @@ DECLSPEC void streebog512_final_vector (streebog512_ctx_vector_t *ctx) DECLSPEC void streebog512_hmac_init_vector_64 (streebog512_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u64a (*s_sbob_sl64)[256]) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; streebog512_init_vector (&ctx->ipad, s_sbob_sl64); - streebog512_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + streebog512_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; streebog512_init_vector (&ctx->opad, s_sbob_sl64); - streebog512_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + streebog512_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void streebog512_hmac_init_vector (streebog512_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64a (*s_sbob_sl64)[256]) diff --git a/OpenCL/inc_hash_whirlpool.cl b/OpenCL/inc_hash_whirlpool.cl index efc518f39..01853f5a0 100644 --- a/OpenCL/inc_hash_whirlpool.cl +++ b/OpenCL/inc_hash_whirlpool.cl @@ -1536,56 +1536,61 @@ DECLSPEC void whirlpool_final (whirlpool_ctx_t *ctx) DECLSPEC void whirlpool_hmac_init_64 (whirlpool_hmac_ctx_t *ctx, const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, SHM_TYPE u64 *s_MT0, SHM_TYPE u64 *s_MT1, SHM_TYPE u64 *s_MT2, SHM_TYPE u64 *s_MT3, SHM_TYPE u64 *s_MT4, SHM_TYPE u64 *s_MT5, SHM_TYPE u64 *s_MT6, SHM_TYPE u64 *s_MT7) { - u32 t0[4]; - u32 t1[4]; - u32 t2[4]; - u32 t3[4]; + u32 a0[4]; + u32 a1[4]; + u32 a2[4]; + u32 a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; whirlpool_init (&ctx->ipad, s_MT0, s_MT1, s_MT2, s_MT3, s_MT4, s_MT5, s_MT6, s_MT7); - whirlpool_update_64 (&ctx->ipad, t0, t1, t2, t3, 64); + whirlpool_update_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32 b0[4]; + u32 b1[4]; + u32 b2[4]; + u32 b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; whirlpool_init (&ctx->opad, s_MT0, s_MT1, s_MT2, s_MT3, s_MT4, s_MT5, s_MT6, s_MT7); - whirlpool_update_64 (&ctx->opad, t0, t1, t2, t3, 64); + whirlpool_update_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void whirlpool_hmac_init (whirlpool_hmac_ctx_t *ctx, const u32 *w, const int len, SHM_TYPE u64 *s_MT0, SHM_TYPE u64 *s_MT1, SHM_TYPE u64 *s_MT2, SHM_TYPE u64 *s_MT3, SHM_TYPE u64 *s_MT4, SHM_TYPE u64 *s_MT5, SHM_TYPE u64 *s_MT6, SHM_TYPE u64 *s_MT7) @@ -2572,56 +2577,61 @@ DECLSPEC void whirlpool_final_vector (whirlpool_ctx_vector_t *ctx) DECLSPEC void whirlpool_hmac_init_vector_64 (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w0, const u32x *w1, const u32x *w2, const u32x *w3, SHM_TYPE u64 *s_MT0, SHM_TYPE u64 *s_MT1, SHM_TYPE u64 *s_MT2, SHM_TYPE u64 *s_MT3, SHM_TYPE u64 *s_MT4, SHM_TYPE u64 *s_MT5, SHM_TYPE u64 *s_MT6, SHM_TYPE u64 *s_MT7) { - u32x t0[4]; - u32x t1[4]; - u32x t2[4]; - u32x t3[4]; + u32x a0[4]; + u32x a1[4]; + u32x a2[4]; + u32x a3[4]; // ipad - t0[0] = w0[0] ^ 0x36363636; - t0[1] = w0[1] ^ 0x36363636; - t0[2] = w0[2] ^ 0x36363636; - t0[3] = w0[3] ^ 0x36363636; - t1[0] = w1[0] ^ 0x36363636; - t1[1] = w1[1] ^ 0x36363636; - t1[2] = w1[2] ^ 0x36363636; - t1[3] = w1[3] ^ 0x36363636; - t2[0] = w2[0] ^ 0x36363636; - t2[1] = w2[1] ^ 0x36363636; - t2[2] = w2[2] ^ 0x36363636; - t2[3] = w2[3] ^ 0x36363636; - t3[0] = w3[0] ^ 0x36363636; - t3[1] = w3[1] ^ 0x36363636; - t3[2] = w3[2] ^ 0x36363636; - t3[3] = w3[3] ^ 0x36363636; + a0[0] = w0[0] ^ 0x36363636; + a0[1] = w0[1] ^ 0x36363636; + a0[2] = w0[2] ^ 0x36363636; + a0[3] = w0[3] ^ 0x36363636; + a1[0] = w1[0] ^ 0x36363636; + a1[1] = w1[1] ^ 0x36363636; + a1[2] = w1[2] ^ 0x36363636; + a1[3] = w1[3] ^ 0x36363636; + a2[0] = w2[0] ^ 0x36363636; + a2[1] = w2[1] ^ 0x36363636; + a2[2] = w2[2] ^ 0x36363636; + a2[3] = w2[3] ^ 0x36363636; + a3[0] = w3[0] ^ 0x36363636; + a3[1] = w3[1] ^ 0x36363636; + a3[2] = w3[2] ^ 0x36363636; + a3[3] = w3[3] ^ 0x36363636; whirlpool_init_vector (&ctx->ipad, s_MT0, s_MT1, s_MT2, s_MT3, s_MT4, s_MT5, s_MT6, s_MT7); - whirlpool_update_vector_64 (&ctx->ipad, t0, t1, t2, t3, 64); + whirlpool_update_vector_64 (&ctx->ipad, a0, a1, a2, a3, 64); // opad - t0[0] = w0[0] ^ 0x5c5c5c5c; - t0[1] = w0[1] ^ 0x5c5c5c5c; - t0[2] = w0[2] ^ 0x5c5c5c5c; - t0[3] = w0[3] ^ 0x5c5c5c5c; - t1[0] = w1[0] ^ 0x5c5c5c5c; - t1[1] = w1[1] ^ 0x5c5c5c5c; - t1[2] = w1[2] ^ 0x5c5c5c5c; - t1[3] = w1[3] ^ 0x5c5c5c5c; - t2[0] = w2[0] ^ 0x5c5c5c5c; - t2[1] = w2[1] ^ 0x5c5c5c5c; - t2[2] = w2[2] ^ 0x5c5c5c5c; - t2[3] = w2[3] ^ 0x5c5c5c5c; - t3[0] = w3[0] ^ 0x5c5c5c5c; - t3[1] = w3[1] ^ 0x5c5c5c5c; - t3[2] = w3[2] ^ 0x5c5c5c5c; - t3[3] = w3[3] ^ 0x5c5c5c5c; + u32x b0[4]; + u32x b1[4]; + u32x b2[4]; + u32x b3[4]; + + b0[0] = w0[0] ^ 0x5c5c5c5c; + b0[1] = w0[1] ^ 0x5c5c5c5c; + b0[2] = w0[2] ^ 0x5c5c5c5c; + b0[3] = w0[3] ^ 0x5c5c5c5c; + b1[0] = w1[0] ^ 0x5c5c5c5c; + b1[1] = w1[1] ^ 0x5c5c5c5c; + b1[2] = w1[2] ^ 0x5c5c5c5c; + b1[3] = w1[3] ^ 0x5c5c5c5c; + b2[0] = w2[0] ^ 0x5c5c5c5c; + b2[1] = w2[1] ^ 0x5c5c5c5c; + b2[2] = w2[2] ^ 0x5c5c5c5c; + b2[3] = w2[3] ^ 0x5c5c5c5c; + b3[0] = w3[0] ^ 0x5c5c5c5c; + b3[1] = w3[1] ^ 0x5c5c5c5c; + b3[2] = w3[2] ^ 0x5c5c5c5c; + b3[3] = w3[3] ^ 0x5c5c5c5c; whirlpool_init_vector (&ctx->opad, s_MT0, s_MT1, s_MT2, s_MT3, s_MT4, s_MT5, s_MT6, s_MT7); - whirlpool_update_vector_64 (&ctx->opad, t0, t1, t2, t3, 64); + whirlpool_update_vector_64 (&ctx->opad, b0, b1, b2, b3, 64); } DECLSPEC void whirlpool_hmac_init_vector (whirlpool_hmac_ctx_vector_t *ctx, const u32x *w, const int len, SHM_TYPE u64 *s_MT0, SHM_TYPE u64 *s_MT1, SHM_TYPE u64 *s_MT2, SHM_TYPE u64 *s_MT3, SHM_TYPE u64 *s_MT4, SHM_TYPE u64 *s_MT5, SHM_TYPE u64 *s_MT6, SHM_TYPE u64 *s_MT7) diff --git a/docs/changes.txt b/docs/changes.txt index 0d6e539b1..712360de4 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -52,6 +52,7 @@ - Folders: Do not escape the variable cpath_real to prevent certain OpenCL runtimes from running into an error which do not support escape characters - Java Object hashCode: Add OPTS_TYPE_SUGGEST_KG as a default option - LM: Workaround JiT compiler bug in -m 3000 on NV leading to false negatives with large amount of hashes +- OpenCL Runtime: Workaround a problem of the AMD OpenCL GPU driver under macOS which results in false negatives due to changes in the kernel crypto library - OpenCL Runtime: Workaround JiT crash (SC failed. No reason given.) on macOS by limiting local memory allocations to 32k - Status View: Include time and duration info when pausing and resuming - Tests: Changed tests for VeraCrypt from -a 0 to -a 3, because password extension is not available to all shells