@ -852,6 +861,18 @@ void GOST_g_0_0(uint64_t* h, uint64_t* const M) // input h assumed zero, for iv
@@ -852,6 +861,18 @@ void GOST_g_0_0(uint64_t* h, uint64_t* const M) // input h assumed zero, for iv
GOST_Xor512 (h, t, M); // h = t ^ M
}
__device__
void GOST_g_0_1(uint64_t* h, uint64_t* const M) // input h assumed all bytes one, for iv 256
{
#pragma unroll
for(int i = 0; i < 8; i++) h[i] = 0x155f7bb040eec523; // GOST_F(1)
uint64_t t[8];
GOST_E(h, M, t);
GOST_Xor512_c(h, t, M, 0x0101010101010101); // h = t ^ M ^ 1