diff options
Diffstat (limited to 't/cipher_stream.t')
-rw-r--r-- | t/cipher_stream.t | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/t/cipher_stream.t b/t/cipher_stream.t new file mode 100644 index 00000000..7fcd3107 --- /dev/null +++ b/t/cipher_stream.t @@ -0,0 +1,42 @@ +use strict; +use warnings; + +use Test::More tests => 6; + +use Crypt::Stream::RC4; +use Crypt::Stream::Sober128; +use Crypt::Stream::ChaCha; + +{ + my $key = pack("H*", "0123456789abcdef"); + my $pt = pack("H*", "0123456789abcdef"); + my $ct = pack("H*", "75b7878099e0c596"); + my $enc = Crypt::Stream::RC4->new($key)->crypt($pt); + my $dec = Crypt::Stream::RC4->new($key)->crypt($ct); + is(unpack("H*", $enc), unpack("H*", $ct), "Crypt::Stream::RC4 encrypt"); + is(unpack("H*", $dec), unpack("H*", $pt), "Crypt::Stream::RC4 decrypt"); +} + +{ + my $key = pack("H*", "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"); + my $iv = pack("H*", "000000000000004a00000000"); + my $ct = pack("H*", "6E2E359A2568F98041BA0728DD0D6981E97E7AEC1D4360C20A27AFCCFD9FAE0BF91B65C5524733AB". + "8F593DABCD62B3571639D624E65152AB8F530C359F0861D807CA0DBF500D6A6156A38E088A22B65E". + "52BC514D16CCF806818CE91AB77937365AF90BBF74A35BE6B40B8EEDF2785E42874D"); + my $pt = "Ladies and Gentlemen of the class of '99: If I could offer you only one tip for the future, sunscreen would be it."; + my $enc = Crypt::Stream::ChaCha->new($key, $iv, 1, 20)->crypt($pt); + my $dec = Crypt::Stream::ChaCha->new($key, $iv, 1, 20)->crypt($ct); + is(unpack("H*", $enc), unpack("H*", $ct), "Crypt::Stream::ChaCha encrypt"); + is($dec, $pt, "Crypt::Stream::ChaCha decrypt"); +} + +{ + my $key = pack("H*", "74657374206b65792031323862697473"); + my $iv = pack("H*", "00000000"); + my $ct = pack("H*", "43500ccf89919f1daa377495f4b458c240378bbb"); + my $pt = pack("H*", "0000000000000000000000000000000000000000"); + my $enc = Crypt::Stream::Sober128->new($key, $iv)->crypt($pt); + my $dec = Crypt::Stream::Sober128->new($key, $iv)->crypt($ct); + is(unpack("H*", $enc), unpack("H*", $ct), "Crypt::Stream::Sober128 encrypt"); + is(unpack("H*", $dec), unpack("H*", $pt), "Crypt::Stream::Sober128 decrypt"); +} |