go.mod | 2 +- internal/gost34112012/hash.go | 2 +- mgm/mode.go | 8 ++------ mgm/mul64.go | 4 +--- diff --git a/go.mod b/go.mod index 093e0945fa0d5cf4dd7b18524408bafd05710f77c41c9dd4e29fa948f4ca9b21..f892ca64f132883bbf1c2c4534f3a3835907956e831eb3400ff99e59c909b811 100644 --- a/go.mod +++ b/go.mod @@ -1,5 +1,5 @@ module go.cypherpunks.ru/gogost/v5 -go 1.20 +go 1.21 require golang.org/x/crypto v0.16.0 diff --git a/internal/gost34112012/hash.go b/internal/gost34112012/hash.go index b17397f38408986b2f5bcd61289dc3fa11614974e44bfb07d36d7984a03c6697..344784564ce6e9cbe62a81cc9ed790a7d04031b488219f4da324193a815f71d3 100644 --- a/internal/gost34112012/hash.go +++ b/internal/gost34112012/hash.go @@ -264,8 +264,8 @@ func (h *Hash) Reset() { h.n = 0 h.buf = nil + clear(h.chk) for i := 0; i < BlockSize; i++ { - h.chk[i] = 0 if h.size == 32 { h.hsh[i] = 1 } else { diff --git a/mgm/mode.go b/mgm/mode.go index 566a2a3918648f81d969bd3fe16847581a4f740739e55ba511c2070eb3e554d6..6c01ca3d00c929d8dff1501e74088a96b5cecbf3fb939e99101e25fa62f41081 100644 --- a/mgm/mode.go +++ b/mgm/mode.go @@ -110,9 +110,7 @@ } } func (mgm *MGM) auth(out, text, ad []byte) { - for i := 0; i < mgm.BlockSize; i++ { - mgm.sum[i] = 0 - } + clear(mgm.sum) adLen := len(ad) * 8 textLen := len(text) * 8 mgm.icn[0] |= 0x80 @@ -129,9 +127,7 @@ ad = ad[mgm.BlockSize:] } if len(ad) > 0 { copy(mgm.padded, ad) - for i := len(ad); i < mgm.BlockSize; i++ { - mgm.padded[i] = 0 - } + clear(mgm.padded[len(ad):]) mgm.cipher.Encrypt(mgm.bufC, mgm.bufP) subtle.XORBytes(mgm.sum, mgm.sum, mgm.mul.Mul(mgm.bufC, mgm.padded)) incr(mgm.bufP[:mgm.BlockSize/2]) diff --git a/mgm/mul64.go b/mgm/mul64.go index 0ef063a7f405bd6399d0a25c9e2aaddcf16182dd2aeb1524fe2a5154adbe9178..ebe3891f20e2aacc7c4f8e5fb682441ee6c5d06e5a674e06bcad06e0b81514ed 100644 --- a/mgm/mul64.go +++ b/mgm/mul64.go @@ -57,9 +57,7 @@ mul.y.Rsh(mul.y, 1) } zBytes := mul.z.Bytes() rem := len(x) - len(zBytes) - for i := 0; i < rem; i++ { - mul.buf[i] = 0 - } + clear(mul.buf[:rem]) copy(mul.buf[rem:], zBytes) return mul.buf[:] }