[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