diff options
Diffstat (limited to 'src/genkey.c')
-rw-r--r-- | src/genkey.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/genkey.c b/src/genkey.c index 89e1d985..11ca5cbe 100644 --- a/src/genkey.c +++ b/src/genkey.c @@ -48,6 +48,9 @@ typedef struct /* The key parameters passed to the crypto engine. */ gpgme_data_t key_parameter; + + /* Flag to indicate that an ADSK is to be added. */ + unsigned int adskmode : 1; } *op_data_t; @@ -180,7 +183,7 @@ genkey_status_handler (void *priv, gpgme_status_code_t code, char *args) case GPGME_STATUS_EOF: if (opd->error_code) return opd->error_code; - else if (!opd->uidmode && !opd->result.primary && !opd->result.sub) + else if (!opd->uidmode && !opd->adskmode && !opd->result.primary && !opd->result.sub) return gpg_error (GPG_ERR_GENERAL); else if (opd->failure_code) return opd->failure_code; @@ -445,6 +448,9 @@ createsubkey_start (gpgme_ctx_t ctx, int synchronous, return err; } + if (flags & GPGME_CREATE_ADSK) + opd->adskmode = 1; + return _gpgme_engine_op_genkey (ctx->engine, NULL, algo, reserved, expires, key, flags, |