[git] GPGME - branch, javascript-binding, updated. gpgme-1.11.1-88-gaeb065a

by Maximilian Krambach cvs at cvs.gnupg.org
Thu Aug 16 11:30:06 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  aeb065acc91a22b6548ebf0a558951ed26398214 (commit)
       via  622db0d1de665dfd93c991cd2d517078b04b3a13 (commit)
      from  68a012deb3b501d7417778be12c88bd475a37cb5 (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 aeb065acc91a22b6548ebf0a558951ed26398214
Author: Maximilian Krambach <maximilian.krambach at intevation.de>
Date:   Thu Aug 16 11:29:10 2018 +0200

    js: simplify getDefaultKey
    
    --
    
    * src/Keyring.js: In case no default Key is set in configuration,
      only Keys reported as having a secret part should be considered
      for default Keys, avoiding some extra requests.

diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js
index d25216c..c4b89b2 100644
--- a/lang/js/src/Keyring.js
+++ b/lang/js/src/Keyring.js
@@ -192,17 +192,13 @@ export class GPGME_Keyring {
                                 reject(error);
                             });
                     } else {
-                        // TODO: this is overly 'expensive' in communication
-                        // and probably performance, too
-                        me.getKeys(null,true).then(function(keys){
-                            for (let i=0; i < keys.length; i++){
-                                if (keys[i].get('hasSecret') === true){
-                                    resolve(keys[i]);
-                                    break;
-                                }
-                                if (i === keys.length -1){
-                                    reject(gpgme_error('KEY_NO_DEFAULT'));
-                                }
+                        let msg = createMessage('keylist');
+                        msg.setParameter('secret', true);
+                        msg.post().then(function(result){
+                            if (result.keys.length === 0){
+                                reject(gpgme_error('KEY_NO_DEFAULT'));
+                            } else {
+                                resolve(result.keys[0]);
                             }
                         }, function(error){
                             reject(error);

commit 622db0d1de665dfd93c991cd2d517078b04b3a13
Author: Maximilian Krambach <maximilian.krambach at intevation.de>
Date:   Thu Aug 16 11:25:50 2018 +0200

    js: consistently return uppercase fingerprint
    
    --
    
    * src/Key.js: the fingerprint returned by a Key is now always upper
      case hex, even if the constructor had lower case input. This is to be
      more consistent with gpgme and to be more readable and reliable in
      comparisions.

diff --git a/lang/js/BrowserTestExtension/browsertest.html b/lang/js/BrowserTestExtension/browsertest.html
index a20cfe1..0d3e293 100644
--- a/lang/js/BrowserTestExtension/browsertest.html
+++ b/lang/js/BrowserTestExtension/browsertest.html
@@ -15,6 +15,7 @@
     <script src="tests/inputvalues.js"></script>
 <!-- insert tests here-->
     <script src="tests/startup.js"></script>
+    <script src="tests/KeyInfos.js"></script>
     <script src="tests/encryptTest.js"></script>
     <script src="tests/encryptDecryptTest.js"></script>
     <script src="tests/signTest.js"></script>
diff --git a/lang/js/BrowserTestExtension/tests/KeyInfos.js b/lang/js/BrowserTestExtension/tests/KeyInfos.js
new file mode 100644
index 0000000..03773a4
--- /dev/null
+++ b/lang/js/BrowserTestExtension/tests/KeyInfos.js
@@ -0,0 +1,46 @@
+/* gpgme.js - Javascript integration for gpgme
+ * Copyright (C) 2018 Bundesamt für Sicherheit in der Informationstechnik
+ *
+ * This file is part of GPGME.
+ *
+ * GPGME is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * GPGME is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: LGPL-2.1+
+ *
+ * Author(s):
+ *     Maximilian Krambach <mkrambach at intevation.de>
+ */
+
+/* global describe, it, expect, before, Gpgmejs */
+/* global inputvalues, fixedLengthString */
+
+describe('Key information', function () {
+    let context = null;
+    before(function(done){
+        const prm = Gpgmejs.init();
+        prm.then(function(gpgmejs){
+            context = gpgmejs;
+            done();
+        });
+    });
+
+    it('A fingerprint is consistently returned upper case hex', function(done){
+        const mixedCase = inputvalues.encrypt.good.fingerprint_mixedcase;
+        context.Keyring.getKeys(mixedCase).then(function(result){
+            expect(result).to.be.an('array');
+            expect(result.length).to.equal(1);
+            expect(result[0].fingerprint).to.equal(mixedCase.toUpperCase());
+            done();
+        });
+    });
+});
\ No newline at end of file
diff --git a/lang/js/BrowserTestExtension/tests/inputvalues.js b/lang/js/BrowserTestExtension/tests/inputvalues.js
index 1e8f154..7dda47c 100644
--- a/lang/js/BrowserTestExtension/tests/inputvalues.js
+++ b/lang/js/BrowserTestExtension/tests/inputvalues.js
@@ -28,6 +28,7 @@ const inputvalues = {// eslint-disable-line no-unused-vars
             // Fingerprint of a key that has been imported to gnupg
             // (i.e. see testkey.pub; testkey.sec)
             fingerprint : 'D41735B91236FDB882048C5A2301635EEFF0CB05',
+            fingerprint_mixedcase: 'D41735B91236fdb882048C5A2301635eeFF0Cb05',
             data_nonascii: '¡Äußerste µ€ før ñoquis at hóme! Добрый день',
 
             // used for checking encoding consistency in > 2MB messages.
diff --git a/lang/js/src/Key.js b/lang/js/src/Key.js
index 88c49d3..eeb2703 100644
--- a/lang/js/src/Key.js
+++ b/lang/js/src/Key.js
@@ -58,7 +58,7 @@ export class GPGME_Key {
          */
         this.isAsync = async;
 
-        let _data = {fingerprint: fingerprint};
+        let _data = {fingerprint: fingerprint.toUpperCase()};
         this.getFingerprint = function(){
             if (!_data.fingerprint || !isFingerprint(_data.fingerprint)){
                 return gpgme_error('KEY_INVALID');
@@ -88,7 +88,8 @@ export class GPGME_Key {
             if (typeof(data) !== 'object') {
                 return gpgme_error('KEY_INVALID');
             }
-            if (!data.fingerprint || data.fingerprint !== _data.fingerprint){
+            if (!data.fingerprint ||
+                data.fingerprint.toUpperCase() !== _data.fingerprint){
                 return gpgme_error('KEY_INVALID');
             }
             let keys = Object.keys(data);

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

Summary of changes:
 lang/js/BrowserTestExtension/browsertest.html      |  1 +
 .../{popup.js => tests/KeyInfos.js}                | 26 +++++++++++++++++-----
 lang/js/BrowserTestExtension/tests/inputvalues.js  |  1 +
 lang/js/src/Key.js                                 |  5 +++--
 lang/js/src/Keyring.js                             | 18 ++++++---------
 5 files changed, 33 insertions(+), 18 deletions(-)
 copy lang/js/BrowserTestExtension/{popup.js => tests/KeyInfos.js} (55%)


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




More information about the Gnupg-commits mailing list