X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-File-KDBX;a=blobdiff_plain;f=lib%2FFile%2FKDBX%2FLoader%2FXML.pm;h=a607405de14464450dd035c039c37b85a3dd60c6;hp=806b261664b99605aab6d04d22d1910d2dce9737;hb=37b09e0f2832514b33de4499a83f22d5ffe7c0a3;hpb=8a37f035ef35682b764c34e7b3c61ce03318b1c7 diff --git a/lib/File/KDBX/Loader/XML.pm b/lib/File/KDBX/Loader/XML.pm index 806b261..a607405 100644 --- a/lib/File/KDBX/Loader/XML.pm +++ b/lib/File/KDBX/Loader/XML.pm @@ -9,22 +9,19 @@ use Encode qw(decode); use File::KDBX::Constants qw(:version :time); use File::KDBX::Error; use File::KDBX::Safe; -use File::KDBX::Util qw(:text assert_64bit gunzip erase_scoped); +use File::KDBX::Util qw(:class :text assert_64bit gunzip erase_scoped); use Scalar::Util qw(looks_like_number); use Time::Piece; use XML::LibXML::Reader; use boolean; use namespace::clean; -use parent 'File::KDBX::Loader'; +extends 'File::KDBX::Loader'; our $VERSION = '999.999'; # VERSION -sub _reader { $_[0]->{_reader} } - -sub _binaries { $_[0]->{binaries} //= {} } - -sub _safe { $_[0]->{safe} //= File::KDBX::Safe->new(cipher => $_[0]->kdbx->random_stream) } +has '_reader', is => 'ro'; +has '_safe', is => 'ro', default => sub { File::KDBX::Safe->new(cipher => $_[0]->kdbx->random_stream) }; sub _read { my $self = shift; @@ -39,7 +36,7 @@ sub _read_inner_body { my $reader = $self->{_reader} = XML::LibXML::Reader->new(IO => $fh); - delete $self->{safe}; + delete $self->{_safe}; my $root_done; my $pattern = XML::LibXML::Pattern->new('/KeePassFile/Meta|/KeePassFile/Root'); @@ -63,7 +60,7 @@ sub _read_inner_body { throw 'Failed to parse KeePass XML'; } - $self->kdbx->_safe($self->_safe) if $self->{safe}; + $self->kdbx->_safe($self->_safe) if $self->{_safe}; $self->_resolve_binary_refs; }