Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37490229
en ru br
Репозитории ALT
S:3.6-alt1
3.0: 0.92-alt1
www.altlinux.org/Changes

Группа :: Сети/IRC
Пакет: bitlbee

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: bitlbee-3.5.1-openssl-1.1.0.patch
Скачать


From 5c163e5063e01dfe94f73b2a3729c475cdd75467 Mon Sep 17 00:00:00 2001
From: Eneas U de Queiroz <cote2004-github@yahoo.com>
Date: Thu, 24 May 2018 23:15:12 -0300
Subject: [PATCH] Openssl 1.1 support
This adds openssl 1.1.0 support.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
---
 lib/ssl_openssl.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/lib/ssl_openssl.c b/lib/ssl_openssl.c
index 2f668da2..16e05a94 100644
--- a/lib/ssl_openssl.c
+++ b/lib/ssl_openssl.c
@@ -64,11 +64,17 @@ void ssl_init(void)
 {
 	const SSL_METHOD *meth;
 
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
 	SSL_library_init();
 
 	meth = SSLv23_client_method();
 	ssl_ctx = SSL_CTX_new(meth);
 	SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
+#else
+	meth = TLS_client_method();
+	ssl_ctx = SSL_CTX_new(meth);
+	SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION);
+#endif
 
 	initialized = TRUE;
 }
@@ -300,20 +306,20 @@ size_t ssl_des3_encrypt(const unsigned char *key, size_t key_len, const unsigned
                         const unsigned char *iv, unsigned char **res)
 {
 	int output_length = 0;
-	EVP_CIPHER_CTX ctx;
+	EVP_CIPHER_CTX *ctx;
 
 	*res = g_new0(unsigned char, 72);
 
 	/* Don't set key or IV because we will modify the parameters */
-	EVP_CIPHER_CTX_init(&ctx);
-	EVP_CipherInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, NULL, NULL, 1);
-	EVP_CIPHER_CTX_set_key_length(&ctx, key_len);
-	EVP_CIPHER_CTX_set_padding(&ctx, 0);
+	ctx = EVP_CIPHER_CTX_new();
+	EVP_CipherInit_ex(ctx, EVP_des_ede3_cbc(), NULL, NULL, NULL, 1);
+	EVP_CIPHER_CTX_set_key_length(ctx, key_len);
+	EVP_CIPHER_CTX_set_padding(ctx, 0);
 	/* We finished modifying parameters so now we can set key and IV */
-	EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, 1);
-	EVP_CipherUpdate(&ctx, *res, &output_length, input, input_len);
-	EVP_CipherFinal_ex(&ctx, *res, &output_length);
-	EVP_CIPHER_CTX_cleanup(&ctx);
+	EVP_CipherInit_ex(ctx, NULL, NULL, key, iv, 1);
+	EVP_CipherUpdate(ctx, *res, &output_length, input, input_len);
+	EVP_CipherFinal_ex(ctx, *res, &output_length);
+	EVP_CIPHER_CTX_free(ctx);
 	//EVP_cleanup();
 
 	return output_length;
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin