]>
vaikene.ee Git - evaf/blob - src/apps/PswGen/Generator/generator.h
77513be111f16b808c9bd056ec87f0adb6b29142
2 * @file PswGen/Generator/generator.h
3 * @brief Implementation of the iGenerator interface
6 * Copyright (c) 2011 Enar Vaikene
8 * This file is part of the eVaf C++ cross-platform application development framework.
10 * This file can be used under the terms of the GNU General Public License
11 * version 3.0 as published by the Free Software Foundation and appearing in
12 * the file LICENSE included in the packaging of this file. Please review the
13 * the following information to ensure the GNU General Public License version
14 * 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
16 * Alternatively, this file may be used in accordance with the Commercial License
17 * Agreement provided with the Software.
20 #ifndef __PSWGEN_GENERATOR_GENERATOR_H
21 # define __PSWGEN_GENERATOR_GENERATOR_H
23 #include "igenerator.h"
25 #include <Plugins/iPlugin>
32 /// Module that generates strong passwords using cryptographic methods
35 /// Internal implementation of the Generator module
39 * iGenerator interface implementation.
41 * Implements the iGenerator interface using MD5 cryptographic hashes.
44 class GeneratorImpl
: public iGenerator
52 virtual ~GeneratorImpl();
58 virtual QString
generatePassword(char const * const name
, char const * const masterPassword
, int length
= iGenerator::DEFAULT_LENGTH
, uint flags
= 0);
60 virtual int maxLength() const { return 24; }
64 } // namespace eVaf::PswGen::Generator::Internal
67 * Module implementing the iGenerator interface.
69 class Generator
: public Plugins::iPlugin
79 virtual bool init(const QString
& args
);
83 virtual bool isReady() const { return mReady
; }
88 /// Flag indicating that the module is ready
91 /// iGenerator interface instance
92 Internal::GeneratorImpl
* mGenerator
;
97 } // namespace eVaf::PswGen::Generator
98 } // namespace eVaf::PswGen
101 #endif // generator.h