aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 1.16.0gpgme-1.16.0Werner Koch2021-06-242-14/+29
|
* python: Do not include the full file names in the docs.Werner Koch2021-06-241-1/+1
| | | | | | -- GnuPG-bug-id: 5299
* python: Allow returning signatures made by unknown keys in `decrypt`Jasper Spaans2021-06-242-3/+12
| | | | | | | | | | -- This functionality got dropped somewhere after 1.12, as part of the cleanup of the `Context.decrypt` call signature. Reintroduce it again, now using an explicit keyword argument `filter_signatures` (which defaults to hiding signatures by unknown keys). GnuPG-bug-id: 5292
* qt: Extend SignKeyJob to create signatures with expiration dateIngo Klöcker2021-06-224-3/+181
| | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/signkeyjob.h (SignKeyJob::setExpirationDate): New. * lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::setExpirationDate): New. * lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::Private): Add member m_expiration. (sign_key): Handle expiration date. (QGpgMESignKeyJob::start): Pass expiration date to sign_key. * lang/qt/tests/t-various.cpp (TestVarious::testSignKeyWithoutExpiration, TestVarious::testSignKeyWithExpiration): New. (TestVarious::initTestCase): Add "allow-weak-key-signatures" to gpg.conf. -- This allows Kleopatra (and other users of QGpgme) to create key signatures with expiration date. GnuPG-bug-id: 5336, 5506
* core: Allow specifying an expiration date for key signaturesIngo Klöcker2021-06-227-1/+253
| | | | | | | | | | | | | | | | | | * src/context.h (struct gpgme_context): Add 'cert_expire'. * src/engine-gpg.c (append_args_from_cert_expire): New. (gpg_edit): Set option according to the new flag. * src/gpgme.c (gpgme_release): Free 'cert_expire'. (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "cert-expire". * tests/gpg/Makefile.am (c_tests): Add new test. (gpg.conf): Write "allow-weak-key-signatures" to gpg.conf. * tests/gpg/t-edit-sign.c: New. -- The new context flag "cert-expire" allows setting the expiration date for key signatures created with gpgme_op_interact. GnuPG-bug-id: 5336, 5505
* Update NEWS.Ingo Klöcker2021-06-211-0/+8
| | | | | | | * NEWS: Add news for recent changes -- GnuPG-bug-id: 5421, 5217
* qt: Add missing }Ingo Klöcker2021-06-181-0/+1
| | | | | | | | * lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Add missing }. -- Fixes-commit: 1dca8c2b3c6d6aa3dfd4215c911207f08a3bf9f1 GnuPG-bug-id: 5465
* qt: Add some error loggingIngo Klöcker2021-06-171-2/+5
| | | | | | | | * lang/qt/src/qgpgmenewcryptoconfig.cpp (setURLValueList): Log error if setting config value failed. -- GnuPG-bug-id: 5465
* qt: Do not set empty base DN as query of keyserver URLIngo Klöcker2021-06-171-1/+3
| | | | | | | | | | | * lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Only set non-empty base DN as URL query. -- This makes it possible to differentiate an unset query from an empty query. GnuPG-bug-id: 5465
* qt: Fix API documentationIngo Klöcker2021-06-171-5/+2
| | | | | | | | | * lang/qt/src/signkeyjob.h (SignKeyJob::start, SignKeyJob::setUserIDsToSign, SignKeyJob::setCheckLevel): Fix documentation of parameters. -- GnuPG-bug-id: 5245
* core: New data flags "io-buffer-size" and "sensitive".Werner Koch2021-06-147-39/+214
| | | | | | | | | | | | | | | | | | | | | * src/data.c (_gpgme_data_release): Free buffers. (gpgme_data_seek): Adjust from renamed fields. (gpgme_data_set_flag): Implement new flags. (_gpgme_data_inbound_handler): Allow the use of a malloced buffer. (_gpgme_data_outbound_handler): Ditto. * src/data.h (BUFFER_SIZE): Move out of the struct definition. (struct gpgme_data): Remove pending filed and introduce inbound and outbound fields. * src/conversion.c (_gpgme_wipememory): New. Taken from GnuPG. * src/cJSON.c (wipememory): Use this here too. * tests/run-decrypt.c (main): Add options "--large-buffers" and "--sensitive". -- GnuPG-bug-id: 5478 Signed-off-by: Werner Koch <[email protected]>
* core: Also detect AuthEnvelopedData (AEAD for CMS)Werner Koch2021-06-142-3/+3
| | | | | | * src/data-identify.c (basic_detection): Add OID. Signed-off-by: Werner Koch <[email protected]>
* qt: Flush output after write for QProcess outputAndre Heinecke2021-06-101-1/+11
| | | | | | | | | | | | | | | | | * lang/qt/src/dataprovider.cpp (QIODeviceDataProvider::write): Call waitForBytesWritten. -- The problem here is that QProcess writes into an internal buffer which is written to stdin of the process triggered by a signal/slot connection. That connection is broken when we move the QProcess into our GPGME thread and only restablished when our Job is finished. This caused Kleopatra to basically keep everything when decrypting a large archive in memory and only write it out to the unpack process once the decryption was finished. GnuPG-Bug-Id: T5475
* core,w32: Increase BUFFER_SIZE to 4096Andre Heinecke2021-06-101-0/+4
| | | | | | | | | | | * src/data.h (BUFFER_SIZE): Increase to 4096 for Windows. -- This brings it in line to the PIPE_BUF size on desktop Linux systems. This should increase performance when working with large files on Windows a bit. GnuPG-Bug-Id: T5478
* qt: Explicitly link libgpg-errorAndre Heinecke2021-06-091-1/+1
| | | | | | | | * lang/qt/src/Makefile.am (libqgpgme_la_LIBADD): Explicitly link gpg-error. -- Previously this was implicit from the libassuan flags.
* core: Explicitly add GPG_ERROR_CFLAGSAndre Heinecke2021-06-091-1/+1
| | | | | | | | | * src/Makefile.am (AM_CFLAGS): Add GPG_ERROR_CFLAGS -- This fixes the include directory for libgpg error if it is installed in a different prefix then libassuan. Previously libassuan provided the include directory also implicitly.
* qt: Add separate logging category for result of config loadingIngo Klöcker2021-06-023-7/+6
| | | | | | | | | | | | | | * lang/qt/src/qgpgme_debug.h: Make include guard match file name. * lang/qt/src/qgpgme_debug.h, lang/qt/src/qgpgme_debug.cpp (QGPGME_CONFIG_LOADING_LOG): New. * lang/qt/src/qgpgmenewcryptoconfig.cpp (QGpgMENewCryptoConfig::reloadConfiguration): Use new logging category. -- Use a separate logging category for the extremely noisy logging of the result of config loading to make debug logging more useful. GnuPG-bug-id: 5217
* core: Fix a few checks for number of fields in keylist result parser.Ingo Klöcker2021-06-021-3/+3
| | | | | | | | | * src/keylist.c (keylist_colon_handler): Check for correct number of fields. -- This prevents NULL pointer dereferencing with older versions of gpg that may output less fields.
* qt: Add support for flags in LDAP server optionsIngo Klöcker2021-06-011-27/+48
| | | | | | | | | | | | | | * lang/qt/src/qgpgmenewcryptoconfig.cpp (parseURL): Handle extended LDAP server option syntax. (portToString): New. (splitURL): Append flags to LDAP server option. -- This adds support for the extended syntax of LDAP server options introduced in gpg 2.2.18/2.3. The flags are stored as fragment of a QUrl. GnuPG-bug-id: 5217
* tests: Improve the output of the run-keylist helper.Werner Koch2021-05-281-8/+1
| | | | | | | | | | | | * tests/run-keylist.c (main): Print all infos from the primary key. -- The test tool printed only the computed infos for the key and not the detailed one fro the primary key. The new output better reflects the data structure. Related to GnuPG-bug-id: 5454
* build: _DARWIN_C_SOURCE should be 1.NIIBE Yutaka2021-05-271-1/+1
| | | | | | | | | | * configure.ac (*-apple-darwin*): Set _DARWIN_C_SOURCE 1. -- GnuPG-bug-id: 5440 Reported-by: Jay Freeman Signed-off-by: NIIBE Yutaka <[email protected]>
* build: Update gpg-error.m4NIIBE Yutaka2021-05-271-50/+69
| | | | | | | | * m4/gpg-error.m4: Update from libgpg-error. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* core: Allow for older compilers.Werner Koch2021-05-122-2/+4
| | | | | | | | | | | | | | | * tests/run-verify.c (main): Remove C99-only syntax. * tests/run-threaded.c (start_keylistings): Ditto. -- Older gcc's do not grok this and there is no real need for it. run-verify.c:324: error: ‘for’ loop initial declarations are only allowed in C99 mode run-verify.c:324: note: use option -std=c99 or -std=gnu99 to compile your code Reported-by: Lars Hecking
* core: Make sure to stay ABI compatible.Werner Koch2021-05-121-3/+3
| | | | | | | | | | | * src/gpgme.h.in (struct _gpgme_key_sig): Move trust_scope to the end of the struct. -- Fixes-commit: 276187f6b62a73e92b1c20f589510f80ab9e88d2 Note that we assume that splitting a reserved 28 bit field into 3 fields does not change the ABI.
* cpp: Do not close stdout/stderr when destroying EditInteractorIngo Klöcker2021-05-061-7/+6
| | | | | | | | | | | | | | | * lang/cpp/src/editinteractor.cpp (EditInteractor::Private): Initialize members 'state' and 'debug' in-class. Add member 'debugNeedsClosing'. (EditInteractor::Private::Private): Remove members initializers. Remember if 'debug' needs to be closed. (EditInteractor::Private::~Private): Only close 'debug' if it needs to be closed. -- This fixes the problem that after destroying an edit interactor all debug output went to /dev/null instead of stderr (or stdout) if one enabled debugging of the edit interactors with GPGMEPP_INTERACTOR_DEBUG set to stderr (or stdout).
* qt: Extend SignKeyJob to create trust signaturesIngo Klöcker2021-05-055-5/+629
| | | | | | | | | | | | | | | * lang/qt/src/signkeyjob.h (SignKeyJob::setTrustSignature): New. * lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmesignkeyjob.cpp (QGpgMESignKeyJob::setTrustSignature): New. * lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Handle trust signatures. (QGpgMESignKeyJob::start): Pass trust signature attributes to sign_key. (QGpgMESignKeyJob::setTrustSignature): New. -- This allows Kleopatra to create trust signatures for trusted introducers. GnuPG-bug-id: 5245, 5421
* qt: Pimpl QGpgMESignKeyJobIngo Klöcker2021-05-052-43/+41
| | | | | | | | | | | | | | | | | | | * lang/qt/src/qgpgmesignkeyjob.h: Remove unneeded includes. Include <memory>. (QGpgMESignKeyJob): Remove all member variables. Add pimpl pointer. * lang/qt/src/qgpgmesignkeyjob.cpp: Include <QString>. Don't include <memory>. (QGpgMESignKeyJob::Private): New. (QGpgMESignKeyJob::QGpgMESignKeyJob): Remove initialization of removed members. Initialize d. (QGpgMESignKeyJob::start, QGpgMESignKeyJob::setUserIDsToSign, QGpgMESignKeyJob::setCheckLevel, QGpgMESignKeyJob::setExportable, QGpgMESignKeyJob::setSigningKey, QGpgMESignKeyJob::setNonRevocable, QGpgMESignKeyJob::setRemark, QGpgMESignKeyJob::setDupeOk): Adapt to move of member variables to pimpl. -- GnuPG-bug-id: 5245, 5421
* cpp: Add support for trust signatures to sign key edit interactorIngo Klöcker2021-05-052-10/+45
| | | | | | | | | | | | | | | | * lang/cpp/src/gpgsignkeyeditinteractor.h, lang/cpp/src/gpgsignkeyeditinteractor.cpp (GpgSignKeyEditInteractor::setTrustSignatureTrust): New. (GpgSignKeyEditInteractor::setTrustSignatureDepth): New. (GpgSignKeyEditInteractor::setTrustSignatureScope): New. * lang/cpp/src/gpgsignkeyeditinteractor.cpp (GpgSignKeyEditInteractor::Private::Private): Initialize new member. (makeTable): Add new transition. Fix typos in existing transitions. (GpgSignKeyEditInteractor::action): Handle SET_TRUST_VALUE, SET_TRUST_DEPTH, and SET_TRUST_REGEXP. -- GnuPG-bug-id: 5245, 5421
* cpp: Add getters for the attributes of a trust signatureIngo Klöcker2021-05-053-0/+38
| | | | | | | | | | | | * lang/cpp/src/key.h (TrustSignatureTrust): New enum. * lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::isTrustSignature): New. (UserID::Signature::trustValue): New. (UserID::Signature::trustDepth): New. (UserID::Signature::trustScope): New. -- GnuPG-bug-id: 5245, 5420
* core: Extend gpgme_key_sig_t with trust signature members.Ingo Klöcker2021-05-056-1/+52
| | | | | | | | | | | | | | * src/gpgme.h.in (struct _gpgme_key_sig): Add fields 'trust_depth', 'trust_value', and 'trust_scope'. * src/key.c (gpgme_key_unref): Free trust_scope. * src/keylist.c (keylist_colon_handler): Set the fields. * tests/run-keylist.c (main): Print the fields. -- The trust signature values are part of gpg's output since the year 2003. This now adds support to gpgme. GnuPG-bug-id: 5245, 5419
* doc: Add MIT license notice.Werner Koch2021-03-113-5/+47
| | | | | | | * LICENSES: New. -- Suggested-by: Jiri Kucera <[email protected]>
* core: New flag GPGME_KEYSIGN_FORCE.Werner Koch2021-03-115-0/+20
| | | | | | | | | | * src/gpgme.h.in (GPGME_KEYSIGN_FORCE): New. * src/engine-gpg.c (gpg_keysign): Implement. * tests/run-keysign.c (show_usage): Add option --force -- GnuPG-bug-id: 4584
* qt: Add method for getting config entries for components by entry nameIngo Klöcker2021-03-053-7/+39
| | | | | | | | | | | | | | | | * lang/qt/src/cryptoconfig.h, lang/qt/src/cryptoconfig.cpp (CryptoConfig::entry): Move implementation to cpp. Add overload not requiring a group name. -- The group name is not needed for identifying a config entry because the groups only provide a logical grouping of config entry for user interfaces. To improve usability entries are sometimes moved to a different group, but this shouldn't break existing applications trying to access those entries. The new group-agnostic overload makes applications robust against regrouping of config entries. GnuPG-bug-id: 5217
* core: Remove experimental feature GPGME_EXPORT_MODE_NOUID.Werner Koch2021-02-013-10/+6
| | | | | | | | | | | | | | * src/export.c (export_start): Remove GPGME_EXPORT_MODE_NOUID check. * src/engine-gpg.c (export_common): Ditto. -- Note that this constant was never announed and used only for internal tests. It made it into some release only by accident. The constants is kept in gpgme.h to not break any code but it is non-fucntionals. We do not consider this an ABI break. GnuPG-bug-id: 5284
* Post release updatesWerner Koch2021-01-082-1/+6
| | | | --
* Release 1.15.1gpgme-1.15.1Werner Koch2021-01-085-11/+23
|
* Make distcheck make target a bit more reliable.Werner Koch2021-01-081-1/+1
| | | | * Makefile.am (release): Do not pass --parallel
* core: Make listing of signatures work if only secret keys are listedIngo Klöcker2021-01-053-1/+635
| | | | | | | | | | * src/engine-gpg.c (gpg_keylist_build_options): Add "--with-sig-check" argument if signatures shall be listed. * tests/gpg/t-keylist-secret-sig.c: New. * tests/gpg/Makefile.am (c_tests): Add new test. -- GnuPG-bug-id: 3580
* cpp: Add const-overload of UserID::Signature::operator<Ingo Klöcker2021-01-042-1/+9
| | | | | | | | | lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::Signature::operator<): Add const-overload. Deprecate non-const overload. -- This fixes compilation on FreeBSD with clang 10.
* Qt: Undeprecate QByteArray based start functsAndre Heinecke2021-01-042-2/+2
| | | | | | | | | | | | * lang/qt/src/encryptjob.h, lang/qt/src/signjob.h (start): Undeprecate QByteArray based functions. -- While the QIODevice access might avoid a copy it is more difficult to manage the data and lifetime of the QIODevices in calling code. The QByteArray calls are convienient for small data objects like mails where an in memory copy is not really expensive anymore.
* python: Fix key_export*.NIIBE Yutaka2020-12-031-3/+3
| | | | | | | | | | | * lang/python/src/core.py (key_export): Just raise an error. (key_export_minimal, key_export_secret): Ditto. -- GnuPG-bug-id: 5149 Fixes-commit: 7faef33d13fa8efce152ca7aa6e9d39030c1cf08 Signed-off-by: NIIBE Yutaka <[email protected]>
* core: Call _gpgme_passphrase_status_handler when exporting keys.NIIBE Yutaka2020-11-241-0/+4
| | | | | | | | | * src/export.c (export_status_handler): Call the handler. -- Fixes-commit: 3382ecb17eb5d2a373cf2eccb301854fff42f6aa Signed-off-by: NIIBE Yutaka <[email protected]>
* Revert "cpp: Use portable off_t size_t"Andre Heinecke2020-11-206-11/+150
| | | | | | | | | This reverts commit 88294023c196497cfa6737be262c8b0c09d2a3ce. -- This commit was too early and i needed to test more this is breaking more then it helps so for now revert it before we can do a proper solution.
* m4: Update with newer autoconf constructs.NIIBE Yutaka2020-11-201-2/+2
| | | | | | * src/gpgme.m4: Replace AC_HELP_STRING to AS_HELP_STRING. Signed-off-by: NIIBE Yutaka <[email protected]>
* cpp: Use portable off_t size_tAndre Heinecke2020-11-186-150/+11
| | | | | | | | | | | | | | | | | * configure.ac: Configure cpp data.h.in * lang/cpp/src/Makefile.am: Generate data.h * lang/cpp/src/data.cpp, lang/cpp/src/data.h: Use portable types. * lang/qt/src/Makefile.am: Include build dir. * lang/qt/tests/makefile.am: Include build dir. -- These kind of patches have been around for a while, IMO this should not create an ABI incompatbility for cases where it already works because the types should be the same so I think this is not an interface break. GnuPG-Bug-Id: T3996
* qt: Avoid empty "[email protected]" signature notationsIngo Klöcker2020-11-181-1/+1
| | | | | | | | | * lang/qt/src/qgpgmesignkeyjob.cpp (sign_key): Check remark for being an empty string instead of a null QString. -- GnuPG-bug-id: 5142 Co-authored-by: Daniel Kahn Gillmor
* build: Update with newer autoconf constructs.NIIBE Yutaka2020-11-184-25/+56
| | | | | | | | | | * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE. Use AS_HELP_STRING instead of AC_HELP_STRING. * m4/libtool.m4: Update from libgpg-error. * m4/gpg-error.m4: Update from libgpg-error. * m4/libassuan.m4: Update from libassuan. Signed-off-by: NIIBE Yutaka <[email protected]>
* qt: Fix export of qDebug GpgME::Error overloadAndre Heinecke2020-11-121-0/+1
| | | | * lang/qt/src/debug.cpp: Include debug.h to get the export decl.
* build: Use ~/.gnupg-autogen.sh for the release targetsWerner Koch2020-11-121-9/+21
| | | | * Makefile.am (sign-release): Use global config vars.
* Post release updatesWerner Koch2020-11-122-1/+8
|