2012-03-27 23:13:14 +00:00
|
|
|
// Copyright 2010 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 rand implements a cryptographically secure
|
|
|
|
// pseudorandom number generator.
|
|
|
|
package rand
|
|
|
|
|
|
|
|
import "io"
|
|
|
|
|
|
|
|
// Reader is a global, shared instance of a cryptographically
|
|
|
|
// strong pseudo-random generator.
|
2017-04-10 11:32:00 +00:00
|
|
|
//
|
2012-03-27 23:13:14 +00:00
|
|
|
// On Unix-like systems, Reader reads from /dev/urandom.
|
2017-04-10 11:32:00 +00:00
|
|
|
// On Linux, Reader uses getrandom(2) if available, /dev/urandom otherwise.
|
2012-03-27 23:13:14 +00:00
|
|
|
// On Windows systems, Reader uses the CryptGenRandom API.
|
|
|
|
var Reader io.Reader
|
|
|
|
|
2014-09-21 17:33:12 +00:00
|
|
|
// Read is a helper function that calls Reader.Read using io.ReadFull.
|
|
|
|
// On return, n == len(b) if and only if err == nil.
|
|
|
|
func Read(b []byte) (n int, err error) {
|
|
|
|
return io.ReadFull(Reader, b)
|
|
|
|
}
|