aboutsummaryrefslogtreecommitdiff
path: root/src/wallet
diff options
context:
space:
mode:
authortobtoht <tob@featherwallet.org>2026-04-24 15:32:37 +0000
committertobtoht <tob@featherwallet.org>2026-04-24 15:32:37 +0000
commited49e56c13029ba8edbedd97076a8390361bb1c5 (patch)
tree68c835be3a393095016e3c06ce8373999e5800c1 /src/wallet
parent1932e1a18f503bca4e7ecca9e4d00fd95680085b (diff)
parentb635e675e699f87d0d028f6f3f6e6a2ea2c05104 (diff)
downloadmonzero-core-ed49e56c13029ba8edbedd97076a8390361bb1c5.tar.gz
monzero-core-ed49e56c13029ba8edbedd97076a8390361bb1c5.tar.xz
monzero-core-ed49e56c13029ba8edbedd97076a8390361bb1c5.zip
Merge pull request #10433
b635e67 wallet_rpc_server: fix ssl_allowed_fingerprints hex parsing (selsta)
Diffstat (limited to 'src/wallet')
-rw-r--r--src/wallet/wallet_rpc_server.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index 9b732640c..da0a0a1c1 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -4701,10 +4701,25 @@ namespace tools
ssl_allowed_fingerprints.reserve(req.ssl_allowed_fingerprints.size());
for (const std::string &fp: req.ssl_allowed_fingerprints)
{
- ssl_allowed_fingerprints.push_back({});
- std::vector<uint8_t> &v = ssl_allowed_fingerprints.back();
- for (auto c: fp)
- v.push_back(c);
+ std::vector<uint8_t> decoded;
+ try
+ {
+ decoded = epee::from_hex_locale::to_vector(fp);
+ }
+ catch (const std::exception &)
+ {
+ er.code = WALLET_RPC_ERROR_CODE_NO_DAEMON_CONNECTION;
+ er.message = "ssl_allowed_fingerprints[] entries must be hex-encoded SHA-256 values";
+ return false;
+ }
+
+ if (decoded.size() != SSL_FINGERPRINT_SIZE)
+ {
+ er.code = WALLET_RPC_ERROR_CODE_NO_DAEMON_CONNECTION;
+ er.message = "Each ssl_allowed_fingerprints[] entry must decode to exactly " BOOST_PP_STRINGIZE(SSL_FINGERPRINT_SIZE) " bytes";
+ return false;
+ }
+ ssl_allowed_fingerprints.emplace_back(std::move(decoded));
}
epee::net_utils::ssl_options_t ssl_options = epee::net_utils::ssl_support_t::e_ssl_support_enabled;