Mercurial > prosody-hg
comparison spec/util_crypto_spec.lua @ 12837:d3ae47d8a7a7
util.crypto: Add support for AES-256-CTR
This is required by PASETO v3.local
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 13 Jan 2023 14:34:10 +0000 |
| parents | 924bc1c8d0d9 |
| children | fb970df95374 |
comparison
equal
deleted
inserted
replaced
| 12836:dbe9781fd278 | 12837:d3ae47d8a7a7 |
|---|---|
| 162 local decrypted = params[2](params.key, iv, encrypted); | 162 local decrypted = params[2](params.key, iv, encrypted); |
| 163 assert.equal(message, decrypted); | 163 assert.equal(message, decrypted); |
| 164 end | 164 end |
| 165 end); | 165 end); |
| 166 end); | 166 end); |
| 167 | |
| 168 describe("AES-CTR encryption", function () | |
| 169 it("works", function () | |
| 170 local message = "foo\0bar hello world"; | |
| 171 local key_256_bit = random.bytes(32); | |
| 172 local test_cases = { | |
| 173 { crypto.aes_256_ctr_decrypt, crypto.aes_256_ctr_decrypt, key = key_256_bit }; | |
| 174 }; | |
| 175 for _, params in pairs(test_cases) do | |
| 176 local iv = params.iv or random.bytes(16); | |
| 177 local encrypted = params[1](params.key, iv, message); | |
| 178 assert.not_equal(message, encrypted); | |
| 179 local decrypted = params[2](params.key, iv, encrypted); | |
| 180 assert.equal(message, decrypted); | |
| 181 end | |
| 182 end); | |
| 183 end); | |
| 167 end); | 184 end); |
