25 const std::string& address,
26 const std::string& signature,
27 const std::string& message)
34 if (boost::get<PKHash>(&destination) ==
nullptr) {
39 std::vector<unsigned char> signature_bytes =
DecodeBase64(signature.c_str(), &invalid);
45 if (!pubkey.RecoverCompact(
MessageHash(message), signature_bytes)) {
58 const std::string& message,
59 std::string& signature)
61 std::vector<unsigned char> signature_bytes;
63 if (!privkey.SignCompact(
MessageHash(message), signature_bytes)) {
86 return "Private key not available";
The provided signature couldn't be parsed (maybe invalid base64).
bool IsValidDestination(const CTxDestination &dest)
Check whether a CTxDestination is a CNoDestination.
std::vector< unsigned char > DecodeBase64(const char *p, bool *pf_invalid)
The message verification was successful.
std::string SigningResultString(const SigningResult res)
std::string EncodeBase64(Span< const unsigned char > input)
bool MessageSign(const CKey &privkey, const std::string &message, std::string &signature)
Sign a message.
MessageVerificationResult
The result of a signed message verification.
uint256 MessageHash(const std::string &message)
Hashes a message for signing and verification in a manner that prevents inadvertently signing a trans...
An encapsulated public key.
const std::string MESSAGE_MAGIC
Text used to signify that a signed message follows and to prevent inadvertently signing a transaction...
The message was not signed with the private key of the provided address.
uint256 GetHash()
Compute the double-SHA256 hash of all data written to this object.
CTxDestination DecodeDestination(const std::string &str)
The provided address is invalid.
A writer stream (for serialization) that computes a 256-bit hash.
MessageVerificationResult MessageVerify(const std::string &address, const std::string &signature, const std::string &message)
Verify a signed message.
An encapsulated private key.
A public key could not be recovered from the provided signature and message.
boost::variant< CNoDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown > CTxDestination
A txout script template with a specific destination.
The provided address is valid but does not refer to a public key.