Source file
src/crypto/rand/rand_windows.go
1
2
3
4
5
6
7
8 package rand
9
10 import (
11 "internal/syscall/windows"
12 "os"
13 )
14
15 func init() { Reader = &rngReader{} }
16
17 type rngReader struct{}
18
19 func (r *rngReader) Read(b []byte) (n int, err error) {
20
21 inputLen := uint32(len(b))
22
23 if inputLen == 0 {
24 return 0, nil
25 }
26
27 err = windows.RtlGenRandom(b)
28 if err != nil {
29 return 0, os.NewSyscallError("RtlGenRandom", err)
30 }
31 return int(inputLen), nil
32 }
33
View as plain text