mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Add test for new key pair ed25519 class, because optimized algo create other results than old implementation
This commit is contained in:
parent
fece10c895
commit
82d599f950
@ -11,6 +11,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../SingletonManager/MemoryManager.h"
|
||||
|
||||
class IKeyPair
|
||||
{
|
||||
public:
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
#include "../SingletonManager/ErrorManager.h"
|
||||
|
||||
#include "../lib/BinHexConverter.h"
|
||||
#include "../lib/DataTypeConverter.h"
|
||||
|
||||
#include "Passphrase.h"
|
||||
|
||||
@ -83,7 +83,7 @@ KeyPairEd25519* KeyPairEd25519::create(const Passphrase* passphrase)
|
||||
//*/
|
||||
|
||||
KeyPairEd25519* key_pair = new KeyPairEd25519;
|
||||
if (key_pair->mSodiumSecret) {
|
||||
if (!key_pair->mSodiumSecret) {
|
||||
key_pair->mSodiumSecret = mm->getFreeMemory(crypto_sign_SECRETKEYBYTES);
|
||||
}
|
||||
|
||||
@ -116,7 +116,7 @@ MemoryBin* KeyPairEd25519::sign(const MemoryBin* message)
|
||||
|
||||
if (crypto_sign_detached(*signBinBuffer, &actualSignLength, *message, messageSize, *mSodiumSecret)) {
|
||||
em->addError(new Error(functionName, "sign failed"));
|
||||
auto messageHex = convertBinToHex(message);
|
||||
auto messageHex = DataTypeConverter::binToHex(message);
|
||||
em->addError(new ParamError(functionName, "message as hex", messageHex));
|
||||
mm->releaseMemory(signBinBuffer);
|
||||
return nullptr;
|
||||
@ -126,7 +126,7 @@ MemoryBin* KeyPairEd25519::sign(const MemoryBin* message)
|
||||
// Incorrect signature!
|
||||
//printf("c[KeyBuffer::%s] sign verify failed\n", __FUNCTION__);
|
||||
em->addError(new Error(functionName, "sign verify failed"));
|
||||
auto messageHex = convertBinToHex(message);
|
||||
auto messageHex = DataTypeConverter::binToHex(message);
|
||||
em->addError(new ParamError(functionName, "message as hex", messageHex));
|
||||
mm->releaseMemory(signBinBuffer);
|
||||
return nullptr;
|
||||
|
||||
27
src/cpp/test/crypto/TestKeyPairEd25519.cpp
Normal file
27
src/cpp/test/crypto/TestKeyPairEd25519.cpp
Normal file
@ -0,0 +1,27 @@
|
||||
#include "TestPassphrase.h"
|
||||
|
||||
#include "../../Crypto/KeyPair.h"
|
||||
#include "../../Crypto/KeyPairEd25519.h"
|
||||
#include "../../Crypto/Passphrase.h"
|
||||
#include "../../lib/DataTypeConverter.h"
|
||||
|
||||
TEST_F(PassphraseTest, TestEd25519KeyPair) {
|
||||
for (auto it = mPassphrasesForTesting.begin(); it != mPassphrasesForTesting.end(); it++) {
|
||||
auto test_data_set = *it;
|
||||
auto mnemonic = &ServerConfig::g_Mnemonic_WordLists[test_data_set.mnemonicType];
|
||||
auto tr = Passphrase::create(test_data_set.wordIndices, mnemonic);
|
||||
|
||||
auto word_indices = tr->getWordIndices();
|
||||
|
||||
auto key_pair_ed25519 = KeyPairEd25519::create(tr);
|
||||
KeyPair key_pair;
|
||||
key_pair.generateFromPassphrase(test_data_set.passphrases[test_data_set.mnemonicType].data(), mnemonic);
|
||||
|
||||
EXPECT_EQ(key_pair.getPubkeyHex(), test_data_set.pubkeyHex);
|
||||
EXPECT_EQ(DataTypeConverter::pubkeyToHex(key_pair_ed25519->getPublicKey()), key_pair.getPubkeyHex());
|
||||
|
||||
//auto key_pair_old
|
||||
delete key_pair_ed25519;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user