From a193522f7e54cd747d549bc4adb83618aac223af Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Tue, 2 Mar 2021 16:56:51 +0700 Subject: [PATCH] crypto/keys/internal: use crypto/rand.Reader for generating private key (#8742) genPrivKey rejects invalid fieldelems, so we must use a real reader instead of the zero reader. Fixes #8741 --- crypto/keys/internal/benchmarking/bench.go | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/crypto/keys/internal/benchmarking/bench.go b/crypto/keys/internal/benchmarking/bench.go index a55936d5c3..aab5d5f303 100644 --- a/crypto/keys/internal/benchmarking/bench.go +++ b/crypto/keys/internal/benchmarking/bench.go @@ -1,6 +1,7 @@ package benchmarking import ( + "crypto/rand" "io" "testing" @@ -13,22 +14,12 @@ import ( // Use of this source code is governed by a BSD-style // license that can be found at the bottom of this file. -type zeroReader struct{} - -func (zeroReader) Read(buf []byte) (int, error) { - for i := range buf { - buf[i] = 0 - } - return len(buf), nil -} - // BenchmarkKeyGeneration benchmarks the given key generation algorithm using // a dummy reader. func BenchmarkKeyGeneration(b *testing.B, generateKey func(reader io.Reader) types.PrivKey) { b.ReportAllocs() - var zero zeroReader for i := 0; i < b.N; i++ { - generateKey(zero) + generateKey(rand.Reader) } }