diff options
author | Tobias Fella <fella@posteo.de> | 2021-12-07 19:08:29 +0100 |
---|---|---|
committer | Tobias Fella <fella@posteo.de> | 2021-12-07 19:08:29 +0100 |
commit | 2c6fa33ca52842e9dfba0dd3893a9d5526e10e60 (patch) | |
tree | 96ffece23a6f671d71328159357db3c68767365a /lib/e2ee/qolmutility.h | |
parent | 47bd4dfb2bc720d2b5919b93985f87d918af572a (diff) | |
download | libquotient-2c6fa33ca52842e9dfba0dd3893a9d5526e10e60.tar.gz libquotient-2c6fa33ca52842e9dfba0dd3893a9d5526e10e60.zip |
Rename "crypto" -> "e2ee"
Diffstat (limited to 'lib/e2ee/qolmutility.h')
-rw-r--r-- | lib/e2ee/qolmutility.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/e2ee/qolmutility.h b/lib/e2ee/qolmutility.h new file mode 100644 index 00000000..b360d625 --- /dev/null +++ b/lib/e2ee/qolmutility.h @@ -0,0 +1,45 @@ +// SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#pragma once + +#include <QObject> +#include <variant> +#include "e2ee/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 `sha256Bytes()`, returning its output. + QString sha256Utf8Msg(const QString &message) const; + + //! Verify a ed25519 signature. + //! \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. + std::variant<bool, QOlmError> ed25519Verify(const QByteArray &key, + const QByteArray &message, const QByteArray &signature); + + +private: + OlmUtility *m_utility; + +}; +} |