drbg
packagestandard libraryThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package drbg provides cryptographically secure random bytesusable by FIPS code. In FIPS mode it uses an SP 800-90A Rev. 1Deterministic Random Bit Generator (DRBG). Otherwise,it uses the operating system's random number generator.
Index¶
Constants¶
const (SeedSize = keySize +aes.BlockSize)Variables¶
This section is empty.
Functions¶
funcRead¶
func Read(b []byte)
Read fills b with cryptographically secure random bytes. In FIPS mode, ituses an SP 800-90A Rev. 1 Deterministic Random Bit Generator (DRBG).Otherwise, it uses the operating system's random number generator.
funcReadWithReader¶
ReadWithReader uses Reader to fill b with cryptographically secure randombytes. It is intended for use in APIs that expose a rand io.Reader.
If Reader is not the default Reader from crypto/rand,randutil.MaybeReadByte andfips140.RecordNonApproved are called.
funcReadWithReaderDeterministic¶
ReadWithReaderDeterministic is like ReadWithReader, but it doesn't callrandutil.MaybeReadByte on non-default Readers.
Types¶
typeCounter¶
type Counter struct {// contains filtered or unexported fields}Counter is an SP 800-90A Rev. 1 CTR_DRBG instantiated with AES-256.
Per Table 3, it has a security strength of 256 bits, a seed size of 384 bits,a counter length of 128 bits, a reseed interval of 2^48 requests, and amaximum request size of 2^19 bits (2^16 bytes, 64 KiB).
We support a narrow range of parameters that fit the needs of our RNG:AES-256, no derivation function, no personalization string, no predictionresistance, and 384-bit additional input.
WARNING: this type provides tightly scoped support for the DRBGfunctionality we need for FIPS 140-3 _only_. This type _should not_ be usedoutside of the FIPS 140-3 module for any other use.
In particular, as documented, Counter does not support the derivationfunction, or personalization strings which are necessary for safely usingthis DRBG for generic purposes without leaking sensitive values.
funcNewCounter¶
typeDefaultReader¶
type DefaultReader interface {// contains filtered or unexported methods}DefaultReader is a sentinel type, embedded in the defaultcrypto/rand.Reader, used to recognize it when passed toAPIs that accept a rand io.Reader.