Code Examples
package main
import (
"bytes"
"crypto/rand"
"fmt"
)
func main() {
c := 10
b := make([]byte, c)
_, err := rand.Read(b)
if err != nil {
fmt.Println("error:", err)
return
}
// The slice should now contain random bytes instead of only zeroes.
fmt.Println(bytes.Equal(b, make([]byte, c)))
}
Package-Level Type Names (total 2, neither is exported)
/* sort exporteds by: | */
hideAgainReader masks EAGAIN reads from /dev/urandom.
See golang.org/issue/9205rio.Reader( hideAgainReader) Read(p []byte) (n int, err error)
hideAgainReader : io.Reader
A reader satisfies reads by reading from urandomDevicefio.Readermusync.Mutex // Atomic: 0 - never used, 1 - used, but f == nil, 2 - used, and f != nil(*reader) Read(b []byte) (n int, err error)
*reader : io.Reader
Package-Level Functions (total 8, in which 3 are exported)
Int returns a uniform random value in [0, max). It panics if max <= 0.
Prime returns a number of the given bit length that is prime with high probability.
Prime will return error for any error returned by rand.Read or if bits < 2.
Read is a helper function that calls Reader.Read using io.ReadFull.
On return, n == len(b) if and only if err == nil.
batched returns a function that calls f to populate a []byte by chunking it
into subslices of, at most, readMax bytes.
If the kernel is too old to support the getrandom syscall(),
unix.GetRandom will immediately return ENOSYS and we will then fall back to
reading from /dev/urandom in rand_unix.go. unix.GetRandom caches the ENOSYS
result so we only suffer the syscall overhead once in this case.
If the kernel supports the getrandom() syscall, unix.GetRandom will block
until the kernel has sufficient randomness (as we don't use GRND_NONBLOCK).
In this case, unix.GetRandom will not return an error.
Package-Level Variables (total 2, in which 1 is exported)
Reader is a global, shared instance of a cryptographically
secure random number generator.
On Linux, FreeBSD, Dragonfly, NetBSD and Solaris, Reader uses getrandom(2) if
available, /dev/urandom otherwise.
On OpenBSD and macOS, Reader uses getentropy(2).
On other Unix-like systems, Reader reads from /dev/urandom.
On Windows systems, Reader uses the ProcessPrng API.
On JS/Wasm, Reader uses the Web Crypto API.
On WASIP1/Wasm, Reader uses random_get from wasi_snapshot_preview1.
altGetRandom if non-nil specifies an OS-specific function to get
urandom-style randomness.
Package-Level Constants (only one, which is unexported)
The pages are generated with Goldsv0.6.7. (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 @Go100and1 (reachable from the left QR code) to get the latest news of Golds.