diff options
Diffstat (limited to 'lib/crypto/CipherContext.h')
-rw-r--r-- | lib/crypto/CipherContext.h | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/lib/crypto/CipherContext.h b/lib/crypto/CipherContext.h index b6e97b4e..93c889d6 100644 --- a/lib/crypto/CipherContext.h +++ b/lib/crypto/CipherContext.h @@ -19,22 +19,6 @@ class CipherDescription; #define CIPHERCONTEXT_MAX_GENERATED_IV_LENGTH 32 -// Macros to allow compatibility with OpenSSL 1.0 and 1.1 APIs. See -// https://github.com/charybdis-ircd/charybdis/blob/release/3.5/libratbox/src/openssl_ratbox.h -// for the gory details. -#if defined(LIBRESSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER >= 0x10100000L) // OpenSSL >= 1.1 -# define BOX_OPENSSL_INIT_CTX(ctx) ctx = EVP_CIPHER_CTX_new(); -# define BOX_OPENSSL_CTX(ctx) ctx -# define BOX_OPENSSL_CLEANUP_CTX(ctx) EVP_CIPHER_CTX_free(ctx) -typedef EVP_CIPHER_CTX* BOX_EVP_CIPHER_CTX; -#else // OpenSSL < 1.1 -# define BOX_OPENSSL_INIT_CTX(ctx) EVP_CIPHER_CTX_init(&ctx); // no error return code, even though the docs says it does -# define BOX_OPENSSL_CTX(ctx) &ctx -# define BOX_OPENSSL_CLEANUP_CTX(ctx) EVP_CIPHER_CTX_cleanup(&ctx) -typedef EVP_CIPHER_CTX BOX_EVP_CIPHER_CTX; -#endif - - // -------------------------------------------------------------------------- // // Class @@ -90,14 +74,16 @@ public: #endif private: - BOX_EVP_CIPHER_CTX ctx; + EVP_CIPHER_CTX ctx; bool mInitialised; bool mWithinTransform; bool mPaddingOn; + uint8_t mGeneratedIV[CIPHERCONTEXT_MAX_GENERATED_IV_LENGTH]; CipherFunction mFunction; std::string mCipherName; - const CipherDescription *mpDescription; - std::string mIV; +#ifdef HAVE_OLD_SSL + CipherDescription *mpDescription; +#endif }; |