25 gcry_md_hd_t handle = NULL;
27 unsigned char *hash = NULL;
30 err = gcry_md_open (&handle, GCRY_MD_SHA256, 0);
34 gcry_md_write(handle, data, size);
35 hash = gcry_md_read(handle, GCRY_MD_SHA256);
40 finalhash =
static_cast<uint64_t
>(hash[0] ^ hash[8] ^ hash[16] ^ hash[24]) << 56;
41 finalhash |=
static_cast<uint64_t
>(hash[1] ^ hash[9] ^ hash[17] ^ hash[25]) << 48;
42 finalhash |=
static_cast<uint64_t
>(hash[2] ^ hash[10] ^ hash[18] ^ hash[26]) << 40;
43 finalhash |=
static_cast<uint64_t
>(hash[3] ^ hash[11] ^ hash[19] ^ hash[27]) << 32;
44 finalhash |=
static_cast<uint64_t
>(hash[4] ^ hash[12] ^ hash[20] ^ hash[28]) << 24;
45 finalhash |=
static_cast<uint64_t
>(hash[5] ^ hash[13] ^ hash[21] ^ hash[29]) << 16;
46 finalhash |=
static_cast<uint64_t
>(hash[6] ^ hash[14] ^ hash[22] ^ hash[30]) << 8;
47 finalhash |=
static_cast<uint64_t
>(hash[7] ^ hash[15] ^ hash[23] ^ hash[31]);