diff options
Diffstat (limited to 'src/crypt/cryptclassnullcipher.cpp')
| -rw-r--r-- | src/crypt/cryptclassnullcipher.cpp | 110 |
1 files changed, 3 insertions, 107 deletions
diff --git a/src/crypt/cryptclassnullcipher.cpp b/src/crypt/cryptclassnullcipher.cpp index 1dbc349..a60bab4 100644 --- a/src/crypt/cryptclassnullcipher.cpp +++ b/src/crypt/cryptclassnullcipher.cpp @@ -1,119 +1,15 @@ #include "cryptclassnullcipher.h" CryptClassNullCipher::CryptClassNullCipher() - : CryptClassBase() + : CryptClassEvp() { - ERR_load_crypto_strings(); - OpenSSL_add_all_algorithms(); } CryptClassNullCipher::~CryptClassNullCipher() { - EVP_cleanup(); - ERR_free_strings(); } -void CryptClassNullCipher::encrypt() +const EVP_CIPHER *CryptClassNullCipher::algorithm() { - // int encrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key, - // unsigned char *iv, unsigned char *ciphertext) - - m_cryptText = QByteArray(m_clearText.size() + 50, 0); - - EVP_CIPHER_CTX *ctx; - - int len; - - int ciphertext_len; - - /* Create and initialise the context */ - if (!(ctx = EVP_CIPHER_CTX_new())) - { - handleErrors(); - } - - /* Initialise the encryption operation. IMPORTANT - ensure you use a key - * and IV size appropriate for your cipher */ - if (1 != EVP_EncryptInit_ex(ctx, EVP_enc_null(), NULL, NULL, NULL)) - { - handleErrors(); - } - - /* Provide the message to be encrypted, and obtain the encrypted output. - * EVP_EncryptUpdate can be called multiple times if necessary - */ - if (1 != EVP_EncryptUpdate(ctx, (unsigned char *) m_cryptText.data(), &len, - (unsigned char *) m_clearText.data(), m_clearText.length())) - { - handleErrors(); - } - - ciphertext_len = len; - - /* Finalise the encryption. Further ciphertext bytes may be written at - * this stage. - */ - if (1 != EVP_EncryptFinal_ex(ctx, (unsigned char *)(m_cryptText.data() + len), - &len)) - { - handleErrors(); - } - - ciphertext_len += len; - - /* Clean up */ - EVP_CIPHER_CTX_free(ctx); -} - -void CryptClassNullCipher::decrypt() -{ - m_clearText = QByteArray(m_cryptText.size() + 50, 0); - - EVP_CIPHER_CTX *ctx; - - int len; - - int plaintext_len; - - /* Create and initialise the context */ - if (!(ctx = EVP_CIPHER_CTX_new())) - { - handleErrors(); - } - - /* Initialise the decryption operation. IMPORTANT - ensure you use a key - * and IV size appropriate for your cipher */ - if (1 != EVP_DecryptInit_ex(ctx, EVP_enc_null(), NULL, NULL, NULL)) - { - handleErrors(); - } - - /* Provide the message to be decrypted, and obtain the plaintext output. - * EVP_DecryptUpdate can be called multiple times if necessary - */ - if (1 != EVP_DecryptUpdate(ctx, (unsigned char*) m_clearText.data(), &len, (unsigned char*) m_cryptText.data(), m_cryptText.length())) - { - handleErrors(); - } - - plaintext_len = len; - - /* Finalise the decryption. Further plaintext bytes may be written at - * this stage. - */ - if (1 != EVP_DecryptFinal_ex(ctx, (unsigned char*) m_cryptText.data() + len, &len)) - { - handleErrors(); - } - - plaintext_len += len; - - /* Clean up */ - EVP_CIPHER_CTX_free(ctx); -} - -void CryptClassNullCipher::handleErrors() -{ - qDebug() << ERR_reason_error_string(ERR_get_error()); - abort(); + return EVP_enc_null(); } |
