diff options
Diffstat (limited to 'lang/js/src/Keyring.js')
-rw-r--r-- | lang/js/src/Keyring.js | 80 |
1 files changed, 25 insertions, 55 deletions
diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js index d8fd8c81..59027088 100644 --- a/lang/js/src/Keyring.js +++ b/lang/js/src/Keyring.js @@ -35,7 +35,7 @@ export class GPGME_Keyring { /** * Queries Keys (all Keys or a subset) from gnupg. * - * @param {Object} options + * @param {Object} options: * @param {String | Array<String>} options.pattern (optional) A pattern to * search for in userIds or KeyIds. * @param {Boolean} options.prepare_sync (optional) if set to true, most @@ -49,24 +49,14 @@ export class GPGME_Keyring { * @static * @async */ - getKeys (options){ - if (options && typeof options !== 'object'){ - return Promise.reject(gpgme_error('PARAM_WRONG')); - } + getKeys ({ pattern, prepare_sync = false, search = false }){ return new Promise(function (resolve, reject) { let msg = createMessage('keylist'); - if (options && options.pattern) { - if ( - typeof options.pattern === 'string' - || Array.isArray(options.pattern) - ){ - msg.setParameter('keys', options.pattern); - } else { - reject(gpgme_error('PARAM_WRONG')); - } + if (pattern) { + msg.setParameter('keys', pattern); } msg.setParameter('sigs', true); - if (options && options.search === true){ + if (search === true){ msg.setParameter('locate', true); } msg.post().then(function (result){ @@ -75,11 +65,11 @@ export class GPGME_Keyring { resolve([]); } else { let secondrequest; - if (options && options.prepare_sync === true) { + if (prepare_sync === true) { secondrequest = function () { let msg2 = createMessage('keylist'); - if (options.pattern){ - msg2.setParameter('keys', options.pattern); + if (pattern){ + msg2.setParameter('keys', pattern); } msg2.setParameter('secret', true); return msg2.post(); @@ -91,7 +81,7 @@ export class GPGME_Keyring { } secondrequest().then(function (answer) { for (let i=0; i < result.keys.length; i++){ - if (options.prepare_sync === true){ + if (prepare_sync === true){ if (answer && answer.keys) { for (let j=0; j < answer.keys.length; j++ ){ @@ -111,7 +101,7 @@ export class GPGME_Keyring { } } let k = createKey(result.keys[i].fingerprint, - !options.prepare_sync, result.keys[i]); + !prepare_sync, result.keys[i]); resultset.push(k); } resolve(resultset); @@ -147,27 +137,19 @@ export class GPGME_Keyring { * @static * @async */ - getKeysArmored (options) { - if (options && typeof options !== 'object'){ - return Promise.reject(gpgme_error('PARAM_WRONG')); - } + getKeysArmored ({ pattern, with_secret_fpr }) { return new Promise(function (resolve, reject) { let msg = createMessage('export'); msg.setParameter('armor', true); - if (options.with_secret_fpr === true) { + if (with_secret_fpr === true) { msg.setParameter('with-sec-fprs', true); } - if (options.pattern){ - if ( - typeof options.pattern === 'string' - || Array.isArray(options.pattern) - ){ - msg.setParameter('keys', options.pattern); - } + if (pattern){ + msg.setParameter('keys', pattern); } msg.post().then(function (answer){ const result = { armored: answer.data }; - if (options.with_secret_fpr === true){ + if (with_secret_fpr === true){ if (answer.hasOwnProperty('sec-fprs')){ result.secret_fprs = answer['sec-fprs']; } else { @@ -404,39 +386,27 @@ export class GPGME_Keyring { * @return {Promise<Key|GPGME_Error>} * @async */ - generateKey (options){ - if (!options - || typeof options !== 'object' - || typeof options.userId !== 'string' + generateKey ({ userId, algo = 'default', expires= 0, subkey_algo }){ + if (typeof userId !== 'string' // eslint-disable-next-line no-use-before-define - || ( options.algo && supportedKeyAlgos.indexOf(options.algo) < 0 ) - || ( options.expires && !( - Number.isInteger(options.expires) || options.expires < 0 ) ) + || (algo && supportedKeyAlgos.indexOf(algo) < 0 ) + || (!Number.isInteger(expires) || expires < 0 ) ){ return Promise.reject(gpgme_error('PARAM_WRONG')); } // eslint-disable-next-line no-use-before-define - if (options.subkey_algo && supportedKeyAlgos.indexOf( - options.subkey_algo) < 0 - ){ + if (subkey_algo && supportedKeyAlgos.indexOf(subkey_algo) < 0){ return Promise.reject(gpgme_error('PARAM_WRONG')); } let me = this; return new Promise(function (resolve, reject){ let msg = createMessage('createkey'); - msg.setParameter('userid', options.userId); - if (!options.algo){ - options.algo === 'default'; - } - msg.setParameter('algo', options.algo); - if (options.subkey_algo) { - msg.setParameter('subkey-algo', options.subkey_algo ); - } - if (options.expires){ - msg.setParameter('expires', options.expires); - } else { - msg.setParameter('expires', 0); + msg.setParameter('userid', userId); + msg.setParameter('algo', algo); + if (subkey_algo) { + msg.setParameter('subkey-algo',subkey_algo ); } + msg.setParameter('expires', expires); msg.post().then(function (response){ me.getKeys(response.fingerprint, true).then( // TODO prepare_sync? |