Warn user with signature null for wrong public key instead of exception.

This commit is contained in:
Tankred Hase 2014-07-01 14:56:53 +02:00
parent 62debad52d
commit 8c93688b0e
2 changed files with 13 additions and 14 deletions

View File

@ -236,16 +236,18 @@ Message.prototype.verify = function(keys) {
for (var i = 0; i < signatureList.length; i++) {
keyPacket = key.getKeyPacket([signatureList[i].issuerKeyId]);
if (keyPacket) {
var verifiedSig = {};
verifiedSig.keyid = signatureList[i].issuerKeyId;
verifiedSig.valid = signatureList[i].verify(keyPacket, literalDataList[0]);
result.push(verifiedSig);
break;
}
}
if (!keyPacket) {
throw new Error('No matching signature found for specified keys.');
var verifiedSig = {};
if (keyPacket) {
verifiedSig.keyid = signatureList[i].issuerKeyId;
verifiedSig.valid = signatureList[i].verify(keyPacket, literalDataList[0]);
} else {
verifiedSig.keyid = key.primaryKey.keyid;
verifiedSig.valid = null;
}
result.push(verifiedSig);
});
return result;
};

View File

@ -84,14 +84,11 @@ describe('Basic', function() {
var anotherKey = openpgp.generateKeyPair({numBits: 512, userId: userid, passphrase: passphrase});
var anotherPubKey = openpgp.key.readArmored(anotherKey.publicKeyArmored).keys[0];
var decrypted;
try {
decrypted = openpgp.decryptAndVerifyMessage(privKey, [anotherPubKey], msg);
} catch(e) {
expect(e).to.exist;
expect(decrypted).to.not.exist;
done();
}
var decrypted = openpgp.decryptAndVerifyMessage(privKey, [anotherPubKey], msg);
expect(decrypted).to.exist;
expect(decrypted.signatures[0].valid).to.be.null;
expect(decrypted.text).to.equal(message);
done();
});
it('Performance test', function (done) {