aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* cpp: Use cstdlib getenv for portabilityAndre Heinecke2020-08-061-1/+2
| | | | | | | | | | * lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private): Use std::getenv. -- This should fix compiling on MacOS X GnuPG-Bug-Id: T5013
* cpp: Add support for gpgme_op_setexpireIngo Klöcker2020-08-042-1/+72
| | | | | | | | | | | | | | | | * lang/cpp/src/context.cpp (Context::setExpire, Context::startSetExpire): New. (Context::getLFSeparatedListOfFingerprintsFromSubkeys): New helper. * lang/cpp/src/context.h (Context::SetExpireFlags): New enum. (Context::setExpire, Context::startSetExpire): Add prototypes. (Context::getLFSeparatedListOfFingerprintsFromSubkeys): Add as private helper. -- GnuPG-bug-id: 5003
* cpp: Add ostream operator for subkeyIngo Klöcker2020-08-042-0/+23
| | | | | | | | * lang/cpp/src/key.cpp (Subkey): Add ostream operator. * lang/cpp/src/key.h: Update accordingly. -- This is helpful for debugging / showing the state of a subkey.
* qt, cpp: Support export modesAndre Heinecke2020-07-162-10/+46
| | | | | | | | | | | | | * lang/cpp/context.cpp, lang/cpp/context.h (Context::startPublicKeyExport, Context::exportPublicKeys): Extend with flags paramenter. (Context::ExportMode): New. * lang/qt/src/exportjob.h (ExportJob::setExportMode): New. * lang/qt/src/qgpgmeexportjob.cpp, lang/qt/src/qgpgmeexportjob.h: Update accordingly. -- This adds the C++ and Qt API for export modes.
* core: New keylist mode GPGME_KEYLIST_MODE_WITH_KEYGRIP.Werner Koch2020-07-155-3/+10
| | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_KEYGRIP): New. * src/gpgme-json.c (op_keylist): New flag "keygrip". * src/engine-gpg.c (gpg_keylist_build_options): Pass the options. * lang/cpp/src/global.h (WithKeygrip): New. * lang/cpp/src/context.cpp: Add check. * lang/cpp/src/key.cpp (Key::update): Handle WithKeygrip. * lang/cpp/src/verificationresult.cpp: Ditto. * lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Ditto. -- GnuPG-bug-id: 4939 Signed-off-by: Werner Koch <[email protected]>
* cpp, qt: Use uidhash to select uids for signingAndre Heinecke2019-12-134-1/+23
| | | | | | | | | | | | | | | | * lang/cpp/src/gpgsignkeyeditinteractor.cpp (action): Use uidhash instead of number. (GpgSignKeyEditInteractor::setKey): New. * lang/cpp/src/gpgsignkeyeditinteractor.h: Update accordingly. * lang/cpp/src/key.h, lang/cpp/src/key.cpp: Wrap uidhash. * lang/qt/src/qgpgmesignkeyjob.cpp: Set the key. -- Using the uidhash avoids problems when the user ids on --edit-key are different ones then the uids captured by gpgme when listing keys. Or if they are in a different order. This can happen with cached keys or keys with user attributes.
* cpp: Add API to obtain mutliple remarksAndre Heinecke2019-11-042-0/+20
| | | | | | | | | | | * lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::remarks): New. * NEWS: Mention this. -- This can be useful if we want to show remarks made by others, too. For: GnuPG-Bug-Id: T4734
* cpp: Fix dupe_ok state for single uidAndre Heinecke2019-11-041-0/+1
| | | | | * lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable): Add transition from command to dupe_ok
* cpp: Minor optimization in remark lookupAndre Heinecke2019-11-011-2/+6
| | | | | | | | * lang/cpp/src/key.cpp (UserID::remark): Use C-API. -- The other parts of that function already use the C API so we can also avoid function calls for the keyListMode.
* cpp: Fix adding duplicated sigs on multiple uidsAndre Heinecke2019-11-011-0/+5
| | | | | | | | | | | | * lang/cpp/src/gpgsignkeyeditinteractor.cpp: Add another state DUPE_OK2 to allow gpg looping over all uids. -- When duplicated signatures should be added to multiple user ids GnuPG will ask for each uid so we have to add a transition for that. GnuPG-Bug-Id: T4734
* cpp: Add env var to control editinteractor debugAndre Heinecke2019-11-011-2/+17
| | | | | | | | | | | | * lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private): Read "GPGMEPP_INTERACTOR_DEBUG" env var. (EditInteractor::Private::~Private): Close debug file. -- While it was possible for the application to control the debug through setDebugChannel it is often times helpful to just debug without changing the application using GPGME
* cpp: Add support for multiple keysigs in editAndre Heinecke2019-10-292-1/+19
| | | | | | | | | | | | | | | | * lang/cpp/src/gpgsignkeyeditinteractor.cpp (GpgSignKeyEditInteractor::setDupeOk): New. (makeTable): Add new tansitions. (SignKeyState): Add DUPE_OK Status. (GpgSignKeyEditInteractor::action): Handle DUPE_OK. (GpgSignKeyEditInteractor::Private::Private): Carry flag. -- When extended-edit is enabled this can be used to answer the "dupe_ok" query from the edit-key with yes. This is for: GnuPG-Bug-Id: T4734
* cpp: Add convenience API to obtain remarksAndre Heinecke2019-10-292-0/+67
| | | | | | | | | | | * lang/cpp/src/key.h, lang/cpp/src/key.cpp (UserID::remark): New. -- A remark made by one key on another is a signature notation on a user id certification signature with the name "[email protected]". This helps with: GnuPG-Bug-Id: T4734
* cpp: Minor coding style fixAndre Heinecke2019-10-291-3/+2
| | | | --
* cpp: Fix initialization warningAndre Heinecke2019-05-031-1/+1
| | | | | * lanc/cpp/src/gpggencardkeyinteractor.cpp (GpgGenCardKeyInteractor::Private): Fix initialization warning.
* cpp: Add wrapper for gpgme_set_global_flagAndre Heinecke2019-04-242-0/+8
| | | | | | | | * lang/cpp/src/context.cpp (setGlobalFlag): New. * lang/cpp/src/global.h (setGlobalFlag): Export it. -- GnuPG-Bug-Id: T4471
* cpp: Fix GenCardKeyInteractor and extend itAndre Heinecke2019-03-262-2/+139
| | | | | | | | | | | | | | * NEWS: Mention interface change. * lang/cpp/src/gpggencardkeyinteractor.cpp (GpgGenCardKeyInteractor::setAlgo): New. (GpgGenCardKeyInteractor::action), (GpgGenCardKeyInteractor::nextState: Handle new interface. -- Tested that this workes with the old interface of GnuPG 2.2.5 and the new interface since GnuPG 2.2.6 GnuPG-Bug-Id: T4428
* cpp: Fix Error::hasSystemErrorAndre Heinecke2019-03-131-1/+1
| | | | | | | | | * lang/cpp/src/context.cpp (Error::hasSystemError): Invert logic to do what it says. -- This is safe because according to codesearch it is only used in QGpgME
* cpp: Add ostream operators for import resultAndre Heinecke2019-02-212-1/+46
| | | | | * lang/cpp/src/importresult.cpp: Add ostream operators. * lang/cpp/src/importresult.h: Update accordingly.
* cpp: Make GpgME::Data::toKeys really constAndre Heinecke2019-02-211-0/+2
| | | | | | | | * lang/cpp/src/data.cpp (GpgME::Data::toKeys): Rewind afterards. -- This fixes unexpected behavior that the seek pointer is changed after calling the const toKeys.
* build: With LD_LIBRARY_PATH defined, use --disable-new-dtags.NIIBE Yutaka2019-01-161-1/+1
| | | | | | | | | | | | | * configure.ac (LDADD_FOR_TESTS_KLUDGE): New for --disable-new-dtags. * tests/Makefile.am (LDADD): Use LDADD_FOR_TESTS_KLUDGE. * lang/cpp/tests/Makefile.am, lang/qt/tests/Makefile.am: Likewise. * tests/gpg/Makefile.am, tests/gpgsm/Makefile.am: Likewise. * tests/json/Makefile.am, tests/opassuan/Makefile.am: Likewise. -- GnuPG-bug-id: 4298 Signed-off-by: NIIBE Yutaka <[email protected]>
* qt,cpp: Consistently use nullptr and overrideAndre Heinecke2018-12-0337-250/+252
| | | | | | | | | | | | | | | * lang/cpp/src/Makefile.am, lang/qt/src/Makefile.am (AM_CPPFLAGS): Add suggest-override and zero-as-null-pointer-constant warnings. * lang/cpp/src/*, lang/qt/src/*: Consistenly use nullptr and override. -- This was especially important for the headers so that downstream users of GpgME++ or QGpgME do not get flooded by warnings if they have these warnings enabled. It also improves compiler errors/warnings in case of accidental mistakes.
* Add SPDX identifiers to most source filesWerner Koch2018-11-161-4/+3
| | | | | | -- Signed-off-by: Werner Koch <[email protected]>
* spelling: fix misspellingsDaniel Kahn Gillmor2018-11-082-2/+2
| | | | Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* cpp,tests: Add another test runnerAndre Heinecke2018-10-292-1/+188
| | | | | | | | * lang/cpp/tests/run-verify.cpp: New. * lang/cpp/tests/Makefile.am: Update accordingly. -- Add another test runner which helps to find problems on windows.
* cpp: Add some convenience functionsAndre Heinecke2018-10-254-0/+41
| | | | | | | | | | | | | | | | * lang/cpp/src/context.cpp (Context::create): New. * lang/cpp/src/context.h: Update accordingly. * lang/cpp/src/key.cpp, lang/cpp/src/key.h: (Key::isBad, Subkey::isBad, UserID::isBad) (UserID::Signature::isBad): Add shorthand for the isX checks. * NEWS: Mention it. -- I don't know how often I wrote: if (key.isNull() || key.isExpired() || key.isRevoked() ... And for the context it is good practice to use a unique ptr so the API should make it easy.
* doc: use https:// for www.gnu.orgDaniel Kahn Gillmor2018-10-181-1/+1
| | | | | | -- Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* cpp: Add KeyListMode::LocateAndre Heinecke2018-10-091-0/+1
| | | | | | | * cpp/src/global.h (KeyListMode): Add Locate. -- Similar to locate in core.
* cpp: Add first manual testsAndre Heinecke2018-10-095-1/+335
| | | | | | | | | | | | | | * lang/cpp/Makefile.am: Add tests subdir. * lang/cpp/tests/Makefile.am: New. * lang/cpp/tests/README, lang/cpp/tests/run-getkey.cpp, lang/cpp/tests/run-keylist.cpp: New. * configure.ac: Configure tests makefile. -- The autotests for c++ live in lang/qt/tests these tests are more for manual experiments to validate some functionality.
* cpp: Initialize all gpgme_key_t's in contextAndre Heinecke2018-10-091-3/+3
| | | | | | | | | * lang/cpp/src/context.cpp (Context::startKeyListing), (Context::keyListResult, Context::signingKeys): Initialize key. -- "Should" not be neccessary but it's cleaner and would have covered the case of the previous commit.
* cpp: Fix use after free in gencardkeyinteractorAndre Heinecke2018-08-081-5/+4
| | | | | | | | | | | * lang/cpp/src/gpggencardkeyinteractor.cpp (GpgGenCardKeyInteractor::Private::keysize): Change to string. -- The value is only required as string so we can save it this way to avoid the need to convert it for the action command. GnuPG-Bug-Id: T4094
* cpp: Add safety checks for key updateAndre Heinecke2018-07-242-1/+4
| | | | | | | * lang/cpp/src/key.cpp (Key::update): Check that the key is not NULL. * lang/cpp/src/verificationresult.cpp (GpgME::Signature::key): Check for fingerprint.
* cpp: Print origin and last update for key/uidAndre Heinecke2018-07-191-0/+4
| | | | | * lang/cpp/src/key.cpp: Print origin and last update in iostream operators.
* cpp: Add enum mapping for GPGME_AUDIT_LOG_DIAGAndre Heinecke2018-07-052-0/+5
| | | | | * src/context.cpp (to_auditlog_flags): Map DIAG value. * src/context.h (AuditLogFlags): Add it.
* cpp: Fix memory of DecryptionResult::symkeyAlgoAndre Heinecke2018-07-041-0/+7
| | | | | * lang/cpp/src/decryptionresult.cpp (Private, ~Private): strdup the symkey algo.
* cpp: Add proper gpgme_op_createkeyAndre Heinecke2018-06-082-0/+25
| | | | | | | | | | * lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::createKeyEx): New. -- The createKeyEx function follows the usual pattern that the synchronous call returns a result directly while for the async an extra call is neccessary.
* cpp: Add gpgme_(get)set_ctx_flagAndre Heinecke2018-06-012-0/+14
| | | | | | * NEWS: Mention API extensions. * lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::setFlag, Context::getFlag): New.
* cpp: Add legacy_cipher_nomdcAndre Heinecke2018-06-012-0/+8
| | | | | | | * lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h (DecryptionResult::isLegacyCipherNoMDC): New. --
* cpp: Add gpgme_data_rewind to cpp APIAndre Heinecke2018-05-292-0/+8
| | | | | | | | | | | * lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::rewind): New. * lang/qt/tests/t-various.cpp (testDataRewind): Test it. -- The advantage of this convieniance function in GPGME is that it avoids the messiness that are declarations with off_t. GnuPG-Bug-Id: T3996
* cpp: Expose sessionKey and symkeyAlgoAndre Heinecke2018-05-222-0/+15
| | | | | * lang/cpp/decryptionresult.cpp, lang/cpp/decryptionresult.h (DecryptionResult::symkeyAlgo, DecryptionResult::sessionKey): New.
* cpp: Add origin and last_update to UserIDAndre Heinecke2018-04-192-19/+47
| | | | | | | * NEWS: Mention it. * lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::lastUpdate), (UserID::origin): New. (gpgme_origin_to_pp_origin): New helper.
* cpp: Add origin and last_updateAndre Heinecke2018-04-192-0/+52
| | | | | | * NEWS: mention interface change. * lang/cpp/src/key.cpp (Key::origin, Key::lastUpdate): New. * lang/cpp/src/key.h (Key::Origin): New enum.
* cpp: Expose skipped_v3_keysAndre Heinecke2018-03-152-0/+6
| | | | | | | | * lang/cpp/src/importresult.cpp, lang/cpp/src/importresult.h (ImportResult::numV3KeysSkipped): New. -- GnuPG-Bug-Id: T3776
* cpp: Add shorthand for key locateAndre Heinecke2018-02-162-0/+35
| | | | | * lang/cpp/src/key.cpp (Key::locate): New static helper. * lang/cpp/src/key.h: Update accordingly.
* cpp: Add SpawnShowWindow flagAndre Heinecke2018-02-091-1/+2
| | | | * lang/cpp/src/context.h (SpawnShowWindow): New.
* cpp: Add conveniance Data::toStringAndre Heinecke2018-02-092-0/+17
| | | | | | | * lang/cpp/src/data.h, lang/cpp/src/data.cpp: Add Data::toString. -- I'm lazy and like to waste memory.
* Spelling fixes for comments and docAndre Heinecke2017-12-082-2/+2
| | | | | | | -- Patch provided by ka7 in dev.gnupg.org Differential D423
* cpp: Fix handling of lsig promotionAndre Heinecke2017-12-071-0/+4
| | | | | | | | | | | | * src/gpgsignkeyeditinteractor.cpp (SignKeyState): Add second CONFIRM state. (makeTable): Properly handle local_promote_okay. (action): Handle CONFIRM2. -- This fixes changing a local signature to a "public" signature. GnuPG-Bug-Id: T1649
* cpp: Wrap create_key and create_subkeyAndre Heinecke2017-12-012-0/+76
| | | | | | | * lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::startCreateKey) (Context::createKey, Context::createSubkey) (Context::startCreateSubkey): New.
* cpp: Fix version info comparisonAndre Heinecke2017-09-041-7/+16
| | | | | | | | | | | * lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<): Fix logic. * lang/cpp/src/engineinfo.h (EngineInfo::Version::operator>): New. * NEWS: Mention added API -- This fixes a logic error that 2.2.0 < 2.1.19 would return true.