summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/randomizer.h
Side-by-side diff
Diffstat (limited to 'pwmanager/pwmanager/randomizer.h') (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/randomizer.h39
1 files changed, 29 insertions, 10 deletions
diff --git a/pwmanager/pwmanager/randomizer.h b/pwmanager/pwmanager/randomizer.h
index db17334..5eb02f1 100644
--- a/pwmanager/pwmanager/randomizer.h
+++ b/pwmanager/pwmanager/randomizer.h
@@ -11,21 +11,31 @@
/***************************************************************************
* copyright (C) 2004 by Ulf Schenk
- * This file is originaly based on version 1.0.1 of pwmanager
+ * This file is originaly based on version 2.0 of pwmanager
* and was modified to run on embedded devices that run microkde
*
* $Id$
**************************************************************************/
-#ifndef RANDOMIZER_H
-#define RANDOMIZER_H
+#ifndef __RANDOMIZER_H
+#define __RANDOMIZER_H
#include "pwmexception.h"
-#include <stdio.h>
+#ifndef PWM_EMBEDDED
+#include <qmutex.h>
+#endif
+
+#include <string>
+
+using std::string;
+
+class QFile;
-/** simple randomizer
- * This class is *NOT* reentrant save!
+/** Randomizer to get random values.
+ * This class is thread-safe.
+ * You should always use the instance returned by
+ * obj() to use it.
*/
class Randomizer
{
@@ -52,16 +62,25 @@ public:
char genRndChar();
/** generate random int */
int genRndInt();
- /** generate random unsigned int */
+ /** generate a random unsigned int */
unsigned int genRndUInt();
+ /** returns a buffer with random data */
+ string genRndBuf(size_t len);
+ /** returns a buffer with random data */
+ void genRndBuf(unsigned char *buf, size_t len);
+
protected:
/** random-device-node (if available. Otherwise NULL) */
- FILE *rndDev;
+ QFile *rndDev;
+#ifndef PWM_EMBEDDED
+ /** mutex for accessing the public functions thread-save */
+ QMutex mutex;
+#endif
/** seed value for fallback - rand_r() */
unsigned int seed;
- /** static Randomier object returned by obj() */
+ /** static Randomizer object returned by obj() */
static Randomizer *rndObj;
};
-#endif
+#endif // __RANDOMIZER_H