summaryrefslogtreecommitdiffstats
path: root/src/crypt
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypt')
-rw-r--r--src/crypt/cryptclasscaesar.cpp32
-rw-r--r--src/crypt/cryptclasscaesar.h1
2 files changed, 28 insertions, 5 deletions
diff --git a/src/crypt/cryptclasscaesar.cpp b/src/crypt/cryptclasscaesar.cpp
index d7c7827..d33b5d9 100644
--- a/src/crypt/cryptclasscaesar.cpp
+++ b/src/crypt/cryptclasscaesar.cpp
@@ -21,11 +21,7 @@ void CryptClassCaesar::encrypt()
m_cryptText.clear();
- m_clearText = m_clearText.toUpper();
- m_clearText.replace(QByteArray("Ä"), QByteArray("AE"));
- m_clearText.replace(QByteArray("Ö"), QByteArray("OE"));
- m_clearText.replace(QByteArray("Ü"), QByteArray("UE"));
- m_clearText.replace(QByteArray("ß"), QByteArray("SS"));
+ m_clearText = stripUmlauts(m_clearText);
for (int i = 0; i < m_clearText.size(); i++)
{
@@ -40,6 +36,19 @@ void CryptClassCaesar::encrypt()
void CryptClassCaesar::decrypt()
{
qDebug("CryptClassCaesar::decrypt");
+ buildMap();
+
+ m_clearText.clear();
+
+ m_cryptText = stripUmlauts(m_cryptText);
+
+ for (int i = 0; i < m_cryptText.size(); i++)
+ {
+ if (m_cryptText[i] >= (char) LOWERBOUND && m_cryptText[i] <= (char) UPPERBOUND)
+ {
+ m_clearText.append(substitutionsMap.key(m_cryptText[i]));
+ }
+ }
}
void CryptClassCaesar::buildMap()
@@ -68,3 +77,16 @@ void CryptClassCaesar::buildMap()
}
}
+
+QByteArray CryptClassCaesar::stripUmlauts(QByteArray umlautText)
+{
+ umlautText.replace(QByteArray("ß"), QByteArray("SS"));
+
+ umlautText = umlautText.toUpper();
+
+ umlautText.replace(QByteArray("Ä"), QByteArray("AE"));
+ umlautText.replace(QByteArray("Ö"), QByteArray("OE"));
+ umlautText.replace(QByteArray("Ü"), QByteArray("UE"));
+
+ return umlautText;
+}
diff --git a/src/crypt/cryptclasscaesar.h b/src/crypt/cryptclasscaesar.h
index 45f7588..899136b 100644
--- a/src/crypt/cryptclasscaesar.h
+++ b/src/crypt/cryptclasscaesar.h
@@ -25,6 +25,7 @@ private:
const static int LOWERBOUND;
const static int UPPERBOUND;
+ QByteArray stripUmlauts(QByteArray umlautText);
};
#endif // CRYPTCLASSCAESAR_H