1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
#! /usr/bin/perl -w
use strict;
use ExtUtils::testlib;
use GSSAPI qw(:all);
use Test::More tests => 13;
my $status;
my $okay;
my( $type);
#------------------------------------------
my $oid = gss_nt_user_name;
my $str;
SKIP:
{
skip('oid_to_str not supportetd on Heimdal', 2) if GSSAPI::gssapi_implementation_is_heimdal();
$status = $oid->to_str($str);
ok($status, ' $oid->to_str($str) ');
cmp_ok($str, 'eq', '{ 1 2 840 113554 1 2 1 1 }', q{ $str eq '{ 1 2 840 113554 1 2 1 1 }' });
}
{ my(@oidss); foreach(1..1000) { push @oidss, GSSAPI::OID::Set->new() };
}
my($oidset);
$status = gss_mech_krb5->inquire_names($oidset);
ok(ref $status eq 'GSSAPI::Status', q{ref $status eq 'GSSAPI::Status'});
ok($status, 'gss_mech_krb5->inquire_names($oidset);');
undef $oidset;
#
# GSSAPI::Binding
#
my($binding);
$binding = GSSAPI::Binding->new();
ok(ref $binding eq "GSSAPI::Binding");;
ok($binding->get_initiator_addrtype == GSS_C_AF_NULLADDR,
'$binding->get_initiator_addrtype == GSS_C_AF_NULLADDR');
ok(! defined $binding->get_initiator_address);
ok($binding->get_acceptor_addrtype == GSS_C_AF_NULLADDR,
'$binding->get_acceptor_addrtype == GSS_C_AF_NULLADDR');
ok(! defined $binding->get_acceptor_address);
ok(! defined $binding->get_appl_data);
$okay = 1;
foreach (1 .. 1000) {
$binding = GSSAPI::Binding->new();
ref $binding eq "GSSAPI::Binding" or $okay = 0, last;
}
ok($okay, 'GSSAPI::Binding->new()');
# first, just random types
$okay = 1;
foreach (1 .. 1000) {
my($type1, $type2);
$binding = GSSAPI::Binding->new();
ref $binding eq "GSSAPI::Binding" or $okay = 0, last;
$type1 = int(rand(0x7fffffff));
$type2 = int(rand(0x7fffffff));
$binding->set_initiator($type1, undef);
$binding->set_acceptor($type2, undef);
$binding->get_initiator_addrtype == $type1 &&
! defined $binding->get_initiator_address &&
$binding->get_acceptor_addrtype == $type2 &&
! defined $binding->get_acceptor_address or $okay = 0, last;
}
ok($okay, 'random types as input of GSSAPI::Binding');
# Now, random types and values
$okay = 1;
foreach (1 .. 1000) {
my($type1, $addr1, $type2, $addr2, $appl);
$type1 = int(rand(0x7fffffff));
$addr1 = rand_string();
$type2 = int(rand(0x7fffffff));
$addr2 = rand_string();
$appl = rand_string();
$binding = GSSAPI::Binding->new();
ref $binding eq "GSSAPI::Binding" or $okay = 0, last;
$binding->set_initiator($type1, $addr1);
$binding->set_acceptor($type2, $addr2);
$binding->set_appl_data($appl);
$binding->get_initiator_addrtype == $type1 &&
$binding->get_initiator_address eq $addr1 &&
$binding->get_acceptor_addrtype == $type2 &&
$binding->get_acceptor_address eq $addr2 &&
$binding->get_appl_data eq $appl or $okay = 0, last;
undef $binding;
}
ok($okay, 'random types and values as input of GSSAPI::Binding');
#-------------------------------------------------------------
sub rand_string {
my($length, $buf);
$length = int(rand(64));
$buf = '';
foreach (1..$length) {
$buf .= chr(rand(0xFF));
}
$buf
}
|