Source File
rand.go
Belonging Package
crypto/internal/fips140/drbg
// Copyright 2024 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// Package drbg provides cryptographically secure random bytes// usable by FIPS code. In FIPS mode it uses an SP 800-90A Rev. 1// Deterministic Random Bit Generator (DRBG). Otherwise,// it uses the operating system's random number generator.package drbgimport ()// Read fills b with cryptographically secure random bytes. In FIPS mode, it// uses an SP 800-90A Rev. 1 Deterministic Random Bit Generator (DRBG).// Otherwise, it uses the operating system's random number generator.func ( []byte) {if testingReader != nil {fips140.RecordNonApproved()// Avoid letting b escape in the non-testing case.:= make([]byte, len())testingReader.Read()copy(, )return}if !fips140.Enabled {sysrand.Read()return}readFromEntropy()}var testingReader io.Reader// SetTestingReader sets a global, deterministic cryptographic randomness source// for testing purposes. Its Read method must never return an error, it must// never return short, and it must be safe for concurrent use.//// This is only intended to be used by the testing/cryptotest package.func ( io.Reader) {testingReader =}// DefaultReader is a sentinel type, embedded in the default// [crypto/rand.Reader], used to recognize it when passed to// APIs that accept a rand io.Reader.//// Any Reader that implements this interface is assumed to// call [Read] as its Read method.type DefaultReader interface{ defaultReader() }// ReadWithReader uses Reader to fill b with cryptographically secure random// bytes. It is intended for use in APIs that expose a rand io.Reader.func ( io.Reader, []byte) error {if , := .(DefaultReader); {Read()return nil}fips140.RecordNonApproved(), := io.ReadFull(, )return}
![]() |
The pages are generated with Golds v0.8.4. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |