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 '')
| -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); | 
