update code because irohe-ed25519 was removed

This commit is contained in:
Dario 2020-10-06 15:41:34 +02:00 committed by Ulf Gebhardt
parent 582a9c2f4f
commit add8544cd5
No known key found for this signature in database
GPG Key ID: 81308EFE29ABFEBD
7 changed files with 28 additions and 29 deletions

View File

@ -58,16 +58,16 @@ KeyPairHedera::KeyPairHedera(const unsigned char* privateKey, size_t privateKeyS
} }
case 44: // DER encoded public key case 44: // DER encoded public key
if (0 == sodium_memcmp(publicKey, *derPrefixPub, derPrefixPub->size())) { if (0 == sodium_memcmp(publicKey, *derPrefixPub, derPrefixPub->size())) {
memcpy(mPublicKey, &publicKey[derPrefixPub->size()], ed25519_pubkey_SIZE); memcpy(mPublicKey, &publicKey[derPrefixPub->size()], crypto_sign_PUBLICKEYBYTES);
} }
break; break;
default: default:
throw Poco::Exception("[KeyPairHedera] invalid public key"); throw Poco::Exception("[KeyPairHedera] invalid public key");
} }
} }
auto public_key_2 = mm->getFreeMemory(ed25519_pubkey_SIZE); auto public_key_2 = mm->getFreeMemory(crypto_sign_PUBLICKEYBYTES);
crypto_sign_ed25519_sk_to_pk(*public_key_2, *mPrivateKey); crypto_sign_ed25519_sk_to_pk(*public_key_2, *mPrivateKey);
if (sodium_memcmp(*public_key_2, mPublicKey, ed25519_pubkey_SIZE) != 0) { if (sodium_memcmp(*public_key_2, mPublicKey, crypto_sign_PUBLICKEYBYTES) != 0) {
throw "public keys not match"; throw "public keys not match";
} }
@ -215,7 +215,7 @@ MemoryBin* KeyPairHedera::getPrivateKeyCopy() const
MemoryBin* KeyPairHedera::getPublicKeyCopy() const MemoryBin* KeyPairHedera::getPublicKeyCopy() const
{ {
auto mm = MemoryManager::getInstance(); auto mm = MemoryManager::getInstance();
auto public_key = mm->getFreeMemory(ed25519_pubkey_SIZE); auto public_key = mm->getFreeMemory(crypto_sign_PUBLICKEYBYTES);
memcpy(*public_key, mPublicKey, ed25519_pubkey_SIZE); memcpy(*public_key, mPublicKey, crypto_sign_PUBLICKEYBYTES);
return public_key; return public_key;
} }

View File

@ -42,7 +42,7 @@ public:
inline const unsigned char* getPublicKey() const { return mPublicKey; } inline const unsigned char* getPublicKey() const { return mPublicKey; }
MemoryBin* getPublicKeyCopy() const; MemoryBin* getPublicKeyCopy() const;
inline std::string getPublicKeyHex() const { return DataTypeConverter::binToHex(mPublicKey, getPublicKeySize()); } inline std::string getPublicKeyHex() const { return DataTypeConverter::binToHex(mPublicKey, getPublicKeySize()); }
const static size_t getPublicKeySize() {return ed25519_pubkey_SIZE;} const static size_t getPublicKeySize() {return crypto_sign_PUBLICKEYBYTES;}
inline bool isTheSame(const KeyPairHedera& b) const { inline bool isTheSame(const KeyPairHedera& b) const {
return 0 == sodium_memcmp(mPublicKey, b.mPublicKey, getPublicKeySize()); return 0 == sodium_memcmp(mPublicKey, b.mPublicKey, getPublicKeySize());
@ -89,7 +89,7 @@ private:
// 32 Byte // 32 Byte
//! \brief ed25519 libsodium public key //! \brief ed25519 libsodium public key
unsigned char mPublicKey[ed25519_pubkey_SIZE]; unsigned char mPublicKey[crypto_sign_PUBLICKEYBYTES];
}; };
#endif //__GRADIDO_LOGIN_SERVER_CRYPTO_HEDERA_KEYS_H #endif //__GRADIDO_LOGIN_SERVER_CRYPTO_HEDERA_KEYS_H

View File

@ -202,7 +202,7 @@ void AdminHederaAccountPage::handleRequest(Poco::Net::HTTPServerRequest& request
KeyPairHedera key_pair(private_key, public_key); KeyPairHedera key_pair(private_key, public_key);
auto crypto_key = controller::CryptoKey::load(key_pair.getPublicKey(), ed25519_pubkey_SIZE); auto crypto_key = controller::CryptoKey::load(key_pair.getPublicKey(), crypto_sign_PUBLICKEYBYTES);
if(crypto_key.isNull()) { if(crypto_key.isNull()) {
crypto_key = controller::CryptoKey::create(&key_pair, user, privateKeyEncryptedString == "true"); crypto_key = controller::CryptoKey::create(&key_pair, user, privateKeyEncryptedString == "true");

View File

@ -9,7 +9,6 @@
#include "../SingletonManager/MemoryManager.h" #include "../SingletonManager/MemoryManager.h"
#include "../SingletonManager/EmailManager.h" #include "../SingletonManager/EmailManager.h"
#include "../Crypto/KeyPair.h"
#include "../Crypto/Passphrase.h" #include "../Crypto/Passphrase.h"
#include "../Crypto/KeyPairEd25519.h" #include "../Crypto/KeyPairEd25519.h"
#include "../lib/DataTypeConverter.h" #include "../lib/DataTypeConverter.h"
@ -53,7 +52,7 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request
if (_compressResponse) response.set("Content-Encoding", "gzip"); if (_compressResponse) response.set("Content-Encoding", "gzip");
Poco::Net::HTMLForm form(request, request.stream()); Poco::Net::HTMLForm form(request, request.stream());
#line 36 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 35 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
auto mm = MemoryManager::getInstance(); auto mm = MemoryManager::getInstance();
auto em = EmailManager::getInstance(); auto em = EmailManager::getInstance();
@ -270,26 +269,26 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request
responseStream << "</div>\n"; responseStream << "</div>\n";
// end include header_old.cpsp // end include header_old.cpsp
responseStream << "\n"; responseStream << "\n";
#line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 184 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
if("" != errorString) { responseStream << "\n"; if("" != errorString) { responseStream << "\n";
responseStream << "\t"; responseStream << "\t";
#line 186 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( errorString ); responseStream << ( errorString );
responseStream << "\n"; responseStream << "\n";
#line 187 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 186 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} responseStream << "\n"; } responseStream << "\n";
responseStream << "<div class=\"grd_container\">\n"; responseStream << "<div class=\"grd_container\">\n";
responseStream << "\t"; responseStream << "\t";
#line 189 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 188 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( getErrorsHtml() ); responseStream << ( getErrorsHtml() );
responseStream << "\n"; responseStream << "\n";
responseStream << "\t<h1>Konto reparieren</h1>\n"; responseStream << "\t<h1>Konto reparieren</h1>\n";
responseStream << "\t<p>Der Login-Server hat festgestellt das die gespeicherte Passphrase nicht zu deinem Konto passt.</p>\n"; responseStream << "\t<p>Der Login-Server hat festgestellt das die gespeicherte Passphrase nicht zu deinem Konto passt.</p>\n";
responseStream << "\t"; responseStream << "\t";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 191 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
if(GENERATE_PASSPHRASE == state) { responseStream << "\n"; if(GENERATE_PASSPHRASE == state) { responseStream << "\n";
responseStream << "\t\t"; responseStream << "\t\t";
#line 193 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
if(new_user->canDecryptPrivateKey()) { responseStream << "\n"; if(new_user->canDecryptPrivateKey()) { responseStream << "\n";
responseStream << "\t\t\t<p>Dein Privat Key konnte noch entschlüsselt werden. Es könnte also eine neue Passphrase generiert werden und dein aktueller Kontostand\n"; responseStream << "\t\t\t<p>Dein Privat Key konnte noch entschlüsselt werden. Es könnte also eine neue Passphrase generiert werden und dein aktueller Kontostand\n";
responseStream << "\t\t\tauf die neue Adresse transferiert werden. </p>\n"; responseStream << "\t\t\tauf die neue Adresse transferiert werden. </p>\n";
@ -297,27 +296,27 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request
responseStream << "\t\t\t\t<input type=\"submit\" style=\"width:auto;\" name=\"generate\" value=\"Neue Passphrase generieren!\">\n"; responseStream << "\t\t\t\t<input type=\"submit\" style=\"width:auto;\" name=\"generate\" value=\"Neue Passphrase generieren!\">\n";
responseStream << "\t\t\t</form>\n"; responseStream << "\t\t\t</form>\n";
responseStream << "\t\t"; responseStream << "\t\t";
#line 199 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 198 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} else { responseStream << "\n"; } else { responseStream << "\n";
responseStream << "\t\t\t<p>Dein Privat Key konnte nicht entschlüsselt werden. Bitte wende dich an den Admin: <a href=\"mailto:"; responseStream << "\t\t\t<p>Dein Privat Key konnte nicht entschlüsselt werden. Bitte wende dich an den Admin: <a href=\"mailto:";
#line 200 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 199 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( adminEmail); responseStream << ( adminEmail);
responseStream << "\">"; responseStream << "\">";
#line 200 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 199 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( adminEmail ); responseStream << ( adminEmail );
responseStream << "</a></p>\n"; responseStream << "</a></p>\n";
responseStream << "\t\t"; responseStream << "\t\t";
#line 201 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 200 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} responseStream << "\n"; } responseStream << "\n";
responseStream << "\t"; responseStream << "\t";
#line 202 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 201 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} else if(SHOW_PASSPHRASE == state) { responseStream << "\n"; } else if(SHOW_PASSPHRASE == state) { responseStream << "\n";
responseStream << "\t\t<p>Deine neue Passphrase, bitte schreibe sie dir auf (am besten auf einen Zettel) und hebe sie gut auf. \n"; responseStream << "\t\t<p>Deine neue Passphrase, bitte schreibe sie dir auf (am besten auf einen Zettel) und hebe sie gut auf. \n";
responseStream << "\t\tDu brauchst sie wenn du dein Passwort vergessen hast oder dein Konto umziehen möchtest:</p>\n"; responseStream << "\t\tDu brauchst sie wenn du dein Passwort vergessen hast oder dein Konto umziehen möchtest:</p>\n";
responseStream << "\t\t<fieldset><legend>Deine neue Passphrase:</legend>\n"; responseStream << "\t\t<fieldset><legend>Deine neue Passphrase:</legend>\n";
responseStream << "\t\t\t<div class=\"grd_container_small grd_container\">\n"; responseStream << "\t\t\t<div class=\"grd_container_small grd_container\">\n";
responseStream << "\t\t\t\t"; responseStream << "\t\t\t\t";
#line 207 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( mSession->getPassphrase()->getString() ); responseStream << ( mSession->getPassphrase()->getString() );
responseStream << "\n"; responseStream << "\n";
responseStream << "\t\t\t</div>\n"; responseStream << "\t\t\t</div>\n";
@ -328,15 +327,15 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request
responseStream << "\t\t\t<p><input type=\"submit\" style=\"width:auto\" name=\"transfer\" value=\"Guthaben auf neue Adresse &uuml;berweisen!\"></p>\n"; responseStream << "\t\t\t<p><input type=\"submit\" style=\"width:auto\" name=\"transfer\" value=\"Guthaben auf neue Adresse &uuml;berweisen!\"></p>\n";
responseStream << "\t\t</form>\n"; responseStream << "\t\t</form>\n";
responseStream << "\t"; responseStream << "\t";
#line 215 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 214 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} else if(FINISH == state) { responseStream << "\n"; } else if(FINISH == state) { responseStream << "\n";
responseStream << "\t\t<p>Neue Daten erfolgreich gespeichert, bitte logge dich nun aus. Danach kannst du dich gerne wieder einloggen und müsstest dein Guthaben wieder auf deinem Konto haben.</p>\n"; responseStream << "\t\t<p>Neue Daten erfolgreich gespeichert, bitte logge dich nun aus. Danach kannst du dich gerne wieder einloggen und müsstest dein Guthaben wieder auf deinem Konto haben.</p>\n";
responseStream << "\t\t<a class=\"grd-nav-bn\" href=\""; responseStream << "\t\t<a class=\"grd-nav-bn\" href=\"";
#line 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 216 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
responseStream << ( ServerConfig::g_serverPath + "/logout" ); responseStream << ( ServerConfig::g_serverPath + "/logout" );
responseStream << "\">Ausloggen</a>\n"; responseStream << "\">Ausloggen</a>\n";
responseStream << "\t"; responseStream << "\t";
#line 218 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp" #line 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\repairDefectPassphrase.cpsp"
} responseStream << "\n"; } responseStream << "\n";
responseStream << "</div>\n"; responseStream << "</div>\n";
// begin include footer.cpsp // begin include footer.cpsp

View File

@ -3,6 +3,7 @@
#include "proto/gradido/TransactionBody.pb.h" #include "proto/gradido/TransactionBody.pb.h"
#include "model/Session.h" #include "model/Session.h"
#include "lib/Profiler.h" #include "lib/Profiler.h"
#include "ServerConfig.h" #include "ServerConfig.h"
@ -35,7 +36,7 @@ int main(int argc, char** argv)
ServerConfig::g_versionString = Poco::DateTimeFormatter::format(buildDateTime, "0.%y.%m.%d"); ServerConfig::g_versionString = Poco::DateTimeFormatter::format(buildDateTime, "0.%y.%m.%d");
//ServerConfig::g_versionString = "0.20.KW13.02"; //ServerConfig::g_versionString = "0.20.KW13.02";
printf("Version: %s\n", ServerConfig::g_versionString.data()); printf("Version: %s\n", ServerConfig::g_versionString.data());
printf("User size: %d Bytes, Session size: %d Bytes\n", (int)sizeof(User), (int)sizeof(Session)); printf("User size: %d Bytes, Session size: %d Bytes\n", (int)sizeof(controller::User), (int)sizeof(Session));
printf("model sizes: User: %d Bytes, EmailOptIn: %d Bytes\n", (int)sizeof(model::table::User), (int)sizeof(model::table::EmailOptIn)); printf("model sizes: User: %d Bytes, EmailOptIn: %d Bytes\n", (int)sizeof(model::table::User), (int)sizeof(model::table::EmailOptIn));
// load word lists // load word lists

View File

@ -181,7 +181,7 @@
KeyPairHedera key_pair(private_key, public_key); KeyPairHedera key_pair(private_key, public_key);
auto crypto_key = controller::CryptoKey::load(key_pair.getPublicKey(), ed25519_pubkey_SIZE); auto crypto_key = controller::CryptoKey::load(key_pair.getPublicKey(), crypto_sign_PUBLICKEYBYTES);
if(crypto_key.isNull()) { if(crypto_key.isNull()) {
crypto_key = controller::CryptoKey::create(&key_pair, user, privateKeyEncryptedString == "true"); crypto_key = controller::CryptoKey::create(&key_pair, user, privateKeyEncryptedString == "true");

View File

@ -7,11 +7,10 @@
<%! <%!
#include "../SingletonManager/MemoryManager.h" #include "../SingletonManager/MemoryManager.h"
#include "../SingletonManager/EmailManager.h" #include "../SingletonManager/EmailManager.h"
#include "../Crypto/KeyPair.h"
#include "../Crypto/Passphrase.h" #include "../Crypto/Passphrase.h"
#include "../Crypto/KeyPairEd25519.h" #include "../Crypto/KeyPairEd25519.h"
#include "../lib/DataTypeConverter.h" #include "../lib/DataTypeConverter.h"
#include "../controller/UserBackups.h" #include "../controller/UserBackup.h"
#include "../tasks/SigningTransaction.h" #include "../tasks/SigningTransaction.h"
#include "../ServerConfig.h" #include "../ServerConfig.h"