127 const std::array<uint32_t, 64>
k_ = {
128 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,
129 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,
130 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,
131 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
132 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,
133 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
134 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,
135 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
136 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,
137 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,
138 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,
139 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
140 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
143 static void toBytes(uint8_t* output,
const std::array<uint32_t, 8>& input,
size_t size) {
144 for (
size_t i = 0; i < size; ++i) {
145 output[i * 4 + 0] = (input[i] >> 24) & 0xff;
146 output[i * 4 + 1] = (input[i] >> 16) & 0xff;
147 output[i * 4 + 2] = (input[i] >> 8) & 0xff;
148 output[i * 4 + 3] = (input[i] >> 0) & 0xff;