diff --git a/lang/js/DemoExtension/maindemo.js b/lang/js/DemoExtension/maindemo.js
index d0127c73..4cae934e 100644
--- a/lang/js/DemoExtension/maindemo.js
+++ b/lang/js/DemoExtension/maindemo.js
@@ -98,5 +98,22 @@ document.addEventListener('DOMContentLoaded', function() {
alert( errormsg.message);
});
});
+ document.getElementById('searchkey').addEventListener('click',
+ function(){
+ let data = document.getElementById('inputtext').value;
+ gpgmejs.Keyring.getKeys(data, true, true).then(function(keys){
+ if (keys.length === 1){
+ document.getElementById(
+ 'pubkey').value = keys[0].fingerprint;
+ } else if (keys.length > 1) {
+ alert('The pattern was not unambigious enough for a Key. '
+ + keys.length + ' Keys were found');
+ } else {
+ alert('No keys found');
+ }
+ }, function(errormsg){
+ alert( errormsg.message);
+ });
+ });
});
});
diff --git a/lang/js/DemoExtension/mainui.html b/lang/js/DemoExtension/mainui.html
index b6390363..c773c9b9 100644
--- a/lang/js/DemoExtension/mainui.html
+++ b/lang/js/DemoExtension/mainui.html
@@ -17,9 +17,13 @@
Fingerprint of Key to use:
-
-
-
+
+
+
diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js
index 8bec1cea..0d7643f0 100644
--- a/lang/js/src/Keyring.js
+++ b/lang/js/src/Keyring.js
@@ -39,16 +39,21 @@ export class GPGME_Keyring {
* inmediately. This allows for full synchronous use. If set to false,
* these will initially only be available as Promises in getArmor() and
* getHasSecret()
+ * @param {Boolean} search (optional) retrieve the Keys from servers with
+ * the method(s) defined in gnupg (e.g. WKD/HKP lookup)
* @returns {Promise.>}
*
*/
- getKeys(pattern, prepare_sync){
+ getKeys(pattern, prepare_sync, search){
return new Promise(function(resolve, reject) {
let msg = createMessage('keylist');
if (pattern !== undefined){
msg.setParameter('keys', pattern);
}
msg.setParameter('sigs', true);
+ if (search === true){
+ msg.setParameter('locate', true);
+ }
msg.post().then(function(result){
let resultset = [];
let promises = [];
diff --git a/lang/js/src/permittedOperations.js b/lang/js/src/permittedOperations.js
index 312eaa52..e7f53965 100644
--- a/lang/js/src/permittedOperations.js
+++ b/lang/js/src/permittedOperations.js
@@ -188,6 +188,9 @@ export const permittedOperations = {
'local':{
allowed: ['boolean']
},
+ 'locate': {
+ allowed: ['boolean']
+ },
'sigs':{
allowed: ['boolean']
},