blob: 3fa1607f398e156d8015324976a93aa5bca614b5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
/***************************************************************************
* *
* 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$
**************************************************************************/
#ifndef __GENPASSWD_H
#define __GENPASSWD_H
#include <qstring.h>
#include <qptrlist.h>
/** internal password generator of PwManager */
class GenPasswd
{
protected:
struct dynCharset_element
{
/** charset data */
QString data;
/** reference counter for the filter */
unsigned int refCnt;
};
public:
GenPasswd();
/** set the charset to use */
void setCharset(bool lower,
bool upper,
bool num,
bool special,
bool blank,
QString user);
/** set the password length */
void setLen(int len)
{ length = len; }
/** use the filter? */
void setUseFilter(bool use)
{ useFilter = use; }
/** start to generate a new password and return it.
* Returns an empty string on error.
*/
QString gen();
protected:
/** randomize the dynamic charset */
void rndDynCharset();
/** select the next charset (based on useFilter) */
dynCharset_element * selectNextCharset();
/** generate a new random char from the given charset */
QChar genNewRandom(const dynCharset_element *charset);
protected:
/** password length to generate */
int length;
/** use the filter? */
bool useFilter;
/** dynamic charset used for generating the password */
QPtrList<dynCharset_element> dynCharset;
};
#endif // __GENPASSWD_H
|