Stricter wallet address checks

This commit is contained in:
SChernykh 2021-08-31 18:26:28 +02:00
parent bdb8ce57d0
commit 5eea610f3c
2 changed files with 14 additions and 0 deletions

View file

@ -29,6 +29,7 @@
#include "p2p_server.h"
#include "params.h"
#include "console_commands.h"
#include "crypto.h"
#include <thread>
#include <iostream>
@ -51,6 +52,14 @@ p2pool::p2pool(int argc, char* argv[])
panic();
}
hash pub, sec, eph_public_key;
generate_keys(pub, sec);
if (!m_params->m_wallet.get_eph_public_key(sec, 0, eph_public_key)) {
LOGERR(1, "Invalid wallet address: get_eph_public_key failed");
panic();
}
const NetworkType type = m_params->m_wallet.type();
if (type == NetworkType::Testnet) {

View file

@ -190,6 +190,11 @@ bool Wallet::decode(const char* address)
m_type = NetworkType::Invalid;
}
ge_p3 point;
if ((ge_frombytes_vartime(&point, m_spendPublicKey.h) != 0) || (ge_frombytes_vartime(&point, m_viewPublicKey.h) != 0)) {
m_type = NetworkType::Invalid;
}
return valid();
}