diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js index 2b57e63f..0c64f337 100644 --- a/lang/js/src/Keyring.js +++ b/lang/js/src/Keyring.js @@ -49,7 +49,13 @@ export class GPGME_Keyring { * @static * @async */ - getKeys ({ pattern, prepare_sync = false, search = false }){ + getKeys ({ pattern, prepare_sync = false, search = false } = {}){ + if (typeof arguments[0] !== 'object') { + return Promise.reject(gpgme_error('PARAM_WRONG')); + } + if (arguments.length && typeof arguments[0] !== 'object') { + return Promise.reject(gpgme_error('PARAM_WRONG')); + } return new Promise(function (resolve, reject) { let msg = createMessage('keylist'); if (pattern) { @@ -387,7 +393,7 @@ export class GPGME_Keyring { * @return {Promise} * @async */ - generateKey ({ userId, algo = 'default', expires= 0, subkey_algo }){ + generateKey ({ userId, algo = 'default', expires= 0, subkey_algo } = {}){ if (typeof userId !== 'string' // eslint-disable-next-line no-use-before-define || (algo && supportedKeyAlgos.indexOf(algo) < 0 ) @@ -409,13 +415,14 @@ export class GPGME_Keyring { } msg.setParameter('expires', expires); msg.post().then(function (response){ - me.getKeys(response.fingerprint, true).then( - // TODO prepare_sync? - function (result){ - resolve(result); - }, function (error){ - reject(error); - }); + me.getKeys({ + pattern: response.fingerprint, + prepare_sync: true + }).then(function (result){ + resolve(result); + }, function (error){ + reject(error); + }); }, function (error) { reject(error); }); diff --git a/lang/js/src/gpgmejs.js b/lang/js/src/gpgmejs.js index b86b5f18..592b0a13 100644 --- a/lang/js/src/gpgmejs.js +++ b/lang/js/src/gpgmejs.js @@ -142,7 +142,10 @@ export class GpgME { * @async */ encrypt ({ data, publicKeys, secretKeys, base64 = false, armor = true, - wildcard, always_trust = true, additional = {} }){ + wildcard, always_trust = true, additional = {} } = {}){ + if (typeof arguments[0] !== 'object') { + return Promise.reject(gpgme_error('PARAM_WRONG')); + } if (!data || !publicKeys){ return Promise.reject(gpgme_error('MSG_INCOMPLETE')); } @@ -203,7 +206,10 @@ export class GpgME { * @returns {Promise} Decrypted Message and information * @async */ - decrypt ({ data, base64, expect }){ + decrypt ({ data, base64, expect } = {}){ + if (typeof arguments[0] !== 'object') { + return Promise.reject(gpgme_error('PARAM_WRONG')); + } if (!data){ return Promise.reject(gpgme_error('MSG_EMPTY')); } @@ -263,7 +269,10 @@ export class GpgME { * @returns {Promise} * @async */ - sign ({ data, keys, mode = 'clearsign', base64 }){ + sign ({ data, keys, mode = 'clearsign', base64 } = {}){ + if (typeof arguments[0] !== 'object') { + return Promise.reject(gpgme_error('PARAM_WRONG')); + } if (!data){ return Promise.reject(gpgme_error('MSG_EMPTY')); } @@ -310,7 +319,10 @@ export class GpgME { * @returns {Promise} *@async */ - verify ({ data, signature, base64 }){ + verify ({ data, signature, base64 } = {}){ + if (typeof arguments[0] !== 'object') { + return Promise.reject(gpgme_error('PARAM_WRONG')); + } if (!data){ return Promise.reject(gpgme_error('PARAM_WRONG')); } diff --git a/lang/js/unittests.js b/lang/js/unittests.js index 8f1ffb66..de06320e 100644 --- a/lang/js/unittests.js +++ b/lang/js/unittests.js @@ -287,13 +287,14 @@ function unittests (){ it('Querying non-existing Key from Keyring', function (done){ let keyring = new GPGME_Keyring; - keyring.getKeys(kp.invalidKeyFingerprint, true).then( - function (result){ - expect(result).to.be.an('array'); - expect(result.length).to.equal(0); - done(); - } - ); + keyring.getKeys({ + pattern: kp.invalidKeyFingerprint, + prepare_sync: true + }).then(function (result){ + expect(result).to.be.an('array'); + expect(result.length).to.equal(0); + done(); + }); }); });