- buf := make([]byte, xtea.BlockSize)
- cc.l.RLock()
- for pid, ct := range cc.c {
- ct.c.Decrypt(buf, data[len(data)-xtea.BlockSize:])
- AddTimeSync(ct.t, buf)
- if subtle.ConstantTimeCompare(buf, data[:xtea.BlockSize]) == 1 {
+ buf := make([]byte, 8)
+ mc.l.RLock()
+ for pid, mt := range mc.cache {
+ copy(buf, data)
+ AddTimeSync(mt.ts, buf)
+ mt.l.Lock()
+ mt.mac.Reset()
+ mt.mac.Write(buf)
+ mt.mac.Sum(buf[:0])
+ mt.l.Unlock()
+ if subtle.ConstantTimeCompare(buf, data[len(data)-8:]) == 1 {