aboutsummaryrefslogtreecommitdiffstats
path: root/src/genkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/genkey.c')
-rw-r--r--src/genkey.c8
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,