Skip to content

Commit

Permalink
Remove dependency on now experimental feature "switch
Browse files Browse the repository at this point in the history
Been marked as experimental since 5.18 sometime - and there is no point using it anymore.
  • Loading branch information
LoonyPandora committed Feb 9, 2014
1 parent cf89b0e commit 2fb5b3f
Showing 1 changed file with 31 additions and 35 deletions.
66 changes: 31 additions & 35 deletions lib/Dancer/Plugin/Passphrase.pm
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ hashing function provided by L<Digest>
=cut

use strict;
use feature 'switch';

use Dancer::Plugin;

Expand Down Expand Up @@ -410,29 +409,26 @@ sub _calculate_hash {

my $hasher = Digest->new( $self->algorithm );

given ($self->algorithm) {
when ('Bcrypt') {
$hasher->add($self->{plaintext});
$hasher->salt($self->salt_raw);
$hasher->cost($self->cost);

$self->{hash} = $hasher->digest;
$self->{rfc2307}
= '{CRYPT}$'
. $self->{type} . '$'
. $self->cost . '$'
. _en_bcrypt_base64($self->salt_raw)
. _en_bcrypt_base64($self->hash_raw);
}
default {
$hasher->add($self->{plaintext});
$hasher->add($self->{salt});

$self->{hash} = $hasher->digest;
$self->{rfc2307}
= '{' . $self->{scheme} . '}'
. encode_base64($self->hash_raw . $self->salt_raw, '');
}
if ($self->algorithm eq 'Bcrypt') {
$hasher->add($self->{plaintext});
$hasher->salt($self->salt_raw);
$hasher->cost($self->cost);

$self->{hash} = $hasher->digest;
$self->{rfc2307}
= '{CRYPT}$'
. $self->{type} . '$'
. $self->cost . '$'
. _en_bcrypt_base64($self->salt_raw)
. _en_bcrypt_base64($self->hash_raw);
} else {
$hasher->add($self->{plaintext});
$hasher->add($self->{salt});

$self->{hash} = $hasher->digest;
$self->{rfc2307}
= '{' . $self->{scheme} . '}'
. encode_base64($self->hash_raw . $self->salt_raw, '');
}

return $self;
Expand All @@ -450,14 +446,13 @@ sub _extract_settings {
}

if ($scheme eq 'CRYPT'){
given ($settings) {
when (/^\$2(?:a|x|y)\$/) {
$scheme = 'Bcrypt';
$settings =~ m{\A\$(2a|2x|2y)\$([0-9]{2})\$([./A-Za-z0-9]{22})}x;

($self->{type}, $self->{cost}, $self->{salt}) = ($1, $2, _de_bcrypt_base64($3));
}
default { croak "Unknown CRYPT format: $_"; }
if ($settings =~ m/^\$2(?:a|x|y)\$/) {
$scheme = 'Bcrypt';
$settings =~ m{\A\$(2a|2x|2y)\$([0-9]{2})\$([./A-Za-z0-9]{22})}x;

($self->{type}, $self->{cost}, $self->{salt}) = ($1, $2, _de_bcrypt_base64($3));
} else {
croak "Unknown CRYPT format: $_";
}
}

Expand Down Expand Up @@ -510,9 +505,10 @@ sub _get_settings {
$self->{scheme} = join '', $self->algorithm =~ /[\w]+/g;
$self->{scheme} = 'S'.$self->{scheme} if $self->{salt};

given ($self->{scheme}) {
when ('SHA1') { $self->{scheme} = 'SHA'; }
when ('SSHA1') { $self->{scheme} = 'SSHA'; }
if ($self->{scheme} eq 'SHA1') {
$self->{scheme} = 'SHA';
} elsif ($self->{scheme} eq 'SSHA1') {
$self->{scheme} = 'SSHA';
}

# Bcrypt requires a cost parameter
Expand Down

0 comments on commit 2fb5b3f

Please sign in to comment.