Welcome! Log In Create A New Profile

Advanced

[njs] WebCrypto: added missed support for AES-* keys of size 192.

Dmitry Volyntsev
January 04, 2023 11:44PM
details: https://hg.nginx.org/njs/rev/864bf6445ccb
branches:
changeset: 2018:864bf6445ccb
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Thu Dec 29 20:46:21 2022 -0800
description:
WebCrypto: added missed support for AES-* keys of size 192.

diffstat:

external/njs_webcrypto_module.c | 12 ++++++++++++
test/webcrypto/aes.t.js | 3 +++
2 files changed, 15 insertions(+), 0 deletions(-)

diffs (63 lines):

diff -r 02aa50753dc1 -r 864bf6445ccb external/njs_webcrypto_module.c
--- a/external/njs_webcrypto_module.c Thu Dec 29 20:39:29 2022 -0800
+++ b/external/njs_webcrypto_module.c Thu Dec 29 20:46:21 2022 -0800
@@ -663,6 +663,10 @@ njs_cipher_aes_gcm(njs_vm_t *vm, njs_str
cipher = EVP_aes_128_gcm();
break;

+ case 24:
+ cipher = EVP_aes_192_gcm();
+ break;
+
case 32:
cipher = EVP_aes_256_gcm();
break;
@@ -961,6 +965,10 @@ njs_cipher_aes_ctr(njs_vm_t *vm, njs_str
cipher = EVP_aes_128_ctr();
break;

+ case 24:
+ cipher = EVP_aes_192_ctr();
+ break;
+
case 32:
cipher = EVP_aes_256_ctr();
break;
@@ -1162,6 +1170,10 @@ njs_cipher_aes_cbc(njs_vm_t *vm, njs_str
cipher = EVP_aes_128_cbc();
break;

+ case 24:
+ cipher = EVP_aes_192_cbc();
+ break;
+
case 32:
cipher = EVP_aes_256_cbc();
break;
diff -r 02aa50753dc1 -r 864bf6445ccb test/webcrypto/aes.t.js
--- a/test/webcrypto/aes.t.js Thu Dec 29 20:39:29 2022 -0800
+++ b/test/webcrypto/aes.t.js Thu Dec 29 20:46:21 2022 -0800
@@ -66,6 +66,7 @@ let aes_tsuite = {
{ name: "AES-GCM", data: "aabbcc", tagLength: 112 },
{ name: "AES-GCM", data: "aabbcc", tagLength: 113, exception: "TypeError: AES-GCM Invalid tagLength" },
{ name: "AES-GCM", data: "aabbcc", key: "aabbcc", exception: "TypeError: Invalid key length" },
+ { name: "AES-GCM", data: "aabbcc", key: "001122330011223300112233001122330011223300112233" },
{ name: "AES-GCM", data: "aabbccdd".repeat(4096) },

{ name: "AES-CTR", data: "aa" },
@@ -84,6 +85,7 @@ let aes_tsuite = {
{ name: "AES-CTR", data: "aabbccdd".repeat(4096), counter: "ffffffffffffffffffffffffffffffff", length: 11 },
{ name: "AES-CTR", data: "aabbccdd".repeat(4096), length: 20 },
{ name: "AES-CTR", data: "aabbccdd".repeat(4096), length: 24 },
+ { name: "AES-CTR", data: "aabbcc", key: "001122330011223300112233001122330011223300112233" },
{ name: "AES-CTR", data: "aabbccdd", length: 129,
exception: "TypeError: AES-CTR algorithm.length must be between 1 and 128" },
{ name: "AES-CTR", data: "aabbcc", key: "aabbcc", exception: "TypeError: Invalid key length" },
@@ -92,6 +94,7 @@ let aes_tsuite = {
{ name: "AES-CBC", data: "aabbccdd".repeat(4) },
{ name: "AES-CBC", data: "aabbccdd".repeat(4096) },
{ name: "AES-CBC", data: "aabbccdd".repeat(5), iv: "ffffffffffffffffffffffffffffffff" },
+ { name: "AES-CBC", data: "aabbcc", key: "001122330011223300112233001122330011223300112233" },
{ name: "AES-CBC", data: "aabbcc", key: "aabbcc", exception: "TypeError: Invalid key length" },
]};

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] WebCrypto: added missed support for AES-* keys of size 192.

Dmitry Volyntsev 288 January 04, 2023 11:44PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 95
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready