BEGIN { use_ok(
'Mojolicious::Plugin::Crypto'
) };
sub
rndStr{
join
''
,
@_
[
map
{
rand
@_
} 1 ..
shift
] }
plugin
'crypto'
, {};
my
$t
= Test::Mojo->new(app);
my
$fix_key
=
'secretpassphrase'
;
my
$plain
=
"NemuxMojoCrypt"
;
my
$blow_key
=
"MyNameisMarcoRomano"
;
my
$blow_plain
=
":::nemux::: [ All Glory to The Hypnotoad ]"
;
my
(
$crypted
,
$key
) =
$t
->app->crypt_aes(
$plain
,
$fix_key
);
ok(
$fix_key
eq
$key
,
"AES return KEY expected $fix_key i got $key"
);
my
(
$clean
) =
$t
->app->decrypt_aes(
$crypted
,
$fix_key
);
ok(
$plain
eq
$clean
,
"AES ENC/DEC expected $plain i got $clean"
);
my
(
$wrong_clean
) =
$t
->app->decrypt_aes(
$crypted
,
"WrongPassword"
);
ok(
$plain
ne
$wrong_clean
,
"AES ENC/DEC expected $plain i got $wrong_clean"
);
$blow_plain
=
$blow_plain
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_blowfish(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"Blowfish return KEY"
);
my
(
$clean_blow
) =
$t
->app->decrypt_blowfish(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_blow
,
"Blowfish ENC/DEC expected $blow_plain i got $clean_blow"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_des(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"DES return KEY"
);
my
(
$clean_des
) =
$t
->app->decrypt_des(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_des
,
"DES ENC/DEC expected $blow_plain i got $clean_des"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_3des(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"3DES return KEY"
);
my
(
$clean_3des
) =
$t
->app->decrypt_3des(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_3des
,
"3DES ENC/DEC expected $blow_plain i got $clean_3des"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_twofish(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"twofish return KEY"
);
my
(
$clean_twofish
) =
$t
->app->decrypt_twofish(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_twofish
,
"twofish ENC/DEC expected $blow_plain i got $clean_twofish"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_xtea(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"xtea return KEY"
);
my
(
$clean_xtea
) =
$t
->app->decrypt_xtea(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_xtea
,
"xtea ENC/DEC expected $blow_plain i got $clean_xtea"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_anubis(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"anubi return KEY"
);
my
(
$clean_anubi
) =
$t
->app->decrypt_anubis(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_anubi
,
"anubi ENC/DEC expected $blow_plain i got $clean_anubi"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_camellia(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"camellia return KEY"
);
my
(
$clean_camellia
) =
$t
->app->decrypt_camellia(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_camellia
,
"camellia ENC/DEC expected $blow_plain i got $clean_camellia"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_khazad(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"camellia return KEY"
);
my
(
$clean_khazad
) =
$t
->app->decrypt_khazad(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_khazad
,
"camellia ENC/DEC expected $blow_plain i got $clean_khazad"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_multi2(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"multi2 return KEY"
);
my
(
$clean_multi2
) =
$t
->app->decrypt_multi2(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_multi2
,
"multi2 ENC/DEC expected $blow_plain i got $clean_multi2"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_noekeon(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"noekeon return KEY"
);
my
(
$clean_noekeon
)=
$t
->app->decrypt_noekeon(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_noekeon
,
"noekeon ENC/DEC expected $blow_plain i got $clean_noekeon"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_rc2(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"RC2 return KEY"
);
my
(
$clean_rc2
)=
$t
->app->decrypt_rc2(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_rc2
,
"rc2 ENC/DEC expected $blow_plain i got $clean_rc2"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_rc5(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"RC5 return KEY"
);
my
(
$clean_rc5
) =
$t
->app->decrypt_rc5(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_rc5
,
"rc5 ENC/DEC expected $blow_plain i got $clean_rc5"
);
$blow_plain
=
"All Glory to The Hypnotoad "
. rndStr 42,
'a'
..
'z'
, 0..9;
(
$crypted
,
$key
) =
$t
->app->crypt_rc6(
$blow_plain
,
$blow_key
);
ok(
$key
eq
$blow_key
,
"RC6 return KEY"
);
my
(
$clean_rc6
)=
$t
->app->decrypt_rc6(
$crypted
,
$blow_key
);
ok(
$blow_plain
eq
$clean_rc6
,
"rc6 ENC/DEC expected $blow_plain i got $clean_rc6"
);
my
$super_plain
=
"Look mom i'm a cryptO programmer"
;
my
$super_secret
=
"LookMomStupidSecret"
;
(
$crypted
,
$key
) =
$t
->app->crypt_xtea(
$t
->app->crypt_twofish(
$t
->app->crypt_3des(
$t
->app->crypt_blowfish(
$t
->app->crypt_aes(
$super_plain
,
$super_secret
)))));
ok(
$super_secret
eq
$key
,
"MULTI CRYPTO return KEY"
);
my
(
$clean_super
) =
$t
->app->decrypt_aes(
$t
->app->decrypt_blowfish(
$t
->app->decrypt_3des(
$t
->app->decrypt_twofish(
$t
->app->decrypt_xtea(
$crypted
,
$super_secret
)))));
ok(
$clean_super
eq
$super_plain
,
"MULTI CRYPTO ENC/DEC expected $super_plain i got $clean_super"
);
done_testing(32);