GMAC_BLOCK_LEN
memcpy(ctx->Z, ctx->S, GMAC_BLOCK_LEN);
plen = len % GMAC_BLOCK_LEN;
if (len >= GMAC_BLOCK_LEN)
ghash_update(&ctx->ghash, blk, GMAC_BLOCK_LEN);
uint8_t keystream[GMAC_BLOCK_LEN], *k, *d;
ctx->J[GMAC_BLOCK_LEN - 1] = 1;
GMAC_INT v[GMAC_BLOCK_LEN/GMAC_INTLEN];
memcpy(v, Y, GMAC_BLOCK_LEN);
memset(product, 0, GMAC_BLOCK_LEN);
for (i = 0; i < GMAC_BLOCK_LEN * 8; i++) {
for (i = 0; i < len / GMAC_BLOCK_LEN; i++) {
for (j = 0; j < GMAC_BLOCK_LEN/GMAC_INTLEN; j++) {
GMAC_INT H[GMAC_BLOCK_LEN/GMAC_INTLEN]; /* hash subkey */
GMAC_INT S[GMAC_BLOCK_LEN/GMAC_INTLEN]; /* state */
GMAC_INT Z[GMAC_BLOCK_LEN/GMAC_INTLEN]; /* initial state */
uint8_t J[GMAC_BLOCK_LEN]; /* counter block */