Make RippleAddress hashes safe.

This commit is contained in:
JoelKatz
2013-03-29 08:11:17 -07:00
parent c3c439b248
commit 758ee2557d
2 changed files with 10 additions and 12 deletions

View File

@@ -18,9 +18,16 @@
#include "utils.h"
#include "Log.h"
#include "Serializer.h"
#include "Application.h"
SETUP_LOG();
std::size_t hash_value(const CBase58Data& b58)
{
std::size_t seed = theApp->getNonceST() + (b58.nVersion * 0x9e3779b9);
boost::hash_combine(seed, b58.vchData);
return seed;
}
RippleAddress::RippleAddress()
{

View File

@@ -164,11 +164,8 @@ protected:
unsigned char nVersion;
std::vector<unsigned char> vchData;
CBase58Data()
{
nVersion = 1;
vchData.clear();
}
CBase58Data() : nVersion(1)
{ ; }
~CBase58Data()
{
@@ -247,13 +244,7 @@ public:
friend std::size_t hash_value(const CBase58Data& b58);
};
inline std::size_t hash_value(const CBase58Data& b58)
{
std::size_t seed = boost::hash_value(b58.nVersion);
extern std::size_t hash_value(const CBase58Data& b58);
boost::hash_combine(seed, b58.vchData);
return seed;
}
#endif
// vim:ts=4