From 3e93580aa4bfa7496d8f061813b757e18b15994a Mon Sep 17 00:00:00 2001 From: Storms-Engineering Date: Sat, 12 Oct 2019 09:42:13 -0800 Subject: [PATCH] DES Encrypt/Decrypt - checks length of IV string Checks the length of IV string when encrypting. DES encrypt/decrypt test swas updated to use utf8 instead of HEX. --- src/core/operations/DESDecrypt.mjs | 5 +++++ src/core/operations/DESEncrypt.mjs | 5 +++++ tests/node/tests/operations.mjs | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/core/operations/DESDecrypt.mjs b/src/core/operations/DESDecrypt.mjs index 6725160a..9ab694b8 100644 --- a/src/core/operations/DESDecrypt.mjs +++ b/src/core/operations/DESDecrypt.mjs @@ -73,6 +73,11 @@ class DESDecrypt extends Operation { DES uses a key length of 8 bytes (64 bits). Triple DES uses a key length of 24 bytes (192 bits).`); } + if (iv.length !== 8) { + throw new OperationError(`Invalid IV length: ${iv.length} bytes + +DES uses an IV length of 8 bytes (64 bits).`); + } input = Utils.convertToByteString(input, inputType); diff --git a/src/core/operations/DESEncrypt.mjs b/src/core/operations/DESEncrypt.mjs index 5ea5f5fc..9897a413 100644 --- a/src/core/operations/DESEncrypt.mjs +++ b/src/core/operations/DESEncrypt.mjs @@ -73,6 +73,11 @@ class DESEncrypt extends Operation { DES uses a key length of 8 bytes (64 bits). Triple DES uses a key length of 24 bytes (192 bits).`); } + if (iv.length !== 8) { + throw new OperationError(`Invalid IV length: ${iv.length} bytes + +DES uses an IV length of 8 bytes (64 bits).`); + } input = Utils.convertToByteString(input, inputType); diff --git a/tests/node/tests/operations.mjs b/tests/node/tests/operations.mjs index 42ba74c9..56699065 100644 --- a/tests/node/tests/operations.mjs +++ b/tests/node/tests/operations.mjs @@ -400,7 +400,7 @@ color: white; }, iv: { string: "threetwo", - option: "Hex", + option: "utf8", }, mode: "ECB", }); @@ -415,7 +415,7 @@ color: white; }, iv: { string: "threetwo", - option: "Hex", + option: "utf8", }, mode: "ECB", });