From 38a11d7aaf537e4646e92b7e6a907c51b31e2efa Mon Sep 17 00:00:00 2001 From: Sanjana Rajan Date: Wed, 14 Feb 2018 17:55:54 +0100 Subject: [PATCH] reuse createVerificationObjects for cleartext --- src/cleartext.js | 25 +++---------------------- src/message.js | 2 +- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/src/cleartext.js b/src/cleartext.js index da64440c..84252017 100644 --- a/src/cleartext.js +++ b/src/cleartext.js @@ -29,6 +29,7 @@ import armor from './encoding/armor'; import enums from './enums'; import packet from './packet'; import { Signature } from './signature'; +import { createVerificationObjects } from './message'; import { getPreferredHashAlgo } from './key'; /** @@ -82,6 +83,7 @@ CleartextMessage.prototype.signDetached = async function(privateKeys) { const packetlist = new packet.List(); const literalDataPacket = new packet.Literal(); literalDataPacket.setText(this.text); + await Promise.all(privateKeys.map(async function(privateKey) { if (privateKey.isPublic()) { throw new Error('Need private key for signing'); @@ -127,28 +129,7 @@ CleartextMessage.prototype.verifyDetached = function(signature, keys) { const literalDataPacket = new packet.Literal(); // we assume that cleartext signature is generated based on UTF8 cleartext literalDataPacket.setText(this.text); - return Promise.all(signatureList.map(async function(signature) { - let keyPacket = null; - await Promise.all(keys.map(async function(key) { - await key.verifyPrimaryUser(); - // Look for the unique key packet that matches issuerKeyId of signature - const result = key.getSigningKeyPacket(signature.issuerKeyId, config.verify_expired_keys); - if (result) { - keyPacket = result; - } - })); - - const verifiedSig = { - keyid: signature.issuerKeyId, - valid: keyPacket ? await signature.verify(keyPacket, literalDataPacket) : null - }; - - const packetlist = new packet.List(); - packetlist.push(signature); - verifiedSig.signature = new Signature(packetlist); - - return verifiedSig; - })); + return createVerificationObjects(signatureList, [literalDataPacket], keys); }; /** diff --git a/src/message.js b/src/message.js index 9f00e584..1fc0c96c 100644 --- a/src/message.js +++ b/src/message.js @@ -540,7 +540,7 @@ Message.prototype.verifyDetached = function(signature, keys) { * @param {Array} keys array of keys to verify signatures * @return {Array<({keyid: module:type/keyid, valid: Boolean})>} list of signer's keyid and validity of signature */ -async function createVerificationObjects(signatureList, literalDataList, keys) { +export async function createVerificationObjects(signatureList, literalDataList, keys) { return Promise.all(signatureList.map(async function(signature) { let keyPacket = null; await Promise.all(keys.map(async function(key) {