diff options
author | Andrew | 2018-05-17 10:58:19 -0500 |
---|---|---|
committer | Andrew | 2018-05-17 10:58:19 -0500 |
commit | 10d7b5f7149781a17311a9f14225f052f94130c8 (patch) | |
tree | 733f31b9a69fff0b9acffd223374c709d2a7d3c0 /multichain-boost-openssl.patch | |
download | aur-10d7b5f7149781a17311a9f14225f052f94130c8.tar.gz |
Initial commit of multichain aur
Diffstat (limited to 'multichain-boost-openssl.patch')
-rw-r--r-- | multichain-boost-openssl.patch | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/multichain-boost-openssl.patch b/multichain-boost-openssl.patch new file mode 100644 index 000000000000..6de705af4999 --- /dev/null +++ b/multichain-boost-openssl.patch @@ -0,0 +1,121 @@ +--- a/src/multichain/multichain-cli.cpp ++++ b/src/multichain/multichain-cli.cpp +@@ -223,7 +223,7 @@ Object CallRPC(const string& strMethod, const Array& params) + // Connect to localhost + bool fUseSSL = GetBoolArg("-rpcssl", false); + asio::io_service io_service; +- ssl::context context(io_service, ssl::context::sslv23); ++ ssl::context context(ssl::context::sslv23); + context.set_options(ssl::context::no_sslv2 | ssl::context::no_sslv3); + asio::ssl::stream<asio::ip::tcp::socket> sslStream(io_service, context); + SSLIOStreamDevice<asio::ip::tcp> d(sslStream, fUseSSL); +--- a/src/rpc/rpcserver.cpp ++++ b/src/rpc/rpcserver.cpp +@@ -564,8 +564,8 @@ private: + void ServiceConnection(AcceptedConnection *conn); + + //! Forward declaration required for RPCListen +-template <typename Protocol, typename SocketAcceptorService> +-static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor, ++template <typename Protocol> ++static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol> > acceptor, + ssl::context& context, + bool fUseSSL, + boost::shared_ptr< AcceptedConnection > conn, +@@ -574,8 +574,8 @@ static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, + /** + * Sets up I/O resources to accept and handle a new connection. + */ +-template <typename Protocol, typename SocketAcceptorService> +-static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor, ++template <typename Protocol> ++static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol> > acceptor, + ssl::context& context, + const bool fUseSSL) + { +@@ -585,7 +585,7 @@ static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketA + acceptor->async_accept( + conn->sslStream.lowest_layer(), + conn->peer, +- boost::bind(&RPCAcceptHandler<Protocol, SocketAcceptorService>, ++ boost::bind(&RPCAcceptHandler<Protocol>, + acceptor, + boost::ref(context), + fUseSSL, +@@ -597,8 +597,8 @@ static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketA + /** + * Accept and handle incoming connection. + */ +-template <typename Protocol, typename SocketAcceptorService> +-static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor, ++template <typename Protocol> ++static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol> > acceptor, + ssl::context& context, + const bool fUseSSL, + boost::shared_ptr< AcceptedConnection > conn, +@@ -713,7 +713,7 @@ void StartRPCThreads() + + assert(rpc_io_service == NULL); + rpc_io_service = new asio::io_service(); +- rpc_ssl_context = new ssl::context(*rpc_io_service, ssl::context::sslv23); ++ rpc_ssl_context = new ssl::context(ssl::context::sslv23); + + const bool fUseSSL = GetBoolArg("-rpcssl", false); + +@@ -732,7 +732,7 @@ void StartRPCThreads() + else LogPrintf("ThreadRPCServer ERROR: missing server private key file %s\n", pathPKFile.string()); + + string strCiphers = GetArg("-rpcsslciphers", "TLSv1.2+HIGH:TLSv1+HIGH:!SSLv2:!aNULL:!eNULL:!3DES:@STRENGTH"); +- SSL_CTX_set_cipher_list(rpc_ssl_context->impl(), strCiphers.c_str()); ++ SSL_CTX_set_cipher_list(rpc_ssl_context->native_handle(), strCiphers.c_str()); + } + + std::vector<ip::tcp::endpoint> vEndpoints; +--- a/src/wallet/crypter.cpp ++++ b/src/wallet/crypter.cpp +@@ -59,15 +59,16 @@ bool CCrypter::Encrypt(const CKeyingMaterial& vchPlaintext, std::vector<unsigned + int nCLen = nLen + AES_BLOCK_SIZE, nFLen = 0; + vchCiphertext = std::vector<unsigned char> (nCLen); + +- EVP_CIPHER_CTX ctx; ++ EVP_CIPHER_CTX *ctx=EVP_CIPHER_CTX_new();; + + bool fOk = true; + +- EVP_CIPHER_CTX_init(&ctx); +- if (fOk) fOk = EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; +- if (fOk) fOk = EVP_EncryptUpdate(&ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen) != 0; +- if (fOk) fOk = EVP_EncryptFinal_ex(&ctx, (&vchCiphertext[0]) + nCLen, &nFLen) != 0; +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_init(ctx); ++ if (fOk) fOk = EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; ++ if (fOk) fOk = EVP_EncryptUpdate(ctx, &vchCiphertext[0], &nCLen, &vchPlaintext[0], nLen) != 0; ++ if (fOk) fOk = EVP_EncryptFinal_ex(ctx, (&vchCiphertext[0]) + nCLen, &nFLen) != 0; ++ EVP_CIPHER_CTX_cleanup(ctx); ++ EVP_CIPHER_CTX_free(ctx); + + if (!fOk) return false; + +@@ -86,15 +87,16 @@ bool CCrypter::Decrypt(const std::vector<unsigned char>& vchCiphertext, CKeyingM + + vchPlaintext = CKeyingMaterial(nPLen); + +- EVP_CIPHER_CTX ctx; ++ EVP_CIPHER_CTX *ctx=EVP_CIPHER_CTX_new();; + + bool fOk = true; + +- EVP_CIPHER_CTX_init(&ctx); +- if (fOk) fOk = EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; +- if (fOk) fOk = EVP_DecryptUpdate(&ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen) != 0; +- if (fOk) fOk = EVP_DecryptFinal_ex(&ctx, (&vchPlaintext[0]) + nPLen, &nFLen) != 0; +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_init(ctx); ++ if (fOk) fOk = EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, chKey, chIV) != 0; ++ if (fOk) fOk = EVP_DecryptUpdate(ctx, &vchPlaintext[0], &nPLen, &vchCiphertext[0], nLen) != 0; ++ if (fOk) fOk = EVP_DecryptFinal_ex(ctx, (&vchPlaintext[0]) + nPLen, &nFLen) != 0; ++ EVP_CIPHER_CTX_cleanup(ctx); ++ EVP_CIPHER_CTX_free(ctx); + + if (!fOk) return false; + |