diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index 814e5a82..d63573f0 100644 --- a/lang/cpp/src/context.cpp +++ b/lang/cpp/src/context.cpp @@ -1094,6 +1094,18 @@ static gpgme_encrypt_flags_t encryptflags2encryptflags(Context::EncryptionFlags if (flags & Context::NoEncryptTo) { result |= GPGME_ENCRYPT_NO_ENCRYPT_TO; } + if (flags & Context::Prepare) { + result |= GPGME_ENCRYPT_PREPARE; + } + if (flags & Context::ExpectSign) { + result |= GPGME_ENCRYPT_EXPECT_SIGN; + } + if (flags & Context::NoCompress) { + result |= GPGME_ENCRYPT_NO_COMPRESS; + } + if (flags & Context::Symmetric) { + result |= GPGME_ENCRYPT_SYMMETRIC; + } return static_cast(result); } @@ -1395,6 +1407,11 @@ std::ostream &operator<<(std::ostream &os, Context::EncryptionFlags flags) os << "GpgME::Context::EncryptionFlags("; #define CHECK( x ) if ( !(flags & (Context::x)) ) {} else do { os << #x " "; } while (0) CHECK(AlwaysTrust); + CHECK(NoEncryptTo); + CHECK(Prepare); + CHECK(ExpectSign); + CHECK(NoCompress); + CHECK(Symmetric); #undef CHECK return os << ')'; } diff --git a/lang/cpp/src/context.h b/lang/cpp/src/context.h index c9c2af73..c7c0ecb9 100644 --- a/lang/cpp/src/context.h +++ b/lang/cpp/src/context.h @@ -292,7 +292,15 @@ public: // Encryption // - enum EncryptionFlags { None = 0, AlwaysTrust = 1, NoEncryptTo = 2 }; + enum EncryptionFlags { + None = 0, + AlwaysTrust = 1, + NoEncryptTo = 2, + Prepare = 4, + ExpectSign = 8, + NoCompress = 16, + Symmetric = 32 + }; EncryptionResult encrypt(const std::vector &recipients, const Data &plainText, Data &cipherText, EncryptionFlags flags); GpgME::Error encryptSymmetrically(const Data &plainText, Data &cipherText); GpgME::Error startEncryption(const std::vector &recipients, const Data &plainText, Data &cipherText, EncryptionFlags flags);