---
name: "Crypt::Random::Source::Base"
section: "3pm"
platform: "linux"
package: "libcrypt-random-source-perl"
version: "0.14-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Crypt::Random::Source::Base"
---

# Crypt::Random::Source::Base(3pm)

Abstract base class for Crypt::Random::Source classes

## NAME

Crypt::Random::Source::Base - Abstract base class for Crypt::Random::Source classes

## VERSION

version 0.14

## SYNOPSIS

```
    use Moo;
    extends qw(Crypt::Random::Source::Base);
```

## DESCRIPTION

This is an abstract base class.

In the future it will be a role.

## METHODS

### get $n, %args

Gets `$n` random bytes and returns them as a string.

This method may produce fatal errors if the source was unable to provide enough data.

### read $buf, $n, \[ $off \]

This method is cannibalized from IO::Scalar. It provides an IO::Handle work-alike.

Note that subclasses override this to operate on a real handle directly if available.

### seed @stuff

On supporting sources this method will add `@stuff`, whatever it may be, to the random seed.

Some sources may not support this, so be careful.

### available

This is a class method, such that when it returns true calling `"new"` without arguments on the class should provide a working source of random data.

This is use by Crypt::Random::Source::Factory.

### rank

This is a class method, with some futz value for a ranking, to help known good sources be tried before known bad (slower, less available) sources.

### get\_data %Params

Provided for compatibility with Crypt::Random

## SUPPORT

Bugs may be submitted through the RT bug tracker \<https://rt.cpan.org/Public/Dist/Display.html?Name=Crypt-Random-Source\> (or bug-Crypt-Random-Source@rt.cpan.org \<mailto:bug-Crypt-Random-Source@rt.cpan.org\>).

## AUTHOR

XXXX XXX'XX (Yuval Kogman) \<nothingmuch@woobling.org\>

## COPYRIGHT AND LICENCE

This software is copyright (c) 2008 by Yuval Kogman.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
