extend CSPRNG to support math/rand.Source64 interface

This commit is contained in:
Vladislav Yarmak
2023-02-02 00:26:21 +02:00
parent 4b8cb56ff5
commit 73e6bca7a3

View File

@@ -10,6 +10,7 @@ type secureRandomSource struct{}
var RandomSource secureRandomSource
var int63Limit = big.NewInt(0).Lsh(big.NewInt(1), 63)
var int64Limit = big.NewInt(0).Lsh(big.NewInt(1), 64)
func (_ secureRandomSource) Seed(_ int64) {
}
@@ -21,3 +22,11 @@ func (_ secureRandomSource) Int63() int64 {
}
return randNum.Int64()
}
func (_ secureRandomSource) Uint64() uint64 {
randNum, err := crand.Int(crand.Reader, int64Limit)
if err != nil {
panic(err)
}
return randNum.Uint64()
}