/** * @author n1073645 [n1073645@gmail.com] * @copyright Crown Copyright 2020 * @license Apache-2.0 */ import Operation from "../Operation.mjs"; import * as LS47 from "../lib/LS47.mjs" /** * LS47 Encrypt operation */ class LS47Encrypt extends Operation { /** * LS47Encrypt constructor */ constructor() { super(); this.name = "LS47 Encrypt"; this.module = "Crypto"; this.description = ""; this.infoURL = ""; this.inputType = "string"; this.outputType = "string"; this.args = [ { name: "Password", type: "string", value: "" }, { name: "Padding", type: "number", value: 10 }, { name: "Signature", type: "string", value: "" } ]; } /** * @param {string} input * @param {Object[]} args * @returns {string} */ run(input, args) { this.padding_size = parseInt(args[1], 10); LS47.init_tiles(); let key = LS47.derive_key(args[0]); return LS47.encrypt_pad(key, input, args[2], this.padding_size); } } export default LS47Encrypt;