Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 494012 Details for
Bug 630692
net-p2p/transmission-2.92: openssl-1.1.0 patch
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
net-p2p/transmission-2.92: openssl-1.1.0 patch
transmission-2.92-openssl-1.1.0.patch (text/plain), 6.71 KB, created by
Yuriy Ilinykh
on 2017-09-11 16:01:49 UTC
(
hide
)
Description:
net-p2p/transmission-2.92: openssl-1.1.0 patch
Filename:
MIME Type:
Creator:
Yuriy Ilinykh
Created:
2017-09-11 16:01:49 UTC
Size:
6.71 KB
patch
obsolete
>From f91cf5ad8c677b61ceb0bf5877b87f9e93256dd7 Mon Sep 17 00:00:00 2001 >From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> >Date: Mon, 5 Sep 2016 21:49:07 +0000 >Subject: [PATCH 1/2] transmission: build against openssl 1.1.0 > >Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> >--- > libtransmission/crypto-utils-openssl.c | 73 ++++++++++++++++++++++++++++++++-- > 1 file changed, 69 insertions(+), 4 deletions(-) > >diff --git a/libtransmission/crypto-utils-openssl.c b/libtransmission/crypto-utils-openssl.c >index c4539dccb..972e24abb 100644 >--- a/libtransmission/crypto-utils-openssl.c >+++ b/libtransmission/crypto-utils-openssl.c >@@ -229,6 +229,61 @@ tr_rc4_process (tr_rc4_ctx_t handle, > **** > ***/ > >+#if OPENSSL_VERSION_NUMBER < 0x10100000 >+static inline int >+DH_set0_pqg (DH * dh, >+ BIGNUM * p, >+ BIGNUM * q, >+ BIGNUM * g) >+{ >+ /* If the fields p and g in d are NULL, the corresponding input >+ * parameters MUST be non-NULL. q may remain NULL. >+ */ >+ if ((dh->p == NULL && p == NULL) >+ || (dh->g == NULL && g == NULL)) >+ return 0; >+ >+ if (p != NULL) { >+ BN_free (dh->p); >+ dh->p = p; >+ } >+ if (q != NULL) { >+ BN_free (dh->q); >+ dh->q = q; >+ } >+ if (g != NULL) { >+ BN_free (dh->g); >+ dh->g = g; >+ } >+ >+ if (q != NULL) { >+ dh->length = BN_num_bits (q); >+ } >+ >+ return 1; >+} >+ >+static inline int >+DH_set_length (DH * dh, >+ long length) >+{ >+ dh->length = length; >+ return 1; >+} >+ >+static inline void >+DH_get0_key(const DH * dh, >+ const BIGNUM ** pub_key, >+ const BIGNUM ** priv_key) >+{ >+ if (pub_key != NULL) >+ *pub_key = dh->pub_key; >+ if (priv_key != NULL) >+ *priv_key = dh->priv_key; >+} >+ >+#endif >+ > tr_dh_ctx_t > tr_dh_new (const uint8_t * prime_num, > size_t prime_num_length, >@@ -236,13 +291,19 @@ tr_dh_new (const uint8_t * prime_num, > size_t generator_num_length) > { > DH * handle = DH_new (); >+ BIGNUM * p, * g; > > assert (prime_num != NULL); > assert (generator_num != NULL); >+ p = BN_bin2bn (prime_num, prime_num_length, NULL); >+ g = BN_bin2bn (generator_num, generator_num_length, NULL); > >- if (!check_pointer (handle->p = BN_bin2bn (prime_num, prime_num_length, NULL)) || >- !check_pointer (handle->g = BN_bin2bn (generator_num, generator_num_length, NULL))) >+ if (!check_pointer (p) || >+ !check_pointer (g) || >+ !DH_set0_pqg (handle, p, NULL, g)) > { >+ BN_free (p); >+ BN_free (g); > DH_free (handle); > handle = NULL; > } >@@ -267,16 +328,20 @@ tr_dh_make_key (tr_dh_ctx_t raw_handle, > { > DH * handle = raw_handle; > int dh_size, my_public_key_length; >+ const BIGNUM * hand_pub_key; > > assert (handle != NULL); > assert (public_key != NULL); > >- handle->length = private_key_length * 8; >+ >+ DH_set_length(handle, private_key_length * 8); > > if (!check_result (DH_generate_key (handle))) > return false; > >- my_public_key_length = BN_bn2bin (handle->pub_key, public_key); >+ DH_get0_key (handle, &hand_pub_key, NULL); >+ >+ my_public_key_length = BN_bn2bin (hand_pub_key, public_key); > dh_size = DH_size (handle); > > tr_dh_align_key (public_key, my_public_key_length, dh_size); > >From 8c8386a7f3f482a9c917f51d28e0042e55f56b3e Mon Sep 17 00:00:00 2001 >From: Mike Gelfand <mikedld@mikedld.com> >Date: Wed, 7 Sep 2016 01:09:04 +0300 >Subject: [PATCH 2/2] Fix coding style and building with !TR_LIGHTWEIGHT > >--- > libtransmission/crypto-utils-openssl.c | 60 +++++++++++++++++++--------------- > 1 file changed, 33 insertions(+), 27 deletions(-) > >diff --git a/libtransmission/crypto-utils-openssl.c b/libtransmission/crypto-utils-openssl.c >index 972e24abb..9fd2c58a5 100644 >--- a/libtransmission/crypto-utils-openssl.c >+++ b/libtransmission/crypto-utils-openssl.c >@@ -14,6 +14,7 @@ > #include <assert.h> > > #include <openssl/bn.h> >+#include <openssl/crypto.h> > #include <openssl/dh.h> > #include <openssl/err.h> > #include <openssl/evp.h> >@@ -48,7 +49,12 @@ log_openssl_error (const char * file, > static bool strings_loaded = false; > if (!strings_loaded) > { >+#if OPENSSL_VERSION_NUMBER < 0x10100000 > ERR_load_crypto_strings (); >+#else >+ OPENSSL_init_crypto (OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); >+#endif >+ > strings_loaded = true; > } > #endif >@@ -230,6 +236,7 @@ tr_rc4_process (tr_rc4_ctx_t handle, > ***/ > > #if OPENSSL_VERSION_NUMBER < 0x10100000 >+ > static inline int > DH_set0_pqg (DH * dh, > BIGNUM * p, >@@ -237,28 +244,29 @@ DH_set0_pqg (DH * dh, > BIGNUM * g) > { > /* If the fields p and g in d are NULL, the corresponding input >- * parameters MUST be non-NULL. q may remain NULL. >+ * parameters MUST be non-NULL. q may remain NULL. > */ >- if ((dh->p == NULL && p == NULL) >- || (dh->g == NULL && g == NULL)) >+ if ((dh->p == NULL && p == NULL) || (dh->g == NULL && g == NULL)) > return 0; > >- if (p != NULL) { >- BN_free (dh->p); >- dh->p = p; >- } >- if (q != NULL) { >- BN_free (dh->q); >- dh->q = q; >- } >- if (g != NULL) { >- BN_free (dh->g); >- dh->g = g; >- } >- >- if (q != NULL) { >+ if (p != NULL) >+ { >+ BN_free (dh->p); >+ dh->p = p; >+ } >+ if (q != NULL) >+ { >+ BN_free (dh->q); >+ dh->q = q; >+ } >+ if (g != NULL) >+ { >+ BN_free (dh->g); >+ dh->g = g; >+ } >+ >+ if (q != NULL) > dh->length = BN_num_bits (q); >- } > > return 1; > } >@@ -267,8 +275,8 @@ static inline int > DH_set_length (DH * dh, > long length) > { >- dh->length = length; >- return 1; >+ dh->length = length; >+ return 1; > } > > static inline void >@@ -295,12 +303,11 @@ tr_dh_new (const uint8_t * prime_num, > > assert (prime_num != NULL); > assert (generator_num != NULL); >+ > p = BN_bin2bn (prime_num, prime_num_length, NULL); > g = BN_bin2bn (generator_num, generator_num_length, NULL); > >- if (!check_pointer (p) || >- !check_pointer (g) || >- !DH_set0_pqg (handle, p, NULL, g)) >+ if (!check_pointer (p) || !check_pointer (g) || !DH_set0_pqg (handle, p, NULL, g)) > { > BN_free (p); > BN_free (g); >@@ -328,20 +335,19 @@ tr_dh_make_key (tr_dh_ctx_t raw_handle, > { > DH * handle = raw_handle; > int dh_size, my_public_key_length; >- const BIGNUM * hand_pub_key; >+ const BIGNUM * my_public_key; > > assert (handle != NULL); > assert (public_key != NULL); > >- > DH_set_length(handle, private_key_length * 8); > > if (!check_result (DH_generate_key (handle))) > return false; > >- DH_get0_key (handle, &hand_pub_key, NULL); >+ DH_get0_key (handle, &my_public_key, NULL); > >- my_public_key_length = BN_bn2bin (hand_pub_key, public_key); >+ my_public_key_length = BN_bn2bin (my_public_key, public_key); > dh_size = DH_size (handle); > > tr_dh_align_key (public_key, my_public_key_length, dh_size);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 630692
: 494012 |
523520