mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Add methods to sign and import certificates
This commit is contained in:
parent
3384d204d2
commit
cb31a20206
20 changed files with 682 additions and 18 deletions
|
@ -903,3 +903,139 @@ class CheckDhtServersQuery : public Query {
|
|||
private:
|
||||
ton::PublicKeyHash id_;
|
||||
};
|
||||
|
||||
class GetOverlaysStatsQuery : public Query {
|
||||
public:
|
||||
GetOverlaysStatsQuery(td::actor::ActorId<ValidatorEngineConsole> console, Tokenizer tokenizer)
|
||||
: Query(console, std::move(tokenizer)) {
|
||||
}
|
||||
td::Status run() override;
|
||||
td::Status send() override;
|
||||
td::Status receive(td::BufferSlice data) override;
|
||||
static std::string get_name() {
|
||||
return "getoverlaysstats";
|
||||
}
|
||||
static std::string get_help() {
|
||||
return "getoverlaysstats\tgets stats for all overlays";
|
||||
}
|
||||
std::string name() const override {
|
||||
return get_name();
|
||||
}
|
||||
};
|
||||
|
||||
class SignCertificateQuery : public Query {
|
||||
public:
|
||||
SignCertificateQuery(td::actor::ActorId<ValidatorEngineConsole> console, Tokenizer tokenizer)
|
||||
: Query(console, std::move(tokenizer)) {
|
||||
}
|
||||
td::Status run() override;
|
||||
td::Status send() override;
|
||||
td::Status receive(td::BufferSlice data) override;
|
||||
static std::string get_name() {
|
||||
return "signcert";
|
||||
}
|
||||
static std::string get_help() {
|
||||
return "signcert <overlayid> <adnlid> <expireat> <maxsize> <signwith> <outfile>\tsign overlay certificate by <signwith> key";
|
||||
}
|
||||
std::string name() const override {
|
||||
return get_name();
|
||||
}
|
||||
void receive_pubkey(td::BufferSlice R);
|
||||
void receive_signature(td::BufferSlice R);
|
||||
|
||||
|
||||
private:
|
||||
void save_certificate();
|
||||
|
||||
td::Bits256 overlay_;
|
||||
td::Bits256 id_;
|
||||
td::int32 expire_at_;
|
||||
td::uint32 max_size_;
|
||||
std::string out_file_;
|
||||
ton::PublicKeyHash signer_;
|
||||
td::BufferSlice signature_;
|
||||
std::unique_ptr<ton::ton_api::PublicKey> pubkey_;
|
||||
bool has_signature_{0};
|
||||
bool has_pubkey_{0};
|
||||
};
|
||||
|
||||
class ImportCertificateQuery : public Query {
|
||||
public:
|
||||
ImportCertificateQuery(td::actor::ActorId<ValidatorEngineConsole> console, Tokenizer tokenizer)
|
||||
: Query(console, std::move(tokenizer)) {
|
||||
}
|
||||
td::Status run() override;
|
||||
td::Status send() override;
|
||||
td::Status receive(td::BufferSlice data) override;
|
||||
static std::string get_name() {
|
||||
return "importcert";
|
||||
}
|
||||
static std::string get_help() {
|
||||
return "importcert <overlayid> <adnlid> <key> <certfile>\timport overlay certificate for specific key";
|
||||
}
|
||||
std::string name() const override {
|
||||
return get_name();
|
||||
}
|
||||
|
||||
private:
|
||||
td::Bits256 overlay_;
|
||||
td::Bits256 id_;
|
||||
ton::PublicKeyHash kh_;
|
||||
std::string in_file_;
|
||||
};
|
||||
|
||||
class SignShardOverlayCertificateQuery : public Query {
|
||||
public:
|
||||
SignShardOverlayCertificateQuery(td::actor::ActorId<ValidatorEngineConsole> console, Tokenizer tokenizer)
|
||||
: Query(console, std::move(tokenizer)) {
|
||||
}
|
||||
td::Status run() override;
|
||||
td::Status send() override;
|
||||
td::Status receive(td::BufferSlice data) override;
|
||||
static std::string get_name() {
|
||||
return "signshardoverlaycert";
|
||||
}
|
||||
static std::string get_help() {
|
||||
return "signshardoverlaycert <workchain> <shardprefix> <key> <expireat> <maxsize> <outfile>\tsign certificate for <key> in currently active shard overlay";
|
||||
}
|
||||
std::string name() const override {
|
||||
return get_name();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
td::int32 wc_;
|
||||
td::int64 shard_;
|
||||
td::int32 expire_at_;
|
||||
ton::PublicKeyHash key_;
|
||||
td::uint32 max_size_;
|
||||
std::string out_file_;
|
||||
};
|
||||
|
||||
|
||||
class ImportShardOverlayCertificateQuery : public Query {
|
||||
public:
|
||||
ImportShardOverlayCertificateQuery(td::actor::ActorId<ValidatorEngineConsole> console, Tokenizer tokenizer)
|
||||
: Query(console, std::move(tokenizer)) {
|
||||
}
|
||||
td::Status run() override;
|
||||
td::Status send() override;
|
||||
td::Status receive(td::BufferSlice data) override;
|
||||
static std::string get_name() {
|
||||
return "importshardoverlaycert";
|
||||
}
|
||||
static std::string get_help() {
|
||||
return "importshardoverlaycert <workchain> <shardprefix> <key> <certfile>\timport certificate for <key> in currently active shard overlay";
|
||||
}
|
||||
std::string name() const override {
|
||||
return get_name();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
td::int32 wc_;
|
||||
td::int64 shard_;
|
||||
ton::PublicKeyHash key_;
|
||||
std::string in_file_;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue