|
1 -- |
|
2 -- Test the conn:want() function. |
|
3 -- |
|
4 -- Public domain |
|
5 -- |
|
6 require("socket") |
|
7 require("ssl") |
|
8 |
|
9 local params = { |
|
10 mode = "server", |
|
11 protocol = "sslv3", |
|
12 key = "../certs/serverAkey.pem", |
|
13 certificate = "../certs/serverA.pem", |
|
14 cafile = "../certs/rootA.pem", |
|
15 verify = {"peer", "fail_if_no_peer_cert"}, |
|
16 options = {"all", "no_sslv2"}, |
|
17 } |
|
18 |
|
19 -- [[ SSL context |
|
20 local ctx = assert(ssl.newcontext(params)) |
|
21 --]] |
|
22 |
|
23 local server = socket.tcp() |
|
24 server:setoption('reuseaddr', true) |
|
25 assert( server:bind("127.0.0.1", 8888) ) |
|
26 server:listen() |
|
27 |
|
28 local peer = server:accept() |
|
29 |
|
30 -- [[ SSL wrapper |
|
31 peer = assert( ssl.wrap(peer, ctx) ) |
|
32 socket.sleep(2) -- force the timeout in the client dohandshake() |
|
33 assert( peer:dohandshake() ) |
|
34 --]] |
|
35 |
|
36 for i = 1, 10 do |
|
37 local v = tostring(i) |
|
38 io.write(v) |
|
39 io.flush() |
|
40 peer:send(v) |
|
41 socket.sleep(1) -- force the timeout in the client receive() |
|
42 end |
|
43 io.write("\n") |
|
44 peer:send("\n") |
|
45 peer:close() |