github.com/karalabe/go-ethereum@v0.8.5/ethutil/rand.go (about) 1 package ethutil 2 3 import ( 4 "crypto/rand" 5 "encoding/binary" 6 "io" 7 ) 8 9 func randomUint64(r io.Reader) (uint64, error) { 10 b := make([]byte, 8) 11 n, err := r.Read(b) 12 if n != len(b) { 13 return 0, io.ErrShortBuffer 14 } 15 if err != nil { 16 return 0, err 17 } 18 return binary.BigEndian.Uint64(b), nil 19 } 20 21 // RandomUint64 returns a cryptographically random uint64 value. 22 func RandomUint64() (uint64, error) { 23 return randomUint64(rand.Reader) 24 }