Blame t/digest_md5_verified.t

Packit ae5a87
#!perl
Packit ae5a87
Packit ae5a87
BEGIN {
Packit ae5a87
  require Test::More;
Packit ae5a87
  eval { require Digest::MD5 } or Test::More->import(skip_all => 'Need Digest::MD5');
Packit ae5a87
  eval { require Digest::HMAC_MD5 } or Test::More->import(skip_all => 'Need Digest::HMAC_MD5');
Packit ae5a87
}
Packit ae5a87
Packit ae5a87
use Test::More (tests => 8);
Packit ae5a87
Packit ae5a87
use Authen::SASL qw(Perl);
Packit ae5a87
Packit ae5a87
my $authname;
Packit ae5a87
Packit ae5a87
my $sasl = Authen::SASL->new(
Packit ae5a87
  mechanism => 'DIGEST-MD5',
Packit ae5a87
  callback => {
Packit ae5a87
    user => 'fred',
Packit ae5a87
    pass => 'gladys',
Packit ae5a87
    authname => sub { $authname },
Packit ae5a87
  },
Packit ae5a87
);
Packit ae5a87
ok($sasl,'new');
Packit ae5a87
Packit ae5a87
is($sasl->mechanism, 'DIGEST-MD5', 'sasl mechanism');
Packit ae5a87
Packit ae5a87
my $conn = $sasl->client_new("sieve","imap.spodhuis.org", "noplaintext noanonymous");
Packit ae5a87
Packit ae5a87
is($conn->mechanism, 'DIGEST-MD5', 'conn mechanism');
Packit ae5a87
Packit ae5a87
is($conn->client_start, '', 'client_start');
Packit ae5a87
Packit ae5a87
my $sparams = 'nonce="YPymzyi3YH8OILTBvSIuaul7RD3fIANDT2akHE6auBE=",realm="imap.spodhuis.org",qop="auth",maxbuf=4096,charset=utf-8,algorithm=md5-sess';
Packit ae5a87
# override for testing as by default it uses $$, time and rand
Packit ae5a87
$Authen::SASL::Perl::DIGEST_MD5::CNONCE = "foobar";
Packit ae5a87
$Authen::SASL::Perl::DIGEST_MD5::CNONCE = "foobar"; # avoid used only once warning
Packit ae5a87
my $initial = $conn->client_step($sparams);
Packit ae5a87
Packit ae5a87
ok(!$conn->code(), "SASL error: " . ($conn->code() ? $conn->error() : ''));
Packit ae5a87
Packit ae5a87
my @expect = qw(
Packit ae5a87
  charset=utf-8
Packit ae5a87
  cnonce="3858f62230ac3c915f300c664312c63f"
Packit ae5a87
  digest-uri="sieve/imap.spodhuis.org"
Packit ae5a87
  nc=00000001
Packit ae5a87
  nonce="YPymzyi3YH8OILTBvSIuaul7RD3fIANDT2akHE6auBE="
Packit ae5a87
  qop=auth
Packit ae5a87
  realm="imap.spodhuis.org"
Packit ae5a87
  response=3743421076899a855bafec1f7a9ed58a
Packit ae5a87
  username="fred"
Packit ae5a87
);
Packit ae5a87
Packit ae5a87
is(
Packit ae5a87
  $initial,
Packit ae5a87
  join(",", @expect),
Packit ae5a87
  'client_step'
Packit ae5a87
);
Packit ae5a87
Packit ae5a87
my $second = $conn->client_step('rspauth=4593215e1a0613328324b8325b975d96');
Packit ae5a87
Packit ae5a87
ok(!$conn->code(), "SASL error: " . ($conn->code() ? $conn->error() : ''));
Packit ae5a87
Packit ae5a87
is(
Packit ae5a87
  $second,
Packit ae5a87
  '',
Packit ae5a87
  'client_step final verification'
Packit ae5a87
);