Reputation: 5629
I was trying to encrypt and sign a message using OpenPgpjs.
But I keep getting this error "Error encrypting message: Private key is not decrypted"
This is what I tried:
var openpgp = require('openpgp');
var publicKey = [].join("\n"); //This has the complete key. Removed for representation
var privateKey = [].join("\n"); //This has the complete key. Removed for representation
var publicKeys = openpgp.key.readArmored(publicKey).keys;
var privateKeys = openpgp.key.readArmored(privateKey).keys;
encryptionOptions = {
data : 'Example Test',
publicKeys : publicKeys,
privateKeys : privateKeys
};
return openpgp.encrypt(encryptionOptions).then(function(ciphertext) {
encryptedData = ciphertext.data;
console.log(ciphertext);
return encryptedData;
});
Upvotes: 5
Views: 1664
Reputation: 2221
You need to decrypt your private key if you want to sign:
var pub = openpgp.key.readArmored(publicKey);
var priv = openpgp.key.readArmored(privateKey);
// decrypt the private key with password
var success = priv.keys[0].decrypt('my-secret-password');
var options = {
data: 'Hello, World!',
publicKeys: pub.keys,
privateKeys: priv.keys // for signing (optional)
};
openpgp.encrypt(options).then(function(ciphertext) {
console.log (ciphertext.data);
});
Upvotes: 6