annotate mail_ssl.t @ 1847:a9704b9ed7a2

Tests: removed multiple server certificates from ssl_ocsp.t. Multiple server certificates are not needed to test OCSP verification of client certificates (in contrast to OCSP stapling, where server certificates are verified, and different staples should be correctly returned with different server certificates). And using multiple server certificates causes issues when testing with LibreSSL due to broken sigalgs-based server certificate selection in LibreSSL with TLSv1.3. Accordingly, the test is simplified to do not use multiple server certificates.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 23 Mar 2023 19:50:26 +0300
parents f6d1f82f314b
children ce4a06d72256
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
2
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
3 # (C) Andrey Zelenkov
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
5
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
6 # Tests for mail ssl module.
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
7
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
8 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
9
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
10 use warnings;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
11 use strict;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
12
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
13 use Test::More;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
14
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
16
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
17 use lib 'lib';
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
19 use Test::Nginx::IMAP;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
20 use Test::Nginx::POP3;
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
21 use Test::Nginx::SMTP;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
22
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
23 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
24
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
25 select STDERR; $| = 1;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
26 select STDOUT; $| = 1;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
27
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
28 eval {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
29 require Net::SSLeay;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
30 Net::SSLeay::load_error_strings();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
31 Net::SSLeay::SSLeay_add_ssl_algorithms();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
32 Net::SSLeay::randomize();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
33 };
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
34 plan(skip_all => 'Net::SSLeay not installed') if $@;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
35
1742
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
36 eval { exists &Net::SSLeay::P_alpn_selected or die; };
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
37 plan(skip_all => 'Net::SSLeay with OpenSSL ALPN support required') if $@;
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
38
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
39 my $t = Test::Nginx->new()->has(qw/mail mail_ssl imap pop3 smtp/)
1831
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
40 ->has_daemon('openssl')->plan(18);
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
41
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
42 $t->write_file_expand('nginx.conf', <<'EOF');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
43
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
44 %%TEST_GLOBALS%%
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
45
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
46 daemon off;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
47
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
48 events {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
49 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
50
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
51 mail {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
52 ssl_certificate_key localhost.key;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
53 ssl_certificate localhost.crt;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
54
1147
796ed08cb215 Tests: simplified ssl_password_file tests in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1145
diff changeset
55 ssl_password_file password;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
56
1145
f193664e06d8 Tests: remove unused http block in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1142
diff changeset
57 auth_http http://127.0.0.1:8080; # unused
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
58
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
59 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
60 listen 127.0.0.1:8143;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
61 listen 127.0.0.1:8145 ssl;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
62 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
63 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
64
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
65 server {
1831
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
66 listen 127.0.0.1:8148;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
67 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
68
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
69 # Special case for enabled "ssl" directive.
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
70
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
71 ssl on;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
72
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
73 ssl_certificate_key inherits.key;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
74 ssl_certificate inherits.crt;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
75 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
76
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
77 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
78 listen 127.0.0.1:8149;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
79 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
80
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
81 starttls on;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
82 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
83
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
84 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
85 listen 127.0.0.1:8150;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
86 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
87
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
88 starttls only;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
89 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
90
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
91 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
92 listen 127.0.0.1:8151;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
93 protocol pop3;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
94
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
95 starttls on;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
96 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
97
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
98 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
99 listen 127.0.0.1:8152;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
100 protocol pop3;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
101
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
102 starttls only;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
103 }
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
104
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
105 server {
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
106 listen 127.0.0.1:8153;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
107 protocol smtp;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
108
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
109 starttls on;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
110 }
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
111
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
112 server {
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
113 listen 127.0.0.1:8154;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
114 protocol smtp;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
115
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
116 starttls only;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
117 }
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
118 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
119
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
120 EOF
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
121
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
122 $t->write_file('openssl.conf', <<EOF);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
123 [ req ]
1488
dbce8fb5f5f8 Tests: align with OpenSSL security level 2.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1324
diff changeset
124 default_bits = 2048
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
125 encrypt_key = no
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
126 distinguished_name = req_distinguished_name
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
127 [ req_distinguished_name ]
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
128 EOF
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
129
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
130 my $d = $t->testdir();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
131
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
132 foreach my $name ('localhost', 'inherits') {
1220
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1148
diff changeset
133 system("openssl genrsa -out $d/$name.key -passout pass:localhost "
1488
dbce8fb5f5f8 Tests: align with OpenSSL security level 2.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1324
diff changeset
134 . "-aes128 2048 >>$d/openssl.out 2>&1") == 0
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
135 or die "Can't create private key: $!\n";
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
136 system('openssl req -x509 -new '
1220
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1148
diff changeset
137 . "-config $d/openssl.conf -subj /CN=$name/ "
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1148
diff changeset
138 . "-out $d/$name.crt "
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1148
diff changeset
139 . "-key $d/$name.key -passin pass:localhost"
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
140 . ">>$d/openssl.out 2>&1") == 0
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
141 or die "Can't create certificate for $name: $!\n";
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
142 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
143
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
144 my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
145 $t->write_file('password', 'localhost');
1324
918bf90466e0 Tests: hide startup warnings about deprecated ssl.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1220
diff changeset
146
918bf90466e0 Tests: hide startup warnings about deprecated ssl.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1220
diff changeset
147 open OLDERR, ">&", \*STDERR; close STDERR;
1145
f193664e06d8 Tests: remove unused http block in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1142
diff changeset
148 $t->run();
1324
918bf90466e0 Tests: hide startup warnings about deprecated ssl.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1220
diff changeset
149 open STDERR, ">&", \*OLDERR;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
150
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
151 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
152
1831
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
153 my ($s, $ssl);
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
154
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
155 # simple tests to ensure that nothing broke with ssl_password_file directive
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
156
1831
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
157 $s = Test::Nginx::IMAP->new();
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
158 $s->ok('greeting');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
159
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
160 $s->send('1 AUTHENTICATE LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
161 $s->check(qr/\+ VXNlcm5hbWU6/, 'login');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
162
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
163 # ssl_certificate inheritance
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
164
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
165 ($s, $ssl) = get_ssl_socket(8145);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
166 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=localhost/, 'CN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
167
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
168 ($s, $ssl) = get_ssl_socket(8148);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
169 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=inherits/, 'CN inner');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
170
1742
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
171 # alpn
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
172
1831
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
173 ok(get_ssl_socket(8148, ['imap']), 'alpn');
1742
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
174
1743
2318ed01ce53 Tests: skip ALPN rejection tests with too old LibreSSL.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1742
diff changeset
175 SKIP: {
2318ed01ce53 Tests: skip ALPN rejection tests with too old LibreSSL.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1742
diff changeset
176 $t->{_configure_args} =~ /LibreSSL ([\d\.]+)/;
2318ed01ce53 Tests: skip ALPN rejection tests with too old LibreSSL.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1742
diff changeset
177 skip 'LibreSSL too old', 1 if defined $1 and $1 lt '3.4.0';
1744
38bd7e75fe69 Tests: skip ALPN rejection tests with OpenSSL < 1.1.0.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1743
diff changeset
178 $t->{_configure_args} =~ /OpenSSL ([\d\.]+)/;
38bd7e75fe69 Tests: skip ALPN rejection tests with OpenSSL < 1.1.0.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1743
diff changeset
179 skip 'OpenSSL too old', 1 if defined $1 and $1 lt '1.1.0';
1743
2318ed01ce53 Tests: skip ALPN rejection tests with too old LibreSSL.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1742
diff changeset
180
1742
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
181 TODO: {
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
182 local $TODO = 'not yet' unless $t->has_version('1.21.4');
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
183
1831
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
184 ok(!get_ssl_socket(8148, ['unknown']), 'alpn rejected');
1742
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
185
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
186 }
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
187
1743
2318ed01ce53 Tests: skip ALPN rejection tests with too old LibreSSL.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1742
diff changeset
188 }
2318ed01ce53 Tests: skip ALPN rejection tests with too old LibreSSL.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1742
diff changeset
189
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
190 # starttls imap
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
191
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
192 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8149));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
193 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
194
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
195 $s->send('1 AUTHENTICATE LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
196 $s->check(qr/\+ VXNlcm5hbWU6/, 'imap auth before startls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
197
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
198 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8149));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
199 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
200
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
201 $s->send('1 STARTTLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
202 $s->ok('imap starttls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
203
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
204 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8150));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
205 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
206
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
207 $s->send('1 AUTHENTICATE LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
208 $s->check(qr/^\S+ BAD/, 'imap auth before startls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
209
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
210 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8150));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
211 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
212
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
213 $s->send('1 STARTTLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
214 $s->ok('imap starttls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
215
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
216 # starttls pop3
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
217
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
218 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8151));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
219 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
220
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
221 $s->send('AUTH LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
222 $s->check(qr/\+ VXNlcm5hbWU6/, 'pop3 auth before startls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
223
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
224 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8151));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
225 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
226
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
227 $s->send('STLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
228 $s->ok('pop3 starttls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
229
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
230 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8152));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
231 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
232
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
233 $s->send('AUTH LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
234 $s->check(qr/^-ERR/, 'pop3 auth before startls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
235
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
236 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8152));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
237 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
238
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
239 $s->send('STLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
240 $s->ok('pop3 starttls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
241
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
242 # starttls smtp
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
243
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
244 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8153));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
245 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
246
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
247 $s->send('AUTH LOGIN');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
248 $s->check(qr/^334 VXNlcm5hbWU6/, 'smtp auth before startls on');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
249
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
250 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8153));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
251 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
252
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
253 $s->send('STARTTLS');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
254 $s->ok('smtp starttls on');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
255
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
256 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8154));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
257 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
258
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
259 $s->send('AUTH LOGIN');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
260 $s->check(qr/^5.. /, 'smtp auth before startls only');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
261
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
262 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8154));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
263 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
264
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
265 $s->send('STARTTLS');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
266 $s->ok('smtp starttls only');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
267
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
268 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
269
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
270 sub get_ssl_socket {
1831
f6d1f82f314b Tests: separate SSL session reuse tests in mail.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1826
diff changeset
271 my ($port, $alpn) = @_;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
272
1621
fd440d324700 Tests: simplified get_ssl_socket() functions that use Net::SSLeay.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1488
diff changeset
273 my $s = IO::Socket::INET->new('127.0.0.1:' . port($port));
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
274 my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
1742
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
275 Net::SSLeay::set_alpn_protos($ssl, $alpn) if defined $alpn;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
276 Net::SSLeay::set_fd($ssl, fileno($s));
1742
7bfa47410cc0 Tests: basic ALPN tests in the mail module.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1621
diff changeset
277 Net::SSLeay::connect($ssl) == 1 or return;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
278 return ($s, $ssl);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
279 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
280
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
281 ###############################################################################