Message
Message
h"
#include <stdlib.h>
hash[0] += a;
hash[1] += b;
hash[2] += c;
hash[3] += d;
hash[4] += e;
hash[5] += f;
hash[6] += g;
hash[7] += h;
}
hash[0] = 0x6a09e667;
hash[1] = 0xbb67ae85;
hash[2] = 0x3c6ef372;
hash[3] = 0xa54ff53a;
hash[4] = 0x510e527f;
hash[5] = 0x9b05688c;
hash[6] = 0x1f83d9ab;
hash[7] = 0x5be0cd19;
uint32_t index = 0;
while ((index + 1) * 512 <= message_len) {
compute_block(hash, message + index * 64);
++index;
}
if (message_len % 8 == 0) {
padded_end[message_len % 512 / 8] = 0x80;
} else {
padded_end[message_len % 512 / 8] = message[(message_len / 512) * 64 +
message_len % 512 / 8] | (1 << (8 - message_len % 8));
}
free(padded_end);
return 0;
}