]> Git Repo - VerusCoin.git/blob - src/base58.h
Auto merge of #3242 - str4d:3058-key-encoding-refactor, r=str4d
[VerusCoin.git] / src / base58.h
1 // Copyright (c) 2009-2010 Satoshi Nakamoto
2 // Copyright (c) 2009-2014 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 /**
7  * Why base-58 instead of standard base-64 encoding?
8  * - Don't want 0OIl characters that look the same in some fonts and
9  *      could be used to create visually identical looking data.
10  * - A string with non-alphanumeric characters is not as easily accepted as input.
11  * - E-mail usually won't line-break if there's no punctuation to break at.
12  * - Double-clicking selects the whole string as one word if it's all alphanumeric.
13  */
14 #ifndef BITCOIN_BASE58_H
15 #define BITCOIN_BASE58_H
16
17 #include <string>
18 #include <vector>
19
20 /**
21  * Encode a byte sequence as a base58-encoded string.
22  * pbegin and pend cannot be NULL, unless both are.
23  */
24 std::string EncodeBase58(const unsigned char* pbegin, const unsigned char* pend);
25
26 /**
27  * Encode a byte vector as a base58-encoded string
28  */
29 std::string EncodeBase58(const std::vector<unsigned char>& vch);
30
31 /**
32  * Decode a base58-encoded string (psz) into a byte vector (vchRet).
33  * return true if decoding is successful.
34  * psz cannot be NULL.
35  */
36 bool DecodeBase58(const char* psz, std::vector<unsigned char>& vchRet);
37
38 /**
39  * Decode a base58-encoded string (str) into a byte vector (vchRet).
40  * return true if decoding is successful.
41  */
42 bool DecodeBase58(const std::string& str, std::vector<unsigned char>& vchRet);
43
44 /**
45  * Encode a byte vector into a base58-encoded string, including checksum
46  */
47 std::string EncodeBase58Check(const std::vector<unsigned char>& vchIn);
48
49 /**
50  * Decode a base58-encoded string (psz) that includes a checksum into a byte
51  * vector (vchRet), return true if decoding is successful
52  */
53 bool DecodeBase58Check(const char* psz, std::vector<unsigned char>& vchRet);
54
55 /**
56  * Decode a base58-encoded string (str) that includes a checksum into a byte
57  * vector (vchRet), return true if decoding is successful
58  */
59 bool DecodeBase58Check(const std::string& str, std::vector<unsigned char>& vchRet);
60
61 #endif // BITCOIN_BASE58_H
This page took 0.026925 seconds and 4 git commands to generate.