Hi,
First of all: thank you very much for open sourcing OpenCL hashcat!
For a custom application based on sha256, I must get the digest value in `unsigned char` format.
It's OK with CPU implementation with deps\LZMA-SDK\CSha256.c
How to do with OpenCL implementation? (OpenCL\inc_hash_sha1.cl)
Thanks,
First of all: thank you very much for open sourcing OpenCL hashcat!
For a custom application based on sha256, I must get the digest value in `unsigned char` format.
It's OK with CPU implementation with deps\LZMA-SDK\CSha256.c
Code:
void Sha256_Final(CSha256 *p, Byte *digest)
{
.....
for (i = 0; i < 8; i += 2)
{
UInt32 v0 = p->state[i];
UInt32 v1 = p->state[i + 1];
SetBe32(digest , v0);
SetBe32(digest + 4, v1);
digest += 8;
}
}
How to do with OpenCL implementation? (OpenCL\inc_hash_sha1.cl)
Code:
__kernel void ocl_sha256(__global input_t *input, const unsigned int gid_max)
{
unsigned int lid = get_local_id(0);
unsigned int gid = get_global_id(0);
if (gid >= gid_max) return;
// TODO
unsigned int test[64] = { 0 };
sha1_ctx_t ctx0;
sha1_init(&ctx0);
sha1_update(&ctx0, test, 64);
sha1_final(&ctx0);
/*
unsigned int digest32[4] = { ctx0.h[0], ctx0.h[1], ctx0.h[2], ctx0.h[3] }
unsigned char digest8[16] = ????
*/
}
Thanks,