MCPcopy Create free account
hub / github.com/CommE2E/comm / signMessageUsingAccount

Method signMessageUsingAccount

native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp:2020–2055  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2018}
2019
2020jsi::Value CommCoreModule::signMessageUsingAccount(
2021 jsi::Runtime &rt,
2022 jsi::String message,
2023 jsi::String pickledAccount,
2024 jsi::String pickleKey) {
2025 std::string messageStr = message.utf8(rt);
2026 std::string pickledAccountStr = pickledAccount.utf8(rt);
2027 std::string pickleKeyStr = pickleKey.utf8(rt);
2028 return createPromiseAsJSIValue(
2029 rt, [=](jsi::Runtime &innerRt, std::shared_ptr<Promise> promise) {
2030 taskType job = [=, &innerRt]() {
2031 std::string error;
2032 std::string signature;
2033 try {
2034 crypto::Persist persist;
2035 persist.account = crypto::OlmBuffer(
2036 pickledAccountStr.begin(), pickledAccountStr.end());
2037 auto cryptoModule = new crypto::CryptoModule(pickleKeyStr, persist);
2038 signature = cryptoModule->signMessage(messageStr);
2039 } catch (const std::exception &e) {
2040 error = "signing message failed with: " + std::string(e.what());
2041 }
2042
2043 this->jsInvoker_->invokeAsync([=, &innerRt]() {
2044 if (error.size()) {
2045 promise->reject(error);
2046 return;
2047 }
2048
2049 auto jsiSignature{jsi::String::createFromUtf8(innerRt, signature)};
2050 promise->resolve(std::move(jsiSignature));
2051 });
2052 };
2053 this->cryptoThread->scheduleTask(job);
2054 });
2055}
2056
2057jsi::Value CommCoreModule::verifySignature(
2058 jsi::Runtime &rt,

Callers

nothing calls this directly

Calls 5

endMethod · 0.80
rejectMethod · 0.80
resolveMethod · 0.80
scheduleTaskMethod · 0.80
signMessageMethod · 0.45

Tested by

no test coverage detected