HASH_CBLOCK
if (len >= HASH_CBLOCK || len + n >= HASH_CBLOCK) {
memcpy(p + n, data, HASH_CBLOCK - n);
n = HASH_CBLOCK - n;
memset(p, 0, HASH_CBLOCK); /* keep it zeroed */
n = len / HASH_CBLOCK;
n *= HASH_CBLOCK;
if (n > (HASH_CBLOCK - 8)) {
memset(p + n, 0, HASH_CBLOCK - n);
memset(p + n, 0, HASH_CBLOCK - 8 - n);
p += HASH_CBLOCK - 8;
p -= HASH_CBLOCK;
OPENSSL_cleanse(p, HASH_CBLOCK);
#ifndef HASH_CBLOCK
if (n > (HASH_CBLOCK - 8)) {
memset(p + n, 0, HASH_CBLOCK - n);
memset(p + n, 0, HASH_CBLOCK - 8 - n);
p += HASH_CBLOCK - 8;
p -= HASH_CBLOCK;
OPENSSL_cleanse(p, HASH_CBLOCK);
if (len >= HASH_CBLOCK || len + n >= HASH_CBLOCK) {
memcpy(p + n, data, HASH_CBLOCK - n);
n = HASH_CBLOCK - n;
memset(p, 0, HASH_CBLOCK); /* keep it zeroed */
n = len / HASH_CBLOCK;
n *= HASH_CBLOCK;