GpgFrontend Project
A Free, Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP(pgp) Crypto Tool.
KeygenDialog.h
1 
27 #ifndef __KEYGENDIALOG_H__
28 #define __KEYGENDIALOG_H__
29 
30 #include "core/GpgContext.h"
31 #include "core/GpgGenKeyInfo.h"
32 #include "ui/GpgFrontendUI.h"
33 
34 namespace GpgFrontend::UI {
35 
40 class KeyGenDialog : public QDialog {
41  Q_OBJECT
42 
43  public:
51  explicit KeyGenDialog(QWidget* parent = nullptr);
52 
53  signals:
58  void SignalKeyGenerated();
59 
60  private:
66  QGroupBox* create_key_usage_group_box();
67 
73  QGroupBox* create_basic_info_group_box();
74 
79  QRegularExpression re_email_{
80  R"((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))"};
81 
86  QStringList error_messages_;
87  std::unique_ptr<GenKeyInfo> gen_key_info_ =
89  std::make_unique<GenKeyInfo>();
90  QDialogButtonBox* button_box_;
91  QLabel* error_label_{};
92  QLineEdit* name_edit_{};
93  QLineEdit* email_edit_{};
94  QLineEdit* comment_edit_{};
95  QSpinBox* key_size_spin_box_{};
96  QComboBox* key_type_combo_box_{};
97  QDateTimeEdit* date_edit_{};
98  QCheckBox* expire_check_box_{};
99  QCheckBox* no_pass_phrase_check_box_{};
100  QGroupBox* key_usage_group_box_{};
101  QDateTime max_date_time_;
103  std::vector<QCheckBox*> key_usage_check_boxes_;
104 
109  void generate_key_dialog();
110 
114  void refresh_widgets_state();
115 
120  void set_signal_slot();
121 
129  bool check_email_address(const QString& str);
130 
131  private slots:
132 
138 
143  void slot_key_gen_accept();
144 
150  void slot_encryption_box_changed(int state);
151 
157  void slot_signing_box_changed(int state);
158 
164  void slot_certification_box_changed(int state);
165 
171  void slot_authentication_box_changed(int state);
172 
178  void slot_activated_key_type(int index);
179 };
180 
181 } // namespace GpgFrontend::UI
182 
183 #endif // __KEYGENDIALOG_H__
GpgFrontend::UI::KeyGenDialog::name_edit_
QLineEdit * name_edit_
Line edit for the keys name.
Definition: KeygenDialog.h:92
GpgFrontend::UI::KeyGenDialog::expire_check_box_
QCheckBox * expire_check_box_
Checkbox, if key should expire.
Definition: KeygenDialog.h:98
GpgFrontend::UI::WaitingDialog
Definition: WaitingDialog.h:40
GpgFrontend::UI
Definition: VerifyDetailsDialog.cpp:33
GpgFrontend::UI::KeyGenDialog::slot_authentication_box_changed
void slot_authentication_box_changed(int state)
Definition: KeygenDialog.cpp:241
GpgFrontend::UI::KeyGenDialog::key_size_spin_box_
QSpinBox * key_size_spin_box_
Spinbox for the keys size (in bit)
Definition: KeygenDialog.h:95
GpgFrontend::UI::KeyGenDialog::slot_encryption_box_changed
void slot_encryption_box_changed(int state)
Definition: KeygenDialog.cpp:217
GpgFrontend::UI::KeyGenDialog::slot_signing_box_changed
void slot_signing_box_changed(int state)
Definition: KeygenDialog.cpp:225
GpgFrontend::SingletonFunctionObject< GlobalSettingStation >::GetInstance
static GlobalSettingStation & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:57
GpgFrontend::UI::KeyGenDialog::date_edit_
QDateTimeEdit * date_edit_
Date edit for expiration date.
Definition: KeygenDialog.h:97
GpgFrontend::GlobalSettingStation::GetUISettings
libconfig::Setting & GetUISettings() noexcept
Definition: GlobalSettingStation.h:68
GpgFrontend::UI::KeyGenDialog::check_email_address
bool check_email_address(const QString &str)
Definition: KeygenDialog.cpp:342
GpgFrontend::UI::KeyGenDialog::key_usage_check_boxes_
std::vector< QCheckBox * > key_usage_check_boxes_
ENCR, SIGN, CERT, AUTH.
Definition: KeygenDialog.h:103
GpgFrontend::UI::KeyGenDialog::error_label_
QLabel * error_label_
Label containing error message.
Definition: KeygenDialog.h:91
GpgFrontend::UI::KeyGenDialog::email_edit_
QLineEdit * email_edit_
Line edit for the keys email.
Definition: KeygenDialog.h:93
GpgFrontend::GpgKeyOpera::GenerateKey
GpgFrontend::GpgError GenerateKey(const std::unique_ptr< GenKeyInfo > &params, GpgGenKeyResult &result)
Definition: GpgKeyOpera.cpp:166
GpgFrontend::UI::KeyGenDialog::slot_expire_box_changed
void slot_expire_box_changed()
Definition: KeygenDialog.cpp:176
GpgFrontend::UI::KeyGenDialog::button_box_
QDialogButtonBox * button_box_
Box for standard buttons.
Definition: KeygenDialog.h:90
GpgFrontend::UI::KeyGenDialog::create_key_usage_group_box
QGroupBox * create_key_usage_group_box()
Create a key usage group box object.
Definition: KeygenDialog.cpp:184
GpgFrontend::UI::KeyGenDialog::comment_edit_
QLineEdit * comment_edit_
Line edit for the keys comment.
Definition: KeygenDialog.h:94
GpgFrontend::UI::KeyGenDialog::slot_key_gen_accept
void slot_key_gen_accept()
Definition: KeygenDialog.cpp:89
GpgFrontend::UI::KeyGenDialog::slot_activated_key_type
void slot_activated_key_type(int index)
Definition: KeygenDialog.cpp:249
GpgFrontend::GenKeyInfo::GetSupportedKeyAlgo
static const std::vector< std::string > & GetSupportedKeyAlgo()
Get the Supported Key Algo object.
Definition: GpgGenKeyInfo.cpp:200
GpgFrontend::UI::KeyGenDialog::set_signal_slot
void set_signal_slot()
Set the signal slot object.
Definition: KeygenDialog.cpp:311
GpgFrontend::UI::KeyGenDialog::key_type_combo_box_
QComboBox * key_type_combo_box_
Combobox for Key type.
Definition: KeygenDialog.h:96
GpgFrontend::UI::KeyGenDialog::slot_certification_box_changed
void slot_certification_box_changed(int state)
Definition: KeygenDialog.cpp:233
GpgFrontend::UI::SignalStation::GetInstance
static SignalStation * GetInstance()
Get the Instance object.
Definition: SignalStation.cpp:35
GpgFrontend::UI::KeyGenDialog::KeyGenDialog
KeyGenDialog(QWidget *parent=nullptr)
Definition: KeygenDialog.cpp:38
GpgFrontend::UI::KeyGenDialog
Definition: KeygenDialog.h:40
GpgFrontend::UI::KeyGenDialog::key_usage_group_box_
QGroupBox * key_usage_group_box_
Definition: KeygenDialog.h:100
GpgFrontend::UI::KeyGenDialog::refresh_widgets_state
void refresh_widgets_state()
Definition: KeygenDialog.cpp:257
GpgFrontend::UI::KeyGenDialog::create_basic_info_group_box
QGroupBox * create_basic_info_group_box()
Create a basic info group box object.
Definition: KeygenDialog.cpp:346
GpgFrontend::UI::KeyGenDialog::error_messages_
QStringList error_messages_
Definition: KeygenDialog.h:86