#!perl
my
$passphrase
= Crypt::Passphrase->new(
encoder
=> {
module
=>
'Linux'
,
rounds
=> 100_000,
type
=>
'sha512'
,
},
);
my
$password
=
'password'
;
my
$salt
=
"\0"
x 16;
my
$hash1
=
$passphrase
->hash_password(
$password
);
ok(
$passphrase
->verify_password(
$password
,
$hash1
),
'Self-generated password validates'
);
ok(!
$passphrase
->needs_rehash(
$hash1
),
'Self-generated password doesn\'t need to be regenerated'
);
my
$hash2
= Crypt::Passwd::XS::
crypt
(
$password
,
'$6$rounds=100000$AAAAAAAAAAAAAAAAAAAAAA'
);
ok(
$passphrase
->verify_password(
$password
,
$hash2
));
ok(!
$passphrase
->needs_rehash(
$hash2
));
my
$hash3
= Crypt::Passwd::XS::
crypt
(
$password
,
'$5$rounds=20000$AAAAAAAAAAAAAA'
);
ok(
$passphrase
->verify_password(
$password
,
$hash3
));
ok(
$passphrase
->needs_rehash(
$hash3
));
my
$hash4
=
'$5$rounds=80000$wnsT7Yr92oJoP28r$cKhJImk5mfuSKV9b3mumNzlbstFUplKtQXXMo4G6Ep5'
;
ok(
$passphrase
->verify_password(
$password
,
$hash4
));
ok(
$passphrase
->needs_rehash(
$hash4
));
my
$hash5
=
'tesvSclXGCVNk'
;
ok(
$passphrase
->verify_password(
'test1234'
,
$hash5
));
ok(
$passphrase
->needs_rehash(
$hash5
));
done_testing;