diff options
author | Maximilian Krambach <[email protected]> | 2018-06-19 07:26:01 +0000 |
---|---|---|
committer | Maximilian Krambach <[email protected]> | 2018-06-19 07:26:01 +0000 |
commit | 780f7880c6598d4532354b348d7bd74026d162f4 (patch) | |
tree | 56ce4465927e76a7e0eb9bd0653973b11315c374 /lang/js/src/Key.js | |
parent | js: import result feedback (diff) | |
download | gpgme-780f7880c6598d4532354b348d7bd74026d162f4.tar.gz gpgme-780f7880c6598d4532354b348d7bd74026d162f4.zip |
js: getDefaultKey and GenerateKey improvements
--
* src/Keyring.js: added more options for key generation.
* src/Key.js: GetDefaultKey now relies on the info associated with the
key, as the approach of relying on a secret subkey did not work as
intended
* DemoExtension: Added a button for retrieval of the subkey, to test
this functionality.
Diffstat (limited to 'lang/js/src/Key.js')
-rw-r--r-- | lang/js/src/Key.js | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/lang/js/src/Key.js b/lang/js/src/Key.js index 3e4f1c78..88c2b92f 100644 --- a/lang/js/src/Key.js +++ b/lang/js/src/Key.js @@ -218,7 +218,6 @@ export class GPGME_Key { * * @async */ - // TODO: Does not work yet, result is always false getHasSecret(){ let me = this; return new Promise(function(resolve, reject) { @@ -230,31 +229,17 @@ export class GPGME_Key { msg.setParameter('secret', true); msg.post().then(function(result){ me._data.hasSecret = null; - if (result.keys === undefined || result.keys.length < 1) { + if ( + result.keys && + result.keys.length === 1 && + result.keys[0].secret === true + ) { + me._data.hasSecret = true; + resolve(true); + } else { me._data.hasSecret = false; resolve(false); } - else if (result.keys.length === 1){ - let key = result.keys[0]; - if (!key.subkeys){ - me._data.hasSecret = false; - resolve(false); - } else { - for (let i=0; i < key.subkeys.length; i++) { - if (key.subkeys[i].secret === true) { - me._data.hasSecret = true; - resolve(true); - break; - } - if (i === (key.subkeys.length -1)) { - me._data.hasSecret = false; - resolve(false); - } - } - } - } else { - reject(gpgme_error('CONN_UNEXPECTED_ANSWER')); - } }, function(error){ reject(error); }); |