From 5c7f06b21876cdcdf76184f696ee55bf3227ecbf Mon Sep 17 00:00:00 2001 From: Quan guanyu Date: Mon, 29 Sep 2025 09:20:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drbg/common.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drbg/common.go b/drbg/common.go index 6cd0142..91d3279 100644 --- a/drbg/common.go +++ b/drbg/common.go @@ -265,20 +265,20 @@ func (hd *BaseDrbg) setSecurityLevel(securityLevel SecurityLevel) { // Destroy 对 GM/T 0105-2021 B.2、E.2 对内部状态进行清零处理 // 内部状态组成为 {V,C, reseed_counter, last_reseed_time,reseed_interval_in_counter, reseed_interval_in_time} // 内部状态组成为 {V,Key, reseed_counter, last_reseed_time,reseed_interval_in_counter, reseed_interval_in_time} -func (cd *BaseDrbg) Destroy() { - setZero(cd.v) - cd.seedLength = 0 +func (hd *BaseDrbg) Destroy() { + setZero(hd.v) + hd.seedLength = 0 for i := 0; i < 3; i++ { // 使用原子操作防止编译器优化 - atomic.StoreUint64(&cd.reseedCounter, 0xFFFFFFFFFFFFFFFF) - atomic.StoreUint64(&cd.reseedCounter, 0x00) - atomic.StoreUint64(&cd.reseedIntervalInCounter, 0xFFFFFFFFFFFFFFFF) - atomic.StoreUint64(&cd.reseedIntervalInCounter, 0x00) + atomic.StoreUint64(&hd.reseedCounter, 0xFFFFFFFFFFFFFFFF) + atomic.StoreUint64(&hd.reseedCounter, 0x00) + atomic.StoreUint64(&hd.reseedIntervalInCounter, 0xFFFFFFFFFFFFFFFF) + atomic.StoreUint64(&hd.reseedIntervalInCounter, 0x00) // 将 reseedIntervalInTime 设置内存屏障,防止编译器优化 - cd.reseedIntervalInTime = time.Duration(1<<63 - 1) - runtime.KeepAlive(&cd.reseedIntervalInTime) - cd.reseedIntervalInTime = time.Duration(0) - cd.reseedTime = time.Now() + hd.reseedIntervalInTime = time.Duration(1<<63 - 1) + runtime.KeepAlive(&hd.reseedIntervalInTime) + hd.reseedIntervalInTime = time.Duration(0) + hd.reseedTime = time.Now() } }