aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* core: Support writing the decrypt/verify output directly to a fileikloecker/t6550Ingo Klöcker2023-12-195-13/+79
| | | | | | | | | | | | | | | | | | | * src/engine-gpg.c (gpg_decrypt): Pass output file name to gpg if output has file name set. (gpg_verify): Ditto. * tests/run-decrypt.c (show_usage): New option --output. (main): Parse new option. Set file name on output if --output is given. Do not print output if --output is given. * tests/run-verify.c (show_usage): New option --output. (main): Parse new option. Set file name on output if --output is given. -- This change makes it possible to tell gpg to write the output (i.e. the decrypted/verified data) directly to a file with given file name instead of piping the output back to gpgme. GnuPG-bug-id: 6550
* core: Support direct signing of file with gpgIngo Klöcker2023-12-198-23/+82
| | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_SIG_MODE_FILE): New signature mode flag. * src/engine-gpg.c (gpg_sign): Separate signature mode from additional flags. Check for incompatible flags. Explicitly set output to stdout if no output file is used. Pass filename instead of fd to gpg when new flag is set. * src/engine-gpgsm.c (gpgsm_sign): Return error if new flag is set. * src/engine-uiserver.c (uiserver_sign): Ditto. * src/sign.c (sign_start): Consider new flag on check for invalid flags. * tests/run-sign.c (show_usage): New options --detach and --direct-file-io. (main): Parse new options. Create a detached signature if --detach is given. Make gpg read the input file itself if --direct-file-io is given. -- With this change the gpgme_op_sign* functions gain the possibility to make gpg read the data to sign directly from a file instead of from an input FD to which it is written by gpgme. GnuPG-bug-id: 6550
* core: Support direct encryption of file with gpgIngo Klöcker2023-12-197-8/+73
| | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_ENCRYPT_FILE): New encryption flag. * src/engine-gpg.c (gpg_encrypt, gpg_encrypt_sign): Check for incompatible flags. Pass filename instead of fd to gpg when new flag is set. * src/engine-gpgsm.c (gpgsm_encrypt): Return error if new flag is set. * src/engine-uiserver.c (uiserver_encrypt): Ditto. * tests/run-encrypt.c (show_usage): New option --direct-file-io. (main): Parse new option. Make gpg read the input file itself if the option is given. -- With this change the gpgme_op_encrypt* and gpgme_op_encrypt_sign* functions gain the possibility to make gpg read the data to (sign and) encrypt directly from a file instead of from an input FD to which it is written by gpgme. GnuPG-bug-id: 6550
* doc: Fix documentation for creating encrypted/signed archiveIngo Klöcker2023-12-141-8/+8
| | | | | | | -- The previous paragraph already explains where/how the result is stored. In particular, it's not always "returned in the data object ...".
* qt: Replace Q_FOREACH with range-forIngo Klöcker2023-12-138-36/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/qgpgmekeyformailboxjob.cpp (do_work): Replace Q_FOREACH with range-for. * lang/qt/src/qgpgmekeylistjob.cpp (QGpgMEKeyListJob::resultHook): Ditto. * lang/qt/src/threadedjobmixin.cpp (_detail::audit_log_as_html): Ditto. * lang/qt/tests/t-keylist.cpp (KeyListTest::testPubkeyAlgoAsString): Ditto. * lang/qt/tests/t-keylocate.cpp (KeyLocateTest::testDaneKeyLocate, KeyLocateTest::testKeyLocateSingle): Ditto. * lang/qt/src/qgpgmesignencryptjob.cpp (sign_encrypt): Replace Q_FOREACH with range-for. Add braces around single statement blocks. * lang/qt/src/qgpgmesignjob.cpp (sign): Ditto. * lang/qt/src/qgpgmenewcryptoconfig.cpp (QGpgMENewCryptoConfig::reloadConfiguration, QGpgMENewCryptoConfig::sync, QGpgMENewCryptoConfigComponent::setComponent, QGpgMENewCryptoConfigEntry::urlValueList, QGpgMENewCryptoConfigEntry::setURLValueList): Replace Q_FOREACH with range-for. Fix indentation. Add braces around single statement blocks. -- Where necessary the iterated object is wrapped with qAsConst to avoid deep copies of the iterated object.
* qt: Replace Q_NULLPTR with nullptrIngo Klöcker2023-12-134-5/+5
| | | | | | | * lang/qt/src/defaultkeygenerationjob.h, lang/qt/src/qgpgmebackend.h, lang/qt/src/quickjob.h, lang/qt/src/threadedjobmixin.h: Replace all occurrences of Q_NULLPTR with nullptr. --
* core: percent decode filenameAndre Heinecke2023-11-291-3/+6
| | | | | | | | | | | | | | | * src/op-support.c (_gpgme_parse_plaintext): Decode filename as percent string. -- From gnupg/doc/DETAILS: If a filename is available it gets printed as the third argument, percent-escaped as usual. so we can use the usual percent decode function here. GnuPG-Bug-Id: T6852
* Post release updatesWerner Koch2023-11-282-1/+5
| | | | --
* Release 1.23.2gpgme-1.23.2Werner Koch2023-11-282-6/+18
|
* qt: Start dirmngr with gpgconf to avoid multiple instancesIngo Klöcker2023-11-231-7/+7
| | | | | | | | | | | * lang/qt/src/qgpgmewkdlookupjob.cpp (startDirmngr): Use "gpgconf --launch dirmngr" to start dirmngr. -- Using gpgconf to start dirmngr prevents multiple instances to be started by the concurrently running keyserver lookup and WKD lookup. GnuPG-bug-id: 6833
* qt: On Windows, use UTF-8 when logging the error textIngo Klöcker2023-11-151-1/+7
| | | | | | | | * lang/qt/src/debug.cpp (operator<<): On Windows, interpret the error text as UTF-8 instead of local 8-bit encoding. -- GnuPG-bug-id: 5960
* qt: Remove left-over partial files more persistentlyIngo Klöcker2023-11-155-14/+164
| | | | | | | | | | | | | | | * lang/qt/src/Makefile.am: Add new files. * lang/qt/src/cleaner.cpp, lang/qt/src/cleaner.h: New. * lang/qt/src/util.cpp (PartialFileGuard::~PartialFileGuard): Call Cleaner::removeFile instead of removeFile. * lang/qt/src/util.cpp, lang/qt/src/util.h (removeFile): Remove. -- If the initial attempt to remove the file fails then a Cleaner is created that tries to remove the file at regular intervals (10 s) and on destruction (which happens on application shutdown). GnuPG-bug-id: 6584
* doc: Fix for e.g. and i.e.NIIBE Yutaka2023-11-151-17/+17
| | | | | | -- Signed-off-by: NIIBE Yutaka <[email protected]>
* core: Preserve more specific existing failure codeIngo Klöcker2023-11-1412-12/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | * src/decrypt.c (_gpgme_decrypt_status_handler): Ignore received failure code if we already have a specific failure code. * src/encrypt.c (_gpgme_encrypt_status_handler): Ditto. * src/export.c (export_status_handler): Ditto. * src/genkey.c (genkey_status_handler): Ditto. * src/keylist.c (keylist_status_handler): Ditto. * src/keysign.c (keysign_status_handler): Ditto. * src/passwd.c (passwd_status_handler): Ditto. * src/revsig.c (revsig_status_handler): Ditto. * src/setexpire.c (setexpire_status_handler): Ditto. * src/sign.c (_gpgme_sign_status_handler): Ditto. * src/tofupolicy.c (tofu_policy_status_handler): Ditto. * src/verify.c (_gpgme_verify_status_handler): Ditto. -- Usually, a process emits at most one failure code. But some operations like the creation of an encrypted archive involve multiple chained processes, so that multiple failure codes can be received. We want to keep the first specific failure code we received. Further failure codes are only parsed if we received just an unspecific "general error" so far. GnuPG-bug-id: 6575
* tests: Add option --chain to run-keylistWerner Koch2023-11-101-1/+48
| | | | | | | | * tests/run-keylist.c (xstrdup): New. (main): Add option. -- This allows to list the entire chain.
* qt: Deprecate DefaultKeyGenerationJobIngo Klöcker2023-11-102-1/+7
| | | | | | | | | | | | | * lang/qt/src/defaultkeygenerationjob.h (class DefaultKeyGenerationJob): Deprecate. -- GnuPG generates Ed25519 keys by default and has switched to 3072 bits as default for RSA keys. DefaultKeyGenerationJob always generates RSA 2048 keys and uses the old parameter file API of GnuPG. It shouldn't be used anymore. GnuPG-bug-id: 6805
* build,qt: Build Qt with -fPIC if required or requestedIngo Klöcker2023-10-303-13/+45
| | | | | | | | | | | * configure.ac: Add option to enable building the Qt 6 binding with -fPIC. Fix typo and mention default for --enable-no-direct-extern-access option. * m4/qt6.m4: Add -fPIC to GPGME_QT6_CFLAGS if requested or if Qt 6 was built with reduce_relocations. -- GnuPG-bug-id: 6781
* Update NEWSIngo Klöcker2023-10-271-0/+3
| | | | --
* qt: Use temporary .part file names when creating archivesIngo Klöcker2023-10-275-15/+160
| | | | | | | | | | | | | | | | | | | * lang/qt/src/util.h, lang/qt/src/util.cpp (class PartialFileGuard): New. * lang/qt/src/util.cpp (getRandomCharacters, createPartFileName): New. * lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt_to_filename): Use PartialFileGuard. * lang/qt/src/qgpgmesignarchivejob.cpp (sign_to_filename): Ditto. * lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt_to_filename): Ditto. -- When creating signed and/or encrypted archives, gpgtar now writes the result to a temporary file name. On success, the archive is renamed to the final file name. Otherwise, the (partially written) temporary file is removed (if possible). GnuPG-bug-id: 6721
* qt: Refactor removal of output file on cancel or errorIngo Klöcker2023-10-275-54/+54
| | | | | | | | | | | | | | | | * lang/qt/src/util.h, lang/qt/src/util.cpp (removeFile): New. * lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt): Move removal of output file from here (encrypt_to_filename): ... to here and use new function. * lang/qt/src/qgpgmesignarchivejob.cpp (sign): Move removal of output file from here (sign_to_filename): ... to here and use new function. * lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt): Move removal of output file from here (sign_encrypt_to_filename): ... to here and use new function. -- GnuPG-bug-id: 6721
* Post release updatesWerner Koch2023-10-272-1/+5
| | | | --
* Release 1.23.1gpgme-1.23.1Werner Koch2023-10-271-1/+7
| | | | | | | | -- This is minor fix to the spawn helper. No change to the library code. GnuPG-bug-id: 6774
* Change gpgme-w32-spawn to unicodeAndre Heinecke2023-10-252-42/+50
| | | | | | | | | | | | | | | | | | | | | * src/Makefile.am (gpgme_w32spawn_CFLAGS): Add -municode. * src/gpgme-w32-spawn.c (build_commandline, my_spawn) (translate_handles): Convert to wchar_t API. (main): Use wmain instead. -- Some time ago we introduced an inconsistency that w32-util called gpgme-w32-spawn through CreateProcessW but since gpgme-w32-spawn internally worked with 8 bit the chars were mangled and the arguments not passed correctly through the CreateProcessA of the child process. Since the GnuPG processes use GetCommandLineW this is the proper way to pass on Unicode command line arguments. Please note that we did not pass UTF-8 before this patch but rather some broken native encoding where Windows replaces unicode characters with question marks etc. GnuPG-Bug-Id: T6728
* Post release updatesWerner Koch2023-10-252-1/+5
| | | | --
* Release 1.23.0gpgme-1.23.0Werner Koch2023-10-253-10/+18
|
* qt: Handle cancel in changeexpiryjobAndre Heinecke2023-10-181-1/+1
| | | | | | | | | * lang/qt/src/qgpgmechangeexpiryjob.cpp (change_expiry): Return cancel error. -- The classical "cancel is not an error" problem. GnuPG-Bug-Id: T6754
* qt,doc: Fix typos in source code commentsIngo Klöcker2023-10-133-19/+19
| | | | | | | | -- Anonymous contribution Signed-off-by: Ingo Klöcker <[email protected]>
* python,doc: Fix typos in documentation and source code commentsIngo Klöcker2023-10-134-6/+6
| | | | | | | | -- Anonymous contribution Signed-off-by: Ingo Klöcker <[email protected]>
* cpp,doc: Fix typos in API documentation and source code commentsIngo Klöcker2023-10-132-2/+2
| | | | | | | | -- Anonymous contribution Signed-off-by: Ingo Klöcker <[email protected]>
* doc: Fix typos in documentation and source code commentsIngo Klöcker2023-10-1312-20/+20
| | | | | | | | -- Anonymous contribution Signed-off-by: Ingo Klöcker <[email protected]>
* python,examples: Add missing word "License"Marius P2023-10-1335-35/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/python/examples/howto/add-userid.py, lang/python/examples/howto/clear-sign-file.py, lang/python/examples/howto/create-key.py, lang/python/examples/howto/decrypt-file.py, lang/python/examples/howto/detach-sign-file.py, lang/python/examples/howto/encrypt-file.py, lang/python/examples/howto/encrypt-sign-file.py, lang/python/examples/howto/encrypt-to-group-gullible.py, lang/python/examples/howto/encrypt-to-group-trustno1.py, lang/python/examples/howto/encrypt-to-group.py, lang/python/examples/howto/export-key.py, lang/python/examples/howto/export-minimised-key.py, lang/python/examples/howto/export-secret-key.py, lang/python/examples/howto/export-secret-keys.py, lang/python/examples/howto/groups.py, lang/python/examples/howto/import-key.py, lang/python/examples/howto/import-keybasekey.py, lang/python/examples/howto/import-keys-hkp.py, lang/python/examples/howto/import-keys.py, lang/python/examples/howto/import-mailvelope-keys.py, lang/python/examples/howto/keycount.py, lang/python/examples/howto/local-sign-group.py, lang/python/examples/howto/mutt-groups.py, lang/python/examples/howto/pmkey-import-alt.py, lang/python/examples/howto/pmkey-import-hkp-alt.py, lang/python/examples/howto/pmkey-import-hkp.py, lang/python/examples/howto/pmkey-import.py, lang/python/examples/howto/revoke-userid.py, lang/python/examples/howto/send-key-to-keyserver.py, lang/python/examples/howto/sign-file.py, lang/python/examples/howto/sign-key.py, lang/python/examples/howto/symcrypt-file.py, lang/python/examples/howto/temp-homedir-config.py, lang/python/examples/howto/verify-signatures.py, lang/python/examples/howto/verify-signed-file.py: Add "License" after "Lesser General Public" -- Anonymous contribution Signed-off-by: Ingo Klöcker <[email protected]>
* cpp: Support new key capability flagsIngo Klöcker2023-10-053-0/+41
| | | | | | | | * lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): New methods hasCertify, hasSign, hasEncrypt, hasAuthenticate. -- GnuPG-bug-id: 6748
* doc: Fix typoIngo Klöcker2023-10-051-2/+2
| | | | --
* core: Add key capability flags has_encrypt etc.Werner Koch2023-10-055-11/+79
| | | | | | | | | | * src/gpgme.h.in (struct _gpgme_key): Add flags has_encrypt, has_certify, has_sign, and has_authenticate. * src/keylist.c (finish_key): Set these flags. * tests/run-keylist.c (main): Print them. -- GnuPG-bug-id: 6748
* core: Check STATUS_FAILURE in export operations.Werner Koch2023-10-051-3/+12
| | | | | | | | | | | * src/export.c (op_data_t): Add failure_code. (export_status_handler): Set it. (gpgme_op_export_ext, gpgme_op_export_keys): Also check the failure code. -- That is just in case we missed an error code. For example with older gpg versions (e.g. 2.3.8) and exporting to a keyserver.
* gpgme-tool: Support use of Windows HANDLE for INPUT/OUTPUT/MESSAGE.NIIBE Yutaka2023-09-291-1/+13
| | | | | | | | | | * src/gpgme-tool.c [HAVE_W32_SYSTEM] (server_data_obj): Implement for Windows HANDLE. -- GnuPG-bug-id: 6634 Signed-off-by: NIIBE Yutaka <[email protected]>
* qt: Use UTF-8 for file names on WindowsIngo Klöcker2023-09-224-0/+28
| | | | | | | | | | | | | | | | | | | | * lang/qt/src/qgpgmedecryptverifyarchivejob.cpp (decrypt_verify_from_file_name): On Windows, convert Unicode file name to UTF-8. * lang/qt/src/qgpgmeencryptarchivejob.cpp (encrypt, encrypt_to_filename): On Windows, convert Unicode file name from/to UTF-8. * lang/qt/src/qgpgmesignarchivejob.cpp (sign, sign_to_filename): Ditto. * lang/qt/src/qgpgmesignencryptarchivejob.cpp (sign_encrypt, sign_encrypt_to_filename): Ditto. -- On Windows, GnuPG expects file names to be UTF-8-encoded. This fixes encrypting and decrypting folders with umlauts in the folder name and in the file name of the archive. Encrypting and decrypting folders with kanji still fails. GnuPG-bug-id: 6728
* build,qt: Autodetect whether Qt was built with -mno-direct-extern-accessIngo Klöcker2023-09-211-3/+18
| | | | | | | | | | | | * m4/qt6.m4: Check the build configuration of Qt 6 for no_direct_extern_access. -- If building with -mno-direct-extern-access has been neither enabled nor disabled explicitly, then check whether Qt 6 was built with this flag. The check is skipped, if we build for Windows. GnuPG-bug-id: 6696
* build,qt: Optionally build Qt 6 bindings with -mno-direct-extern-accessIngo Klöcker2023-09-213-0/+78
| | | | | | | | | | | | | | | | | * configure.ac: Check if C++ compiler supports -mno-direct-extern-access. Add option to enable building with -mno-direct-extern-access. * m4/ax_check_compile_flag.m4: New. * m4/qt6.m4: Add -mno-direct-extern-access to GPGME_QT6_CFLAGS if supported and requested. -- This adds the possibility to build the Qt 6 bindings with the -mno-direct-extern-access flag. This is required if Qt 6 was built with this flag. This is a workaround for the lack of Qt 6's pkgconfig files providing this flag if needed. GnuPG-bug-id: 6696
* build,qt: Drop broken check for -fPICIngo Klöcker2023-09-211-21/+1
| | | | | | | | | | | * m4/qt6.m4: Remove attempt to build a Qt program with -fPIC. -- libtool already takes care of adding -fPIC. Moreover, building without -fPIC succeeded even if Qt was built with -fPIC, i.e. the check didn't work as intended. GnuPG-bug-id: 6696
* tests: Re-add --with-secret optionIngo Klöcker2023-09-041-2/+2
| | | | | | | | | | * tests/run-keylist.c (main): Handle option --with-secret again. -- Re-add handling of --with-secret option that was accidentally removed with the previous commit. GnuPG-bug-id: 6705
* New mode to list a v5 fingerprint for v4 packets.Werner Koch2023-09-047-4/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_V5FPR): New. (struct _gpgme_subkey): Add field v5fpr. * src/engine-gpg.c (gpg_keylist_build_options): Pass new option to gpg. * src/key.c (gpgme_key_unref): Free new field. * src/keylist.c (op_data_t): Parse and add "fp2" line. * tests/run-keylist.c (show_usage): Add option --v5fpr. * src/keylist.c (op_data_t): Add field failure_code. (keylist_status_handler): Handle special value. (gpgme_op_keylist_end): Return an error if a FAILURE line has been seen. -- Note that the failure code part has been added to better diagnose problems if a wrong gpg version is used. If verything works right we should not get this because we check that the gnupg version sis either >= 2.4.4 or less than 2.3 and >= 2.2.42. Note further that the v5fpr field may also be used to get the SHA-256 fingerprint of X.509 certificates (even without passing the new mode flag). GnuPG-bug-id: 6705
* build: Change the default for --with-libtool-modification.NIIBE Yutaka2023-09-011-2/+2
| | | | | | | | | * configure.ac (--with-libtool-modification): default=never. -- GnuPG-bug-id: 6619 Signed-off-by: NIIBE Yutaka <[email protected]>
* Support GPGME_ENCRYPT_ALWAYS_TRUST also for S/MIME.Werner Koch2023-08-315-5/+29
| | | | | | | | | | | | | * src/engine-gpgsm.c (gpgsm_encrypt): Send the always-trust options. * tests/run-encrypt.c: Add option --always-trust. -- Note that the run-encrypt test tool used to assume always-trust for OpenPGP since 1.7.0 This bug has also been fixed by introducing the explicit option. GnuPG-bug-id: 6559
* qt: Allow specifying user IDs to use when refreshing keys via WKDIngo Klöcker2023-08-235-27/+88
| | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/wkdrefreshjob.h, lang/qt/src/wkdrefreshjob.cpp (WKDRefreshJob::start): New overload. * lang/qt/src/wkdrefreshjob_p.h (WKDRefreshJobPrivate): Add field m_userIds. * lang/qt/src/qgpgmewkdrefreshjob.cpp (toEmailAddresses): New. (locate_external_keys): Change return type and arguments. (refresh_keys): Remove. (QGpgMEWKDRefreshJobPrivate::startIt): Get emails from keys or user IDs. Remove duplicates. Call locate_external_keys instead of refresh_keys. * lang/qt/tests/run-wkdrefreshjob.cpp (CommandLineOptions, parseCommandLine): New. (main): Support new option --all-userids. -- The new start() overload allows to specify the user IDs to use for the WKD lookup explicitly. This allows updating user IDs via WKD which were originally not retrieved via WKD. GnuPG-bug-id: 6672
* qt,tests: Fix build in source directory, part 2Christian Hesse2023-08-221-2/+2
| | | | | | | | | | | | | | * lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources before C++ binding sources and C sources. -- This fixes the problem that the debug.h in the C sources was found before the one in the Qt bindings. Commit d23528cadf4284f508bc4ba05e1b5c14b46bd354 fixed it for Qt5, we need Qt6 as well. GnuPG-bug-id: 6673
* build: Suggest out-of-source buildIngo Klöcker2023-08-211-1/+1
| | | | | | | | | | | * autogen.rc (final_info): Suggest to run configure from a build subdirectory. -- We recommend out-of-source builds. The suggestion what to do next shown by autogen.sh should reflect this. GnuPG-bug-id: 6673
* qt,tests: Fix build in source directoryIngo Klöcker2023-08-211-2/+2
| | | | | | | | | | | * lang/qt/tests/Makefile.am (AM_CPPFLAGS): Include Qt binding sources before C++ binding sources and C sources. -- This fixes the problem that the debug.h in the C sources was found before the one in the Qt bindings. GnuPG-bug-id: 6673
* qt: Add job for refreshing OpenPGP keys via WKDIngo Klöcker2023-08-2111-3/+545
| | | | | | | | | | | | | | | | | | | | | * lang/qt/src/wkdrefreshjob.cpp, lang/qt/src/wkdrefreshjob.h, lang/qt/src/wkdrefreshjob_p.h, lang/qt/src/qgpgmewkdrefreshjob.cpp, lang/qt/src/qgpgmewkdrefreshjob.h: New. * lang/qt/src/protocol.h (class Protocol): Add pure virtual member function wkdRefreshJob * lang/qt/src/protocol_p.h (Protocol::wkdRefreshJob): ... and implement it. * lang/qt/src/Makefile.am: Update accordingly. * lang/qt/tests/run-wkdrefreshjob.cpp: New. * lang/qt/tests/Makefile.am: Add new test runner. -- This job allows updating keys via WKD. Only user IDs that were originally retrieved via WKD (i.e. which have origin WKD) are considered. GnuPG-bug-id: 6672
* doc: Fix interface changesIngo Klöcker2023-08-211-1/+1
| | | | | | | -- toLogString is in the QGpgME namespace (as everything else in the qt bindings).