Bitcoin ABC 0.26.3
P2P Digital Currency
Loading...
Searching...
No Matches
message.h
Go to the documentation of this file.
1// Copyright (c) 2009-2010 Satoshi Nakamoto
2// Copyright (c) 2009-2020 The Bitcoin Core developers
3// Distributed under the MIT software license, see the accompanying
4// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6#ifndef BITCOIN_UTIL_MESSAGE_H
7#define BITCOIN_UTIL_MESSAGE_H
8
9#include <uint256.h>
10
11#include <string>
12
13class CChainParams;
14class CKey;
15
16extern const std::string MESSAGE_MAGIC;
17
46
52
62 const std::string &address,
63 const std::string &signature,
64 const std::string &message);
65
74bool MessageSign(const CKey &privkey, const std::string &message,
75 std::string &signature);
76
81uint256 MessageHash(const std::string &message);
82
83std::string SigningResultString(const SigningResult res);
84
85#endif // BITCOIN_UTIL_MESSAGE_H
CChainParams defines various tweakable parameters of a given instance of the Bitcoin system.
Definition chainparams.h:80
An encapsulated secp256k1 private key.
Definition key.h:28
256-bit opaque blob.
Definition uint256.h:129
uint256 MessageHash(const std::string &message)
Hashes a message for signing and verification in a manner that prevents inadvertently signing a trans...
Definition message.cpp:67
MessageVerificationResult MessageVerify(const CChainParams &params, const std::string &address, const std::string &signature, const std::string &message)
Verify a signed message.
Definition message.cpp:24
SigningResult
Definition message.h:47
@ PRIVATE_KEY_NOT_AVAILABLE
MessageVerificationResult
The result of a signed message verification.
Definition message.h:26
@ ERR_MALFORMED_SIGNATURE
The provided signature couldn't be parsed (maybe invalid base64).
@ ERR_INVALID_ADDRESS
The provided address is invalid.
@ ERR_ADDRESS_NO_KEY
The provided address is valid but does not refer to a public key.
@ ERR_NOT_SIGNED
The message was not signed with the private key of the provided address.
@ OK
The message verification was successful.
@ ERR_PUBKEY_NOT_RECOVERED
A public key could not be recovered from the provided signature and message.
bool MessageSign(const CKey &privkey, const std::string &message, std::string &signature)
Sign a message.
Definition message.cpp:54
const std::string MESSAGE_MAGIC
Text used to signify that a signed message follows and to prevent inadvertently signing a transaction...
Definition message.cpp:22
std::string SigningResultString(const SigningResult res)
Definition message.cpp:74
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
Definition random.h:85