package rand

import "crypto/internal/rand"

Index

Variables

var Reader io.Reader = reader{}

Reader is an io.Reader that calls drbg.Read.

It should be used internally instead of crypto/rand.Reader, because the latter can be set by applications outside of tests. These applications then risk breaking between Go releases, if the way the Reader is used changes.

Functions

func CustomReader

func CustomReader(r io.Reader) io.Reader

CustomReader returns Reader or, only if the GODEBUG setting "cryptocustomrand=1" is set, the provided io.Reader.

If returning a non-default Reader, it calls randutil.MaybeReadByte on it.

func IsDefaultReader

func IsDefaultReader(r io.Reader) bool

IsDefaultReader reports whether r is the default crypto/rand.Reader.

If true, the Read method of r can be assumed to call drbg.Read.

func SetTestingReader

func SetTestingReader(r io.Reader)

SetTestingReader overrides all calls to drbg.Read. The Read method of r must never return an error or return short.

SetTestingReader panics when building against Go Cryptographic Module v1.0.0.

SetTestingReader is pulled by testing/cryptotest.setGlobalRandom via go:linkname.