Algorithm-IRCSRP2
view release on metacpan or search on metacpan
lib/Algorithm/IRCSRP2/Alice.pm view on Meta::CPAN
);
sub srpa0 {
my ($self) = @_;
$self->state('srpa0');
return '+srpa0 ' . $self->I();
}
sub verify_srpa1 {
my ($self, $msg) = @_;
$msg =~ s/^\+srpa1 //;
my $decoded = MIME::Base64::decode_base64($msg);
my $s = substr($decoded, 0, 32, '');
$self->s($s);
my $B = $self->B(bytes2int($decoded));
lib/Algorithm/IRCSRP2/Alice.pm view on Meta::CPAN
$self->M1($M1);
# ircmessage = "+srpa2 " || Base64(M1 || IntAsBytes(A))
my $msg = MIME::Base64::encode_base64($M1 . int2bytes($A), '');
$self->state('srpa2');
return '+srpa2 ' . $msg;
}
sub verify_srpa3 {
my ($self, $msg) = @_;
$msg =~ s/^\+srpa3 //;
my $cipher = MIME::Base64::decode_base64($msg);
my $cmac = substr($cipher, 0, 16);
if (hmac_sha256_128($self->K2(), substr($cipher, 16)) ne $cmac) {
$self->error('incorrect mac');
lib/Algorithm/IRCSRP2/Alice.pm view on Meta::CPAN
=head1 PUBLIC API METHODS
See also L<Algorithm::IRCSRP2> (base class).
=over
=item * B<srpa0()> - Generate C<+spr0> string.
=item * B<srpa2()> - Generates C<+srpa2> string.
=item * B<verify_srpa1($msg)> - Verifies Dave's C<+srpa1> message.
=item * B<verify_srpa3($msg)> - Verifies Dave's C<+srpa3> message. Once this is
done. Authentication is complete.
=back
=head1 AUTHOR
Adam Flott <adam@npjh.com>
=head1 COPYRIGHT AND LICENSE
( run in 1.018 second using v1.01-cache-2.11-cpan-73692580452 )