Processes an entire message.
| 282 | } |
| 283 | // Processes an entire message. |
| 284 | static constexpr IntermediateData ProcessMessage(const char *message, |
| 285 | const uint32_t n) { |
| 286 | const uint32_t m = GetPaddedMessageLength(n); |
| 287 | IntermediateData intermediate0 = kInitialIntermediateData; |
| 288 | for (uint32_t offset = 0; offset < m; offset += 64) { |
| 289 | RoundData data = GetRoundData(message, n, m, offset); |
| 290 | IntermediateData intermediate1 = intermediate0; |
| 291 | for (uint32_t i = 0; i < 64; ++i) |
| 292 | intermediate1 = ApplyStep(i, data, intermediate1); |
| 293 | intermediate0 = Add(intermediate0, intermediate1); |
| 294 | } |
| 295 | return intermediate0; |
| 296 | } |
| 297 | ////////////////////////////////////////////////////////////////////////////// |
| 298 | // HELPER FUNCTIONS |
| 299 | static constexpr uint32_t StringLength(const char *string) { |