5#ifndef QXMPPFILEENCRYPTION_H
6#define QXMPPFILEENCRYPTION_H
8#include "QXmppGlobal.h"
19namespace QXmpp::Private::Encryption {
26QXMPP_EXPORT
bool isSupported(
Cipher);
27QXMPP_EXPORT QByteArray process(
const QByteArray &data,
Cipher cipherConfig, Direction direction,
const QByteArray &key,
const QByteArray &iv);
28QXMPP_EXPORT QByteArray generateKey(
Cipher cipher);
29QXMPP_EXPORT QByteArray generateInitializationVector(
Cipher);
32class QXMPP_EXPORT EncryptionDevice :
public QIODevice
35 EncryptionDevice(std::unique_ptr<QIODevice> input, Cipher config,
const QByteArray &key,
const QByteArray &iv);
36 ~EncryptionDevice()
override;
38 bool open(QIODevice::OpenMode mode)
override;
39 void close()
override;
40 bool isSequential()
const override;
41 qint64 size()
const override;
42 qint64 readData(
char *data, qint64 maxlen)
override;
43 qint64 writeData(
const char *data, qint64 len)
override;
44 bool atEnd()
const override;
48 bool m_finalized =
false;
49 std::vector<char> m_outputBuffer;
50 std::unique_ptr<QIODevice> m_input;
51 std::unique_ptr<QCA::Cipher> m_cipher;
54class QXMPP_EXPORT DecryptionDevice :
public QIODevice
57 DecryptionDevice(std::unique_ptr<QIODevice> output, Cipher config,
const QByteArray &key,
const QByteArray &iv);
58 ~DecryptionDevice()
override;
60 bool open(QIODevice::OpenMode mode)
override;
61 void close()
override;
62 bool isSequential()
const override;
63 qint64 size()
const override;
64 qint64 readData(
char *data, qint64 maxlen)
override;
65 qint64 writeData(
const char *data, qint64 len)
override;
70 std::vector<char> m_outputBuffer;
71 std::unique_ptr<QIODevice> m_output;
72 std::unique_ptr<QCA::Cipher> m_cipher;
Cipher
Definition QXmppGlobal.h:160