From 92230d2055b4a943787488160d3bc3e17e08d73b Mon Sep 17 00:00:00 2001 From: Daniel Huigens Date: Thu, 29 Nov 2018 14:02:14 +0100 Subject: [PATCH] Consider non-expired signatures from expired keys to still be valid --- src/message.js | 2 +- test/general/signature.js | 28 +--------------------------- 2 files changed, 2 insertions(+), 28 deletions(-) diff --git a/src/message.js b/src/message.js index 492286d9..edc1b48d 100644 --- a/src/message.js +++ b/src/message.js @@ -617,7 +617,7 @@ async function createVerificationObject(signature, literalDataList, keys, date=n let keyPacket = null; await Promise.all(keys.map(async function(key) { // Look for the unique key that matches issuerKeyId of signature - const result = await key.getSigningKey(signature.issuerKeyId, date); + const result = await key.getSigningKey(signature.issuerKeyId, null); if (result) { keyPacket = result.keyPacket; } diff --git a/test/general/signature.js b/test/general/signature.js index d6c53acc..ffac14a8 100644 --- a/test/general/signature.js +++ b/test/general/signature.js @@ -793,10 +793,9 @@ hkJiXopCSWKSlQInL1devkJJUWJmTmZeugJYlpdLAagQJM0JpsCqIQZwKgAA return openpgp.verify({ publicKeys:[pubKey], message:message }).then(function(verified) { expect(verified).to.exist; expect(verified.signatures).to.have.length(1); - expect(verified.signatures[0].valid).to.not.be.true; + expect(verified.signatures[0].valid).to.be.true; expect(verified.signatures[0].signature.packets.length).to.equal(1); }); - }); it('Verify test with expired verification public key and disable expiration checks using null date', async function() { @@ -808,31 +807,6 @@ hkJiXopCSWKSlQInL1devkJJUWJmTmZeugJYlpdLAagQJM0JpsCqIQZwKgAA expect(verified.signatures[0].valid).to.be.true; expect(verified.signatures[0].signature.packets.length).to.equal(1); }); - - }); - - it('Verify test with expired verification public key', async function() { - const pubKey = (await openpgp.key.readArmored(pub_expired)).keys[0]; - const message = await openpgp.message.readArmored(msg_sig_expired); - return openpgp.verify({ publicKeys:[pubKey], message:message }).then(function(verified) { - expect(verified).to.exist; - expect(verified.signatures).to.have.length(1); - expect(verified.signatures[0].valid).to.not.be.true; - expect(verified.signatures[0].signature.packets.length).to.equal(1); - }); - - }); - - it('Verify test with expired verification public key and disable expiration checks using null date', async function() { - const pubKey = (await openpgp.key.readArmored(pub_expired)).keys[0]; - const message = await openpgp.message.readArmored(msg_sig_expired); - return openpgp.verify({ publicKeys:[pubKey], message:message, date: null }).then(function(verified) { - expect(verified).to.exist; - expect(verified.signatures).to.have.length(1); - expect(verified.signatures[0].valid).to.be.true; - expect(verified.signatures[0].signature.packets.length).to.equal(1); - }); - }); // TODO add test with multiple revocation signatures