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 0.422 second using v1.01-cache-2.11-cpan-5467b0d2c73 )