mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Export all keys command in validator-engine-console (#1412)
* Export all keys command in validator-engine-console * Use OPENSSL_cleanse in Bits256::fill_zero_s
This commit is contained in:
parent
4aa6412f9c
commit
9ae88d87e3
11 changed files with 173 additions and 6 deletions
|
@ -28,7 +28,7 @@ namespace ton {
|
|||
namespace keyring {
|
||||
|
||||
KeyringImpl::PrivateKeyDescr::PrivateKeyDescr(PrivateKey private_key, bool is_temp)
|
||||
: public_key(private_key.compute_public_key()), is_temp(is_temp) {
|
||||
: public_key(private_key.compute_public_key()), private_key(private_key), is_temp(is_temp) {
|
||||
auto D = private_key.create_decryptor_async();
|
||||
D.ensure();
|
||||
decryptor_sign = D.move_as_ok();
|
||||
|
@ -190,6 +190,16 @@ void KeyringImpl::decrypt_message(PublicKeyHash key_hash, td::BufferSlice data,
|
|||
}
|
||||
}
|
||||
|
||||
void KeyringImpl::export_all_private_keys(td::Promise<std::vector<PrivateKey>> promise) {
|
||||
std::vector<PrivateKey> keys;
|
||||
for (auto& [_, descr] : map_) {
|
||||
if (!descr->is_temp && descr->private_key.exportable()) {
|
||||
keys.push_back(descr->private_key);
|
||||
}
|
||||
}
|
||||
promise.set_value(std::move(keys));
|
||||
}
|
||||
|
||||
td::actor::ActorOwn<Keyring> Keyring::create(std::string db_root) {
|
||||
return td::actor::create_actor<KeyringImpl>("keyring", db_root);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue