Lines Matching refs:agc
39 AES_GMAC_Init(struct aes_gmac_ctx *agc)
42 bzero(agc, sizeof *agc);
46 AES_GMAC_Setkey(struct aes_gmac_ctx *agc, const uint8_t *key, uint16_t klen)
52 agc->rounds = rijndaelKeySetupEnc(agc->keysched, key, klen * 8);
54 rijndaelEncrypt(agc->keysched, agc->rounds, zeros, hbuf);
57 gf128_genmultable4(h, &agc->ghashtbl);
64 AES_GMAC_Reinit(struct aes_gmac_ctx *agc, const uint8_t *iv, uint16_t ivlen)
67 KASSERT(ivlen <= sizeof agc->counter, ("passed ivlen too large!"));
68 bcopy(iv, agc->counter, ivlen);
72 AES_GMAC_Update(struct aes_gmac_ctx *agc, const uint8_t *data, uint16_t len)
78 v = agc->hash;
83 v = gf128_mul4b(v, data, &agc->ghashtbl);
87 v = gf128_mul(v, &agc->ghashtbl.tbls[0]);
92 v = gf128_mul(v, &agc->ghashtbl.tbls[0]);
99 agc->hash = v;
106 AES_GMAC_Final(uint8_t digest[GMAC_DIGEST_LEN], struct aes_gmac_ctx *agc)
112 agc->counter[GMAC_BLOCK_LEN - 1] = 1;
114 rijndaelEncrypt(agc->keysched, agc->rounds, agc->counter, enccntr);
115 a = gf128_add(agc->hash, gf128_read(enccntr));