The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Crypt::Passphrase::Encoder - Base class for Crypt::Passphrase encoders

VERSION

version 0.019

DESCRIPTION

This is a base class for password encoders. It is a subclass of Crypt::Passphrase::Validator.

SUBCLASSING

Mandatory methods

It expects the subclass to implement the following four methods:

hash_password

 $encoder->hash_password($password)

This hashes a $password. Note that this will typically return a different value each time since it uses a unique salt every time.

verify_password

 $encoder->verify_password($password, $hash)

This checks if a $password satisfies $hash.

needs_rehash

 $encoder->needs_rehash($hash)

This method will return true if the password hash needs a rehash. This may either mean it's using a different hashing algoritm, or because it's using different parameters.

crypt_subtypes

 $encoder->crypt_subtypes

This method returns the types of crypt entries this validator supports. This is used to implement accepts_hash.

Optional methods

recode_hash

 $encoder->recode_hash($hash)

Provided methods

It provides the following methods to aid in implementing encoders:

random_bytes

 $encoder->random_bytes($count)

This is a utility method to aid in generating a good salt.

secure_compare

 $encoder->secure_compare($left, $right)

This compares two strings in a way that resists timing attacks.

AUTHOR

Leon Timmermans <fawaka@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Leon Timmermans.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.