diff options
author | Andre Heinecke <[email protected]> | 2017-03-24 15:51:26 +0000 |
---|---|---|
committer | Andre Heinecke <[email protected]> | 2017-03-24 15:51:26 +0000 |
commit | 8ad37ecc297f208d0a63783c1ffae33ad4c3c81a (patch) | |
tree | 08a3b041489b7eefbac38185d885080dd93b52b3 /lang/cpp/src/context.h | |
parent | core: New flags GPGME_DECRYPT_UNWRAP and GPGME_ENCRYPT_WRAP. (diff) | |
download | gpgme-8ad37ecc297f208d0a63783c1ffae33ad4c3c81a.tar.gz gpgme-8ad37ecc297f208d0a63783c1ffae33ad4c3c81a.zip |
cpp: Use gpgme_op_decrypt_ex and add new flags.
* lang/cpp/src/context.cpp: New decrypt and decryptVerify functions
that take flags as arguments. Use new variants in old functions.
(Context::setDecryptionFlags): New helper.
(Context::Private::Private): Initialize new member.
* lang/cpp/src/context_p.h (Context::Private::decryptFlags): New.
* lang/cpp/src/context.h (Context::DecryptFlags): New enum.
(Context::EncryptionFlags): Extend for EncryptWrap.
--
The setDecryptionFlags provides a generic way to set decryption
flags for the whole context. This allows existing code to just
keep using the old functions and modify the decryption behavior
in a central place.
Diffstat (limited to 'lang/cpp/src/context.h')
-rw-r--r-- | lang/cpp/src/context.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h index b075bf1b..bec4e39a 100644 --- a/lang/cpp/src/context.h +++ b/lang/cpp/src/context.h @@ -261,14 +261,28 @@ public: // // Crypto Operations // - // + + enum DecryptionFlags { + // Keep in line with core's flags + DecryptNone = 0, + DecryptVerify = 1, + DecryptUnwrap = 128, + DecryptMaxValue = 0x80000000 + }; // // Decryption // + // Alternative way to set decryption flags as they were added only in + // 1.9.0 and so other API can still be used but with 1.9.0 additionally + // flags can be set. + void setDecryptionFlags (const DecryptionFlags flags); + DecryptionResult decrypt(const Data &cipherText, Data &plainText); GpgME::Error startDecryption(const Data &cipherText, Data &plainText); + DecryptionResult decrypt(const Data &cipherText, Data &plainText, const DecryptionFlags flags); + GpgME::Error startDecryption(const Data &cipherText, Data &plainText, const DecryptionFlags flags); DecryptionResult decryptionResult() const; // @@ -286,7 +300,9 @@ public: // std::pair<DecryptionResult, VerificationResult> decryptAndVerify(const Data &cipherText, Data &plainText); + std::pair<DecryptionResult, VerificationResult> decryptAndVerify(const Data &cipherText, Data &plainText, const DecryptionFlags flags); GpgME::Error startCombinedDecryptionAndVerification(const Data &cipherText, Data &plainText); + GpgME::Error startCombinedDecryptionAndVerification(const Data &cipherText, Data &plainText, const DecryptionFlags flags); // use verificationResult() and decryptionResult() to retrieve the result objects... // @@ -325,7 +341,9 @@ public: Prepare = 4, ExpectSign = 8, NoCompress = 16, - Symmetric = 32 + Symmetric = 32, + ThrowKeyIds = 64, + EncryptWrap = 128 }; EncryptionResult encrypt(const std::vector<Key> &recipients, const Data &plainText, Data &cipherText, EncryptionFlags flags); GpgME::Error encryptSymmetrically(const Data &plainText, Data &cipherText); |