rand_darwin.odin 463 B

1234567891011121314151617
  1. package crypto
  2. import "core:fmt"
  3. import CF "core:sys/darwin/CoreFoundation"
  4. import Sec "core:sys/darwin/Security"
  5. HAS_RAND_BYTES :: true
  6. @(private)
  7. _rand_bytes :: proc(dst: []byte) {
  8. err := Sec.RandomCopyBytes(count=len(dst), bytes=raw_data(dst))
  9. if err != .Success {
  10. msg := CF.StringCopyToOdinString(Sec.CopyErrorMessageString(err))
  11. panic(fmt.tprintf("crypto/rand_bytes: SecRandomCopyBytes returned non-zero result: %v %s", err, msg))
  12. }
  13. }