package PGP::Constants;

use strict;
use vars qw(%pkalg %hashalg @ISA @EXPORT_OK);

use Exporter;

@ISA = qw(Exporter);
@EXPORT_OK = qw(PKALG_RSA PKALG_RSA_ENC PKALG_RSA_SIG PKALG_ELGAMAL
		PKALG_DH PKALG_DSA PKALG_DSS
		HASHALG_MD5 HASHALG_SHA1 HASHALG_RIPEMD160 HASHALG_MD2);

use constant PKALG_RSA => 1;
use constant PKALG_RSA_ENC => 2;
use constant PKALG_RSA_SIG => 3;
use constant PKALG_ELGAMAL => 16;
use constant PKALG_DH => 16;
use constant PKALG_DSA => 17;
use constant PKALG_DSS => 17;

use constant HASHALG_MD5 => 1;
use constant HASHALG_SHA1 => 2;
use constant HASHALG_RIPEMD160 => 3;
use constant HASHALG_MD2 => 5;

# XXX BEGIN { ... };

%pkalg = (&PKALG_RSA => "RSA",
	  &PKALG_RSA_ENC => "RSA Encrypt-Only",
	  &PKALG_RSA_SIG => "RSA Sign-Only",
	  &PKALG_ELGAMAL => "Diffie-Hellman", # Elgamal in rfc2440
	  &PKALG_DSA => "DSS");

%hashalg = (&HASHALG_MD5 => "MD5",
	    &HASHALG_SHA1 => "SHA1",
	    &HASHALG_RIPEMD160 => "RIPEMD160",
	    &HASHALG_MD2 => "MD2");
		
sub pkalgstr {
    my ($algnum) = @_;

    $pkalg{$algnum} || "PK Alg #$algnum";
}

sub hashalgstr {
    my ($algnum) = @_;

    $hashalg{$algnum} || "Hash Alg #$algnum";
}

1;
