summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorwilliam <william@25tandclement.com>2014-09-22 15:37:29 -0700
committerwilliam <william@25tandclement.com>2014-09-22 15:37:29 -0700
commit920118b13d4ec90c5b36a682bc002868b8fff877 (patch)
treec7e5e6691cd3d87353d6334082c849bc1c4a903d /examples
parentd4914b31664e771ae93b88f6f83fb24c616b20fd (diff)
downloadluaossl-920118b13d4ec90c5b36a682bc002868b8fff877.tar.gz
luaossl-920118b13d4ec90c5b36a682bc002868b8fff877.tar.bz2
luaossl-920118b13d4ec90c5b36a682bc002868b8fff877.zip
make default key algorithm in self.x509 and vrfy.sig examples depend on whether EC is supported locally
Diffstat (limited to 'examples')
-rwxr-xr-xexamples/self.x50919
-rwxr-xr-xexamples/vrfy.sig19
2 files changed, 33 insertions, 5 deletions
diff --git a/examples/self.x509 b/examples/self.x509
index b2d14f9..37b12c7 100755
--- a/examples/self.x509
+++ b/examples/self.x509
@@ -7,15 +7,28 @@
7-- CSR generation. 7-- CSR generation.
8-- 8--
9 9
10local keytype = ...
11
12local openssl = require"openssl"
10local pkey = require"openssl.pkey" 13local pkey = require"openssl.pkey"
11local x509 = require"openssl.x509" 14local x509 = require"openssl.x509"
12local name = require"openssl.x509.name" 15local name = require"openssl.x509.name"
13local altname = require"openssl.x509.altname" 16local altname = require"openssl.x509.altname"
14 17
15-- generate our public/private key pair 18-- generate our public/private key pair
16--local key = pkey.new{ type = "RSA", bits = 1024 } 19local function genkey(type)
17--local key = pkey.new{ type = "DSA", bits = 1024 } 20 type = string.upper(type or (not openssl.NO_EC and "EC") or "RSA")
18local key = pkey.new{ type = "EC", curve = "prime192v1" } 21
22 if type == "RSA" then
23 return pkey.new{ type = "RSA", bits = 1024 }
24 elseif type == "DSA" then
25 return pkey.new{ type = "DSA", bits = 1024 }
26 else
27 return pkey.new{ type = "EC", curve = "prime192v1" }
28 end
29end
30
31local key = genkey(keytype)
19 32
20-- our Subject and Issuer DN (self-signed, so same) 33-- our Subject and Issuer DN (self-signed, so same)
21local dn = name.new() 34local dn = name.new()
diff --git a/examples/vrfy.sig b/examples/vrfy.sig
index cf60995..258490a 100755
--- a/examples/vrfy.sig
+++ b/examples/vrfy.sig
@@ -3,15 +3,30 @@
3-- Example public-key signature verification. 3-- Example public-key signature verification.
4-- 4--
5 5
6local keytype = ...
7
8local openssl = require"openssl"
6local pkey = require"openssl.pkey" 9local pkey = require"openssl.pkey"
7local digest = require"openssl.digest" 10local digest = require"openssl.digest"
8 11
9-- generate a public/private key pair 12-- generate a public/private key pair
10local key = pkey.new{ type = "EC", curve = "prime192v1" } 13local function genkey(type)
14 type = string.upper(type or (not openssl.NO_EC and "EC") or "RSA")
15
16 if type == "RSA" then
17 return pkey.new{ type = "RSA", bits = 1024 }, "sha256"
18 elseif type == "DSA" then
19 return pkey.new{ type = "DSA", bits = 1024 }, "dss1"
20 else
21 return pkey.new{ type = "EC", curve = "prime192v1" }, "ecdsa-with-SHA1"
22 end
23end
24
25local key, hash = genkey(keytype)
11 26
12-- digest our message using an appropriate digest ("ecdsa-with-SHA1" for EC; 27-- digest our message using an appropriate digest ("ecdsa-with-SHA1" for EC;
13-- "dss1" for DSA; and "sha1", "sha256", etc for RSA). 28-- "dss1" for DSA; and "sha1", "sha256", etc for RSA).
14local data = digest.new"ecdsa-with-SHA1" 29local data = digest.new(hash)
15data:update(... or "hello world") 30data:update(... or "hello world")
16 31
17-- generate a signature for our data 32-- generate a signature for our data