From b5ab175953fd3645fed398f4def556e661e44d41 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Mon, 20 Feb 2023 15:49:38 +0100
Subject: [PATCH] Merge GnuPG and OpenPGP.js passphrases
---
dev/Storage/Passphrases.js | 1 +
dev/Stores/User/GnuPG.js | 13 +++++++------
dev/Stores/User/OpenPGP.js | 11 ++++++-----
3 files changed, 14 insertions(+), 11 deletions(-)
create mode 100644 dev/Storage/Passphrases.js
diff --git a/dev/Storage/Passphrases.js b/dev/Storage/Passphrases.js
new file mode 100644
index 000000000..4ecf6ccda
--- /dev/null
+++ b/dev/Storage/Passphrases.js
@@ -0,0 +1 @@
+export const Passphrases = new Map();
diff --git a/dev/Stores/User/GnuPG.js b/dev/Stores/User/GnuPG.js
index c85490921..5057ce25c 100644
--- a/dev/Stores/User/GnuPG.js
+++ b/dev/Stores/User/GnuPG.js
@@ -11,14 +11,15 @@ import { showScreenPopup } from 'Knoin/Knoin';
import { OpenPgpKeyPopupView } from 'View/Popup/OpenPgpKey';
import { AskPopupView } from 'View/Popup/Ask';
+import { Passphrases } from 'Storage/Passphrases';
+
const
- passphrases = new Map(),
askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') => {
const key = privateKey.id,
- pass = passphrases.has(key)
- ? {password:passphrases.get(key), remember:false}
+ pass = Passphrases.has(key)
+ ? {password:Passphrases.get(key), remember:false}
: await AskPopupView.password('GnuPG key
' + key + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt);
- pass && pass.remember && passphrases.set(key, pass.password);
+ pass && pass.remember && Passphrases.set(key, pass.password);
return pass.password;
},
@@ -83,7 +84,7 @@ export const GnuPGUserStore = new class {
key.armor = oData.Result;
showScreenPopup(OpenPgpKeyPopupView, [key]);
} else {
- passphrases.delete(key.id);
+ Passphrases.delete(key.id);
}
}, {
keyId: key.id,
@@ -198,7 +199,7 @@ export const GnuPGUserStore = new class {
if (result?.Result && false !== result.Result.data) {
return result.Result;
}
- passphrases.delete(key.id);
+ Passphrases.delete(key.id);
}
}
}
diff --git a/dev/Stores/User/OpenPGP.js b/dev/Stores/User/OpenPGP.js
index fd649b3b3..49b6ab633 100644
--- a/dev/Stores/User/OpenPGP.js
+++ b/dev/Stores/User/OpenPGP.js
@@ -12,22 +12,23 @@ import { showScreenPopup } from 'Knoin/Knoin';
import { OpenPgpKeyPopupView } from 'View/Popup/OpenPgpKey';
import { AskPopupView } from 'View/Popup/Ask';
+import { Passphrases } from 'Storage/Passphrases';
+
const
findOpenPGPKey = (keys, query/*, sign*/) =>
keys.find(key =>
key.emails.includes(query) || query == key.id || query == key.fingerprint
),
- passphrases = new Map(),
decryptKey = async (privateKey, btnTxt = 'LABEL_SIGN') => {
if (privateKey.key.isDecrypted()) {
return privateKey.key;
}
const key = privateKey.id,
- pass = passphrases.has(key)
- ? {password:passphrases.get(key), remember:false}
+ pass = Passphrases.has(key)
+ ? {password:Passphrases.get(key), remember:false}
: await AskPopupView.password(
- 'OpenPGP.js key
' + privateKey.id + ' ' + privateKey.emails[0],
+ 'OpenPGP.js key
' + key + ' ' + privateKey.emails[0],
'OPENPGP/'+btnTxt
);
if (pass) {
@@ -36,7 +37,7 @@ const
privateKey: privateKey.key,
passphrase
});
- result && pass.remember && passphrases.set(key, passphrase);
+ result && pass.remember && Passphrases.set(key, passphrase);
return result;
}
},