aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-gpgsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine-gpgsm.c')
-rw-r--r--src/engine-gpgsm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c
index 71ef221b..52915d36 100644
--- a/src/engine-gpgsm.c
+++ b/src/engine-gpgsm.c
@@ -1544,6 +1544,7 @@ gpgsm_import (void *engine, gpgme_data_t keydata, gpgme_key_t *keyarray)
{
engine_gpgsm_t gpgsm = engine;
gpgme_error_t err;
+ gpgme_data_encoding_t dataenc;
if (!gpgsm)
return gpg_error (GPG_ERR_INV_VALUE);
@@ -1551,10 +1552,18 @@ gpgsm_import (void *engine, gpgme_data_t keydata, gpgme_key_t *keyarray)
if (keydata && keyarray)
gpg_error (GPG_ERR_INV_VALUE); /* Only one is allowed. */
+ dataenc = gpgme_data_get_encoding (keydata);
+
if (keyarray)
{
return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
}
+ else if (dataenc == GPGME_DATA_ENCODING_URL
+ || dataenc == GPGME_DATA_ENCODING_URL0
+ || dataenc == GPGME_DATA_ENCODING_URLESC)
+ {
+ return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
+ }
else
{
gpgsm->input_cb.data = keydata;