From a15c16577304adce42f446dbca78374269f7cf51 Mon Sep 17 00:00:00 2001 From: Jens Steube Date: Fri, 16 Feb 2018 11:38:08 +0100 Subject: [PATCH] Revert the pos == 0 change due to some unexpected results on nvidia --- OpenCL/inc_hash_md4.cl | 316 +++++++------------ OpenCL/inc_hash_md5.cl | 316 +++++++------------ OpenCL/inc_hash_ripemd160.cl | 316 +++++++------------ OpenCL/inc_hash_sha1.cl | 316 +++++++------------ OpenCL/inc_hash_sha224.cl | 316 +++++++------------ OpenCL/inc_hash_sha256.cl | 316 +++++++------------ OpenCL/inc_hash_sha384.cl | 588 +++++++++++++---------------------- OpenCL/inc_hash_sha512.cl | 588 +++++++++++++---------------------- OpenCL/inc_hash_whirlpool.cl | 316 +++++++------------ 9 files changed, 1216 insertions(+), 2172 deletions(-) diff --git a/OpenCL/inc_hash_md4.cl b/OpenCL/inc_hash_md4.cl index 591957235..063ac6a9e 100644 --- a/OpenCL/inc_hash_md4.cl +++ b/OpenCL/inc_hash_md4.cl @@ -114,117 +114,71 @@ DECLSPEC void md4_update_64 (md4_ctx_t *ctx, u32 w0[4], u32 w1[4], u32 w2[4], u3 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - md4_transform (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_le_S (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_le_S (w0, w1, w2, w3, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; + switch_buffer_by_offset_carry_le_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_le_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + md4_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - md4_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } @@ -1280,117 +1234,71 @@ DECLSPEC void md4_update_vector_64 (md4_ctx_vector_t *ctx, u32x w0[4], u32x w1[4 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - md4_transform_vector (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_le (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_le (w0, w1, w2, w3, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; + switch_buffer_by_offset_carry_le (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_le (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + md4_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - md4_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } diff --git a/OpenCL/inc_hash_md5.cl b/OpenCL/inc_hash_md5.cl index 93204c2b5..1950a9876 100644 --- a/OpenCL/inc_hash_md5.cl +++ b/OpenCL/inc_hash_md5.cl @@ -150,117 +150,71 @@ DECLSPEC void md5_update_64 (md5_ctx_t *ctx, u32 w0[4], u32 w1[4], u32 w2[4], u3 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - md5_transform (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_le_S (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_le_S (w0, w1, w2, w3, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; + switch_buffer_by_offset_carry_le_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_le_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + md5_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - md5_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } @@ -1352,117 +1306,71 @@ DECLSPEC void md5_update_vector_64 (md5_ctx_vector_t *ctx, u32x w0[4], u32x w1[4 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - md5_transform_vector (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_le (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_le (w0, w1, w2, w3, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; + switch_buffer_by_offset_carry_le (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_le (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + md5_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - md5_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } diff --git a/OpenCL/inc_hash_ripemd160.cl b/OpenCL/inc_hash_ripemd160.cl index dd8a785b8..c50338e7e 100644 --- a/OpenCL/inc_hash_ripemd160.cl +++ b/OpenCL/inc_hash_ripemd160.cl @@ -248,117 +248,71 @@ DECLSPEC void ripemd160_update_64 (ripemd160_ctx_t *ctx, u32 w0[4], u32 w1[4], u ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - ripemd160_transform (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_le_S (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_le_S (w0, w1, w2, w3, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; + switch_buffer_by_offset_carry_le_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_le_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + ripemd160_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - ripemd160_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } @@ -1549,117 +1503,71 @@ DECLSPEC void ripemd160_update_vector_64 (ripemd160_ctx_vector_t *ctx, u32x w0[4 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - ripemd160_transform_vector (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_le (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_le (w0, w1, w2, w3, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; + switch_buffer_by_offset_carry_le (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_le (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + ripemd160_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - ripemd160_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } diff --git a/OpenCL/inc_hash_sha1.cl b/OpenCL/inc_hash_sha1.cl index e4143253f..8caa33dbe 100644 --- a/OpenCL/inc_hash_sha1.cl +++ b/OpenCL/inc_hash_sha1.cl @@ -180,117 +180,71 @@ DECLSPEC void sha1_update_64 (sha1_ctx_t *ctx, u32 w0[4], u32 w1[4], u32 w2[4], ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - sha1_transform (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; + switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + sha1_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - sha1_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } @@ -1649,117 +1603,71 @@ DECLSPEC void sha1_update_vector_64 (sha1_ctx_vector_t *ctx, u32x w0[4], u32x w1 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - sha1_transform_vector (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_be (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be (w0, w1, w2, w3, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; + switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + sha1_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - sha1_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } diff --git a/OpenCL/inc_hash_sha224.cl b/OpenCL/inc_hash_sha224.cl index f014778a9..1bda36364 100644 --- a/OpenCL/inc_hash_sha224.cl +++ b/OpenCL/inc_hash_sha224.cl @@ -165,117 +165,71 @@ DECLSPEC void sha224_update_64 (sha224_ctx_t *ctx, u32 w0[4], u32 w1[4], u32 w2[ ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - sha224_transform (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; + switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + sha224_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - sha224_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } @@ -1366,117 +1320,71 @@ DECLSPEC void sha224_update_vector_64 (sha224_ctx_vector_t *ctx, u32x w0[4], u32 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - sha224_transform_vector (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_be (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be (w0, w1, w2, w3, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; + switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + sha224_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - sha224_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } diff --git a/OpenCL/inc_hash_sha256.cl b/OpenCL/inc_hash_sha256.cl index 917f62468..49e107024 100644 --- a/OpenCL/inc_hash_sha256.cl +++ b/OpenCL/inc_hash_sha256.cl @@ -165,117 +165,71 @@ DECLSPEC void sha256_update_64 (sha256_ctx_t *ctx, u32 w0[4], u32 w1[4], u32 w2[ ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - sha256_transform (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; + switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + sha256_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - sha256_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } @@ -1366,117 +1320,71 @@ DECLSPEC void sha256_update_vector_64 (sha256_ctx_vector_t *ctx, u32x w0[4], u32 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - sha256_transform_vector (w0, w1, w2, w3, ctx->h); + switch_buffer_by_offset_be (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be (w0, w1, w2, w3, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; + switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + sha256_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - sha256_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } diff --git a/OpenCL/inc_hash_sha384.cl b/OpenCL/inc_hash_sha384.cl index 1c80a3cf7..310844a5f 100644 --- a/OpenCL/inc_hash_sha384.cl +++ b/OpenCL/inc_hash_sha384.cl @@ -189,201 +189,123 @@ DECLSPEC void sha384_update_128 (sha384_ctx_t *ctx, u32 w0[4], u32 w1[4], u32 w2 ctx->len += len; - if (pos == 0) + if ((pos + len) < 128) { - if (len < 128) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - ctx->w4[0] = w4[0]; - ctx->w4[1] = w4[1]; - ctx->w4[2] = w4[2]; - ctx->w4[3] = w4[3]; - ctx->w5[0] = w5[0]; - ctx->w5[1] = w5[1]; - ctx->w5[2] = w5[2]; - ctx->w5[3] = w5[3]; - ctx->w6[0] = w6[0]; - ctx->w6[1] = w6[1]; - ctx->w6[2] = w6[2]; - ctx->w6[3] = w6[3]; - ctx->w7[0] = w7[0]; - ctx->w7[1] = w7[1]; - ctx->w7[2] = w7[2]; - ctx->w7[3] = w7[3]; - } - else - { - sha384_transform (w0, w1, w2, w3, w4, w5, w6, w7, ctx->h); + switch_buffer_by_offset_8x4_be_S (w0, w1, w2, w3, w4, w5, w6, w7, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - ctx->w4[0] = 0; - ctx->w4[1] = 0; - ctx->w4[2] = 0; - ctx->w4[3] = 0; - ctx->w5[0] = 0; - ctx->w5[1] = 0; - ctx->w5[2] = 0; - ctx->w5[3] = 0; - ctx->w6[0] = 0; - ctx->w6[1] = 0; - ctx->w6[2] = 0; - ctx->w6[3] = 0; - ctx->w7[0] = 0; - ctx->w7[1] = 0; - ctx->w7[2] = 0; - ctx->w7[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; } else { - if ((pos + len) < 128) - { - switch_buffer_by_offset_8x4_be_S (w0, w1, w2, w3, w4, w5, w6, w7, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; + u32 c4[4] = { 0 }; + u32 c5[4] = { 0 }; + u32 c6[4] = { 0 }; + u32 c7[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; - u32 c4[4] = { 0 }; - u32 c5[4] = { 0 }; - u32 c6[4] = { 0 }; - u32 c7[4] = { 0 }; + switch_buffer_by_offset_8x4_carry_be_S (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); - switch_buffer_by_offset_8x4_carry_be_S (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; + sha384_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - sha384_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - ctx->w4[0] = c4[0]; - ctx->w4[1] = c4[1]; - ctx->w4[2] = c4[2]; - ctx->w4[3] = c4[3]; - ctx->w5[0] = c5[0]; - ctx->w5[1] = c5[1]; - ctx->w5[2] = c5[2]; - ctx->w5[3] = c5[3]; - ctx->w6[0] = c6[0]; - ctx->w6[1] = c6[1]; - ctx->w6[2] = c6[2]; - ctx->w6[3] = c6[3]; - ctx->w7[0] = c7[0]; - ctx->w7[1] = c7[1]; - ctx->w7[2] = c7[2]; - ctx->w7[3] = c7[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; + ctx->w4[0] = c4[0]; + ctx->w4[1] = c4[1]; + ctx->w4[2] = c4[2]; + ctx->w4[3] = c4[3]; + ctx->w5[0] = c5[0]; + ctx->w5[1] = c5[1]; + ctx->w5[2] = c5[2]; + ctx->w5[3] = c5[3]; + ctx->w6[0] = c6[0]; + ctx->w6[1] = c6[1]; + ctx->w6[2] = c6[2]; + ctx->w6[3] = c6[3]; + ctx->w7[0] = c7[0]; + ctx->w7[1] = c7[1]; + ctx->w7[2] = c7[2]; + ctx->w7[3] = c7[3]; } } @@ -2094,201 +2016,123 @@ DECLSPEC void sha384_update_vector_128 (sha384_ctx_vector_t *ctx, u32x w0[4], u3 ctx->len += len; - if (pos == 0) + if ((pos + len) < 128) { - if (len < 128) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - ctx->w4[0] = w4[0]; - ctx->w4[1] = w4[1]; - ctx->w4[2] = w4[2]; - ctx->w4[3] = w4[3]; - ctx->w5[0] = w5[0]; - ctx->w5[1] = w5[1]; - ctx->w5[2] = w5[2]; - ctx->w5[3] = w5[3]; - ctx->w6[0] = w6[0]; - ctx->w6[1] = w6[1]; - ctx->w6[2] = w6[2]; - ctx->w6[3] = w6[3]; - ctx->w7[0] = w7[0]; - ctx->w7[1] = w7[1]; - ctx->w7[2] = w7[2]; - ctx->w7[3] = w7[3]; - } - else - { - sha384_transform_vector (w0, w1, w2, w3, w4, w5, w6, w7, ctx->h); + switch_buffer_by_offset_8x4_be (w0, w1, w2, w3, w4, w5, w6, w7, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - ctx->w4[0] = 0; - ctx->w4[1] = 0; - ctx->w4[2] = 0; - ctx->w4[3] = 0; - ctx->w5[0] = 0; - ctx->w5[1] = 0; - ctx->w5[2] = 0; - ctx->w5[3] = 0; - ctx->w6[0] = 0; - ctx->w6[1] = 0; - ctx->w6[2] = 0; - ctx->w6[3] = 0; - ctx->w7[0] = 0; - ctx->w7[1] = 0; - ctx->w7[2] = 0; - ctx->w7[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; } else { - if ((pos + len) < 128) - { - switch_buffer_by_offset_8x4_be (w0, w1, w2, w3, w4, w5, w6, w7, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; + u32x c4[4] = { 0 }; + u32x c5[4] = { 0 }; + u32x c6[4] = { 0 }; + u32x c7[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; - u32x c4[4] = { 0 }; - u32x c5[4] = { 0 }; - u32x c6[4] = { 0 }; - u32x c7[4] = { 0 }; + switch_buffer_by_offset_8x4_carry_be (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); - switch_buffer_by_offset_8x4_carry_be (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; + sha384_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - sha384_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - ctx->w4[0] = c4[0]; - ctx->w4[1] = c4[1]; - ctx->w4[2] = c4[2]; - ctx->w4[3] = c4[3]; - ctx->w5[0] = c5[0]; - ctx->w5[1] = c5[1]; - ctx->w5[2] = c5[2]; - ctx->w5[3] = c5[3]; - ctx->w6[0] = c6[0]; - ctx->w6[1] = c6[1]; - ctx->w6[2] = c6[2]; - ctx->w6[3] = c6[3]; - ctx->w7[0] = c7[0]; - ctx->w7[1] = c7[1]; - ctx->w7[2] = c7[2]; - ctx->w7[3] = c7[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; + ctx->w4[0] = c4[0]; + ctx->w4[1] = c4[1]; + ctx->w4[2] = c4[2]; + ctx->w4[3] = c4[3]; + ctx->w5[0] = c5[0]; + ctx->w5[1] = c5[1]; + ctx->w5[2] = c5[2]; + ctx->w5[3] = c5[3]; + ctx->w6[0] = c6[0]; + ctx->w6[1] = c6[1]; + ctx->w6[2] = c6[2]; + ctx->w6[3] = c6[3]; + ctx->w7[0] = c7[0]; + ctx->w7[1] = c7[1]; + ctx->w7[2] = c7[2]; + ctx->w7[3] = c7[3]; } } diff --git a/OpenCL/inc_hash_sha512.cl b/OpenCL/inc_hash_sha512.cl index c7ab37e47..b94677d16 100644 --- a/OpenCL/inc_hash_sha512.cl +++ b/OpenCL/inc_hash_sha512.cl @@ -189,201 +189,123 @@ DECLSPEC void sha512_update_128 (sha512_ctx_t *ctx, u32 w0[4], u32 w1[4], u32 w2 ctx->len += len; - if (pos == 0) + if ((pos + len) < 128) { - if (len < 128) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - ctx->w4[0] = w4[0]; - ctx->w4[1] = w4[1]; - ctx->w4[2] = w4[2]; - ctx->w4[3] = w4[3]; - ctx->w5[0] = w5[0]; - ctx->w5[1] = w5[1]; - ctx->w5[2] = w5[2]; - ctx->w5[3] = w5[3]; - ctx->w6[0] = w6[0]; - ctx->w6[1] = w6[1]; - ctx->w6[2] = w6[2]; - ctx->w6[3] = w6[3]; - ctx->w7[0] = w7[0]; - ctx->w7[1] = w7[1]; - ctx->w7[2] = w7[2]; - ctx->w7[3] = w7[3]; - } - else - { - sha512_transform (w0, w1, w2, w3, w4, w5, w6, w7, ctx->h); + switch_buffer_by_offset_8x4_be_S (w0, w1, w2, w3, w4, w5, w6, w7, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - ctx->w4[0] = 0; - ctx->w4[1] = 0; - ctx->w4[2] = 0; - ctx->w4[3] = 0; - ctx->w5[0] = 0; - ctx->w5[1] = 0; - ctx->w5[2] = 0; - ctx->w5[3] = 0; - ctx->w6[0] = 0; - ctx->w6[1] = 0; - ctx->w6[2] = 0; - ctx->w6[3] = 0; - ctx->w7[0] = 0; - ctx->w7[1] = 0; - ctx->w7[2] = 0; - ctx->w7[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; } else { - if ((pos + len) < 128) - { - switch_buffer_by_offset_8x4_be_S (w0, w1, w2, w3, w4, w5, w6, w7, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; + u32 c4[4] = { 0 }; + u32 c5[4] = { 0 }; + u32 c6[4] = { 0 }; + u32 c7[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; - u32 c4[4] = { 0 }; - u32 c5[4] = { 0 }; - u32 c6[4] = { 0 }; - u32 c7[4] = { 0 }; + switch_buffer_by_offset_8x4_carry_be_S (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); - switch_buffer_by_offset_8x4_carry_be_S (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; + sha512_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - sha512_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - ctx->w4[0] = c4[0]; - ctx->w4[1] = c4[1]; - ctx->w4[2] = c4[2]; - ctx->w4[3] = c4[3]; - ctx->w5[0] = c5[0]; - ctx->w5[1] = c5[1]; - ctx->w5[2] = c5[2]; - ctx->w5[3] = c5[3]; - ctx->w6[0] = c6[0]; - ctx->w6[1] = c6[1]; - ctx->w6[2] = c6[2]; - ctx->w6[3] = c6[3]; - ctx->w7[0] = c7[0]; - ctx->w7[1] = c7[1]; - ctx->w7[2] = c7[2]; - ctx->w7[3] = c7[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; + ctx->w4[0] = c4[0]; + ctx->w4[1] = c4[1]; + ctx->w4[2] = c4[2]; + ctx->w4[3] = c4[3]; + ctx->w5[0] = c5[0]; + ctx->w5[1] = c5[1]; + ctx->w5[2] = c5[2]; + ctx->w5[3] = c5[3]; + ctx->w6[0] = c6[0]; + ctx->w6[1] = c6[1]; + ctx->w6[2] = c6[2]; + ctx->w6[3] = c6[3]; + ctx->w7[0] = c7[0]; + ctx->w7[1] = c7[1]; + ctx->w7[2] = c7[2]; + ctx->w7[3] = c7[3]; } } @@ -2094,201 +2016,123 @@ DECLSPEC void sha512_update_vector_128 (sha512_ctx_vector_t *ctx, u32x w0[4], u3 ctx->len += len; - if (pos == 0) + if ((pos + len) < 128) { - if (len < 128) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - ctx->w4[0] = w4[0]; - ctx->w4[1] = w4[1]; - ctx->w4[2] = w4[2]; - ctx->w4[3] = w4[3]; - ctx->w5[0] = w5[0]; - ctx->w5[1] = w5[1]; - ctx->w5[2] = w5[2]; - ctx->w5[3] = w5[3]; - ctx->w6[0] = w6[0]; - ctx->w6[1] = w6[1]; - ctx->w6[2] = w6[2]; - ctx->w6[3] = w6[3]; - ctx->w7[0] = w7[0]; - ctx->w7[1] = w7[1]; - ctx->w7[2] = w7[2]; - ctx->w7[3] = w7[3]; - } - else - { - sha512_transform_vector (w0, w1, w2, w3, w4, w5, w6, w7, ctx->h); + switch_buffer_by_offset_8x4_be (w0, w1, w2, w3, w4, w5, w6, w7, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - ctx->w4[0] = 0; - ctx->w4[1] = 0; - ctx->w4[2] = 0; - ctx->w4[3] = 0; - ctx->w5[0] = 0; - ctx->w5[1] = 0; - ctx->w5[2] = 0; - ctx->w5[3] = 0; - ctx->w6[0] = 0; - ctx->w6[1] = 0; - ctx->w6[2] = 0; - ctx->w6[3] = 0; - ctx->w7[0] = 0; - ctx->w7[1] = 0; - ctx->w7[2] = 0; - ctx->w7[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; } else { - if ((pos + len) < 128) - { - switch_buffer_by_offset_8x4_be (w0, w1, w2, w3, w4, w5, w6, w7, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; + u32x c4[4] = { 0 }; + u32x c5[4] = { 0 }; + u32x c6[4] = { 0 }; + u32x c7[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; - u32x c4[4] = { 0 }; - u32x c5[4] = { 0 }; - u32x c6[4] = { 0 }; - u32x c7[4] = { 0 }; + switch_buffer_by_offset_8x4_carry_be (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); - switch_buffer_by_offset_8x4_carry_be (w0, w1, w2, w3, w4, w5, w6, w7, c0, c1, c2, c3, c4, c5, c6, c7, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; + ctx->w4[0] |= w4[0]; + ctx->w4[1] |= w4[1]; + ctx->w4[2] |= w4[2]; + ctx->w4[3] |= w4[3]; + ctx->w5[0] |= w5[0]; + ctx->w5[1] |= w5[1]; + ctx->w5[2] |= w5[2]; + ctx->w5[3] |= w5[3]; + ctx->w6[0] |= w6[0]; + ctx->w6[1] |= w6[1]; + ctx->w6[2] |= w6[2]; + ctx->w6[3] |= w6[3]; + ctx->w7[0] |= w7[0]; + ctx->w7[1] |= w7[1]; + ctx->w7[2] |= w7[2]; + ctx->w7[3] |= w7[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - ctx->w4[0] |= w4[0]; - ctx->w4[1] |= w4[1]; - ctx->w4[2] |= w4[2]; - ctx->w4[3] |= w4[3]; - ctx->w5[0] |= w5[0]; - ctx->w5[1] |= w5[1]; - ctx->w5[2] |= w5[2]; - ctx->w5[3] |= w5[3]; - ctx->w6[0] |= w6[0]; - ctx->w6[1] |= w6[1]; - ctx->w6[2] |= w6[2]; - ctx->w6[3] |= w6[3]; - ctx->w7[0] |= w7[0]; - ctx->w7[1] |= w7[1]; - ctx->w7[2] |= w7[2]; - ctx->w7[3] |= w7[3]; + sha512_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - sha512_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->w4, ctx->w5, ctx->w6, ctx->w7, ctx->h); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - ctx->w4[0] = c4[0]; - ctx->w4[1] = c4[1]; - ctx->w4[2] = c4[2]; - ctx->w4[3] = c4[3]; - ctx->w5[0] = c5[0]; - ctx->w5[1] = c5[1]; - ctx->w5[2] = c5[2]; - ctx->w5[3] = c5[3]; - ctx->w6[0] = c6[0]; - ctx->w6[1] = c6[1]; - ctx->w6[2] = c6[2]; - ctx->w6[3] = c6[3]; - ctx->w7[0] = c7[0]; - ctx->w7[1] = c7[1]; - ctx->w7[2] = c7[2]; - ctx->w7[3] = c7[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; + ctx->w4[0] = c4[0]; + ctx->w4[1] = c4[1]; + ctx->w4[2] = c4[2]; + ctx->w4[3] = c4[3]; + ctx->w5[0] = c5[0]; + ctx->w5[1] = c5[1]; + ctx->w5[2] = c5[2]; + ctx->w5[3] = c5[3]; + ctx->w6[0] = c6[0]; + ctx->w6[1] = c6[1]; + ctx->w6[2] = c6[2]; + ctx->w6[3] = c6[3]; + ctx->w7[0] = c7[0]; + ctx->w7[1] = c7[1]; + ctx->w7[2] = c7[2]; + ctx->w7[3] = c7[3]; } } diff --git a/OpenCL/inc_hash_whirlpool.cl b/OpenCL/inc_hash_whirlpool.cl index 960c4c551..ffbe7d5f6 100644 --- a/OpenCL/inc_hash_whirlpool.cl +++ b/OpenCL/inc_hash_whirlpool.cl @@ -1348,117 +1348,71 @@ DECLSPEC void whirlpool_update_64 (whirlpool_ctx_t *ctx, u32 w0[4], u32 w1[4], u ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - whirlpool_transform (w0, w1, w2, w3, ctx->h, ctx->s_Ch, ctx->s_Cl); + switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be_S (w0, w1, w2, w3, pos); + u32 c0[4] = { 0 }; + u32 c1[4] = { 0 }; + u32 c2[4] = { 0 }; + u32 c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32 c0[4] = { 0 }; - u32 c1[4] = { 0 }; - u32 c2[4] = { 0 }; - u32 c3[4] = { 0 }; + switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be_S (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + whirlpool_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h, ctx->s_Ch, ctx->s_Cl); - whirlpool_transform (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h, ctx->s_Ch, ctx->s_Cl); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } } @@ -2653,117 +2607,71 @@ DECLSPEC void whirlpool_update_vector_64 (whirlpool_ctx_vector_t *ctx, u32x w0[4 ctx->len += len; - if (pos == 0) + if ((pos + len) < 64) { - if (len < 64) - { - ctx->w0[0] = w0[0]; - ctx->w0[1] = w0[1]; - ctx->w0[2] = w0[2]; - ctx->w0[3] = w0[3]; - ctx->w1[0] = w1[0]; - ctx->w1[1] = w1[1]; - ctx->w1[2] = w1[2]; - ctx->w1[3] = w1[3]; - ctx->w2[0] = w2[0]; - ctx->w2[1] = w2[1]; - ctx->w2[2] = w2[2]; - ctx->w2[3] = w2[3]; - ctx->w3[0] = w3[0]; - ctx->w3[1] = w3[1]; - ctx->w3[2] = w3[2]; - ctx->w3[3] = w3[3]; - } - else - { - whirlpool_transform_vector (w0, w1, w2, w3, ctx->h, ctx->s_Ch, ctx->s_Cl); + switch_buffer_by_offset_be (w0, w1, w2, w3, pos); - ctx->w0[0] = 0; - ctx->w0[1] = 0; - ctx->w0[2] = 0; - ctx->w0[3] = 0; - ctx->w1[0] = 0; - ctx->w1[1] = 0; - ctx->w1[2] = 0; - ctx->w1[3] = 0; - ctx->w2[0] = 0; - ctx->w2[1] = 0; - ctx->w2[2] = 0; - ctx->w2[3] = 0; - ctx->w3[0] = 0; - ctx->w3[1] = 0; - ctx->w3[2] = 0; - ctx->w3[3] = 0; - } + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; } else { - if ((pos + len) < 64) - { - switch_buffer_by_offset_be (w0, w1, w2, w3, pos); + u32x c0[4] = { 0 }; + u32x c1[4] = { 0 }; + u32x c2[4] = { 0 }; + u32x c3[4] = { 0 }; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; - } - else - { - u32x c0[4] = { 0 }; - u32x c1[4] = { 0 }; - u32x c2[4] = { 0 }; - u32x c3[4] = { 0 }; + switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); - switch_buffer_by_offset_carry_be (w0, w1, w2, w3, c0, c1, c2, c3, pos); + ctx->w0[0] |= w0[0]; + ctx->w0[1] |= w0[1]; + ctx->w0[2] |= w0[2]; + ctx->w0[3] |= w0[3]; + ctx->w1[0] |= w1[0]; + ctx->w1[1] |= w1[1]; + ctx->w1[2] |= w1[2]; + ctx->w1[3] |= w1[3]; + ctx->w2[0] |= w2[0]; + ctx->w2[1] |= w2[1]; + ctx->w2[2] |= w2[2]; + ctx->w2[3] |= w2[3]; + ctx->w3[0] |= w3[0]; + ctx->w3[1] |= w3[1]; + ctx->w3[2] |= w3[2]; + ctx->w3[3] |= w3[3]; - ctx->w0[0] |= w0[0]; - ctx->w0[1] |= w0[1]; - ctx->w0[2] |= w0[2]; - ctx->w0[3] |= w0[3]; - ctx->w1[0] |= w1[0]; - ctx->w1[1] |= w1[1]; - ctx->w1[2] |= w1[2]; - ctx->w1[3] |= w1[3]; - ctx->w2[0] |= w2[0]; - ctx->w2[1] |= w2[1]; - ctx->w2[2] |= w2[2]; - ctx->w2[3] |= w2[3]; - ctx->w3[0] |= w3[0]; - ctx->w3[1] |= w3[1]; - ctx->w3[2] |= w3[2]; - ctx->w3[3] |= w3[3]; + whirlpool_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h, ctx->s_Ch, ctx->s_Cl); - whirlpool_transform_vector (ctx->w0, ctx->w1, ctx->w2, ctx->w3, ctx->h, ctx->s_Ch, ctx->s_Cl); - - ctx->w0[0] = c0[0]; - ctx->w0[1] = c0[1]; - ctx->w0[2] = c0[2]; - ctx->w0[3] = c0[3]; - ctx->w1[0] = c1[0]; - ctx->w1[1] = c1[1]; - ctx->w1[2] = c1[2]; - ctx->w1[3] = c1[3]; - ctx->w2[0] = c2[0]; - ctx->w2[1] = c2[1]; - ctx->w2[2] = c2[2]; - ctx->w2[3] = c2[3]; - ctx->w3[0] = c3[0]; - ctx->w3[1] = c3[1]; - ctx->w3[2] = c3[2]; - ctx->w3[3] = c3[3]; - } + ctx->w0[0] = c0[0]; + ctx->w0[1] = c0[1]; + ctx->w0[2] = c0[2]; + ctx->w0[3] = c0[3]; + ctx->w1[0] = c1[0]; + ctx->w1[1] = c1[1]; + ctx->w1[2] = c1[2]; + ctx->w1[3] = c1[3]; + ctx->w2[0] = c2[0]; + ctx->w2[1] = c2[1]; + ctx->w2[2] = c2[2]; + ctx->w2[3] = c2[3]; + ctx->w3[0] = c3[0]; + ctx->w3[1] = c3[1]; + ctx->w3[2] = c3[2]; + ctx->w3[3] = c3[3]; } }