Merge pull request #239 from openpgpjs/empty-signatures

Iterate over signature not keys to allow empty signatures array in case ...
This commit is contained in:
Tankred Hase 2014-07-02 15:14:15 +02:00
commit f5f16b841e

View File

@ -231,24 +231,25 @@ Message.prototype.verify = function(keys) {
var literalDataList = msg.packets.filterByTag(enums.packet.literal); var literalDataList = msg.packets.filterByTag(enums.packet.literal);
if (literalDataList.length !== 1) throw new Error('Can only verify message with one literal data packet.'); if (literalDataList.length !== 1) throw new Error('Can only verify message with one literal data packet.');
var signatureList = msg.packets.filterByTag(enums.packet.signature); var signatureList = msg.packets.filterByTag(enums.packet.signature);
keys.forEach(function(key) {
var keyPacket = null;
for (var i = 0; i < signatureList.length; i++) { for (var i = 0; i < signatureList.length; i++) {
keyPacket = key.getKeyPacket([signatureList[i].issuerKeyId]); var keyPacket = null;
for (var j = 0; j < keys.length; j++) {
keyPacket = keys[j].getKeyPacket([signatureList[i].issuerKeyId]);
if (keyPacket) { if (keyPacket) {
break; break;
} }
} }
var verifiedSig = {}; var verifiedSig = {};
if (keyPacket) { if (keyPacket) {
verifiedSig.keyid = signatureList[i].issuerKeyId; verifiedSig.keyid = signatureList[i].issuerKeyId;
verifiedSig.valid = signatureList[i].verify(keyPacket, literalDataList[0]); verifiedSig.valid = signatureList[i].verify(keyPacket, literalDataList[0]);
} else { } else {
verifiedSig.keyid = key.primaryKey.keyid; verifiedSig.keyid = signatureList[i].issuerKeyId;
verifiedSig.valid = null; verifiedSig.valid = null;
} }
result.push(verifiedSig); result.push(verifiedSig);
}); }
return result; return result;
}; };