aboutsummaryrefslogtreecommitdiffstats
path: root/regress
diff options
context:
space:
mode:
authorLibravatarLibravatar Matthew Wild <mwild1@gmail.com> 2022-06-30 19:41:34 +0100
committerLibravatarLibravatar daurnimator <quae@daurnimator.com> 2022-07-03 22:56:03 +1000
commit2922f436c562cf4dc716fc24816784b71da27403 (patch)
tree945344ddb72b4ebbb3bc440164580ba509c0f4f8 /regress
parentdb44f3e7b6779e8238a5d801c8f35041ad9baabb (diff)
downloadluaossl-2922f436c562cf4dc716fc24816784b71da27403.tar.gz
luaossl-2922f436c562cf4dc716fc24816784b71da27403.tar.bz2
luaossl-2922f436c562cf4dc716fc24816784b71da27403.zip
Add regression test for #115
Diffstat (limited to 'regress')
-rw-r--r--regress/115-test-aead.lua39
1 files changed, 39 insertions, 0 deletions
diff --git a/regress/115-test-aead.lua b/regress/115-test-aead.lua
new file mode 100644
index 0000000..ed0f7f8
--- /dev/null
+++ b/regress/115-test-aead.lua
@@ -0,0 +1,39 @@
+local regress = require "regress";
+local openssl = require "openssl";
+local cipher = require "openssl.cipher"
+
+
+-- Test AES-256-GCM
+local key = "abcdefghijklmnopabcdefghijklmnop"
+local iv = "123456123456"
+local message = "My secret message"
+
+function test_aead(params)
+ local c = cipher.new(params.cipher):encrypt(key, iv)
+
+ local encrypted = c:update(message)
+ regress.check(encrypted)
+ regress.check(c:final(), "fail final encrypt")
+
+ local tag = assert(c:getTag(params.tag_length))
+ regress.check(tag and #tag == params.tag_length)
+
+
+ -- Now for the decryption
+ local d = cipher.new(params.cipher):decrypt(key, iv)
+ d:setTag(tag);
+
+ local decrypted = d:update(encrypted)
+ regress.check(decrypted == message, "decrypted message doesn't match")
+ regress.check(d:final(), "fail final decrypt")
+end
+
+test_aead {
+ cipher = "aes-256-gcm";
+ tag_length = 16;
+}
+
+test_aead {
+ cipher = "aes-256-ccm";
+ tag_length = 12;
+}