()
| 10 | |
| 11 | export default class KeyStoreGPG extends KeyStoreBase { |
| 12 | async load() { |
| 13 | let {armored, secret_fprs} = await gpgme.Keyring.getKeysArmored({with_secret_fpr: true}); |
| 14 | secret_fprs = secret_fprs.map(fpr => fpr.toLowerCase()); |
| 15 | let keys = []; |
| 16 | try { |
| 17 | keys = await readKeys({armoredKeys: armored}); |
| 18 | } catch (e) { |
| 19 | console.log('Error parsing armored GnuPG key:', e); |
| 20 | } |
| 21 | for (const key of keys) { |
| 22 | if (secret_fprs.includes(key.getFingerprint())) { |
| 23 | const privKey = new PrivateKeyGPG(key.toPacketList()); |
| 24 | this.privateKeys.push(privKey); |
| 25 | } else { |
| 26 | this.publicKeys.push(key); |
| 27 | } |
| 28 | } |
| 29 | try { |
| 30 | const defaultKey = await gpgme.Keyring.getDefaultKey(); |
| 31 | this.defaultKeyFpr = defaultKey.fingerprint.toLowerCase(); |
| 32 | } catch (e) { |
| 33 | this.defaultKeyFpr = ''; |
| 34 | } |
| 35 | } |
| 36 | |
| 37 | async store() { |
| 38 | throw new Error('GPGME keyring does not implement store method'); |
no test coverage detected