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