aboutsummaryrefslogtreecommitdiffstats
path: root/lang/js/src/Key.js
diff options
context:
space:
mode:
authorMaximilian Krambach <[email protected]>2018-06-19 07:26:01 +0000
committerMaximilian Krambach <[email protected]>2018-06-19 07:26:01 +0000
commit780f7880c6598d4532354b348d7bd74026d162f4 (patch)
tree56ce4465927e76a7e0eb9bd0653973b11315c374 /lang/js/src/Key.js
parentjs: import result feedback (diff)
downloadgpgme-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.js31
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);
});