diff --git a/src/Application.cpp b/src/Application.cpp index dfbf216b5..918022bae 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -106,16 +106,64 @@ void Application::run() // mConnectionPool.start(); + // New stuff. + NewcoinAddress rootSeedMaster; + NewcoinAddress rootSeedRegular; + NewcoinAddress rootGeneratorMaster; + NewcoinAddress rootGeneratorRegular; + NewcoinAddress reservedPublicRegular; + NewcoinAddress reservedPrivateRegular; + NewcoinAddress rootAddress; + + rootSeedMaster.setFamilySeed(CKey::PassPhraseToKey("Master passphrase.")); + rootSeedRegular.setFamilySeed(CKey::PassPhraseToKey("Regular passphrase.")); + + std::cerr << "Master seed: " << rootSeedMaster.humanFamilySeed() << std::endl; + std::cerr << "Regular seed: " << rootSeedRegular.humanFamilySeed() << std::endl; + + rootGeneratorMaster.setFamilyGenerator(rootSeedMaster); + rootGeneratorRegular.setFamilyGenerator(rootSeedRegular); + + std::cerr << "Master generator: " << rootGeneratorMaster.humanFamilyGenerator() << std::endl; + std::cerr << "Regular generator: " << rootGeneratorRegular.humanFamilyGenerator() << std::endl; + + rootAddress.setAccountPublic(rootGeneratorMaster, 0); + + std::cerr << "Regular address: " << rootAddress.humanAccountPublic() << std::endl; + + reservedPublicRegular.setAccountPublic(rootGeneratorRegular, -1); + reservedPrivateRegular.setAccountPrivate(rootGeneratorRegular, rootSeedRegular, -1); + + std::cerr << "Reserved public regular: " << reservedPublicRegular.humanAccountPublic() << std::endl; + std::cerr << "Reserved private regular: " << reservedPrivateRegular.humanAccountPrivate() << std::endl; + + // hash of regular account #reserved public key. + uint160 uiGeneratorID = reservedPublicRegular.getAccountID(); + + // std::cerr << "uiGeneratorID: " << uiGeneratorID << std::endl; + + // Encrypt with regular account #reserved private key. + std::vector vucGeneratorCipher = reservedPrivateRegular.accountPrivateEncrypt(reservedPublicRegular, rootGeneratorMaster.getFamilyGenerator()); + + std::cerr << "Plain: " << strHex(rootGeneratorMaster.getFamilyGenerator()) << std::endl; + + std::cerr << "Cipher: " << strHex(vucGeneratorCipher) << std::endl; + + std::vector vucGeneratorText = reservedPrivateRegular.accountPrivateDecrypt(reservedPublicRegular, vucGeneratorCipher); + + std::cerr << "Plain: " << strHex(vucGeneratorText) << std::endl; + // Temporary root account will be ["This is my payphrase."]:0 NewcoinAddress rootFamilySeed; // Hold the 128 password. NewcoinAddress rootFamilyGenerator; // Hold the generator. - NewcoinAddress rootAddress; + // NewcoinAddress rootAddress; rootFamilySeed.setFamilySeed(CKey::PassPhraseToKey("This is my payphrase.")); rootFamilyGenerator.setFamilyGenerator(rootFamilySeed); rootAddress.setAccountPublic(rootFamilyGenerator, 0); std::cerr << "Root account: " << rootAddress.humanAccountID() << std::endl; + Ledger::pointer firstLedger = boost::make_shared(rootAddress, 100000000); assert(!!firstLedger->getAccountState(rootAddress)); firstLedger->updateHash();