Crypt::DSA::Key - DSA key
use Crypt::DSA::Key;
my $key = Crypt::DSA::Key->new;
$key->p($p);
Crypt::DSA::Key contains a DSA key, both the public and
private portions. Subclasses of Crypt::DSA::Key implement
read and write methods, such that you can store DSA
keys on disk, and read them back into your application.
Any of the key attributes can be accessed through combination
get/set methods. The key attributes are: p, q, g,
priv_key, and pub_key. For example:
$key->p($p);
my $p2 = $key->p;
Creates a new (empty) key object. All of the attributes are
initialized to 0.
Alternately, if you provide the Filename parameter (see
below), the key will be read in from disk. If you provide
the Type parameter (mandatory if Filename is provided),
be aware that your key will actually be blessed into a subclass
of Crypt::DSA::Key. Specifically, it will be the class
implementing the specific read functionality for that type,
eg. Crypt::DSA::Key::PEM.
Returns the key on success, undef otherwise. (See Password
for one reason why new might return undef).
%arg can contain:
- Type
The type of file where the key is stored. Currently the only
option is PEM, which indicates a PEM file (optionally
encrypted, ASN.1-encoded object). Support for reading/writing
PEM files comes from Convert::PEM; if you don't have this
module installed, the new method will die.
This argument is mandatory, if you're either reading the file from
disk (ie. you provide a Filename argument) or you've specified the
Content argument.
- Filename
The location of the file from which you'd like to read the key.
Requires a Type argument so the decoder knows what type of file it
is. You can't specify Content and Filename at the same time.
- Content
The serialized version of the key. Requires a Type argument so the
decoder knows how to decode it. You can't specify Content and
Filename at the same time.
- Password
If your key file is encrypted, you'll need to supply a
passphrase to decrypt it. You can do that here.
If your passphrase is incorrect, new will return undef.
Writes a key (optionally) to disk, using a format that you
define with the Type parameter.
If your $key object has a defined priv_key (private key portion),
the key will be written as a DSA private key object; otherwise, it will
be written out as a public key. Note that not all serialization mechanisms
can produce public keys in this version--currently, only PEM public keys
are supported.
%arg can include:
Returns the size of the key, in bits. This is actually the
number of bits in the large prime p.
Please see the Crypt::DSA manpage for author, copyright,
and license information.
|