#include "DebugMnemonicPage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" #include "../ServerConfig.h" #include "../Crypto/Passphrase.h" struct WordChecked { WordChecked() : index(0), bSet(false) {}; int index; std::string word; std::string language; bool bSet; std::string print() { std::string str; str = std::to_string(index); str += ": "; str += word; str += " ("; str += language; str += ")"; return str; } }; const char* getLanguageByMnemonicListIndex(ServerConfig::Mnemonic_Types type) { switch(type) { case ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER: return "de"; case ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER_FIXED_CASES: return "de"; case ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER: return "en"; } return "unknown"; } #line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" #include "../ServerConfig.h" DebugMnemonicPage::DebugMnemonicPage(Session* arg): SessionHTTPRequestHandler(arg) { } void DebugMnemonicPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); bool _compressResponse(request.hasToken("Accept-Encoding", "gzip")); if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); #line 42 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" const char* pageName = "Debug Mnemonic"; WordChecked checkedWord; WordChecked checkedIndex[ServerConfig::Mnemonic_Types::MNEMONIC_MAX]; if(!form.empty()) { if("" != form.get("check_word", "")) { auto word = Passphrase::filter(form.get("word", "")); if("" != word) { checkedWord.bSet = true; checkedWord.word = word; for (int i = ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER; i < ServerConfig::Mnemonic_Types::MNEMONIC_MAX; i++) { Mnemonic& m = ServerConfig::g_Mnemonic_WordLists[i]; if (word != "\0" && word != "" && word.size() > 3) { if(m.isWordExist(word)) { checkedWord.index = m.getWordIndex(word.data()); checkedWord.language = getLanguageByMnemonicListIndex((ServerConfig::Mnemonic_Types)i); break; } } else { addError(new Error("Word", "Ungültiges Wort, es sollte länger als 3 Zeichen sein")); checkedWord.bSet = false; break; } } } } if("" != form.get("check_index", "")) { try { auto index = stoi(form.get("index", "")); if(index < 0 || index >= 2048) { addError(new Error("Index", "Ungültiger Index, muss sich im Bereich [0:2047] bewegen")); } else { for (int i = ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER; i < ServerConfig::Mnemonic_Types::MNEMONIC_MAX; i++) { Mnemonic& m = ServerConfig::g_Mnemonic_WordLists[i]; checkedIndex[i].bSet = true; checkedIndex[i].index = index; checkedIndex[i].word = m.getWord(index); checkedIndex[i].language = getLanguageByMnemonicListIndex((ServerConfig::Mnemonic_Types)i); } } } catch(...) { addError(new Error("Index", "Ungültiger Index, keine Nummer")); } } } std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; // begin include header_old.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; #line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\t

Login Server in Entwicklung

\n"; responseStream << "\t

Alpha "; #line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "

\n"; responseStream << "
\n"; // end include header_old.cpsp responseStream << "\n"; responseStream << "
\n"; responseStream << "\t

Debug Mnemonic

\n"; responseStream << "\t"; #line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tWort prüfen\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t"; #line 113 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" if(checkedWord.bSet) { responseStream << "\n"; responseStream << "\t\t\t\t

"; #line 114 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" responseStream << ( checkedWord.print() ); responseStream << "

\n"; responseStream << "\t\t\t"; #line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" } responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tIndex prüfen\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t"; #line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" if(checkedIndex[0].bSet) { responseStream << "\n"; responseStream << "\t\t\t\t
    \n"; responseStream << "\t\t\t\t"; #line 126 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" for (int i = ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER; i < ServerConfig::Mnemonic_Types::MNEMONIC_MAX; i++) { responseStream << "\n"; responseStream << "\t\t\t\t\t
  • \n"; responseStream << "\t\t\t\t\t"; #line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" responseStream << ( checkedIndex[i].print() ); responseStream << "\n"; responseStream << "\t\t\t\t\t
  • \n"; responseStream << "\t\t\t\t"; #line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t"; #line 132 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp" } responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t
\n"; responseStream << "
\n"; // begin include footer.cpsp responseStream << "
\n"; responseStream << "

Copyright © Gradido 2020

\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "
\n"; responseStream << " "; #line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" responseStream << ( mTimeProfiler.string() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "

Login Server in Entwicklung

\n"; responseStream << "

Alpha "; #line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "

\n"; responseStream << "
\n"; responseStream << " \n"; responseStream << "\n"; responseStream << "\n"; responseStream << ""; // end include footer.cpsp responseStream << "\n"; if (_compressResponse) _gzipStream.close(); }