aboutsummaryrefslogtreecommitdiff
path: root/src/util/message.h
diff options
context:
space:
mode:
authorJeffrey Czyz <jkczyz@gmail.com>2019-12-07 20:52:38 +0100
committerVasil Dimov <vd@FreeBSD.org>2020-02-14 10:45:41 +0100
commite193a84fb28068e38d5f54fbfd6208428c5bb655 (patch)
tree3d9e920c26f874da2d9c06da07843d3fd15f4458 /src/util/message.h
parentf8f0d9893d7969bdaa870fadb94ec5d0dfa8334d (diff)
downloadbitcoin-e193a84fb28068e38d5f54fbfd6208428c5bb655.tar.xz
Refactor message hashing into a utility function
And add unit test for it. The purpose of using a preamble or "magic" text as part of signing and verifying a message was not given when the code was repeated in a few locations. Make a test showing how it is used to prevent inadvertently signing a transaction.
Diffstat (limited to 'src/util/message.h')
-rw-r--r--src/util/message.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/util/message.h b/src/util/message.h
index 1a1ba88daf..01fd14ce2d 100644
--- a/src/util/message.h
+++ b/src/util/message.h
@@ -7,10 +7,11 @@
#define BITCOIN_UTIL_MESSAGE_H
#include <key.h> // For CKey
+#include <uint256.h>
#include <string>
-extern const std::string strMessageMagic;
+extern const std::string MESSAGE_MAGIC;
/** The result of a signed message verification.
* Message verification takes as an input:
@@ -58,4 +59,10 @@ bool MessageSign(
const std::string& message,
std::string& signature);
+/**
+ * Hashes a message for signing and verification in a manner that prevents
+ * inadvertently signing a transaction.
+ */
+uint256 MessageHash(const std::string& message);
+
#endif // BITCOIN_UTIL_MESSAGE_H