Changeset View
Changeset View
Standalone View
Standalone View
native/cpp/CommonCpp/NativeModules/CommUtilsModule.cpp
Show First 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | CommUtilsModule::base64EncodeBuffer(jsi::Runtime &rt, jsi::Object data) { | ||||
auto dataPtr = arrayBuffer.data(rt); | auto dataPtr = arrayBuffer.data(rt); | ||||
auto size = arrayBuffer.size(rt); | auto size = arrayBuffer.size(rt); | ||||
auto bytes = std::vector<uint8_t>{dataPtr, dataPtr + size}; | auto bytes = std::vector<uint8_t>{dataPtr, dataPtr + size}; | ||||
auto base64 = Base64::encode(bytes); | auto base64 = Base64::encode(bytes); | ||||
return jsi::String::createFromUtf8(rt, base64); | return jsi::String::createFromUtf8(rt, base64); | ||||
} | } | ||||
jsi::Object | |||||
CommUtilsModule::base64DecodeBuffer(jsi::Runtime &rt, jsi::String base64) { | |||||
auto bytes = Base64::decode(base64.utf8(rt)); | |||||
auto size = bytes.size(); | |||||
auto arrayBuffer = | |||||
rt.global() | |||||
.getPropertyAsFunction(rt, "ArrayBuffer") | |||||
// ArrayBuffer constructor takes one parameter: byte length | |||||
.callAsConstructor(rt, {static_cast<double>(size)}) | |||||
.asObject(rt) | |||||
.getArrayBuffer(rt); | |||||
memcpy(arrayBuffer.data(rt), bytes.data(), size); | |||||
return std::move(arrayBuffer); | |||||
} | |||||
jsi::String CommUtilsModule::sha256(jsi::Runtime &rt, jsi::Object data) { | jsi::String CommUtilsModule::sha256(jsi::Runtime &rt, jsi::Object data) { | ||||
auto arrayBuffer = data.getArrayBuffer(rt); | auto arrayBuffer = data.getArrayBuffer(rt); | ||||
auto inputPtr = arrayBuffer.data(rt); | auto inputPtr = arrayBuffer.data(rt); | ||||
auto inputSize = arrayBuffer.size(rt); | auto inputSize = arrayBuffer.size(rt); | ||||
auto sha256Size = ::olm_sha256_length(this->olmUtility); | auto sha256Size = ::olm_sha256_length(this->olmUtility); | ||||
OlmBuffer sha256Bytes(sha256Size); | OlmBuffer sha256Bytes(sha256Size); | ||||
auto outputLength = ::olm_sha256( | auto outputLength = ::olm_sha256( | ||||
Show All 13 Lines |