From f6b7fc349ccf9cfbeb7e91e19c20e2a2fcc9026f Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Fri, 27 Jul 2018 12:21:12 -0700 Subject: Support h instead of ' in hardened descriptor paths --- src/test/descriptor_tests.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/test/descriptor_tests.cpp') diff --git a/src/test/descriptor_tests.cpp b/src/test/descriptor_tests.cpp index 6d0492e05..f189222be 100644 --- a/src/test/descriptor_tests.cpp +++ b/src/test/descriptor_tests.cpp @@ -28,13 +28,28 @@ constexpr int HARDENED = 2; // Derivation needs access to private keys constexpr int UNSOLVABLE = 4; // This descriptor is not expected to be solvable constexpr int SIGNABLE = 8; // We can sign with this descriptor (this is not true when actual BIP32 derivation is used, as that's not integrated in our signing code) +std::string MaybeUseHInsteadOfApostrophy(std::string ret) +{ + if (InsecureRandBool()) { + while (true) { + auto it = ret.find("'"); + if (it != std::string::npos) { + ret[it] = 'h'; + } else { + break; + } + } + } + return ret; +} + void Check(const std::string& prv, const std::string& pub, int flags, const std::vector>& scripts) { FlatSigningProvider keys_priv, keys_pub; // Check that parsing succeeds. - auto parse_priv = Parse(prv, keys_priv); - auto parse_pub = Parse(pub, keys_pub); + auto parse_priv = Parse(MaybeUseHInsteadOfApostrophy(prv), keys_priv); + auto parse_pub = Parse(MaybeUseHInsteadOfApostrophy(pub), keys_pub); BOOST_CHECK(parse_priv); BOOST_CHECK(parse_pub); -- cgit v1.2.3