diff --git a/src/cleartext.js b/src/cleartext.js index cf5885b2..25cd9a7b 100644 --- a/src/cleartext.js +++ b/src/cleartext.js @@ -91,18 +91,25 @@ CleartextMessage.prototype.verify = function(keys) { var literalDataPacket = new packet.Literal(); // we assume that cleartext signature is generated based on UTF8 cleartext literalDataPacket.setText(this.text); - keys.forEach(function(key) { - for (var i = 0; i < signatureList.length; i++) { - var keyPacket = key.getKeyPacket([signatureList[i].issuerKeyId]); + for (var i = 0; i < signatureList.length; i++) { + var keyPacket = null; + for (var j = 0; j < keys.length; j++) { + keyPacket = keys[j].getKeyPacket([signatureList[i].issuerKeyId]); if (keyPacket) { - var verifiedSig = {}; - verifiedSig.keyid = signatureList[i].issuerKeyId; - verifiedSig.valid = signatureList[i].verify(keyPacket, literalDataPacket); - result.push(verifiedSig); break; } } - }); + + var verifiedSig = {}; + if (keyPacket) { + verifiedSig.keyid = signatureList[i].issuerKeyId; + verifiedSig.valid = signatureList[i].verify(keyPacket, literalDataPacket); + } else { + verifiedSig.keyid = signatureList[i].issuerKeyId; + verifiedSig.valid = null; + } + result.push(verifiedSig); + } return result; };