diff --git a/src/message.js b/src/message.js index 4c4705c1..c415e195 100644 --- a/src/message.js +++ b/src/message.js @@ -104,12 +104,12 @@ Message.prototype.decrypt = function(privateKey, sessionKey, password) { enums.packet.symEncryptedIntegrityProtected, enums.packet.symEncryptedAEADProtected ); + if (symEncryptedPacketlist.length === 0) { return; } const symEncryptedPacket = symEncryptedPacketlist[0]; - return symEncryptedPacket.decrypt(keyObj.algorithm, keyObj.data).then(() => { const resultMsg = new Message(symEncryptedPacket.packets); symEncryptedPacket.packets = new packet.List(); // remove packets after decryption @@ -360,9 +360,11 @@ Message.prototype.sign = function(privateKeys=[], signature=null) { signaturePacket.sign(signingKeyPacket, literalDataPacket); packetlist.push(signaturePacket); } + if (signature) { packetlist.concat(existingSigPacketlist); } + return new Message(packetlist); }; diff --git a/src/openpgp.js b/src/openpgp.js index d98773ed..216056da 100644 --- a/src/openpgp.js +++ b/src/openpgp.js @@ -247,7 +247,6 @@ export function decrypt({ message, privateKey, publicKeys, sessionKey, password, return message.decrypt(privateKey, sessionKey, password).then(message => { const result = parseMessage(message, format); - if (result.data) { // verify if (!publicKeys) { publicKeys = []; @@ -286,6 +285,7 @@ export function decrypt({ message, privateKey, publicKeys, sessionKey, password, export function sign({ data, privateKeys, armor=true, detached=false}) { checkString(data); privateKeys = toArray(privateKeys); + if (asyncProxy) { // use web worker if available return asyncProxy.delegate('sign', { data, privateKeys, armor, detached }); }