Fix decryption of passwords in PGP operations

This commit is contained in:
toby 2017-03-13 17:23:38 -04:00
parent 9a5511a8bc
commit 3bdad1d3d0

View file

@ -94,12 +94,11 @@ var PGP = {
privateKey: privateKey, privateKey: privateKey,
}; };
try { if (password) {
if (password) { privateKey.decrypt(password);
privateKey.decrypt(password); }
} if (privateKey.primaryKey.encrypted !== null) {
} catch (err) { return reject("Could not decrypt private key.");
return reject("Cannot decrypt password: " + err);
} }
openpgp.decrypt(options) openpgp.decrypt(options)
@ -138,12 +137,11 @@ var PGP = {
return reject("Could not read private key: " + err); return reject("Could not read private key: " + err);
} }
try { if (password) {
if (password) { privateKeys[0].decrypt(password);
privateKeys[0].decrypt(password); }
} if (privateKeys[0].primaryKey.encrypted !== null) {
} catch (err) { return reject("Could not decrypt private key.");
return reject("Cannot decrypt password: " + err);
} }
var options = { var options = {
@ -189,12 +187,11 @@ var PGP = {
return reject("Could not read private key: " + err); return reject("Could not read private key: " + err);
} }
try { if (password) {
if (password) { privateKeys[0].decrypt(password);
privateKeys[0].decrypt(password); }
} if (privateKeys[0].primaryKey.encrypted !== null) {
} catch (err) { return reject("Could not decrypt private key.");
return reject("Cannot decrypt password: " + err);
} }
try { try {
@ -232,7 +229,7 @@ var PGP = {
"Signed by: " + verification.author, "Signed by: " + verification.author,
"Signed with: ", "Signed with: ",
"\n", "\n",
displayDecrypt ? decrypted.data : "", displayDecrypt && verification.verified ? decrypted.data : "",
].join("\n")); ].join("\n"));
}) })
@ -256,14 +253,17 @@ var PGP = {
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
var privateKeys = openpgp.key.readArmored(privateKey).keys;
try { try {
if (password) { var privateKeys = openpgp.key.readArmored(privateKey).keys;
privateKeys[0].decrypt(password);
}
} catch (err) { } catch (err) {
return reject("Cannot decrypt password: " + err); return reject("Could not read private key: " + err);
}
if (password) {
privateKeys[0].decrypt(password);
}
if (privateKeys[0].primaryKey.encrypted !== null) {
return reject("Could not decrypt private key.");
} }
var options = { var options = {
@ -334,7 +334,7 @@ var PGP = {
"Signed by: " + verification.author, "Signed by: " + verification.author,
"Signed with: ", "Signed with: ",
"\n", "\n",
displayDecrypt ? verification.message : "", displayDecrypt && verification.verified ? verification.message : "",
].join("\n")); ].join("\n"));
}) })
.catch(function(err) { .catch(function(err) {
@ -364,7 +364,7 @@ var PGP = {
}; };
if (password) { if (password) {
options.password = password; options.passphrase = password;
} }
openpgp.generateKey(options) openpgp.generateKey(options)