]>
vaikene.ee Git - evaf/blob - src/apps/PswGen/Generator/module.h
2 * @file PswGen/Generator/module.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_MODULE_H
21 # define __PSWGEN_GENERATOR_MODULE_H
23 #include "igenerator.h"
26 #include <Plugins/iPlugin>
34 /// Module that generates strong passwords using cryptographic methods
37 /// Internal implementation of the Generator module
40 } // namespace eVaf::PswGen::Generator::Internal
43 * Module implementing the iGenerator interface.
45 class Module
: public Plugins::iPlugin
48 Q_INTERFACES(eVaf::Plugins::iPlugin
)
49 Q_PLUGIN_METADATA(IID VER_MODULE_NAME_STR
)
57 virtual bool init(QString
const & args
);
61 virtual bool isReady() const { return true; }
66 /// iGenerator interface instance
67 Internal::GeneratorImpl
* mGenerator
;
75 * iGenerator interface implementation.
77 * Implements the iGenerator interface using MD5 cryptographic hashes.
80 class GeneratorImpl
: public QObject
, public iGenerator
83 Q_INTERFACES(eVaf::PswGen::iGenerator
)
89 virtual ~GeneratorImpl();
91 virtual QString
generatePassword(QString
const & name
, QString
const & masterPassword
, int length
, uint flags
= 0) const;
93 virtual int maxLength() const { return 24; }
97 } // namespace eVaf::PswGen::Generator::Internal
100 } // namespace eVaf::PswGen::Generator
101 } // namespace eVaf::PswGen