12 #include <boost/test/unit_test.hpp>
25 UniValue sapling_keys =
read_json(std::string(json_tests::sapling_key_components, json_tests::sapling_key_components +
sizeof(json_tests::sapling_key_components)));
28 for (
size_t i = 2; i < 12; i++) {
29 uint256 skSeed, ask, nsk, ovk, ak, nk, ivk;
30 skSeed.
SetHex(sapling_keys[i][0].getValStr());
31 ask.
SetHex(sapling_keys[i][1].getValStr());
32 nsk.
SetHex(sapling_keys[i][2].getValStr());
33 ovk.
SetHex(sapling_keys[i][3].getValStr());
34 ak.
SetHex(sapling_keys[i][4].getValStr());
35 nk.
SetHex(sapling_keys[i][5].getValStr());
36 ivk.
SetHex(sapling_keys[i][6].getValStr());
39 std::copy_n(
ParseHex(sapling_keys[i][7].getValStr()).begin(), 11, default_d.begin());
42 default_pk_d.
SetHex(sapling_keys[i][8].getValStr());
48 auto exp_sk = sk.expanded_spending_key();
52 auto full_viewing_key = sk.full_viewing_key();
53 BOOST_CHECK(full_viewing_key == exp_sk.full_viewing_key());
57 BOOST_CHECK(full_viewing_key == full_viewing_key_2);
60 auto in_viewing_key = full_viewing_key.in_viewing_key();
65 auto default_addr = sk.default_address();
66 auto addrOpt2 = in_viewing_key.address(default_d);
68 auto default_addr_2 = addrOpt2.value();
84 std::vector<unsigned char, secure_allocator<unsigned char>> rawSeed(32);
87 auto extfvk = sk.ToXFVK();
88 auto ivk = extfvk.fvk.in_viewing_key();
89 auto addr = sk.DefaultAddress();
121 auto extfvk = sk.ToXFVK();
122 auto ivk = extfvk.fvk.in_viewing_key();
123 auto addr = sk.DefaultAddress();
136 std::set<libzcash::SaplingPaymentAddress> addresses;
Basic key store, that keeps keys in an address->secret map.
virtual bool HaveSaplingIncomingViewingKey(const libzcash::SaplingPaymentAddress &addr) const
virtual bool GetSaplingFullViewingKey(const libzcash::SaplingIncomingViewingKey &ivk, libzcash::SaplingExtendedFullViewingKey &extfvkOut) const
virtual bool HaveSaplingFullViewingKey(const libzcash::SaplingIncomingViewingKey &ivk) const
void GetSaplingPaymentAddresses(std::set< libzcash::SaplingPaymentAddress > &setAddress) const
bool HaveSaplingSpendingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk) const
bool GetSaplingSpendingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk, libzcash::SaplingExtendedSpendingKey &skOut) const
virtual bool GetSaplingIncomingViewingKey(const libzcash::SaplingPaymentAddress &addr, libzcash::SaplingIncomingViewingKey &ivkOut) const
virtual bool AddSaplingFullViewingKey(const libzcash::SaplingExtendedFullViewingKey &extfvk)
Support for Sapling full viewing keys.
bool AddSaplingSpendingKey(const libzcash::SaplingExtendedSpendingKey &sk)
Sapling.
void SetHex(const char *psz)
BOOST_AUTO_TEST_SUITE_END()
#define BOOST_FIXTURE_TEST_SUITE(a, b)
#define BOOST_CHECK(expr)
std::array< unsigned char, ZC_DIVERSIFIER_SIZE > diversifier_t
BOOST_AUTO_TEST_CASE(saplingKeys)
UniValue read_json(const std::string &jsondata)
static SaplingExtendedSpendingKey Master(const HDSeed &seed)
std::vector< unsigned char > ParseHex(const char *psz)
libzcash::SaplingExtendedSpendingKey GetTestMasterSaplingSpendingKey()