diff --git a/OpenCL/inc_hash_md4.cl b/OpenCL/inc_hash_md4.cl index 5cee3bb75..17ca3080d 100644 --- a/OpenCL/inc_hash_md4.cl +++ b/OpenCL/inc_hash_md4.cl @@ -925,6 +925,33 @@ void md4_init_vector (md4_ctx_vector_t *ctx) ctx->len = 0; } +void md4_init_vector_from_scalar (md4_ctx_vector_t *ctx, md4_ctx_t *ctx0) +{ + ctx->h[0] = ctx0->h[0]; + ctx->h[1] = ctx0->h[1]; + ctx->h[2] = ctx0->h[2]; + ctx->h[3] = ctx0->h[3]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + + ctx->len = ctx0->len; +} + void md4_update_vector_64 (md4_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], const int len) { const int pos = ctx->len & 63; diff --git a/OpenCL/inc_hash_md5.cl b/OpenCL/inc_hash_md5.cl index dc432e364..4aecd295c 100644 --- a/OpenCL/inc_hash_md5.cl +++ b/OpenCL/inc_hash_md5.cl @@ -993,6 +993,33 @@ void md5_init_vector (md5_ctx_vector_t *ctx) ctx->len = 0; } +void md5_init_vector_from_scalar (md5_ctx_vector_t *ctx, md5_ctx_t *ctx0) +{ + ctx->h[0] = ctx0->h[0]; + ctx->h[1] = ctx0->h[1]; + ctx->h[2] = ctx0->h[2]; + ctx->h[3] = ctx0->h[3]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + + ctx->len = ctx0->len; +} + void md5_update_vector_64 (md5_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], const int len) { const int pos = ctx->len & 63; diff --git a/OpenCL/inc_hash_ripemd160.cl b/OpenCL/inc_hash_ripemd160.cl index b3f0fce6b..b3d6c1251 100644 --- a/OpenCL/inc_hash_ripemd160.cl +++ b/OpenCL/inc_hash_ripemd160.cl @@ -1193,6 +1193,34 @@ void ripemd160_init_vector (ripemd160_ctx_vector_t *ctx) ctx->len = 0; } +void ripemd160_init_vector_from_scalar (ripemd160_ctx_vector_t *ctx, ripemd160_ctx_t *ctx0) +{ + ctx->h[0] = ctx0->h[0]; + ctx->h[1] = ctx0->h[1]; + ctx->h[2] = ctx0->h[2]; + ctx->h[3] = ctx0->h[3]; + ctx->h[4] = ctx0->h[4]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + + ctx->len = ctx0->len; +} + void ripemd160_update_vector_64 (ripemd160_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], const int len) { const int pos = ctx->len & 63; diff --git a/OpenCL/inc_hash_sha1.cl b/OpenCL/inc_hash_sha1.cl index b1944eea0..eb78ef879 100644 --- a/OpenCL/inc_hash_sha1.cl +++ b/OpenCL/inc_hash_sha1.cl @@ -1148,6 +1148,34 @@ void sha1_init_vector (sha1_ctx_vector_t *ctx) ctx->len = 0; } +void sha1_init_vector_from_scalar (sha1_ctx_vector_t *ctx, sha1_ctx_t *ctx0) +{ + ctx->h[0] = ctx0->h[0]; + ctx->h[1] = ctx0->h[1]; + ctx->h[2] = ctx0->h[2]; + ctx->h[3] = ctx0->h[3]; + ctx->h[4] = ctx0->h[4]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + + ctx->len = ctx0->len; +} + void sha1_update_vector_64 (sha1_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], const int len) { const int pos = ctx->len & 63; diff --git a/OpenCL/inc_hash_sha256.cl b/OpenCL/inc_hash_sha256.cl index 54aac336a..7cde7dbc0 100644 --- a/OpenCL/inc_hash_sha256.cl +++ b/OpenCL/inc_hash_sha256.cl @@ -1216,6 +1216,37 @@ void sha256_init_vector (sha256_ctx_vector_t *ctx) ctx->len = 0; } +void sha256_init_vector_from_scalar (sha256_ctx_vector_t *ctx, sha256_ctx_t *ctx0) +{ + ctx->h[0] = ctx0->h[0]; + ctx->h[1] = ctx0->h[1]; + ctx->h[2] = ctx0->h[2]; + ctx->h[3] = ctx0->h[3]; + ctx->h[4] = ctx0->h[4]; + ctx->h[5] = ctx0->h[5]; + ctx->h[6] = ctx0->h[6]; + ctx->h[7] = ctx0->h[7]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + + ctx->len = ctx0->len; +} + void sha256_update_vector_64 (sha256_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], const int len) { const int pos = ctx->len & 63; diff --git a/OpenCL/inc_hash_sha384.cl b/OpenCL/inc_hash_sha384.cl index 1510f9662..3cbfdfb6f 100644 --- a/OpenCL/inc_hash_sha384.cl +++ b/OpenCL/inc_hash_sha384.cl @@ -1657,6 +1657,53 @@ void sha384_init_vector (sha384_ctx_vector_t *ctx) ctx->len = 0; } +void sha384_init_vector_from_scalar (sha384_ctx_vector_t *ctx, sha384_ctx_t *ctx0) +{ + ctx->h[0] = ctx0->h[0]; + ctx->h[1] = ctx0->h[1]; + ctx->h[2] = ctx0->h[2]; + ctx->h[3] = ctx0->h[3]; + ctx->h[4] = ctx0->h[4]; + ctx->h[5] = ctx0->h[5]; + ctx->h[6] = ctx0->h[6]; + ctx->h[7] = ctx0->h[7]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + ctx->w4[0] = ctx0->w4[0]; + ctx->w4[1] = ctx0->w4[1]; + ctx->w4[2] = ctx0->w4[2]; + ctx->w4[3] = ctx0->w4[3]; + ctx->w5[0] = ctx0->w5[0]; + ctx->w5[1] = ctx0->w5[1]; + ctx->w5[2] = ctx0->w5[2]; + ctx->w5[3] = ctx0->w5[3]; + ctx->w6[0] = ctx0->w6[0]; + ctx->w6[1] = ctx0->w6[1]; + ctx->w6[2] = ctx0->w6[2]; + ctx->w6[3] = ctx0->w6[3]; + ctx->w7[0] = ctx0->w7[0]; + ctx->w7[1] = ctx0->w7[1]; + ctx->w7[2] = ctx0->w7[2]; + ctx->w7[3] = ctx0->w7[3]; + + ctx->len = ctx0->len; +} + void sha384_update_vector_128 (sha384_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], u32x w4[4], u32x w5[4], u32x w6[4], u32x w7[4], const int len) { const int pos = ctx->len & 127; diff --git a/OpenCL/inc_hash_sha512.cl b/OpenCL/inc_hash_sha512.cl index 490933503..5ba6722db 100644 --- a/OpenCL/inc_hash_sha512.cl +++ b/OpenCL/inc_hash_sha512.cl @@ -1657,6 +1657,53 @@ void sha512_init_vector (sha512_ctx_vector_t *ctx) ctx->len = 0; } +void sha512_init_vector_from_scalar (sha512_ctx_vector_t *ctx, sha512_ctx_t *ctx0) +{ + ctx->h[0] = ctx0->h[0]; + ctx->h[1] = ctx0->h[1]; + ctx->h[2] = ctx0->h[2]; + ctx->h[3] = ctx0->h[3]; + ctx->h[4] = ctx0->h[4]; + ctx->h[5] = ctx0->h[5]; + ctx->h[6] = ctx0->h[6]; + ctx->h[7] = ctx0->h[7]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + ctx->w4[0] = ctx0->w4[0]; + ctx->w4[1] = ctx0->w4[1]; + ctx->w4[2] = ctx0->w4[2]; + ctx->w4[3] = ctx0->w4[3]; + ctx->w5[0] = ctx0->w5[0]; + ctx->w5[1] = ctx0->w5[1]; + ctx->w5[2] = ctx0->w5[2]; + ctx->w5[3] = ctx0->w5[3]; + ctx->w6[0] = ctx0->w6[0]; + ctx->w6[1] = ctx0->w6[1]; + ctx->w6[2] = ctx0->w6[2]; + ctx->w6[3] = ctx0->w6[3]; + ctx->w7[0] = ctx0->w7[0]; + ctx->w7[1] = ctx0->w7[1]; + ctx->w7[2] = ctx0->w7[2]; + ctx->w7[3] = ctx0->w7[3]; + + ctx->len = ctx0->len; +} + void sha512_update_vector_128 (sha512_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], u32x w4[4], u32x w5[4], u32x w6[4], u32x w7[4], const int len) { const int pos = ctx->len & 127; diff --git a/OpenCL/inc_hash_whirlpool.cl b/OpenCL/inc_hash_whirlpool.cl index 2c780da86..3454f4ea5 100644 --- a/OpenCL/inc_hash_whirlpool.cl +++ b/OpenCL/inc_hash_whirlpool.cl @@ -2374,6 +2374,48 @@ void whirlpool_init_vector (whirlpool_ctx_vector_t *ctx, __local u32 (*s_Ch)[256 ctx->s_Cl = s_Cl; } +void whirlpool_init_vector_from_scalar (whirlpool_ctx_vector_t *ctx, whirlpool_ctx_t *ctx0) +{ + ctx->h[ 0] = ctx0->h[ 0]; + ctx->h[ 1] = ctx0->h[ 1]; + ctx->h[ 2] = ctx0->h[ 2]; + ctx->h[ 3] = ctx0->h[ 3]; + ctx->h[ 4] = ctx0->h[ 4]; + ctx->h[ 5] = ctx0->h[ 5]; + ctx->h[ 6] = ctx0->h[ 6]; + ctx->h[ 7] = ctx0->h[ 7]; + ctx->h[ 8] = ctx0->h[ 8]; + ctx->h[ 9] = ctx0->h[ 9]; + ctx->h[10] = ctx0->h[10]; + ctx->h[11] = ctx0->h[11]; + ctx->h[12] = ctx0->h[12]; + ctx->h[13] = ctx0->h[13]; + ctx->h[14] = ctx0->h[14]; + ctx->h[15] = ctx0->h[15]; + + ctx->w0[0] = ctx0->w0[0]; + ctx->w0[1] = ctx0->w0[1]; + ctx->w0[2] = ctx0->w0[2]; + ctx->w0[3] = ctx0->w0[3]; + ctx->w1[0] = ctx0->w1[0]; + ctx->w1[1] = ctx0->w1[1]; + ctx->w1[2] = ctx0->w1[2]; + ctx->w1[3] = ctx0->w1[3]; + ctx->w2[0] = ctx0->w2[0]; + ctx->w2[1] = ctx0->w2[1]; + ctx->w2[2] = ctx0->w2[2]; + ctx->w2[3] = ctx0->w2[3]; + ctx->w3[0] = ctx0->w3[0]; + ctx->w3[1] = ctx0->w3[1]; + ctx->w3[2] = ctx0->w3[2]; + ctx->w3[3] = ctx0->w3[3]; + + ctx->len = ctx0->len; + + ctx->s_Ch = ctx0->s_Ch; + ctx->s_Cl = ctx0->s_Cl; +} + void whirlpool_update_vector_64 (whirlpool_ctx_vector_t *ctx, u32x w0[4], u32x w1[4], u32x w2[4], u32x w3[4], const int len) { const int pos = ctx->len & 63;