diff options
author | Maximilian Krambach <[email protected]> | 2018-08-16 09:29:10 +0000 |
---|---|---|
committer | Maximilian Krambach <[email protected]> | 2018-08-16 09:29:10 +0000 |
commit | aeb065acc91a22b6548ebf0a558951ed26398214 (patch) | |
tree | 3cf0067dcace9266b94892a9fe818a61bcdb3c8f /lang/js | |
parent | js: consistently return uppercase fingerprint (diff) | |
download | gpgme-aeb065acc91a22b6548ebf0a558951ed26398214.tar.gz gpgme-aeb065acc91a22b6548ebf0a558951ed26398214.zip |
js: simplify getDefaultKey
--
* src/Keyring.js: In case no default Key is set in configuration,
only Keys reported as having a secret part should be considered
for default Keys, avoiding some extra requests.
Diffstat (limited to 'lang/js')
-rw-r--r-- | lang/js/src/Keyring.js | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js index d25216c6..c4b89b2e 100644 --- a/lang/js/src/Keyring.js +++ b/lang/js/src/Keyring.js @@ -192,17 +192,13 @@ export class GPGME_Keyring { reject(error); }); } else { - // TODO: this is overly 'expensive' in communication - // and probably performance, too - me.getKeys(null,true).then(function(keys){ - for (let i=0; i < keys.length; i++){ - if (keys[i].get('hasSecret') === true){ - resolve(keys[i]); - break; - } - if (i === keys.length -1){ - reject(gpgme_error('KEY_NO_DEFAULT')); - } + let msg = createMessage('keylist'); + msg.setParameter('secret', true); + msg.post().then(function(result){ + if (result.keys.length === 0){ + reject(gpgme_error('KEY_NO_DEFAULT')); + } else { + resolve(result.keys[0]); } }, function(error){ reject(error); |