#include "SaveKeysPage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 7 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" #include "Poco/Net/HTTPServerParams.h" enum PageState { PAGE_ASK, PAGE_SHOW_PUBKEY, PAGE_ERROR }; #line 1 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\header.cpsp" #include "../ServerConfig.h" SaveKeysPage::SaveKeysPage(Session* arg): SessionHTTPRequestHandler(arg) { } void SaveKeysPage::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 18 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" const char* pageName = "Daten auf Server speichern?"; bool hasErrors = mSession->errorCount() > 0; // crypto key only in memory, if user has tipped in his passwort in this session bool hasPassword = mSession->getUser()->hasCryptoKey(); PageState state = PAGE_ASK; auto uri_start = ServerConfig::g_php_serverPath;//request.serverParams().getServerName(); // skip asking user if he like to save keys and passphrase on server state = PAGE_SHOW_PUBKEY; if(!mSession->generateKeys(true, true)) { getErrors(mSession); } if(!form.empty()) { // privkey auto savePrivkeyChoice = form.get("save-privkey"); bool savePrivkey = false; if(savePrivkeyChoice == "yes") { if(!hasPassword) { // check pwd auto pwd = form.get("save-privkey-password", ""); if(!mSession->isPwdValid(pwd)) { addError(new Error("Passwort", "Das Passwort stimmt nicht. Bitte verwende dein Passwort von der Registrierung")); hasErrors = true; } else { savePrivkey = true; } } else { savePrivkey = true; } } if(!hasErrors) { auto savePassphraseChoice = form.get("save-passphrase"); bool savePassphrase = false; if(savePassphraseChoice == "yes") { savePassphrase = true; } if(!mSession->generateKeys(savePrivkey, savePassphrase)) { hasErrors = true; } else if(mSession->getSessionState() >= SESSION_STATE_KEY_PAIR_GENERATED) { state = PAGE_SHOW_PUBKEY; //printf("uri_start: %s\n", uri_start.data()); //response.redirect(uri_start + "/"); } else { state = PAGE_ERROR; } } //printf("SaveKeysPage: hasErrors: %d, session state: %d, target state: %d\n", //hasErrors, mSession->getSessionState(), SESSION_STATE_KEY_PAIR_GENERATED); } getErrors(mSession); 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.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; #line 9 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\header.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 0.4.5

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

Daten speichern

\n"; responseStream << "\t"; #line 75 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "\t"; #line 76 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" if(state == PAGE_ASK) { responseStream << "\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tGradido Private Key speichern\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t

Möchtest du deinen Gradido Private Key auf dem Server mit deinem Passwort verschlüsselt speichern?

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

Wenn du ihn speicherst brauchst du dich in Zukunft nur mit deiner E-Mail und deinem Passwort einzuloggen.

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

Wenn du ihn nicht speicherst, müsstest du jedes mal wenn du eine Transaktion machen willst, deine Passphrase hier reinkopieren.

\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"; #line 89 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" if(!hasPassword) { responseStream << "\n"; responseStream << "\t\t\t\t

Ich brauche nochmal dein Passwort wenn du dich für ja entscheidest.

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

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

\n"; responseStream << "\t\t\t"; #line 95 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" } responseStream << "\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
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\tPassphrase speichern\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t

Möchtest du deine Passphrase mit dem Server-Admin-Key verschlüsselt auf dem Server gespeichert haben?

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

Dann kann dir der Server-Admin deine Passphrase zuschicken wenn du sie verlegt hast.

\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\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t

\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\n"; responseStream << "\t
\n"; responseStream << "\t"; #line 118 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" } else if(state == PAGE_SHOW_PUBKEY) { responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\t

Deine Daten werden nun verschlüsselt und gespeichert.

\n"; responseStream << "\t\t\t\n"; responseStream << "\t\t\tZurück zur Startseite\n"; responseStream << "\t\t
\n"; responseStream << "\t"; #line 128 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" } else if(state == PAGE_ERROR) { responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Ein Fehler trat auf, bitte versuche es erneut oder wende dich an den Server-Admin

\n"; responseStream << "\t\t\t"; #line 131 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" responseStream << ( mSession->getSessionStateString() ); responseStream << "\n"; responseStream << "\t\t
\n"; responseStream << "\t"; #line 133 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\saveKeys.cpsp" } responseStream << "\n"; responseStream << "
\n"; // begin include footer.cpsp responseStream << "\t
\n"; responseStream << "\t\t\t"; #line 2 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\footer.cpsp" responseStream << ( mTimeProfiler.string() ); responseStream << "\n"; responseStream << "\t
\n"; responseStream << "\n"; responseStream << ""; // end include footer.cpsp responseStream << "\n"; if (_compressResponse) _gzipStream.close(); }