1use lib 'inc';
2
3use Net::SSLeay;
4use Test::Net::SSLeay qw(initialise_libssl);
5
6if (Net::SSLeay::SSLeay < 0x10100001) {
7    plan skip_all => 'OpenSSL 1.1.0 required';
8} elsif (Net::SSLeay::constant("LIBRESSL_VERSION_NUMBER")) {
9    plan skip_all => 'get/set_security_level not available with LibreSSL';
10} else {
11    plan tests => 20;
12}
13
14initialise_libssl();
15
16my $ctx = Net::SSLeay::CTX_new();
17ok( defined Net::SSLeay::CTX_get_security_level($ctx),
18    "CTX_get_security_level() returns a value"
19);
20
21ok( Net::SSLeay::CTX_get_security_level($ctx) >= 0,
22    "CTX_get_security_level() is non-negative"
23);
24
25for (0..7) {
26    Net::SSLeay::CTX_set_security_level($ctx, $_);
27    is( Net::SSLeay::CTX_get_security_level($ctx),
28        $_, "CTX_get_security_level() matches CTX_set_security_level($_)" );
29}
30
31my $ssl = Net::SSLeay::new($ctx);
32ok( defined Net::SSLeay::get_security_level($ssl),
33    "get_security_level() returns a value"
34);
35
36ok( Net::SSLeay::get_security_level($ssl) >= 0,
37    "get_security_level() is non-negative"
38);
39
40for (0..7) {
41    Net::SSLeay::set_security_level($ssl, $_);
42    is( Net::SSLeay::get_security_level($ssl),
43        $_, "get_security_level() matches set_security_level($_)" );
44}
45