|
|
|
@ -6,6 +6,8 @@
|
|
|
|
|
#ifndef _INC_HASH_STREEBOG512_H
|
|
|
|
|
#define _INC_HASH_STREEBOG512_H
|
|
|
|
|
|
|
|
|
|
#define BOX_S(S,n,i) ((S)[(n)][(i)])
|
|
|
|
|
|
|
|
|
|
#if VECT_SIZE == 1
|
|
|
|
|
#define BOX(S,n,i) ((S)[(n)][(i)])
|
|
|
|
|
|
|
|
|
@ -17,15 +19,25 @@
|
|
|
|
|
|
|
|
|
|
#elif VECT_SIZE == 8
|
|
|
|
|
#define BOX(S,n,i) make_u64x ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], \
|
|
|
|
|
(S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7])
|
|
|
|
|
(S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7])
|
|
|
|
|
|
|
|
|
|
#elif VECT_SIZE == 16
|
|
|
|
|
#define BOX(S,n,i) make_u64x ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], \
|
|
|
|
|
(S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], \
|
|
|
|
|
(S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], \
|
|
|
|
|
(S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf])
|
|
|
|
|
(S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], \
|
|
|
|
|
(S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], \
|
|
|
|
|
(S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf])
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define SBOG_LPSti64_S \
|
|
|
|
|
BOX_S (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX_S (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX_S (s_sbob_sl64, 2, ((t[2] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX_S (s_sbob_sl64, 3, ((t[3] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX_S (s_sbob_sl64, 4, ((t[4] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX_S (s_sbob_sl64, 5, ((t[5] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX_S (s_sbob_sl64, 6, ((t[6] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX_S (s_sbob_sl64, 7, ((t[7] >> (i * 8)) & 0xff))
|
|
|
|
|
|
|
|
|
|
#define SBOG_LPSti64 \
|
|
|
|
|
BOX (s_sbob_sl64, 0, ((t[0] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|
BOX (s_sbob_sl64, 1, ((t[1] >> (i * 8)) & 0xff)) ^ \
|
|
|
|
|