From d3d658e5ee45a4cbd50de5dba481d4f34ebe9331 Mon Sep 17 00:00:00 2001 From: ko-devHong Date: Fri, 3 May 2024 16:08:22 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20ios=20encrypt=20=EB=B6=80=EB=B6=84?= =?UTF-8?q?=EA=B9=8C=EC=A7=80=20=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +- .../project.pbxproj | 22 +- example/ios/Podfile.lock | 1426 +++++++++++++++++ example/src/App.tsx | 25 +- ios/CryptoRsa.mm | 21 +- ios/CryptoRsa.swift | 228 ++- src/index.tsx | 6 +- 7 files changed, 1717 insertions(+), 16 deletions(-) create mode 100644 example/ios/Podfile.lock diff --git a/.gitignore b/.gitignore index d3b53df..cb4b3f8 100644 --- a/.gitignore +++ b/.gitignore @@ -69,10 +69,13 @@ android/keystores/debug.keystore !.yarn/versions # Expo -.expo/ +.expo/* # Turborepo .turbo/ # generated by bob lib/ +/example/ios/CryptoRsaExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +/example/ios/CryptoRsaExample.xcworkspace/contents.xcworkspacedata +/example/ios/.xcode.env.local diff --git a/example/ios/CryptoRsaExample.xcodeproj/project.pbxproj b/example/ios/CryptoRsaExample.xcodeproj/project.pbxproj index b4b60fa..740b070 100644 --- a/example/ios/CryptoRsaExample.xcodeproj/project.pbxproj +++ b/example/ios/CryptoRsaExample.xcodeproj/project.pbxproj @@ -36,7 +36,7 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = CryptoRsaExample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = CryptoRsaExample/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = CryptoRsaExample/main.m; sourceTree = ""; }; - 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = CryptoRsaExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = CryptoRsaExample/PrivacyInfo.xcprivacy; sourceTree = ""; }; 19F6CBCC0A4E27FBF8BF4A61 /* libPods-CryptoRsaExample-CryptoRsaExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-CryptoRsaExample-CryptoRsaExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 3B4392A12AC88292D35C810B /* Pods-CryptoRsaExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CryptoRsaExample.debug.xcconfig"; path = "Target Support Files/Pods-CryptoRsaExample/Pods-CryptoRsaExample.debug.xcconfig"; sourceTree = ""; }; 5709B34CF0A7D63546082F79 /* Pods-CryptoRsaExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CryptoRsaExample.release.xcconfig"; path = "Target Support Files/Pods-CryptoRsaExample/Pods-CryptoRsaExample.release.xcconfig"; sourceTree = ""; }; @@ -517,6 +517,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -544,6 +545,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CXX = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; @@ -563,6 +565,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = ""; + LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -582,7 +586,13 @@ "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; + USE_HERMES = true; }; name = Debug; }; @@ -590,6 +600,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -617,6 +628,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + CXX = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; @@ -629,6 +641,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = ""; + LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -647,7 +661,13 @@ "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; + USE_HERMES = true; VALIDATE_PRODUCT = YES; }; name = Release; diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock new file mode 100644 index 0000000..face276 --- /dev/null +++ b/example/ios/Podfile.lock @@ -0,0 +1,1426 @@ +PODS: + - boost (1.83.0) + - DoubleConversion (1.1.6) + - FBLazyVector (0.74.0) + - fmt (9.1.0) + - glog (0.3.5) + - hermes-engine (0.74.0): + - hermes-engine/Pre-built (= 0.74.0) + - hermes-engine/Pre-built (0.74.0) + - RCT-Folly (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Default (= 2024.01.01.00) + - RCT-Folly/Default (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (2024.01.01.00): + - boost + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCTDeprecation (0.74.0) + - RCTRequired (0.74.0) + - RCTTypeSafety (0.74.0): + - FBLazyVector (= 0.74.0) + - RCTRequired (= 0.74.0) + - React-Core (= 0.74.0) + - React (0.74.0): + - React-Core (= 0.74.0) + - React-Core/DevSupport (= 0.74.0) + - React-Core/RCTWebSocket (= 0.74.0) + - React-RCTActionSheet (= 0.74.0) + - React-RCTAnimation (= 0.74.0) + - React-RCTBlob (= 0.74.0) + - React-RCTImage (= 0.74.0) + - React-RCTLinking (= 0.74.0) + - React-RCTNetwork (= 0.74.0) + - React-RCTSettings (= 0.74.0) + - React-RCTText (= 0.74.0) + - React-RCTVibration (= 0.74.0) + - React-callinvoker (0.74.0) + - React-Codegen (0.74.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-Core (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.0) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/CoreModulesHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/Default (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/DevSupport (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.0) + - React-Core/RCTWebSocket (= 0.74.0) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTActionSheetHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTAnimationHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTBlobHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTImageHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTLinkingHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTNetworkHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTSettingsHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTTextHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTVibrationHeaders (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-Core/RCTWebSocket (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.0) + - React-cxxreact + - React-featureflags + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.7.0) + - Yoga + - React-CoreModules (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety (= 0.74.0) + - React-Codegen + - React-Core/CoreModulesHeaders (= 0.74.0) + - React-jsi (= 0.74.0) + - React-jsinspector + - React-NativeModulesApple + - React-RCTBlob + - React-RCTImage (= 0.74.0) + - ReactCommon + - SocketRocket (= 0.7.0) + - React-cxxreact (0.74.0): + - boost (= 1.83.0) + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.0) + - React-debug (= 0.74.0) + - React-jsi (= 0.74.0) + - React-jsinspector + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - React-runtimeexecutor (= 0.74.0) + - React-debug (0.74.0) + - React-Fabric (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/animations (= 0.74.0) + - React-Fabric/attributedstring (= 0.74.0) + - React-Fabric/componentregistry (= 0.74.0) + - React-Fabric/componentregistrynative (= 0.74.0) + - React-Fabric/components (= 0.74.0) + - React-Fabric/core (= 0.74.0) + - React-Fabric/imagemanager (= 0.74.0) + - React-Fabric/leakchecker (= 0.74.0) + - React-Fabric/mounting (= 0.74.0) + - React-Fabric/scheduler (= 0.74.0) + - React-Fabric/telemetry (= 0.74.0) + - React-Fabric/templateprocessor (= 0.74.0) + - React-Fabric/textlayoutmanager (= 0.74.0) + - React-Fabric/uimanager (= 0.74.0) + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/components/inputaccessory (= 0.74.0) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0) + - React-Fabric/components/modal (= 0.74.0) + - React-Fabric/components/rncore (= 0.74.0) + - React-Fabric/components/root (= 0.74.0) + - React-Fabric/components/safeareaview (= 0.74.0) + - React-Fabric/components/scrollview (= 0.74.0) + - React-Fabric/components/text (= 0.74.0) + - React-Fabric/components/textinput (= 0.74.0) + - React-Fabric/components/unimplementedview (= 0.74.0) + - React-Fabric/components/view (= 0.74.0) + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/inputaccessory (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/modal (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/rncore (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/safeareaview (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/scrollview (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/text (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/textinput (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/unimplementedview (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric/core (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/imagemanager (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/leakchecker (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/mounting (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/scheduler (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/telemetry (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/templateprocessor (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/textlayoutmanager (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/uimanager + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-FabricImage (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired (= 0.74.0) + - RCTTypeSafety (= 0.74.0) + - React-Fabric + - React-graphics + - React-ImageManager + - React-jsi + - React-jsiexecutor (= 0.74.0) + - React-logger + - React-rendererdebug + - React-utils + - ReactCommon + - Yoga + - React-featureflags (0.74.0) + - React-graphics (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core/Default (= 0.74.0) + - React-utils + - React-hermes (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.0) + - React-jsi + - React-jsiexecutor (= 0.74.0) + - React-jsinspector + - React-perflogger (= 0.74.0) + - React-runtimeexecutor + - React-ImageManager (0.74.0): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-graphics + - React-rendererdebug + - React-utils + - React-jserrorhandler (0.74.0): + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-debug + - React-jsi + - React-Mapbuffer + - React-jsi (0.74.0): + - boost (= 1.83.0) + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-jsiexecutor (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.0) + - React-jsi (= 0.74.0) + - React-jsinspector + - React-perflogger (= 0.74.0) + - React-jsinspector (0.74.0): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-featureflags + - React-jsi + - React-runtimeexecutor (= 0.74.0) + - React-jsitracing (0.74.0): + - React-jsi + - React-logger (0.74.0): + - glog + - React-Mapbuffer (0.74.0): + - glog + - React-debug + - react-native-crypto-rsa (0.1.7): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-nativeconfig (0.74.0) + - React-NativeModulesApple (0.74.0): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-jsinspector + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.74.0) + - React-RCTActionSheet (0.74.0): + - React-Core/RCTActionSheetHeaders (= 0.74.0) + - React-RCTAnimation (0.74.0): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTAppDelegate (0.74.0): + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-CoreModules + - React-debug + - React-Fabric + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCommon + - React-RCTBlob (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-Codegen + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-jsinspector + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTFabric (0.74.0): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-jsinspector + - React-nativeconfig + - React-RCTImage + - React-RCTText + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTImage (0.74.0): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTLinking (0.74.0): + - React-Codegen + - React-Core/RCTLinkingHeaders (= 0.74.0) + - React-jsi (= 0.74.0) + - React-NativeModulesApple + - ReactCommon + - ReactCommon/turbomodule/core (= 0.74.0) + - React-RCTNetwork (0.74.0): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTSettings (0.74.0): + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTText (0.74.0): + - React-Core/RCTTextHeaders (= 0.74.0) + - Yoga + - React-RCTVibration (0.74.0): + - RCT-Folly (= 2024.01.01.00) + - React-Codegen + - React-Core/RCTVibrationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-rendererdebug (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-rncore (0.74.0) + - React-RuntimeApple (0.74.0): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-utils + - React-RuntimeCore (0.74.0): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-cxxreact + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - React-runtimeexecutor (0.74.0): + - React-jsi (= 0.74.0) + - React-RuntimeHermes (0.74.0): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-featureflags + - React-hermes + - React-jsi + - React-jsinspector + - React-jsitracing + - React-nativeconfig + - React-RuntimeCore + - React-utils + - React-runtimescheduler (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-featureflags + - React-jsi + - React-rendererdebug + - React-runtimeexecutor + - React-utils + - React-utils (0.74.0): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-debug + - React-jsi (= 0.74.0) + - ReactCommon (0.74.0): + - ReactCommon/turbomodule (= 0.74.0) + - ReactCommon/turbomodule (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.0) + - React-cxxreact (= 0.74.0) + - React-jsi (= 0.74.0) + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - ReactCommon/turbomodule/bridging (= 0.74.0) + - ReactCommon/turbomodule/core (= 0.74.0) + - ReactCommon/turbomodule/bridging (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.0) + - React-cxxreact (= 0.74.0) + - React-jsi (= 0.74.0) + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - ReactCommon/turbomodule/core (0.74.0): + - DoubleConversion + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.0) + - React-cxxreact (= 0.74.0) + - React-debug (= 0.74.0) + - React-jsi (= 0.74.0) + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - React-utils (= 0.74.0) + - SocketRocket (0.7.0) + - Yoga (0.0.0) + +DEPENDENCIES: + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Codegen (from `build/generated/ios`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - react-native-crypto-rsa (from `../..`) + - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - SocketRocket + +EXTERNAL SOURCES: + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :tag: hermes-2024-02-20-RNv0.74.0-999cfd9979b5f57b1269119679ab8cdf60897de9 + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" + RCTRequired: + :path: "../node_modules/react-native/Libraries/Required" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-callinvoker: + :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Codegen: + :path: build/generated/ios + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-debug: + :path: "../node_modules/react-native/ReactCommon/react/debug" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-FabricImage: + :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jserrorhandler: + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../node_modules/react-native/ReactCommon" + react-native-crypto-rsa: + :path: "../.." + React-nativeconfig: + :path: "../node_modules/react-native/ReactCommon" + React-NativeModulesApple: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTAppDelegate: + :path: "../node_modules/react-native/Libraries/AppDelegate" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTFabric: + :path: "../node_modules/react-native/React" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + React-rendererdebug: + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-rncore: + :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimescheduler: + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-utils: + :path: "../node_modules/react-native/ReactCommon/react/utils" + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + boost: d3f49c53809116a5d38da093a8aa78bf551aed09 + DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 + FBLazyVector: 026c8f4ae67b06e088ae01baa2271ef8a26c0e8c + fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 + glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 + hermes-engine: 6eae7edb2f563ee41d7c1f91f4f2e57c26d8a5c3 + RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df + RCTDeprecation: 3ca8b6c36bfb302e1895b72cfe7db0de0c92cd47 + RCTRequired: 9fc183af555fd0c89a366c34c1ae70b7e03b1dc5 + RCTTypeSafety: db1dd5ad1081a5e160d30bb29ef922693d5ac4b1 + React: 8650d592d90b99097504b8dcfebab883972aed71 + React-callinvoker: 6bb8b399ab8cec59e52458c3a592aa1fca130b68 + React-Codegen: 7014b8564cb45f51d01c950256456e20f679d42e + React-Core: 119ddf031a18926c2f59849bedcc83c1ba347419 + React-CoreModules: 087c24b785afc79d29d23bffe7b02f79bb00cf76 + React-cxxreact: 67a110c97ed6a53b393be3c90fc3f0b482770bd1 + React-debug: 41175f3e30dfa8af6eab2631261e1eac26307f9f + React-Fabric: 235d71c7d7973fb5c3f099f2962d6b5362be6107 + React-FabricImage: 44f4ee8c9331688ab5e907a40cbd49010b05e687 + React-featureflags: 5e7e78c607661fe7f72bc38c6f03736e0876753a + React-graphics: 354adf8693bf849e696bf5096abc8cdc22c78ab4 + React-hermes: 17c369e15cfb535d7bc880d432e0e291c81d10d9 + React-ImageManager: 74e0898e24b12c45c40019b8558a1310d0b2a47c + React-jserrorhandler: 33cb327f5c6e1571b362f1a9c762ff839a5adb15 + React-jsi: 1e0be0c7526a8fdd3b9e8c086bddcddbad263cd5 + React-jsiexecutor: 04c1e790290e8cc3cd18e59c9cc5bdd18af325ef + React-jsinspector: 5daae7b6729d84bd61026899a6f664bdcff3ac28 + React-jsitracing: 36a2bbc272300313653d980de5ab700ec86c534a + React-logger: 03f2f7b955cfe24593a2b8c9705c23e142d1ad24 + React-Mapbuffer: 5e05d78fe6505f4a054b86f415733d4ad02dd314 + react-native-crypto-rsa: 95e66a073cab67c2a0308c05eb56f88cc45c3035 + React-nativeconfig: 951ec32f632e81cbd7d40aebb3211313251c092e + React-NativeModulesApple: 0b3a42ca90069119ef79d8b2327d01441d71abd4 + React-perflogger: 271f1111779fef70f9502d1d38da5132e5585230 + React-RCTActionSheet: 5d6fb9adb11ab1bfbce6695a2b785767e4658c53 + React-RCTAnimation: 86ace32c56e69b3822e7e5184ea83a79d47fc7b9 + React-RCTAppDelegate: 74b45c4e3c1c23db88385d74cf4f5a8500694527 + React-RCTBlob: fb91c62a549f004e251235c65c665c6890a923a3 + React-RCTFabric: af6b9bc4aa9dfa0af1a1bcf5d8e5c5b1f17ae99c + React-RCTImage: b482f07cfdbe8e413edbf9d85953cecdb569472c + React-RCTLinking: fbd73a66cab34df69b2389c17f200e4722890fd9 + React-RCTNetwork: fbdd716fbd6e53feb6d8e00eeb85e8184ad42ac8 + React-RCTSettings: 11c3051b965593988298a3f5fb39e23bf6f7df9f + React-RCTText: f240b4d39c36c295204d29e7634a2fac450b6d29 + React-RCTVibration: 1750f80b39e1ad9b4f509f4fdf19a803f7ab0d38 + React-rendererdebug: a89ffa25c7670de8f22e0b322dfdd8333bc0d126 + React-rncore: a3ab9e7271a5c692918e2a483beb900ff0a51169 + React-RuntimeApple: cdc563e811785f675925032d3bc4092a2aaa0b82 + React-RuntimeCore: f4af3a86a6a69d31721067f17196a582da25d2fc + React-runtimeexecutor: 4471221991b6e518466a0422fbeb2158c07c36e1 + React-RuntimeHermes: 3d9f53ac3330bb71d42f2acb9a3061a0b992be5c + React-runtimescheduler: 7fe561d179b97cecd0c2bec0bbd08f9fd8581c26 + React-utils: f013537c3371270d2095bff1d594d00d4bc9261b + ReactCommon: 2cde697fd80bd31da1d6448d25a5803088585219 + SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d + Yoga: 56f906bf6c11c931588191dde1229fd3e4e3d557 + +PODFILE CHECKSUM: 0043c521fcda6796fb119c27703dd67c1a2fa2f0 + +COCOAPODS: 1.14.3 diff --git a/example/src/App.tsx b/example/src/App.tsx index b42a055..fbc0f4c 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -11,13 +11,24 @@ export default function App() { useEffect(() => { (async () => { - const { publicKey } = await RNCryptoRsa.init(); - setPublicString(publicKey); - const encryptBase64String = await RNCryptoRsa.encrypt( - 'hello world', - publicKey - ); - console.log('@encryptBase64String : ', encryptBase64String); + try { + const { publicKey } = await RNCryptoRsa.init(); + setPublicString(publicKey); + console.log('@publicKey : ', publicKey); + // console.log('privateKey : ', privateKey); + const encryptBase64String = await RNCryptoRsa.encrypt( + 'hello world', + publicKey + ); + console.log('@encryptBase64String : ', encryptBase64String); + RNCryptoRsa.decrypt(encryptBase64String) + .then((rrr) => { + console.log('@decrypt String : ', rrr); + }) + .catch(console.error); + } catch (e) { + console.error('error : ', e); + } })(); }, []); diff --git a/ios/CryptoRsa.mm b/ios/CryptoRsa.mm index 2087157..385e62b 100644 --- a/ios/CryptoRsa.mm +++ b/ios/CryptoRsa.mm @@ -2,7 +2,26 @@ @interface RCT_EXTERN_MODULE(CryptoRsa, NSObject) -RCT_EXTERN_METHOD(multiply:(float)a withB:(float)b + +RCT_EXTERN_METHOD(generateKeys:(int)keySize + withResolver:(RCTPromiseResolveBlock)resolve + withRejecter:(RCTPromiseRejectBlock)reject) + +RCT_EXTERN_METHOD(getPrivateKey:(RCTPromiseResolveBlock)resolve + withRejecter:(RCTPromiseRejectBlock)reject) + +RCT_EXTERN_METHOD(getPublicKey:(RCTPromiseResolveBlock)resolve + withRejecter:(RCTPromiseRejectBlock)reject) + +RCT_EXTERN_METHOD(encrypt:(NSString *)message withPublicKey:(NSString *)publicKey + withResolver:(RCTPromiseResolveBlock)resolve + withRejecter:(RCTPromiseRejectBlock)reject) + +RCT_EXTERN_METHOD(decrypt:(NSString *)encryptedDataString + withResolver:(RCTPromiseResolveBlock)resolve + withRejecter:(RCTPromiseRejectBlock)reject) + +RCT_EXTERN_METHOD(getSHA512Text:(NSString *)pemString withResolver:(RCTPromiseResolveBlock)resolve withRejecter:(RCTPromiseRejectBlock)reject) diff --git a/ios/CryptoRsa.swift b/ios/CryptoRsa.swift index cb17e95..b78e3ec 100644 --- a/ios/CryptoRsa.swift +++ b/ios/CryptoRsa.swift @@ -1,8 +1,228 @@ + +import Foundation +import CommonCrypto +import Security + +extension String { + + public var sha512: String { + let data = self.data(using: .utf8) ?? Data() + var digest = [UInt8](repeating: 0, count: Int(CC_SHA512_DIGEST_LENGTH)) + data.withUnsafeBytes { + _ = CC_SHA512($0.baseAddress, CC_LONG(data.count), &digest) + } + return digest.map({ String(format: "%02hhx", $0) }).joined(separator: "") + } +} + @objc(CryptoRsa) class CryptoRsa: NSObject { + let publicTag = "ko.dev.hong.rn.public.key" + let privateTag = "ko.dev.hong.rn.private.key" + let secKeyAlgorithm: SecKeyAlgorithm = .rsaEncryptionPKCS1 + + struct RuntimeError: LocalizedError { + let description: String + + init(_ description: String) { + self.description = description + } + + var errorDescription: String? { + description + } + } + + func getKeyFromKeychain(tag: String) -> SecKey? { + let query: [String: Any] = [ + kSecClass as String: kSecClassKey, + kSecAttrApplicationTag as String: tag, + kSecAttrKeyType as String: kSecAttrKeyTypeRSA, + kSecReturnRef as String: true + ] + + var item: CFTypeRef? + let status = SecItemCopyMatching(query as CFDictionary, &item) + guard status == errSecSuccess else { + print("Error retrieving key from keychain: \(status)") + return nil + } + + return (item as! SecKey) + } + + func base64EncodeString(_ data: Data) -> String { + return data.base64EncodedString(options: .lineLength64Characters) + } + + func base64Decode(_ string: String) -> Data? { + return Data(base64Encoded: string,options: .ignoreUnknownCharacters) + } + + func appendPrefixSuffixTo(_ string: String, prefix: String, suffix: String) -> String { + return "\(prefix)\(string)\(suffix)" + } + + func publicKeyToPemString(_ publicKey: SecKey) -> String { + var error: Unmanaged? + // client public key to pem string + guard let keyData = SecKeyCopyExternalRepresentation(publicKey, &error) as Data? else { + print("Failed to get external representation of public key: \(error?.takeRetainedValue().localizedDescription ?? "Unknown error")") + return "" + } + let finalPemString = base64EncodeString(keyData) + let clientPublicKeyString = appendPrefixSuffixTo(finalPemString, prefix: "-----BEGIN PUBLIC KEY-----\r\n", suffix: "\r\n-----END PUBLIC KEY-----\r\n") + return clientPublicKeyString + } + + func privateKeyToPemString(_ privateKey: SecKey) -> String { + var error: Unmanaged? + // client public key to pem string + guard let keyData = SecKeyCopyExternalRepresentation(privateKey, &error) as Data? else { + print("Failed to get external representation of private Key: \(error?.takeRetainedValue().localizedDescription ?? "Unknown error")") + return "" + } + let finalPemString = base64EncodeString(keyData) + let clientPrivateKeyString = appendPrefixSuffixTo(finalPemString, prefix: "-----BEGIN PRIVATE KEY-----\r\n", suffix: "\r\n-----END PRIVATE KEY-----\r\n") + return clientPrivateKeyString + } + + func pemStringToPublicKey(_ pemString: String) -> SecKey? { + var pemCleaned = pemString + pemCleaned = pemCleaned.replacingOccurrences(of: "-----BEGIN PUBLIC KEY-----", with: "") + pemCleaned = pemCleaned.replacingOccurrences(of: "-----END PUBLIC KEY-----", with: "") + pemCleaned = pemCleaned.replacingOccurrences(of: "\r\n", with: "") + pemCleaned = pemCleaned.replacingOccurrences(of: "\n", with: "") + + guard let data = base64Decode(pemCleaned) else { + print("base64 decode faild") + return nil + } + + let options: [String: Any] = [ + kSecAttrKeyType as String: kSecAttrKeyTypeRSA, + kSecAttrKeyClass as String: kSecAttrKeyClassPublic, + ] + + var error: Unmanaged? + guard let publicKey = SecKeyCreateWithData(data as CFData, options as CFDictionary, &error) else { + if let error = error { + print("SecKeyCreateWithData failed with error: \(error.takeRetainedValue())") + } else { + print("SecKeyCreateWithData failed.") + } + return nil + } + + return publicKey + } + + @objc(generateKeys:withResolver:withRejecter:) + func generateKeys(keySize: Int,resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void { + let access = SecAccessControlCreateWithFlags(nil, // Use the default allocator + kSecAttrAccessibleWhenUnlockedThisDeviceOnly, + .privateKeyUsage, + nil) // Ignore any error + + let publicKeyParameters: [String: AnyObject] = [ + kSecAttrIsPermanent as String: true as AnyObject, + kSecAttrAccessControl as String: access!, + kSecAttrApplicationTag as String: publicTag.data(using: .utf8)! as AnyObject + ] + let privateKeyParameters: [String: AnyObject] = [ + kSecAttrIsPermanent as String: true as AnyObject, + kSecAttrAccessControl as String: access!, + kSecAttrApplicationTag as String: privateTag.data(using: .utf8)! as AnyObject + ] + let parameters: [String: AnyObject] = [ + kSecAttrKeyType as String: kSecAttrKeyTypeRSA, + kSecAttrKeySizeInBits as String: keySize as AnyObject, + kSecPublicKeyAttrs as String: publicKeyParameters as AnyObject, + kSecPrivateKeyAttrs as String: privateKeyParameters as AnyObject + ] + + var publicKey, privateKey: SecKey? + let status = SecKeyGeneratePair(parameters as CFDictionary, &publicKey, &privateKey) + + guard status == errSecSuccess else { + print("Error generating key pair: \(status)") + return reject(nil, nil, RuntimeError("Error generating key pair: \(status)")) + } + let keys = ["publicKey": publicKeyToPemString(publicKey!), "privateKey": privateKeyToPemString(privateKey!)] + resolve(keys) + } + + @objc(encrypt:withPublicKey:withResolver:withRejecter:) + func encrypt(message: String, pemString: String,resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void { + guard let data = message.data(using: .utf8) else { return reject(nil,nil,RuntimeError("Data is null")) } + + guard let publicKey = pemStringToPublicKey(pemString) else { + return reject(nil,nil,RuntimeError("pemStringTopublicKey is null")) + } + + guard SecKeyIsAlgorithmSupported(publicKey, .encrypt, secKeyAlgorithm) else { return reject(nil,nil,RuntimeError("SecKeyIsAlgorithm not supported")) } + var error: Unmanaged? + guard let cipherData = SecKeyCreateEncryptedData(publicKey, + secKeyAlgorithm, + data as CFData, + &error) as Data? else { + print("Encryption error: \((error?.takeRetainedValue())!)") + return reject(nil, nil, RuntimeError("Encryption error: \((error?.takeRetainedValue())!)")) + } + + resolve(base64EncodeString(cipherData)) + } + + @objc(decrypt:withResolver:withRejecter:) + func decrypt(encryptedDataString: String, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void { + guard let encryptedData = base64Decode(encryptedDataString) else { + print("base64Decode Faild") + return reject(nil,nil,RuntimeError("base64Decode Faild")) + } + guard let loadedPrivateKey = getKeyFromKeychain(tag: privateTag ) else { + print("Load Faild privateKey in KeyChain ") + return reject(nil,nil,RuntimeError("Keychain Load failed")) + } + print("Load privateKey in KeyChain :", loadedPrivateKey) + + guard SecKeyIsAlgorithmSupported(loadedPrivateKey, .decrypt, secKeyAlgorithm) else { return reject(nil,nil,RuntimeError("SecKeyIsAlgorithm not supported")) } + var error: Unmanaged? + + guard let clearData = SecKeyCreateDecryptedData(loadedPrivateKey, + secKeyAlgorithm, + encryptedData as CFData, + &error) as Data? else { + print("Decryption error: \((error?.takeRetainedValue())!)") + return reject(nil,nil,RuntimeError("SecKeyIsAlgorithm not supported")) + + } + + resolve(String(data: clearData, encoding: .utf8)) + } + + @objc(getSHA512Text:withResolver:withRejecter:) + func getSHA512Text(pemString: String, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) { + let sha512String = pemString.sha512 + resolve(sha512String) + } + + @objc(getPrivateKey:withRejecter:) + func getPrivateKey(resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) { + guard let loadedPrivateKey = getKeyFromKeychain(tag: privateTag ) else { + print("Load Faild privateKey in KeyChain ") + return reject(nil,nil,RuntimeError("Keychain Load failed")) + } + print("Load privateKey in KeyChain :", loadedPrivateKey) + resolve(loadedPrivateKey) + } - @objc(multiply:withB:withResolver:withRejecter:) - func multiply(a: Float, b: Float, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void { - resolve(a*b) - } + @objc(getPublicKey:withRejecter:) + func getPublicKey(resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) { + guard let loadedPublicKey = getKeyFromKeychain(tag: publicTag ) else { + print("Load Faild PublicKey in KeyChain ") + return reject(nil,nil,RuntimeError("Keychain Load failed")) + } + print("Load privateKey in KeyChain :", loadedPublicKey) + resolve(loadedPublicKey) + } } diff --git a/src/index.tsx b/src/index.tsx index e9d307d..ec5b567 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -19,8 +19,10 @@ const CryptoRsa = NativeModules.CryptoRsa class CryptoRsaClass { private instance = CryptoRsa; - async init(keySize: number = 2048): Promise<{ publicKey: string }> { - return await this.instance.init(keySize); + async init( + keySize: number = 2048 + ): Promise<{ publicKey: string; privateKey?: string }> { + return await this.instance.generateKeys(keySize); } async getPrivateKey(): Promise {