4 #include <fc/crypto/base58.hpp>
5 #include <fc/crypto/ripemd160.hpp>
6 #include <fc/exception/exception.hpp>
7 #include <fc/io/raw.hpp>
8 #include <boost/uuid/uuid.hpp>
9 #include <boost/uuid/uuid_io.hpp>
10 #include <boost/uuid/uuid_generators.hpp>
30 const size_t prefix_len = prefix.size();
31 FC_ASSERT(base58str.size() > prefix_len);
32 FC_ASSERT(base58str.substr(0, prefix_len) == prefix,
"", (
"base58str", base58str));
33 auto bin = fc::from_base58(base58str.substr(prefix_len));
34 auto bin_key = fc::raw::unpack<binary_key>(bin);
36 FC_ASSERT(fc::ripemd160::hash(
key_data.data,
key_data.size())._hash[0] == bin_key.check);
39 public_key_type::operator fc::ecc::public_key_data()
const
44 public_key_type::operator fc::ecc::public_key()
const
46 return fc::ecc::public_key(key_data);
49 public_key_type::operator std::string()
const
53 k.
check = fc::ripemd160::hash(k.
data.data, k.
data.size())._hash[0];
54 auto data = fc::raw::pack(k);
60 return p1.
key_data == p2.serialize();
83 key_data = extpubkey.serialize_extended();
90 const size_t prefix_len = prefix.size();
91 FC_ASSERT(base58str.size() > prefix_len);
92 FC_ASSERT(base58str.substr(0, prefix_len) == prefix,
"", (
"base58str", base58str));
93 auto bin = fc::from_base58(base58str.substr(prefix_len));
94 auto bin_key = fc::raw::unpack<binary_key>(bin);
95 FC_ASSERT(fc::ripemd160::hash(bin_key.data.data, bin_key.data.size())._hash[0] == bin_key.check);
99 extended_public_key_type::operator fc::ecc::extended_public_key()
const
101 return fc::ecc::extended_public_key::deserialize(key_data);
104 extended_public_key_type::operator std::string()
const
108 k.
check = fc::ripemd160::hash(k.
data.data, k.
data.size())._hash[0];
109 auto data = fc::raw::pack(k);
115 return p1.
key_data == p2.serialize_extended();
138 key_data = extprivkey.serialize_extended();
145 const size_t prefix_len = prefix.size();
146 FC_ASSERT(base58str.size() > prefix_len);
147 FC_ASSERT(base58str.substr(0, prefix_len) == prefix,
"", (
"base58str", base58str));
148 auto bin = fc::from_base58(base58str.substr(prefix_len));
149 auto bin_key = fc::raw::unpack<binary_key>(bin);
150 FC_ASSERT(fc::ripemd160::hash(bin_key.data.data, bin_key.data.size())._hash[0] == bin_key.check);
154 extended_private_key_type::operator fc::ecc::extended_private_key()
const
156 return fc::ecc::extended_private_key::deserialize(key_data);
159 extended_private_key_type::operator std::string()
const
163 k.
check = fc::ripemd160::hash(k.
data.data, k.
data.size())._hash[0];
164 auto data = fc::raw::pack(k);
170 return p1.
key_data == p2.serialize_extended();
189 vo = std::string(var);
199 vo = std::string(var);
209 vo = std::string(var);
217 void to_variant(
const boost::uuids::uuid&
id, fc::variant& var)
219 var = boost::uuids::to_string(
id);
224 id = boost::uuids::string_generator()(var.as_string());
#define SCORUM_ADDRESS_PREFIX
void to_variant(const game_type &game, fc::variant &var)
void from_variant(const fc::variant &var, game_type &game)
bool operator!=(const public_key_type &p1, const public_key_type &p2)
bool operator==(const authority &a, const authority &b)
fc::ecc::extended_key_data data
fc::ecc::extended_key_data key_data
extended_private_key_type()
fc::ecc::extended_key_data data
fc::ecc::extended_key_data key_data
extended_public_key_type()
friend bool operator!=(const extended_public_key_type &p1, const extended_public_key_type &p2)
fc::ecc::public_key_data data
fc::ecc::public_key_data key_data