diff --git a/native/android/app/src/cpp/PlatformSpecificTools.cpp b/native/android/app/src/cpp/PlatformSpecificTools.cpp index 6dbbdd9c5..d3f1dc58c 100644 --- a/native/android/app/src/cpp/PlatformSpecificTools.cpp +++ b/native/android/app/src/cpp/PlatformSpecificTools.cpp @@ -1,36 +1,40 @@ #include "PlatformSpecificTools.h" #include "Logger.h" #include using namespace facebook::jni; class PlatformSpecificToolsJavaClass : public JavaClass { public: static auto constexpr kJavaDescriptor = "Lapp/comm/android/fbjni/PlatformSpecificTools;"; static comm::crypto::OlmBuffer generateSecureRandomBytes(size_t size) { static const auto cls = javaClassStatic(); static auto method = cls->getStaticMethod("generateSecureRandomBytes"); auto methodResult = method(cls, (int)size); comm::crypto::OlmBuffer result(size); std::vector bytes(size); methodResult->getRegion(0, size, bytes.data()); for (size_t i = 0; i < size; ++i) { result[i] = bytes[i]; } return result; } }; namespace comm { void PlatformSpecificTools::generateSecureRandomBytes( crypto::OlmBuffer &buffer, size_t size) { buffer = PlatformSpecificToolsJavaClass::generateSecureRandomBytes(size); } +std::string PlatformSpecificTools::getDeviceOS() { + return std::string{"android"}; +} + } // namespace comm diff --git a/native/cpp/CommonCpp/Tools/PlatformSpecificTools.h b/native/cpp/CommonCpp/Tools/PlatformSpecificTools.h index addeb63c5..83d3b8567 100644 --- a/native/cpp/CommonCpp/Tools/PlatformSpecificTools.h +++ b/native/cpp/CommonCpp/Tools/PlatformSpecificTools.h @@ -1,12 +1,13 @@ #pragma once #include "../CryptoTools/Tools.h" namespace comm { class PlatformSpecificTools { public: static void generateSecureRandomBytes(crypto::OlmBuffer &buffer, size_t size); + static std::string getDeviceOS(); }; } // namespace comm diff --git a/native/ios/Comm/PlatformSpecificTools.mm b/native/ios/Comm/PlatformSpecificTools.mm index 9550743bd..58b11cd1f 100644 --- a/native/ios/Comm/PlatformSpecificTools.mm +++ b/native/ios/Comm/PlatformSpecificTools.mm @@ -1,22 +1,26 @@ #import "PlatformSpecificTools.h" #import #import namespace comm { void PlatformSpecificTools::generateSecureRandomBytes( crypto::OlmBuffer &buffer, size_t size) { uint8_t randomBytes[size]; const int status = SecRandomCopyBytes(kSecRandomDefault, size, randomBytes); if (status == errSecSuccess) { buffer = crypto::OlmBuffer(randomBytes, randomBytes + size); } else { throw std::runtime_error( "SecRandomCopyBytes failed for some reason, error code: " + std::to_string(status)); } } +std::string PlatformSpecificTools::getDeviceOS() { + return std::string{"ios"}; +} + };