diff options
Diffstat (limited to 'src/crypt/cryptengine.cpp')
| -rw-r--r-- | src/crypt/cryptengine.cpp | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/crypt/cryptengine.cpp b/src/crypt/cryptengine.cpp new file mode 100644 index 0000000..32e33bb --- /dev/null +++ b/src/crypt/cryptengine.cpp @@ -0,0 +1,137 @@ +#include "cryptengine.h" + +CryptEngine::CryptEngine(QObject *parent) + : QObject(parent) +{ + m_algorithm = 0; //Initialize NullCipher + m_cryptClass = new CryptClassNullCipher; +} + + +CryptEngine::~CryptEngine() +{ + delete m_cryptClass; +} + +void CryptEngine::generateRandomKey() +{ + m_cryptClass->generateRandomKey(); +} + +void CryptEngine::setKey(QString value) +{ + m_cryptClass->setKey( value.toLatin1() ); +} + +void CryptEngine::setKey(QByteArray value) +{ + m_cryptClass->setKey( value ); +} + +void CryptEngine::setKey(const uchar *value, int keyLength ) +{ + m_cryptClass->setKey( value, keyLength ); +} + +QByteArray &CryptEngine::getKey() +{ + return m_cryptClass->getKey(); +} + +void CryptEngine::setCryptText(QByteArray value) +{ + m_cryptClass->setCryptText(value); +} + +void CryptEngine::setCryptText(const uchar *value, int dataLength ) +{ + m_cryptClass->setCryptText(value, dataLength); +} + +void CryptEngine::setClearText(QByteArray value) +{ + m_cryptClass->setClearText(value); +} + +void CryptEngine::setClearText(const uchar *value, int dataLength ) +{ + m_cryptClass->setClearText(value, dataLength); +} + +void CryptEngine::encrypt() +{ + //If cleartext present, set in CryptClass, encrypt, and fetch encrypted data + if( m_cryptClass->getClearText().length() > 0 ) + { + m_cryptClass->encrypt(); + } +} + +void CryptEngine::decrypt() +{ + //If crypttext present, set in CryptClass, decrypt, and fetch decrypted data + if( m_cryptClass->getCryptText().length() > 0 ) + { + m_cryptClass->decrypt(); + } +} + +void CryptEngine::oncipherSelected_triggered(int cipher) +{ + m_algorithm = cipher; + + //Get Instance of Singleton mapping Integers to String for Cipher description + CiphersSingleton ciphers = CiphersSingleton::getInstance(); + + //Algorithm contains cipher as text. + QString algorithm = ciphers.textFromValue(m_algorithm); + + + //delete old CryptClass and create new one according to selected algorithm + if( algorithm == "NullCipher" ) + { + delete m_cryptClass; + m_cryptClass = new CryptClassNullCipher; + qDebug("CryptEngine::oncipherSelected_triggered - NullCipher"); + } + else if( algorithm == "Caesar" ) + { +// delete m_cryptClass; +// m_cryptClass = new CryptClassCaesar; + qDebug("CryptEngine::oncipherSelected_triggered - Caesar"); + } + else if( algorithm == "Cube" ) + { +// delete m_cryptClass; +// m_cryptClass = new CryptClassCube; + qDebug("CryptEngine::oncipherSelected_triggered - Cube"); + } + else if( algorithm == "AES" ) + { +// delete m_cryptClass; +// m_cryptClass = new CryptClassAES; + qDebug("CryptEngine::oncipherSelected_triggered - AES"); + } + else if( algorithm == "RSA" ) + { +// delete m_cryptClass; +// m_cryptClass = new CryptClassRSA; + qDebug("CryptEngine::oncipherSelected_triggered - RSA"); + } + else if( algorithm == "ECC" ) + { +// delete m_cryptClass; +// m_cryptClass = new CryptClassECC; + qDebug("CryptEngine::oncipherSelected_triggered - ECC"); + } + + //Send Signal confirming if data is binary or not + emit binaryData( m_cryptClass->getBinaryData() ); +} + +void CryptEngine::onkeylengthChanged(int value, bool symmetric) +{ + qDebug("CrptEngine::onkeylengthChanged - new Keylength: %d", value); + + m_cryptClass->setKeyLength(value); +} |
