From de01c36c2ebef79422a8951efebcbf04b44941d6 Mon Sep 17 00:00:00 2001 From: Macide Celik Date: Mon, 28 Oct 2019 23:55:25 +0300 Subject: [PATCH] Delete DESEncrypt.mjs --- src/core/operations/DESEncrypt.mjs | 95 ------------------------------ 1 file changed, 95 deletions(-) delete mode 100644 src/core/operations/DESEncrypt.mjs diff --git a/src/core/operations/DESEncrypt.mjs b/src/core/operations/DESEncrypt.mjs deleted file mode 100644 index 6f297d32..00000000 --- a/src/core/operations/DESEncrypt.mjs +++ /dev/null @@ -1,95 +0,0 @@ -/** - * @author n1474335 [n1474335@gmail.com] - * @copyright Crown Copyright 2016 - * @license Apache-2.0 - */ - -import Operation from "../Operation.mjs"; -import Utils from "../Utils.mjs"; -import OperationError from "../errors/OperationError.mjs"; -import forge from "node-forge/dist/forge.min.js"; - -/** - * DES Encrypt operation - */ -class DESEncrypt extends Operation { - - /** - * DESEncrypt constructor - */ - constructor() { - super(); - - this.name = "DES Encrypt"; - this.module = "Ciphers"; - this.description = "DES is a previously dominant algorithm for encryption, and was published as an official U.S. Federal Information Processing Standard (FIPS). It is now considered to be insecure due to its small key size.

Key: DES uses a key length of 8 bytes (64 bits).
Triple DES uses a key length of 24 bytes (192 bits).

You can generate a password-based key using one of the KDF operations.

IV: The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.

Padding: In CBC and ECB mode, PKCS#7 padding will be used."; - this.infoURL = "https://wikipedia.org/wiki/Data_Encryption_Standard"; - this.inputType = "string"; - this.outputType = "string"; - this.args = [ - { - "name": "Key", - "type": "toggleString", - "value": "", - "toggleValues": ["Hex", "UTF8", "Latin1", "Base64"] - }, - { - "name": "IV", - "type": "toggleString", - "value": "", - "toggleValues": ["Hex", "UTF8", "Latin1", "Base64"] - }, - { - "name": "Mode", - "type": "option", - "value": ["CBC", "CFB", "OFB", "CTR", "ECB"] - }, - { - "name": "Input", - "type": "option", - "value": ["Raw", "Hex"] - }, - { - "name": "Output", - "type": "option", - "value": ["Hex", "Raw"] - } - ]; - } - - /** - * @param {string} input - * @param {Object[]} args - * @returns {string} - */ - run(input, args) { - const key = Utils.convertToByteString(args[0].string, args[0].option), - iv = Utils.convertToByteArray(args[1].string, args[1].option), - [,, mode, inputType, outputType] = args; - - if (key.length !== 8) { - throw new OperationError(`Invalid key length: ${key.length} bytes - -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 && mode !== "ECB") { - throw new OperationError(`Invalid IV length: ${iv.length} bytes - -DES uses an IV length of 8 bytes (64 bits). -Make sure you have specified the type correctly (e.g. Hex vs UTF8).`); - } - - input = Utils.convertToByteString(input, inputType); - - const cipher = forge.cipher.createCipher("DES-" + mode, key); - cipher.start({iv: iv}); - cipher.update(forge.util.createBuffer(input)); - cipher.finish(); - - return outputType === "Hex" ? cipher.output.toHex() : cipher.output.getBytes(); - } - -} - -export default DESEncrypt;