X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=lib%2FFile%2FKDBX%2FEntry.pm;h=b6858358fd214092d49c1b882b7a167c408285c3;hb=63b4359a4d81a771ca3fcbcf35d9fe9d52754501;hp=e97e30a7228d7b8e0d6e9ef0995637331d3d93a3;hpb=63d73bf382edfb0089b36a45193fc2835cb58b6d;p=chaz%2Fp5-File-KDBX diff --git a/lib/File/KDBX/Entry.pm b/lib/File/KDBX/Entry.pm index e97e30a..b685835 100644 --- a/lib/File/KDBX/Entry.pm +++ b/lib/File/KDBX/Entry.pm @@ -4,7 +4,7 @@ package File::KDBX::Entry; use warnings; use strict; -use Crypt::Misc 0.029 qw(decode_b64 encode_b32r); +use Crypt::Misc 0.049 qw(decode_b64 encode_b32r); use Devel::GlobalDestruction; use Encode qw(encode); use File::KDBX::Constants qw(:history :icon); @@ -15,7 +15,7 @@ use List::Util qw(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; +use Time::Piece 1.33; use boolean; use namespace::clean; @@ -60,7 +60,7 @@ An array of window title / keystroke sequence associations. keystroke_sequence => '{USERNAME}{TAB}{PASSWORD}{ENTER}', } -Keystroke sequences can have , most commonly C<{USERNAME}> and C<{PASSWORD}>. +Keystroke sequences can have L, most commonly C<{USERNAME}> and C<{PASSWORD}>. =attr quality_check @@ -298,7 +298,7 @@ sub string_value { =method expand_string_value - $string = $entry->expand_string_value; + $string = $entry->expand_string_value($string_key); Same as L but will substitute placeholders and resolve field references. Any placeholders that do not expand to values are left as-is. @@ -308,6 +308,26 @@ See L. Some placeholders (notably field references) require the entry be connected to a database and will throw an error if it is not. +=method expand_notes + +Shortcut equivalent to C<< ->expand_string_value('Notes') >>. + +=method expand_password + +Shortcut equivalent to C<< ->expand_string_value('Password') >>. + +=method expand_title + +Shortcut equivalent to C<< ->expand_string_value('Title') >>. + +=method expand_url + +Shortcut equivalent to C<< ->expand_string_value('URL') >>. + +=method expand_username + +Shortcut equivalent to C<< ->expand_string_value('UserName') >>. + =cut sub _expand_placeholder { @@ -360,26 +380,6 @@ sub expand_string_value { return $self->_expand_string($str); } -=attr expand_notes - -Shortcut equivalent to C<< ->expand_string_value('Notes') >>. - -=attr expand_password - -Shortcut equivalent to C<< ->expand_string_value('Password') >>. - -=attr expand_title - -Shortcut equivalent to C<< ->expand_string_value('Title') >>. - -=attr expand_url - -Shortcut equivalent to C<< ->expand_string_value('URL') >>. - -=attr expand_username - -Shortcut equivalent to C<< ->expand_string_value('UserName') >>. - =method other_strings $other = $entry->other_strings; @@ -553,7 +553,7 @@ sub hmac_otp { $params{secret} = encode_b32r($params{secret}) if !$params{base32}; $params{base32} = 1; - my $otp = eval {Pass::OTP::otp(%params, @_) }; + my $otp = eval { Pass::OTP::otp(%params, @_) }; if (my $err = $@) { throw 'Unable to generate HOTP', error => $err; } @@ -587,7 +587,7 @@ sub time_otp { $params{secret} = encode_b32r($params{secret}) if !$params{base32}; $params{base32} = 1; - my $otp = eval {Pass::OTP::otp(%params, @_) }; + my $otp = eval { Pass::OTP::otp(%params, @_) }; if (my $err = $@) { throw 'Unable to generate TOTP', error => $err; } @@ -845,7 +845,7 @@ sub prune_history { my $max_items = $args{max_items} // eval { $self->kdbx->history_max_items } // HISTORY_DEFAULT_MAX_ITEMS; my $max_size = $args{max_size} // eval { $self->kdbx->history_max_size } // HISTORY_DEFAULT_MAX_SIZE; - my $max_age = $args{max_age} // HISTORY_DEFAULT_MAX_AGE; + my $max_age = $args{max_age} // eval { $self->kdbx->maintenance_history_days } // HISTORY_DEFAULT_MAX_AGE; # history is ordered oldest to newest my $history = $self->history; @@ -1055,7 +1055,8 @@ There is also some metadata associated with an entry. Each entry in a database i a UUID. An entry can also have an icon associated with it, and there are various timestamps. Take a look at the attributes to see what's available. -A B is a subclass of L. +A B is a subclass of L. View its documentation to see other attributes +and methods available on entries. =head2 Placeholders