## table of contents

Crypt::DSA::KeyChain(3pm) | User Contributed Perl Documentation | Crypt::DSA::KeyChain(3pm) |

# NAME¶

Crypt::DSA::KeyChain - DSA key generation system

# SYNOPSIS¶

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);

# DESCRIPTION¶

*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.

# USAGE¶

## $keychain = Crypt::DSA::KeyChain->new¶

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.

## $key = $keychain->generate_params(%arg)¶

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.

## $keychain->generate_keys($key)¶

Generates the public and private portions of the key
*$key*, a *Crypt::DSA::Key*
object.

# AUTHOR & COPYRIGHT¶

Please see the Crypt::DSA manpage for author, copyright, and license information.

2015-09-01 | perl v5.20.2 |