MCPcopy Create free account
hub / github.com/TelegramMessenger/cocoon / get_from_db

Method get_from_db

runners/key-manager/KeyManagerRunner.cpp:207–224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

205}
206
207td::UniqueSlice KeyManagerRunner::get_from_db(td::Slice key) {
208 std::string config_value;
209 auto k = kv_->get(key, config_value);
210 k.ensure();
211
212 if (k.move_as_ok() == td::KeyValue::GetStatus::Ok) {
213 auto value = td::Slice(config_value);
214 CHECK(value.size() >= 64);
215 auto signature = value.copy().remove_prefix(value.size() - 64);
216 value.remove_suffix(64);
217
218 public_key_obj_->verify_signature(value, signature).ensure();
219
220 return td::UniqueSlice(value);
221 } else {
222 return td::UniqueSlice();
223 }
224}
225
226void KeyManagerRunner::set_to_db(td::Slice key, td::Slice value) {
227 td::UniqueSlice signed_value(value.size() + 64);

Callers

nothing calls this directly

Calls 3

verify_signatureMethod · 0.80
getMethod · 0.45
copyMethod · 0.45

Tested by

no test coverage detected