Crypt-SEED

 view release on metacpan or  search on metacpan

test.pl  view on Meta::CPAN

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 )