aboutsummaryrefslogtreecommitdiffstats
path: root/regress
diff options
context:
space:
mode:
authorLibravatarLibravatar Wangchong Zhou <fffonion@gmail.com> 2020-02-03 15:35:13 +0800
committerLibravatarLibravatar Wangchong Zhou <fffonion@gmail.com> 2020-02-05 13:53:12 +0800
commite48a9babbfcf3a481d5a9358c8282c497ab08cf7 (patch)
tree4cd738f7fb41030944f68158526c6a1faff64b8e /regress
parent5ad909dc20779534a7221010d0220865347aedfc (diff)
downloadluaossl-e48a9babbfcf3a481d5a9358c8282c497ab08cf7.tar.gz
luaossl-e48a9babbfcf3a481d5a9358c8282c497ab08cf7.tar.bz2
luaossl-e48a9babbfcf3a481d5a9358c8282c497ab08cf7.zip
src/openssl.c: reset bio pointer before reuse in X509_ANY format
Diffstat (limited to 'regress')
-rwxr-xr-xregress/177-reset-bio.lua35
-rw-r--r--regress/regress.lua2
2 files changed, 37 insertions, 0 deletions
diff --git a/regress/177-reset-bio.lua b/regress/177-reset-bio.lua
new file mode 100755
index 0000000..565a511
--- /dev/null
+++ b/regress/177-reset-bio.lua
@@ -0,0 +1,35 @@
+#!/usr/bin/env lua
+
+local regress = require "regress"
+
+local ok, err
+
+local key = regress.pkey.new()
+
+-- generate a minimal certificate and export to DER
+local x509 = regress.x509.new()
+x509:setPublicKey(key)
+x509:sign(key)
+local x509_der = x509:tostring("DER")
+
+ok, err = pcall(regress.x509.new, x509_der)
+regress.check(ok, "failed to load DER certificate: %s", err)
+
+-- generate a minimal crl and export to DER
+local crl = regress.crl.new()
+crl:sign(key)
+local crl_der = crl:tostring("DER")
+
+ok, err = pcall(regress.crl.new, crl_der)
+regress.check(ok, "failed to load DER CRL: %s", err)
+
+-- generate a minimal csr and export to DER
+local csr = regress.csr.new()
+csr:setPublicKey(key)
+csr:sign(key)
+local csr_der = csr:tostring("DER")
+
+ok, err = pcall(regress.csr.new, csr_der)
+regress.check(ok, "failed to load DER CSR: %s", err)
+
+regress.say "OK"
diff --git a/regress/regress.lua b/regress/regress.lua
index 5cdd22d..044e342 100644
--- a/regress/regress.lua
+++ b/regress/regress.lua
@@ -11,6 +11,8 @@ local regress = {
chain = require"openssl.x509.chain",
store = require"openssl.x509.store",
verify_param = require"openssl.x509.verify_param",
+ crl = require"openssl.x509.crl",
+ csr = require"openssl.x509.csr",
pack = table.pack or function (...)
local t = { ... }
t.n = select("#", ...)