The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -s
##
## 09-publickey.t
##
## Copyright (c) 2001, 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$

use FindBin qw($Bin);
use lib "$Bin/../lib";
use Crypt::RSA::Key::Public;
use Math::Pari qw(PARI);

print "1..8\n";
my $i = 0;
my $keyfile = "./rsa-public-key";
my $n = PARI('90323071930747658587680108508312228275784837926947082008548691733142705211489057935389756600126815968792421058507821141460115569139868202311230475972964057619586895938810033730091286963807334963647271206191891975955352543611579505094807268518669728893837266971976327030260763032999438640559854194396431791831');
my $e = PARI('65537');

my $key = new Crypt::RSA::Key::Public();
$key->n ($n);
$key->e ($e);
$key->Identity ('mail@vipul.net');

print $key->n == $n ? "ok" : "not ok"; print " ", ++$i, "\n";
print $key->e == $e ? "ok" : "not ok"; print " ", ++$i, "\n";
print $key->Identity eq 'mail@vipul.net' ? "ok" : "not ok"; print " ", ++$i, "\n";

$key->write(Filename => $keyfile);

my $pkey = new Crypt::RSA::Key::Public (Filename => $keyfile);
print $pkey->n == $n ? "ok" : "not ok"; print " ", ++$i, "\n";
print $pkey->e == $e ? "ok" : "not ok"; print " ", ++$i, "\n";
print $pkey->Identity eq 'mail@vipul.net' ? "ok" : "not ok"; print " ", ++$i, "\n";

unlink $keyfile;

# string and hex assignments
my $key2 = new Crypt::RSA::Key::Public; 
$key2->e ("0x10e9");
$key2->n ("1023");
print $key2->n == 1023 ? "ok" : "not ok"; print " ", ++$i, "\n";
print $key2->e == 4329 ? "ok" : "not ok"; print " ", ++$i, "\n";