github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/crypto/rand/rand.go (about)

     1  // Copyright 2010 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Package randは、暗号学的に安全な乱数生成器を実装しています。
     6  package rand
     7  
     8  import "github.com/shogo82148/std/io"
     9  
    10  // Readerは暗号学的に安全な乱数生成器のグローバルで共有されたインスタンスです。
    11  //
    12  //   - Linux、FreeBSD、Dragonfly、Solarisでは、Readerは利用可能な場合はgetrandom(2)を使用し、
    13  //     それ以外の場合は/dev/urandomを使用します。
    14  //   - macOSとiOSでは、Readerはarc4random_buf(3)を使用します。
    15  //   - OpenBSDとNetBSDでは、Readerはgetentropy(2)を使用します。
    16  //   - 他のUnix系システムでは、Readerは/dev/urandomから読み取ります。
    17  //   - Windowsでは、ReaderはProcessPrng APIを使用します。
    18  //   - js/wasmでは、ReaderはWeb Crypto APIを使用します。
    19  //   - wasip1/wasmでは、Readerはwasi_snapshot_preview1からrandom_getを使用します。
    20  var Reader io.Reader
    21  
    22  // Readはio.ReadFullを使ってReader.Readを呼び出すヘルパー関数です。
    23  // 帰り値として、n == len(b) は err == nil の場合に限り成り立ちます。
    24  func Read(b []byte) (n int, err error)