core: add experimental GPGME_EXPORT_MODE_NOUID.
authorWerner Koch <wk@gnupg.org>
Tue, 2 Oct 2018 09:18:00 +0000 (11:18 +0200)
committerWerner Koch <wk@gnupg.org>
Tue, 2 Oct 2018 09:18:00 +0000 (11:18 +0200)
* src/gpgme.h.in (GPGME_EXPORT_MODE_NOUID): New.
* src/export.c (export_start): Adjust option check.
* src/engine-gpg.c (export_common): Implement option.

Signed-off-by: Werner Koch <wk@gnupg.org>
doc/gpgme.texi
src/engine-gpg.c
src/export.c
src/gpgme.h.in

index 426ae7a..d99e9bb 100644 (file)
@@ -4663,6 +4663,10 @@ If this flag is used with @code{GPGME_EXPORT_MODE_SECRET} for an X.509
 key the export format will be changed to PKCS#12 which also includes
 the certificate.  This flag may not be used with OpenPGP.
 
+@item GPGME_EXPORT_MODE_NOUID
+@since{1.12.0 - experimental}
+Do not export user ids.  Works only with certain gpg version.
+
 @end table
 
 
index be78957..9a5927c 100644 (file)
@@ -2241,7 +2241,14 @@ export_common (engine_gpg_t gpg, gpgme_export_mode_t mode,
     return gpg_error (GPG_ERR_NOT_SUPPORTED);
 
   if ((mode & GPGME_EXPORT_MODE_MINIMAL))
-    err = add_arg (gpg, "--export-options=export-minimal");
+    {
+      if ((mode & GPGME_EXPORT_MODE_NOUID))
+        err = add_arg (gpg, "--export-options=export-minimal,export-drop-uids");
+      else
+        err = add_arg (gpg, "--export-options=export-minimal");
+    }
+  else if ((mode & GPGME_EXPORT_MODE_NOUID))
+    err = add_arg (gpg, "--export-options=export-drop-uids");
 
   if (err)
     ;
index cd94050..f460e85 100644 (file)
@@ -123,6 +123,7 @@ export_start (gpgme_ctx_t ctx, int synchronous, const char *pattern,
                 |GPGME_EXPORT_MODE_MINIMAL
                 |GPGME_EXPORT_MODE_SECRET
                 |GPGME_EXPORT_MODE_RAW
+                |GPGME_EXPORT_MODE_NOUID
                 |GPGME_EXPORT_MODE_PKCS12)))
     return gpg_error (GPG_ERR_INV_VALUE); /* Invalid flags in MODE.  */
 
index 9c9ea5a..1731593 100644 (file)
@@ -405,6 +405,7 @@ gpgme_pinentry_mode_t;
 #define GPGME_EXPORT_MODE_SECRET               16
 #define GPGME_EXPORT_MODE_RAW                  32
 #define GPGME_EXPORT_MODE_PKCS12               64
+#define GPGME_EXPORT_MODE_NOUID               128
 
 typedef unsigned int gpgme_export_mode_t;