import CipherBase from "../cipher-base"; import * as des from "../des/index.js"; import { inherits as inherits$0 } from "util"; var inherits = { inherits: inherits$0 }.inherits; var modes = { 'des-ede3-cbc': des.CBC.instantiate(des.EDE), 'des-ede3': des.EDE, 'des-ede-cbc': des.CBC.instantiate(des.EDE), 'des-ede': des.EDE, 'des-cbc': des.CBC.instantiate(des.DES), 'des-ecb': des.DES }; modes.des = modes['des-cbc']; modes.des3 = modes['des-ede3-cbc']; inherits(DES, CipherBase); function DES(opts) { CipherBase.call(this); var modeName = opts.mode.toLowerCase(); var mode = modes[modeName]; var type; if (opts.decrypt) { type = 'decrypt'; } else { type = 'encrypt'; } var key = opts.key; if (!Buffer.isBuffer(key)) { key = Buffer.from(key); } if (modeName === 'des-ede' || modeName === 'des-ede-cbc') { key = Buffer.concat([key, key.slice(0, 8)]); } var iv = opts.iv; if (!Buffer.isBuffer(iv)) { iv = Buffer.from(iv); } this._des = mode.create({ key: key, iv: iv, type: type }); } DES.prototype._update = function (data) { return Buffer.from(this._des.update(data)); }; DES.prototype._final = function () { return Buffer.from(this._des.final()); }; export default DES;