mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Add SecretKey comparison operator (RIPD-1382)
This commit is contained in:
@@ -68,6 +68,24 @@ public:
|
|||||||
to_string() const;
|
to_string() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool
|
||||||
|
operator== (SecretKey const& lhs,
|
||||||
|
SecretKey const& rhs)
|
||||||
|
{
|
||||||
|
return lhs.size() == rhs.size() &&
|
||||||
|
std::memcmp(lhs.data(),
|
||||||
|
rhs.data(), rhs.size()) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool
|
||||||
|
operator!= (SecretKey const& lhs,
|
||||||
|
SecretKey const& rhs)
|
||||||
|
{
|
||||||
|
return ! (lhs == rhs);
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
/** Produces a sequence of secp256k1 key pairs. */
|
/** Produces a sequence of secp256k1 key pairs. */
|
||||||
|
|||||||
@@ -34,14 +34,6 @@ namespace ripple {
|
|||||||
|
|
||||||
class SecretKey_test : public beast::unit_test::suite
|
class SecretKey_test : public beast::unit_test::suite
|
||||||
{
|
{
|
||||||
static
|
|
||||||
bool equal(SecretKey const& lhs, SecretKey const& rhs)
|
|
||||||
{
|
|
||||||
return std::equal (
|
|
||||||
lhs.data(), lhs.data() + lhs.size(),
|
|
||||||
rhs.data(), rhs.data() + rhs.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
using blob = std::vector<std::uint8_t>;
|
using blob = std::vector<std::uint8_t>;
|
||||||
|
|
||||||
@@ -332,7 +324,7 @@ public:
|
|||||||
"pnen77YEeUd4fFKG7iycBWcwKpTaeFRkW2WFostaATy1DSupwXe");
|
"pnen77YEeUd4fFKG7iycBWcwKpTaeFRkW2WFostaATy1DSupwXe");
|
||||||
BEAST_EXPECT(sk2);
|
BEAST_EXPECT(sk2);
|
||||||
|
|
||||||
BEAST_EXPECT(equal (sk1, *sk2));
|
BEAST_EXPECT(sk1 == *sk2);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -345,7 +337,7 @@ public:
|
|||||||
"paKv46LztLqK3GaKz1rG2nQGN6M4JLyRtxFBYFTw4wAVHtGys36");
|
"paKv46LztLqK3GaKz1rG2nQGN6M4JLyRtxFBYFTw4wAVHtGys36");
|
||||||
BEAST_EXPECT(sk2);
|
BEAST_EXPECT(sk2);
|
||||||
|
|
||||||
BEAST_EXPECT(equal (sk1, *sk2));
|
BEAST_EXPECT(sk1 == *sk2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try converting short, long and malformed data
|
// Try converting short, long and malformed data
|
||||||
@@ -416,11 +408,11 @@ public:
|
|||||||
|
|
||||||
auto const ski = parseBase58<SecretKey> (
|
auto const ski = parseBase58<SecretKey> (
|
||||||
TOKEN_NODE_PRIVATE, si);
|
TOKEN_NODE_PRIVATE, si);
|
||||||
BEAST_EXPECT(ski && equal(keys[i], *ski));
|
BEAST_EXPECT(ski && keys[i] == *ski);
|
||||||
|
|
||||||
for (std::size_t j = i; j != keys.size(); ++j)
|
for (std::size_t j = i; j != keys.size(); ++j)
|
||||||
{
|
{
|
||||||
BEAST_EXPECT(equal (keys[i], keys[j]) == (i == j));
|
BEAST_EXPECT((keys[i] == keys[j]) == (i == j));
|
||||||
|
|
||||||
auto const sj = toBase58 (
|
auto const sj = toBase58 (
|
||||||
TokenType::TOKEN_NODE_PRIVATE,
|
TokenType::TOKEN_NODE_PRIVATE,
|
||||||
@@ -430,9 +422,9 @@ public:
|
|||||||
|
|
||||||
auto const skj = parseBase58<SecretKey> (
|
auto const skj = parseBase58<SecretKey> (
|
||||||
TOKEN_NODE_PRIVATE, sj);
|
TOKEN_NODE_PRIVATE, sj);
|
||||||
BEAST_EXPECT(skj && equal(keys[j], *skj));
|
BEAST_EXPECT(skj && keys[j] == *skj);
|
||||||
|
|
||||||
BEAST_EXPECT(equal (*ski, *skj) == (i == j));
|
BEAST_EXPECT((*ski == *skj) == (i == j));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -446,11 +438,12 @@ public:
|
|||||||
generateSeed ("masterpassphrase"));
|
generateSeed ("masterpassphrase"));
|
||||||
|
|
||||||
SecretKey sk2 (sk1);
|
SecretKey sk2 (sk1);
|
||||||
BEAST_EXPECT(equal (sk1, sk2));
|
BEAST_EXPECT(sk1 == sk2);
|
||||||
|
|
||||||
SecretKey sk3;
|
SecretKey sk3;
|
||||||
|
BEAST_EXPECT(sk3 != sk2);
|
||||||
sk3 = sk2;
|
sk3 = sk2;
|
||||||
BEAST_EXPECT(equal (sk3, sk2));
|
BEAST_EXPECT(sk3 == sk2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void run() override
|
void run() override
|
||||||
|
|||||||
Reference in New Issue
Block a user