|
|
- package crypto
-
- import (
- crand "crypto/rand"
- "encoding/hex"
- "io"
- )
-
- // This only uses the OS's randomness
- func randBytes(numBytes int) []byte {
- b := make([]byte, numBytes)
- _, err := crand.Read(b)
- if err != nil {
- panic(err)
- }
- return b
- }
-
- // This only uses the OS's randomness
- func CRandBytes(numBytes int) []byte {
- return randBytes(numBytes)
- }
-
- // CRandHex returns a hex encoded string that's floor(numDigits/2) * 2 long.
- //
- // Note: CRandHex(24) gives 96 bits of randomness that
- // are usually strong enough for most purposes.
- func CRandHex(numDigits int) string {
- return hex.EncodeToString(CRandBytes(numDigits / 2))
- }
-
- // Returns a crand.Reader.
- func CReader() io.Reader {
- return crand.Reader
- }
|