Skip to content

Commit 35071d9

Browse files
1 parent 9271742 commit 35071d9

File tree

7 files changed

+309
-40
lines changed

7 files changed

+309
-40
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ compiler:
1414

1515
addons:
1616
apt:
17-
packages: [ axel, cpanminus, libgd-dev, libtest-base-perl, libtext-diff-perl, liburi-perl, libwww-perl, libtest-longstring-perl, liblist-moreutils-perl, dnsutils ]
17+
packages: [ axel, cpanminus, libgd-dev, libtest-base-perl, libtext-diff-perl, liburi-perl, libwww-perl, libtest-longstring-perl, liblist-moreutils-perl, dnsutils, openssl ]
1818

1919
cache:
2020
apt: true

t/129-ssl-socket.t

Lines changed: 248 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2764,3 +2764,251 @@ SSL reused session
27642764
[alert]
27652765
[emerg]
27662766
--- timeout: 10
2767+
2768+
2769+
2770+
=== TEST 35: ssl session/ticket reuse CVE
2771+
https://www.cve.org/CVERecord?id=CVE-2025-23419
2772+
--- stream_config
2773+
server {
2774+
listen $TEST_NGINX_SERVER_SSL_PORT ssl reuseport default_server;
2775+
ssl_certificate ../../cert/test.crt;
2776+
ssl_certificate_key ../../cert/test.key;
2777+
ssl_session_cache builtin:1000;
2778+
ssl_session_tickets off;
2779+
ssl_client_certificate ../../cert/test.crt;
2780+
ssl_verify_client on;
2781+
server_name test.com;
2782+
2783+
ssl_client_hello_by_lua_block {
2784+
local ssl_clt = require "ngx.ssl.clienthello"
2785+
local host, err = ssl_clt.get_client_hello_server_name()
2786+
ngx.log(ngx.INFO, "ssl client hello:", host)
2787+
}
2788+
2789+
content_by_lua_block {
2790+
local sock = assert(ngx.req.socket(true))
2791+
local data = sock:receive()
2792+
if data == "ping" then
2793+
sock:send("test.com\n")
2794+
else
2795+
ngx.log(ngx.ERR, "unexpect data: ", data)
2796+
end
2797+
}
2798+
}
2799+
2800+
server {
2801+
listen $TEST_NGINX_SERVER_SSL_PORT ssl;
2802+
ssl_certificate ../../cert/test2.crt;
2803+
ssl_certificate_key ../../cert/test2.key;
2804+
ssl_session_cache builtin:1000;
2805+
ssl_session_tickets off;
2806+
ssl_client_certificate ../../cert/test.crt;
2807+
ssl_verify_client on;
2808+
server_name test2.com;
2809+
2810+
ssl_client_hello_by_lua_block {
2811+
local ssl_clt = require "ngx.ssl.clienthello"
2812+
local host, err = ssl_clt.get_client_hello_server_name()
2813+
ngx.log(ngx.ERR, "ssl client hello:", host)
2814+
}
2815+
2816+
content_by_lua_block {
2817+
local sock = assert(ngx.req.socket(true))
2818+
local data = sock:receive()
2819+
if data == "ping" then
2820+
sock:send("test2.com\n")
2821+
else
2822+
ngx.log(ngx.ERR, "unexpect data: ", data)
2823+
end
2824+
}
2825+
}
2826+
--- stream_server_config
2827+
resolver $TEST_NGINX_RESOLVER ipv6=off;
2828+
lua_ssl_protocols TLSv1.2;
2829+
lua_ssl_certificate ../../cert/test.crt;
2830+
lua_ssl_certificate_key ../../cert/test.key;
2831+
lua_ssl_trusted_certificate ../../cert/test.crt;
2832+
2833+
content_by_lua_block {
2834+
do
2835+
local session
2836+
for i = 1, 2 do
2837+
local sock = ngx.socket.tcp()
2838+
sock:settimeout(2000)
2839+
local ok, err = sock:connect("127.0.0.1", $TEST_NGINX_SERVER_SSL_PORT)
2840+
if not ok then
2841+
ngx.say("failed to connect: ", err)
2842+
return
2843+
end
2844+
2845+
ngx.say("connected: ", ok)
2846+
2847+
local server_name = "test.com"
2848+
if i == 2 then
2849+
server_name = "test2.com"
2850+
end
2851+
2852+
session, err = sock:sslhandshake(session, server_name)
2853+
if not session then
2854+
ngx.say("failed to do SSL handshake: ", err)
2855+
return
2856+
end
2857+
2858+
ngx.say("ssl handshake: ", type(session))
2859+
2860+
local bytes, err = sock:send("ping\n")
2861+
if not bytes then
2862+
ngx.say("failed to send stream request: ", err)
2863+
return
2864+
end
2865+
2866+
ngx.say("sent stream request: ", bytes, " bytes.")
2867+
2868+
local line, err = sock:receive()
2869+
if not line then
2870+
ngx.say("failed to recieve response status line: ", err)
2871+
return
2872+
end
2873+
2874+
ngx.say("received: ", line)
2875+
2876+
local ok, err = sock:close()
2877+
ngx.say("close: ", ok, " ", err)
2878+
end
2879+
2880+
end -- do
2881+
collectgarbage()
2882+
}
2883+
2884+
--- stream_response
2885+
connected: 1
2886+
ssl handshake: userdata
2887+
sent stream request: 5 bytes.
2888+
received: test.com
2889+
close: 1 nil
2890+
connected: 1
2891+
ssl handshake: userdata
2892+
sent stream request: 5 bytes.
2893+
received: test.com
2894+
close: 1 nil
2895+
--- error_log
2896+
SSL reused session
2897+
lua ssl free session
2898+
--- log_level: debug
2899+
--- no_error_log
2900+
[error]
2901+
[alert]
2902+
[crit]
2903+
--- timeout: 5
2904+
--- skip_nginx: 7: < 1.25.4
2905+
2906+
2907+
2908+
=== TEST 36: ssl session/ticket reuse CVE
2909+
https://www.cve.org/CVERecord?id=CVE-2025-23419
2910+
--- main_config
2911+
env PATH;
2912+
--- stream_config
2913+
server {
2914+
listen $TEST_NGINX_SERVER_SSL_PORT ssl reuseport default_server;
2915+
ssl_certificate ../../cert/test.crt;
2916+
ssl_certificate_key ../../cert/test.key;
2917+
ssl_session_cache builtin:1000;
2918+
ssl_session_tickets on;
2919+
ssl_client_certificate ../../cert/test.crt;
2920+
ssl_verify_client on;
2921+
server_name test.com;
2922+
2923+
ssl_client_hello_by_lua_block {
2924+
local ssl_clt = require "ngx.ssl.clienthello"
2925+
local host, err = ssl_clt.get_client_hello_server_name()
2926+
ngx.log(ngx.INFO, "ssl client hello:", host)
2927+
}
2928+
2929+
content_by_lua_block {
2930+
local sock = assert(ngx.req.socket(true))
2931+
local data = sock:receive()
2932+
if data == "ping" then
2933+
sock:send("test.com\n")
2934+
else
2935+
ngx.log(ngx.ERR, "unexpect data: ", data)
2936+
end
2937+
}
2938+
}
2939+
2940+
server {
2941+
listen $TEST_NGINX_SERVER_SSL_PORT ssl;
2942+
ssl_certificate ../../cert/test2.crt;
2943+
ssl_certificate_key ../../cert/test2.key;
2944+
ssl_session_cache builtin:1000;
2945+
ssl_session_tickets on;
2946+
ssl_client_certificate ../../cert/test.crt;
2947+
ssl_verify_client on;
2948+
server_name test2.com;
2949+
2950+
ssl_client_hello_by_lua_block {
2951+
local ssl_clt = require "ngx.ssl.clienthello"
2952+
local host, err = ssl_clt.get_client_hello_server_name()
2953+
ngx.log(ngx.ERR, "ssl client hello:", host)
2954+
}
2955+
2956+
content_by_lua_block {
2957+
local sock = assert(ngx.req.socket(true))
2958+
local data = sock:receive()
2959+
if data == "ping" then
2960+
sock:send("test2.com\n")
2961+
else
2962+
ngx.log(ngx.ERR, "unexpect data: ", data)
2963+
end
2964+
}
2965+
}
2966+
--- stream_server_config
2967+
resolver $TEST_NGINX_RESOLVER ipv6=off;
2968+
lua_ssl_protocols TLSv1.3;
2969+
lua_ssl_certificate ../../cert/test.crt;
2970+
lua_ssl_certificate_key ../../cert/test.key;
2971+
lua_ssl_trusted_certificate ../../cert/test.crt;
2972+
2973+
content_by_lua_block {
2974+
do
2975+
-- openssl s_client -cert client_cert.pem -key client_key.pem -servername openresty.org -connect openresty.org:443 -sess_out sess.pem
2976+
-- ("127.0.0.1", $TEST_NGINX_SERVER_SSL_PORT)
2977+
-- server_name = "test.com"
2978+
-- server_name = "test2.com"
2979+
local prefix = ngx.config.prefix()
2980+
2981+
local cmd = [[bash -c "{ sleep 0.3; echo ping; } | /usr/bin/openssl s_client -cert %s/../cert/test.crt -key %s/../cert/test.key -servername test.com -connect 127.0.0.1:$TEST_NGINX_SERVER_SSL_PORT -sess_out sess.pem"]]
2982+
cmd = string.format(cmd, prefix, prefix)
2983+
local handle, err = io.popen(cmd)
2984+
if not handle then
2985+
ngx.say(err)
2986+
end
2987+
2988+
ngx.sleep(0.2)
2989+
local cmd = [[/usr/bin/openssl s_client -cert %s/../cert/test.crt -key %s/../cert/test.key -servername test2.com -connect 127.0.0.1:$TEST_NGINX_SERVER_SSL_PORT -sess_in sess.pem]]
2990+
cmd = string.format(cmd, prefix, prefix)
2991+
local handle, err = io.popen(cmd)
2992+
if not handle then
2993+
ngx.say(err)
2994+
end
2995+
ngx.sleep(0.2)
2996+
2997+
ngx.say("hi")
2998+
end -- do
2999+
collectgarbage()
3000+
}
3001+
3002+
--- stream_response
3003+
hi
3004+
--- error_log
3005+
tlsv1 alert access denied
3006+
handshake rejected while SSL handshaking
3007+
3008+
--- log_level: debug
3009+
--- no_error_log
3010+
[error]
3011+
[alert]
3012+
[crit]
3013+
--- timeout: 5
3014+
--- skip_nginx: 7: < 1.25.4

t/cert/test.crl

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
-----BEGIN X509 CRL-----
2-
MIIBjzCB+QIBATANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UEBhMCVVMxEzARBgNV
3-
BAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xEjAQBgNVBAoM
4-
CU9wZW5SZXN0eTESMBAGA1UECwwJT3BlblJlc3R5MREwDwYDVQQDDAh0ZXN0LmNv
5-
bTEgMB4GCSqGSIb3DQEJARYRYWdlbnR6aEBnbWFpbC5jb20XDTE0MDcyMTIxNDEy
6-
MloXDTE0MDgyMDIxNDEyMlowHDAaAgkApQ5tVpK3luIXDTE0MDcyMTIxNDEwMlqg
7-
DzANMAsGA1UdFAQEAgIQATANBgkqhkiG9w0BAQUFAAOBgQBDZ6UY0Qg7qDoLrXXl
8-
gJElFilZ7LiKPqjE3+Rfx7XkgdbPxjGCr77TfMm+smdvawk7WHv1AOvRH7kGrgGT
9-
kGJZwqJ4vKa/NpEWJIMAZ1Gq9BIH/Ig6ffmPk+S9ozcVHKJDW7x4nMuotyj1hILN
10-
EePv78DZCYMZgf8WwMElNgz6Hw==
2+
MIICGzCCAQMCAQEwDQYJKoZIhvcNAQELBQAwgZcxCzAJBgNVBAYTAlVTMRMwEQYD
3+
VQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMRIwEAYDVQQK
4+
DAlPcGVuUmVzdHkxEjAQBgNVBAsMCU9wZW5SZXN0eTERMA8GA1UEAwwIdGVzdC5j
5+
b20xIDAeBgkqhkiG9w0BCQEWEWFnZW50emhAZ21haWwuY29tFw0yMzEwMDYwNjM4
6+
MzlaFw0zMTEyMjMwNjM4MzlaMCcwJQIUImcuJ8MJpeNhvYBEoEGGz5oCBg4XDTIz
7+
MTAwNjA2MjkyNVqgDjAMMAoGA1UdFAQDAgEEMA0GCSqGSIb3DQEBCwUAA4IBAQBj
8+
FciorrAuXxn1ULW0XJ7PElwTxZtBrb838EHYvkZ5OdT5tZcucYR6XTZpfT1Up/Px
9+
rC9EZ1/aZ0wSQfYEQuctafyVCJoPN71IV9IWpPTWm8JyEvnE1W3SgHJujItanyZ3
10+
aMDihljxV9eKyEQnZPQZkaOjAKhj8d2/XZLQ3uIrjWy+/OxcaBQK4a8bDoSM3GZT
11+
J6YCD2UBVYKSiROMZZAj3m1thLAGm1RM7A6vjEcH7rPyoxhok5SdxXH5ERY94/ro
12+
McjNCv6zV8/Ue5/+ajz5pu/48T901mlIicHry8uImJvlnqAXlH8ReJ+hiSfGhbZ5
13+
WYNf0wN81NXwTxPIb+v2
1114
-----END X509 CRL-----

t/cert/test.crt

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
-----BEGIN CERTIFICATE-----
2-
MIICqTCCAhICCQClDm1WkreW4jANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UEBhMC
3-
VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28x
4-
EjAQBgNVBAoMCU9wZW5SZXN0eTESMBAGA1UECwwJT3BlblJlc3R5MREwDwYDVQQD
5-
DAh0ZXN0LmNvbTEgMB4GCSqGSIb3DQEJARYRYWdlbnR6aEBnbWFpbC5jb20wIBcN
6-
MTQwNzIxMDMyMzQ3WhgPMjE1MTA2MTMwMzIzNDdaMIGXMQswCQYDVQQGEwJVUzET
7-
MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzESMBAG
8-
A1UECgwJT3BlblJlc3R5MRIwEAYDVQQLDAlPcGVuUmVzdHkxETAPBgNVBAMMCHRl
9-
c3QuY29tMSAwHgYJKoZIhvcNAQkBFhFhZ2VudHpoQGdtYWlsLmNvbTCBnzANBgkq
10-
hkiG9w0BAQEFAAOBjQAwgYkCgYEA6P18zUvtmaKQK2xePy8ZbFwSyTLw+jW6t9eZ
11-
aiTec8X3ibN9WemrxHzkTRikxP3cAQoITRuZiQvF4Q7DO6wMkz/b0zwfgX5uedGq
12-
047AJP6n/mwlDOjGSNomBLoXQzo7tVe60ikEm3ZyDUqnJPJMt3hImO5XSop4MPMu
13-
Za9WhFcCAwEAATANBgkqhkiG9w0BAQUFAAOBgQA4OBb9bOyWB1//93nSXX1mdENZ
14-
IQeyTK0Dd6My76lnZxnZ4hTWrvvd0b17KLDU6JnS2N5ee3ATVkojPidRLWLIhnh5
15-
0eXrcKalbO2Ce6nShoFvQCQKXN2Txmq2vO/Mud2bHAWwJALg+qi1Iih/gVYB9sct
16-
FLg8zFOzRlYiU+6Mmw==
2+
MIIDtzCCAp8CFCJnLifDCaXjYb2ARKBBhs+aAgYOMA0GCSqGSIb3DQEBCwUAMIGX
3+
MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2Fu
4+
IEZyYW5jaXNjbzESMBAGA1UECgwJT3BlblJlc3R5MRIwEAYDVQQLDAlPcGVuUmVz
5+
dHkxETAPBgNVBAMMCHRlc3QuY29tMSAwHgYJKoZIhvcNAQkBFhFhZ2VudHpoQGdt
6+
YWlsLmNvbTAeFw0yMzA5MDUwNDE5MjhaFw0zMzA5MDIwNDE5MjhaMIGXMQswCQYD
7+
VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5j
8+
aXNjbzESMBAGA1UECgwJT3BlblJlc3R5MRIwEAYDVQQLDAlPcGVuUmVzdHkxETAP
9+
BgNVBAMMCHRlc3QuY29tMSAwHgYJKoZIhvcNAQkBFhFhZ2VudHpoQGdtYWlsLmNv
10+
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJzRMFoLDuYOwJ8szrS4
11+
nOibtiimiXZJGx3I/RcFZxaH4nL/WcEb1fwftMQxx73IBJnqnDYkDOzUmzItPMn0
12+
t2WrNYesC5GqLNRm87m6PVt010tZvq/WxTn6+9qruiGm1PhFxzLQfrClpEeOshlG
13+
UeoQjPOMrhCmofDM2NQo3D4wIQT0kCJxIPq6wCZt22/Yqz1EmR0UnF/R3ZtiB8O+
14+
SQGcsUKy4se3919xq+ZkzBdMxLneO5sofUiDC9MgRfiU960tbHPGX9I9P+kLK89S
15+
yajPEYaRUkSBFjV5kdDK3+L6XckdMbY2pvwhAnVXSmd13Bf2V9XisUrX2Mr4YlnS
16+
sy0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAVPY/z6Mvjg5EGHzU8bXyuXqxrx8Q
17+
GBwf3PY25aDF6ofRrTCzMdIhthv8eRtGwHinkpgaK34D7hI/dPB7aswQTzED5c+l
18+
S2au5OzzCj454oXdhSRA5Rt0mu/+pxmQ+iNk+7XJxgTN0mk1dYQqodyZ+vC4NIYb
19+
javMlU4zDm4JPtwDs0Mz/d7gf14MU60jppF2vl6AYFHKYBLMHBmqxjy6H9YHjRjQ
20+
oe4TNpn0zxJAPu5LqMkfB2+eLOe6ced7DcLLbbeVJ4Xtqj6Y5KsAyVojWQxrk4vW
21+
3WO/953pHofO5F2ricS/rsf+5ivTmfiP8mQYTtp7k3T11sIZ4DOmtNwO4A==
1722
-----END CERTIFICATE-----

t/cert/test.key

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,28 @@
1-
-----BEGIN RSA PRIVATE KEY-----
2-
MIICXgIBAAKBgQDo/XzNS+2ZopArbF4/LxlsXBLJMvD6Nbq315lqJN5zxfeJs31Z
3-
6avEfORNGKTE/dwBCghNG5mJC8XhDsM7rAyTP9vTPB+Bfm550arTjsAk/qf+bCUM
4-
6MZI2iYEuhdDOju1V7rSKQSbdnINSqck8ky3eEiY7ldKingw8y5lr1aEVwIDAQAB
5-
AoGBANgB66sKMga2SKN5nQdHS3LDCkevCutu1OWM5ZcbB4Kej5kC57xsf+tzPtab
6-
emeIVGhCPOAALqB4YcT+QtMX967oM1MjcFbtH7si5oq6UYyp3i0G9Si6jIoVHz3+
7-
8yOUaqwKbK+bRX8VS0YsHZmBsPK5ryN50iUwsU08nemoA94BAkEA9GS9Q5OPeFkM
8-
tFxsIQ1f2FSsZAuN/1cpZgJqY+YaAN7MSPGTWyfd7nWG/Zgk3GO9/2ihh4gww+7B
9-
To09GkmW4QJBAPQOHC2V+t2TA98+6Lj6+TYwcGEkhOENfVpH25mQ+kXgF/1Bd6rA
10-
nosT1bdAY+SnmWXbSw6Kv5C20Em+bEX8WjcCQCSRRjhsRdVODbaW9Z7kb2jhEoJN
11-
sEt6cTlQNzcHYPCsZYisjM3g4zYg47fiIfHQAsfKkhDDcfh/KvFj9LaQOEECQQCH
12-
eBWYEDpSJ7rsfqT7mQQgWj7nDThdG/nK1TxGP71McBmg0Gg2dfkLRhVJRQqt74Is
13-
kc9V4Rp4n6F6baL4Lh19AkEA6pZZer0kg3Kv9hjhaITIKUYdfIp9vYnDRWbQlBmR
14-
atV8V9u9q2ETZvqfHpN+9Lu6NYR4yXIEIRf1bnIZ/mr9eQ==
15-
-----END RSA PRIVATE KEY-----
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCc0TBaCw7mDsCf
3+
LM60uJzom7Yopol2SRsdyP0XBWcWh+Jy/1nBG9X8H7TEMce9yASZ6pw2JAzs1Jsy
4+
LTzJ9LdlqzWHrAuRqizUZvO5uj1bdNdLWb6v1sU5+vvaq7ohptT4Rccy0H6wpaRH
5+
jrIZRlHqEIzzjK4QpqHwzNjUKNw+MCEE9JAicSD6usAmbdtv2Ks9RJkdFJxf0d2b
6+
YgfDvkkBnLFCsuLHt/dfcavmZMwXTMS53jubKH1IgwvTIEX4lPetLWxzxl/SPT/p
7+
CyvPUsmozxGGkVJEgRY1eZHQyt/i+l3JHTG2Nqb8IQJ1V0pnddwX9lfV4rFK19jK
8+
+GJZ0rMtAgMBAAECggEABjaOkcllis1o/yrVZMPPabLpAHV6tZ5MuKfNiUOMSPr+
9+
HfF1OFQL7MxCdfyFQ1prqOp/9nAut+puMgp99wAfDQ7qanNGq7vgQKkfPSD+dy4V
10+
rUquELBJH6nh9SZqfpSqKaJgHlNe6vehHuRYikJRkrJwVzegGjuekm3B+y6Zl/gc
11+
e0p5Ha3MTLTFjocwYzgTjJlxD40wlbjpuVnmzKjo8AKNv1F1azMaqBmt1VfPiDn0
12+
Xyq4SPEsWKnEAl2kZdaIBR6zIx7Z3zNUwkfb32QwNoSyo8wS7lCgf2GVS7r1Eul6
13+
iiCE/Gd7w10alW4Pu96shVqkvKn7ROF2nBP9xOSPwQKBgQDCuD6mlNpA07iOX364
14+
aAzIAYookceVA0I9L/fbOQW7RgpvYpM8lxr31TQ3fBDkXSgjzMMYjnk4kz+xN+BB
15+
WFdjb4raUBtrvip8Q8QZ53DVQK/LodHh0XhipbOxZrDm+6o5nQD0fTqHCBIHSVFF
16+
tXX2Y90t1cxWMMleRhfNEuzkQQKBgQDOK0rs7mf04Xhc4ZIRIxOtNFnthGp4Kqp7
17+
SD8VQpbPOLV8iqZEtXIy/hvoTpfQW30c1931KgDQ3Pv5MZYpI7PLqrqkj4tGCQ91
18+
DJ03GWkSXcMwlPmJRbvgWIeCLgShU5PLxmQu3mH2DP+uGFUBq5/6miDDVjF9z6vb
19+
BwYlG66j7QKBgA0n/bOrowN2SqXz9c/n19U7pWYQU3fR/Iu9zfVV6Pk6RkI4WtJh
20+
M0VDdn+5Njr3wFqK3zOtjKsx57/FkrVXjq/9PVh6yR+CfcRfn8RQSuNdt4L+r/ud
21+
95BSuc1mrtUsc9for8PVIjs1ZGJxpbgcBphbLvqF04SPT0u7WKhWewMBAoGAcJO/
22+
RAUiitsbaExcADORKQDvIf0uThOuJ8dZevhzdQ/YOftTsy0JAMM05fMUfteWR8uw
23+
DZE0BNjGVlo3TpuKL+o4JGele0azRAzxRAcCEt9UGBEg+U40utpclD8glB8ZEypv
24+
xg/0mfCbJKtwr4rRvnuu7DsCp1pg0ybQui6VfDkCgYBXHwcrZwmv7kgr4pUG6oZj
25+
fzjFenQFqibvb2h7QESyCW13O885GxU13DKv4zg1yi6EqPIopz16qCiUNCvWr5Us
26+
6sI74wEVI3MzmzG0Htgl29q5yWpeY+7libC/fbZYG8GFgdINq58ko9be1u/8644S
27+
t2hoKM9/vrVFh9p9qGzckg==
28+
-----END PRIVATE KEY-----

t/cert/test_der.crt

270 Bytes
Binary file not shown.

t/cert/test_der.key

580 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)