Crypt-TripleDES-CBC
view release on metacpan or search on metacpan
t/00-encryption.t view on Meta::CPAN
use Test::Most 0.22;
use Crypt::TripleDES::CBC;
subtest "decryption using tripledes in cbc mode with nulls in iv" => sub {
my $algorithm = "tripledes";
my $mode = "cbc";
my $iv = pack( "H*", "0000000000000000" );
my $key = pack( "H*", "1234567890123456" . "7890123456789012" );
my $cipher_text = pack( "H*",
"E9FF3161EE05ABC9"
. "7ea3cacb991318aa"
. "585379599b0eaabb"
. "c4e474ead1956f47"
. "6755f13f1af5235d" );
my $obj = Crypt::TripleDES::CBC->new( key => $key, );
my $plain_text = $obj->decrypt($cipher_text);
my $expected_plain_hex =
"5231303000390006"
. "3030303034370000"
. "4700074d45465450"
. "4f53004800093132"
. "3334353637383900";
is uc unpack( "H*", $plain_text ), uc $expected_plain_hex,
"decrypted plaintext matched with expected plaintext";
};
subtest "decryption using tripledes in cbc mode with nulls in iv 2" => sub {
my $algorithm = "tripledes";
my $mode = "cbc";
my $iv = pack( "H*", "0000000000000000" );
my $key = pack( "H*", "1234567890123456" . "7890123456789012" );
my $cipher_text = pack( "H*",
"07e2fe77b41d9a5df983d4ff6199d6e8b7ed076b0322bb81cac378370974c1d4f827e16f952829bb2d8488b7bb67e37af9b87c40184ee619de0aa921671d01ca15246afed93445cde350f595237e8100bf6f8591130ea7a2c6f88427e41e0bfb4ebac7ac3a5edfd6796f20eef963411a503318ef10c24ab15c1e8514c...
);
my $obj = Crypt::TripleDES::CBC->new( key => $key, );
my $plain_text = $obj->decrypt($cipher_text);
my $expected_plain_hex =
"5232303000020010585858585858585858585858383434360004000C3030303030303030313432300007000A31303233313431353236000E00045858585800160001430025000C33323936303630303030373400260006303035343931002700023030002900083337313131313837002A000C3136383136383333313...
is uc unpack( "H*", $plain_text ), uc $expected_plain_hex,
"decrypted plaintext matched with expected plaintext(test 2)";
};
subtest "encryption using tripledes in cbc mode with nulls in iv" => sub {
my $algorithm = "tripledes";
my $mode = "cbc";
my $iv = pack( "H*", "0000000000000000" );
my $key = pack( "H*", "1234567890123456" . "7890123456789012" );
my $plain_text = pack( "H*",
"5231303000390006"
. "3030303034370000"
. "4700074d45465450"
. "4f53004800093132"
. "3334353637383900" );
my $obj = Crypt::TripleDES::CBC->new( key => $key, );
my $cipher_text = $obj->encrypt($plain_text);
my $expected_cipher_hex =
"E9FF3161EE05ABC9"
. "7ea3cacb991318aa"
. "585379599b0eaabb"
. "c4e474ead1956f47"
. "6755f13f1af5235d";
is uc unpack( "H*", $cipher_text ), uc $expected_cipher_hex,
"encrypted ciphertext matched with expected ciphertext";
};
subtest "encryption using tripledes in cbc mode with nulls in iv 2" => sub {
my $algorithm = "tripledes";
my $mode = "cbc";
my $iv = pack( "H*", "0000000000000000" );
my $key = pack( "H*", "1234567890123456" . "7890123456789012" );
my $plain_text = pack( "H*",
"5232303000020010585858585858585858585858383434360004000C3030303030303030313432300007000A31303233313431353236000E00045858585800160001430025000C33323936303630303030373400260006303035343931002700023030002900083337313131313837002A000C3136383136383333313...
);
my $obj = Crypt::TripleDES::CBC->new( key => $key, );
my $cipher_text = $obj->encrypt($plain_text);
my $expected_cipher_hex =
"07e2fe77b41d9a5df983d4ff6199d6e8b7ed076b0322bb81cac378370974c1d4f827e16f952829bb2d8488b7bb67e37af9b87c40184ee619de0aa921671d01ca15246afed93445cde350f595237e8100bf6f8591130ea7a2c6f88427e41e0bfb4ebac7ac3a5edfd6796f20eef963411a503318ef10c24ab15c1e8514c...
is uc unpack( "H*", $cipher_text ), uc $expected_cipher_hex,
"encrypted ciphertext matched with expected ciphertext(test 2)";
};
done_testing;
( run in 0.861 second using v1.01-cache-2.11-cpan-df04353d9ac )