GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  CRYPT::OPENSSL::DSA (3)

.ds Aq ’

NAME

Crypt::OpenSSL::DSA - Digital Signature Algorithm using OpenSSL

CONTENTS

SYNOPSIS



  use Crypt::OpenSSL::DSA;

  # generate keys and write out to PEM files
  my $dsa = Crypt::OpenSSL::DSA->generate_parameters( 512 );
  $dsa->generate_key;
  $dsa->write_pub_key( $filename );
  $dsa->write_priv_key( $filename );

  # using keys from PEM files
  my $dsa_priv = Crypt::OpenSSL::DSA->read_priv_key( $filename );
  my $sig      = $dsa_priv->sign($message);
  my $dsa_pub  = Crypt::OpenSSL::DSA->read_pub_key( $filename );
  my $valid    = $dsa_pub->verify($message, $sig);

  # using keys from PEM strings
  my $dsa_priv = Crypt::OpenSSL::DSA->read_priv_key_str( $key_string );
  my $sig      = $dsa_priv->sign($message);
  my $dsa_pub  = Crypt::OpenSSL::DSA->read_pub_key_str( $key_string );
  my $valid    = $dsa_pub->verify($message, $sig);



DESCRIPTION

Crypt::OpenSSL::DSA implements the DSA (Digital Signature Algorithm) signature verification system.

It is a thin XS wrapper to the DSA functions contained in the OpenSSL crypto library, located at http://www.openssl.org

CLASS METHODS

$dsa = Crypt::OpenSSL::DSA->generate_parameters( $bits, $seed ); Returns a new DSA object and generates the p, q and g parameters necessary to generate keys.

bits is the length of the prime to be generated; the DSS allows a maximum of 1024 bits.

$dsa = Crypt::OpenSSL::DSA->read_params( $filename ); Reads in a parameter PEM file and returns a new DSA object with the p, q and g parameters necessary to generate keys.
$dsa = Crypt::OpenSSL::DSA->read_pub_key( $filename ); Reads in a public key PEM file and returns a new DSA object that can be used to verify DSA signatures.
$dsa = Crypt::OpenSSL::DSA->read_priv_key( $filename ); Reads in a private key PEM file and returns a new DSA object that can be used to sign messages.
$dsa = Crypt::OpenSSL::DSA->read_pub_key_str( $key_string ); Reads in a public key PEM string and returns a new DSA object that can be used to verify DSA signatures. The string should include the -----BEGIN...----- and -----END...----- lines.
$dsa = Crypt::OpenSSL::DSA->read_priv_key_str( $key_string ); Reads in a private key PEM string and returns a new DSA object that can be used to sign messages. The string should include the -----BEGIN...----- and -----END...----- lines.

OBJECT METHODS

$dsa->generate_key; Generates private and public keys, assuming that $dsa is the return value of generate_parameters.
$sig = $dsa->sign( $message ); Signs $message, returning the signature. Note that $meesage cannot exceed 20 characters in length.

$dsa is the signer’s private key.

$sig_obj = $dsa->do_sign( $message ); Similar to sign, but returns a Crypt::OpenSSL::DSA::Signature object.
$valid = $dsa->verify( $message, $sig ); Verifies that the $sig signature for $message is valid.

$dsa is the signer’s public key.

Note: it croaks if the underlying library call returns error (-1).

$valid = $dsa->do_verify( $message, $sig_obj ); Similar to verify, but uses a Crypt::OpenSSL::DSA::Signature object.

Note: it croaks if the underlying library call returns error (-1).

$dsa->write_params( $filename ); Writes the parameters into a PEM file.
$dsa->write_pub_key( $filename ); Writes the public key into a PEM file.
$dsa->write_priv_key( $filename ); Writes the private key into a PEM file.
$p = $dsa->get_p, $dsa->set_p($p) Gets/sets the prime number in binary format.
$q = $dsa->get_q, $dsa->set_q($q) Gets/sets the subprime number (q | p-1) in binary format.
$g = $dsa->get_g, $dsa->set_g($g) Gets/sets the generator of subgroup in binary format.
$pub_key = $dsa->get_pub_key, $dsa->set_pub_key($pub_key) Gets/sets the public key (y = g^x) in binary format.
$priv_key = $dsa->get_priv_key, $dsa->set_priv_key($priv_key) Gets/sets the private key in binary format.

NOTES

Crpyt::DSA is a more mature Perl DSA module, but can be difficult to install, because of the Math::Pari requirement.

Comments, suggestions, and patches welcome.

AUTHOR

T.J. Mather, <tjmather@maxmind.com>

COPYRIGHT

Copyright (c) 2002 T.J. Mather. Crypt::OpenSSL::DSA is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

Paid support is available from directly from the author of this package. Please see <http://www.maxmind.com/app/opensourceservices> for more details.

SEE ALSO

Crypt::OpenSSL::DSA::Signature

Crypt::DSA, Crypt::OpenSSL::RSA

Net::DNS::SEC

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 CRYPT::OPENSSL::DSA (3) 2016-03-17

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.