1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-12 10:04:14 +02:00
pgbackrest/lib/pgBackRest/Common/Cipher.pm
David Steele 48d2795f31 Merge crypto/random module into crypto/crypto.
There wasn't enough code to justify a separate module/test and it seems to fit just fine in crypto/crypto.
2018-11-06 20:04:16 -05:00

49 lines
1.6 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, cryptoRandomBytes($iKeySizeInBytes));
# Return from function and log return values if any
return logDebugReturn
(
$strOperation,
{name => 'strCipherPass', value => $strCipherPass, redact => true}
);
}
push @EXPORT, qw(cipherPassGen);
1;