11local crypto = require (" crypto" )
22local assert = require ' assert'
3+ local hex = require ' hex'
4+ local require = require ' require'
35
46function TestMD5 (t )
57 local tests = {
@@ -39,7 +41,7 @@ function TestSha256(t)
3941 end
4042end
4143
42- function TestAESEncrypt (t )
44+ function TestAESEncryptHex (t )
4345 local tests = {
4446 {
4547 data = " 48656c6c6f207w76f726c64" , -- "Hello world" in hex
@@ -82,12 +84,12 @@ function TestAESEncrypt(t)
8284 err = " failed to encrypt: incorrect GCM nonce size: 14, expected: 12" ,
8385 },
8486 {
85- data = " 48656c6c6f20776f726c64" , -- "Hello world" in hex
86- mode = " cbc" ,
87- key = " 86e15cbc1cbf510d8f2e51d4b63a2144" ,
88- init = " 068bb92e032884ba8b260fa7d3a80005" ,
87+ data = " 48656c6c6f20776f726c64" , -- "Hello world" in hex
88+ mode = " cbc" ,
89+ key = " 86e15cbc1cbf510d8f2e51d4b63a2144" ,
90+ init = " 068bb92e032884ba8b260fa7d3a80005" ,
8991 expected = " dfba6f71cce4d4b76be301b577d9f095" ,
90- err = nil ,
92+ err = nil ,
9193 },
9294 {
9395 data = " 48656c6c6f20776f726c64" , -- "Hello world" in hex
@@ -116,14 +118,14 @@ function TestAESEncrypt(t)
116118 }
117119 for _ , tt in ipairs (tests ) do
118120 t :Run (" aes_encrypt in " .. tostring (tt .mode ) .. " mode" , function (t )
119- local got , err = crypto .aes_encrypt (tt .mode , tt .key , tt .init , tt .data )
121+ local got , err = crypto .aes_encrypt_hex (tt .mode , tt .key , tt .init , tt .data )
120122 assert :Equal (t , tt .expected , got )
121123 assert :Equal (t , tt .err , err )
122124 end )
123125 end
124126end
125127
126- function TestAESDecrypt (t )
128+ function TestAESDecryptHex (t )
127129 local tests = {
128130 {
129131 data = " 7ec4e38508a26abf7b46e8dc90a7299d5144bcf045e460c3efwb3e" ,
@@ -176,9 +178,38 @@ function TestAESDecrypt(t)
176178 }
177179 for _ , tt in ipairs (tests ) do
178180 t :Run (" aes_decrypt in " .. tostring (tt .mode ) .. " mode" , function (t )
179- local got , err = crypto .aes_decrypt (tt .mode , tt .key , tt .init , tt .data )
181+ local got , err = crypto .aes_decrypt_hex (tt .mode , tt .key , tt .init , tt .data )
180182 assert :Equal (t , tt .expected , got )
181183 assert :Equal (t , tt .err , err )
182184 end )
183185 end
184186end
187+
188+ function TestAESEncrypt (t )
189+ tests = {
190+ {
191+ data = " 48656c6c6f20776f726c64" ,
192+ mode = " cbc" ,
193+ key = " 86e15cbc1cbf510d8f2e51d4b63a2144" ,
194+ init = " 068bb92e032884ba8b260fa7d3a80005" ,
195+ expected = " dfba6f71cce4d4b76be301b577d9f095" ,
196+ wantErr = false ,
197+ },
198+ }
199+ for _ , tt in ipairs (tests ) do
200+ local key , err = hex .decode_string (tt .key )
201+ require :NoError (t , err )
202+ local init , err = hex .decode_string (tt .init )
203+ require :NoError (t , err )
204+ local data , err = hex .decode_string (tt .data )
205+ require :NoError (t , err )
206+ local got , err = crypto .aes_encrypt (tt .mode , key , init , data )
207+ if tt .wantErr then
208+ require :Error (t , err )
209+ return
210+ end
211+ require :NoError (t , err )
212+ got = hex .encode_to_string (got )
213+ assert :Equal (t , tt .err , err )
214+ end
215+ end
0 commit comments