INNER CODE UNIT · Go

n

emmansun/gmsm · cbcmac/cbcmac.go:314

		n := lenP &^ (d.blockSize - 1)
		if n == lenP {
			n -= d.blockSize
		}
		d.block(p[:n])
		p = p[n:]
	}
	// save remaining partial/full block
	if len(p) > 0 {
		d.nx = copy(d.x, p)
	}
	return
}

func (c *cmac) block(p []byte) {
	for len(p) >= c.blockSize {
		subtle.XORBytes(c.tag, p[:c.blockSize], c.tag)
		c.b.Encrypt(c.tag, c.tag)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…