You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/securerandom/random.go

29 lines
598 B

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: Apache-2.0
package securerandom
import (
"crypto/rand"
"io"
)
// secureRandom provides cryptographically secure random number generation.
type secureRandom struct {
Reader io.Reader
}
// getSecureRandom creates a new secureRandom instance.
func getSecureReader() *secureRandom {
return &secureRandom{
Reader: rand.Reader,
}
}
var readRandom *secureRandom = getSecureReader()
// SecureRandomReader returns the package default io.Reader for secure randomness.
func SecureRandomReader() io.Reader {
return readRandom.Reader
}