| QxOrm 1.3.2 C++ Object Relational Mapping library

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Directories

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Private Member Functions | Private Attributes
qx::QxSimpleCrypt Class Reference
QxCommon : QxOrm library common tools and macros

Simple encryption and decryption of strings and byte arrays. More...

`#include <QxSimpleCrypt.h>`

List of all members.

## Public Types
enum | CompressionMode { CompressionAuto, CompressionAlways, CompressionNever }
enum | IntegrityProtectionMode { ProtectionNone, ProtectionChecksum, ProtectionHash }
enum | Error { ErrorNoError, ErrorNoKeySet, ErrorUnknownVersion, ErrorIntegrityFailed }
enum | CryptoFlag { CryptoFlagNone = 0, CryptoFlagCompression = 0x01, CryptoFlagChecksum = 0x02, CryptoFlagHash = 0x04 }
## Public Member Functions
| QxSimpleCrypt ()
| QxSimpleCrypt (quint64 key)
void | setKey (quint64 key)
bool | hasKey () const
void | setCompressionMode (CompressionMode mode)
CompressionMode | compressionMode () const
void | setIntegrityProtectionMode (IntegrityProtectionMode mode)
IntegrityProtectionMode | integrityProtectionMode () const
Error | lastError () const
QString | encryptToString (const QString &plaintext)
QString | encryptToString (QByteArray plaintext)
QByteArray | encryptToByteArray (const QString &plaintext)
QByteArray | encryptToByteArray (QByteArray plaintext)
QString | decryptToString (const QString &cyphertext)
QByteArray | decryptToByteArray (const QString &cyphertext)
QString | decryptToString (QByteArray cypher)
QByteArray | decryptToByteArray (QByteArray cypher)
| Q_DECLARE_FLAGS (CryptoFlags, CryptoFlag)
## Private Member Functions
void | splitKey ()
## Private Attributes
quint64 | m_key
QVector< char > | m_keyParts
CompressionMode | m_compressionMode
IntegrityProtectionMode | m_protectionMode
Error | m_lastError

## Detailed Description

Simple encryption and decryption of strings and byte arrays.

This class provides a simple implementation of encryption and decryption of strings and byte arrays : http://qt-project.org/wiki/Simple_encryption

Warning:
  The encryption provided by this class is NOT strong encryption. It may help to shield things from curious eyes, but it will NOT stand up to someone determined to break the encryption. Don't say you were not warned.

The class uses a 64 bit key. Simply create an instance of the class, set the key, and use the encryptToString() method to calculate an encrypted version of the input string. To decrypt that string again, use an instance of QxSimpleCrypt initialized with the same key, and call the decryptToString() method with the encrypted string. If the key matches, the decrypted version of the string will be returned again.

If you do not provide a key, or if something else is wrong, the encryption and decryption function will return an empty string or will return a string containing nonsense. lastError() will return a value indicating if the method was succesful, and if not, why not.

QxSimpleCrypt is prepared for the case that the encryption and decryption algorithm is changed in a later version, by prepending a version identifier to the cypertext.

Definition at line 73 of file QxSimpleCrypt.h.

## Member Enumeration Documentation

enum qx::QxSimpleCrypt::CompressionMode

CompressionMode describes if compression will be applied to the data to be encrypted.

Enumerator:

  CompressionAuto | Only apply compression if that results in a shorter plaintext.
  CompressionAlways | Always apply compression. Note that for short inputs, a compression may result in longer data
  CompressionNever | Never apply compression.

Definition at line 82 of file QxSimpleCrypt.h.

enum qx::QxSimpleCrypt::CryptoFlag

Enumerator:

  CryptoFlagNone |
  CryptoFlagCompression |
  CryptoFlagChecksum |
  CryptoFlagHash |

Definition at line 227 of file QxSimpleCrypt.h.

enum qx::QxSimpleCrypt::Error

Error describes the type of error that occured.

Enumerator:

  ErrorNoError | No error occurred.
  ErrorNoKeySet | No key was set. You can not encrypt or decrypt without a valid key.
  ErrorUnknownVersion | The version of this data is unknown, or the data is otherwise not valid.
  ErrorIntegrityFailed | The integrity check of the data failed. Perhaps the wrong key was used.

Definition at line 105 of file QxSimpleCrypt.h.

enum qx::QxSimpleCrypt::IntegrityProtectionMode

IntegrityProtectionMode describes measures taken to make it possible to detect problems with the data or wrong decryption keys.

Measures involve adding a checksum or a cryptograhpic hash to the data to be encrypted. This increases the length of the resulting cypertext, but makes it possible to check if the plaintext appears to be valid after decryption.

Enumerator:

  ProtectionNone | The integerity of the encrypted data is not protected. It is not really possible to detect a wrong key, for instance.
  ProtectionChecksum | A simple checksum is used to verify that the data is in order. If not, an empty string is returned.
  ProtectionHash | A cryptographic hash is used to verify the integrity of the data. This method produces a much stronger, but longer check

Definition at line 96 of file QxSimpleCrypt.h.

## Constructor & Destructor Documentation

qx::QxSimpleCrypt::QxSimpleCrypt | ( |  | ) |

Constructor.

Constructs a QxSimpleCrypt instance without a valid key set on it.

qx::QxSimpleCrypt::QxSimpleCrypt | ( | quint64 | key | ) | `[explicit]`

Constructor.

Constructs a QxSimpleCrypt instance and initializes it with the given

- key.

## Member Function Documentation

CompressionMode qx::QxSimpleCrypt::compressionMode | ( |  | ) | const`[inline]`

Returns the CompressionMode that is currently in use.

Definition at line 144 of file QxSimpleCrypt.h.

QByteArray qx::QxSimpleCrypt::decryptToByteArray | ( | const QString & | cyphertext | ) |

Decrypts a cyphertext string encrypted with this class with the set key back to the plain text version.

If an error occured, such as non-matching keys between encryption and decryption, an empty string or a string containing nonsense may be returned.

QByteArray qx::QxSimpleCrypt::decryptToByteArray | ( | QByteArray | cypher | ) |

Decrypts a cyphertext binary encrypted with this class with the set key back to the plain text version.

If an error occured, such as non-matching keys between encryption and decryption, an empty string or a string containing nonsense may be returned.

QString qx::QxSimpleCrypt::decryptToString | ( | const QString & | cyphertext | ) |

Decrypts a cyphertext string encrypted with this class with the set key back to the plain text version.

If an error occured, such as non-matching keys between encryption and decryption, an empty string or a string containing nonsense may be returned.

QString qx::QxSimpleCrypt::decryptToString | ( | QByteArray | cypher | ) |

Decrypts a cyphertext binary encrypted with this class with the set key back to the plain text version.

If an error occured, such as non-matching keys between encryption and decryption, an empty string or a string containing nonsense may be returned.

QByteArray qx::QxSimpleCrypt::encryptToByteArray | ( | const QString & | plaintext | ) |

Encrypts the

- plaintext string with the key the class was initialized with, and returns a binary cyphertext in a QByteArray the result.

This method returns a byte array, that is useable for storing a binary format. If you need a string you can store in a text file, use encryptToString() instead.

QByteArray qx::QxSimpleCrypt::encryptToByteArray | ( | QByteArray | plaintext | ) |

Encrypts the

- plaintext QByteArray with the key the class was initialized with, and returns a binary cyphertext in a QByteArray the result.

This method returns a byte array, that is useable for storing a binary format. If you need a string you can store in a text file, use encryptToString() instead.

QString qx::QxSimpleCrypt::encryptToString | ( | const QString & | plaintext | ) |

Encrypts the

- plaintext string with the key the class was initialized with, and returns a cyphertext the result. The result is a base64 encoded version of the binary array that is the actual result of the string, so it can be stored easily in a text format.

QString qx::QxSimpleCrypt::encryptToString | ( | QByteArray | plaintext | ) |

Encrypts the

- plaintext QByteArray with the key the class was initialized with, and returns a cyphertext the result. The result is a base64 encoded version of the binary array that is the actual result of the encryption, so it can be stored easily in a text format.

bool qx::QxSimpleCrypt::hasKey | ( |  | ) | const`[inline]`

Returns true if QxSimpleCrypt has been initialized with a key.

Definition at line 132 of file QxSimpleCrypt.h.

IntegrityProtectionMode qx::QxSimpleCrypt::integrityProtectionMode | ( |  | ) | const`[inline]`

Returns the IntegrityProtectionMode that is currently in use.

Definition at line 156 of file QxSimpleCrypt.h.

Error qx::QxSimpleCrypt::lastError | ( |  | ) | const`[inline]`

Returns the last error that occurred.

Definition at line 161 of file QxSimpleCrypt.h.

qx::QxSimpleCrypt::Q_DECLARE_FLAGS | ( | CryptoFlags | ,
|  | CryptoFlag |
| ) |  |

void qx::QxSimpleCrypt::setCompressionMode | ( | CompressionMode | mode | ) | `[inline]`

Sets the compression mode to use when encrypting data. The default mode is Auto.

Note that decryption is not influenced by this mode, as the decryption recognizes what mode was used when encrypting.

Definition at line 140 of file QxSimpleCrypt.h.

void qx::QxSimpleCrypt::setIntegrityProtectionMode | ( | IntegrityProtectionMode | mode | ) | `[inline]`

Sets the integrity mode to use when encrypting data. The default mode is Checksum.

Note that decryption is not influenced by this mode, as the decryption recognizes what mode was used when encrypting.

Definition at line 152 of file QxSimpleCrypt.h.

void qx::QxSimpleCrypt::setKey | ( | quint64 | key | ) |

(Re-) initializes the key with the given

- key.

void qx::QxSimpleCrypt::splitKey | ( |  | ) | `[private]`

## Member Data Documentation

CompressionMode qx::QxSimpleCrypt::m_compressionMode`[private]`

Definition at line 240 of file QxSimpleCrypt.h.

quint64 qx::QxSimpleCrypt::m_key`[private]`

Definition at line 238 of file QxSimpleCrypt.h.

QVector<char> qx::QxSimpleCrypt::m_keyParts`[private]`

Definition at line 239 of file QxSimpleCrypt.h.

Error qx::QxSimpleCrypt::m_lastError`[private]`

Definition at line 242 of file QxSimpleCrypt.h.

IntegrityProtectionMode qx::QxSimpleCrypt::m_protectionMode`[private]`

Definition at line 241 of file QxSimpleCrypt.h.

The documentation for this class was generated from the following file:

- D:/Dvlp/_Perso/QxOrm/include/QxCommon/QxSimpleCrypt.h