crypt/random.go
func (s *Random) Read(b []byte) (n int, err error) {
	s.mutex.Lock()
	defer s.mutex.Unlock()

	for i, _ := range b {
		b[i] = s.readByte()
	}

	return len(b), nil
}
func (s *Random) Read(b []byte) (n int, err error) {
	s.mutex.Lock()
	defer s.mutex.Unlock()

	for i, _ := range b {
		b[i] = s.readByte()
	}

	return len(b), nil
}
func ( s * Random ) Read ( b [ ] byte ) ( n int , err error ) { s . mutex . Lock ( ) defer s . mutex . Unlock ( ) for i , _ := range b { b [ i ] = s . readByte ( ) } return len ( b ) , nil }
// Read fills specified byte array with random data.
// Always return parameter array length and no errors.
Read fills specified byte array with random data . Always return parameter array length and no errors .