SHA256_BLOCK_LENGTH
data += SHA256_BLOCK_LENGTH;
__u8 final_data[2 * SHA256_BLOCK_LENGTH] = { 0 };
size_t final_len = len % SHA256_BLOCK_LENGTH;
sha256_blocks(state, data, len / SHA256_BLOCK_LENGTH);
final_len = roundup(final_len + 9, SHA256_BLOCK_LENGTH);
sha256_blocks(state, final_data, final_len / SHA256_BLOCK_LENGTH);