diff --git a/src/cpp/Crypto/KeyPairEd25519.h b/src/cpp/Crypto/KeyPairEd25519.h
index ccd14e673..7b3f11d4b 100644
--- a/src/cpp/Crypto/KeyPairEd25519.h
+++ b/src/cpp/Crypto/KeyPairEd25519.h
@@ -41,6 +41,8 @@ public:
return 0 == sodium_memcmp(mSodiumPublic, b.mSodiumPublic, crypto_sign_PUBLICKEYBYTES);
}
inline bool isTheSame(const unsigned char* pubkey) const {
+ if (!pubkey)
+ return false;
return 0 == sodium_memcmp(mSodiumPublic, pubkey, crypto_sign_PUBLICKEYBYTES);
}
//! \return 0 if the same
diff --git a/src/cpp/HTTPInterface/DebugMnemonicPage.cpp b/src/cpp/HTTPInterface/DebugMnemonicPage.cpp
index 2c875e300..2061f8066 100644
--- a/src/cpp/HTTPInterface/DebugMnemonicPage.cpp
+++ b/src/cpp/HTTPInterface/DebugMnemonicPage.cpp
@@ -35,6 +35,7 @@
{
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";
@@ -58,7 +59,7 @@ void DebugMnemonicPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poc
if (_compressResponse) response.set("Content-Encoding", "gzip");
Poco::Net::HTMLForm form(request, request.stream());
-#line 41 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
+#line 42 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
const char* pageName = "Debug Mnemonic";
WordChecked checkedWord;
@@ -189,7 +190,7 @@ void DebugMnemonicPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poc
responseStream << "
\n";
responseStream << "\t
Debug Mnemonic
\n";
responseStream << "\t";
-#line 103 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
+#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\debugMnemonic.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t
\n";
diff --git a/src/cpp/HTTPInterface/ResetPassword.cpp b/src/cpp/HTTPInterface/ResetPassword.cpp
index 1138e8412..720a5203b 100644
--- a/src/cpp/HTTPInterface/ResetPassword.cpp
+++ b/src/cpp/HTTPInterface/ResetPassword.cpp
@@ -91,7 +91,7 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
sendUserEmail = true;
}
}
- printf("userExist: %d, sendUserEmail: %d\n", user_exist, sendUserEmail);
+
if(!errorCount())
{
// send reset password email
@@ -99,7 +99,7 @@ void ResetPassword::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::N
if(user_exist) {
result = session->sendResetPasswordEmail(user, sendUserEmail);
}
- printf("result: %d\n", result);
+
if(2 == result) {
state = PAGE_EMAIL_ALREADY_SEND;
} else if(sendUserEmail) {
diff --git a/src/cpp/controller/User.cpp b/src/cpp/controller/User.cpp
index 9a8538ee5..ad1fd9fc5 100644
--- a/src/cpp/controller/User.cpp
+++ b/src/cpp/controller/User.cpp
@@ -159,7 +159,7 @@ namespace controller {
mPassword = authenticated_encryption;
// additional check if saved private key found, decrypt and derive public key and compare with saved public key
- if (!model->hasPrivateKeyEncrypted()) {
+ if (!model->hasPrivateKeyEncrypted()) {
return 1;
}
else
@@ -176,7 +176,11 @@ namespace controller {
}
}
mGradidoKeyPair = new KeyPairEd25519(clear_private_key);
- if (!mGradidoKeyPair->isTheSame(model->getPublicKey())) {
+ if (!model->getPublicKey()) {
+ model->setPublicKey(mGradidoKeyPair->getPublicKey());
+ model->updatePublickey();
+ }
+ else if (!mGradidoKeyPair->isTheSame(model->getPublicKey())) {
delete mGradidoKeyPair;
mGradidoKeyPair = nullptr;
//printf("pubkeys don't match\n");