...
1 package rand
2
3 import (
4 "crypto/rand"
5 "fmt"
6 "io"
7 "math/big"
8 )
9
10 func init() {
11 Reader = rand.Reader
12 }
13
14
15 var Reader io.Reader
16
17
18 func Int63n(reader io.Reader, max int64) (int64, error) {
19 bi, err := rand.Int(reader, big.NewInt(max))
20 if err != nil {
21 return 0, fmt.Errorf("failed to read random value, %w", err)
22 }
23
24 return bi.Int64(), nil
25 }
26
27
28
29 func CryptoRandInt63n(max int64) (int64, error) {
30 return Int63n(Reader, max)
31 }
32
View as plain text