[git] GPGME - branch, javascript-binding, updated. gpgme-1.11.1-47-ga4ba80c

by Maximilian Krambach cvs at cvs.gnupg.org
Thu May 24 15:17:34 CEST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, javascript-binding has been updated
       via  a4ba80c553c2ac42f9e311344302c04ec9aa715b (commit)
       via  e38b8beb20a8cfe897c378e3c20be80b8256159e (commit)
       via  c679ed24778c997fee72d3613babad8680855882 (commit)
       via  a6cd3a1197eb4efea0950394959c252f24475f67 (commit)
       via  1c0a55a60847563fecf92a383457ab3576aec5d8 (commit)
       via  b344933e4cb17f2f26c4ed355217428bda8b8c40 (commit)
       via  45036c3c4c11f7bd56a00805564108e9377b657e (commit)
       via  fd5e14660a6f4eb1a89d69534e3e435f7fb05f8a (commit)
       via  3a9e6a8e088e233097866bb0560a36cfbbc4470e (commit)
       via  28e3778ce21069006153bc156a414de6d9347962 (commit)
       via  e04b8142df21a49e6c4a3f8234cc14bfec217222 (commit)
       via  8a0c8c52510d9c2d934f85159f04b666286b1786 (commit)
      from  f7ed80ff6a66f2c5ee6f1c3daebd597f4592733d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a4ba80c553c2ac42f9e311344302c04ec9aa715b
Author: Maximilian Krambach <maximilian.krambach at intevation.de>
Date:   Thu May 24 15:16:18 2018 +0200

    js: adding sign method
    
    --
    
      * src/gpgmejs.js: method, update in src/permittedOperations
      * basic testing in BrowsertestExtension

diff --git a/lang/js/BrowserTestExtension/browsertest.html b/lang/js/BrowserTestExtension/browsertest.html
index c379ef5..3d81a9e 100644
--- a/lang/js/BrowserTestExtension/browsertest.html
+++ b/lang/js/BrowserTestExtension/browsertest.html
@@ -17,6 +17,7 @@
     <script src="tests/startup.js"></script>
     <script src="tests/encryptTest.js"></script>
     <script src="tests/encryptDecryptTest.js"></script>
+    <script src="tests/signTest.js"></script>
 <!-- run tests -->
     <script src="runbrowsertest.js"></script>
     </body>
diff --git a/lang/js/src/gpgmejs.js b/lang/js/src/gpgmejs.js
index 3aa5957..1e76655 100644
--- a/lang/js/src/gpgmejs.js
+++ b/lang/js/src/gpgmejs.js
@@ -120,6 +120,44 @@ export class GpgME {
 
     }
 
+    sign(data, keys, mode='clearsign', base64=false) { //sender
+        if (data === undefined){
+            return Promise.reject(gpgme_error('MSG_EMPTY'));
+        }
+        let key_arr = toKeyIdArray(keys);
+        if (key_arr.length === 0){
+            return Promise.reject(gpgme_error('MSG_NO_KEYS'));
+        }
+        let msg = createMessage('sign');
+
+        msg.setParameter('keys', key_arr);
+        if (base64 === true){
+            msg.setParameter('base64', true);
+        }
+        msg.setParameter('mode', mode);
+        putData(msg, data);
+        if (mode === 'detached') {
+            msg.expected = 'base64';
+        }
+        let me = this;
+        return new Promise(function(resolve,reject) {
+            me.connection.post(msg).then( function(message) {
+                if (mode === 'clearsign'){
+                    resolve({
+                        data: message.data}
+                    );
+                } else if (mode === 'detached') {
+                    resolve({
+                        data: data,
+                        signature: message.data
+                    });
+                }
+            }, function(error){
+                reject(error);
+            })
+        });
+    }
+
     deleteKey(key, delete_secret = false, no_confirm = false){
         return Promise.reject(gpgme_error('NOT_YET_IMPLEMENTED'));
         let msg = createMessage('deletekey');
diff --git a/lang/js/src/permittedOperations.js b/lang/js/src/permittedOperations.js
index da46a1f..aa02a8b 100644
--- a/lang/js/src/permittedOperations.js
+++ b/lang/js/src/permittedOperations.js
@@ -130,6 +130,49 @@ export const permittedOperations = {
                         // }]
         }
     },
+
+    sign: {
+        pinentry: true,
+        required: {
+            'data': {
+                allowed: ['string']},
+            'keys': {
+                allowed: ['string'],
+                array_allowed: true
+            }
+        },
+        optional: {
+            'protocol': {
+                allowed: ['string'],
+                allowed_data: ['cms', 'openpgp']
+            },
+            'chunksize': {
+                allowed: ['number'],
+            },
+            'sender': {
+                allowed: ['string'],
+            },
+            'mode': {
+                allowed: ['string'],
+                allowed_data: ['detached', 'clearsign'] // TODO 'opaque' not used
+            },
+            'base64': {
+                allowed: ['boolean']
+            },
+            'armor': {
+                allowed: ['boolean']
+            },
+        },
+        answer: {
+            type: ['signature', 'ciphertext'],
+            data: ['data'], // Unless armor mode is used a Base64 encoded binary
+                            // signature.  In armor mode a string with an armored
+                            // OpenPGP or a PEM message.
+            params: ['base64']
+        }
+    },
+
+
     /** TBD: querying the Key's information (keyinfo)
     TBD name: {
         required: {
@@ -212,6 +255,5 @@ export const permittedOperations = {
      *TBD get armored secret different treatment from keyinfo!
      * TBD key modification?
      * encryptsign: TBD
-     * verify: TBD
      */
 }

commit e38b8beb20a8cfe897c378e3c20be80b8256159e
Merge: f7ed80f c679ed2
Author: Maximilian Krambach <maximilian.krambach at intevation.de>
Date:   Thu May 24 14:03:09 2018 +0200

    Merge branch 'master' into javascript-binding


-----------------------------------------------------------------------

Summary of changes:
 NEWS                                          |   7 +
 doc/gpgme.texi                                |   2 +-
 lang/cpp/src/decryptionresult.cpp             |  11 +
 lang/cpp/src/decryptionresult.h               |   4 +
 lang/js/BrowserTestExtension/browsertest.html |   1 +
 lang/js/src/gpgmejs.js                        |  38 +++
 lang/js/src/permittedOperations.js            |  44 ++-
 lang/python/docs/GPGMEpythonHOWTOen.org       |  17 +-
 lang/python/examples/howto/decrypt-file.py    |  13 +-
 src/decrypt.c                                 |  27 +-
 src/gpgme-json.c                              | 395 +++++++++++++++++++++++++-
 src/w32-util.c                                |  25 +-
 12 files changed, 561 insertions(+), 23 deletions(-)


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org




More information about the Gnupg-commits mailing list