#! /usr/bin/perl

use lib '/var/openca/perl-modules/perl5';

($VERSION = '$Revision: 1.2 $' )=~ s/(?:^.*: (\d+))|(?:\s+\$$)/defined $1?"0\.9":""/eg;

## create digest for passwd

if ($ARGV[0] =~ /sha1/i) {
    use Digest::SHA1;
    my $digest = Digest::SHA1->new;
    $digest->add ($ARGV[1]);
    print "Digest: SHA1\n";
    print "String: ".$ARGV[1]."\n";
    print "SHA1:   ".$digest->b64digest."\n";
} elsif ($ARGV[0] =~ /md5/i) {
    use Digest::MD5;
    my $digest = Digest::MD5->new;
    $digest->add ($ARGV[1]);
    print "Digest: MD5\n";
    print "String: ".$ARGV[1]."\n";
    print "MD5:    ".$digest->b64digest."\n";
} elsif ($ARGV[0] =~ /crypt/i) {
    print "Digest: crypt\n";
    print "String: ".$ARGV[1]."\n";
    my $salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
    print "crypt:  ".crypt ($ARGV[1], $salt)."\n";
} else {
    print "Usage: openca-digest (help|sha1|crypt|md5) string\n";
}

exit 0;
