blob: a9f247f8ae80566bb16496a3f227840c163ba9e8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package util
import (
"bytes"
"crypto/rand"
"encoding/binary"
)
// RndArray fills a buffer with random content
func RndArray(b []byte) {
rand.Read(b)
}
// NewRndArray creates a new buffer of given size; filled with random content.
func NewRndArray(size int) []byte {
b := make([]byte, size)
rand.Read(b)
return b
}
// RndUInt64 returns a new 64-bit unsigned random integer.
func RndUInt64() uint64 {
b := make([]byte, 8)
RndArray(b)
var v uint64
c := bytes.NewBuffer(b)
binary.Read(c, binary.BigEndian, &v)
return v
}
// RndInt64 returns a new 64-bit signed random integer.
func RndInt64() int64 {
return int64(RndUInt64())
}
// RndUInt32 returns a new 32-bit unsigned random integer.
func RndUInt32() uint32 {
return uint32(RndUInt64())
}
// RndInt32 returns a new 32-bit signed random integer.
func RndInt32() int32 {
return int32(RndUInt64())
}
// RndUInt16 returns a new 16-bit unsigned random integer.
func RndUInt16() uint16 {
return uint16(RndUInt64())
}
// RndInt16 returns a new 16-bit signed random integer.
func RndInt16() int16 {
return int16(RndUInt64())
}
|