From add8544cd501a5bd849d85520b3ece17f7d3bacb Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 6 Oct 2020 15:41:34 +0200 Subject: [PATCH] update code because irohe-ed25519 was removed --- src/cpp/Crypto/KeyPairHedera.cpp | 10 +++--- src/cpp/Crypto/KeyPairHedera.h | 4 +-- .../HTTPInterface/AdminHederaAccountPage.cpp | 2 +- .../HTTPInterface/RepairDefectPassphrase.cpp | 33 +++++++++---------- src/cpp/main.cpp | 3 +- src/cpsp/adminHederaAccount.cpsp | 2 +- src/cpsp/repairDefectPassphrase.cpsp | 3 +- 7 files changed, 28 insertions(+), 29 deletions(-) diff --git a/src/cpp/Crypto/KeyPairHedera.cpp b/src/cpp/Crypto/KeyPairHedera.cpp index e16b76e05..ac974fdc1 100644 --- a/src/cpp/Crypto/KeyPairHedera.cpp +++ b/src/cpp/Crypto/KeyPairHedera.cpp @@ -58,16 +58,16 @@ KeyPairHedera::KeyPairHedera(const unsigned char* privateKey, size_t privateKeyS } case 44: // DER encoded public key 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; default: 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); - 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"; } @@ -215,7 +215,7 @@ MemoryBin* KeyPairHedera::getPrivateKeyCopy() const MemoryBin* KeyPairHedera::getPublicKeyCopy() const { auto mm = MemoryManager::getInstance(); - auto public_key = mm->getFreeMemory(ed25519_pubkey_SIZE); - memcpy(*public_key, mPublicKey, ed25519_pubkey_SIZE); + auto public_key = mm->getFreeMemory(crypto_sign_PUBLICKEYBYTES); + memcpy(*public_key, mPublicKey, crypto_sign_PUBLICKEYBYTES); return public_key; } diff --git a/src/cpp/Crypto/KeyPairHedera.h b/src/cpp/Crypto/KeyPairHedera.h index f342164d6..b8dba9024 100644 --- a/src/cpp/Crypto/KeyPairHedera.h +++ b/src/cpp/Crypto/KeyPairHedera.h @@ -42,7 +42,7 @@ public: inline const unsigned char* getPublicKey() const { return mPublicKey; } MemoryBin* getPublicKeyCopy() const; 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 { return 0 == sodium_memcmp(mPublicKey, b.mPublicKey, getPublicKeySize()); @@ -89,7 +89,7 @@ private: // 32 Byte //! \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 \ No newline at end of file diff --git a/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp b/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp index 4bcf9b614..28c99c26a 100644 --- a/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp +++ b/src/cpp/HTTPInterface/AdminHederaAccountPage.cpp @@ -202,7 +202,7 @@ void AdminHederaAccountPage::handleRequest(Poco::Net::HTTPServerRequest& request 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()) { crypto_key = controller::CryptoKey::create(&key_pair, user, privateKeyEncryptedString == "true"); diff --git a/src/cpp/HTTPInterface/RepairDefectPassphrase.cpp b/src/cpp/HTTPInterface/RepairDefectPassphrase.cpp index 77fd06514..e089a38e2 100644 --- a/src/cpp/HTTPInterface/RepairDefectPassphrase.cpp +++ b/src/cpp/HTTPInterface/RepairDefectPassphrase.cpp @@ -9,7 +9,6 @@ #include "../SingletonManager/MemoryManager.h" #include "../SingletonManager/EmailManager.h" -#include "../Crypto/KeyPair.h" #include "../Crypto/Passphrase.h" #include "../Crypto/KeyPairEd25519.h" #include "../lib/DataTypeConverter.h" @@ -53,7 +52,7 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request if (_compressResponse) response.set("Content-Encoding", "gzip"); 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 em = EmailManager::getInstance(); @@ -270,26 +269,26 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request responseStream << "\n"; // end include header_old.cpsp 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"; 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 << "\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 << "\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 << "\n"; responseStream << "\t

Konto reparieren

\n"; responseStream << "\t

Der Login-Server hat festgestellt das die gespeicherte Passphrase nicht zu deinem Konto passt.

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

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.

\n"; @@ -297,27 +296,27 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\n"; 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"; responseStream << "\t\t\t

Dein Privat Key konnte nicht entschlüsselt werden. Bitte wende dich an den Admin: "; -#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 << "

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

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:

\n"; responseStream << "\t\t
Deine neue Passphrase:\n"; responseStream << "\t\t\t
\n"; 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 << "\n"; responseStream << "\t\t\t
\n"; @@ -328,15 +327,15 @@ void RepairDefectPassphrase::handleRequest(Poco::Net::HTTPServerRequest& request responseStream << "\t\t\t

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

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.

\n"; responseStream << "\t\tAusloggen\n"; 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"; // begin include footer.cpsp diff --git a/src/cpp/main.cpp b/src/cpp/main.cpp index 8d3858923..24b6f15cf 100644 --- a/src/cpp/main.cpp +++ b/src/cpp/main.cpp @@ -3,6 +3,7 @@ #include "proto/gradido/TransactionBody.pb.h" + #include "model/Session.h" #include "lib/Profiler.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 = "0.20.KW13.02"; 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)); // load word lists diff --git a/src/cpsp/adminHederaAccount.cpsp b/src/cpsp/adminHederaAccount.cpsp index c7ec76f98..45f2c65ae 100644 --- a/src/cpsp/adminHederaAccount.cpsp +++ b/src/cpsp/adminHederaAccount.cpsp @@ -181,7 +181,7 @@ 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()) { crypto_key = controller::CryptoKey::create(&key_pair, user, privateKeyEncryptedString == "true"); diff --git a/src/cpsp/repairDefectPassphrase.cpsp b/src/cpsp/repairDefectPassphrase.cpsp index 0e8c82e64..960466cd5 100644 --- a/src/cpsp/repairDefectPassphrase.cpsp +++ b/src/cpsp/repairDefectPassphrase.cpsp @@ -7,11 +7,10 @@ <%! #include "../SingletonManager/MemoryManager.h" #include "../SingletonManager/EmailManager.h" -#include "../Crypto/KeyPair.h" #include "../Crypto/Passphrase.h" #include "../Crypto/KeyPairEd25519.h" #include "../lib/DataTypeConverter.h" -#include "../controller/UserBackups.h" +#include "../controller/UserBackup.h" #include "../tasks/SigningTransaction.h" #include "../ServerConfig.h"