mirror of
https://codeberg.org/scip/Crypt--PWSafe3.git
synced 2025-12-16 12:11:02 +01:00
added the password policy feature to the core (::Record) for easier access.
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
1.13
|
||||
added Crypt::PWSafe3::PasswordPolicy submodule, which allows
|
||||
to access the password policy of a PasswordSafe record.
|
||||
|
||||
1.12
|
||||
I somehow managed to mangle version numbers of sub modules,
|
||||
now all properly incremented.
|
||||
|
||||
@@ -22,12 +22,13 @@ use Data::Dumper;
|
||||
use Exporter ();
|
||||
use vars qw(@ISA @EXPORT);
|
||||
|
||||
$Crypt::PWSafe3::VERSION = '1.12';
|
||||
$Crypt::PWSafe3::VERSION = '1.13';
|
||||
|
||||
use Crypt::PWSafe3::Field;
|
||||
use Crypt::PWSafe3::HeaderField;
|
||||
use Crypt::PWSafe3::Record;
|
||||
use Crypt::PWSafe3::SHA256;
|
||||
use Crypt::PWSafe3::PasswordPolicy;
|
||||
|
||||
require 5.10.0;
|
||||
|
||||
|
||||
@@ -67,6 +67,8 @@ sub new {
|
||||
sub decode {
|
||||
my($this, $raw) = @_;
|
||||
|
||||
return if $raw eq '';
|
||||
|
||||
# expected input: ffffnnnllluuudddsss
|
||||
|
||||
# create a 6-elemt array
|
||||
@@ -136,7 +138,7 @@ Crypt::PWSafe3::PasswordPolicy - represent a passwordsafe v3 passwprd policy ent
|
||||
use Crypt::PWSafe3;
|
||||
use Crypt::PWSafe3::PasswordPolicy;
|
||||
my $record = $vault->getrecord($uuid);
|
||||
my $policy = Crypt::PWSafe3::PasswordPolicy->new(raw => $record->pwpol);
|
||||
my $policy = $record->policy;
|
||||
|
||||
# print current values
|
||||
print Dumper($policy);
|
||||
@@ -149,7 +151,9 @@ Crypt::PWSafe3::PasswordPolicy - represent a passwordsafe v3 passwprd policy ent
|
||||
$policy->MinSymbols(2);
|
||||
|
||||
# put back into record
|
||||
$record->raw($policy->encode());
|
||||
$record->policy($policy);
|
||||
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ my %map2type = %Crypt::PWSafe3::Field::map2type;
|
||||
|
||||
my %map2name = %Crypt::PWSafe3::Field::map2name;
|
||||
|
||||
$Crypt::PWSafe3::Record::VERSION = '1.06';
|
||||
$Crypt::PWSafe3::Record::VERSION = '1.07';
|
||||
|
||||
foreach my $field (keys %map2type ) {
|
||||
eval qq(
|
||||
@@ -144,6 +144,22 @@ sub addfield {
|
||||
$this->{field}->{ $name } = $field;
|
||||
}
|
||||
|
||||
sub policy {
|
||||
#
|
||||
# return or set a password policy
|
||||
my ($this, $policy) = @_;
|
||||
|
||||
if($policy) {
|
||||
$this->{policy} = $policy;
|
||||
$this->pwpol($policy->encode());
|
||||
}
|
||||
else {
|
||||
$this->{policy} = Crypt::PWSafe3::PasswordPolicy->new(raw => $this->pwpol);
|
||||
}
|
||||
|
||||
return $this->{policy};
|
||||
}
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Crypt::PWSafe3::Record - Represents a Passwordsafe v3 data record
|
||||
@@ -265,9 +281,18 @@ for more details.
|
||||
Returns the password policy without argument. Sets the password policy
|
||||
if an argument is given.
|
||||
|
||||
B<Crypt::PWSafe3> doesn't update the pwpol field currently. So if
|
||||
you mind, do it yourself. Refer to L<Crypt::PWSafe3::Databaseformat>
|
||||
for more details.
|
||||
This is the raw encoded policy string. If you want to access it, use the
|
||||
B<policy()> method, see below.
|
||||
|
||||
=head2 B<policy([Crypt::PWSafe3::PasswordPolicy object])>
|
||||
|
||||
If called without arguments, returns a Crypt::PWSafe3::PasswordPolicy
|
||||
object. See L<Crypt::PWSafe3::PasswordPolicy> for details, how to access
|
||||
it.
|
||||
|
||||
To modify the password policy, create new Crypt::PWSafe3::PasswordPolicy
|
||||
object or modify the existing one and pass it as argument to the
|
||||
B<policy> method.
|
||||
|
||||
=head2 B<pwexp([string])>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user