18inline void FF4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t M0, uint32_t M1, uint32_t M2, uint32_t M3)
34inline void GG4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t M0, uint32_t M1, uint32_t M2, uint32_t M3)
56inline void HH4(uint32_t& A, uint32_t& B, uint32_t& C, uint32_t& D, uint32_t M0, uint32_t M1, uint32_t M2, uint32_t M3)
78 uint32_t A = digest[0], B = digest[1], C = digest[2], D = digest[3];
82 for(
size_t i = 0; i != blocks; ++i) {
102 FF4(A, B, C, D, M00, M01, M02, M03);
103 FF4(A, B, C, D, M04, M05, M06, M07);
104 FF4(A, B, C, D, M08, M09, M10, M11);
105 FF4(A, B, C, D, M12, M13, M14, M15);
107 GG4(A, B, C, D, M00, M04, M08, M12);
108 GG4(A, B, C, D, M01, M05, M09, M13);
109 GG4(A, B, C, D, M02, M06, M10, M14);
110 GG4(A, B, C, D, M03, M07, M11, M15);
112 HH4(A, B, C, D, M00, M08, M04, M12);
113 HH4(A, B, C, D, M02, M10, M06, M14);
114 HH4(A, B, C, D, M01, M09, M05, M13);
115 HH4(A, B, C, D, M03, M11, M07, M15);
117 A = (digest[0] += A);
118 B = (digest[1] += B);
119 C = (digest[2] += C);
120 D = (digest[3] += D);