MCPcopy Create free account
hub / github.com/F-Stack/f-stack / gf128_mul4b

Function gf128_mul4b

freebsd/opencrypto/gfmult.c:258–275  ·  view source on GitHub ↗

* a = data[0..15] + r * b = data[16..31] * c = data[32..47] * d = data[48..63] * * Calculate a*h^4 + b*h^3 + c*h^2 + d*h, or: * (((a*h+b)*h+c)*h+d)*h */

Source from the content-addressed store, hash-verified

256 * (((a*h+b)*h+c)*h+d)*h
257 */
258struct gf128
259gf128_mul4b(struct gf128 r, const uint8_t *v, struct gf128table4 *tbl)
260{
261 struct gf128 a, b, c, d;
262 struct gf128 tmp;
263
264 tmp = MAKE_GF128(0, 0);
265
266 a = gf128_add(r, gf128_read(&v[0*16]));
267 b = gf128_read(&v[1*16]);
268 c = gf128_read(&v[2*16]);
269 d = gf128_read(&v[3*16]);
270
271 tmp = gfmultword4(a.v[1], b.v[1], c.v[1], d.v[1], tmp, tbl);
272 tmp = gfmultword4(a.v[0], b.v[0], c.v[0], d.v[0], tmp, tbl);
273
274 return tmp;
275}

Callers 1

AES_GMAC_UpdateFunction · 0.85

Calls 3

gf128_addFunction · 0.85
gf128_readFunction · 0.85
gfmultword4Function · 0.85

Tested by

no test coverage detected