summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/binentrygen.cpp
authorulf69 <ulf69>2004-09-15 17:53:22 (UTC)
committer ulf69 <ulf69>2004-09-15 17:53:22 (UTC)
commitd3925ba5bd25224bc4a60d3d6a107c464994a1ea (patch) (side-by-side diff)
tree60f69da1d2b79ee3081e7ef5c09a46470ca6eda0 /pwmanager/pwmanager/binentrygen.cpp
parentce83a3479d23b9e8a59c745ccd0a0b14f64ef4e8 (diff)
downloadkdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.zip
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.gz
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.bz2
initial revision
Diffstat (limited to 'pwmanager/pwmanager/binentrygen.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/binentrygen.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/pwmanager/pwmanager/binentrygen.cpp b/pwmanager/pwmanager/binentrygen.cpp
new file mode 100644
index 0000000..7d5ae45
--- a/dev/null
+++ b/pwmanager/pwmanager/binentrygen.cpp
@@ -0,0 +1,71 @@
+/***************************************************************************
+ * *
+ * copyright (C) 2004 by Michael Buesch *
+ * email: mbuesch@freenet.de *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License version 2 *
+ * as published by the Free Software Foundation. *
+ * *
+ ***************************************************************************/
+
+/***************************************************************************
+ * copyright (C) 2004 by Ulf Schenk
+ * This file is originaly based on version 1.0.1 of pwmanager
+ * and was modified to run on embedded devices that run microkde
+ *
+ * $Id$
+ **************************************************************************/
+
+
+#include "binentrygen.h"
+#include "base64.h"
+#include "pwmexception.h"
+
+
+void BinEntryGen::encode(const QByteArray &data,
+ PwMDataItem *ret,
+ DataType type)
+{
+ ret->clear();
+ ret->name = tostr(static_cast<int>(type));
+ ret->binary = true;
+ if (data.size() == 0)
+ return;
+ Base64 b64;
+ string d(data.data(), data.size());
+ ret->pw = b64.encode(d);
+}
+
+void BinEntryGen::decode(const PwMDataItem &data,
+ QByteArray *ret,
+ DataType *type)
+{
+ BUG_ON(!data.binary);
+ int t = strtol(data.name.c_str(), 0, 10);
+ *type = static_cast<DataType>(t);
+ switch (*type) {
+ case None:
+ case KWalletMap:
+ case KWalletStream:
+ break;
+ default:
+ *type = None;
+ }
+ if (data.pw == "") {
+ ret->fill(0);
+ ret->resize(0);
+ return;
+ }
+ Base64 b64;
+ string d(b64.decode(data.pw));
+ ret->duplicate(d.c_str(), d.length());
+}
+
+BinEntryGen::DataType BinEntryGen::binType(const PwMDataItem &data)
+{
+ if (!data.binary)
+ return None;
+ int type = strtol(data.name.c_str(), 0, 10);
+ return (static_cast<DataType>(type));
+}