Commit 33750a55 authored by Clément Fauconnier's avatar Clément Fauconnier

Merge branch 'add-openssl-1.1-support' of https://github.com/super7ramp/OpenBoard into dev

parents d932ae1a 393c9faa
......@@ -63,6 +63,10 @@ UBCryptoUtils::UBCryptoUtils(QObject * pParent)
UBCryptoUtils::~UBCryptoUtils()
{
// TODO UB 4.x aes destroy
#if OPENSSL_VERSION_NUMBER >= 10100000L
EVP_CIPHER_CTX_free(mAesEncryptContext);
EVP_CIPHER_CTX_free(mAesDecryptContext);
#endif
}
......@@ -74,18 +78,30 @@ QString UBCryptoUtils::symetricEncrypt(const QString& clear)
int paddingLength = 0;
unsigned char *ciphertext = (unsigned char *)malloc(cipheredLength);
#if OPENSSL_VERSION_NUMBER >= 10100000L
if(!EVP_EncryptInit_ex(mAesEncryptContext, NULL, NULL, NULL, NULL)){
#else
if(!EVP_EncryptInit_ex(&mAesEncryptContext, NULL, NULL, NULL, NULL)){
#endif
free(ciphertext);
return QString();
}
#if OPENSSL_VERSION_NUMBER >= 10100000L
if(!EVP_EncryptUpdate(mAesEncryptContext, ciphertext, &cipheredLength, (unsigned char *)clearData.data(), clearData.length())){
#else
if(!EVP_EncryptUpdate(&mAesEncryptContext, ciphertext, &cipheredLength, (unsigned char *)clearData.data(), clearData.length())){
#endif
free(ciphertext);
return QString();
}
/* update ciphertext with the final remaining bytes */
#if OPENSSL_VERSION_NUMBER >= 10100000L
if(!EVP_EncryptFinal_ex(mAesEncryptContext, ciphertext + cipheredLength, &paddingLength)){
#else
if(!EVP_EncryptFinal_ex(&mAesEncryptContext, ciphertext + cipheredLength, &paddingLength)){
#endif
free(ciphertext);
return QString();
}
......@@ -106,17 +122,29 @@ QString UBCryptoUtils::symetricDecrypt(const QString& encrypted)
int paddingLength = 0;
unsigned char *plaintext = (unsigned char *)malloc(encryptedLength);
#if OPENSSL_VERSION_NUMBER >= 10100000L
if(!EVP_DecryptInit_ex(mAesDecryptContext, NULL, NULL, NULL, NULL)){
#else
if(!EVP_DecryptInit_ex(&mAesDecryptContext, NULL, NULL, NULL, NULL)){
#endif
free(plaintext);
return QString();
}
#if OPENSSL_VERSION_NUMBER >= 10100000L
if(!EVP_DecryptUpdate(mAesDecryptContext, plaintext, &encryptedLength, (const unsigned char *)encryptedData.data(), encryptedData.length())){
#else
if(!EVP_DecryptUpdate(&mAesDecryptContext, plaintext, &encryptedLength, (const unsigned char *)encryptedData.data(), encryptedData.length())){
#endif
free(plaintext);
return QString();
}
#if OPENSSL_VERSION_NUMBER >= 10100000L
if(!EVP_DecryptFinal_ex(mAesDecryptContext, plaintext + encryptedLength, &paddingLength)){
#else
if(!EVP_DecryptFinal_ex(&mAesDecryptContext, plaintext + encryptedLength, &paddingLength)){
#endif
free(plaintext);
return QString();
}
......@@ -146,8 +174,15 @@ void UBCryptoUtils::aesInit()
return;
}
#if OPENSSL_VERSION_NUMBER >= 10100000L
mAesEncryptContext = EVP_CIPHER_CTX_new();
EVP_EncryptInit_ex(mAesEncryptContext, EVP_aes_256_cbc(), NULL, key, iv);
mAesDecryptContext = EVP_CIPHER_CTX_new();
EVP_DecryptInit_ex(mAesDecryptContext, EVP_aes_256_cbc(), NULL, key, iv);
#else
EVP_CIPHER_CTX_init(&mAesEncryptContext);
EVP_EncryptInit_ex(&mAesEncryptContext, EVP_aes_256_cbc(), NULL, key, iv);
EVP_CIPHER_CTX_init(&mAesDecryptContext);
EVP_DecryptInit_ex(&mAesDecryptContext, EVP_aes_256_cbc(), NULL, key, iv);
#endif
}
......@@ -60,8 +60,13 @@ class UBCryptoUtils : public QObject
void aesInit();
#if OPENSSL_VERSION_NUMBER >= 10100000L
EVP_CIPHER_CTX *mAesEncryptContext;
EVP_CIPHER_CTX *mAesDecryptContext;
#else
EVP_CIPHER_CTX mAesEncryptContext;
EVP_CIPHER_CTX mAesDecryptContext;
#endif
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment