diff options
Diffstat (limited to 'src/datahelpers.h')
-rw-r--r-- | src/datahelpers.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/datahelpers.h b/src/datahelpers.h new file mode 100644 index 00000000..5daef810 --- /dev/null +++ b/src/datahelpers.h @@ -0,0 +1,96 @@ +#ifndef DATAHELPERS_H +#define DATAHELPERS_H + +#include <QDateTime> +#include <QString> + +/*! + \struct passwordConfiguration + \brief holds the Password configuration settings + */ +struct passwordConfiguration { + /** + * @brief passwordConfiguration::selected character set. + */ + enum characterSet { + ALLCHARS = 0, + ALPHABETICAL, + ALPHANUMERIC, + CUSTOM, + CHARSETS_COUNT // have to be last, for easier initialization of arrays + } selected; + /** + * @brief passwordConfiguration::length of password. + */ + int length; + /** + * @brief passwordConfiguration::Characters the different character sets. + */ + QString Characters[CHARSETS_COUNT]; + passwordConfiguration() : selected(ALLCHARS), length(16) { + Characters[ALLCHARS] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&" + "*()_-+={}[]|:;<>,.?"; /*AllChars*/ + Characters[ALPHABETICAL] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu" + "vwxyz"; /*Only Alphabetical*/ + Characters[ALPHANUMERIC] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu" + "vwxyz1234567890"; /*Alphabetical and Numerical*/ + Characters[CUSTOM] = Characters[ALLCHARS]; // this may be redefined by user + } +}; + +/*! + \struct UserInfo + \brief Stores key info lines including validity, creation date and more. + */ +struct UserInfo { + UserInfo() : validity('-'), have_secret(false), enabled(false) {} + + /** + * @brief UserInfo::fullyValid when validity is f or u. + * http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob_plain;f=doc/DETAILS + */ + bool fullyValid() { return validity == 'f' || validity == 'u'; } + /** + * @brief UserInfo::marginallyValid when validity is m. + * http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob_plain;f=doc/DETAILS + */ + bool marginallyValid() { return validity == 'm'; } + /** + * @brief UserInfo::isValid when fullyValid or marginallyValid. + */ + bool isValid() { return fullyValid() || marginallyValid(); } + + /** + * @brief UserInfo::name full name + */ + QString name; + /** + * @brief UserInfo::key_id hexadecimal representation + */ + QString key_id; + /** + * @brief UserInfo::validity GnuPG representation of validity + * http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob_plain;f=doc/DETAILS + */ + char validity; + /** + * @brief UserInfo::have_secret secret key is available + * (can decrypt with this key) + */ + bool have_secret; + /** + * @brief UserInfo::enabled + */ + bool enabled; + /** + * @brief UserInfo::expiry date/time key expires + */ + QDateTime expiry; + /** + * @brief UserInfo::created date/time key was created + */ + QDateTime created; +}; + +#endif // DATAHELPERS_H |