From a9c110b3c0fa9ff13b7f1f63c5d4b22f828032dd Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 16 Jul 2024 17:10:54 +0300 Subject: [PATCH] Use modern Go's clear() --- go.mod | 2 +- internal/gost34112012/hash.go | 2 +- mgm/mode.go | 8 ++------ mgm/mul64.go | 4 +--- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index f77e39a..2b80ff5 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 40eb2f0..ffd1bc0 100644 --- a/internal/gost34112012/hash.go +++ b/internal/gost34112012/hash.go @@ -264,8 +264,8 @@ func New(size int) *Hash { 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 ba41973..588e9ad 100644 --- a/mgm/mode.go +++ b/mgm/mode.go @@ -110,9 +110,7 @@ func (mgm *MGM) validateSizes(text, additionalData []byte) { } 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 @@ func (mgm *MGM) auth(out, text, ad []byte) { } 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 11265e2..201710c 100644 --- a/mgm/mul64.go +++ b/mgm/mul64.go @@ -57,9 +57,7 @@ func (mul *mul64) Mul(x, y []byte) []byte { } 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[:] } -- 2.48.1