void sha256_final(sha256_ctx *p) { uint64_t len; p->in[p->inlen++] = 0x80; if(p->inlen > 56) { memset(p->in + p->inlen, 0, 64 - p->inlen); sha256_block(p); } memset(p->in + p->inlen, 0, 56 - p->inlen); len = p->len << 3; ST32BE(p->in + 56, len >> 32); ST32BE(p->in + 60, len); sha256_block(p); }
static void sha256_final(struct sha256_ctx *p) { uint64_t len; p->in.u8[p->inlen++] = 0x80; if (p->inlen > 56) { memset(p->in.u8 + p->inlen, 0, 64 - p->inlen); sha256_block(p); } memset(p->in.u8 + p->inlen, 0, 56 - p->inlen); len = p->len << 3; store32be(p->in.u32 + 14, (uint32_t)(len >> 32)); store32be(p->in.u32 + 15, (uint32_t)len); sha256_block(p); }
void sha256_chunk(sha256_ctx *p, const uint8_t *s, unsigned len) { unsigned l; p->len += len; while(len) { l = 64 - p->inlen; l = (len < l) ? len : l; memcpy(p->in + p->inlen, s, l); s += l; p->inlen += l; len -= l; if(p->inlen == 64) sha256_block(p); } }
static void sha256_chunk(struct sha256_ctx *p, const uint8_t *s, unsigned len) { p->len += len; while (len) { unsigned l = 64 - p->inlen; if (len < l) l = len; memcpy(p->in.u8 + p->inlen, s, l); s += l; p->inlen += l; len -= l; if (p->inlen == 64) sha256_block(p); } }
void HASH_BLOCK_DATA_ORDER (SHA256_CTX *ctx, const void *in, size_t num) { sha256_block (ctx,in,num,0); }