Crypt-SEED
view release on metacpan or search on metacpan
print "Method findUserKey.......................";
ok( $seed->findUserKey(1), $veriData[1]->[1]);
print "Method replaceKey........................";
ok( $seed->replaceKey($veriData[1]->[1],$veriData[4]->[1]), 1);
print "Confirm replaceKey succeded..............";
ok( $seed->findUserKey(1), $veriData[4]->[1]);
print "Method removeKey.........................";
ok( $seed->removeKey( $veriData[2]->[1] ), $veriData[2]->[1]);
print "Confirm removeKey succeded...............";
ok( defined($seed->hasAKey($veriData[2]->[1]))?0:1, 1);
sub testEncDec {
my $cnt = 0;
my $seed = new Crypt::SEED();
foreach my $r ( @veriData ) {
my($num, $ukey, $text, $rkeyHex, $cipHex) = @$r;
my $idx = $seed->addKey($ukey);
$cnt += defined $idx;
#$ukeys{$ukey} = $idx;
my $cipher = $seed->encrypt($text, $idx);
my $cipHexThis = hexString($cipher);
$cnt += ( $cipHexThis eq $cipHex );
my $textBack = $seed->decrypt($cipher, $idx);
$cnt += ( $textBack eq $text );
}
$cnt;
}
sub testLowLevel {
my $cnt = 0;
foreach my $r ( @veriData ) {
my($num, $ukey, $text, $rkeyHex, $cipHex) = @$r;
#$ukeys{$ukey} = $num;
my $rkey = Crypt::SEED::_roundKey($ukey);
my $rkeyHexThis = Crypt::SEED::_rkeyToString($rkey);
$cnt += ( $rkeyHexThis eq $rkeyHex );
my $cipher = Crypt::SEED::_encrypt($text, $rkey);
my $cipHexThis = hexString($cipher);
$cnt += ( $cipHexThis eq $cipHex );
my $textBack = Crypt::SEED::_decrypt($cipher, $rkey);
$cnt += ( $textBack eq $text );
}
$cnt;
}
sub hexString {
my $txt = shift;
my $hex;
for(my $i=0; $i<length($txt); $i++) {
$hex .= sprintf("%02X", int(unpack('C', substr($txt,$i,1))));
}
$hex;
}
sub readFile {
my $file = shift;
local @ARGV = ($file);
my @array;
while(<>) {
# print;
chomp;
my($num, $ukey, $text, $rkeyHex, $cipHex) =
( m/^(\d+):UKEY=(.{16})\sTEXT=(.{16})\sRKEY=(\S+)\sCIPH=(\S+)/ );
push @array, [$num, $ukey, $text, $rkeyHex, $cipHex];
}
@array;
}
__END__
( run in 1.905 second using v1.01-cache-2.11-cpan-98e64b0badf )