summaryrefslogtreecommitdiffabout
path: root/pwmanager
authorzautrix <zautrix>2004-10-19 22:30:41 (UTC)
committer zautrix <zautrix>2004-10-19 22:30:41 (UTC)
commitf605b2d40ff0f90b132ca880afa83ac751162a2e (patch) (side-by-side diff)
treea8d2b0c79eab2166d70c765f3d90de56adbbf916 /pwmanager
parent2ab05e776276f02fd688b7041e5ccc5eb4573e50 (diff)
downloadkdepimpi-f605b2d40ff0f90b132ca880afa83ac751162a2e.zip
kdepimpi-f605b2d40ff0f90b132ca880afa83ac751162a2e.tar.gz
kdepimpi-f605b2d40ff0f90b132ca880afa83ac751162a2e.tar.bz2
added pro file
Diffstat (limited to 'pwmanager') (more/less context) (show whitespace changes)
-rw-r--r--pwmanager/pwmanager/pwmanager.pro168
-rw-r--r--pwmanager/pwmanager/pwmdoc.h2
2 files changed, 169 insertions, 1 deletions
diff --git a/pwmanager/pwmanager/pwmanager.pro b/pwmanager/pwmanager/pwmanager.pro
new file mode 100644
index 0000000..34f7403
--- a/dev/null
+++ b/pwmanager/pwmanager/pwmanager.pro
@@ -0,0 +1,168 @@
+TEMPLATE = app
+CONFIG += qt warn_on
+
+
+TARGET = pwmpi
+OBJECTS_DIR = obj/$(PLATFORM)
+MOC_DIR = moc/$(PLATFORM)
+DESTDIR=$(QPEDIR)/bin
+
+INCLUDEPATH += . ../../ ../../qtcompat ../../qtcompat/xml ../../libkdepim ../../microkde ../../microkde/kdecore ../../microkde/kdeui ../../microkde/kutils $(QPEDIR)/include
+DEFINES += PWM_EMBEDDED CONFIG_PWMANAGER_GCRY DESKTOP_VERSION
+
+#enable this setting if you want debugoutput for pwmanager
+#DEFINES += CONFIG_DEBUG
+LIBS += -L../libcrypt/$(PLATFORM)
+LIBS += -lmicrokde
+LIBS += -lmicroqtcompat
+LIBS += -lmicrokdepim
+LIBS += -L$(QPEDIR)/lib
+LIBS += -lqpe
+LIBS += -lzlib
+#LIBS += -lbz2
+#LIBS += -lkpmicrogcrypt
+LIBS += -ljpeg
+LIBS += $(QTOPIALIB)
+LIBS += -lkpmicrocipher
+LIBS += -lkpmicroerror
+LIBS += -lkpmicrompi
+LIBS += -lstdc++
+
+#INTERFACES = \
+#addentrywnd.ui \
+#configwnd.ui \
+#findwnd.ui \
+#getmasterpwwnd.ui \
+#pwgenwnd.ui \
+#setmasterpwwnd.ui \
+#subtbledit.ui
+
+#INTERFACES = \
+#subtbledit.ui \
+
+
+
+#HEADERS = \
+#configuration_31compat.h \
+#configuration.h \
+#configwnd.h \
+#configwndimpl.h \
+#selftest.h
+#subtbledit.h \
+#subtbleditimpl.h \
+#compressbzip2.h \
+
+HEADERS = \
+addentrywnd_emb.h \
+addentrywndimpl.h \
+base64.h \
+binentrygen.h \
+blowfish.h \
+commentbox.h \
+compiler.h \
+compressgzip.h \
+findwnd_emb.h \
+findwndimpl.h \
+genpasswd.h \
+getkeycardwnd.h \
+getmasterpwwnd_emb.h \
+getmasterpwwndimpl.h \
+globalstuff.h \
+gpasmanfile.h \
+htmlgen.h \
+htmlparse.h \
+ipc.h \
+libgcryptif.h \
+listobjselectwnd.h \
+listviewpwm.h \
+printtext.h \
+pwgenwnd_emb.h \
+pwgenwndimpl.h \
+pwmdoc.h \
+pwmdocui.h \
+pwmexception.h \
+pwm.h \
+pwminit.h \
+pwmprefs.h \
+pwmprint.h \
+pwmtray.h \
+pwmview.h \
+pwmviewstyle_0.h \
+pwmviewstyle_1.h \
+pwmviewstyle.h \
+randomizer.h \
+rc2.h \
+rencatwnd.h \
+serializer.h \
+setmasterpwwnd_emb.h \
+setmasterpwwndimpl.h \
+sha1.h \
+waitwnd.h \
+kcmconfigs/kcmpwmconfig.h \
+kcmconfigs/pwmconfigwidget.h
+
+#sources that need not be build
+#SOURCES = \
+#advcommeditimpl.cpp \
+#configuration.cpp \
+#configwnd.cpp \
+#configwndimpl.cpp \
+#configuration_31compat.cpp \
+#htmlparse.cpp \
+#printtext.cpp \
+#selftest.cpp \
+#pwmprint.cpp \
+#spinforsignal.cpp
+#subtbledit.cpp \
+#subtbleditimpl.cpp \
+#compressbzip2.cpp
+
+
+SOURCES = \
+addentrywnd_emb.cpp \
+addentrywndimpl.cpp \
+base64.cpp \
+binentrygen.cpp \
+blowfish.cpp \
+commentbox.cpp \
+compressgzip.cpp \
+findwnd_emb.cpp \
+findwndimpl.cpp \
+genpasswd.cpp \
+getkeycardwnd.cpp \
+getmasterpwwnd_emb.cpp \
+getmasterpwwndimpl.cpp \
+globalstuff.cpp \
+gpasmanfile.cpp \
+htmlgen.cpp \
+ipc.cpp \
+libgcryptif.cpp \
+listobjselectwnd.cpp \
+listviewpwm.cpp \
+main.cpp \
+pwgenwnd_emb.cpp \
+pwgenwndimpl.cpp \
+pwm.cpp \
+pwmdoc.cpp \
+pwmdocui.cpp \
+pwmexception.cpp \
+pwminit.cpp \
+pwmprefs.cpp \
+pwmtray.cpp \
+pwmview.cpp \
+pwmviewstyle_0.cpp \
+pwmviewstyle_1.cpp \
+pwmviewstyle.cpp \
+randomizer.cpp \
+rc2.cpp \
+rencatwnd.cpp \
+serializer.cpp \
+setmasterpwwnd_emb.cpp \
+setmasterpwwndimpl.cpp \
+sha1.cpp \
+waitwnd.cpp \
+kcmconfigs/kcmpwmconfig.cpp \
+kcmconfigs/pwmconfigwidget.cpp
+
+
+
diff --git a/pwmanager/pwmanager/pwmdoc.h b/pwmanager/pwmanager/pwmdoc.h
index a6e5f58..635361a 100644
--- a/pwmanager/pwmanager/pwmdoc.h
+++ b/pwmanager/pwmanager/pwmdoc.h
@@ -1,322 +1,322 @@
/***************************************************************************
* *
* copyright (C) 2003, 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.1 of pwmanager
* and was modified to run on embedded devices that run microkde
*
* $Id$
**************************************************************************/
#ifndef __PWMDOC_H
#define __PWMDOC_H
#define PWM_FILE_VER (static_cast<char>(0x05))
#define PWM_HASH_SHA1 (static_cast<char>(0x01))
#define PWM_HASH_SHA256 (static_cast<char>(0x02))
#define PWM_HASH_SHA384 (static_cast<char>(0x03))
#define PWM_HASH_SHA512 (static_cast<char>(0x04))
#define PWM_HASH_MD5 (static_cast<char>(0x05))
#define PWM_HASH_RMD160 (static_cast<char>(0x06))
#define PWM_HASH_TIGER (static_cast<char>(0x07))
#define PWM_CRYPT_BLOWFISH (static_cast<char>(0x01))
#define PWM_CRYPT_AES128 (static_cast<char>(0x02))
#define PWM_CRYPT_AES192 (static_cast<char>(0x03))
#define PWM_CRYPT_AES256 (static_cast<char>(0x04))
#define PWM_CRYPT_3DES (static_cast<char>(0x05))
#define PWM_CRYPT_TWOFISH (static_cast<char>(0x06))
#define PWM_CRYPT_TWOFISH128 (static_cast<char>(0x07))
#define PWM_COMPRESS_NONE (static_cast<char>(0x00))
#define PWM_COMPRESS_GZIP (static_cast<char>(0x01))
#define PWM_COMPRESS_BZIP2 (static_cast<char>(0x02))
#define DEFAULT_MAX_ENTRIES (~(static_cast<unsigned int>(0)))
#define FILE_ID_HEADER "PWM_PASSWORD_FILE"
#include "pwmexception.h"
#include "pwmdocui.h"
#include <qobject.h>
#include <qtimer.h>
#include <qdatetime.h>
#include <kprocess.h>
#ifndef PWM_EMBEDDED
#include "configuration.h"
#else
#include <kapplication.h>
#include <ksyncmanager.h>
#endif
#include <string>
#include <vector>
#include <utility>
using std::vector;
using std::string;
using std::pair;
/* used in findEntry() function */
#define SEARCH_IN_DESC (1)
#define SEARCH_IN_NAME (1 << 1)
#define SEARCH_IN_PW (1 << 2)
#define SEARCH_IN_COMMENT (1 << 3)
#define SEARCH_IN_URL (1 << 4)
#define SEARCH_IN_LAUNCHER (1 << 5)
#define SEARCH_IN_ALL (SEARCH_IN_DESC | SEARCH_IN_NAME | \
SEARCH_IN_PW | SEARCH_IN_COMMENT | \
SEARCH_IN_URL | SEARCH_IN_LAUNCHER)
/** document deeplocked. Data is out for lunch to disk */
#define DOC_STAT_DEEPLOCKED (1)
/** encrypted document on disk is dirty. data has to go to disk. */
#define DOC_STAT_DISK_DIRTY (1 << 1)
/** we are using a chipcard to encrypt the data */
#define DOC_STAT_USE_CHIPCARD (1 << 2)
/** use "currentPw" to unlock. (This flag is set/unset by a timer) */
#define DOC_STAT_UNLOCK_WITHOUT_PW (1 << 3)
class PwMDoc;
class PwMView;
class QFile;
/* meta data for a PwMDataItem */
struct PwMMetaData
{
PwMMetaData()
: updateInt (0)
{ }
/** creation date of the PwMDataItem to which
* this meta data belongs.
*/
QDateTime create;
/** becomes valid on this date */
QDateTime valid;
/** expire date */
QDateTime expire;
/** update date (last updated at this date) */
QDateTime update;
/** update interval (in minutes). Time since the
* last update to remind the user to update the item.
* 0 disables.
*/
unsigned long updateInt;
//US ENH: enhancements of the filestructure
/* each entry gets a unique id assigned */
string uniqueid;
void clear()
{
create = QDateTime();
expire = QDateTime();
update = QDateTime();
updateInt = 0;
- uniqueid = KApplication::randomString(8);
+ uniqueid = KApplication::randomString(8).latin1();
}
inline bool isValid() const
{
if (valid.isNull())
return true;
return (valid < QDateTime::currentDateTime());
}
inline bool isExpired() const
{
if (expire.isNull())
return false;
return (expire < QDateTime::currentDateTime());
}
inline bool isUpdateIntOver() const
{
if (updateInt == 0 ||
update.isNull())
return false;
QDateTime d(update);
return (d.addSecs(updateInt * 60) < QDateTime::currentDateTime());
}
};
struct PwMDataItem
{
PwMDataItem()
: lockStat (true)
, listViewPos (-1)
, binary (false)
, rev (0)
{ }
/** password description */
string desc;
/** user-name */
string name;
/** the password itself */
string pw;
/** some comment */
string comment;
/** an URL string */
string url;
/** launcher. Can be executed as a system() command */
string launcher;
/** locking status. If locked (true), pw is not emitted through getEntry() */
bool lockStat;
/** position of this item in main "list-view"
* If -1, the position is not yet specified and should be appended to the list
*/
int listViewPos;
/** does this entry contain binary data? */
bool binary;
/** meta data for this data item. */
PwMMetaData meta;
/** data revision counter. This counter can be used
* to easily, efficiently determine if this data item
* has changed since some time.
* This counter is incremented on every update.
*/
unsigned int rev;
void clear(bool clearMeta = true)
{
/* NOTE: Don't use .clear() here to be
* backward compatible with gcc-2 (Debian Woody)
*/
desc = "";
name = "";
pw = "";
comment = "";
url = "";
launcher = "";
lockStat = true;
listViewPos = -1;
binary = false;
if (clearMeta)
meta.clear();
}
//US ENH: we need this operator to compare two items if we have no unique ids
//available. Generaly this happens before the first sync
bool PwMDataItem::operator==( const PwMDataItem &a ) const
{
//qDebug("oper==%s", a.desc.c_str());
if ( desc != a.desc ) return false;
if ( name != a.name ) return false;
if ( pw != a.pw ) return false;
if ( comment != a.comment ) return false;
if ( url != a.url ) return false;
if ( launcher != a.launcher ) return false;
//all other field will not be checked.
return true;
}
};
struct PwMCategoryItem
{
/** all PwMDataItems (all passwords) within this category */
vector<PwMDataItem> d;
/** category name/description */
string name;
void clear()
{
d.clear();
name = "";
}
};
struct PwMSyncItem
{
string syncName;
QDateTime lastSyncDate;
void clear()
{
lastSyncDate = QDateTime();
syncName = "";
}
};
struct PwMItem
{
vector<PwMCategoryItem> dta;
vector<PwMSyncItem> syncDta;
void clear()
{
dta.clear();
syncDta.clear();
}
};
/** "Function Object" for sort()ing PwMDataItem::listViewPos */
class dta_lvp_greater
{
public:
bool operator() (const pair<unsigned int, unsigned int> &d1,
const pair<unsigned int, unsigned int> &d2)
{
return d1.second > d2.second;
}
};
/** list of PwMDoc documents and it's IDs */
class PwMDocList
{
public:
struct listItem
{
/** document filename (known as ID, here) */
string docId;
/** pointer to the document class */
PwMDoc *doc;
};
PwMDocList() {}
/** add a new item to the list */
void add(PwMDoc *doc, const string &id);
/** changes the contents of an existing item */
void edit(PwMDoc *doc, const string &newId);
/** remove the given item */
void del(PwMDoc *doc);
/** get the item at index */
listItem getAt(int index)
{ return docList[index]; }
/** find an entry with this id */
bool find(const string &id, listItem *ret = 0);
/** returns a copy of the list */
const vector<listItem>* getList() const
{ return &docList; }
/** returns a new unique number to extend the name of
* an unnamed document.
*/
static unsigned int getNewUnnamedNumber()
{ return unnamedDocCnt++; }
protected:
/* Hm, I think we shouldn't really use a "list" here, should we?
* So I decided to actually use a vector.
*/
vector<listItem> docList;
/** This value is used to get a new number for yet unnamed
* documents. It is incremented on every request. So it's
* theoretically possible to overflow it, but... :)
*/
static unsigned int unnamedDocCnt;