Skip to content

Commit 193f629

Browse files
author
mengxiangwei
committed
feat: add server random and master key fetch api
1 parent cc810be commit 193f629

3 files changed

Lines changed: 32 additions & 26 deletions

File tree

dist.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ lib_dir=lib
77
doc_dir=lib
88
repo_link=https://github.com/openresty/lua-resty-core
99
main_module=lib/resty/core/base.lua
10-
requires = luajit >= 2.1.0, nginx >= 1.29.2, ngx_http_lua = 0.10.29, openresty/lua-resty-lrucache >= 0.08
10+
requires = luajit >= 2.1.0, nginx >= 1.29.2, ngx_http_lua = 0.10.30, openresty/lua-resty-lrucache >= 0.15

lib/resty/core/base.lua

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,24 @@ local FREE_LIST_REF = 0
1919
if subsystem == 'http' then
2020
if not ngx.config
2121
or not ngx.config.ngx_lua_version
22-
or ngx.config.ngx_lua_version ~= 10029
22+
or ngx.config.ngx_lua_version ~= 10030
2323
then
24-
error("ngx_http_lua_module 0.10.29 required")
24+
local ver = ngx.config and tostring(ngx.config.ngx_lua_version) or 'nil'
25+
error("ngx_http_lua_module 0.10.30 required but got " .. ver)
2526
end
2627

2728
elseif subsystem == 'stream' then
2829
if not ngx.config
2930
or not ngx.config.ngx_lua_version
30-
or ngx.config.ngx_lua_version ~= 17
31+
or ngx.config.ngx_lua_version ~= 18
3132
then
32-
error("ngx_stream_lua_module 0.0.17 required")
33+
local ver = ngx.config and tostring(ngx.config.ngx_lua_version) or 'nil'
34+
error("ngx_stream_lua_module 0.0.18 required but got " .. ver)
3335
end
3436

3537
else
36-
error("ngx_http_lua_module 0.10.29 or "
37-
.. "ngx_stream_lua_module 0.0.17 required")
38+
error("ngx_http_lua_module 0.10.30 or "
39+
.. "ngx_stream_lua_module 0.0.18 required")
3840
end
3941

4042

@@ -141,7 +143,7 @@ local c_buf_type = ffi.typeof("char[?]")
141143
local _M = new_tab(0, 18)
142144

143145

144-
_M.version = "0.1.32"
146+
_M.version = "0.1.33"
145147
_M.new_tab = new_tab
146148
_M.clear_tab = clear_tab
147149

t/ssl.t

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3737,7 +3737,7 @@ received: Server: nginx
37373737
received: Content-Type: text/plain
37383738
received: Content-Length: 4
37393739
received: Connection: close
3740-
received:
3740+
received:
37413741
received: foo
37423742
close: 1 nil
37433743
@@ -3761,21 +3761,30 @@ server-random length: 32
37613761
ssl_protocols TLSv1.2;
37623762
ssl_certificate_by_lua_block {
37633763
local ssl = require "ngx.ssl"
3764-
local master_key_len = ssl.get_session_master_key(0)
3765-
print("master-key length: ", master_key_len)
3766-
3767-
local master_key = ssl.get_session_master_key()
3768-
if master_key and #master_key > 0 then
3769-
print("got master key of length: ", #master_key)
3770-
end
3764+
ssl.clear_certs()
3765+
ssl.set_der_cert(ssl.cert_pem_to_der(
3766+
assert(io.open("t/cert/test.crt")):read("*a")))
3767+
ssl.set_der_priv_key(ssl.priv_key_pem_to_der(
3768+
assert(io.open("t/cert/test.key")):read("*a")))
37713769
}
3770+
37723771
ssl_certificate ../../cert/test.crt;
37733772
ssl_certificate_key ../../cert/test.key;
37743773
37753774
server_tokens off;
37763775
location /foo {
37773776
default_type 'text/plain';
3778-
content_by_lua_block {ngx.status = 201 ngx.say("foo") ngx.exit(201)}
3777+
content_by_lua_block {
3778+
local ssl = require "ngx.ssl"
3779+
local mk_len = ssl.get_session_master_key(0)
3780+
ngx.say("master-key length: ", mk_len)
3781+
3782+
local mk = ssl.get_session_master_key()
3783+
if mk and #mk > 0 then
3784+
ngx.say("got master key of length: ",
3785+
#mk)
3786+
end
3787+
}
37793788
more_clear_headers Date;
37803789
}
37813790
}
@@ -3818,7 +3827,6 @@ server-random length: 32
38183827
while true do
38193828
local line, err = sock:receive()
38203829
if not line then
3821-
-- ngx.say("failed to receive response status line: ", err)
38223830
break
38233831
end
38243832
@@ -3828,7 +3836,6 @@ server-random length: 32
38283836
local ok, err = sock:close()
38293837
ngx.say("close: ", ok, " ", err)
38303838
end -- do
3831-
-- collectgarbage()
38323839
}
38333840
}
38343841
@@ -3838,19 +3845,16 @@ GET /t
38383845
connected: 1
38393846
ssl handshake: cdata
38403847
sent http request: 56 bytes.
3841-
received: HTTP/1.1 201 Created
3848+
received: HTTP/1.1 200 OK
38423849
received: Server: nginx
38433850
received: Content-Type: text/plain
3844-
received: Content-Length: 4
3851+
received: Transfer-Encoding: chunked
38453852
received: Connection: close
38463853
received:
3847-
received: foo
3854+
received: master-key length: 48
3855+
received: got master key of length: 48
38483856
close: 1 nil
38493857
3850-
--- error_log
3851-
master-key length: 48
3852-
got master key of length: 48
3853-
38543858
--- no_error_log
38553859
[error]
38563860
[alert]

0 commit comments

Comments
 (0)