-rw-r--r-- | pwmanager/pwmanager/randomizer.cpp | 2 | ||||
-rw-r--r-- | pwmanager/pwmanager/randomizer.h | 2 | ||||
-rw-r--r-- | pwmanager/pwmanager/serializer.cpp | 4 | ||||
-rw-r--r-- | pwmanager/pwmanager/serializer.h | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/pwmanager/pwmanager/randomizer.cpp b/pwmanager/pwmanager/randomizer.cpp index 1269c53..e1085ff 100644 --- a/pwmanager/pwmanager/randomizer.cpp +++ b/pwmanager/pwmanager/randomizer.cpp | |||
@@ -1,142 +1,142 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * copyright (C) 2003, 2004 by Michael Buesch * | 3 | * copyright (C) 2003, 2004 by Michael Buesch * |
4 | * email: mbuesch@freenet.de * | 4 | * email: mbuesch@freenet.de * |
5 | * * | 5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License version 2 * | 7 | * it under the terms of the GNU General Public License version 2 * |
8 | * as published by the Free Software Foundation. * | 8 | * as published by the Free Software Foundation. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | 11 | ||
12 | /*************************************************************************** | 12 | /*************************************************************************** |
13 | * copyright (C) 2004 by Ulf Schenk | 13 | * copyright (C) 2004 by Ulf Schenk |
14 | * This file is originaly based on version 2.0 of pwmanager | 14 | * This file is originaly based on version 1.1 of pwmanager |
15 | * and was modified to run on embedded devices that run microkde | 15 | * and was modified to run on embedded devices that run microkde |
16 | * | 16 | * |
17 | * $Id$ | 17 | * $Id$ |
18 | **************************************************************************/ | 18 | **************************************************************************/ |
19 | 19 | ||
20 | #include "randomizer.h" | 20 | #include "randomizer.h" |
21 | #include "pwmexception.h" | 21 | #include "pwmexception.h" |
22 | 22 | ||
23 | #include <qfile.h> | 23 | #include <qfile.h> |
24 | 24 | ||
25 | #include <kapplication.h> | 25 | #include <kapplication.h> |
26 | 26 | ||
27 | #include <stdlib.h> | 27 | #include <stdlib.h> |
28 | #include <time.h> | 28 | #include <time.h> |
29 | 29 | ||
30 | 30 | ||
31 | #ifdef PWM_EMBEDDED | 31 | #ifdef PWM_EMBEDDED |
32 | 32 | ||
33 | #ifndef Q_LONG | 33 | #ifndef Q_LONG |
34 | #define Q_LONG long | 34 | #define Q_LONG long |
35 | #endif | 35 | #endif |
36 | 36 | ||
37 | #endif //PWM_EMBEDDED | 37 | #endif //PWM_EMBEDDED |
38 | 38 | ||
39 | 39 | ||
40 | Randomizer * Randomizer::rndObj (0); | 40 | Randomizer * Randomizer::rndObj (0); |
41 | 41 | ||
42 | Randomizer::Randomizer() | 42 | Randomizer::Randomizer() |
43 | { | 43 | { |
44 | rndDev = new QFile; | 44 | rndDev = new QFile; |
45 | seed = time(0); | 45 | seed = time(0); |
46 | 46 | ||
47 | #if 1 // set to 0 to test rand_r() fallback | 47 | #if 1 // set to 0 to test rand_r() fallback |
48 | 48 | ||
49 | // probe for /dev/urandom | 49 | // probe for /dev/urandom |
50 | rndDev->setName("/dev/urandom"); | 50 | rndDev->setName("/dev/urandom"); |
51 | if (rndDev->exists() && | 51 | if (rndDev->exists() && |
52 | rndDev->open(IO_ReadOnly)) { | 52 | rndDev->open(IO_ReadOnly)) { |
53 | printDebug("Randomizer: using /dev/urandom"); | 53 | printDebug("Randomizer: using /dev/urandom"); |
54 | return; | 54 | return; |
55 | } | 55 | } |
56 | 56 | ||
57 | // probe for /dev/random | 57 | // probe for /dev/random |
58 | rndDev->setName("/dev/random"); | 58 | rndDev->setName("/dev/random"); |
59 | if (rndDev->exists() && | 59 | if (rndDev->exists() && |
60 | rndDev->open(IO_ReadOnly)) { | 60 | rndDev->open(IO_ReadOnly)) { |
61 | printDebug("Randomizer: using /dev/random"); | 61 | printDebug("Randomizer: using /dev/random"); |
62 | return; | 62 | return; |
63 | } | 63 | } |
64 | 64 | ||
65 | // probe for EGD | 65 | // probe for EGD |
66 | char *fn = getenv("RANDFILE"); | 66 | char *fn = getenv("RANDFILE"); |
67 | if (fn) { | 67 | if (fn) { |
68 | rndDev->setName(fn); | 68 | rndDev->setName(fn); |
69 | if (rndDev->exists() && | 69 | if (rndDev->exists() && |
70 | rndDev->open(IO_ReadOnly)) { | 70 | rndDev->open(IO_ReadOnly)) { |
71 | printDebug(string("Randomizer: using $RANDFILE \"") | 71 | printDebug(string("Randomizer: using $RANDFILE \"") |
72 | + fn | 72 | + fn |
73 | + "\" (aka EGD)"); | 73 | + "\" (aka EGD)"); |
74 | return; | 74 | return; |
75 | } | 75 | } |
76 | } | 76 | } |
77 | #endif | 77 | #endif |
78 | 78 | ||
79 | /* no secure randomizer found. | 79 | /* no secure randomizer found. |
80 | * Fall back to stdlib randomizer. | 80 | * Fall back to stdlib randomizer. |
81 | */ | 81 | */ |
82 | delete_and_null(rndDev); | 82 | delete_and_null(rndDev); |
83 | printWarn("neither /dev/*random nor EGD found! " | 83 | printWarn("neither /dev/*random nor EGD found! " |
84 | "Falling back to insecure rand_r()!"); | 84 | "Falling back to insecure rand_r()!"); |
85 | } | 85 | } |
86 | 86 | ||
87 | Randomizer::~Randomizer() | 87 | Randomizer::~Randomizer() |
88 | { | 88 | { |
89 | #ifndef PWM_EMBEDDED | 89 | #ifndef PWM_EMBEDDED |
90 | while (mutex.locked()) { | 90 | while (mutex.locked()) { |
91 | /* wait for the mutex to unlock. | 91 | /* wait for the mutex to unlock. |
92 | * Don't block the GUI here, so processEvents() | 92 | * Don't block the GUI here, so processEvents() |
93 | */ | 93 | */ |
94 | kapp->processEvents(); | 94 | kapp->processEvents(); |
95 | } | 95 | } |
96 | #endif | 96 | #endif |
97 | if (rndDev) { | 97 | if (rndDev) { |
98 | rndDev->close(); | 98 | rndDev->close(); |
99 | delete rndDev; | 99 | delete rndDev; |
100 | } | 100 | } |
101 | } | 101 | } |
102 | 102 | ||
103 | char Randomizer::genRndChar() | 103 | char Randomizer::genRndChar() |
104 | { | 104 | { |
105 | char ret; | 105 | char ret; |
106 | #ifndef PWM_EMBEDDED | 106 | #ifndef PWM_EMBEDDED |
107 | mutex.lock(); | 107 | mutex.lock(); |
108 | #endif | 108 | #endif |
109 | if (rndDev) { | 109 | if (rndDev) { |
110 | /* we have a file which provides random data. | 110 | /* we have a file which provides random data. |
111 | * Simply read it. | 111 | * Simply read it. |
112 | */ | 112 | */ |
113 | ret = rndDev->getch(); | 113 | ret = rndDev->getch(); |
114 | } else { | 114 | } else { |
115 | /* fall back to rand_r() */ | 115 | /* fall back to rand_r() */ |
116 | ret = rand_r(&seed) % 0xFF; | 116 | ret = rand_r(&seed) % 0xFF; |
117 | } | 117 | } |
118 | #ifndef PWM_EMBEDDED | 118 | #ifndef PWM_EMBEDDED |
119 | mutex->unlock(); | 119 | mutex->unlock(); |
120 | #endif | 120 | #endif |
121 | return ret; | 121 | return ret; |
122 | } | 122 | } |
123 | 123 | ||
124 | int Randomizer::genRndInt() | 124 | int Randomizer::genRndInt() |
125 | { | 125 | { |
126 | int ret; | 126 | int ret; |
127 | #ifndef PWM_EMBEDDED | 127 | #ifndef PWM_EMBEDDED |
128 | mutex->lock(); | 128 | mutex->lock(); |
129 | #endif | 129 | #endif |
130 | if (rndDev) { | 130 | if (rndDev) { |
131 | if (sizeof(int) == 4) { | 131 | if (sizeof(int) == 4) { |
132 | (reinterpret_cast<char *>(&ret))[0] = rndDev->getch(); | 132 | (reinterpret_cast<char *>(&ret))[0] = rndDev->getch(); |
133 | (reinterpret_cast<char *>(&ret))[1] = rndDev->getch(); | 133 | (reinterpret_cast<char *>(&ret))[1] = rndDev->getch(); |
134 | (reinterpret_cast<char *>(&ret))[2] = rndDev->getch(); | 134 | (reinterpret_cast<char *>(&ret))[2] = rndDev->getch(); |
135 | (reinterpret_cast<char *>(&ret))[3] = rndDev->getch(); | 135 | (reinterpret_cast<char *>(&ret))[3] = rndDev->getch(); |
136 | } else if (sizeof(int) == 8) { | 136 | } else if (sizeof(int) == 8) { |
137 | (reinterpret_cast<char *>(&ret))[0] = rndDev->getch(); | 137 | (reinterpret_cast<char *>(&ret))[0] = rndDev->getch(); |
138 | (reinterpret_cast<char *>(&ret))[1] = rndDev->getch(); | 138 | (reinterpret_cast<char *>(&ret))[1] = rndDev->getch(); |
139 | (reinterpret_cast<char *>(&ret))[2] = rndDev->getch(); | 139 | (reinterpret_cast<char *>(&ret))[2] = rndDev->getch(); |
140 | (reinterpret_cast<char *>(&ret))[3] = rndDev->getch(); | 140 | (reinterpret_cast<char *>(&ret))[3] = rndDev->getch(); |
141 | (reinterpret_cast<char *>(&ret))[4] = rndDev->getch(); | 141 | (reinterpret_cast<char *>(&ret))[4] = rndDev->getch(); |
142 | (reinterpret_cast<char *>(&ret))[5] = rndDev->getch(); | 142 | (reinterpret_cast<char *>(&ret))[5] = rndDev->getch(); |
diff --git a/pwmanager/pwmanager/randomizer.h b/pwmanager/pwmanager/randomizer.h index 5eb02f1..f2a6015 100644 --- a/pwmanager/pwmanager/randomizer.h +++ b/pwmanager/pwmanager/randomizer.h | |||
@@ -1,86 +1,86 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * copyright (C) 2003, 2004 by Michael Buesch * | 3 | * copyright (C) 2003, 2004 by Michael Buesch * |
4 | * email: mbuesch@freenet.de * | 4 | * email: mbuesch@freenet.de * |
5 | * * | 5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License version 2 * | 7 | * it under the terms of the GNU General Public License version 2 * |
8 | * as published by the Free Software Foundation. * | 8 | * as published by the Free Software Foundation. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | 11 | ||
12 | /*************************************************************************** | 12 | /*************************************************************************** |
13 | * copyright (C) 2004 by Ulf Schenk | 13 | * copyright (C) 2004 by Ulf Schenk |
14 | * This file is originaly based on version 2.0 of pwmanager | 14 | * This file is originaly based on version 1.1 of pwmanager |
15 | * and was modified to run on embedded devices that run microkde | 15 | * and was modified to run on embedded devices that run microkde |
16 | * | 16 | * |
17 | * $Id$ | 17 | * $Id$ |
18 | **************************************************************************/ | 18 | **************************************************************************/ |
19 | 19 | ||
20 | #ifndef __RANDOMIZER_H | 20 | #ifndef __RANDOMIZER_H |
21 | #define __RANDOMIZER_H | 21 | #define __RANDOMIZER_H |
22 | 22 | ||
23 | #include "pwmexception.h" | 23 | #include "pwmexception.h" |
24 | 24 | ||
25 | #ifndef PWM_EMBEDDED | 25 | #ifndef PWM_EMBEDDED |
26 | #include <qmutex.h> | 26 | #include <qmutex.h> |
27 | #endif | 27 | #endif |
28 | 28 | ||
29 | #include <string> | 29 | #include <string> |
30 | 30 | ||
31 | using std::string; | 31 | using std::string; |
32 | 32 | ||
33 | class QFile; | 33 | class QFile; |
34 | 34 | ||
35 | /** Randomizer to get random values. | 35 | /** Randomizer to get random values. |
36 | * This class is thread-safe. | 36 | * This class is thread-safe. |
37 | * You should always use the instance returned by | 37 | * You should always use the instance returned by |
38 | * obj() to use it. | 38 | * obj() to use it. |
39 | */ | 39 | */ |
40 | class Randomizer | 40 | class Randomizer |
41 | { | 41 | { |
42 | public: | 42 | public: |
43 | Randomizer(); | 43 | Randomizer(); |
44 | ~Randomizer(); | 44 | ~Randomizer(); |
45 | 45 | ||
46 | static Randomizer * obj() | 46 | static Randomizer * obj() |
47 | { | 47 | { |
48 | PWM_ASSERT(rndObj); | 48 | PWM_ASSERT(rndObj); |
49 | return rndObj; | 49 | return rndObj; |
50 | } | 50 | } |
51 | static void init() | 51 | static void init() |
52 | { | 52 | { |
53 | PWM_ASSERT(!rndObj); | 53 | PWM_ASSERT(!rndObj); |
54 | rndObj = new Randomizer; | 54 | rndObj = new Randomizer; |
55 | } | 55 | } |
56 | static void cleanup() | 56 | static void cleanup() |
57 | { | 57 | { |
58 | delete_ifnot_null(rndObj); | 58 | delete_ifnot_null(rndObj); |
59 | } | 59 | } |
60 | 60 | ||
61 | /** generate random char */ | 61 | /** generate random char */ |
62 | char genRndChar(); | 62 | char genRndChar(); |
63 | /** generate random int */ | 63 | /** generate random int */ |
64 | int genRndInt(); | 64 | int genRndInt(); |
65 | /** generate a random unsigned int */ | 65 | /** generate a random unsigned int */ |
66 | unsigned int genRndUInt(); | 66 | unsigned int genRndUInt(); |
67 | 67 | ||
68 | /** returns a buffer with random data */ | 68 | /** returns a buffer with random data */ |
69 | string genRndBuf(size_t len); | 69 | string genRndBuf(size_t len); |
70 | /** returns a buffer with random data */ | 70 | /** returns a buffer with random data */ |
71 | void genRndBuf(unsigned char *buf, size_t len); | 71 | void genRndBuf(unsigned char *buf, size_t len); |
72 | 72 | ||
73 | protected: | 73 | protected: |
74 | /** random-device-node (if available. Otherwise NULL) */ | 74 | /** random-device-node (if available. Otherwise NULL) */ |
75 | QFile *rndDev; | 75 | QFile *rndDev; |
76 | #ifndef PWM_EMBEDDED | 76 | #ifndef PWM_EMBEDDED |
77 | /** mutex for accessing the public functions thread-save */ | 77 | /** mutex for accessing the public functions thread-save */ |
78 | QMutex mutex; | 78 | QMutex mutex; |
79 | #endif | 79 | #endif |
80 | /** seed value for fallback - rand_r() */ | 80 | /** seed value for fallback - rand_r() */ |
81 | unsigned int seed; | 81 | unsigned int seed; |
82 | /** static Randomizer object returned by obj() */ | 82 | /** static Randomizer object returned by obj() */ |
83 | static Randomizer *rndObj; | 83 | static Randomizer *rndObj; |
84 | }; | 84 | }; |
85 | 85 | ||
86 | #endif // __RANDOMIZER_H | 86 | #endif // __RANDOMIZER_H |
diff --git a/pwmanager/pwmanager/serializer.cpp b/pwmanager/pwmanager/serializer.cpp index 5c6568f..2d6498e 100644 --- a/pwmanager/pwmanager/serializer.cpp +++ b/pwmanager/pwmanager/serializer.cpp | |||
@@ -1,158 +1,158 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * copyright (C) 2004 by Michael Buesch * | 3 | * copyright (C) 2004 by Michael Buesch * |
4 | * email: mbuesch@freenet.de * | 4 | * email: mbuesch@freenet.de * |
5 | * * | 5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License version 2 * | 7 | * it under the terms of the GNU General Public License version 2 * |
8 | * as published by the Free Software Foundation. * | 8 | * as published by the Free Software Foundation. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | 11 | ||
12 | 12 | ||
13 | /*************************************************************************** | 13 | /*************************************************************************** |
14 | * copyright (C) 2004 by Ulf Schenk | 14 | * copyright (C) 2004 by Ulf Schenk |
15 | * This file is originaly based on version 2.0 of pwmanager | 15 | * This file is originaly based on version 1.1 of pwmanager |
16 | * and was modified to run on embedded devices that run microkde | 16 | * and was modified to run on embedded devices that run microkde |
17 | * | 17 | * |
18 | * $Id$ | 18 | * $Id$ |
19 | **************************************************************************/ | 19 | **************************************************************************/ |
20 | 20 | ||
21 | #include "serializer.h" | 21 | #include "serializer.h" |
22 | #include "pwmexception.h" | 22 | #include "pwmexception.h" |
23 | 23 | ||
24 | #ifdef PWM_EMBEDDED | 24 | #ifdef PWM_EMBEDDED |
25 | #include <kglobal.h> | 25 | #include <kglobal.h> |
26 | #include <klocale.h> | 26 | #include <klocale.h> |
27 | #endif | 27 | #endif |
28 | 28 | ||
29 | /* enable/disable serializer debugging (0/1) */ | 29 | /* enable/disable serializer debugging (0/1) */ |
30 | #define SERIALIZER_DEBUG1 | 30 | #define SERIALIZER_DEBUG0 |
31 | /* use the old xml tags for writing (0/1) */ | 31 | /* use the old xml tags for writing (0/1) */ |
32 | #define USE_OLD_TAGS 0 | 32 | #define USE_OLD_TAGS 0 |
33 | /* write a CDATA section (0/1) */ | 33 | /* write a CDATA section (0/1) */ |
34 | #define WRITE_CDATA_SEC 0 | 34 | #define WRITE_CDATA_SEC 0 |
35 | 35 | ||
36 | 36 | ||
37 | #define META_CREATE_DATE"c" | 37 | #define META_CREATE_DATE"c" |
38 | #define META_VALID_DATE "v" | 38 | #define META_VALID_DATE "v" |
39 | #define META_EXPIRE_DATE"e" | 39 | #define META_EXPIRE_DATE"e" |
40 | #define META_UPDATE_DATE"u" | 40 | #define META_UPDATE_DATE"u" |
41 | #define META_UPDATE_INT "i" | 41 | #define META_UPDATE_INT "i" |
42 | //US ENH : uniqueid | 42 | //US ENH : uniqueid |
43 | #define META_UNIQUEID "n" | 43 | #define META_UNIQUEID "n" |
44 | #define SYNC_ROOT "s" | 44 | #define SYNC_ROOT "s" |
45 | #define SYNC_TARGET_PREFIX "t" | 45 | #define SYNC_TARGET_PREFIX "t" |
46 | #define SYNC_TARGET_NAME "n" | 46 | #define SYNC_TARGET_NAME "n" |
47 | 47 | ||
48 | 48 | ||
49 | /* This is compatibility stuff. | 49 | /* This is compatibility stuff. |
50 | * The names of the entries have changed and here are the | 50 | * The names of the entries have changed and here are the |
51 | * new and old ones | 51 | * new and old ones |
52 | */ | 52 | */ |
53 | #define ROOT_MAGIC_OLD "PwM-xml-dat" | 53 | #define ROOT_MAGIC_OLD "PwM-xml-dat" |
54 | #define VER_STR_OLD "ver" | 54 | #define VER_STR_OLD "ver" |
55 | #define COMPAT_VER_OLD "0x02" | 55 | #define COMPAT_VER_OLD "0x02" |
56 | #define CAT_ROOT_OLD "categories" | 56 | #define CAT_ROOT_OLD "categories" |
57 | #define CAT_PREFIX_OLD "cat_" | 57 | #define CAT_PREFIX_OLD "cat_" |
58 | #define CAT_NAME_OLD "name" | 58 | #define CAT_NAME_OLD "name" |
59 | #define ENTRY_PREFIX_OLD"entry_" | 59 | #define ENTRY_PREFIX_OLD"entry_" |
60 | #define ENTRY_DESC_OLD "desc" | 60 | #define ENTRY_DESC_OLD "desc" |
61 | #define ENTRY_NAME_OLD "name" | 61 | #define ENTRY_NAME_OLD "name" |
62 | #define ENTRY_PW_OLD "pw" | 62 | #define ENTRY_PW_OLD "pw" |
63 | #define ENTRY_COMMENT_OLD"comment" | 63 | #define ENTRY_COMMENT_OLD"comment" |
64 | #define ENTRY_URL_OLD "url" | 64 | #define ENTRY_URL_OLD "url" |
65 | #define ENTRY_LAUNCHER_OLD"launcher" | 65 | #define ENTRY_LAUNCHER_OLD"launcher" |
66 | #define ENTRY_LVP_OLD "listViewPos" | 66 | #define ENTRY_LVP_OLD "listViewPos" |
67 | #define ENTRY_BIN_OLD "b" | 67 | #define ENTRY_BIN_OLD "b" |
68 | #define ENTRY_META_OLD "m" | 68 | #define ENTRY_META_OLD "m" |
69 | 69 | ||
70 | #define ROOT_MAGIC_NEW "P" | 70 | #define ROOT_MAGIC_NEW "P" |
71 | #define VER_STR_NEW "v" | 71 | #define VER_STR_NEW "v" |
72 | #define COMPAT_VER_NEW "2" | 72 | #define COMPAT_VER_NEW "2" |
73 | #define CAT_ROOT_NEW "c" | 73 | #define CAT_ROOT_NEW "c" |
74 | #define CAT_PREFIX_NEW "c" | 74 | #define CAT_PREFIX_NEW "c" |
75 | #define CAT_NAME_NEW "n" | 75 | #define CAT_NAME_NEW "n" |
76 | #define ENTRY_PREFIX_NEW"e" | 76 | #define ENTRY_PREFIX_NEW"e" |
77 | #define ENTRY_DESC_NEW "d" | 77 | #define ENTRY_DESC_NEW "d" |
78 | #define ENTRY_NAME_NEW "n" | 78 | #define ENTRY_NAME_NEW "n" |
79 | #define ENTRY_PW_NEW "p" | 79 | #define ENTRY_PW_NEW "p" |
80 | #define ENTRY_COMMENT_NEW"c" | 80 | #define ENTRY_COMMENT_NEW"c" |
81 | #define ENTRY_URL_NEW "u" | 81 | #define ENTRY_URL_NEW "u" |
82 | #define ENTRY_LAUNCHER_NEW"l" | 82 | #define ENTRY_LAUNCHER_NEW"l" |
83 | #define ENTRY_LVP_NEW "v" | 83 | #define ENTRY_LVP_NEW "v" |
84 | #define ENTRY_BIN_NEW ENTRY_BIN_OLD | 84 | #define ENTRY_BIN_NEW ENTRY_BIN_OLD |
85 | #define ENTRY_META_NEW ENTRY_META_OLD | 85 | #define ENTRY_META_NEW ENTRY_META_OLD |
86 | 86 | ||
87 | #if USE_OLD_TAGS != 0 | 87 | #if USE_OLD_TAGS != 0 |
88 | # define ROOT_MAGIC_WR ROOT_MAGIC_OLD | 88 | # define ROOT_MAGIC_WR ROOT_MAGIC_OLD |
89 | # define VER_STR_WR VER_STR_OLD | 89 | # define VER_STR_WR VER_STR_OLD |
90 | # define COMPAT_VER_WR COMPAT_VER_OLD | 90 | # define COMPAT_VER_WR COMPAT_VER_OLD |
91 | # define CAT_ROOT_WR CAT_ROOT_OLD | 91 | # define CAT_ROOT_WR CAT_ROOT_OLD |
92 | # define CAT_PREFIX_WR CAT_PREFIX_OLD | 92 | # define CAT_PREFIX_WR CAT_PREFIX_OLD |
93 | # define CAT_NAME_WR CAT_NAME_OLD | 93 | # define CAT_NAME_WR CAT_NAME_OLD |
94 | # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD | 94 | # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD |
95 | # define ENTRY_DESC_WR ENTRY_DESC_OLD | 95 | # define ENTRY_DESC_WR ENTRY_DESC_OLD |
96 | # define ENTRY_NAME_WR ENTRY_NAME_OLD | 96 | # define ENTRY_NAME_WR ENTRY_NAME_OLD |
97 | # define ENTRY_PW_WR ENTRY_PW_OLD | 97 | # define ENTRY_PW_WR ENTRY_PW_OLD |
98 | # define ENTRY_COMMENT_WRENTRY_COMMENT_OLD | 98 | # define ENTRY_COMMENT_WRENTRY_COMMENT_OLD |
99 | # define ENTRY_URL_WR ENTRY_URL_OLD | 99 | # define ENTRY_URL_WR ENTRY_URL_OLD |
100 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_OLD | 100 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_OLD |
101 | # define ENTRY_LVP_WR ENTRY_LVP_OLD | 101 | # define ENTRY_LVP_WR ENTRY_LVP_OLD |
102 | # define ENTRY_BIN_WR ENTRY_BIN_OLD | 102 | # define ENTRY_BIN_WR ENTRY_BIN_OLD |
103 | # define ENTRY_META_WR ENTRY_META_OLD | 103 | # define ENTRY_META_WR ENTRY_META_OLD |
104 | #else | 104 | #else |
105 | # define ROOT_MAGIC_WR ROOT_MAGIC_NEW | 105 | # define ROOT_MAGIC_WR ROOT_MAGIC_NEW |
106 | # define VER_STR_WR VER_STR_NEW | 106 | # define VER_STR_WR VER_STR_NEW |
107 | # define COMPAT_VER_WR COMPAT_VER_NEW | 107 | # define COMPAT_VER_WR COMPAT_VER_NEW |
108 | # define CAT_ROOT_WR CAT_ROOT_NEW | 108 | # define CAT_ROOT_WR CAT_ROOT_NEW |
109 | # define CAT_PREFIX_WR CAT_PREFIX_NEW | 109 | # define CAT_PREFIX_WR CAT_PREFIX_NEW |
110 | # define CAT_NAME_WR CAT_NAME_NEW | 110 | # define CAT_NAME_WR CAT_NAME_NEW |
111 | # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW | 111 | # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW |
112 | # define ENTRY_DESC_WR ENTRY_DESC_NEW | 112 | # define ENTRY_DESC_WR ENTRY_DESC_NEW |
113 | # define ENTRY_NAME_WR ENTRY_NAME_NEW | 113 | # define ENTRY_NAME_WR ENTRY_NAME_NEW |
114 | # define ENTRY_PW_WR ENTRY_PW_NEW | 114 | # define ENTRY_PW_WR ENTRY_PW_NEW |
115 | # define ENTRY_COMMENT_WRENTRY_COMMENT_NEW | 115 | # define ENTRY_COMMENT_WRENTRY_COMMENT_NEW |
116 | # define ENTRY_URL_WR ENTRY_URL_NEW | 116 | # define ENTRY_URL_WR ENTRY_URL_NEW |
117 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_NEW | 117 | # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_NEW |
118 | # define ENTRY_LVP_WR ENTRY_LVP_NEW | 118 | # define ENTRY_LVP_WR ENTRY_LVP_NEW |
119 | # define ENTRY_BIN_WR ENTRY_BIN_NEW | 119 | # define ENTRY_BIN_WR ENTRY_BIN_NEW |
120 | # define ENTRY_META_WR ENTRY_META_NEW | 120 | # define ENTRY_META_WR ENTRY_META_NEW |
121 | #endif | 121 | #endif |
122 | 122 | ||
123 | 123 | ||
124 | Serializer::Serializer() | 124 | Serializer::Serializer() |
125 | { | 125 | { |
126 | defaultLockStat = true; | 126 | defaultLockStat = true; |
127 | //US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing | 127 | //US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing |
128 | #ifndef PWM_EMBEDDED | 128 | #ifndef PWM_EMBEDDED |
129 | domDoc = new QDomDocument; | 129 | domDoc = new QDomDocument; |
130 | #else | 130 | #else |
131 | domDoc = new QDomDocument("mydoc"); | 131 | domDoc = new QDomDocument("mydoc"); |
132 | #endif | 132 | #endif |
133 | } | 133 | } |
134 | 134 | ||
135 | Serializer::Serializer(const QCString &buffer) | 135 | Serializer::Serializer(const QCString &buffer) |
136 | { | 136 | { |
137 | defaultLockStat = true; | 137 | defaultLockStat = true; |
138 | //US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing | 138 | //US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing |
139 | #ifndef PWM_EMBEDDED | 139 | #ifndef PWM_EMBEDDED |
140 | domDoc = new QDomDocument; | 140 | domDoc = new QDomDocument; |
141 | #else | 141 | #else |
142 | domDoc = new QDomDocument("mydoc"); | 142 | domDoc = new QDomDocument("mydoc"); |
143 | #endif | 143 | #endif |
144 | 144 | ||
145 | if (!parseXml(buffer)) { | 145 | if (!parseXml(buffer)) { |
146 | delete domDoc; | 146 | delete domDoc; |
147 | #ifndef PWM_EMBEDDED | 147 | #ifndef PWM_EMBEDDED |
148 | throw PwMException(PwMException::EX_PARSE); | 148 | throw PwMException(PwMException::EX_PARSE); |
149 | #else | 149 | #else |
150 | qDebug("Serializer::Serializer : Parse Exception "); | 150 | qDebug("Serializer::Serializer : Parse Exception "); |
151 | #endif | 151 | #endif |
152 | } | 152 | } |
153 | } | 153 | } |
154 | 154 | ||
155 | Serializer::~Serializer() | 155 | Serializer::~Serializer() |
156 | { | 156 | { |
157 | delete_ifnot_null(domDoc); | 157 | delete_ifnot_null(domDoc); |
158 | } | 158 | } |
diff --git a/pwmanager/pwmanager/serializer.h b/pwmanager/pwmanager/serializer.h index ee61b94..df50e42 100644 --- a/pwmanager/pwmanager/serializer.h +++ b/pwmanager/pwmanager/serializer.h | |||
@@ -1,115 +1,115 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | * * | 2 | * * |
3 | * copyright (C) 2004 by Michael Buesch * | 3 | * copyright (C) 2004 by Michael Buesch * |
4 | * email: mbuesch@freenet.de * | 4 | * email: mbuesch@freenet.de * |
5 | * * | 5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * | 6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License version 2 * | 7 | * it under the terms of the GNU General Public License version 2 * |
8 | * as published by the Free Software Foundation. * | 8 | * as published by the Free Software Foundation. * |
9 | * * | 9 | * * |
10 | ***************************************************************************/ | 10 | ***************************************************************************/ |
11 | 11 | ||
12 | 12 | ||
13 | /*************************************************************************** | 13 | /*************************************************************************** |
14 | * copyright (C) 2004 by Ulf Schenk | 14 | * copyright (C) 2004 by Ulf Schenk |
15 | * This file is originaly based on version 2.0 of pwmanager | 15 | * This file is originaly based on version 1.1 of pwmanager |
16 | * and was modified to run on embedded devices that run microkde | 16 | * and was modified to run on embedded devices that run microkde |
17 | * | 17 | * |
18 | * $Id$ | 18 | * $Id$ |
19 | **************************************************************************/ | 19 | **************************************************************************/ |
20 | 20 | ||
21 | #ifndef __SERIALIZER_H | 21 | #ifndef __SERIALIZER_H |
22 | #define __SERIALIZER_H | 22 | #define __SERIALIZER_H |
23 | 23 | ||
24 | #include "pwmdoc.h" | 24 | #include "pwmdoc.h" |
25 | 25 | ||
26 | #include <qcstring.h> | 26 | #include <qcstring.h> |
27 | #include <qdom.h> | 27 | #include <qdom.h> |
28 | 28 | ||
29 | #include <vector> | 29 | #include <vector> |
30 | 30 | ||
31 | using std::vector; | 31 | using std::vector; |
32 | 32 | ||
33 | /** This serializes its input data into | 33 | /** This serializes its input data into |
34 | * the PwManager-XML-datastream, that becomes | 34 | * the PwManager-XML-datastream, that becomes |
35 | * encrypted and maybe compressed | 35 | * encrypted and maybe compressed |
36 | */ | 36 | */ |
37 | class Serializer | 37 | class Serializer |
38 | { | 38 | { |
39 | public: | 39 | public: |
40 | /** construct an empty serializer document */ | 40 | /** construct an empty serializer document */ |
41 | Serializer(); | 41 | Serializer(); |
42 | /** construct a serializer document and parse "buffer" */ | 42 | /** construct a serializer document and parse "buffer" */ |
43 | Serializer(const QCString &buffer); | 43 | Serializer(const QCString &buffer); |
44 | /** destructor */ | 44 | /** destructor */ |
45 | virtual ~Serializer(); | 45 | virtual ~Serializer(); |
46 | 46 | ||
47 | /** clears all data */ | 47 | /** clears all data */ |
48 | void clear(); | 48 | void clear(); |
49 | /** parse the given data buffer */ | 49 | /** parse the given data buffer */ |
50 | bool parseXml(const QCString &buffer); | 50 | bool parseXml(const QCString &buffer); |
51 | /** returns the current XML data */ | 51 | /** returns the current XML data */ |
52 | QCString getXml(); | 52 | QCString getXml(); |
53 | /** serialize "dta" and store it as XML data */ | 53 | /** serialize "dta" and store it as XML data */ |
54 | //US ENH: we need to serialize and deserialize not only categories, but also synctargets | 54 | //US ENH: we need to serialize and deserialize not only categories, but also synctargets |
55 | bool serialize(PwMItem &dta); | 55 | bool serialize(PwMItem &dta); |
56 | /** deserialize the (parsed) XML data and store it in "dta" */ | 56 | /** deserialize the (parsed) XML data and store it in "dta" */ |
57 | bool deSerialize(PwMItem *dta); | 57 | bool deSerialize(PwMItem *dta); |
58 | /** sets the initial default lockStat we should assign */ | 58 | /** sets the initial default lockStat we should assign */ |
59 | void setDefaultLockStat(bool stat) | 59 | void setDefaultLockStat(bool stat) |
60 | { defaultLockStat = stat; } | 60 | { defaultLockStat = stat; } |
61 | 61 | ||
62 | protected: | 62 | protected: |
63 | /** main data holder */ | 63 | /** main data holder */ |
64 | QDomDocument *domDoc; | 64 | QDomDocument *domDoc; |
65 | /** default lockStat to assign */ | 65 | /** default lockStat to assign */ |
66 | bool defaultLockStat; | 66 | bool defaultLockStat; |
67 | 67 | ||
68 | protected: | 68 | protected: |
69 | /** check if this is valid PwManager XML data */ | 69 | /** check if this is valid PwManager XML data */ |
70 | bool checkValid(); | 70 | bool checkValid(); |
71 | /** read the categories in the node "n" */ | 71 | /** read the categories in the node "n" */ |
72 | bool readCategories(const QDomNode &n, | 72 | bool readCategories(const QDomNode &n, |
73 | vector<PwMCategoryItem> *dta); | 73 | vector<PwMCategoryItem> *dta); |
74 | /** read the entries in the node "n" */ | 74 | /** read the entries in the node "n" */ |
75 | bool readEntries(const QDomNode &n, | 75 | bool readEntries(const QDomNode &n, |
76 | vector<PwMDataItem> *dta); | 76 | vector<PwMDataItem> *dta); |
77 | /** extract the data out of the given item at "n" */ | 77 | /** extract the data out of the given item at "n" */ |
78 | bool extractEntry(const QDomNode &n, | 78 | bool extractEntry(const QDomNode &n, |
79 | PwMDataItem *dta); | 79 | PwMDataItem *dta); |
80 | /** extract the meta-data */ | 80 | /** extract the meta-data */ |
81 | bool extractMeta(const QDomNode &n, | 81 | bool extractMeta(const QDomNode &n, |
82 | PwMMetaData *dta); | 82 | PwMMetaData *dta); |
83 | /** generates a new root node and sets all initial parameters */ | 83 | /** generates a new root node and sets all initial parameters */ |
84 | QDomElement genNewRoot(); | 84 | QDomElement genNewRoot(); |
85 | /** add new categories to the XML data stream in e */ | 85 | /** add new categories to the XML data stream in e */ |
86 | bool addCategories(QDomElement *e, | 86 | bool addCategories(QDomElement *e, |
87 | const vector<PwMCategoryItem> &dta); | 87 | const vector<PwMCategoryItem> &dta); |
88 | /** add the given new entries to the XML data stream in e */ | 88 | /** add the given new entries to the XML data stream in e */ |
89 | bool addEntries(QDomElement *e, | 89 | bool addEntries(QDomElement *e, |
90 | const vector<PwMDataItem> &dta); | 90 | const vector<PwMDataItem> &dta); |
91 | /** do serialize and write the given entry to the XML stream */ | 91 | /** do serialize and write the given entry to the XML stream */ |
92 | bool writeEntry(QDomElement *e, | 92 | bool writeEntry(QDomElement *e, |
93 | const PwMDataItem &_dta); | 93 | const PwMDataItem &_dta); |
94 | /** write the entry meta data to the xml stream */ | 94 | /** write the entry meta data to the xml stream */ |
95 | bool writeMeta(QDomElement *e, | 95 | bool writeMeta(QDomElement *e, |
96 | const PwMMetaData &dta); | 96 | const PwMMetaData &dta); |
97 | /** escape illegal characters out of the given entry data string */ | 97 | /** escape illegal characters out of the given entry data string */ |
98 | QString escapeEntryData(QString dta); | 98 | QString escapeEntryData(QString dta); |
99 | /** un-escape illegal characters out of the given entry data string */ | 99 | /** un-escape illegal characters out of the given entry data string */ |
100 | QString unescapeEntryData(QString dta); | 100 | QString unescapeEntryData(QString dta); |
101 | 101 | ||
102 | 102 | ||
103 | 103 | ||
104 | //US ENH: the following methods are getting used to write/read sync entries | 104 | //US ENH: the following methods are getting used to write/read sync entries |
105 | /** read the syncentries in the node "n" */ | 105 | /** read the syncentries in the node "n" */ |
106 | bool readSyncData(const QDomNode &n, | 106 | bool readSyncData(const QDomNode &n, |
107 | vector<PwMSyncItem> *dta); | 107 | vector<PwMSyncItem> *dta); |
108 | 108 | ||
109 | /** add new syncentries to the XML data stream in e */ | 109 | /** add new syncentries to the XML data stream in e */ |
110 | bool addSyncData(QDomElement *e, | 110 | bool addSyncData(QDomElement *e, |
111 | const vector<PwMSyncItem> &dta); | 111 | const vector<PwMSyncItem> &dta); |
112 | 112 | ||
113 | }; | 113 | }; |
114 | 114 | ||
115 | #endif // __SERIALIZER_H | 115 | #endif // __SERIALIZER_H |