1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-16 10:20:02 +02:00
pgbackrest/lib/pgBackRest/Common/Cipher.pm
David Steele 7cf955425e The C library is now required.
This eliminates conditional loading and eases development of new library features.
2017-11-26 17:45:00 -05:00

49 lines
1.5 KiB
Perl

####################################################################################################################################
# Cipher Miscellaneous
####################################################################################################################################
package pgBackRest::Common::Cipher;
use strict;
use warnings FATAL => qw(all);
use Carp qw(confess);
use English '-no_match_vars';
use Exporter qw(import);
our @EXPORT = qw();
use pgBackRest::Common::Exception;
use pgBackRest::Common::Log;
use pgBackRest::LibC qw(:random :encode);
####################################################################################################################################
# cipherPassGen - generate a passphrase of the specified size (in bytes)
####################################################################################################################################
sub cipherPassGen
{
# Assign function parameters, defaults, and log debug info
my
(
$strOperation,
$iKeySizeInBytes,
) =
logDebugParam
(
__PACKAGE__ . '::cipherPassGen', \@_,
{name => 'iKeySizeInBytes', default => 48},
);
# Create and base64 encode the key
my $strCipherPass = encodeToStr(ENCODE_TYPE_BASE64, randomBytes($iKeySizeInBytes));
# Return from function and log return values if any
return logDebugReturn
(
$strOperation,
{name => 'strCipherPass', value => $strCipherPass, redact => true}
);
}
push @EXPORT, qw(cipherPassGen);
1;