File-KDBX

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

            "File::Temp" : "0",
            "Hash::Util::FieldHash" : "0",
            "IO::Handle" : "0",
            "IPC::Cmd" : "0.84",
            "Iterator::Simple" : "0",
            "List::Util" : "1.33",
            "Math::BigInt" : "1.993",
            "Module::Load" : "0",
            "Module::Loaded" : "0",
            "POSIX" : "0",
            "Ref::Util" : "0",
            "Scalar::Util" : "0",
            "Scope::Guard" : "0",
            "Storable" : "0",
            "Symbol" : "0",
            "Text::ParseWords" : "0",
            "Time::Local" : "1.19",
            "Time::Piece" : "1.33",
            "XML::LibXML" : "0",
            "XML::LibXML::Reader" : "0",
            "boolean" : "0",

META.yml  view on Meta::CPAN

  File::Temp: '0'
  Hash::Util::FieldHash: '0'
  IO::Handle: '0'
  IPC::Cmd: '0.84'
  Iterator::Simple: '0'
  List::Util: '1.33'
  Math::BigInt: '1.993'
  Module::Load: '0'
  Module::Loaded: '0'
  POSIX: '0'
  Ref::Util: '0'
  Scalar::Util: '0'
  Scope::Guard: '0'
  Storable: '0'
  Symbol: '0'
  Text::ParseWords: '0'
  Time::Local: '1.19'
  Time::Piece: '1.33'
  XML::LibXML: '0'
  XML::LibXML::Reader: '0'
  boolean: '0'

Makefile.PL  view on Meta::CPAN

    "File::Temp" => 0,
    "Hash::Util::FieldHash" => 0,
    "IO::Handle" => 0,
    "IPC::Cmd" => "0.84",
    "Iterator::Simple" => 0,
    "List::Util" => "1.33",
    "Math::BigInt" => "1.993",
    "Module::Load" => 0,
    "Module::Loaded" => 0,
    "POSIX" => 0,
    "Ref::Util" => 0,
    "Scalar::Util" => 0,
    "Scope::Guard" => 0,
    "Storable" => 0,
    "Symbol" => 0,
    "Text::ParseWords" => 0,
    "Time::Local" => "1.19",
    "Time::Piece" => "1.33",
    "XML::LibXML" => 0,
    "XML::LibXML::Reader" => 0,
    "boolean" => 0,

Makefile.PL  view on Meta::CPAN

  "Hash::Util::FieldHash" => 0,
  "IO::Handle" => 0,
  "IPC::Cmd" => "0.84",
  "IPC::Open3" => 0,
  "Iterator::Simple" => 0,
  "List::Util" => "1.33",
  "Math::BigInt" => "1.993",
  "Module::Load" => 0,
  "Module::Loaded" => 0,
  "POSIX" => 0,
  "Ref::Util" => 0,
  "Scalar::Util" => 0,
  "Scope::Guard" => 0,
  "Storable" => 0,
  "Symbol" => 0,
  "Test::Deep" => 0,
  "Test::Fatal" => 0,
  "Test::More" => "1.001004_001",
  "Test::Warnings" => 0,
  "Text::ParseWords" => 0,
  "Time::Local" => "1.19",

lib/File/KDBX.pm  view on Meta::CPAN


use Crypt::Digest qw(digest_data);
use Crypt::PRNG qw(random_bytes);
use Devel::GlobalDestruction;
use File::KDBX::Constants qw(:all :icon);
use File::KDBX::Error;
use File::KDBX::Safe;
use File::KDBX::Util qw(:class :coercion :empty :search :uuid erase simple_expression_query snakify);
use Hash::Util::FieldHash qw(fieldhashes);
use List::Util qw(any first);
use Ref::Util qw(is_ref is_arrayref is_plain_hashref);
use Scalar::Util qw(blessed);
use Time::Piece 1.33;
use boolean;
use namespace::clean;

our $VERSION = '0.906'; # VERSION
our $WARNINGS = 1;

fieldhashes \my (%SAFE, %KEYS);

lib/File/KDBX/Dumper.pm  view on Meta::CPAN

use warnings;
use strict;

use Crypt::Digest qw(digest_data);
use File::KDBX::Constants qw(:magic :header :version :random_stream);
use File::KDBX::Error;
use File::KDBX::Util qw(:class);
use File::KDBX;
use IO::Handle;
use Module::Load;
use Ref::Util qw(is_ref is_scalarref);
use Scalar::Util qw(looks_like_number openhandle);
use namespace::clean;

our $VERSION = '0.906'; # VERSION


sub new {
    my $class = shift;
    my $self = bless {}, $class;
    $self->init(@_);

lib/File/KDBX/Entry.pm  view on Meta::CPAN

use strict;

use Crypt::Misc 0.049 qw(decode_b64 encode_b32r);
use Devel::GlobalDestruction;
use Encode qw(encode);
use File::KDBX::Constants qw(:history :icon);
use File::KDBX::Error;
use File::KDBX::Util qw(:assert :class :coercion :erase :function :uri generate_uuid load_optional);
use Hash::Util::FieldHash;
use List::Util qw(any first sum0);
use Ref::Util qw(is_coderef is_hashref is_plain_hashref);
use Scalar::Util qw(blessed looks_like_number);
use Storable qw(dclone);
use Time::Piece 1.33;
use boolean;
use namespace::clean;

extends 'File::KDBX::Object';

our $VERSION = '0.906'; # VERSION

lib/File/KDBX/Group.pm  view on Meta::CPAN

use warnings;
use strict;

use Devel::GlobalDestruction;
use File::KDBX::Constants qw(:bool :icon :iteration);
use File::KDBX::Error;
use File::KDBX::Iterator;
use File::KDBX::Util qw(:assert :class :coercion generate_uuid);
use Hash::Util::FieldHash;
use List::Util qw(any sum0);
use Ref::Util qw(is_coderef is_ref);
use Scalar::Util qw(blessed);
use Time::Piece 1.33;
use boolean;
use namespace::clean;

extends 'File::KDBX::Object';

our $VERSION = '0.906'; # VERSION


lib/File/KDBX/IO.pm  view on Meta::CPAN

package File::KDBX::IO;
# ABSTRACT: Base IO class for KDBX-related streams

use warnings;
use strict;

use Devel::GlobalDestruction;
use File::KDBX::Constants qw(:bool);
use File::KDBX::Util qw(:class :empty);
use List::Util qw(sum0);
use Ref::Util qw(is_blessed_ref is_ref is_scalarref);
use Symbol qw(gensym);
use namespace::clean;

extends 'IO::Handle';

our $VERSION = '0.906'; # VERSION

sub _croak { require Carp; goto &Carp::croak }

my %ATTRS = (

lib/File/KDBX/Iterator.pm  view on Meta::CPAN

package File::KDBX::Iterator;
# ABSTRACT: KDBX database iterator

use warnings;
use strict;

use File::KDBX::Error;
use File::KDBX::Util qw(:class :load :search);
use Iterator::Simple;
use Module::Loaded;
use Ref::Util qw(is_arrayref is_coderef is_ref is_scalarref);
use namespace::clean;

BEGIN { mark_as_loaded('Iterator::Simple::Iterator') }
extends 'Iterator::Simple::Iterator';

our $VERSION = '0.906'; # VERSION


sub new {
    my $class = shift;

lib/File/KDBX/Key.pm  view on Meta::CPAN


use warnings;
use strict;

use Devel::GlobalDestruction;
use File::KDBX::Error;
use File::KDBX::Safe;
use File::KDBX::Util qw(erase);
use Hash::Util::FieldHash qw(fieldhashes);
use Module::Load;
use Ref::Util qw(is_arrayref is_coderef is_hashref is_ref is_scalarref);
use Scalar::Util qw(blessed openhandle);
use namespace::clean;

our $VERSION = '0.906'; # VERSION

fieldhashes \my %SAFE;


sub new {
    my $class = shift;

lib/File/KDBX/Key/Composite.pm  view on Meta::CPAN

package File::KDBX::Key::Composite;
# ABSTRACT: A composite key made up of component keys

use warnings;
use strict;

use Crypt::Digest qw(digest_data);
use File::KDBX::Error;
use File::KDBX::Util qw(:class :erase);
use Ref::Util qw(is_arrayref);
use Scalar::Util qw(blessed);
use namespace::clean;

extends 'File::KDBX::Key';

our $VERSION = '0.906'; # VERSION

sub init {
    my $self = shift;
    my $primitive = shift // throw 'Missing key primitive';

lib/File/KDBX/Key/File.pm  view on Meta::CPAN


use warnings;
use strict;

use Crypt::Digest qw(digest_data);
use Crypt::Misc 0.029 qw(decode_b64 encode_b64);
use Crypt::PRNG qw(random_bytes);
use File::KDBX::Constants qw(:key_file);
use File::KDBX::Error;
use File::KDBX::Util qw(:class :erase trim);
use Ref::Util qw(is_ref is_scalarref);
use Scalar::Util qw(openhandle);
use XML::LibXML::Reader;
use namespace::clean;

extends 'File::KDBX::Key';

our $VERSION = '0.906'; # VERSION


has 'type',     is => 'ro';

lib/File/KDBX/Key/YubiKey.pm  view on Meta::CPAN

package File::KDBX::Key::YubiKey;
# ABSTRACT: A Yubico challenge-response key

use warnings;
use strict;

use File::KDBX::Constants qw(:yubikey);
use File::KDBX::Error;
use File::KDBX::Util qw(:class :io pad_pkcs7);
use IPC::Cmd 0.84 qw(run_forked);
use Ref::Util qw(is_arrayref);
use Symbol qw(gensym);
use namespace::clean;

extends 'File::KDBX::Key::ChallengeResponse';

our $VERSION = '0.906'; # VERSION

# It can take some time for the USB device to be ready again, so we can retry a few times.
our $RETRY_COUNT    = 5;
our $RETRY_INTERVAL = 0.1;

lib/File/KDBX/Loader.pm  view on Meta::CPAN


use warnings;
use strict;

use File::KDBX::Constants qw(:magic :header :version);
use File::KDBX::Error;
use File::KDBX::Util qw(:class :io);
use File::KDBX;
use IO::Handle;
use Module::Load ();
use Ref::Util qw(is_ref is_scalarref);
use Scalar::Util qw(looks_like_number openhandle);
use namespace::clean;

our $VERSION = '0.906'; # VERSION


sub new {
    my $class = shift;
    my $self = bless {}, $class;
    $self->init(@_);

lib/File/KDBX/Loader/KDB.pm  view on Meta::CPAN

# ABSTRACT: Read KDB files

use warnings;
use strict;

use Encode qw(encode);
use File::KDBX::Constants qw(:header :cipher :random_stream :icon);
use File::KDBX::Error;
use File::KDBX::Util qw(:class :empty :io :uuid load_optional);
use File::KDBX;
use Ref::Util qw(is_arrayref is_hashref);
use Scalar::Util qw(looks_like_number);
use Time::Piece 1.33;
use boolean;
use namespace::clean;

extends 'File::KDBX::Loader';

our $VERSION = '0.906'; # VERSION

my $DEFAULT_EXPIRATION = Time::Piece->strptime('2999-12-31 23:59:59', '%Y-%m-%d %H:%M:%S');

lib/File/KDBX/Object.pm  view on Meta::CPAN


use warnings;
use strict;

use Devel::GlobalDestruction;
use File::KDBX::Constants qw(:bool);
use File::KDBX::Error;
use File::KDBX::Util qw(:uuid);
use Hash::Util::FieldHash qw(fieldhashes);
use List::Util qw(any first);
use Ref::Util qw(is_arrayref is_plain_arrayref is_plain_hashref is_ref);
use Scalar::Util qw(blessed weaken);
use namespace::clean;

our $VERSION = '0.906'; # VERSION

fieldhashes \my (%KDBX, %PARENT, %TXNS, %REFS, %SIGNALS);


sub new {
    my $class = shift;

lib/File/KDBX/Safe.pm  view on Meta::CPAN


use warnings;
use strict;

use Crypt::PRNG qw(random_bytes);
use Devel::GlobalDestruction;
use Encode qw(encode decode);
use File::KDBX::Constants qw(:random_stream);
use File::KDBX::Error;
use File::KDBX::Util qw(erase erase_scoped);
use Ref::Util qw(is_arrayref is_coderef is_hashref is_scalarref);
use Scalar::Util qw(refaddr);
use namespace::clean;

our $VERSION = '0.906'; # VERSION


sub new {
    my $class = shift;
    my %args = @_ % 2 == 0 ? @_ : (strings => shift, @_);

lib/File/KDBX/Util.pm  view on Meta::CPAN

use 5.010;
use warnings;
use strict;

use Crypt::PRNG qw(random_bytes random_string);
use Encode qw(decode encode);
use Exporter qw(import);
use File::KDBX::Error;
use List::Util 1.33 qw(any all);
use Module::Load;
use Ref::Util qw(is_arrayref is_coderef is_hashref is_ref is_refref is_scalarref);
use Scalar::Util qw(blessed looks_like_number readonly);
use Time::Piece 1.33;
use boolean;
use namespace::clean -except => 'import';

our $VERSION = '0.906'; # VERSION

our %EXPORT_TAGS = (
    assert      => [qw(DEBUG assert)],
    class       => [qw(extends has list_attributes)],

t/00-report-prereqs.dd  view on Meta::CPAN

                                      'File::Temp' => '0',
                                      'Hash::Util::FieldHash' => '0',
                                      'IO::Handle' => '0',
                                      'IPC::Cmd' => '0.84',
                                      'Iterator::Simple' => '0',
                                      'List::Util' => '1.33',
                                      'Math::BigInt' => '1.993',
                                      'Module::Load' => '0',
                                      'Module::Loaded' => '0',
                                      'POSIX' => '0',
                                      'Ref::Util' => '0',
                                      'Scalar::Util' => '0',
                                      'Scope::Guard' => '0',
                                      'Storable' => '0',
                                      'Symbol' => '0',
                                      'Text::ParseWords' => '0',
                                      'Time::Local' => '1.19',
                                      'Time::Piece' => '1.33',
                                      'XML::LibXML' => '0',
                                      'XML::LibXML::Reader' => '0',
                                      'boolean' => '0',



( run in 0.448 second using v1.01-cache-2.11-cpan-a5abf4f5562 )