adding debug output

This commit is contained in:
Dario Rekowski on RockPI 2019-10-07 07:04:34 +00:00
parent 5a6a77d601
commit e4ffe57750
8 changed files with 41 additions and 11 deletions

View File

@ -103,6 +103,7 @@ bool KeyPair::generateFromPassphrase(const char* passphrase, Mnemonic* word_sour
printf("Sodium Private: \t%s\n", getHex(*mSodiumSecret, mSodiumSecret->size()).data()); printf("Sodium Private: \t%s\n", getHex(*mSodiumSecret, mSodiumSecret->size()).data());
printf("// ********* Keys End ************ //\n"); printf("// ********* Keys End ************ //\n");
*/ */
printf("[KeyPair::generateFromPassphrase] finished!\n");
// using // using
return true; return true;
} }

View File

@ -18,11 +18,15 @@ ObfusArray::ObfusArray(size_t size, const unsigned char * data)
d[m_arraySize - 4] = randombytes_random(); d[m_arraySize - 4] = randombytes_random();
memcpy(&m_Data[m_offsetSize], data, size); memcpy(&m_Data[m_offsetSize], data, size);
printf("[ObfusArray] data: %lld\n", (int64_t)m_Data);
} }
ObfusArray::~ObfusArray() ObfusArray::~ObfusArray()
{ {
printf("[ObfusArray::~ObfusArray] data: %lld\n", (int64_t)m_Data);
if (m_Data) { if (m_Data) {
free(m_Data); free(m_Data);
} }
printf("[ObfusArray::~ObfusArray] finish\n");
} }

View File

@ -49,11 +49,13 @@ void DashboardPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
responseStream << "<div class=\"grd_container\">\n"; responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t<h1>Willkommen "; responseStream << "\t<h1>Willkommen ";
#line 28 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" #line 28 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp"
printf("[DashboardPage] call get User get Name: \n");
responseStream << ( mSession->getUser()->getName() ); responseStream << ( mSession->getUser()->getName() );
responseStream << "</h1>\n"; responseStream << "</h1>\n";
responseStream << "\t<h3>Status</h3>\n"; responseStream << "\t<h3>Status</h3>\n";
responseStream << "\t<p>"; responseStream << "\t<p>";
#line 30 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp" #line 30 "/home/rock/code/gradido_login_server/src/cpsp/dashboard.cpsp"
printf("[DashboardPage] call getSessionStateString: \n");
responseStream << ( mSession->getSessionStateString() ); responseStream << ( mSession->getSessionStateString() );
responseStream << "</p>\n"; responseStream << "</p>\n";
responseStream << "\t"; responseStream << "\t";

View File

@ -33,7 +33,8 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
session->setClientIp(user_host); session->setClientIp(user_host);
response.addCookie(session->getLoginCookie()); response.addCookie(session->getLoginCookie());
auto uri_start = request.serverParams().getServerName(); auto uri_start = request.serverParams().getServerName();
response.redirect(uri_start + "/"); //response.redirect(uri_start + "/");
response.redirect("./");
return; return;
} }
} else { } else {
@ -78,7 +79,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
responseStream << "\t<div class=\"grd_container\">\n"; responseStream << "\t<div class=\"grd_container\">\n";
responseStream << "\t\t<h1>Login</h1>\n"; responseStream << "\t\t<h1>Login</h1>\n";
responseStream << "\t\t"; responseStream << "\t\t";
#line 62 "/home/rock/code/gradido_login_server/src/cpsp/login.cpsp" #line 63 "/home/rock/code/gradido_login_server/src/cpsp/login.cpsp"
responseStream << ( session->getErrorsHtml() ); responseStream << ( session->getErrorsHtml() );
responseStream << "\n"; responseStream << "\n";
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n"; responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";

View File

@ -77,6 +77,7 @@ Poco::Net::HTTPRequestHandler* PageRequestHandlerFactory::createRequestHandler(c
return new SaveKeysPage(s); return new SaveKeysPage(s);
} }
if (s && s->getUser()) { if (s && s->getUser()) {
printf("[PageRequestHandlerFactory] go to dashboard page with user\n");
return new DashboardPage(s); return new DashboardPage(s);
} }
} else { } else {

View File

@ -498,6 +498,7 @@ bool Session::generateKeys(bool savePrivkey, bool savePassphrase)
} }
else { else {
if (savePassphrase) { if (savePassphrase) {
printf("[Session::generateKeys] create save passphrase task\n");
UniLib::controller::TaskPtr savePassphrase(new WritePassphraseIntoDB(mSessionUser->getDBId(), mPassphrase)); UniLib::controller::TaskPtr savePassphrase(new WritePassphraseIntoDB(mSessionUser->getDBId(), mPassphrase));
savePassphrase->setFinishCommand(new SessionStateUpdateCommand(SESSION_STATE_PASSPHRASE_WRITTEN, this)); savePassphrase->setFinishCommand(new SessionStateUpdateCommand(SESSION_STATE_PASSPHRASE_WRITTEN, this));
savePassphrase->scheduleTask(savePassphrase); savePassphrase->scheduleTask(savePassphrase);

View File

@ -23,11 +23,12 @@ int UserCreateCryptoKey::run()
mUser->setCryptoKey(cryptoKey); mUser->setCryptoKey(cryptoKey);
if (sizeof(User::passwordHashed) != crypto_shorthash_BYTES) { if (sizeof(User::passwordHashed) != crypto_shorthash_BYTES) {
printf("[UserCreateCryptoKey] crypto_shorthash_BYTES != sizeof(mPasswordHashed)\n");
throw Poco::Exception("crypto_shorthash_BYTES != sizeof(mPasswordHashed)"); throw Poco::Exception("crypto_shorthash_BYTES != sizeof(mPasswordHashed)");
} }
User::passwordHashed pwdHashed; User::passwordHashed pwdHashed;
crypto_shorthash((unsigned char*)&pwdHashed, *cryptoKey, crypto_box_SEEDBYTES, *ServerConfig::g_ServerCryptoKey);
crypto_shorthash((unsigned char*)&pwdHashed, *cryptoKey, crypto_box_SEEDBYTES, *ServerConfig::g_ServerCryptoKey);
mUser->setPwdHashed(pwdHashed); mUser->setPwdHashed(pwdHashed);
printf("crypto key created\n"); printf("crypto key created\n");
@ -54,11 +55,18 @@ int UserGenerateKeys::run()
int UserWriteIntoDB::run() int UserWriteIntoDB::run()
{ {
auto cm = ConnectionManager::getInstance(); auto cm = ConnectionManager::getInstance();
auto em = ErrorManager::getInstance();
auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER);
Poco::Data::Statement insert = mUser->insertIntoDB(session); Poco::Data::Statement insert = mUser->insertIntoDB(session);
if (1 != insert.execute()) { try {
mUser->addError(new Error("User::insertIntoDB", "error by inserting data tuple to db")); if (1 != insert.execute()) {
return -1; mUser->addError(new Error("User::insertIntoDB", "error by inserting data tuple to db"));
return -1;
}
} catch (Poco::Exception& ex) {
em->addError(new ParamError("[UserWriteIntoDB]", "error writing into db", ex.displayText().data()));
em->sendErrorsAsEmail();
return -3;
} }
if (!mUser->loadEntryDBId(session)) { if (!mUser->loadEntryDBId(session)) {
return -2; return -2;
@ -86,14 +94,18 @@ int UserWriteKeysIntoDB::run()
auto keyPairs = getParent(0).cast<UserGenerateKeys>()->getKeyPairs(); auto keyPairs = getParent(0).cast<UserGenerateKeys>()->getKeyPairs();
auto pubKey = keyPairs->getPublicKey(); auto pubKey = keyPairs->getPublicKey();
printf("[UserWriteKeysIntoDB] after init\n");
Poco::Data::BLOB pubkey_blob(pubKey, crypto_sign_PUBLICKEYBYTES); Poco::Data::BLOB pubkey_blob(pubKey, crypto_sign_PUBLICKEYBYTES);
Poco::Data::Statement update(session); Poco::Data::Statement update(session);
Poco::Data::BLOB* pprivkey_blob = nullptr; Poco::Data::BLOB* pprivkey_blob = nullptr;
if (mSavePrivKey) { if (mSavePrivKey) {
printf("[UserWriteKeysIntoDB] save privkey\n");
// TODO: encrypt privkey // TODO: encrypt privkey
auto privKey = keyPairs->getPrivateKey(); auto privKey = keyPairs->getPrivateKey();
printf("[UserWriteKeysIntoDB] privKey hex: %s\n", KeyPair::getHex(*privKey, privKey->size()).data()); printf("[UserWriteKeysIntoDB] privKey hex: %s\n", KeyPair::getHex(*privKey, privKey->size()).data());
pprivkey_blob = mUser->encrypt(privKey); pprivkey_blob = mUser->encrypt(privKey);
printf("[UserWriteKeysIntoDB] privkey encrypted\n");
//Poco::Data::BLOB privkey_blob(*privKey, privKey->size()); //Poco::Data::BLOB privkey_blob(*privKey, privKey->size());
update << "UPDATE users SET pubkey=?, privkey=? where id=?", update << "UPDATE users SET pubkey=?, privkey=? where id=?",
@ -122,6 +134,7 @@ int UserWriteKeysIntoDB::run()
} }
return -1; return -1;
} }
printf("[UserWriteKeysIntoDB] after saving into db\n");
if (pprivkey_blob) { if (pprivkey_blob) {
delete pprivkey_blob; delete pprivkey_blob;
} }
@ -310,6 +323,7 @@ bool User::generateKeys(bool savePrivkey, const std::string& passphrase, Session
session->updateState(SESSION_STATE_KEY_PAIR_GENERATED); session->updateState(SESSION_STATE_KEY_PAIR_GENERATED);
if (mDBId == 0) { if (mDBId == 0) {
//printf("[User::generateKeys] dbid is zero, load from db\n");
loadEntryDBId(ConnectionManager::getInstance()->getConnection(CONNECTION_MYSQL_LOGIN_SERVER)); loadEntryDBId(ConnectionManager::getInstance()->getConnection(CONNECTION_MYSQL_LOGIN_SERVER));
if (mDBId == 0) { if (mDBId == 0) {
auto em = ErrorManager::getInstance(); auto em = ErrorManager::getInstance();
@ -375,14 +389,19 @@ Poco::Data::Statement User::insertIntoDB(Poco::Data::Session session)
bool User::loadEntryDBId(Poco::Data::Session session) bool User::loadEntryDBId(Poco::Data::Session session)
{ {
auto em = ErrorManager::getInstance();
Poco::Data::Statement select(session); Poco::Data::Statement select(session);
select << "SELECT id from users where email = ?;", select << "SELECT id from users where email = ?;",
into(mDBId), use(mEmail); into(mDBId), use(mEmail);
try {
if (select.execute() != 1) { if (select.execute() != 1) {
addError(new Error("User::loadEntryDBId", "didn't get expectet row count (1)")); addError(new Error("User::loadEntryDBId", "didn't get expectet row count (1)"));
return false; return false;
}
} catch(Poco::Exception& ex) {
em->addError(new ParamError("[User::loadEntryDBId]", "error selecting from db", ex.displayText().data()));
em->sendErrorsAsEmail();
} }
return true; return true;

View File

@ -18,7 +18,8 @@
session->setClientIp(user_host); session->setClientIp(user_host);
response.addCookie(session->getLoginCookie()); response.addCookie(session->getLoginCookie());
auto uri_start = request.serverParams().getServerName(); auto uri_start = request.serverParams().getServerName();
response.redirect(uri_start + "/"); //response.redirect(uri_start + "/");
response.redirect("./");
return; return;
} }
} else { } else {