#include "TranslatePassphrase.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\\translatePassphrase.cpsp" #include "../Crypto/KeyPair.h" #include "../ServerConfig.h" #line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" #include "../ServerConfig.h" TranslatePassphrase::TranslatePassphrase(Session* arg): SessionHTTPRequestHandler(arg) { } void TranslatePassphrase::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 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp" chooseLanguage(request); // variable needed for flags auto lang = mSession->getLanguage(); auto uri_start = ServerConfig::g_serverPath; const char* pageName = gettext("Passphrase Transformieren"); std::string passphrase; auto role = mSession->getNewUser()->getModel()->getRole(); std::string inputPassphrase; Mnemonic* wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]; Mnemonic* targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER]; if(lang == LANG_DE) { wordSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER]; targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]; } if(!form.empty()) { inputPassphrase = form.get("inputPassphrase", ""); auto localPassphrase = KeyPair::filterPassphrase(inputPassphrase); auto btnGenerate = form.get("btnGenerate", ""); if("" != btnGenerate) { mSession->generatePassphrase(); localPassphrase = mSession->getPassphrase(); inputPassphrase = localPassphrase; } if(localPassphrase != "" && !User::validatePassphrase(localPassphrase, &wordSource)) { addError(new Error( gettext("Fehler"), gettext("Diese Passphrase ist ungültig, bitte überprüfen oder neu generieren (lassen).") ), false); } else { if(wordSource == &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]) { targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_GRADIDO_BOOK_GERMAN_RANDOM_ORDER]; } else { targetSource = &ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER]; } passphrase = KeyPair::passphraseTransform(localPassphrase, wordSource, targetSource); } } #line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" bool withMaterialIcons = false; std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; // begin include login_header.cpsp // begin include header.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Login Server in Entwicklung
\n"; responseStream << "\tAlpha "; #line 20 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "
\n"; responseStream << ""; #line 68 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp" responseStream << ( gettext("Kopiere/schreibe deine Passphrase in die Textbox und du bekommst sie in die jeweils andere Sprache umgewandelt.") ); responseStream << "
\n"; responseStream << "\t\t"; #line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp" responseStream << ( gettext("Du kannst mit beiden Varianten dein Konto wiederherstellen oder dein Passwort ändern.") ); responseStream << "
\n"; responseStream << "\t\t"; #line 87 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\translatePassphrase.cpsp" responseStream << ( passphrase ); responseStream << "
\n"; responseStream << "\t\t\t