/usr/share/doc/libconvert-asn1-perl/examples/ldap-search is in libconvert-asn1-perl 0.27-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | # This is an example of a search PDU from the LDAP protocol
use Convert::ASN1;
use Data::Dumper;
my %scope = qw(base 0 one 1 single 1 sub 2 subtree 2);
my %deref = qw(never 0 search 1 find 2 always 3);
my $search_pdu = Convert::ASN1->new;
$search_pdu->prepare(q(
SEQUENCE {
mesgid INTEGER,
[APPLICATION 3] SEQUENCE {
base STRING,
scope ENUM,
deref ENUM,
sizeLimit INTEGER,
timeLimit INTEGER,
typesOnly BOOLEAN,
filter STRING, -- for test, should be ANY and the var should hold
-- a pre-encoded filter
attrs SEQUENCE OF STRING
}
control [0] SEQUENCE OF SEQUENCE { -- this should be optional but we cannot do that inline
type STRING,
critical BOOLEAN,
value STRING OPTIONAL
}
}
)) or die $search_pdu->error;
$buf = $search_pdu->encode(
mesgid => 3,
base => "cn=base",
scope => $scope{one},
deref => $deref{find},
sizeLimit => 0,
timeLimit => 0,
typesOnly => 0,
filter => "A filter",
attrs => [qw(cn postalAddress)],
control => [
{
type => "1.2.3.4",
critical => 1
},
{
type => "9.8.7.6",
critical => 0,
value => "abc"
}
]
);
$Data::Dumper::Indent = 1;
print Dumper( $search_pdu->decode($buf));
$h = unpack("H*",$buf);
$h =~ s/(..)/$1 /g;
$h =~ s/(.{47}\s)/$1\n/g;
print $h,"\n";
|