From fce17b0c774593da0dfb39b829464d1da8ceca77 Mon Sep 17 00:00:00 2001 From: Tom Thorogood Date: Tue, 10 Dec 2024 23:22:49 +1030 Subject: [PATCH] crypto/internal/fips140/ecdsa: fix reseed_counter check for HMAC_DRBG_Generate_algorithm SP 800-90A Rev. 1 10.1.2.5 step 7 requires reseed_counter = reseed_counter + 1 as the final step before returning SUCCESS. This increment of reseedCounter was missing, meaning the reseed interval check at the start of Generate wasn't actually functional. Given how it's used, and that it has a reseed interval of 2^48, this condition will never actually occur but the check is still required by the standard. For #69536 Change-Id: I314a7eee5852e6d0fa1a0a04842003553cd803e7 Reviewed-on: https://go-review.googlesource.com/c/go/+/634775 Reviewed-by: Carlos Amedee LUCI-TryBot-Result: Go LUCI Auto-Submit: Filippo Valsorda Reviewed-by: Filippo Valsorda Reviewed-by: Michael Knyszek --- src/crypto/internal/fips140/ecdsa/hmacdrbg.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/crypto/internal/fips140/ecdsa/hmacdrbg.go b/src/crypto/internal/fips140/ecdsa/hmacdrbg.go index 6fd7ac6974..4f085e2801 100644 --- a/src/crypto/internal/fips140/ecdsa/hmacdrbg.go +++ b/src/crypto/internal/fips140/ecdsa/hmacdrbg.go @@ -160,4 +160,6 @@ func (d *hmacDRBG) Generate(out []byte) { d.hK = d.newHMAC(K) d.hK.Write(d.V) d.V = d.hK.Sum(d.V[:0]) + + d.reseedCounter++ } -- 2.48.1