File-KDBX
view release on metacpan or search on metacpan
# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.025.
Changes
LICENSE
MANIFEST
META.json
META.yml
Makefile.PL
README
lib/File/KDBX.pm
lib/File/KDBX/Cipher.pm
lib/File/KDBX/Cipher/CBC.pm
lib/File/KDBX/Cipher/Stream.pm
lib/File/KDBX/Constants.pm
lib/File/KDBX/Dumper.pm
lib/File/KDBX/Dumper/KDB.pm
lib/File/KDBX/Dumper/Raw.pm
lib/File/KDBX/Dumper/V3.pm
lib/File/KDBX/Dumper/V4.pm
lib/File/KDBX/Dumper/XML.pm
lib/File/KDBX/Entry.pm
lib/File/KDBX/Error.pm
"Pass::OTP" : "0"
},
"requires" : {
"Carp" : "0",
"Crypt::Argon2" : "0",
"Crypt::Cipher" : "0",
"Crypt::Cipher::AES" : "0",
"Crypt::Digest" : "0",
"Crypt::Mac::HMAC" : "0",
"Crypt::Misc" : "0.049",
"Crypt::Mode::CBC" : "0",
"Crypt::PRNG" : "0",
"Crypt::Stream::ChaCha" : "0.048",
"Crypt::Stream::Salsa20" : "0.055",
"Data::Dumper" : "0",
"Devel::GlobalDestruction" : "0",
"Encode" : "0",
"Exporter" : "0",
"File::Temp" : "0",
"Hash::Util::FieldHash" : "0",
"IO::Handle" : "0",
},
"provides" : {
"File::KDBX" : {
"file" : "lib/File/KDBX.pm",
"version" : "0.906"
},
"File::KDBX::Cipher" : {
"file" : "lib/File/KDBX/Cipher.pm",
"version" : "0.906"
},
"File::KDBX::Cipher::CBC" : {
"file" : "lib/File/KDBX/Cipher/CBC.pm",
"version" : "0.906"
},
"File::KDBX::Cipher::Stream" : {
"file" : "lib/File/KDBX/Cipher/Stream.pm",
"version" : "0.906"
},
"File::KDBX::Constants" : {
"file" : "lib/File/KDBX/Constants.pm",
"version" : "0.906"
},
description: 'speed improvements (requires C compiler)'
requires:
File::KDBX::XS: '0'
provides:
File::KDBX:
file: lib/File/KDBX.pm
version: '0.906'
File::KDBX::Cipher:
file: lib/File/KDBX/Cipher.pm
version: '0.906'
File::KDBX::Cipher::CBC:
file: lib/File/KDBX/Cipher/CBC.pm
version: '0.906'
File::KDBX::Cipher::Stream:
file: lib/File/KDBX/Cipher/Stream.pm
version: '0.906'
File::KDBX::Constants:
file: lib/File/KDBX/Constants.pm
version: '0.906'
File::KDBX::Dumper:
file: lib/File/KDBX/Dumper.pm
version: '0.906'
IO::Uncompress::Gunzip: '0'
Pass::OTP: '0'
requires:
Carp: '0'
Crypt::Argon2: '0'
Crypt::Cipher: '0'
Crypt::Cipher::AES: '0'
Crypt::Digest: '0'
Crypt::Mac::HMAC: '0'
Crypt::Misc: '0.049'
Crypt::Mode::CBC: '0'
Crypt::PRNG: '0'
Crypt::Stream::ChaCha: '0.048'
Crypt::Stream::Salsa20: '0.055'
Data::Dumper: '0'
Devel::GlobalDestruction: '0'
Encode: '0'
Exporter: '0'
File::Temp: '0'
Hash::Util::FieldHash: '0'
IO::Handle: '0'
Makefile.PL view on Meta::CPAN
"MIN_PERL_VERSION" => "5.010",
"NAME" => "File::KDBX",
"PREREQ_PM" => {
"Carp" => 0,
"Crypt::Argon2" => 0,
"Crypt::Cipher" => 0,
"Crypt::Cipher::AES" => 0,
"Crypt::Digest" => 0,
"Crypt::Mac::HMAC" => 0,
"Crypt::Misc" => "0.049",
"Crypt::Mode::CBC" => 0,
"Crypt::PRNG" => 0,
"Crypt::Stream::ChaCha" => "0.048",
"Crypt::Stream::Salsa20" => "0.055",
"Data::Dumper" => 0,
"Devel::GlobalDestruction" => 0,
"Encode" => 0,
"Exporter" => 0,
"File::Temp" => 0,
"Hash::Util::FieldHash" => 0,
"IO::Handle" => 0,
Makefile.PL view on Meta::CPAN
my %FallbackPrereqs = (
"Carp" => 0,
"Crypt::Argon2" => 0,
"Crypt::Cipher" => 0,
"Crypt::Cipher::AES" => 0,
"Crypt::Digest" => 0,
"Crypt::Mac::HMAC" => 0,
"Crypt::Misc" => "0.049",
"Crypt::Mode::CBC" => 0,
"Crypt::PRNG" => 0,
"Crypt::Stream::ChaCha" => "0.048",
"Crypt::Stream::Salsa20" => "0.055",
"Data::Dumper" => 0,
"Devel::GlobalDestruction" => 0,
"Encode" => 0,
"Exporter" => 0,
"ExtUtils::MakeMaker" => 0,
"File::Spec" => 0,
"File::Temp" => 0,
practices and cryptographic functions. This package uses the following
functions for authentication, hashing, encryption and random number
generation:
* AES-128 (legacy)
* AES-256
* Argon2d & Argon2id
* CBC block mode
* HMAC-SHA256
* SHA256
* SHA512
* Salsa20 & ChaCha20
* Twofish
lib/File/KDBX.pm view on Meta::CPAN
=item *
AES-256
=item *
Argon2d & Argon2id
=item *
CBC block mode
=item *
HMAC-SHA256
=item *
SHA256
=item *
lib/File/KDBX/Cipher.pm view on Meta::CPAN
$CIPHERS{$id} = [$package, @args];
}
sub unregister {
delete $CIPHERS{$_} for @_;
}
BEGIN {
__PACKAGE__->register(CIPHER_UUID_AES128, 'CBC', algorithm => 'AES', key_size => 16);
__PACKAGE__->register(CIPHER_UUID_AES256, 'CBC', algorithm => 'AES', key_size => 32);
__PACKAGE__->register(CIPHER_UUID_SERPENT, 'CBC', algorithm => 'Serpent', key_size => 32);
__PACKAGE__->register(CIPHER_UUID_TWOFISH, 'CBC', algorithm => 'Twofish', key_size => 32);
__PACKAGE__->register(CIPHER_UUID_CHACHA20, 'Stream', algorithm => 'ChaCha');
__PACKAGE__->register(CIPHER_UUID_SALSA20, 'Stream', algorithm => 'Salsa20');
__PACKAGE__->register(STREAM_ID_CHACHA20, 'Stream', algorithm => 'ChaCha');
__PACKAGE__->register(STREAM_ID_SALSA20, 'Stream', algorithm => 'Salsa20');
}
1;
__END__
lib/File/KDBX/Cipher/CBC.pm view on Meta::CPAN
package File::KDBX::Cipher::CBC;
# ABSTRACT: A CBC block cipher mode encrypter/decrypter
use warnings;
use strict;
use Crypt::Mode::CBC;
use File::KDBX::Error;
use File::KDBX::Util qw(:class);
use namespace::clean;
extends 'File::KDBX::Cipher';
our $VERSION = '0.906'; # VERSION
has key_size => 32;
sub iv_size { 16 }
sub block_size { 16 }
sub encrypt {
my $self = shift;
my $mode = $self->{mode} ||= do {
my $m = Crypt::Mode::CBC->new($self->algorithm);
$m->start_encrypt($self->key, $self->iv);
$m;
};
return join('', map { $mode->add(ref $_ ? $$_ : $_) } grep { defined } @_);
}
sub decrypt {
my $self = shift;
my $mode = $self->{mode} ||= do {
my $m = Crypt::Mode::CBC->new($self->algorithm);
$m->start_decrypt($self->key, $self->iv);
$m;
};
return join('', map { $mode->add(ref $_ ? $$_ : $_) } grep { defined } @_);
}
sub finish {
my $self = shift;
return '' if !$self->{mode};
lib/File/KDBX/Cipher/CBC.pm view on Meta::CPAN
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
File::KDBX::Cipher::CBC - A CBC block cipher mode encrypter/decrypter
=head1 VERSION
version 0.906
=head1 SYNOPSIS
use File::KDBX::Cipher::CBC;
my $cipher = File::KDBX::Cipher::CBC->new(algorithm => $algo, key => $key, iv => $iv);
=head1 DESCRIPTION
A subclass of L<File::KDBX::Cipher> for encrypting and decrypting data using the CBC block cipher mode.
=head1 BUGS
Please report any bugs or feature requests on the bugtracker website
L<https://github.com/chazmcgarvey/File-KDBX/issues>
When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.
t/00-compile.t view on Meta::CPAN
# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058
use Test::More;
plan tests => 38 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
my @module_files = (
'File/KDBX.pm',
'File/KDBX/Cipher.pm',
'File/KDBX/Cipher/CBC.pm',
'File/KDBX/Cipher/Stream.pm',
'File/KDBX/Constants.pm',
'File/KDBX/Dumper.pm',
'File/KDBX/Dumper/KDB.pm',
'File/KDBX/Dumper/Raw.pm',
'File/KDBX/Dumper/V3.pm',
'File/KDBX/Dumper/V4.pm',
'File/KDBX/Dumper/XML.pm',
'File/KDBX/Entry.pm',
'File/KDBX/Error.pm',
t/00-report-prereqs.dd view on Meta::CPAN
'Pass::OTP' => '0'
},
'requires' => {
'Carp' => '0',
'Crypt::Argon2' => '0',
'Crypt::Cipher' => '0',
'Crypt::Cipher::AES' => '0',
'Crypt::Digest' => '0',
'Crypt::Mac::HMAC' => '0',
'Crypt::Misc' => '0.049',
'Crypt::Mode::CBC' => '0',
'Crypt::PRNG' => '0',
'Crypt::Stream::ChaCha' => '0.048',
'Crypt::Stream::Salsa20' => '0.055',
'Data::Dumper' => '0',
'Devel::GlobalDestruction' => '0',
'Encode' => '0',
'Exporter' => '0',
'File::Temp' => '0',
'Hash::Util::FieldHash' => '0',
'IO::Handle' => '0',
xt/author/eol.t view on Meta::CPAN
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19
use Test::More 0.88;
use Test::EOL;
my @files = (
'lib/File/KDBX.pm',
'lib/File/KDBX/Cipher.pm',
'lib/File/KDBX/Cipher/CBC.pm',
'lib/File/KDBX/Cipher/Stream.pm',
'lib/File/KDBX/Constants.pm',
'lib/File/KDBX/Dumper.pm',
'lib/File/KDBX/Dumper/KDB.pm',
'lib/File/KDBX/Dumper/Raw.pm',
'lib/File/KDBX/Dumper/V3.pm',
'lib/File/KDBX/Dumper/V4.pm',
'lib/File/KDBX/Dumper/XML.pm',
'lib/File/KDBX/Entry.pm',
'lib/File/KDBX/Error.pm',
xt/author/no-tabs.t view on Meta::CPAN
use warnings;
# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.15
use Test::More 0.88;
use Test::NoTabs;
my @files = (
'lib/File/KDBX.pm',
'lib/File/KDBX/Cipher.pm',
'lib/File/KDBX/Cipher/CBC.pm',
'lib/File/KDBX/Cipher/Stream.pm',
'lib/File/KDBX/Constants.pm',
'lib/File/KDBX/Dumper.pm',
'lib/File/KDBX/Dumper/KDB.pm',
'lib/File/KDBX/Dumper/Raw.pm',
'lib/File/KDBX/Dumper/V3.pm',
'lib/File/KDBX/Dumper/V4.pm',
'lib/File/KDBX/Dumper/XML.pm',
'lib/File/KDBX/Entry.pm',
'lib/File/KDBX/Error.pm',
( run in 1.546 second using v1.01-cache-2.11-cpan-e1769b4cff6 )