#include "DebugPassphrasePage.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\\debugPassphrase.cpsp" #include "../Crypto/KeyPair.h" #line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp" #include "../ServerConfig.h" DebugPassphrasePage::DebugPassphrasePage(Session* arg): SessionHTTPRequestHandler(arg) { } void DebugPassphrasePage::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 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" const char* pageName = "Debug Passphrase"; auto mm = MemoryManager::getInstance(); KeyPair keys; std::string privKeyHex = ""; std::string privKeyCryptedHex = ""; User::passwordHashed pwdHashed = 0; Poco::AutoPtr existingUser; if(!form.empty()) { auto passphrase = KeyPair::filterPassphrase(form.get("passphrase", "")); Mnemonic* wordSource = nullptr; if(!User::validatePassphrase(passphrase, &wordSource)) { addError(new Error("debug Passphrase", "invalid passphrase"), false); } else { keys.generateFromPassphrase(passphrase.data(), wordSource); } auto email = form.get("email", ""); auto newUser = new User(email.data(), "first_name", "last_name"); if(email != "") { existingUser = controller::User::create(); existingUser->load(email); } newUser->validatePwd(form.get("password", ""), this); pwdHashed = newUser->getPwdHashed(); auto privKey = keys.getPrivateKey(); if(privKey) { privKeyHex = KeyPair::getHex(privKey); auto privKeyCrypted = newUser->encrypt(privKey); if(privKeyCrypted) { privKeyCryptedHex = KeyPair::getHex(privKeyCrypted); mm->releaseMemory(privKeyCrypted); } } getErrors(newUser); delete newUser; } 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 Passphrase

\n"; responseStream << "\t"; #line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tUserdata\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\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

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

Public key:
"; #line 69 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" responseStream << ( keys.getPubkeyHex() ); responseStream << "

\n"; responseStream << "\t

Private Key:
"; #line 70 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" responseStream << ( privKeyHex ); responseStream << "

\n"; responseStream << "\t

Passwort Hashed:
"; #line 71 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" responseStream << ( std::to_string(pwdHashed) ); responseStream << "

\n"; responseStream << "\t

Private key crypted:
"; #line 72 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" responseStream << ( privKeyCryptedHex ); responseStream << "

\n"; responseStream << "\t"; #line 73 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" if(!existingUser.isNull()) { auto userModel = existingUser->getModel(); auto dbPubkey = userModel->getPublicKey(); responseStream << "\n"; responseStream << "\t\t

user Public:
"; #line 77 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" responseStream << ( KeyPair::getHex(dbPubkey, ed25519_pubkey_SIZE) ); responseStream << "

\n"; responseStream << "\t"; #line 78 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugPassphrase.cpsp" } responseStream << "\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(); }