25 lines
		
	
	
		
			430 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			430 B
		
	
	
	
		
			Go
		
	
	
	
	
	
|   | package ethutil | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"crypto/rand" | ||
|  | 	"encoding/binary" | ||
|  | 	"io" | ||
|  | ) | ||
|  | 
 | ||
|  | func randomUint64(r io.Reader) (uint64, error) { | ||
|  | 	b := make([]byte, 8) | ||
|  | 	n, err := r.Read(b) | ||
|  | 	if n != len(b) { | ||
|  | 		return 0, io.ErrShortBuffer | ||
|  | 	} | ||
|  | 	if err != nil { | ||
|  | 		return 0, err | ||
|  | 	} | ||
|  | 	return binary.BigEndian.Uint64(b), nil | ||
|  | } | ||
|  | 
 | ||
|  | // RandomUint64 returns a cryptographically random uint64 value. | ||
|  | func RandomUint64() (uint64, error) { | ||
|  | 	return randomUint64(rand.Reader) | ||
|  | } |