require 5.004;
use strict;
eval { require Crypt::DES };
if ($@ || $Crypt::DES::VERSION < 2.03) {
print "1..0\n";
exit 0;
}
require "t/lib.pl";
my $numTests = 18;
my $numTest = 0;
my $hostkey = 'b3a6d83ef3187ac4';
my $userkey = '9823adc3287efa98';
my $cfg = <<"EOF";
require Crypt::DES;
{
clients => [ {
'mask' => '^127\.0\.0\.1\$',
'accept' => 1,
'cipher' => Crypt::DES->new(pack("H*", "$hostkey")),
'users' => [ {
'name' => 'bob'
},
{
'name' => 'jim',
'cipher' => Crypt::DES->new(pack("H*", "$userkey"))
} ] }
]
}
EOF
if (!open(FILE, ">t/crypt.cfg") || !(print FILE ($cfg)) || !close(FILE)) {
die "Error while creating config file t/crypt.cfg: $!";
}
my($handle, $port);
($handle, $port) = Net::Daemon::Test->Child($numTests,
$^X, '-Iblib/lib',
'-Iblib/arch',
't/server', '--mode=single',
'--debug', '--timeout', 60,
'--configfile', 't/crypt.cfg');
require Crypt::DES;
my $hostcipher = Crypt::DES->new(pack("H*", $hostkey));
my $usercipher = Crypt::DES->new(pack("H*", $userkey));
my @opts = ('peeraddr' => '127.0.0.1', 'peerport' => $port, 'debug' => 1,
'application' => 'CalcServer', 'version' => 0.01,
'timeout' => 20, 'usercipher' => $hostcipher);
RunTests('user' => 'bob', @opts);
RunTests('usercipher' => $usercipher, 'user' => 'jim', @opts);
$handle->Terminate() if $handle;