Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8a7d6e6

Browse files
sec_mod_linux gui-unlocktime update
1 parent 3219bce commit 8a7d6e6

File tree

6 files changed

+76
-48
lines changed

6 files changed

+76
-48
lines changed

keychain_linux/passentry_cmd/cmd.hpp

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ namespace slave {
4343
}
4444

4545
namespace master {
46-
enum struct cmds {unknown = 0, rawtrx, close, modify, length, create, last};
46+
enum struct cmds {unknown = 0, rawtrx, close, modify, length, create, unlock, last};
4747

4848
struct cmd_base {
4949
cmd_base(): cmd(cmds::unknown){};
@@ -59,16 +59,15 @@ namespace master {
5959
cmd_base::cmd = cmds::rawtrx;
6060
params = fc_light::variant(rawtrx);
6161
};
62-
struct rawtrx_t { rawtrx_t(std::string s):rawtrx(s){}
62+
struct params_t { params_t(std::string s):rawtrx(s){}
6363
fc_light::variant rawtrx;
64-
};
65-
rawtrx_t rawtrx;
64+
} rawtrx;
6665
};
6766

6867
template<>
6968
struct cmd<cmds::close> {
7069
cmd():base(){}
71-
struct base_t {base_t(){base_t::cmd=cmds::close;} cmds cmd;} base;
70+
struct params_t {params_t():cmd(cmds::close){} cmds cmd;} base;
7271
};
7372

7473
template<>
@@ -77,7 +76,7 @@ namespace master {
7776
cmd_base::cmd = cmds::modify;
7877
params = fc_light::variant(modify);
7978
};
80-
struct modify_t { modify_t(bool caps_, bool num_, bool shift_):caps(caps_), num(num_), shift(shift_){}
79+
struct params_t { params_t(bool caps_, bool num_, bool shift_):caps(caps_), num(num_), shift(shift_){}
8180
fc_light::variant caps, num, shift;
8281
} modify;
8382
};
@@ -88,31 +87,44 @@ namespace master {
8887
cmd_base::cmd = cmds::length;
8988
params = fc_light::variant(length);
9089
};
91-
struct length_t { length_t(int l):len(l){}
90+
struct params_t { params_t(int l):len(l){}
9291
fc_light::variant len;
93-
};
94-
length_t length;
92+
} length;
9593
};
9694

9795
template<>
9896
struct cmd<cmds::create> : cmd_base{
99-
cmd(std::string name_): cmd_base(), keyname(name_){
97+
cmd(std::string name): cmd_base(), key_name(name){
98+
cmd_base::cmd = cmds::create;
99+
params = fc_light::variant(key_name);
100+
};
101+
struct params_t { params_t(std::string s):keyname(s){}
102+
std::string keyname;
103+
} key_name;
104+
};
105+
106+
template<>
107+
struct cmd<cmds::unlock> : cmd_base{
108+
cmd(std::string name, int time): cmd_base(), unlock_param(name, time){
100109
cmd_base::cmd = cmds::create;
101-
params = fc_light::variant(keyname);
110+
params = fc_light::variant(unlock_param);
102111
};
103-
struct keyname_t { keyname_t(std::string s):name(s){}
104-
std::string name;
105-
} keyname;
112+
struct params_t {
113+
params_t(std::string s, int t):keyname(s), unlock_time(t) {}
114+
std::string keyname;
115+
int unlock_time;
116+
} unlock_param;
106117
};
107118
}
108119

109-
FC_LIGHT_REFLECT_ENUM(master::cmds, (unknown)(rawtrx)(close)(modify)(length)(last))
120+
FC_LIGHT_REFLECT_ENUM(master::cmds, (unknown)(rawtrx)(close)(modify)(length)(unlock)(last))
110121
FC_LIGHT_REFLECT(master::cmd_base, (cmd)(params))
111-
FC_LIGHT_REFLECT(master::cmd<master::cmds::rawtrx>::rawtrx_t, (rawtrx))
112-
FC_LIGHT_REFLECT(master::cmd<master::cmds::close>::base_t, (cmd))
113-
FC_LIGHT_REFLECT(master::cmd<master::cmds::modify>::modify_t, (caps)(num)(shift))
114-
FC_LIGHT_REFLECT(master::cmd<master::cmds::length>::length_t, (len))
115-
FC_LIGHT_REFLECT(master::cmd<master::cmds::create>::keyname_t, (name))
122+
FC_LIGHT_REFLECT(master::cmd<master::cmds::rawtrx>::params_t, (rawtrx))
123+
FC_LIGHT_REFLECT(master::cmd<master::cmds::close>::params_t, (cmd))
124+
FC_LIGHT_REFLECT(master::cmd<master::cmds::modify>::params_t, (caps)(num)(shift))
125+
FC_LIGHT_REFLECT(master::cmd<master::cmds::length>::params_t, (len))
126+
FC_LIGHT_REFLECT(master::cmd<master::cmds::create>::params_t, (keyname))
127+
FC_LIGHT_REFLECT(master::cmd<master::cmds::unlock>::params_t, (keyname)(unlock_time))
116128

117129
FC_LIGHT_REFLECT_ENUM(slave::cmds, (unknown)(ok)(cancel)(last))
118130
FC_LIGHT_REFLECT(slave::cmd_common, (cmd)(params))

keychain_linux/passentry_cmd/pass_entry_term.cpp

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ std::list<std::string> pass_entry_term::parse_device_file()
166166
return std::move( devices);
167167
}
168168

169-
keychain_app::byte_seq_t pass_entry_term::fork_gui(const KeySym * map, const std::string& value, master::cmds cmd ){
169+
keychain_app::byte_seq_t pass_entry_term::fork_gui(const KeySym * map, const std::string& mes){
170170
int sockets[2];
171171
if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) < 0) throw std::runtime_error("opening stream socket pair");
172172
switch (fork())
@@ -186,23 +186,6 @@ keychain_app::byte_seq_t pass_entry_term::fork_gui(const KeySym * map, const std
186186
default: break;
187187
}
188188
close(sockets[0]);
189-
190-
fc_light::string mes;
191-
switch (cmd)
192-
{
193-
case master::cmds::create :
194-
{
195-
auto a = master::cmd<master::cmds::create>(value);
196-
mes = fc_light::json::to_string(fc_light::variant(static_cast<const master::cmd_base&>(a)));
197-
break;
198-
}
199-
case master::cmds::rawtrx:
200-
{
201-
auto a = master::cmd<master::cmds::rawtrx>(value);
202-
mes = fc_light::json::to_string(fc_light::variant(static_cast<const master::cmd_base&>(a)));
203-
break;
204-
}
205-
}
206189
send_gui(mes , sockets[1]);
207190

208191
std::wstring pass = input_password(map, sockets[1]);

keychain_linux/passentry_cmd/pass_entry_term.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class pass_entry_term
3232
pass_entry_term();
3333
~pass_entry_term();
3434

35-
keychain_app::byte_seq_t fork_gui(const KeySym*, const std::string&, master::cmds );
35+
keychain_app::byte_seq_t fork_gui(const KeySym*, const std::string&);
3636
Display* _display = NULL;
3737
private:
3838
std::wstring input_password(const KeySym *, int);

keychain_linux/passentry_cmd/sec_mod_linux.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using namespace keychain_app;
88

99
#include <pass_entry_term.hpp>
10+
#include <cmd.hpp>
1011

1112
sec_mod_linux::sec_mod_linux()
1213
{}
@@ -21,25 +22,33 @@ void sec_mod_linux::print_mnemonic(const string_list& mnemonic) const
2122

2223
byte_seq_t sec_mod_linux::get_passwd_trx(const std::string& raw_trx) const
2324
{
25+
auto a = master::cmd<master::cmds::rawtrx>(raw_trx);
26+
auto mes = fc_light::json::to_string(fc_light::variant(static_cast<const master::cmd_base&>(a)));
27+
2428
auto pass_entry = pass_entry_term();
2529
auto map_instance = map_translate_singletone::instance(pass_entry._display);
26-
auto pass = pass_entry.fork_gui(map_instance.map, raw_trx, master::cmds::rawtrx);
30+
auto pass = pass_entry.fork_gui(map_instance.map, mes);
2731
return pass;
2832
}
2933

3034
byte_seq_t sec_mod_linux::get_passwd_unlock(const std::string& keyname, int unlock_time) const
3135
{
36+
auto a = master::cmd<master::cmds::unlock>(keyname, unlock_time);
37+
auto mes = fc_light::json::to_string(fc_light::variant(static_cast<const master::cmd_base&>(a)));
38+
3239
auto pass_entry = pass_entry_term();
3340
auto map_instance = map_translate_singletone::instance(pass_entry._display);
34-
auto pass = pass_entry.fork_gui(map_instance.map, keyname + std::string(", unlock_time: "+ std::to_string(unlock_time)) ,
35-
master::cmds::create);
41+
auto pass = pass_entry.fork_gui(map_instance.map, mes);
3642
return pass;
3743
}
3844

3945
byte_seq_t sec_mod_linux::get_passwd_on_create(const std::string keyname) const
4046
{
47+
auto a = master::cmd<master::cmds::create>(keyname);
48+
auto mes = fc_light::json::to_string(fc_light::variant(static_cast<const master::cmd_base&>(a)));
49+
4150
auto pass_entry = pass_entry_term();
4251
auto map_instance = map_translate_singletone::instance(pass_entry._display);
43-
auto pass = pass_entry.fork_gui(map_instance.map, "create", master::cmds::create);
52+
auto pass = pass_entry.fork_gui(map_instance.map, mes);
4453
return pass;
4554
}

keychain_linux/passentry_gui/include/cmd.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include "widget.hpp"
1717

1818
namespace slave {
19-
enum struct cmds {unknown = 0, rawtrx, close, modify, length, create, last }; // to gui
19+
enum struct cmds {unknown = 0, rawtrx, close, modify, length, create, unlock, last }; // to gui
2020

2121
struct cmd_common {
2222
cmd_common(cmds cmd_ = cmds::unknown): cmd(cmd_){};
@@ -58,7 +58,7 @@ namespace master
5858
};
5959
}
6060

61-
FC_LIGHT_REFLECT_ENUM(slave::cmds, (unknown)(rawtrx)(close)(modify)(length)(create)(last))
61+
FC_LIGHT_REFLECT_ENUM(slave::cmds, (unknown)(rawtrx)(close)(modify)(length)(create)(unlock)(last))
6262
FC_LIGHT_REFLECT(slave::cmd_common, (cmd)(params))
6363

6464
FC_LIGHT_REFLECT_ENUM(master::cmds, (unknown)(ok)(cancel)(last))

keychain_linux/passentry_gui/src/cmd.cpp

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,12 @@ namespace slave
9292
struct cmd<cmds::create> : cmd_base {
9393
cmd() : cmd_base(cmds::create) {};
9494
virtual ~cmd() {};
95-
struct params {std::string name;};
95+
struct params {std::string keyname;};
9696
using params_t = params;
9797
virtual void operator()(keychain_gui_win& w, const fc_light::variant& v) const override {
9898
try {
9999
auto a = v.as<params_t>();
100-
QString key(a.name.c_str());
100+
QString key(a.keyname.c_str());
101101
Transaction trans(key);
102102
trans.setCreatePassword();
103103
w.refresh(trans);
@@ -108,6 +108,29 @@ namespace slave
108108
};
109109
};
110110

111+
template<>
112+
struct cmd<cmds::unlock> : cmd_base {
113+
cmd() : cmd_base(cmds::create) {};
114+
virtual ~cmd() {};
115+
struct params {
116+
std::string keyname;
117+
int unlock_time;
118+
};
119+
using params_t = params;
120+
virtual void operator()(keychain_gui_win& w, const fc_light::variant& v) const override {
121+
try {
122+
auto a = v.as<params_t>();
123+
QString key(a.keyname.c_str());
124+
Transaction trans(key);
125+
trans.setUnlockKey(key, a.unlock_time);
126+
w.refresh(trans);
127+
w.show();
128+
}
129+
catch (const std::exception &e) {throw std::runtime_error(e.what());}
130+
catch (const fc_light::exception &e) {throw std::runtime_error(e.what());}
131+
};
132+
};
133+
111134
const cmd_list_singletone& cmd_list_singletone::instance() {
112135
static const cmd_list_singletone instance;
113136
return instance;
@@ -136,7 +159,8 @@ namespace slave
136159
FC_LIGHT_REFLECT(slave::cmd<slave::cmds::rawtrx>::params_t, (rawtrx))
137160
FC_LIGHT_REFLECT(slave::cmd<slave::cmds::modify>::params_t, (caps)(num)(shift))
138161
FC_LIGHT_REFLECT(slave::cmd<slave::cmds::length>::params_t, (len))
139-
FC_LIGHT_REFLECT(slave::cmd<slave::cmds::create>::params_t, (name))
162+
FC_LIGHT_REFLECT(slave::cmd<slave::cmds::create>::params_t, (keyname))
163+
FC_LIGHT_REFLECT(slave::cmd<slave::cmds::unlock>::params_t, (keyname)(unlock_time))
140164

141165

142166

0 commit comments

Comments
 (0)