138 as_uint32(buf[4*i+3] & 0xff) |
139 as_uint32(buf[4*i+2] & 0xff)<<8 |
140 as_uint32(buf[4*i+1] & 0xff)<<16 |
141 as_uint32(buf[4*i+0] & 0xff)<<24;
144 std::uint32_t a = digest[0];
145 std::uint32_t b = digest[1];
146 std::uint32_t c = digest[2];
147 std::uint32_t d = digest[3];
148 std::uint32_t e = digest[4];
150 R0(block, a, b, c, d, e, 0);
151 R0(block, e, a, b, c, d, 1);
152 R0(block, d, e, a, b, c, 2);
153 R0(block, c, d, e, a, b, 3);
154 R0(block, b, c, d, e, a, 4);
155 R0(block, a, b, c, d, e, 5);
156 R0(block, e, a, b, c, d, 6);
157 R0(block, d, e, a, b, c, 7);
158 R0(block, c, d, e, a, b, 8);
159 R0(block, b, c, d, e, a, 9);
160 R0(block, a, b, c, d, e, 10);
161 R0(block, e, a, b, c, d, 11);
162 R0(block, d, e, a, b, c, 12);
163 R0(block, c, d, e, a, b, 13);
164 R0(block, b, c, d, e, a, 14);
165 R0(block, a, b, c, d, e, 15);
166 R1(block, e, a, b, c, d, 0);
167 R1(block, d, e, a, b, c, 1);
168 R1(block, c, d, e, a, b, 2);
169 R1(block, b, c, d, e, a, 3);
170 R2(block, a, b, c, d, e, 4);
171 R2(block, e, a, b, c, d, 5);
172 R2(block, d, e, a, b, c, 6);
173 R2(block, c, d, e, a, b, 7);
174 R2(block, b, c, d, e, a, 8);
175 R2(block, a, b, c, d, e, 9);
176 R2(block, e, a, b, c, d, 10);
177 R2(block, d, e, a, b, c, 11);
178 R2(block, c, d, e, a, b, 12);
179 R2(block, b, c, d, e, a, 13);
180 R2(block, a, b, c, d, e, 14);
181 R2(block, e, a, b, c, d, 15);
182 R2(block, d, e, a, b, c, 0);
183 R2(block, c, d, e, a, b, 1);
184 R2(block, b, c, d, e, a, 2);
185 R2(block, a, b, c, d, e, 3);
186 R2(block, e, a, b, c, d, 4);
187 R2(block, d, e, a, b, c, 5);
188 R2(block, c, d, e, a, b, 6);
189 R2(block, b, c, d, e, a, 7);
190 R3(block, a, b, c, d, e, 8);
191 R3(block, e, a, b, c, d, 9);
192 R3(block, d, e, a, b, c, 10);
193 R3(block, c, d, e, a, b, 11);
194 R3(block, b, c, d, e, a, 12);
195 R3(block, a, b, c, d, e, 13);
196 R3(block, e, a, b, c, d, 14);
197 R3(block, d, e, a, b, c, 15);
198 R3(block, c, d, e, a, b, 0);
199 R3(block, b, c, d, e, a, 1);
200 R3(block, a, b, c, d, e, 2);
201 R3(block, e, a, b, c, d, 3);
202 R3(block, d, e, a, b, c, 4);
203 R3(block, c, d, e, a, b, 5);
204 R3(block, b, c, d, e, a, 6);
205 R3(block, a, b, c, d, e, 7);
206 R3(block, e, a, b, c, d, 8);
207 R3(block, d, e, a, b, c, 9);
208 R3(block, c, d, e, a, b, 10);
209 R3(block, b, c, d, e, a, 11);
210 R4(block, a, b, c, d, e, 12);
211 R4(block, e, a, b, c, d, 13);
212 R4(block, d, e, a, b, c, 14);
213 R4(block, c, d, e, a, b, 15);
214 R4(block, b, c, d, e, a, 0);
215 R4(block, a, b, c, d, e, 1);
216 R4(block, e, a, b, c, d, 2);
217 R4(block, d, e, a, b, c, 3);
218 R4(block, c, d, e, a, b, 4);
219 R4(block, b, c, d, e, a, 5);
220 R4(block, a, b, c, d, e, 6);
221 R4(block, e, a, b, c, d, 7);
222 R4(block, d, e, a, b, c, 8);
223 R4(block, c, d, e, a, b, 9);
224 R4(block, b, c, d, e, a, 10);
225 R4(block, a, b, c, d, e, 11);
226 R4(block, e, a, b, c, d, 12);
227 R4(block, d, e, a, b, c, 13);
228 R4(block, c, d, e, a, b, 14);
229 R4(block, b, c, d, e, a, 15);