js: fixing errors found by testing
authorMaximilian Krambach <maximilian.krambach@intevation.de>
Fri, 4 May 2018 10:56:59 +0000 (12:56 +0200)
committerMaximilian Krambach <maximilian.krambach@intevation.de>
Fri, 4 May 2018 10:56:59 +0000 (12:56 +0200)
--

* Key.js: Error code for wrong parameter in createKey should be
  "PARAM_WRONG"

* Helpers.js: The property openpgpjs-like Objects were checked for in
  toKeyIdArray was not defined.

* src/permittedOperations.js: updated more expectations and assumptions
  for the native API

lang/js/src/Helpers.js
lang/js/src/Key.js
lang/js/src/permittedOperations.js
lang/js/unittests.js

index ea056ff..fd0e720 100644 (file)
@@ -48,7 +48,7 @@ export function toKeyIdArray(input){
             if (input[i] instanceof GPGME_Key){
                 fpr = input[i].fingerprint;
             } else if (input[i].hasOwnProperty('primaryKey') &&
-                input[i].primaryKey.hasOwnProperty(getFingerprint)){
+                input[i].primaryKey.hasOwnProperty('getFingerprint')){
                     fpr = input[i].primaryKey.getFingerprint();
             }
             if (isFingerprint(fpr) === true){
index 6d3cf17..075a190 100644 (file)
@@ -35,13 +35,15 @@ import { Connection } from './Connection';
 
 export function createKey(fingerprint, parent){
     if (!isFingerprint(fingerprint)){
-        return gpgme_error('KEY_INVALID');
+        return gpgme_error('PARAM_WRONG');
     }
     if ( parent instanceof Connection){
         return new GPGME_Key(fingerprint, parent);
     } else if ( parent.hasOwnProperty('connection') &&
         parent.connection instanceof Connection){
             return new GPGME_Key(fingerprint, parent.connection);
+    } else {
+        return gpgme_error('PARAM_WRONG');
     }
 }
 
index 274e037..59597aa 100644 (file)
@@ -122,55 +122,96 @@ export const permittedOperations = {
             type: ['plaintext'],
             data: ['data'],
             params: ['base64', 'mime'],
-            infos: [] // pending. Info about signatures and validity
-                    //signature: [{Key Fingerprint, valid boolean}]
+            infos: [] // TODO pending. Info about signatures and validity
+                    //{
+                        //signatures: [{
+                            //Key : <String>Fingerprint,
+                            //valid: <Boolean>
+                        // }]
         }
     },
-    /**
-    keyinfo: { // querying the Key's information.
-        required: ['fingerprint'],
-        anser: {
+    /** TBD: querying the Key's information (keyinfo)
+    TBD name: {
+        required: {
+            'fingerprint': {
+                allowed: ['string']
+            },
+        },
+        answer: {
             type: ['TBD'],
             data: [],
-            params: ['hasSecret', 'isRevoked', 'isExpired', 'armored',
-                'timestamp', 'expires', 'pubkey_algo'],
+            params: ['hasSecret','isRevoked','isExpired','armored',
+                'timestamp','expires','pubkey_algo'],
             infos: ['subkeys', 'userIds']
+            // {'hasSecret': <Boolean>,
+            //  'isRevoked': <Boolean>,
+            //  'isExpired': <Boolean>,
+            //  'armored': <String>, // armored public Key block
+            //  'timestamp': <Number>, //
+            //  'expires': <Number>,
+            //  'pubkey_algo': TBD // TBD (optional?),
+            //  'userIds': Array<String>,
+            //  'subkeys': Array<String> Fingerprints of Subkeys
+            // }
     }*/
 
     /**
     listkeys:{
-        optional: ['with-secret', 'pattern'],
+        required: {};
+        optional: {
+            'with-secret':{
+                allowed: ['boolean']
+            },{
+            'pattern': {
+                allowed: ['string']
+            }
+        },
     answer: {
-        type: ['TBD'], //Array of fingerprints?
-        infos: ['TBD'] //the property with infos
+        type: ['TBD'],
+        infos: ['TBD']
+    // keys: Array<String> Fingerprints representing the results
     },
     */
 
     /**
     importkey: {
-        required: ['keyarmored'],
+        required: {
+            'keyarmored': {
+                allowed: ['string']
+            }
+        },
         answer: {
             type: ['TBD'],
-            infos: [''], // for each key if import was a success, if it was an update
+            infos: ['TBD'],
+            // for each key if import was a success,
+            // and if it was an update of preexisting key
         }
     },
     */
 
     /**
     deletekey:  {
-        required: ['fingerprint'],
+        pinentry: true,
+        required: {
+            'fingerprint': {
+                allowed: ['string'],
+                // array_allowed: TBD Allow several Keys to be deleted at once?
+            },
+        optional: {
+            'TBD' //Flag to delete secret Key ?
+        }
         answer: {
             type ['TBD'],
-            infos: [''] //success:true? in gpgme, an error NO_ERROR is returned
+            infos: ['']
+                // TBD (optional) Some kind of 'ok' if delete was successful.
         }
     }
     */
 
     /**
-     *get armored secret different treatment from keyinfo!
-     */
-
-    /**
-     * TBD key modification requests?
+     *TBD get armored secret different treatment from keyinfo!
+     * TBD key modification?
+     * encryptsign: TBD
+     * verify: TBD
      */
 }
index 0a1b4b4..6c0d189 100644 (file)
@@ -109,7 +109,7 @@ function unittests (){
         });
     });
 
-    describe('toKeyIdArray() (converting input to fingerprint', function(){
+    describe('toKeyIdArray() (converting input to fingerprint)', function(){
 
         it('Correct fingerprint string', function(){
             let test0 = toKeyIdArray(hp.validFingerprint);