diff options
Diffstat (limited to '')
| -rw-r--r-- | lang/js/src/Connection.js | 40 | ||||
| -rw-r--r-- | lang/js/src/Errors.js | 8 | ||||
| -rw-r--r-- | lang/js/src/Helpers.js | 16 | ||||
| -rw-r--r-- | lang/js/src/Key.js | 243 | ||||
| -rw-r--r-- | lang/js/src/Keyring.js | 83 | ||||
| -rw-r--r-- | lang/js/src/Message.js | 32 | ||||
| -rw-r--r-- | lang/js/src/Signature.js | 23 | ||||
| -rw-r--r-- | lang/js/src/gpgmejs.js | 40 | ||||
| -rw-r--r-- | lang/js/src/index.js | 10 | ||||
| -rw-r--r-- | lang/js/src/permittedOperations.js | 12 | 
10 files changed, 257 insertions, 250 deletions
| diff --git a/lang/js/src/Connection.js b/lang/js/src/Connection.js index a60fd215..928ac681 100644 --- a/lang/js/src/Connection.js +++ b/lang/js/src/Connection.js @@ -38,14 +38,14 @@ import { decode } from './Helpers';   */  export class Connection{ -    constructor(){ +    constructor (){          this._connection = chrome.runtime.connectNative('gpgmejson');      }      /**       * Immediately closes an open port.       */ -    disconnect() { +    disconnect () {          if (this._connection){              this._connection.disconnect();              this._connection = null; @@ -81,17 +81,17 @@ export class Connection{              return this.post(msg);          } else {              let me = this; -            return new Promise(function(resolve) { +            return new Promise(function (resolve) {                  Promise.race([                      me.post(msg), -                    new Promise(function(resolve, reject){ -                        setTimeout(function(){ +                    new Promise(function (resolve, reject){ +                        setTimeout(function (){                              reject(gpgme_error('CONN_TIMEOUT'));                          }, 500);                      }) -                ]).then(function(){ // success +                ]).then(function (){ // success                      resolve(true); -                }, function(){ // failure +                }, function (){ // failure                      resolve(false);                  });              }); @@ -107,7 +107,7 @@ export class Connection{       * @returns {Promise<Object>} The collected answer       * @async       */ -    post(message){ +    post (message){          if (!message || !(message instanceof GPGME_Message)){              this.disconnect();              return Promise.reject(gpgme_error( @@ -119,9 +119,9 @@ export class Connection{          }          let chunksize = message.chunksize;          const me = this; -        return new Promise(function(resolve, reject){ +        return new Promise(function (resolve, reject){              let answer = new Answer(message); -            let listener = function(msg) { +            let listener = function (msg) {                  if (!msg){                      me._connection.onMessage.removeListener(listener);                      me._connection.disconnect(); @@ -157,16 +157,16 @@ export class Connection{              } else {                  return Promise.race([                      me._connection.postMessage(message.message), -                    function(resolve, reject){ -                        setTimeout(function(){ +                    function (resolve, reject){ +                        setTimeout(function (){                              me._connection.disconnect();                              reject(gpgme_error('CONN_TIMEOUT'));                          }, 5000);                      } -                ]).then(function(result){ +                ]).then(function (result){                      return result; -                }, function(reject){ -                    if(!(reject instanceof Error)) { +                }, function (reject){ +                    if (!(reject instanceof Error)) {                          me._connection.disconnect();                          return gpgme_error('GNUPG_ERROR', reject);                      } else { @@ -189,7 +189,7 @@ class Answer{      /**       * @param {GPGME_Message} message       */ -    constructor(message){ +    constructor (message){          this._operation = message.operation;          this._expected = message.expected;          this._response_b64 = null; @@ -211,7 +211,7 @@ class Answer{       * @private       */      collect (msg){ -        if (typeof(msg) !== 'object' || !msg.hasOwnProperty('response')) { +        if (typeof (msg) !== 'object' || !msg.hasOwnProperty('response')) {              return gpgme_error('CONN_UNEXPECTED_ANSWER');          }          if (!this._response_b64){ @@ -226,7 +226,7 @@ class Answer{       * Returns the base64 encoded answer data with the content verified       * against {@link permittedOperations}.       */ -    getMessage(){ +    getMessage (){          if (this._response_b64 === null){              return gpgme_error('CONN_UNEXPECTED_ANSWER');          } @@ -259,7 +259,7 @@ class Answer{                  if (!poa.data.hasOwnProperty(key)){                      return gpgme_error('CONN_UNEXPECTED_ANSWER');                  } -                if( typeof(_decodedResponse[key]) !== poa.data[key] ){ +                if ( typeof (_decodedResponse[key]) !== poa.data[key] ){                      return gpgme_error('CONN_UNEXPECTED_ANSWER');                  }                  if (_decodedResponse.base64 === true @@ -268,7 +268,7 @@ class Answer{                  ){                      _response[key] = decodeURIComponent(                          atob(_decodedResponse[key]).split('').map( -                            function(c) { +                            function (c) {                                  return '%' +                              ('00' + c.charCodeAt(0).toString(16)).slice(-2);                              }).join('')); diff --git a/lang/js/src/Errors.js b/lang/js/src/Errors.js index 2a35bc5e..53e7bcd7 100644 --- a/lang/js/src/Errors.js +++ b/lang/js/src/Errors.js @@ -120,7 +120,7 @@ const err_list = {   * @param {*} info Error message passed through if code is 'GNUPG_ERROR'   * @returns {GPGME_Error}   */ -export function gpgme_error(code = 'GENERIC_ERROR', info){ +export function gpgme_error (code = 'GENERIC_ERROR', info){      if (err_list.hasOwnProperty(code)){          if (err_list[code].type === 'error'){              return new GPGME_Error(code); @@ -147,9 +147,9 @@ export function gpgme_error(code = 'GENERIC_ERROR', info){   * @extends Error   */  class GPGME_Error extends Error{ -    constructor(code = 'GENERIC_ERROR', msg=''){ +    constructor (code = 'GENERIC_ERROR', msg=''){ -        if (code === 'GNUPG_ERROR' && typeof(msg) === 'string'){ +        if (code === 'GNUPG_ERROR' && typeof (msg) === 'string'){              super(msg);          } else if (err_list.hasOwnProperty(code)){              if (msg){ @@ -163,7 +163,7 @@ class GPGME_Error extends Error{          this._code = code;      } -    get code(){ +    get code (){          return this._code;      }  }
\ No newline at end of file diff --git a/lang/js/src/Helpers.js b/lang/js/src/Helpers.js index 379015f2..ba4277ab 100644 --- a/lang/js/src/Helpers.js +++ b/lang/js/src/Helpers.js @@ -30,7 +30,7 @@ import { gpgme_error } from './Errors';   * @param {Object | Array<Object> | String | Array<String>} input   * @returns {Array<String>} Array of fingerprints, or an empty array   */ -export function toKeyIdArray(input){ +export function toKeyIdArray (input){      if (!input){          return [];      } @@ -39,7 +39,7 @@ export function toKeyIdArray(input){      }      let result = [];      for (let i=0; i < input.length; i++){ -        if (typeof(input[i]) === 'string'){ +        if (typeof (input[i]) === 'string'){              if (isFingerprint(input[i]) === true){                  result.push(input[i]);              } else { @@ -47,7 +47,7 @@ export function toKeyIdArray(input){                  // in src/Errors.js                  gpgme_error('MSG_NOT_A_FPR');              } -        } else if (typeof(input[i]) === 'object'){ +        } else if (typeof (input[i]) === 'object'){              let fpr = '';              if (input[i].hasOwnProperty('fingerprint')){                  fpr = input[i].fingerprint; @@ -78,8 +78,8 @@ export function toKeyIdArray(input){   * @returns {Boolean} true if value passes test   * @private   */ -function hextest(key, len){ -    if (!key || typeof(key) !== 'string'){ +function hextest (key, len){ +    if (!key || typeof (key) !== 'string'){          return false;      }      if (key.length !== len){ @@ -95,7 +95,7 @@ function hextest(key, len){   * @param {String} value to check   * @returns {Boolean} true if value passes test   */ -export function isFingerprint(value){ +export function isFingerprint (value){      return hextest(value, 40);  } @@ -105,7 +105,7 @@ export function isFingerprint(value){   * @param {String} value to check   * @returns {Boolean} true if value passes test   */ -export function isLongId(value){ +export function isLongId (value){      return hextest(value, 16);  } @@ -113,7 +113,7 @@ export function isLongId(value){   * Recursively decodes input (utf8) to output (utf-16; javascript) strings   * @param {Object | Array | String} property   */ -export function decode(property){ +export function decode (property){      if (typeof property === 'string'){          return decodeURIComponent(escape(property));      } else if (Array.isArray(property)){ diff --git a/lang/js/src/Key.js b/lang/js/src/Key.js index 37ec7f9d..2800ae9a 100644 --- a/lang/js/src/Key.js +++ b/lang/js/src/Key.js @@ -35,8 +35,8 @@ import { createMessage } from './Message';   * a full object as delivered by gpgme-json   * @returns {Object|GPGME_Error} The verified and updated data   */ -export function createKey(fingerprint, async = false, data){ -    if (!isFingerprint(fingerprint) || typeof(async) !== 'boolean'){ +export function createKey (fingerprint, async = false, data){ +    if (!isFingerprint(fingerprint) || typeof (async) !== 'boolean'){          return gpgme_error('PARAM_WRONG');      }      if (data !== undefined){ @@ -60,14 +60,14 @@ export function createKey(fingerprint, async = false, data){   */  class GPGME_Key { -    constructor(fingerprint, async, data){ +    constructor (fingerprint, async, data){          /**           * @property {Boolean} If true, most answers will be asynchronous           */          this._async = async; -        this._data = {fingerprint: fingerprint.toUpperCase()}; +        this._data = { fingerprint: fingerprint.toUpperCase() };          if (data !== undefined              && data.fingerprint.toUpperCase() === this._data.fingerprint          ) { @@ -84,7 +84,7 @@ class GPGME_Key {       * async, the armored property is not available (it can still be       * retrieved asynchronously by {@link Key.getArmor})       */ -    get(property) { +    get (property) {          if (this._async === true) {              switch (property){              case 'armored': @@ -98,6 +98,7 @@ class GPGME_Key {              if (property === 'armored') {                  return gpgme_error('KEY_ASYNC_ONLY');              } +            // eslint-disable-next-line no-use-before-define              if (!validKeyProperties.hasOwnProperty(property)){                  return gpgme_error('PARAM_WRONG');              } else { @@ -114,16 +115,16 @@ class GPGME_Key {       * @returns {Promise<GPGME_Key|GPGME_Error>}       * @async       */ -    refreshKey() { +    refreshKey () {          let me = this; -        return new Promise(function(resolve, reject) { +        return new Promise(function (resolve, reject) {              if (!me._data.fingerprint){                  reject(gpgme_error('KEY_INVALID'));              }              let msg = createMessage('keylist');              msg.setParameter('sigs', true);              msg.setParameter('keys', me._data.fingerprint); -            msg.post().then(function(result){ +            msg.post().then(function (result){                  if (result.keys.length === 1){                      const newdata = validateKeyData(                          me._data.fingerprint, result.keys[0]); @@ -131,13 +132,13 @@ class GPGME_Key {                          reject(gpgme_error('KEY_INVALID'));                      } else {                          me._data = newdata; -                        me.getGnupgSecretState().then(function(){ -                            me.getArmor().then(function(){ +                        me.getGnupgSecretState().then(function (){ +                            me.getArmor().then(function (){                                  resolve(me); -                            }, function(error){ +                            }, function (error){                                  reject(error);                              }); -                        }, function(error){ +                        }, function (error){                              reject(error);                          });                      } @@ -157,18 +158,18 @@ class GPGME_Key {       * @returns {Promise<String|GPGME_Error>}       * @async       */ -    getArmor() { +    getArmor () {          const me = this; -        return new Promise(function(resolve, reject) { +        return new Promise(function (resolve, reject) {              if (!me._data.fingerprint){                  reject(gpgme_error('KEY_INVALID'));              }              let msg = createMessage('export');              msg.setParameter('armor', true);              msg.setParameter('keys', me._data.fingerprint); -            msg.post().then(function(result){ +            msg.post().then(function (result){                  resolve(result.data); -            }, function(error){ +            }, function (error){                  reject(error);              });          }); @@ -186,14 +187,14 @@ class GPGME_Key {       */      getGnupgSecretState (){          const me = this; -        return new Promise(function(resolve, reject) { +        return new Promise(function (resolve, reject) {              if (!me._data.fingerprint){                  reject(gpgme_error('KEY_INVALID'));              } else {                  let msg = createMessage('keylist');                  msg.setParameter('keys', me._data.fingerprint);                  msg.setParameter('secret', true); -                msg.post().then(function(result){ +                msg.post().then(function (result){                      me._data.hasSecret = null;                      if (                          result.keys && @@ -206,7 +207,7 @@ class GPGME_Key {                          me._data.hasSecret = false;                          resolve(false);                      } -                }, function(error){ +                }, function (error){                      reject(error);                  });              } @@ -219,17 +220,17 @@ class GPGME_Key {       * @returns {Promise<Boolean|GPGME_Error>} Success if key was deleted,       * rejects with a GPG error otherwise.       */ -    delete(){ +    delete (){          const me = this; -        return new Promise(function(resolve, reject){ +        return new Promise(function (resolve, reject){              if (!me._data.fingerprint){                  reject(gpgme_error('KEY_INVALID'));              }              let msg = createMessage('delete');              msg.setParameter('key', me._data.fingerprint); -            msg.post().then(function(result){ +            msg.post().then(function (result){                  resolve(result.success); -            }, function(error){ +            }, function (error){                  reject(error);              });          }); @@ -238,7 +239,7 @@ class GPGME_Key {      /**       * @returns {String} The fingerprint defining this Key. Convenience getter       */ -    get fingerprint(){ +    get fingerprint (){          return this._data.fingerprint;      }  } @@ -255,7 +256,7 @@ class GPGME_Subkey {       * @param {Object} data       * @private       */ -    constructor(data){ +    constructor (data){          this._data = {};          let keys = Object.keys(data);          const me = this; @@ -268,7 +269,9 @@ class GPGME_Subkey {           * @param private           */          const setProperty = function (property, value){ +            // eslint-disable-next-line no-use-before-define              if (validSubKeyProperties.hasOwnProperty(property)){ +                // eslint-disable-next-line no-use-before-define                  if (validSubKeyProperties[property](value) === true) {                      if (property === 'timestamp' || property === 'expires'){                          me._data[property] = new Date(value * 1000); @@ -288,7 +291,7 @@ class GPGME_Subkey {       * @param {String} property Information to request       * @returns {String | Number | Date}       */ -    get(property) { +    get (property) {          if (this._data.hasOwnProperty(property)){              return (this._data[property]);          } @@ -308,12 +311,14 @@ class GPGME_UserId {       * @param {Object} data       * @private       */ -    constructor(data){ +    constructor (data){          this._data = {};          const me = this;          let keys = Object.keys(data); -        const setProperty = function(property, value){ +        const setProperty = function (property, value){ +            // eslint-disable-next-line no-use-before-define              if (validUserIdProperties.hasOwnProperty(property)){ +                // eslint-disable-next-line no-use-before-define                  if (validUserIdProperties[property](value) === true) {                      if (property === 'last_update'){                          me._data[property] = new Date(value*1000); @@ -333,7 +338,7 @@ class GPGME_UserId {       * @param {String} property Information to request       * @returns {String | Number}       */ -    get(property) { +    get (property) {          if (this._data.hasOwnProperty(property)){              return (this._data[property]);          } @@ -349,52 +354,52 @@ class GPGME_UserId {   * @const   */  const validUserIdProperties = { -    'revoked': function(value){ -        return typeof(value) === 'boolean'; +    'revoked': function (value){ +        return typeof (value) === 'boolean';      }, -    'invalid':  function(value){ -        return typeof(value) === 'boolean'; +    'invalid':  function (value){ +        return typeof (value) === 'boolean';      }, -    'uid': function(value){ -        if (typeof(value) === 'string' || value === ''){ +    'uid': function (value){ +        if (typeof (value) === 'string' || value === ''){              return true;          }          return false;      }, -    'validity': function(value){ -        if (typeof(value) === 'string'){ +    'validity': function (value){ +        if (typeof (value) === 'string'){              return true;          }          return false;      }, -    'name': function(value){ -        if (typeof(value) === 'string' || value === ''){ +    'name': function (value){ +        if (typeof (value) === 'string' || value === ''){              return true;          }          return false;      }, -    'email': function(value){ -        if (typeof(value) === 'string' || value === ''){ +    'email': function (value){ +        if (typeof (value) === 'string' || value === ''){              return true;          }          return false;      }, -    'address': function(value){ -        if (typeof(value) === 'string' || value === ''){ +    'address': function (value){ +        if (typeof (value) === 'string' || value === ''){              return true;          }          return false;      }, -    'comment': function(value){ -        if (typeof(value) === 'string' || value === ''){ +    'comment': function (value){ +        if (typeof (value) === 'string' || value === ''){              return true;          }          return false;      }, -    'origin':  function(value){ +    'origin':  function (value){          return Number.isInteger(value);      }, -    'last_update':  function(value){ +    'last_update':  function (value){          return Number.isInteger(value);      }  }; @@ -406,54 +411,54 @@ const validUserIdProperties = {   * @const   */  const validSubKeyProperties = { -    'invalid': function(value){ -        return typeof(value) === 'boolean'; +    'invalid': function (value){ +        return typeof (value) === 'boolean';      }, -    'can_encrypt': function(value){ -        return typeof(value) === 'boolean'; +    'can_encrypt': function (value){ +        return typeof (value) === 'boolean';      }, -    'can_sign': function(value){ -        return typeof(value) === 'boolean'; +    'can_sign': function (value){ +        return typeof (value) === 'boolean';      }, -    'can_certify':  function(value){ -        return typeof(value) === 'boolean'; +    'can_certify':  function (value){ +        return typeof (value) === 'boolean';      }, -    'can_authenticate':  function(value){ -        return typeof(value) === 'boolean'; +    'can_authenticate':  function (value){ +        return typeof (value) === 'boolean';      }, -    'secret': function(value){ -        return typeof(value) === 'boolean'; +    'secret': function (value){ +        return typeof (value) === 'boolean';      }, -    'is_qualified': function(value){ -        return typeof(value) === 'boolean'; +    'is_qualified': function (value){ +        return typeof (value) === 'boolean';      }, -    'is_cardkey':  function(value){ -        return typeof(value) === 'boolean'; +    'is_cardkey':  function (value){ +        return typeof (value) === 'boolean';      }, -    'is_de_vs':  function(value){ -        return typeof(value) === 'boolean'; +    'is_de_vs':  function (value){ +        return typeof (value) === 'boolean';      }, -    'pubkey_algo_name': function(value){ -        return typeof(value) === 'string'; +    'pubkey_algo_name': function (value){ +        return typeof (value) === 'string';          // TODO: check against list of known?['']      }, -    'pubkey_algo_string': function(value){ -        return typeof(value) === 'string'; +    'pubkey_algo_string': function (value){ +        return typeof (value) === 'string';          // TODO: check against list of known?['']      }, -    'keyid': function(value){ +    'keyid': function (value){          return isLongId(value);      }, -    'pubkey_algo': function(value) { +    'pubkey_algo': function (value) {          return (Number.isInteger(value) && value >= 0);      }, -    'length': function(value){ +    'length': function (value){          return (Number.isInteger(value) && value > 0);      }, -    'timestamp': function(value){ +    'timestamp': function (value){          return (Number.isInteger(value) && value > 0);      }, -    'expires': function(value){ +    'expires': function (value){          return (Number.isInteger(value) && value > 0);      }  }; @@ -489,73 +494,73 @@ const validSubKeyProperties = {   * @const   */  const validKeyProperties = { -    'fingerprint': function(value){ +    'fingerprint': function (value){          return isFingerprint(value);      }, -    'revoked': function(value){ -        return typeof(value) === 'boolean'; +    'revoked': function (value){ +        return typeof (value) === 'boolean';      }, -    'expired': function(value){ -        return typeof(value) === 'boolean'; +    'expired': function (value){ +        return typeof (value) === 'boolean';      }, -    'disabled': function(value){ -        return typeof(value) === 'boolean'; +    'disabled': function (value){ +        return typeof (value) === 'boolean';      }, -    'invalid': function(value){ -        return typeof(value) === 'boolean'; +    'invalid': function (value){ +        return typeof (value) === 'boolean';      }, -    'can_encrypt': function(value){ -        return typeof(value) === 'boolean'; +    'can_encrypt': function (value){ +        return typeof (value) === 'boolean';      }, -    'can_sign': function(value){ -        return typeof(value) === 'boolean'; +    'can_sign': function (value){ +        return typeof (value) === 'boolean';      }, -    'can_certify': function(value){ -        return typeof(value) === 'boolean'; +    'can_certify': function (value){ +        return typeof (value) === 'boolean';      }, -    'can_authenticate': function(value){ -        return typeof(value) === 'boolean'; +    'can_authenticate': function (value){ +        return typeof (value) === 'boolean';      }, -    'secret': function(value){ -        return typeof(value) === 'boolean'; +    'secret': function (value){ +        return typeof (value) === 'boolean';      }, -    'is_qualified': function(value){ -        return typeof(value) === 'boolean'; +    'is_qualified': function (value){ +        return typeof (value) === 'boolean';      }, -    'protocol': function(value){ -        return typeof(value) === 'string'; -        //TODO check for implemented ones +    'protocol': function (value){ +        return typeof (value) === 'string'; +        // TODO check for implemented ones      }, -    'issuer_serial': function(value){ -        return typeof(value) === 'string'; +    'issuer_serial': function (value){ +        return typeof (value) === 'string';      }, -    'issuer_name': function(value){ -        return typeof(value) === 'string'; +    'issuer_name': function (value){ +        return typeof (value) === 'string';      }, -    'chain_id': function(value){ -        return typeof(value) === 'string'; +    'chain_id': function (value){ +        return typeof (value) === 'string';      }, -    'owner_trust': function(value){ -        return typeof(value) === 'string'; +    'owner_trust': function (value){ +        return typeof (value) === 'string';      }, -    'last_update': function(value){ +    'last_update': function (value){          return (Number.isInteger(value)); -        //TODO undefined/null possible? +        // TODO undefined/null possible?      }, -    'origin': function(value){ +    'origin': function (value){          return (Number.isInteger(value));      }, -    'subkeys': function(value){ +    'subkeys': function (value){          return (Array.isArray(value));      }, -    'userids': function(value){ +    'userids': function (value){          return (Array.isArray(value));      }, -    'tofu': function(value){ +    'tofu': function (value){          return (Array.isArray(value));      }, -    'hasSecret': function(value){ -        return typeof(value) === 'boolean'; +    'hasSecret': function (value){ +        return typeof (value) === 'boolean';      }  }; @@ -570,9 +575,9 @@ const validKeyProperties = {  * an error if something went wrong.  * @private  */ -function validateKeyData(fingerprint, data){ +function validateKeyData (fingerprint, data){      const key = {}; -    if (!fingerprint || typeof(data) !== 'object' || !data.fingerprint +    if (!fingerprint || typeof (data) !== 'object' || !data.fingerprint       || fingerprint !== data.fingerprint.toUpperCase()      ){          return gpgme_error('KEY_INVALID'); @@ -619,13 +624,13 @@ function validateKeyData(fingerprint, data){   * @async   */  function getGnupgState (fingerprint, property){ -    return new Promise(function(resolve, reject) { +    return new Promise(function (resolve, reject) {          if (!isFingerprint(fingerprint)) {              reject(gpgme_error('KEY_INVALID'));          } else {              let msg = createMessage('keylist');              msg.setParameter('keys', fingerprint); -            msg.post().then(function(res){ +            msg.post().then(function (res){                  if (!res.keys || res.keys.length !== 1){                      reject(gpgme_error('KEY_INVALID'));                  } else { @@ -675,7 +680,7 @@ function getGnupgState (fingerprint, property){                          break;                      }                  } -            }, function(error){ +            }, function (error){                  reject(gpgme_error(error));              });          } diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js index de21736e..90d267db 100644 --- a/lang/js/src/Keyring.js +++ b/lang/js/src/Keyring.js @@ -22,8 +22,8 @@   */ -import {createMessage} from './Message'; -import {createKey} from './Key'; +import { createMessage } from './Message'; +import { createKey } from './Key';  import { isFingerprint } from './Helpers';  import { gpgme_error } from './Errors'; @@ -31,8 +31,6 @@ import { gpgme_error } from './Errors';   * This class offers access to the gnupg keyring   */  export class GPGME_Keyring { -    constructor(){ -    }      /**       * Queries Keys (all Keys or a subset) from gnupg. @@ -51,7 +49,7 @@ export class GPGME_Keyring {       * @async       */      getKeys (pattern, prepare_sync=false, search=false){ -        return new Promise(function(resolve, reject) { +        return new Promise(function (resolve, reject) {              let msg = createMessage('keylist');              if (pattern !== undefined && pattern !== null){                  msg.setParameter('keys', pattern); @@ -60,25 +58,25 @@ export class GPGME_Keyring {              if (search === true){                  msg.setParameter('locate', true);              } -            msg.post().then(function(result){ +            msg.post().then(function (result){                  let resultset = [];                  if (result.keys.length === 0){                      resolve([]);                  } else {                      let secondrequest;                      if (prepare_sync === true) { -                        secondrequest = function() { +                        secondrequest = function () {                              let msg2 = createMessage('keylist');                              msg2.setParameter('keys', pattern);                              msg2.setParameter('secret', true);                              return msg2.post();                          };                      } else { -                        secondrequest = function() { +                        secondrequest = function () {                              return Promise.resolve(true);                          };                      } -                    secondrequest().then(function(answer) { +                    secondrequest().then(function (answer) {                          for (let i=0; i < result.keys.length; i++){                              if (prepare_sync === true){                                  if (answer && answer.keys) { @@ -104,7 +102,7 @@ export class GPGME_Keyring {                              resultset.push(k);                          }                          resolve(resultset); -                    }, function(error){ +                    }, function (error){                          reject(error);                      });                  } @@ -136,7 +134,7 @@ export class GPGME_Keyring {       * @async       */      getKeysArmored (pattern, with_secret_fpr) { -        return new Promise(function(resolve, reject) { +        return new Promise(function (resolve, reject) {              let msg = createMessage('export');              msg.setParameter('armor', true);              if (with_secret_fpr === true) { @@ -145,15 +143,15 @@ export class GPGME_Keyring {              if (pattern !== undefined && pattern !== null){                  msg.setParameter('keys', pattern);              } -            msg.post().then(function(answer){ -                const result = {armored: answer.data}; +            msg.post().then(function (answer){ +                const result = { armored: answer.data };                  if (with_secret_fpr === true                      && answer.hasOwnProperty('sec-fprs')                  ) {                      result.secret_fprs = answer['sec-fprs'];                  }                  resolve(result); -            }, function(error){ +            }, function (error){                  reject(error);              });          }); @@ -169,32 +167,32 @@ export class GPGME_Keyring {       * @async       * @static       */ -    getDefaultKey(prepare_sync = false) { +    getDefaultKey (prepare_sync = false) {          let me = this; -        return new Promise(function(resolve, reject){ +        return new Promise(function (resolve, reject){              let msg = createMessage('config_opt');              msg.setParameter('component', 'gpg');              msg.setParameter('option', 'default-key'); -            msg.post().then(function(resp){ +            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'){ +                    && typeof (resp.option.value[0].string) === 'string'){                      me.getKeys(resp.option.value[0].string, true).then( -                        function(keys){ -                            if(keys.length === 1){ +                        function (keys){ +                            if (keys.length === 1){                                  resolve(keys[0]);                              } else {                                  reject(gpgme_error('KEY_NO_DEFAULT'));                              } -                        }, function(error){ +                        }, function (error){                              reject(error);                          });                  } else {                      let msg = createMessage('keylist');                      msg.setParameter('secret', true); -                    msg.post().then(function(result){ +                    msg.post().then(function (result){                          if (result.keys.length === 0){                              reject(gpgme_error('KEY_NO_DEFAULT'));                          } else { @@ -211,11 +209,11 @@ export class GPGME_Keyring {                                  }                              }                          } -                    }, function(error){ +                    }, function (error){                          reject(error);                      });                  } -            }, function(error){ +            }, function (error){                  reject(error);              });          }); @@ -264,14 +262,14 @@ export class GPGME_Keyring {              'new_signatures', 'new_revocations', 'secret_read',              'secret_imported', 'secret_unchanged', 'skipped_new_keys',              'not_imported', 'skipped_v3_keys']; -        if (!armored || typeof(armored) !== 'string'){ +        if (!armored || typeof (armored) !== 'string'){              return Promise.reject(gpgme_error('PARAM_WRONG'));          }          let me = this; -        return new Promise(function(resolve, reject){ +        return new Promise(function (resolve, reject){              let msg = createMessage('import');              msg.setParameter('data', armored); -            msg.post().then(function(response){ +            msg.post().then(function (response){                  let infos = {};                  let fprs = [];                  let summary = {}; @@ -282,7 +280,7 @@ export class GPGME_Keyring {                  if (!response.result.hasOwnProperty('imports') ||                      response.result.imports.length === 0                  ){ -                    resolve({Keys:[],summary: summary}); +                    resolve({ Keys:[],summary: summary });                      return;                  }                  for (let res=0; res<response.result.imports.length; res++){ @@ -299,7 +297,7 @@ export class GPGME_Keyring {                      changes.userId = (result.status & 2) === 2;                      changes.signature = (result.status & 4) === 4;                      changes.subkey = (result.status & 8) === 8; -                    //16 new secret key: not implemented +                    // 16 new secret key: not implemented                      fprs.push(result.fingerprint);                      infos[result.fingerprint] = { @@ -309,7 +307,7 @@ export class GPGME_Keyring {                  }                  let resultset = [];                  if (prepare_sync === true){ -                    me.getKeys(fprs, true).then(function(result){ +                    me.getKeys(fprs, true).then(function (result){                          for (let i=0; i < result.length; i++) {                              resultset.push({                                  key: result[i], @@ -318,8 +316,8 @@ export class GPGME_Keyring {                                  status: infos[result[i].fingerprint].status                              });                          } -                        resolve({Keys:resultset,summary: summary}); -                    }, function(error){ +                        resolve({ Keys:resultset,summary: summary }); +                    }, function (error){                          reject(error);                      });                  } else { @@ -330,10 +328,10 @@ export class GPGME_Keyring {                              status: infos[fprs[i]].status                          });                      } -                    resolve({Keys:resultset,summary:summary}); +                    resolve({ Keys:resultset,summary:summary });                  } -            }, function(error){ +            }, function (error){                  reject(error);              }); @@ -351,7 +349,7 @@ export class GPGME_Keyring {       * @async       * @static       */ -    deleteKey(fingerprint){ +    deleteKey (fingerprint){          if (isFingerprint(fingerprint) === true) {              let key = createKey(fingerprint);              return key.delete(); @@ -375,16 +373,17 @@ export class GPGME_Keyring {       * @return {Promise<Key|GPGME_Error>}       * @async       */ -    generateKey(userId, algo = 'default', expires){ +    generateKey (userId, algo = 'default', expires){          if ( -            typeof(userId) !== 'string' || +            typeof (userId) !== 'string' || +            // eslint-disable-next-line no-use-before-define              supportedKeyAlgos.indexOf(algo) < 0 ||              (expires && !(expires instanceof Date))          ){              return Promise.reject(gpgme_error('PARAM_WRONG'));          }          let me = this; -        return new Promise(function(resolve, reject){ +        return new Promise(function (resolve, reject){              let msg = createMessage('createkey');              msg.setParameter('userid', userId);              msg.setParameter('algo', algo ); @@ -394,15 +393,15 @@ export class GPGME_Keyring {              } else {                  msg.setParameter('expires', 0);              } -            msg.post().then(function(response){ +            msg.post().then(function (response){                  me.getKeys(response.fingerprint, true).then(                      // TODO prepare_sync? -                    function(result){ +                    function (result){                          resolve(result); -                    }, function(error){ +                    }, function (error){                          reject(error);                      }); -            }, function(error) { +            }, function (error) {                  reject(error);              });          }); diff --git a/lang/js/src/Message.js b/lang/js/src/Message.js index 2134fe99..1ba2b658 100644 --- a/lang/js/src/Message.js +++ b/lang/js/src/Message.js @@ -31,8 +31,8 @@ import { Connection } from './Connection';   * @param {String} operation   * @returns {GPGME_Message|GPGME_Error} The Message object   */ -export function createMessage(operation){ -    if (typeof(operation) !== 'string'){ +export function createMessage (operation){ +    if (typeof (operation) !== 'string'){          return gpgme_error('PARAM_WRONG');      }      if (permittedOperations.hasOwnProperty(operation)){ @@ -51,7 +51,7 @@ export function createMessage(operation){   */  export class GPGME_Message { -    constructor(operation){ +    constructor (operation){          this._msg = {              op: operation,              chunksize: 1023* 1024 @@ -59,7 +59,7 @@ export class GPGME_Message {          this._expected = null;      } -    get operation(){ +    get operation (){          return this._msg.op;      } @@ -69,7 +69,7 @@ export class GPGME_Message {          }      } -    get expected() { +    get expected () {          return this._expected;      }      /** @@ -81,7 +81,7 @@ export class GPGME_Message {       * will not encounter problems, larger messages will be received in       * chunks. If the value is not explicitly specified, 1023 KB is used.       */ -    set chunksize(value){ +    set chunksize (value){          if (              Number.isInteger(value) &&              value > 10 * 1024 && @@ -91,7 +91,7 @@ export class GPGME_Message {          }      } -    get chunksize(){ +    get chunksize (){          return this._msg.chunksize;      } @@ -100,7 +100,7 @@ export class GPGME_Message {       * @returns {Object|null} Object to be posted to gnupg, or null if       * incomplete       */ -    get message() { +    get message () {          if (this.isComplete() === true){              return this._msg;          } else { @@ -116,7 +116,7 @@ export class GPGME_Message {       * @returns {Boolean} If the parameter was set successfully       */      setParameter ( param,value ){ -        if (!param || typeof(param) !== 'string'){ +        if (!param || typeof (param) !== 'string'){              return gpgme_error('PARAM_WRONG');          }          let po = permittedOperations[this._msg.op]; @@ -132,10 +132,10 @@ export class GPGME_Message {              return gpgme_error('PARAM_WRONG');          }          // check incoming value for correctness -        let checktype = function(val){ -            switch(typeof(val)){ +        let checktype = function (val){ +            switch (typeof (val)){              case 'string': -                if (poparam.allowed.indexOf(typeof(val)) >= 0 +                if (poparam.allowed.indexOf(typeof (val)) >= 0                          && val.length > 0) {                      return true;                  } @@ -199,7 +199,7 @@ export class GPGME_Message {       * all 'required' parameters according to {@link permittedOperations}.       * @returns {Boolean} true if message is complete.       */ -    isComplete(){ +    isComplete (){          if (!this._msg.op){              return false;          } @@ -220,13 +220,13 @@ export class GPGME_Message {       */      post (){          let me = this; -        return new Promise(function(resolve, reject) { +        return new Promise(function (resolve, reject) {              if (me.isComplete() === true) {                  let conn  = new Connection; -                conn.post(me).then(function(response) { +                conn.post(me).then(function (response) {                      resolve(response); -                }, function(reason) { +                }, function (reason) {                      reject(reason);                  });              } diff --git a/lang/js/src/Signature.js b/lang/js/src/Signature.js index 65365772..a6539048 100644 --- a/lang/js/src/Signature.js +++ b/lang/js/src/Signature.js @@ -30,25 +30,27 @@ import { gpgme_error } from './Errors';   * {@link expNote}.   * @returns {GPGME_Signature|GPGME_Error} Signature Object   */ -export function createSignature(sigObject){ +export function createSignature (sigObject){      if ( -        typeof(sigObject) !=='object' || +        typeof (sigObject) !=='object' ||          !sigObject.hasOwnProperty('summary') ||          !sigObject.hasOwnProperty('fingerprint') ||          !sigObject.hasOwnProperty('timestamp') -        //TODO check if timestamp is mandatory in specification +        // TODO check if timestamp is mandatory in specification      ){          return gpgme_error('SIG_WRONG');      }      let keys = Object.keys(sigObject);      for (let i=0; i< keys.length; i++){ -        if ( typeof(sigObject[keys[i]]) !== expKeys[keys[i]] ){ +        // eslint-disable-next-line no-use-before-define +        if ( typeof (sigObject[keys[i]]) !== expKeys[keys[i]] ){              return gpgme_error('SIG_WRONG');          }      }      let sumkeys = Object.keys(sigObject.summary);      for (let i=0; i< sumkeys.length; i++){ -        if ( typeof(sigObject.summary[sumkeys[i]]) !== expSum[sumkeys[i]] ){ +        // eslint-disable-next-line no-use-before-define +        if ( typeof (sigObject.summary[sumkeys[i]]) !== expSum[sumkeys[i]] ){              return gpgme_error('SIG_WRONG');          }      } @@ -60,7 +62,8 @@ export function createSignature(sigObject){              let notation = sigObject.notations[i];              let notekeys = Object.keys(notation);              for (let j=0; j < notekeys.length; j++){ -                if ( typeof(notation[notekeys[j]]) !== expNote[notekeys[j]] ){ +                // eslint-disable-next-line no-use-before-define +                if ( typeof (notation[notekeys[j]]) !== expNote[notekeys[j]] ){                      return gpgme_error('SIG_WRONG');                  }              } @@ -81,10 +84,10 @@ export function createSignature(sigObject){   */  class GPGME_Signature { -    constructor(sigObject){ +    constructor (sigObject){          this._rawSigObject = sigObject;      } -    get fingerprint(){ +    get fingerprint (){          if (!this._rawSigObject.fingerprint){              return gpgme_error('SIG_WRONG');          } else { @@ -97,7 +100,7 @@ class GPGME_Signature {       * signature does not expire       * @returns {Date | null}       */ -    get expiration(){ +    get expiration (){          if (!this._rawSigObject.exp_timestamp){              return null;          } @@ -130,7 +133,7 @@ class GPGME_Signature {       * for details on the values.       * @returns {Object} Object with boolean properties       */ -    get errorDetails(){ +    get errorDetails (){          let properties = ['revoked', 'key-expired', 'sig-expired',              'key-missing', 'crl-missing', 'crl-too-old', 'bad-policy',              'sys-error']; diff --git a/lang/js/src/gpgmejs.js b/lang/js/src/gpgmejs.js index 4aa51759..9a0925b0 100644 --- a/lang/js/src/gpgmejs.js +++ b/lang/js/src/gpgmejs.js @@ -84,7 +84,7 @@ import { createSignature } from './Signature';   */  export class GpgME { -    constructor(){ +    constructor (){          this._Keyring = null;      } @@ -92,7 +92,7 @@ export class GpgME {       * setter for {@link setKeyring}.       * @param {GPGME_Keyring} keyring A Keyring to use       */ -    set Keyring(keyring){ +    set Keyring (keyring){          if (keyring && keyring instanceof GPGME_Keyring){              this._Keyring = keyring;          } @@ -100,7 +100,7 @@ export class GpgME {      /**       * Accesses the {@link GPGME_Keyring}.       */ -    get Keyring(){ +    get Keyring (){          if (!this._Keyring){              this._Keyring = new GPGME_Keyring;          } @@ -188,9 +188,9 @@ export class GpgME {          if (base64 === true){              msg.setParameter('base64', true);          } -        return new Promise(function(resolve, reject){ -            msg.post().then(function(result){ -                let _result = {data: result.data}; +        return new Promise(function (resolve, reject){ +            msg.post().then(function (result){ +                let _result = { data: result.data };                  _result.base64 = result.base64 ? true: false;                  _result.is_mime = result.is_mime ? true: false;                  if (result.file_name){ @@ -206,7 +206,7 @@ export class GpgME {                          result.signatures);                  }                  resolve(_result); -            }, function(error){ +            }, function (error){                  reject(error);              });          }); @@ -240,14 +240,14 @@ export class GpgME {          }          msg.setParameter('mode', mode);          putData(msg, data); -        return new Promise(function(resolve,reject) { +        return new Promise(function (resolve,reject) {              if (mode ==='detached'){                  msg.expected ='base64';              } -            msg.post().then( function(message) { +            msg.post().then( function (message) {                  if (mode === 'clearsign'){                      resolve({ -                        data: message.data} +                        data: message.data }                      );                  } else if (mode === 'detached') {                      resolve({ @@ -255,7 +255,7 @@ export class GpgME {                          signature: message.data                      });                  } -            }, function(error){ +            }, function (error){                  reject(error);              });          }); @@ -278,7 +278,7 @@ export class GpgME {              return Promise.reject(dt);          }          if (signature){ -            if (typeof(signature)!== 'string'){ +            if (typeof (signature)!== 'string'){                  return Promise.reject(gpgme_error('PARAM_WRONG'));              } else {                  msg.setParameter('signature', signature); @@ -287,7 +287,7 @@ export class GpgME {          if (base64 === true){              msg.setParameter('base64', true);          } -        return new Promise(function(resolve, reject){ +        return new Promise(function (resolve, reject){              msg.post().then(function (message){                  if (!message.info || !message.info.signatures){                      reject(gpgme_error('SIG_NO_SIGS')); @@ -301,7 +301,7 @@ export class GpgME {                      _result.data = message.data;                      resolve(_result);                  } -            }, function(error){ +            }, function (error){                  reject(error);              });          }); @@ -316,20 +316,20 @@ export class GpgME {   * @returns {undefined| GPGME_Error} Error if not successful, nothing otherwise   * @private   */ -function putData(message, data){ +function putData (message, data){      if (!message || !(message instanceof GPGME_Message)) {          return gpgme_error('PARAM_WRONG');      }      if (!data){          return gpgme_error('PARAM_WRONG'); -    } else if (typeof(data) === 'string') { +    } else if (typeof (data) === 'string') {          message.setParameter('data', data);      } else if ( -        typeof(data) === 'object' && -        typeof(data.getText) === 'function' +        typeof (data) === 'object' && +        typeof (data.getText) === 'function'      ){          let txt = data.getText(); -        if (typeof(txt) === 'string'){ +        if (typeof (txt) === 'string'){              message.setParameter('data', txt);          } else {              return gpgme_error('PARAM_WRONG'); @@ -345,7 +345,7 @@ function putData(message, data){   * @param {Array<Object>} sigs   * @returns {signatureDetails} Details about the signatures   */ -function collectSignatures(sigs){ +function collectSignatures (sigs){      if (!Array.isArray(sigs)){          return gpgme_error('SIG_NO_SIGS');      } diff --git a/lang/js/src/index.js b/lang/js/src/index.js index ad4b05b0..cf6e2d03 100644 --- a/lang/js/src/index.js +++ b/lang/js/src/index.js @@ -32,21 +32,21 @@ import { Connection } from './Connection';   *   * @async   */ -function init(){ -    return new Promise(function(resolve, reject){ +function init (){ +    return new Promise(function (resolve, reject){          const connection = new Connection;          connection.checkConnection(false).then( -            function(result){ +            function (result){                  if (result === true) {                      resolve(new GpgME());                  } else {                      reject(gpgme_error('CONN_NO_CONNECT'));                  } -            }, function(){ //unspecific connection error. Should not happen +            }, function (){ // unspecific connection error. Should not happen                  reject(gpgme_error('CONN_NO_CONNECT'));              });      });  } -const exportvalue = {init:init}; +const exportvalue = { init:init };  export default exportvalue;
\ No newline at end of file diff --git a/lang/js/src/permittedOperations.js b/lang/js/src/permittedOperations.js index f9145dab..48ff7fa7 100644 --- a/lang/js/src/permittedOperations.js +++ b/lang/js/src/permittedOperations.js @@ -48,7 +48,7 @@  */  export const permittedOperations = {      encrypt: { -        pinentry: true, //TODO only with signing_keys +        pinentry: true, // TODO only with signing_keys          required: {              'keys': {                  allowed: ['string'], @@ -137,7 +137,7 @@ export const permittedOperations = {          pinentry: true,          required: {              'data': { -                allowed: ['string']}, +                allowed: ['string'] },              'keys': {                  allowed: ['string'],                  array_allowed: true @@ -337,7 +337,7 @@ export const permittedOperations = {          },          answer: {              type: [''], -            data: {'fingerprint': 'string'} +            data: { 'fingerprint': 'string' }          }      }, @@ -365,9 +365,9 @@ export const permittedOperations = {                  data: 'string',                  base64:'boolean',                  info: 'object' -                // file_name: Optional string of the plaintext file name. -                //  is_mime: Boolean if the messages claims it is MIME. -                // signatures: Array of signatures +                // info.file_name: Optional string of the plaintext file name. +                // info.is_mime: Boolean if the messages claims it is MIME. +                // info.signatures: Array of signatures              }          }      }, | 
