diff options
author | Matías Fonzo <selk@dragora.org> | 2020-01-20 19:33:12 -0300 |
---|---|---|
committer | Matías Fonzo <selk@dragora.org> | 2020-01-20 19:33:12 -0300 |
commit | 9cd1493c36e94b9bfd36e35bc197ecf87634970e (patch) | |
tree | 0b2c5dbce77cecfee884f06bfc9b04d35599ddbf | |
parent | 07369b58fef595b208248a598a8ec14abbafac90 (diff) | |
download | tqca-tls-9cd1493c36e94b9bfd36e35bc197ecf87634970e.tar.gz tqca-tls-9cd1493c36e94b9bfd36e35bc197ecf87634970e.zip |
Added LibreSSL detection
Signed-off-by: Matías Fonzo <selk@dragora.org>
-rw-r--r-- | qca-tls.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/qca-tls.cpp b/qca-tls.cpp index b1fb639..b5080ed 100644 --- a/qca-tls.cpp +++ b/qca-tls.cpp @@ -57,7 +57,7 @@ static bool lib_generateKeyIV(const EVP_CIPHER *_type, const TQByteArray &data, TQByteArray k, i; unsigned char *kp = 0; unsigned char *ip = 0; -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) EVP_CIPHER type = *_type; EVP_CIPHER *loctype = &type; if(keysize != -1) @@ -75,7 +75,7 @@ static bool lib_generateKeyIV(const EVP_CIPHER *_type, const TQByteArray &data, ip = (unsigned char *)i.data(); } int res = EVP_BytesToKey(loctype, EVP_sha1(), (unsigned char *)salt.data(), (unsigned char *)data.data(), data.size(), 1, kp, ip); -#if OPENSSL_VERSION_NUMBER >= 0x10100000L +#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) EVP_CIPHER_meth_free(loctype); #endif if (!res) @@ -187,7 +187,7 @@ public: virtual ~EVPCipherContext() { if(type) { -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) EVP_CIPHER_CTX_cleanup(c); OPENSSL_free(c); #else @@ -234,7 +234,7 @@ public: pad = _pad; type = getType(mode); r.resize(0); -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) c = (EVP_CIPHER_CTX*)OPENSSL_malloc(sizeof(EVP_CIPHER_CTX)); EVP_CIPHER_CTX_init(c); #else @@ -283,11 +283,11 @@ public: TQByteArray result(EVP_CIPHER_block_size(type)); int olen; if(dir == TQCA::Encrypt) { - if(!EVP_EncryptFinal(c, (unsigned char *)result.data(), &olen)) + if(!EVP_EncryptFinal_ex(c, (unsigned char *)result.data(), &olen)) return false; } else { - if(!EVP_DecryptFinal(c, (unsigned char *)result.data(), &olen)) + if(!EVP_DecryptFinal_ex(c, (unsigned char *)result.data(), &olen)) return false; } result.resize(olen); |