aboutsummaryrefslogtreecommitdiffstats
path: root/lang/js
diff options
context:
space:
mode:
authorMaximilian Krambach <[email protected]>2018-08-16 09:29:10 +0000
committerMaximilian Krambach <[email protected]>2018-08-16 09:29:10 +0000
commitaeb065acc91a22b6548ebf0a558951ed26398214 (patch)
tree3cf0067dcace9266b94892a9fe818a61bcdb3c8f /lang/js
parentjs: consistently return uppercase fingerprint (diff)
downloadgpgme-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.js18
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);