SHA256_BLOCK_LENGTH
u_int8_t k_ipad[SHA256_BLOCK_LENGTH];
if (key_len > SHA256_BLOCK_LENGTH) {
bzero(k_ipad, SHA256_BLOCK_LENGTH);
for (i = 0; i < SHA256_BLOCK_LENGTH; i++)
SHA256Update(&ctx->ctx, k_ipad, SHA256_BLOCK_LENGTH);
u_int8_t k_opad[SHA256_BLOCK_LENGTH];
bzero(k_opad, SHA256_BLOCK_LENGTH);
for (i = 0; i < SHA256_BLOCK_LENGTH; i++)
SHA256Update(&ctx->ctx, k_opad, SHA256_BLOCK_LENGTH);
u_int8_t key[SHA256_BLOCK_LENGTH];
memset(context->buffer, 0, SHA256_BLOCK_LENGTH);
usedspace = (context->bitcount[0] >> 3) % SHA256_BLOCK_LENGTH;
freespace = SHA256_BLOCK_LENGTH - usedspace;
while (len >= SHA256_BLOCK_LENGTH) {
context->bitcount[0] += SHA256_BLOCK_LENGTH << 3;
len -= SHA256_BLOCK_LENGTH;
data += SHA256_BLOCK_LENGTH;
usedspace = (context->bitcount[0] >> 3) % SHA256_BLOCK_LENGTH;
if (usedspace < SHA256_BLOCK_LENGTH) {
SHA256_BLOCK_LENGTH - usedspace);
#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
MEMSET_BZERO((char *)context->buffer, SHA256_BLOCK_LENGTH);
usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
freespace = SHA256_BLOCK_LENGTH - usedspace;
while (len >= SHA256_BLOCK_LENGTH) {
context->bitcount += SHA256_BLOCK_LENGTH << 3;
len -= SHA256_BLOCK_LENGTH;
data += SHA256_BLOCK_LENGTH;
usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH;
if (usedspace < SHA256_BLOCK_LENGTH) {
MEMSET_BZERO(&((char *)context->buffer)[usedspace], SHA256_BLOCK_LENGTH - usedspace);
uint32_t buffer[SHA256_BLOCK_LENGTH/4];