aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-09-25 21:37:49 +0200
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-09-26 10:46:34 +0200
commit72e14cb1bdff68dfe0fb61fff0defd6c50dff43c (patch)
tree30e197665edd678cafdd33947a7386bd248635e1 /lib
parent388c301222586583a0144f7229a564cf07b597d4 (diff)
downloadlibquotient-72e14cb1bdff68dfe0fb61fff0defd6c50dff43c.tar.gz
libquotient-72e14cb1bdff68dfe0fb61fff0defd6c50dff43c.zip
QOlmUtility::ed25519Verify: just return bool
It's too easy to incorrectly test the previous return type. (cherry picked from commit 5904a61c59f0eef00aef07ef998658fd791ff139)
Diffstat (limited to 'lib')
-rw-r--r--lib/e2ee/qolmaccount.cpp3
-rw-r--r--lib/e2ee/qolmutility.cpp21
-rw-r--r--lib/e2ee/qolmutility.h4
3 files changed, 8 insertions, 20 deletions
diff --git a/lib/e2ee/qolmaccount.cpp b/lib/e2ee/qolmaccount.cpp
index 7392a9f5..345ab16b 100644
--- a/lib/e2ee/qolmaccount.cpp
+++ b/lib/e2ee/qolmaccount.cpp
@@ -269,8 +269,7 @@ bool Quotient::ed25519VerifySignature(const QString& signingKey,
QByteArray signingKeyBuf = signingKey.toUtf8();
QOlmUtility utility;
auto signatureBuf = signature.toUtf8();
- return utility.ed25519Verify(signingKeyBuf, canonicalJson, signatureBuf)
- .value_or(false);
+ return utility.ed25519Verify(signingKeyBuf, canonicalJson, signatureBuf);
}
QString QOlmAccount::accountId() const { return m_userId % '/' % m_deviceId; }
diff --git a/lib/e2ee/qolmutility.cpp b/lib/e2ee/qolmutility.cpp
index 08c2b699..46f7f4f3 100644
--- a/lib/e2ee/qolmutility.cpp
+++ b/lib/e2ee/qolmutility.cpp
@@ -44,21 +44,10 @@ QString QOlmUtility::sha256Utf8Msg(const QString &message) const
return sha256Bytes(message.toUtf8());
}
-QOlmExpected<bool> QOlmUtility::ed25519Verify(const QByteArray& key,
- const QByteArray& message,
- const QByteArray& signature)
+bool QOlmUtility::ed25519Verify(const QByteArray& key, const QByteArray& message,
+ QByteArray signature)
{
- QByteArray signatureBuf(signature.length(), '\0');
- std::copy(signature.begin(), signature.end(), signatureBuf.begin());
-
- if (olm_ed25519_verify(m_utility, key.data(), key.size(), message.data(),
- message.size(), signatureBuf.data(),
- signatureBuf.size())
- == 0)
- return true;
-
- auto error = lastErrorCode();
- if (error == OLM_BAD_MESSAGE_MAC)
- return false;
- return error;
+ return olm_ed25519_verify(m_utility, key.data(), key.size(), message.data(),
+ message.size(), signature.data(), signature.size())
+ == 0;
}
diff --git a/lib/e2ee/qolmutility.h b/lib/e2ee/qolmutility.h
index 89277385..508767bf 100644
--- a/lib/e2ee/qolmutility.h
+++ b/lib/e2ee/qolmutility.h
@@ -29,8 +29,8 @@ public:
//! \param key QByteArray The public part of the ed25519 key that signed the message.
//! \param message QByteArray The message that was signed.
//! \param signature QByteArray The signature of the message.
- QOlmExpected<bool> ed25519Verify(const QByteArray &key,
- const QByteArray &message, const QByteArray &signature);
+ bool ed25519Verify(const QByteArray &key,
+ const QByteArray &message, QByteArray signature);
OlmErrorCode lastErrorCode() const;
const char* lastError() const;