Crypt::RSA::Key.3pm

Langue: en

Autres versions - même langue

Version: 2005-10-20 (mandriva - 22/10/07)

Section: 3 (Bibliothèques de fonctions)

NAME

Crypt::RSA::Key - RSA Key Pair Generator.

SYNOPSIS

     my $keychain = new Crypt::RSA::Key;
     my ($public, $private) = $keychain->generate ( 
                               Identity  => 'Lord Macbeth <macbeth@glamis.com>',
                               Size      => 2048,  
                               Password  => 'A day so foul & fair', 
                               Verbosity => 1,
                              ) or die $keychain->errstr();
 
 

DESCRIPTION

This module provides a method to generate an RSA key pair.

METHODS


new()

Constructor.

generate()

generate() generates an RSA key of specified bitsize. It returns a list of two elements, a Crypt::RSA::Key::Public object that holds the public part of the key pair and a Crypt::RSA::Key::Private object that holds that private part. On failure, it returns undef and sets $self->errstr to appropriate error string. generate() takes a hash argument with the following keys:

Size
Bitsize of the key to be generated. This should be an even integer > 48. Bitsize is a mandatory argument.
Password
String with which the private key will be encrypted. If Password is not provided the key will be stored unencrypted.
Identity
A string that identifies the owner of the key. This string usually takes the form of a name and an email address. The identity is not bound to the key with a signature. However, a future release or another module will provide this facility.
Cipher
The block cipher which is used for encrypting the private key. Defaults to `Blowfish'. Cipher could be set to any value that works with Crypt::CBC(3) and Tie::EncryptedHash(3).
Verbosity
When set to 1, generate() will draw a progress display on STDOUT.
Filename
The generated key pair will be written to disk, in $Filename.public and $Filename.private files, if this argument is provided. Disk writes can be deferred by skipping this argument and achieved later with the write() method of Crypt::RSA::Key::Public(3) and Crypt::RSA::Key::Private(3).
KF
A string that specifies the key format. As of this writing, two key formats, `Native' and `SSH', are supported. KF defaults to `Native'.
SKF
Secret (Private) Key Format. Instead of specifying KF, the user could choose to specify secret and public key formats separately. The value for SKF can be a string (``Native'' or ``SSH'') or a hash reference that specifies a module name, its constructor and constructor arguments. The specified module is loaded with Class::Loader(3) and must be interface compatible with Crypt::RSA::Key::Private(3).
PKF
Public Key Format. This option is like SKF but for the public key.

ERROR HANDLING

See ERROR HANDLING in Crypt::RSA(3) manpage.

BUGS

There's an inefficiency in the way generate() ensures the key pair is exactly Size bits long. This will be fixed in a future release.

AUTHOR

Vipul Ved Prakash, <mail@vipul.net>

SEE ALSO

Crypt::RSA(3), Crypt::RSA::Key::Public(3), Crypt::RSA::Key::Private(3), Crypt::Primes(3), Tie::EncryptedHash(3), Class::Loader(3)