6#include <ifile/IFilePersistence.h>
7#include <ilog/TLoggerCompWrap.h>
10#include <imtcrypt/IEncryption.h>
11#include <imtcrypt/IEncryptionKeysProvider.h>
12#include <imtcrypt/IEncryptedFilePersistence.h>
28 typedef ilog::CLoggerComponentBase BaseClass;
31 I_REGISTER_INTERFACE(ifile::IFilePersistence);
33 I_ASSIGN(m_encryptionCompPtr,
"Encryption",
"Encrypt/Decrypt instances",
true,
"Encryption");
34 I_ASSIGN(m_encryptionKeysProviderCompPtr,
"EncryptionKeysProvider",
"Keys provider instances",
true,
"EncryptionKeysProvider");
35 I_ASSIGN(m_basePersistenceCompPtr,
"BasePersistence",
"Base file export instances",
true,
"BasePersistence");
36 I_ASSIGN(m_encryptionAlgorithm,
"EncryptionAlgorithm",
"Algoritm for encrypt/decrypt (0 - RSA, 1 - AES)",
true, 1);
37 I_ASSIGN_MULTI_1(m_fileExtensionsAttrPtr,
"FileExtensions",
"List of possible file extensions",
true,
"txt");
38 I_ASSIGN_MULTI_1(m_typeDescriptionsAttrPtr,
"TypeDescriptions",
"List of descriptions for each extension",
true,
"Text file");
43 virtual ifile::IFilePersistence::OperationState LoadFromEncryptedFile(
const QByteArray& key,
const QString& filePath, istd::IChangeable& data)
const override;
47 virtual bool IsOperationSupported(
48 const istd::IChangeable* dataObjectPtr,
49 const QString* filePathPtr = NULL,
51 bool beQuiet =
true)
const override;
52 virtual OperationState LoadFromFile(
53 istd::IChangeable& data,
54 const QString& filePath = QString(),
55 ibase::IProgressManager* progressManagerPtr = NULL)
const override;
56 virtual OperationState SaveToFile(
57 const istd::IChangeable& data,
58 const QString& filePath = QString(),
59 ibase::IProgressManager* progressManagerPtr = NULL)
const override;
62 virtual bool GetFileExtensions(QStringList& result,
const istd::IChangeable* dataObjectPtr = NULL,
int flags = -1,
bool doAppend =
false)
const;
63 virtual QString GetTypeDescription(
const QString* extensionPtr = NULL)
const;
73 LocalKeyProvider(
const imtcrypt::IEncryption::EncryptionAlgorithm& algorithm,
const QByteArray& keyFirst,
const QByteArray& keySecond);
77 virtual QByteArray GetEncryptionKey(KeyType type)
const;
79 bool IsRequestOk(KeyType type)
const;
81 QByteArray m_keyFirst;
82 QByteArray m_keySecond;
83 imtcrypt::IEncryption::EncryptionAlgorithm m_algorithm = imtcrypt::IEncryption::EA_AES;
89 I_REF(ifile::IFilePersistence, m_basePersistenceCompPtr);
90 I_ATTR(
int, m_encryptionAlgorithm);
91 I_MULTIATTR(QString, m_fileExtensionsAttrPtr);
92 I_MULTITEXTATTR(m_typeDescriptionsAttrPtr);
Cryptography and Encryption Services Module.