diff --git a/src/packet/symmetrically_encrypted.js b/src/packet/symmetrically_encrypted.js index 12590e88..f4858d94 100644 --- a/src/packet/symmetrically_encrypted.js +++ b/src/packet/symmetrically_encrypted.js @@ -77,12 +77,9 @@ SymmetricallyEncrypted.prototype.write = function () { */ SymmetricallyEncrypted.prototype.decrypt = async function (sessionKeyAlgorithm, key) { const decrypted = crypto.cfb.decrypt(sessionKeyAlgorithm, key, this.encrypted, true); - // for modern cipher (blocklength != 64 bit, except for Twofish) MDC is required - if (!this.ignore_mdc_error && - (sessionKeyAlgorithm === 'aes128' || - sessionKeyAlgorithm === 'aes192' || - sessionKeyAlgorithm === 'aes256')) { - throw new Error('Decryption failed due to missing MDC in combination with modern cipher.'); + // If MDC errors are not being ignored, all missing MDC packets in symmetrically encrypted data should throw an error + if (!this.ignore_mdc_error) { + throw new Error('Decryption failed due to missing MDC.'); } this.packets.read(decrypted); diff --git a/test/general/packet.js b/test/general/packet.js index 25e1e43e..a602f12b 100644 --- a/test/general/packet.js +++ b/test/general/packet.js @@ -96,7 +96,7 @@ describe("Packet", function() { const msg2 = new openpgp.packet.List(); msg2.read(message.write()); - await expect(msg2[0].decrypt(algo, key)).to.eventually.be.rejectedWith('Decryption failed due to missing MDC in combination with modern cipher.'); + await expect(msg2[0].decrypt(algo, key)).to.eventually.be.rejectedWith('Decryption failed due to missing MDC.'); }); it('Sym. encrypted integrity protected packet', async function() {