예제 #1
0
파일: extkey_tests.cpp 프로젝트: MOIN/moin
void RunDeriveTests()
{
    /*
        Must be able to derive deeper than the arbitrary ndepth field (255)
    */
    
    std::vector<DeriveTestData> vMainNetPairs = {
        DeriveTestData(0,
            std::string("moivYMcZoUdupxqBNASoNKWbyBzKFPzYA3ZauZhCyQGcUhdvxhgsYNdqBkCbspTmaXWtW68Ha7gjMBjb5gbudrictnzw9KAVKogAXC8FsqiSzRp"),
            std::string("moipXY9njTPCnsVV8vPCLA1xKp2NXdRtPVyGABKcbshkKQUadnrk2XPccZcSDjefRX64mNjYpS33SAy97UHGWs9WoAufi9pdow9gsYMvVEcmgSk")),
        DeriveTestData(1,
            std::string("moivYPayc8FCcmGHcN6m3CXakesEMTfiSDxS1p9VS8THGqrXstqawM3VhHgst9h63ViGaLJryRe4jBG2JaPmsiZeFAHJDVuHKw96hwDkkUb6grr"),
            std::string("moipXa8CY6zVafvbP83A132w7GuHdh74fgN7GRmu4btR7YhBYz1TRVoH876iE4E7FGcEA2QBA6xWFAnc44m9uGGrJBUvy6rhD6LjuEY6UWaqvrR")),
        
        DeriveTestData(350,
            std::string("moivbRa7zD2p9XrUi5v3HWwZLpQD8zU7tP6beszYeycUypyLo1mBof8b6AYxUfttmC4XsGTCiKMHzei7cu2SjohyUZoaMTYy1HjmPX7rMSauunA"),
            std::string("moipac7LvBn77SWnUqrSFMSuhSSGRDuU7qWGuVcxHT3cpXozU6w4HotNWyxnpc6eeaYBsj768HVVkMgJTsLGt62yfYE632zJ9xEZPji2m6t4jgS")),
    };
    
    std::vector<DeriveTestData> vTestNetPairs = {
        DeriveTestData(0,
            std::string("toivSKjjCEpyZjWAeFqJRCtPPXwTSBLDzX327GfZy2u8Gp1gNiTrE8HRuVWBhQFk3kXQw6woCxxYC4yC3MwzQ67RQ4bSgjWTQ1UPkQinHXv9sV9"),
            std::string("toiprRP1Lw6KTeYbRxdfjunVry7emPouVaqrz8KX3uEKhKeZvsQaxqZEEPpB1uC2T8oMTnZTHj1BQHwUm8Tx634CXb4GrSmbwekU7LVQqt76VSJ")),
        DeriveTestData(1,
            std::string("toivSMi8ztSGMXwGtTVG65uNAzpNYF1QGhRsDX7rRm5o4xEHHucZd6h6R2zThjV4Wiio1M8NcGusa4VdGFjrdwxSkRsokvFFQ8wKw9pHADob9Q7"),
            std::string("toiprTMR9ahcFSyhgAHdQnoUeRzZsTV5mmEi6NmoWdQzVTsAr4ZJMoxtjwJT2DmUGtKWrSE5dPveDHkwhiwqUSBY2bdY7PofLowX92faqAa5ryG")),
        
        DeriveTestData(350,
            std::string("toivVPhHNyDstJXTzBJYLQKLmAMMKmooira2raxuecEzmwM6D2YAVQnBourYJFgsER54JHGiMAd6qXwiaaNXW36myqQ5tstw5VXzcjiNmBb7gRo"),
            std::string("toipuVLZXfVDnDZtmt6uf7DTEbXYezHVDvNsjScrjUaCCSyymBUuE83z8pAXcme1gCFUa8vzbaTdiUee7XWxTFwfPxNhBKwGHfqLdXqX7i7qwr7")),
    };
    CBitcoinExtKey extKey58;
    
    // - valid string
    BOOST_CHECK(0 == extKey58.Set58(vMainNetPairs[0].vKey58.c_str()));
    BOOST_CHECK(strcmp(extKey58.ToString().c_str(), vMainNetPairs[0].vKey58.c_str()) == 0);
    // - invalid string
    BOOST_CHECK(0 != extKey58.Set58(vMainNetPairs[0].vKey58.c_str()+3));
    
    RunDeriveTest(vMainNetPairs);
    
    
    // - fail testnet key on main
    BOOST_CHECK(0 != extKey58.Set58(vTestNetPairs[0].vKey58.c_str()));
    
    
    
    
    
    
    // - switch to testnet
    BOOST_TEST_MESSAGE("Entering Testnet");
    fTestNet = true;
    SelectParams(CChainParams::TESTNET);
    
    // - pass testnet key on testnet
    BOOST_CHECK(0 == extKey58.Set58(vTestNetPairs[0].vKey58.c_str()));
    BOOST_CHECK(strcmp(extKey58.ToString().c_str(), vTestNetPairs[0].vKey58.c_str()) == 0);
    
    RunDeriveTest(vTestNetPairs);
    
    
    // -return to mainnet
    fTestNet = false;
    SelectParams(CChainParams::MAIN);
}
예제 #2
0
void RunDeriveTests()
{
    /*
        Must be able to derive deeper than the arbitrary ndepth field (255)
    */

    std::vector<DeriveTestData> vMainNetPairs = {
        DeriveTestData(0,
        std::string("sdcvmnKmFxG9k6UnN3wyLpTv83G1wgYEz1m21rZTUUimoDrYYMrZXUycudse21EZJTmkBBPN3k6Qhfzx5td8xzd9W893YhNozA3bZW3yVLVdrZU2"),
        std::string("sdcpmphCJNSUos9rNqn6FNi3ztvMW1wft1PVbifvBrwhm6JnhD9yk8rSNFTGfozGbmBsr8vZv9mGYSTfmEMpbfTTMb8TQfj7JRABmvBFKgA2xG8J")),
        DeriveTestData(1,
        std::string("sdcvmnMjfkum2tHDUJ9dJVLw6pitrnbvAHwQrxoukwSxU1zm9H3iEsx2a9R8J1ZncvjwZFdYd9QN33zUX7WvqEUzXUWKumZYnAB4Vgo4zD8jsyYq"),
        std::string("sdcpmpjAiB666exHV5ykD3b4ygPER81M4HZtSpvNUKftRtT1J8M8TXpr2kzkwpJr3awQ1XaEYVSC1FTVEAxJV3rah692fvg9MpKNpwsRVfTnZVvh")),

        DeriveTestData(350,
        std::string("sdcvmqPip8zYeR3ofPsSajfM5QtRqa8iZk6Z2bskpAJ7fiysxCAdqkG7fYHzNc5zReSHpYZgxtJ5GKTvcRqZW6a8rhurBuXCTqXfANNy5p7qTemf"),
        std::string("sdcpmsm9rZAsiBisgBhZVHuUxGYmPuY9Tjj2cTzDXYX3dbS873U44Q8w89sd2QriazFKyFGwTTcizkeNvaksc2gLpTVmpzcGxmBGeSNbRwykttFP")),
    };

    std::vector<DeriveTestData> vTestNetPairs = {
        DeriveTestData(0,
        std::string("SDCVTZWtnQrSZ1LBHScXxi5amgw4Q1zGaRuAy5S12NAttbx3Bmsm1jDYh1B5P5qTPZaWpUZZ5mmubGTYjXPB1cQ9btJmhDoBLHZnwAGUBVH42gB3"),
        std::string("SDCPTTad968GGU17vZThYUhb4WKgaLQ22ffBVjTnZGGCAcU1vfVFcJEroz4QeZjFZLs5a1dkpZxsKfB2Adnun1axAGuzrfBweXWSxuXu2Wj3AaGp")),
        DeriveTestData(1,
        std::string("SDCVTZYsCDW3qo8cPgpBvNxbkUPwK83wki5ZpBgTJpu5ZQ6Fnh4uj8BxMWiZf6Agi2YiCYojfB5rveT5AkGxsrFzdEg44Hyv8HhFsM1ZgN1keP5r"),
        std::string("SDCPTTcbYtmsZFoZ2ofMW9ac3HnZVSThCwqaLqiEqizNqQcEXagQKhDGUVbtva3q1AcbjQHRSudnnUAqdaPPfPz5Vmva7v8yhvfe1wE5CW1VbMPQ")),

        DeriveTestData(350,
        std::string("SDCVTcarLbaqTKuCanY1CdH1j4ZUHuakAAEhypkJN3kEm75NbcBqKzW3SubRjggtWkF4Tqjszuya9uvXG4bbYiM8xU5aLRwZoy3rY2bTmxwvGxui"),
        std::string("SDCPTWeahGrfAna9DuPAnPu21sx6UDzVcPziWUn5twqY37bMLVoKvZXMZtUm1AbhYZvXh7z8MspKmyMjKzBxnNoqd9HKGz57JsXXqRjF8nXws6C5")),
    };
    CBitcoinExtKey extKey58;

    // - valid string
    BOOST_CHECK(0 == extKey58.Set58(vMainNetPairs[0].vKey58.c_str()));
    BOOST_CHECK(strcmp(extKey58.ToString().c_str(), vMainNetPairs[0].vKey58.c_str()) == 0);
    // - invalid string
    BOOST_CHECK(0 != extKey58.Set58(vMainNetPairs[0].vKey58.c_str()+3));

    RunDeriveTest(vMainNetPairs);


    // - fail testnet key on main
    BOOST_CHECK(0 != extKey58.Set58(vTestNetPairs[0].vKey58.c_str()));






    // - switch to testnet
    BOOST_MESSAGE("Entering Testnet");
    fTestNet = true;
    SelectParams(CChainParams::TESTNET);

    // - pass testnet key on testnet
    BOOST_CHECK(0 == extKey58.Set58(vTestNetPairs[0].vKey58.c_str()));
    BOOST_CHECK(strcmp(extKey58.ToString().c_str(), vTestNetPairs[0].vKey58.c_str()) == 0);

    RunDeriveTest(vTestNetPairs);


    // -return to mainnet
    fTestNet = false;
    SelectParams(CChainParams::MAIN);
}