Crypt::DSA::Key - DSA key
my $key = Crypt::DSA::Key->new;
contains a DSA key, both the public and private portions.
Subclasses of Crypt::DSA::Key
methods, such that you can store DSA keys on disk, and read them back into
Any of the key attributes can be accessed through combination get/set methods.
The key attributes are: p
. For example:
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
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.
Returns the key on success, "undef" otherwise. (See Password
for one reason why new
might return "undef").
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
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.
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.
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
Writes a key (optionally) to disk, using a format that you define with the
If your $key
object has a defined priv_key
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.
The type of file format that you wish to write. PEM is one example
(in fact, currently, it's the only example).
This argument is mandatory, unless your $key
object is already blessed into a subclass (eg.
Crypt::DSA::Key::PEM), and you wish to write the file using the
The location of the file on disk where you want the key file to be
If you want the key file to be encrypted, provide this argument, and the
ASN.1-encoded string will be encrypted using the passphrase as a key.
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