diff options
author | Carl Schwan <carl@carlschwan.eu> | 2021-01-30 00:21:10 +0100 |
---|---|---|
committer | Tobias Fella <fella@posteo.de> | 2021-12-01 21:34:52 +0100 |
commit | f9f7d130e5768d0f69edc8900d37f540b61fa974 (patch) | |
tree | 911e5cadf505519451940e8632144b30c8fac693 /lib/crypto/qolmutility.h | |
parent | 10b89faeea9e385ea901d45418491cd91dff99b9 (diff) | |
download | libquotient-f9f7d130e5768d0f69edc8900d37f540b61fa974.tar.gz libquotient-f9f7d130e5768d0f69edc8900d37f540b61fa974.zip |
Key verification
Diffstat (limited to 'lib/crypto/qolmutility.h')
-rw-r--r-- | lib/crypto/qolmutility.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/crypto/qolmutility.h b/lib/crypto/qolmutility.h new file mode 100644 index 00000000..16c330eb --- /dev/null +++ b/lib/crypto/qolmutility.h @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#pragma once + +#ifdef Quotient_E2EE_ENABLED +#include <QObject> +#include <variant> +#include "crypto/qolmerrors.h" + +struct OlmUtility; + +namespace Quotient { + +class QOlmSession; +class Connection; + +//! Allows you to make use of crytographic hashing via SHA-2 and +//! verifying ed25519 signatures. +class QOlmUtility +{ +public: + QOlmUtility(); + ~QOlmUtility(); + + //! Returns a sha256 of the supplied byte slice. + QString sha256Bytes(const QByteArray &inputBuf) const; + + //! Convenience function that converts the UTF-8 message + //! to bytes and then calls `sha256_bytes()`, returning its output. + QString sha256Utf8Msg(const QString &message) const; + + //! Verify a ed25519 signature. + //! \param any 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. + std::variant<bool, QOlmError> ed25519Verify(const QByteArray &key, + const QByteArray &message, QByteArray &signature); + + +private: + OlmUtility *m_utility; + +}; +} + +#endif |