Crypt::DSA::KeyChain - DSA key generation system
use Crypt::DSA::KeyChain;
my $keychain = Crypt::DSA::KeyChain->new;
my $key = $keychain->generate_params(
Size => 512,
Seed => $seed,
Verbosity => 1,
);
$keychain->generate_keys($key);
Crypt::DSA::KeyChain is a lower-level interface to key generation than
the interface in
Crypt::DSA (the
keygen method). It allows you
to separately generate the
p,
q, and
g key parameters,
given an optional starting seed, and a mandatory bit size for
p
(
q and
g are 160 bits each).
You can then call
generate_keys to generate the public and private
portions of the key.
Constructs a new
Crypt::DSA::KeyChain object. At the moment this isn't
particularly useful in itself, other than being the object you need in order
to call the other methods.
Returns the new object.
Generates a set of DSA parameters: the
p,
q, and
g values
of the key. This involves finding primes, and as such it can be a relatively
long process.
When invoked in scalar context, returns a new
Crypt::DSA::Key object.
In list context, returns the new
Crypt::DSA::Key object, along with: the
value of the internal counter when a suitable prime
p was found; the
value of
h when
g was derived; and the value of the seed (a
20-byte string) when
q was found. These values aren't particularly
useful in normal circumstances, but they could be useful.
%arg can contain:
- •
- Size
The size in bits of the p value to generate. The q and
g values are always 160 bits each.
This argument is mandatory.
- •
- Seed
A seed with which q generation will begin. If this seed does not lead
to a suitable prime, it will be discarded, and a new random seed chosen in
its place, until a suitable prime can be found.
This is entirely optional, and if not provided a random seed will be
generated automatically.
- •
- Verbosity
Should be either 0 or 1. A value of 1 will give you a progress meter during
p and q generation--this can be useful, since the process
can be relatively long.
The default is 0.
Generates the public and private portions of the key
$key,
a
Crypt::DSA::Key object.
Please see the Crypt::DSA manpage for author, copyright, and license
information.