diff --git a/node/CertificateOfOwnership.hpp b/node/CertificateOfOwnership.hpp index 6c7802f24..1d79b72fd 100644 --- a/node/CertificateOfOwnership.hpp +++ b/node/CertificateOfOwnership.hpp @@ -86,16 +86,15 @@ public: inline uint64_t networkId() const { return _networkId; } inline int64_t timestamp() const { return _ts; } inline uint32_t id() const { return _id; } - inline unsigned int thingCount() const { return (unsigned int)_thingCount; } + inline const Address &issuedTo() const { return _issuedTo; } inline const Address &signer() const { return _signedBy; } inline const uint8_t *signature() const { return _signature; } inline unsigned int signatureLength() const { return _signatureLength; } + inline unsigned int thingCount() const { return (unsigned int)_thingCount; } inline Thing thingType(const unsigned int i) const { return (Thing)_thingTypes[i]; } inline const uint8_t *thingValue(const unsigned int i) const { return _thingValues[i]; } - inline const Address &issuedTo() const { return _issuedTo; } - inline bool owns(const InetAddress &ip) const { if (ip.ss_family == AF_INET) diff --git a/node/Utils.cpp b/node/Utils.cpp index 694e54e1b..5ce530ca7 100644 --- a/node/Utils.cpp +++ b/node/Utils.cpp @@ -400,17 +400,20 @@ uint64_t Utils::random() { // https://en.wikipedia.org/wiki/Xorshift#xoshiro256** static Mutex l; - static uint64_t s[4] = { Utils::getSecureRandom64(),Utils::getSecureRandom64(),Utils::getSecureRandom64(),Utils::getSecureRandom64() }; + static uint64_t s0 = Utils::getSecureRandom64(); + static uint64_t s1 = Utils::getSecureRandom64(); + static uint64_t s2 = Utils::getSecureRandom64(); + static uint64_t s3 = Utils::getSecureRandom64(); l.lock(); - const uint64_t result = ROL64(s[1] * 5,7) * 9; - const uint64_t t = s[1] << 17; - s[2] ^= s[0]; - s[3] ^= s[1]; - s[1] ^= s[2]; - s[0] ^= s[3]; - s[2] ^= t; - s[3] = ROL64(s[3],45); + const uint64_t result = ROL64(s1 * 5,7) * 9; + const uint64_t t = s1 << 17; + s2 ^= s0; + s3 ^= s1; + s1 ^= s2; + s0 ^= s3; + s2 ^= t; + s3 = ROL64(s3,45); l.unlock(); return result;