Initial checkin.
[catacomb-perl] / test.pl
1 use Catacomb qw(:const);
2
3 package EV;
4 @ISA = qw(Catacomb::MP::Prime::Gen::Proc);
5 sub pgen_begin { my ($me, $ev) = @_; print $ev->name(), ": "; }
6 sub pgen_pass { print "*"; }
7 sub pgen_fail { print "."; }
8 sub pgen_done { print "*\n"; }
9 sub new { my $me = bless { FLUSH => $| }, $_[0]; $| = 1; return $me; }
10 sub DESTROY { my $me = shift; $| = $me->{FLUSH}; }
11
12 package main;
13
14 $mm = Catacomb::MP->factorial(16);
15 $mm2 = $mm;
16 $mm++;
17 print join(", ", $mm2->gcd(19)), "\n";
18
19 $md5 = Catacomb::HashClass->find("md5");
20 $h = $md5->init();
21 $h->hash("abc");
22 $hh = $h->done();
23 print length($hh), "\n";
24 print unpack("H*", $hh), "\n";
25
26 foreach $i (Catacomb::CipherClass->list()) {
27 print $i->name(), "\n";
28 }
29
30 $p = Catacomb::MP::Prime::gen("p", $Catacomb::random->mp(512, 3),
31 0, Catacomb::MP::Prime::Filter->stepper(4),
32 5, Catacomb::MP::Prime::Rabin->tester(),
33 EV->new());
34 $q = Catacomb::MP::Prime::gen("q", $Catacomb::random->mp(512, 3),
35 0, Catacomb::MP::Prime::Filter->stepper(4),
36 5, Catacomb::MP::Prime::Rabin->tester(),
37 EV->new());
38
39 print "p = $p\nq = $q\n";