MCPcopy Index your code
hub / github.com/mailvelope/mailvelope / getDefaultKey

Method getDefaultKey

src/modules/KeyringLocal.js:28–51  ·  view source on GitHub ↗

* Retrieve default key. If no default key set then take newest private key available. * @return {openpgp.key.Key}

()

Source from the content-addressed store, hash-verified

26 * @return {openpgp.key.Key}
27 */
28 async getDefaultKey() {
29 let defaultKey;
30 const defaultKeyFpr = await this.keystore.getDefaultKeyFpr();
31 if (defaultKeyFpr) {
32 defaultKey = this.keystore.privateKeys.getForId(defaultKeyFpr);
33 if (!(defaultKey && await this.validateDefaultKey(defaultKey))) {
34 // default key with this id does not exist or is invalid
35 await this.setDefaultKey(''); // clear default key
36 defaultKey = null;
37 }
38 }
39 if (!defaultKey) {
40 // get newest private key that is valid
41 for (const key of this.keystore.privateKeys.keys) {
42 if ((!defaultKey || defaultKey.keyPacket.created < key.keyPacket.created) && await this.validateDefaultKey(key)) {
43 defaultKey = key;
44 }
45 }
46 if (defaultKey) {
47 await this.setDefaultKey(defaultKey.getFingerprint());
48 }
49 }
50 return defaultKey ? defaultKey : null;
51 }
52
53 async getDefaultKeyFpr() {
54 const defaultKey = await this.getDefaultKey();

Callers 1

getDefaultKeyFprMethod · 0.95

Calls 4

getForIdMethod · 0.80
validateDefaultKeyMethod · 0.80
getDefaultKeyFprMethod · 0.45
setDefaultKeyMethod · 0.45

Tested by

no test coverage detected