diff options
Diffstat (limited to 'src/openssl.ssl.lua')
-rw-r--r-- | src/openssl.ssl.lua | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/openssl.ssl.lua b/src/openssl.ssl.lua index 3c348f6..bf90f29 100644 --- a/src/openssl.ssl.lua +++ b/src/openssl.ssl.lua | |||
@@ -1,3 +1,19 @@ | |||
1 | local ctx = require"_openssl.ssl" | 1 | local ssl = require"_openssl.ssl" |
2 | 2 | ||
3 | return ctx | 3 | local pack = table.pack or function(...) return { n = select("#", ...); ... } end |
4 | |||
5 | -- Allow passing a vararg of curves, or an array | ||
6 | local setCurvesList = ssl.interpose("setCurvesList", nil) | ||
7 | if setCurvesList then | ||
8 | ssl.interpose("setCurvesList", function (self, curves, ...) | ||
9 | if (...) then | ||
10 | local curves_t = pack(curves, ...) | ||
11 | curves = table.concat(curves_t, ":", 1, curves_t.n) | ||
12 | elseif type(curves) == "table" then | ||
13 | curves = table.concat(curves, ":") | ||
14 | end | ||
15 | return setCurvesList(self, curves) | ||
16 | end) | ||
17 | end | ||
18 | |||
19 | return ssl | ||