#!/usr/bin/perl -w use Crypt::ECB qw(encrypt decrypt PADDING_AUTO); my @ciphers = ( 'Blowfish', 'Blowfish_PP', 'Camellia', 'Camellia_PP', 'CAST5', 'CAST5_PP', 'DES', 'DES_PP', 'IDEA', 'Rijndael', 'Rijndael_PP', 'Twofish2', ); print "1..", $#ciphers+1, "\n"; my ($crypt, $cipher, $key, $ks, $len, $nok, $enc1, $enc2, $dec1, $dec2, $test); my $text = "This is just some dummy text!\n"; my $xkey = "This is an at least 56 Byte long test key!!! It really is."; $crypt = Crypt::ECB->new; $crypt->padding(PADDING_AUTO); foreach $cipher (@ciphers) { unless ($crypt->cipher($cipher)) { print "ok ".(++$test)." # skip, $cipher not installed\n"; next; } $ks = ($crypt->{Keysize} or 8); $key = substr($xkey, 0, $ks); $crypt->key($key); $nok = 0; $enc1 = $crypt->encrypt($text); $enc2 = encrypt($key, $cipher, $text, PADDING_AUTO); $nok++ unless ($enc1 eq $enc2); $dec1 = $crypt->decrypt($enc1); $dec2 = decrypt($key, $cipher, $enc2, PADDING_AUTO); $nok++ unless ($dec1 eq $text); $nok++ unless ($dec2 eq $text); print "not " if $nok; print "ok ".(++$test)."\n"; }