diff options
author | Maximilian Krambach <[email protected]> | 2018-05-24 13:16:18 +0000 |
---|---|---|
committer | Maximilian Krambach <[email protected]> | 2018-05-24 13:16:18 +0000 |
commit | a4ba80c553c2ac42f9e311344302c04ec9aa715b (patch) | |
tree | 16dfa85ceb15bc90ce92a30a9ca7ef57cc2a1a8a /lang/js/src/gpgmejs.js | |
parent | Merge branch 'master' into javascript-binding (diff) | |
download | gpgme-a4ba80c553c2ac42f9e311344302c04ec9aa715b.tar.gz gpgme-a4ba80c553c2ac42f9e311344302c04ec9aa715b.zip |
js: adding sign method
--
* src/gpgmejs.js: method, update in src/permittedOperations
* basic testing in BrowsertestExtension
Diffstat (limited to 'lang/js/src/gpgmejs.js')
-rw-r--r-- | lang/js/src/gpgmejs.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/lang/js/src/gpgmejs.js b/lang/js/src/gpgmejs.js index 3aa5957a..1e76655e 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'); |