Black Pharao Release Fix 5 - OpenSSL 3.x and modern Boost compatibility

Port codebase to build with OpenSSL 3.x and Boost 1.90+:
- Rewrite bignum.h to use BIGNUM* pointer instead of inheriting from opaque BIGNUM
- Fix ECDSA_SIG, EVP_CIPHER_CTX, HMAC_CTX opaque type access across key.cpp, crypter.cpp, smessage.cpp
- Modernize Boost.Asio API (io_context, resolver, executor) in trianglesrpc.cpp
- Remove embedded Tor v2 client (incompatible with OpenSSL 3.x), keep Tor v3 SOCKS5 approach
- Update header logo to Cryptographic Triangles branding (300x63)
- Replace Bittrex exchange link with Pinball (313.cash) across all locales
- Fix MSYS2/MinGW64 build: linker flags, Boost library names, miniupnpc static linking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 22:29:42 -07:00
parent 41d9ae4c7a
commit dba7f9642f
94 changed files with 487 additions and 533 deletions
+7 -6
View File
@@ -10,6 +10,7 @@
using namespace std;
using namespace boost;
namespace fs = boost::filesystem;
static uint64_t nAccountingEntryNumber = 0;
@@ -608,20 +609,20 @@ bool BackupWallet(const CWallet& wallet, const string& strDest)
bitdb.mapFileUseCount.erase(wallet.strWalletFile);
// Copy wallet.dat
filesystem::path pathSrc = GetDataDir() / wallet.strWalletFile;
filesystem::path pathDest(strDest);
if (filesystem::is_directory(pathDest))
fs::path pathSrc = GetDataDir() / wallet.strWalletFile;
fs::path pathDest(strDest);
if (fs::is_directory(pathDest))
pathDest /= wallet.strWalletFile;
try {
#if BOOST_VERSION >= 104000
filesystem::copy_file(pathSrc, pathDest, filesystem::copy_option::overwrite_if_exists);
fs::copy_file(pathSrc, pathDest, fs::copy_options::overwrite_existing);
#else
filesystem::copy_file(pathSrc, pathDest);
fs::copy_file(pathSrc, pathDest);
#endif
printf("copied wallet.dat to %s\n", pathDest.string().c_str());
return true;
} catch(const filesystem::filesystem_error &e) {
} catch(const fs::filesystem_error &e) {
printf("error copying wallet.dat to %s - %s\n", pathDest.string().c_str(), e.what());
return false;
}