NAME
Crypt::Passphrase::Bcrypt::AES - A peppered AES-encrypted Bcrypt
encoder for Crypt::Passphrase
SYNOPSIS
my $passphrase = Crypt::Passphrase->new(
encoder => {
module => 'Bcrypt::AES',
peppers => {
1 => pack('H*', '0123456789ABCDEF...'),
2 => pack('H*', 'FEDCBA9876543210...'),
},
},
);
DESCRIPTION
This class implements peppering by encrypting the hash using AES
(unlike Crypt::Passphrase::Pepper::Simple which hashes the input
instead).
Configuration
This module takes all arguments also taken by
Crypt::Passphrase::Bcrypt, with the following additions:
* peppers
This is a map of identifier to pepper value. The identifiers should
be (probably small) numbers, the values should be random binary
strings that must be either 16, 24 or 32 bytes long. This argument is
mandatory.
* active
This is the identifier of the active pepper. By default it will be
the identifier with the highest (numerical) value.
* mode
This is the mode that will be used with AES. Valid values are 'ctr'
(the default), 'cfb', 'ofb', 'cbc-pad' or 'ecb-pad'.
The hash parameter will default to 'sha384'.
Supported crypt types
This supports any sequence of bcrypt-, (sha256 | sha384 | sha512),
-encrypted-aes-, (ctr | cfb | ofb | cbc-pad | ecb-pad). E.g.
bcrypt-sha384-encrypted-aes-ctr
AUTHOR
Leon Timmermans <fawaka@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2024 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.