aboutsummaryrefslogtreecommitdiff
path: root/lib/crypto/qolmutility.cpp
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2021-01-31 01:18:35 +0100
committerTobias Fella <fella@posteo.de>2021-12-01 21:34:52 +0100
commitfe9b2f918753d40d93f8aecf182485e75d4b75bb (patch)
tree718b9f341c1ca04cca4b89699f753e9f5b74fa89 /lib/crypto/qolmutility.cpp
parent4593856411a2a8e4b82333abd5684b253daab47c (diff)
downloadlibquotient-fe9b2f918753d40d93f8aecf182485e75d4b75bb.tar.gz
libquotient-fe9b2f918753d40d93f8aecf182485e75d4b75bb.zip
More test but still failing in signing/signature verification
Diffstat (limited to 'lib/crypto/qolmutility.cpp')
-rw-r--r--lib/crypto/qolmutility.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/lib/crypto/qolmutility.cpp b/lib/crypto/qolmutility.cpp
index 3c6a14c7..ad78a226 100644
--- a/lib/crypto/qolmutility.cpp
+++ b/lib/crypto/qolmutility.cpp
@@ -5,6 +5,7 @@
#ifdef Quotient_E2EE_ENABLED
#include "crypto/qolmutility.h"
#include "olm/olm.h"
+#include <QDebug>
using namespace Quotient;
@@ -19,10 +20,12 @@ QOlmUtility::QOlmUtility()
{
auto utility = new uint8_t[olm_utility_size()];
m_utility = olm_utility(utility);
+ qDebug() << "created";
}
QOlmUtility::~QOlmUtility()
{
+ qDebug() << "deleted";
olm_clear_utility(m_utility);
delete[](reinterpret_cast<uint8_t *>(m_utility));
}
@@ -43,15 +46,27 @@ QString QOlmUtility::sha256Utf8Msg(const QString &message) const
}
std::variant<bool, QOlmError> QOlmUtility::ed25519Verify(const QByteArray &key,
- const QByteArray &message, QByteArray &signature)
+ const QByteArray &message, const QByteArray &signature)
{
- const auto error = olm_ed25519_verify(m_utility, key.data(), key.length(),
- message.data(), message.length(), signature.data(), signature.length());
+ QByteArray signatureBuf(signature.length(), '0');
+ std::copy(signature.begin(), signature.end(), signatureBuf.begin());
+ qDebug() << "3" << key << message << signature;
+
+ const auto ret = olm_ed25519_verify(m_utility, key.data(), key.size(),
+ message.data(), message.size(), (void *)signatureBuf.data(), signatureBuf.size());
+
+ const auto error = ret;
if (error == olm_error()) {
+ qDebug() << QString(olm_utility_last_error(m_utility));
return lastError(m_utility);
}
- return error == 0;
+
+ if (ret != 0) {
+ qDebug() << "ed25519Verify" << ret;
+ return false;
+ }
+ return true;
}