The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -s
##
## testvectors_kg.t
##
## Copyright (c) 2000, Vipul Ved Prakash.  All rights reserved.
## This code is free software; you can redistribute it and/or modify
## it under the same terms as Perl itself.
##
## $Id: 05-primitives.t,v 1.2 2001/04/06 18:33:31 vipul Exp $

use FindBin qw($Bin);
use lib "$Bin/../lib";
use Crypt::RSA::Key;
use Crypt::RSA::Primitives;

print "1..5\n"; 
my $i = 0;

my $rsa      = new Crypt::RSA::Primitives; 
my $keychain = new Crypt::RSA::Key;

my ($pubkey, $prikey) = $keychain->generate( q => 2551, p => 2357, e => 3674911, Password => 'xx' );
die $keychain->errstr if $keychain->errstr;

print $prikey->d   == 422191  ? "ok" : "not ok"; print " ", ++$i, "\n";
print $prikey->phi == 6007800 ? "ok" : "not ok"; print " ", ++$i, "\n";
print $pubkey->n   == 6012707 ? "ok" : "not ok"; print " ", ++$i, "\n";

my $c = $rsa->core_encrypt ( Key => $pubkey, Plaintext => 5_234_673 );
print $c == 3_650_502 ? "ok" : "not ok"; print " ", ++$i, "\n";

my $d = $rsa->core_decrypt ( Key => $prikey, Cyphertext => $c );
print $d == 5_234_673 ? "ok" : "not ok"; print " ", ++$i, "\n";