File: bio.pl

package info (click to toggle)
libnet-ssleay-perl 1.94-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,236 kB
  • sloc: ansic: 6,661; perl: 3,924; makefile: 3
file content (47 lines) | stat: -rw-r--r-- 1,204 bytes parent folder | download | duplicates (8)
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
#!/usr/bin/perl -w
# bio.pl mikem@open.com.au
#
# Test and demonstrate BIO interface

use Net::SSLeay qw(die_now);

$data = '0123456789' x 100;
$len = length($data);

$b = &Net::SSLeay::BIO_new(&Net::SSLeay::BIO_s_mem())
    or die_now("Could not create memory BIO $!");

&Net::SSLeay::BIO_write($b, $data)
    or die_now("Could not write memory BIO $!");

# Should now have 1000 bytes in BIO
$pending =  &Net::SSLeay::BIO_pending($b);
die("Incorrect result from BIO_pending: $pending. Should be $len")
    unless $pending == $len;

# Partial read of 9 bytes
$len = 9;
$part = &Net::SSLeay::BIO_read($b, $len);
$nlen = length($part);
die("Incorrect result from BIO_read: $len. Should be 9")
    unless $nlen == $len;

die("Incorrect data from BIO_read: $len. Should be 012345678")
    unless $part eq '012345678';

# Should be 991 bytes left
$len = 991;
$pending =  &Net::SSLeay::BIO_pending($b);
die("Incorrect result from BIO_pending: $pending. Should be $len")
    unless $pending == $len;

# Read the rest
$part = &Net::SSLeay::BIO_read($b);
$nlen = length($part);
die("Incorrect result from BIO_read: $len. Should be 991")
    unless $len == $nlen;

&Net::SSLeay::BIO_free($b);

print "OK\n";
exit;