aboutsummaryrefslogtreecommitdiffstats
path: root/lang/js/src/Keyring.js
diff options
context:
space:
mode:
Diffstat (limited to 'lang/js/src/Keyring.js')
-rw-r--r--lang/js/src/Keyring.js22
1 files changed, 15 insertions, 7 deletions
diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js
index c4b89b2e..9fdd53b9 100644
--- a/lang/js/src/Keyring.js
+++ b/lang/js/src/Keyring.js
@@ -176,12 +176,13 @@ export class GPGME_Keyring {
let msg = createMessage('config_opt');
msg.setParameter('component', 'gpg');
msg.setParameter('option', 'default-key');
- msg.post().then(function(response){
- if (response.value !== undefined
- && response.value.hasOwnProperty('string')
- && typeof(response.value.string) === 'string'
- ){
- me.getKeys(response.value.string,true).then(
+ msg.post().then(function(resp){
+ if (resp.option !== undefined
+ && resp.option.hasOwnProperty('value')
+ && resp.option.value.length === 1
+ && resp.option.value[0].hasOwnProperty('string')
+ && typeof(resp.option.value[0].string) === 'string'){
+ me.getKeys(resp.option.value[0].string, true).then(
function(keys){
if(keys.length === 1){
resolve(keys[0]);
@@ -198,7 +199,14 @@ export class GPGME_Keyring {
if (result.keys.length === 0){
reject(gpgme_error('KEY_NO_DEFAULT'));
} else {
- resolve(result.keys[0]);
+ for (let i=0; i< result.keys.length; i++ ) {
+ if (result.keys[i].get('invalid') === false) {
+ resolve(result.keys[i]);
+ break;
+ } else if (i === result.keys.length - 1){
+ reject(gpgme_error('KEY_NO_DEFAULT'));
+ }
+ }
}
}, function(error){
reject(error);