Source file src/crypto/rand/rand_arc4random.go

     1  // Copyright 2024 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  //go:build darwin || openbsd
     6  
     7  package rand
     8  
     9  import "internal/syscall/unix"
    10  
    11  // arc4random_buf is the recommended application CSPRNG, accepts buffers of
    12  // any size, and never returns an error.
    13  //
    14  // "The subsystem is re-seeded from the kernel random number subsystem on a
    15  // regular basis, and also upon fork(2)." - arc4random(3)
    16  //
    17  // Note that despite its legacy name, it uses a secure CSPRNG (not RC4) in
    18  // all supported macOS versions.
    19  func read(b []byte) error {
    20  	unix.ARC4Random(b)
    21  	return nil
    22  }
    23  

View as plain text