From 5a17648922bc5df6affefe17e1b601a7ed4f6954 Mon Sep 17 00:00:00 2001 From: Daniel Huigens Date: Thu, 6 Jun 2019 16:05:06 +0200 Subject: [PATCH] Fix error message when reformatting a GNU stripped-key with a passphrase --- src/packet/secret_key.js | 1 - test/general/signature.js | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/packet/secret_key.js b/src/packet/secret_key.js index 558a7682..160a14f5 100644 --- a/src/packet/secret_key.js +++ b/src/packet/secret_key.js @@ -165,7 +165,6 @@ SecretKey.prototype.isDecrypted = function() { */ SecretKey.prototype.encrypt = async function (passphrase) { if (this.isDecrypted() && this.encrypted) { // gnu-dummy - this.isEncrypted = true; return false; } diff --git a/test/general/signature.js b/test/general/signature.js index e4f8163b..6abb7654 100644 --- a/test/general/signature.js +++ b/test/general/signature.js @@ -493,11 +493,13 @@ vwjE8mqJXetNMfj8r2SCyvkEnlVRYR+/mnge+ib56FdJ8uKtqSxyvgA= // exercises the GnuPG s2k type 1001 extension: // the secrets on the primary key have been stripped. const priv_key_gnupg_ext = (await openpgp.key.readArmored(priv_key_arm1_stripped)).keys[0]; + const priv_key_gnupg_ext_2 = (await openpgp.key.readArmored(priv_key_arm1_stripped)).keys[0]; const pub_key = (await openpgp.key.readArmored(pub_key_arm1)).keys[0]; const message = await openpgp.message.readArmored(msg_arm1); const primaryKey_packet = priv_key_gnupg_ext.primaryKey.write(); expect(priv_key_gnupg_ext.isDecrypted()).to.be.false; await priv_key_gnupg_ext.decrypt("abcd"); + await priv_key_gnupg_ext_2.decrypt("abcd"); expect(priv_key_gnupg_ext.isDecrypted()).to.be.true; const msg = await openpgp.decrypt({ message, privateKeys: [priv_key_gnupg_ext], publicKeys: [pub_key] }); expect(msg.signatures).to.exist; @@ -506,6 +508,7 @@ vwjE8mqJXetNMfj8r2SCyvkEnlVRYR+/mnge+ib56FdJ8uKtqSxyvgA= expect(msg.signatures[0].signature.packets.length).to.equal(1); await expect(openpgp.sign({ message: openpgp.message.fromText('test'), privateKeys: [priv_key_gnupg_ext] })).to.eventually.be.rejectedWith('Missing private key parameters'); await expect(openpgp.reformatKey({ userIds: { name: 'test' }, privateKey: priv_key_gnupg_ext })).to.eventually.be.rejectedWith('Missing private key parameters'); + await expect(openpgp.reformatKey({ userIds: { name: 'test' }, privateKey: priv_key_gnupg_ext_2, passphrase: 'test' })).to.eventually.be.rejectedWith('Missing private key parameters'); await priv_key_gnupg_ext.encrypt("abcd"); expect(priv_key_gnupg_ext.isDecrypted()).to.be.false; const primaryKey_packet2 = priv_key_gnupg_ext.primaryKey.write();