js: add option "subkey-algo" to generateKey
authorMaximilian Krambach <maximilian.krambach@intevation.de>
Mon, 20 Aug 2018 16:05:34 +0000 (18:05 +0200)
committerMaximilian Krambach <maximilian.krambach@intevation.de>
Mon, 20 Aug 2018 16:05:34 +0000 (18:05 +0200)
--

* The option was recently added to gpgme-json; this reflects this on
  javascript side

lang/js/src/Keyring.js
lang/js/src/permittedOperations.js

index 7d9b370..81a047c 100644 (file)
@@ -366,14 +366,16 @@ export class GPGME_Keyring {
      * @param {String} userId The user Id, e.g. 'Foo Bar <foo@bar.baz>'
      * @param {String} algo (optional) algorithm (and optionally key size)
      * to be used. See {@link supportedKeyAlgos} below for supported
-     * values.
+     * values. If ommitted, 'default' is used.
      * @param {Date} expires (optional) Expiration date. If not set,
      * expiration will be set to 'never'
+     * @param {String} subkey_algo (optional) algorithm of the encryption
+     * subkey. If ommited the same as algo is used.
      *
      * @return {Promise<Key|GPGME_Error>}
      * @async
      */
-    generateKey (userId, algo = 'default', expires){
+    generateKey (userId, algo = 'default', expires, subkey_algo){
         if (
             typeof (userId) !== 'string' ||
             // eslint-disable-next-line no-use-before-define
@@ -382,11 +384,18 @@ export class GPGME_Keyring {
         ){
             return Promise.reject(gpgme_error('PARAM_WRONG'));
         }
+        // eslint-disable-next-line no-use-before-define
+        if (subkey_algo && supportedKeyAlgos.indexOf(subkey_algo) < 0 ){
+            return Promise.reject(gpgme_error('PARAM_WRONG'));
+        }
         let me = this;
         return new Promise(function (resolve, reject){
             let msg = createMessage('createkey');
             msg.setParameter('userid', userId);
             msg.setParameter('algo', algo );
+            if (subkey_algo) {
+                msg.setParameter('subkey-algo', subkey_algo );
+            }
             if (expires){
                 const now = new Date();
                 msg.setParameter('expires',
index 48ff7fa..3142725 100644 (file)
@@ -331,6 +331,9 @@ export const permittedOperations = {
             algo: {
                 allowed: ['string']
             },
+            'subkey-algo': {
+                allowed: ['string']
+            },
             expires: {
                 allowed: ['number'],
             }