27 lines
784 B
Diff
27 lines
784 B
Diff
--- a/dcpp/CryptoManager.cpp.orig 2011-04-17 17:57:09 UTC
|
|
+++ b/dcpp/CryptoManager.cpp
|
|
@@ -107,12 +107,20 @@ CryptoManager::CryptoManager()
|
|
};
|
|
|
|
if(dh) {
|
|
- dh->p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0);
|
|
- dh->g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0);
|
|
+ BIGNUM *p, *g;
|
|
|
|
- if (!dh->p || !dh->g) {
|
|
+ p = BN_bin2bn(dh4096_p, sizeof(dh4096_p), 0);
|
|
+ g = BN_bin2bn(dh4096_g, sizeof(dh4096_g), 0);
|
|
+
|
|
+ if (!p || !g) {
|
|
dh.reset();
|
|
} else {
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100005L
|
|
+ dh->p = p;
|
|
+ dh->g = g;
|
|
+#else
|
|
+ DH_set0_pqg(dh, p, NULL, g);
|
|
+#endif
|
|
SSL_CTX_set_options(serverContext, SSL_OP_SINGLE_DH_USE);
|
|
SSL_CTX_set_options(serverVerContext, SSL_OP_SINGLE_DH_USE);
|
|
SSL_CTX_set_tmp_dh(serverContext, (DH*)dh);
|