my
@TEST_SUITE
= (
[
qw( 00010002000300040005000600070008 0000000100020003 11FBED2B01986DE5 )
],
[
qw( 00010002000300040005000600070008 0102030405060708 540E5FEA18C2F8B1 )
],
[
qw( 00010002000300040005000600070008 0019324B647D96AF 9F0A0AB6E10CED78 )
],
[
qw( 00010002000300040005000600070008 F5202D5B9C671B08 CF18FD7355E2C5C5 )
],
[
qw( 00010002000300040005000600070008 FAE6D2BEAA96826E 85DF52005608193D )
],
[
qw( 00010002000300040005000600070008 0A141E28323C4650 2F7DE750212FB734 )
],
[
qw( 00010002000300040005000600070008 050A0F14191E2328 7B7314925DE59C09 )
],
[
qw( 0005000A000F00140019001E00230028 0102030405060708 3EC04780BEFF6E20 )
],
[
qw( 3A984E2000195DB32EE501C8C47CEA60 0102030405060708 97BCD8200780DA86 )
],
[
qw( 006400C8012C019001F4025802BC0320 05320A6414C819FA 65BE87E7A2538AED )
],
[
qw( 9D4075C103BC322AFB03E7BE6AB30006 0808080808080808 F5DB1AC45E5EF9F9 )
],
);
sub
test {
my
(
$case
,
$key
,
$in
,
$out
) =
@_
;
my
(
$p_key
,
$p_in
,
$p_out
) =
map
{
pack
(
"H*"
,
$_
) } (
$key
,
$in
,
$out
);
my
$cipher
= Crypt::Cipher::IDEA->new(
$p_key
);
isa_ok(
$cipher
,
"Crypt::Cipher"
,
"(c$case) Test object construction"
);
is(
$cipher
->blocksize(), 8,
"(c$case) Test cipher block size"
);
is(
$cipher
->keysize(), 16,
"(c$case) Test cipher key size"
);
my
$e_test
=
uc
unpack
(
"H*"
,
$cipher
->encrypt(
$p_in
));
is(
$e_test
,
$out
,
"(c$case) Test Encryption"
);
my
$d_test
=
uc
unpack
(
"H*"
,
$cipher
->decrypt(
$p_out
));
is(
$d_test
,
$in
,
"(c$case) Test Decryption"
);
}
for
(
my
$i
= 0;
$i
<=
$#TEST_SUITE
;
$i
++) {
test(
$i
, @{
$TEST_SUITE
[
$i
] });
}