// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build fuchsia

package rand

import "syscall/zx"

func init() {
	Reader = new(cprngReader)
}

// cprngReader uses the PRNG exposed by zircon syscall.
//
// TODO(crawshaw): does it perform as well as /dev/urandom?
// If not, borrow newReader from rand_unix.go and use this
// as the entropy source.
type cprngReader struct{}

func (r *cprngReader) Read(b []byte) (n int, err error) {
	zx.RandRead(b)
	return len(b), nil
}
