diff options
author | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-09-25 21:37:49 +0200 |
---|---|---|
committer | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-09-25 21:37:49 +0200 |
commit | 5904a61c59f0eef00aef07ef998658fd791ff139 (patch) | |
tree | 58d3a367918d1516efeba2e4bff632f3b5f4e4a5 | |
parent | 62f9e5b7d1227a85f80ae49abcb555e4fe4c52f0 (diff) | |
download | libquotient-5904a61c59f0eef00aef07ef998658fd791ff139.tar.gz libquotient-5904a61c59f0eef00aef07ef998658fd791ff139.zip |
QOlmUtility::ed25519Verify: just return bool
It's too easy to incorrectly test the previous return type.
-rw-r--r-- | autotests/testolmaccount.cpp | 3 | ||||
-rw-r--r-- | autotests/testolmutility.cpp | 6 | ||||
-rw-r--r-- | lib/e2ee/qolmaccount.cpp | 3 | ||||
-rw-r--r-- | lib/e2ee/qolmutility.cpp | 23 | ||||
-rw-r--r-- | lib/e2ee/qolmutility.h | 4 |
5 files changed, 11 insertions, 28 deletions
diff --git a/autotests/testolmaccount.cpp b/autotests/testolmaccount.cpp index 280705d0..a41af268 100644 --- a/autotests/testolmaccount.cpp +++ b/autotests/testolmaccount.cpp @@ -58,8 +58,7 @@ void TestOlmAccount::signatureValid() QOlmUtility utility; const auto identityKeys = olmAccount.identityKeys(); const auto ed25519Key = identityKeys.ed25519; - const auto verify = utility.ed25519Verify(ed25519Key, message, signature); - QVERIFY(verify.value_or(false)); + QVERIFY(utility.ed25519Verify(ed25519Key, message, signature)); } void TestOlmAccount::oneTimeKeysValid() diff --git a/autotests/testolmutility.cpp b/autotests/testolmutility.cpp index 5b67c805..1d461a94 100644 --- a/autotests/testolmutility.cpp +++ b/autotests/testolmutility.cpp @@ -81,10 +81,8 @@ void TestOlmUtility::verifySignedOneTimeKey() delete[](reinterpret_cast<uint8_t *>(utility)); QOlmUtility utility2; - auto res2 = - utility2 - .ed25519Verify(aliceOlm.identityKeys().ed25519, msg, signatureBuf1) - .value_or(false); + auto res2 = utility2.ed25519Verify(aliceOlm.identityKeys().ed25519, msg, + signatureBuf1); //QCOMPARE(std::string(olm_utility_last_error(utility)), "SUCCESS"); QVERIFY(res2); diff --git a/lib/e2ee/qolmaccount.cpp b/lib/e2ee/qolmaccount.cpp index ccb191f4..1b04dae7 100644 --- a/lib/e2ee/qolmaccount.cpp +++ b/lib/e2ee/qolmaccount.cpp @@ -264,6 +264,5 @@ 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); } diff --git a/lib/e2ee/qolmutility.cpp b/lib/e2ee/qolmutility.cpp index 84559085..22f9ec0d 100644 --- a/lib/e2ee/qolmutility.cpp +++ b/lib/e2ee/qolmutility.cpp @@ -40,23 +40,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()); - - const auto ret = olm_ed25519_verify(m_utility, key.data(), key.size(), - message.data(), message.size(), (void *)signatureBuf.data(), signatureBuf.size()); - - if (ret == olm_error()) { - auto error = lastError(m_utility); - if (error == QOlmError::BadMessageMac) { - return false; - } - return error; - } - - return !ret; // ret == 0 means success + 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 5f6bcdc5..6c1c8624 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); private: OlmUtility *m_utility; |