...
Run Format

Source file src/crypto/rand/rand_openbsd.go

Documentation: crypto/rand

  // Copyright 2016 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
  
  import (
  	"internal/syscall/unix"
  )
  
  func init() {
  	altGetRandom = getRandomOpenBSD
  }
  
  func getRandomOpenBSD(p []byte) (ok bool) {
  	// getentropy(2) returns a maximum of 256 bytes per call
  	for i := 0; i < len(p); i += 256 {
  		end := i + 256
  		if len(p) < end {
  			end = len(p)
  		}
  		err := unix.GetEntropy(p[i:end])
  		if err != nil {
  			return false
  		}
  	}
  	return true
  }
  

View as plain text