SM3_CBLOCK
.block_size = SM3_CBLOCK,
in += SM3_CBLOCK;
if (len >= SM3_CBLOCK || len + n >= SM3_CBLOCK) {
memcpy(p + n, data, SM3_CBLOCK - n);
n = SM3_CBLOCK - n;
memset(p, 0, SM3_CBLOCK); /* keep it zeroed */
n = len / SM3_CBLOCK;
n *= SM3_CBLOCK;
if (n > (SM3_CBLOCK - 8)) {
memset(p + n, 0, SM3_CBLOCK - n);
memset(p + n, 0, SM3_CBLOCK - 8 - n);
memset(p, 0, SM3_CBLOCK);
#define SM3_LBLOCK (SM3_CBLOCK / 4)