aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-09-21cpp: Avoid missing returns in non-void functionsAndreas Stieger3-0/+4
* lang/cpp/src/context.cpp (Context::signaturePolicyURL): return nullptr on default (to_tofu_policy_t): add default case for unknown * lang/cpp/src/key.cpp (Key::primaryFingerprint): return nullptr on default * lang/cpp/src/tofuinfo.cpp (GpgME::TofuInfo::policy): add default case for unknown Signed-off-by: Andreas Stieger <[email protected]> Signed-off-by: Andre Heinecke <[email protected]>
2016-09-16cpp: Add support for gpgme_op_tofu_policyAndre Heinecke2-0/+35
* src/context.cpp, src/context.h (setTofuPolicy, setTofuPolicyStart): New.
2016-09-16cpp: Declare sizes of tofu-info enumsAndre Heinecke1-2/+2
* lang/cpp/src/tofuinfo.h (Policy, Validity): Declare sizes. -- This is a quick ABI break before the release so that we can easier extend them in the future. All new enums in public API should be declared with a size from now on.
2016-09-16cpp: Silence use of deprecated function warning.Werner Koch1-0/+9
* lang/cpp/src/context.cpp (GpgME): Use pragma to silence wardning. Signed-off-by: Werner Koch <[email protected]>
2016-09-07core,cpp: Extend the TOFU information.Werner Koch2-8/+35
* src/gpgme.h.in (struct _gpeme_tofu_info): Rename FIRSTSEEN to SIGNFIRST and LASTSEEN to SIGNLAST. Add ENCRFIST and ENCRLAST. * src/keylist.c (parse_tfs_record): Parse to ENCRFIRST and ENCRLAST. * src/verify.c (parse_tofu_stats): Ditto. * tests/run-keylist.c (main): Adjust and print encrypt stats. * tests/run-verify.c (print_result): Ditto. * lang/cpp/src/tofuinfo.h (TofuInfo): Rename firstSeen to signFirst and lastSeen to signLast. Add encrCount, encrFirst and encrLast. * lang/cpp/src/tofuinfo.cpp (encrCount, encrFirst, encrLast): New. -- The latest GnuPG commits have the needed changes but we also allow the use of currently released GnuPG version. Signed-off-by: Werner Koch <[email protected]>
2016-09-05cpp: Add convenience update function to a keyAndre Heinecke2-0/+28
* lang/cpp/src/key.cpp (Key::update): New. * lang/cpp/src/key.h: Update accordingly. -- This function helps if you have an incomplete key or want to make sure all info in a key is complete (e.g. validity / tofuinfo)
2016-09-05cpp: Add ostream operators for key and uidAndre Heinecke2-0/+42
* lang/cpp/src/key.cpp (Key, UserID): Add ostream operator. * lang/cpp/src/key.h: Update accordingly. -- This is helpful debugging / showing the state of a key / uid and tofuinfo.
2016-08-25cpp: Add WithTofu Keylist ModeAndre Heinecke3-1/+6
* lang/cpp/src/context.cpp: Handle WithTofu. * lang/cpp/src/global.h (KeyListMode): Add WithTofu. * lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Handle WithTofu.
2016-08-25Cpp: Change firstSeen / lastSeen return valuesAndre Heinecke2-6/+6
* lang/cpp/src/tofuinfo.cpp, lang/cpp/src/tofuinfo.h (TofuInfo::firstSeen, TofuInfo::lastSeen): Change return values to unsigned long and update doc.
2016-08-25Cpp: Add wrapper for gpgme_get_dirinfoAndre Heinecke2-0/+14
* lang/cpp/src/context.cpp (dirInfo): New. * lang/cpp/src/global.h (dirInfo): New.
2016-08-25Cpp: Add support for spawn engineAndre Heinecke3-1/+66
* lang/cpp/src/context.cpp (Context::spawn, Context::spawnAsync): New. * lang/cpp/src/context.h: Add prototypes. (SpawnFlags): New. * lang/cpp/src/global.h (SpawnEngine): Added.
2016-08-24cpp: Get rid of AssuanResult due to its deprecation.Werner Koch6-203/+40
* lang/cpp/src/assuanresult.cpp: Remove. * lang/cpp/src/assuanresult.h: Remove. * lang/cpp/src/Makefile.am: Remove these files. * lang/cpp/src/context.cpp: Remove header assuanresult.h (assuanTransact): Change return type to Error. Use gpgme_op_assuan_transact_ext. (startAssuanTransaction): Change return type to Error. (assuanResult): Remove * lang/cpp/src/context.h (assuanResult): Adjust for changes. Signed-off-by: Werner Koch <[email protected]>
2016-08-24Cpp: Add Key to signatureAndre Heinecke2-0/+20
* lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h (Signature::key): New.
2016-08-24Cpp: Use fpr field for primaryFingerprintAndre Heinecke1-5/+10
* lang/cpp/src/key.cpp (Key::primaryFingerprint): Return fpr value if available. -- Should not be necessary but we might have an incomplete key without subkeys but the fingerprint already set in gpgme's data type.
2016-08-23Cpp: Move tofuinfo from signature to useridAndre Heinecke6-72/+15
* lang/cpp/src/key.cpp (UserID::tofuInfo): New. * lang/cpp/src/key.h: Update accordingly. * lang/cpp/src/tofuinfo.cpp: Remove dropped fields. * lang/cpp/src/tofuinfo.h: Update accordingly. * lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h: Remove tofu info. * lang/qt/tests/t-tofuinfo.cpp: Disable for now. -- With be4ff75d7 Tofu info now lives with a UserID Object. While this breaks API it was not yet released.
2016-08-17Cpp: Fix some pedantic warningsAndre Heinecke3-4/+4
* lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::getKeysFromRecipients): Remove ignored / invalid const qualifier. * lang/cpp/src/result.h: Don't shadow error function in ctor.
2016-08-12Cpp: Provide size-hint for seekable and mem dataAndre Heinecke1-0/+10
* lang/cpp/src/data.cpp (GpgME::Data::Data): Set size-hint for mem and DataProvider based Data. -- This fixes the case that QGpgME did not have a total value for progress as the size was unknown.
2016-08-10Cpp: Handle empty recipients consistentlyAndre Heinecke2-38/+38
* lang/cpp/src/context.cpp (Context::getKeysFromRecipients): New helper. (Context::encrypt, Context::startEncryption, Context::signAndEncrypt) (Context::startCombinedSigningAndEncryption): Use new helper. * lang/cpp/src/context.h (Context::getKeysFromRecipients): Add as private helper. -- bf776ce was incomplete as the code to handle recpients was duplicated four times. This is now unified and constently uses a nullptr instead of an empty array.
2016-08-10Cpp: Clarify ownership of provider classesAndre Heinecke1-0/+14
* lang/cpp/src/context.h: Note that the context does not take ownership of providers.
2016-08-09Cpp: Add support for all EncryptionFlagsAndre Heinecke2-1/+26
* lang/cpp/src/context.h (EncryptionFlags): Extend. * lang/cpp/src/context.cpp (encryptflags2encryptflags): Ditto.
2016-08-09Cpp: Fix simple symmetric encryptionAndre Heinecke1-1/+2
* lang/cpp/src/context.cpp (Context::encrypt): If no recipients are provided encrypt with NULL and not an empty array. -- Sending an empty array leads to an invalid argument error.
2016-07-14Cpp: Add EngineInfo::Version classAndre Heinecke2-0/+61
* lang/cpp/src/engineinfo.cpp (EngineInfo::engineVersion): New. * lang/cpp/src/engineinfo.h (EngineInfo::engineVersion): Declare. (EngineInfo::Version): Small helper to work with versions.
2016-07-13core: New GPGME_DATA_ENCODING_MIME.Werner Koch2-1/+4
* src/gpgme.h.in (GPGME_DATA_ENCODING_MIME): New. * src/data.c (gpgme_data_set_encoding): Adjust check. * src/engine-gpg.c (have_gpg_version): New. (gpg_encrypt, gpg_encrypt_sign): Pass flag '--mimemode'. (gpg_sign): Ditto. * lang/cpp/src/data.h (GpgME): Add MimeEncoding. * lang/cpp/src/data.cpp (encoding, setEncoding): Support MimeEncoding. * src/gpgme-tool.c (server_data_encoding): Add flag --mime. -- This feature allows an application to declare that the encrypted or signed data is a valid MIME part. What is missing is a way to return that information to the application after decryption/verification. This can be done by setting the encoding of the output data object; however this requires some internal additions to our processing model. Signed-off-by: Werner Koch <[email protected]>
2016-07-13Cpp: Add feature enum for new identifyAndre Heinecke2-0/+3
* lang/cpp/src/context.cpp (supported_features2): Add BinaryAndFineGrainedIdentify * lang/cpp/src/global.h (Feature2): ditto. -- This is mostly for compatible code with KF5::Gpgmepp where there is no hard requirement against gpgme 1.7. With 1.7 a version check would also suffice.
2016-07-12Qt/Cpp: Add version headersAndre Heinecke2-1/+35
* lang/cpp/src/gpgmepp_version.h.in, lang/qt/src/qgpgme_version.h.in: New. Version information. * lang/qt/src/Makefile.am, lang/cpp/src/Makefile.am: Add them. * configure.ac: Configure them. -- The version headers are common practice in KDE Frameworks and were installed for KF5Gpgmepp and Libkleo respectively.
2016-07-12Qt/Cpp: Add license blurb to export headersAndre Heinecke1-0/+20
* lang/cpp/src/gpgmepp_export.h, lang/qt/src/qgpgme_export.h: Add license blurb.
2016-07-07cpp: Fix distcheck.Justus Winter1-0/+2
* lang/cpp/src/Makefile.am (CLEANFILES): Remove generated file. Signed-off-by: Justus Winter <[email protected]>
2016-07-06Cpp: Expose gpgme_pubkey_algo_nameAndre Heinecke2-1/+15
* lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithmAsString): New static variant. * lang/cpp/src/key.h: Declare function. Clarify comment about name mismatch.
2016-07-06Cpp: Add PubkeyAlgo enumAndre Heinecke2-3/+19
* lang/cpp/src/key.h (Subkey::PubkeyAlgo): New enum. (Subkey::publicKeyAlgorithm): Change return type. * lang/cpp/src/key.cpp (Subkey::publicKeyAlgorithm): Use enum.
2016-07-04Cpp: Add support for TOFU_CONFLICT sigsumAndre Heinecke2-1/+6
* lang/cpp/src/verificationresult.cpp (GpgME::Signature::Summary): Handle TOFU_CONFLICT. * lang/cpp/src/verificationresult.h (Summary): Add TofuConflict.
2016-07-04Cpp: Add support for pinentry_modeAndre Heinecke2-0/+50
* lang/cpp/src/context.cpp (Context::pinentryMode): Return mode. (Context::setPinentryMode): Set mode. * lang/cpp/src/context.h (PinentryMode): Add enum.
2016-07-01Cpp: Add TofuInfo to signaturesAndre Heinecke5-2/+338
* lang/cpp/src/tofuinfo.cpp, lang/cpp/src/tofuinfo.h: New class. * lang/cpp/src/verificationresult.cpp (Signature::tofuInfo): New. (VerificationResult::Private): Handle tofu info. (GpgME::operator<<(std::ostream &os, const Signature &sig)): Include TofuInfo in dump. * lang/cpp/src/verificationresult.h (Signature::tofuInfo): New. * lang/cpp/src/Makefile.am (main_sources, gpgmepp_headers): Add new files. * configure.ac (LIBGPGMEPP_LT_REVISION): Bump for new API.
2016-06-27Cpp: Expose new data_identify valuesAndre Heinecke2-1/+5
* lang/cpp/src/data.cpp (GpgME::Data::type): Handle PGP Encrypted and Signature. * lang/cpp/src/data.h: Add values accordingly.
2016-06-27Cpp: Do not treat KEYEXPIRED as errorAndre Heinecke1-2/+0
* lang/cpp/src/editinteractor.cpp (status_to_error): No error for KEYEXPIRED. -- As keyexpired status is sent even if a subkey is expired we can not treat it as a global error.
2016-06-01Cpp: Use whitelist for status messagesAndre Heinecke1-12/+8
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse): Use whitelist instead of blacklist. -- This should be more robust when new status messages are added. The whitelist is the same GPA uses. Fixes Qt's t-ownertrust.
2016-05-20Cpp: Ignore STATUS_KEY_CONSIDERED when editingAndre Heinecke1-0/+1
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse): Handle GPGME_STATUS_KEY_CONSIDERED.
2016-05-17Qt / Cpp: Port auto_ptr to unique_ptrAndre Heinecke3-38/+38
* lang/cpp/src/context.cpp, lang/cpp/src/context.h, lang/cpp/src/context_p.h (Context::createForEngine), (Context::edit, Context::startEditing), (Context::takeLastEditInteractor, Context::cardEdit), (Context::startCardEditing, Context::takeLastCardEditInteractor), (Context::assuanTransact, Context::startAssuanTransaction), (Context::takeLastAssuanTransaction): Port to unique_ptr. * lang/qt/src/qgpgmeadduseridjob.cpp, lang/qt/src/qgpgmechangeexpiryjob.cpp, lang/qt/src/qgpgmechangeownertrustjob.cpp, lang/qt/src/qgpgmechangepasswdjob.cpp, lang/qt/src/qgpgmesignkeyjob.cpp: Update accordingly. -- This is another API break but as we already broke API with GpgME++ and QGpgME from KDE Frameworks this is a good time to do this to avoid using a deprected C++ class in the API.
2016-05-11Cpp: Ensure gpgme.h is taken from current buildAndre Heinecke1-1/+2
* lang/cpp/src/Makefile.am (AM_CPPFLAGS): Add gpgme.h location. -- This fixes the build in case an incompatible gpgme.h is also installed in other include locations.
2016-05-10Qt / Cpp: Fix make distgpgmeppAndre Heinecke1-2/+5
* lang/cpp/src/Makefile.am (EXTRA_DIST): Fix typo. (private_gpgmepp_headers): New. Private headers. (libgpgmepp_la_SOURCES): Add private headers. * lang/qt/src/Makefile.am (t_keylist_SOURCES): Remove non existent header.
2016-05-06Cpp: Handle PINENTRY_LAUNCHED status lineAndre Heinecke1-0/+1
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse): Add GPGME_STATUS_PINENTRY_LAUNCHED. -- PINENTRY_LAUNCHED needs no response in any Job. This fixes Jobs which errored out on unknown status lines.
2016-04-12Cpp: Add support for pubkey_algo_nameAndre Heinecke2-0/+30
* lang/cpp/src/key.cpp (Subkey::algoName): New. * lang/cpp/src/key.h: Declare.
2016-04-12Cpp: Add support for gpgme_data_identifyAndre Heinecke2-0/+34
* lang/cpp/src/data.cpp (Data::type): New. * lang/cpp/src/data.h (Data::Type): New enum mapping.
2016-04-11Cpp: Add string comparators for keysAndre Heinecke2-0/+56
* lang/cpp/src/global.h (GPGMEPP_MAKE_STRCMP): New. (_gpgmepp_strcmp): NULL save wrapper around std::strcmp. * lang/cpp/src/key.h: Add comparators for various attributes. -- This was taken from libkleo predicates.h. Appears generally useful.
2016-04-11Cpp: Remove last usages of boostAndre Heinecke3-23/+24
* lang/cpp/src/configuration.cpp: Use std::remove_pointer. (Configuration::operator<<): std::for_each. * lang/cpp/src/context.cpp: Delete manually instead of scoped ptr. * lang/cpp/src/scdgetinfoassuantransaction.cpp: Use static_assert. (to_reader_list): Tokenize with getline.
2016-04-04Add pthread in gpgmepp configAndre Heinecke1-2/+2
* lang/cpp/src/GpgmeppConfig.cmake.in.in: Add pthread.
2016-04-03Cpp / Qt: Reduce boost usage (memory and tuple)Andre Heinecke22-78/+60
* cpp/src/assuanresult.h, cpp/src/configuration.cpp, cpp/src/configuration.h, cpp/src/data.h, cpp/src/decryptionresult.h, cpp/src/defaultassuantransaction.cpp, cpp/src/encryptionresult.cpp, cpp/src/encryptionresult.h, cpp/src/engineinfo.h, cpp/src/gpgagentgetinfoassuantransaction.cpp, cpp/src/gpgsignkeyeditinteractor.cpp, cpp/src/importresult.cpp, cpp/src/importresult.h, cpp/src/key.h, cpp/src/keygenerationresult.h, cpp/src/keylistresult.h, cpp/src/notation.h, cpp/src/signingresult.cpp, cpp/src/signingresult.h, cpp/src/verificationresult.cpp, cpp/src/verificationresult.h, cpp/src/vfsmountresult.h, qt/src/dataprovider.cpp, qt/src/dataprovider.h, qt/src/decryptjob.h, qt/src/decryptverifyjob.h, qt/src/downloadjob.h, qt/src/encryptjob.h, qt/src/qgpgmeadduseridjob.cpp, qt/src/qgpgmechangeexpiryjob.cpp, qt/src/qgpgmechangeownertrustjob.cpp, qt/src/qgpgmechangepasswdjob.cpp, qt/src/qgpgmedecryptjob.cpp, qt/src/qgpgmedecryptjob.h, qt/src/qgpgmedecryptverifyjob.cpp, qt/src/qgpgmedecryptverifyjob.h, qt/src/qgpgmedeletejob.cpp, qt/src/qgpgmedownloadjob.cpp, qt/src/qgpgmedownloadjob.h, qt/src/qgpgmeencryptjob.cpp, qt/src/qgpgmeencryptjob.h, qt/src/qgpgmeexportjob.cpp, qt/src/qgpgmeexportjob.h, qt/src/qgpgmeimportfromkeyserverjob.cpp, qt/src/qgpgmeimportfromkeyserverjob.h, qt/src/qgpgmeimportjob.cpp, qt/src/qgpgmeimportjob.h, qt/src/qgpgmekeygenerationjob.cpp, qt/src/qgpgmekeygenerationjob.h, qt/src/qgpgmekeylistjob.cpp, qt/src/qgpgmekeylistjob.h, qt/src/qgpgmelistallkeysjob.cpp, qt/src/qgpgmelistallkeysjob.h, qt/src/qgpgmenewcryptoconfig.cpp, qt/src/qgpgmenewcryptoconfig.h, qt/src/qgpgmesignencryptjob.cpp, qt/src/qgpgmesignencryptjob.h, qt/src/qgpgmesignjob.cpp, qt/src/qgpgmesignjob.h, qt/src/qgpgmesignkeyjob.cpp, qt/src/qgpgmeverifydetachedjob.cpp, qt/src/qgpgmeverifydetachedjob.h, qt/src/qgpgmeverifyopaquejob.cpp, qt/src/qgpgmeverifyopaquejob.h, qt/src/signencryptjob.h, qt/src/signjob.h, qt/src/threadedjobmixin.h, qt/src/verifydetachedjob.h, qt/src/verifyopaquejob.h: Reduce boost usage. -- This was mostly done with search and replace to change the templates / classes from memory and tuple to their c++11 equivalents.
2016-04-02Add additional include path in config filesAndre Heinecke1-1/+1
* lang/cpp/src/GpgmeppConfig.cmake.in.in lang/qt/src/QGpgmeConfig.cmake.in.in: Include directory above headers. -- This ensures that code using #inlcude <gpgme++/header.h> still works.
2016-03-08Add qgpgme as qt language bindingAndre Heinecke2-14/+15
* configure.ac: Add version defines. Check for qt if neccessary. * lang/README: Mention qt * lang/cpp/src/GpgmeppConfig.cmake.in.in: Remove comment. Find qgpgme. * lang/qt/src/Makefile.am: New. Build qgpgme. * lang/qt/README, lang/qt/src/Makefile.am, lang/qt/src/QGpgmeConfig.cmake.in.in, lang/qt/src/QGpgmeConfigVersion.cmake.in, lang/qt/src/dataprovider.cpp, lang/qt/src/dataprovider.h, lang/qt/src/qgpgme_export.h, m4/qt.m4: New. * lang/cpp/src/GpgmeppConfig.cmake.in.in, lang/cpp/src/Makefile.am: Fix generated config file. -- For now this is just the dataprovider which was part of the KF5 Gpgmepp QGpgme variant. This is very thin but a useful class which is used downstream.
2016-03-02Add version info for gpgmeppAndre Heinecke1-0/+2
* lang/cpp/src/Makefile.am (libgpgmepp_la_LDFLAGS): Add version info.
2016-03-02Add cmake configuration filesAndre Heinecke3-0/+167
* configure.ac: Add libgpgmepp version. Configure cmake files. * lang/cpp/src/Makefile.am: Add targets for cmake files. (EXTRA_DIST): Add cmake files. -- This should smooth the transition for downstream users that have worked with KF5::Gpgmepp previously.