freerasp-react-native 3.8.1 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -1
- package/README.md +20 -556
- package/android/build.gradle +1 -1
- package/android/proguard-rules.pro +2 -1
- package/android/src/main/java/com/freeraspreactnative/FreeraspReactNativeModule.kt +19 -42
- package/android/src/main/java/com/freeraspreactnative/FreeraspThreatHandler.kt +3 -0
- package/android/src/main/java/com/freeraspreactnative/Utils.kt +40 -0
- package/android/src/main/java/com/freeraspreactnative/exceptions/TalsecException.kt +3 -0
- package/example/src/App.tsx +1 -1
- package/ios/FreeraspReactNative.swift +1 -1
- package/ios/TalsecRuntime.xcframework/Info.plist +9 -5
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeResources +105 -105
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeSignature +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +22 -5
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +57 -43
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curlver.h +4 -4
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/mprintf.h +13 -5
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +18 -4
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/system.h +1 -11
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +5 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.abi.json +217 -2211
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.private.swiftinterface +3 -3
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftinterface +3 -3
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +44 -10
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +57 -43
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curlver.h +4 -4
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/mprintf.h +13 -5
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +18 -4
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/options.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/system.h +1 -11
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/urlapi.h +5 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.abi.json +220 -2193
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +3 -3
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftinterface +3 -3
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +220 -2193
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +3 -3
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +3 -3
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/_CodeSignature/CodeResources +39 -39
- package/lib/commonjs/index.js +8 -4
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +8 -4
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/plugin/build/index.d.ts +1 -1
- package/src/index.tsx +8 -4
|
@@ -9,6 +9,7 @@ import com.facebook.react.bridge.ReactApplicationContext
|
|
|
9
9
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
10
10
|
import com.facebook.react.bridge.ReactMethod
|
|
11
11
|
import com.facebook.react.bridge.ReadableMap
|
|
12
|
+
import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
|
|
12
13
|
import com.facebook.react.bridge.WritableArray
|
|
13
14
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
14
15
|
|
|
@@ -32,17 +33,18 @@ class FreeraspReactNativeModule(val reactContext: ReactApplicationContext) :
|
|
|
32
33
|
) {
|
|
33
34
|
|
|
34
35
|
try {
|
|
35
|
-
val config =
|
|
36
|
+
val config = buildTalsecConfig(options)
|
|
36
37
|
FreeraspThreatHandler.listener = ThreatListener
|
|
37
38
|
listener.registerListener(reactContext)
|
|
38
|
-
|
|
39
|
+
runOnUiThread {
|
|
40
|
+
Talsec.start(reactContext, config)
|
|
41
|
+
}
|
|
42
|
+
|
|
39
43
|
promise.resolve("freeRASP started")
|
|
40
44
|
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
promise.reject("initializationError", params)
|
|
45
|
+
}
|
|
46
|
+
catch (e: Exception) {
|
|
47
|
+
promise.reject("TalsecInitializationError", e.message, e)
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -85,42 +87,17 @@ class FreeraspReactNativeModule(val reactContext: ReactApplicationContext) :
|
|
|
85
87
|
// Remove upstream listeners, stop unnecessary background tasks
|
|
86
88
|
}
|
|
87
89
|
|
|
88
|
-
private fun
|
|
89
|
-
val androidConfig = config.
|
|
90
|
-
val packageName = androidConfig.
|
|
91
|
-
val certificateHashes =
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
certificateHashes.add(it)
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
val watcherMail = config.getString("watcherMail")
|
|
101
|
-
val alternativeStores = mutableListOf<String>()
|
|
102
|
-
if (androidConfig.hasKey("supportedAlternativeStores")) {
|
|
103
|
-
val stores = androidConfig.getArray("supportedAlternativeStores")!!
|
|
104
|
-
for (i in 0 until stores.size()) {
|
|
105
|
-
// in RN versions < 0.63, getString is nullable
|
|
106
|
-
@Suppress("UNNECESSARY_SAFE_CALL")
|
|
107
|
-
stores.getString(i)?.let {
|
|
108
|
-
alternativeStores.add(it)
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
var isProd = true
|
|
113
|
-
if (config.hasKey("isProd")) {
|
|
114
|
-
isProd = config.getBoolean("isProd")
|
|
115
|
-
}
|
|
90
|
+
private fun buildTalsecConfig(config: ReadableMap): TalsecConfig {
|
|
91
|
+
val androidConfig = config.getMapThrowing("androidConfig")
|
|
92
|
+
val packageName = androidConfig.getStringThrowing("packageName")
|
|
93
|
+
val certificateHashes = androidConfig.getArraySafe("certificateHashes")
|
|
94
|
+
|
|
95
|
+
val talsecBuilder = TalsecConfig.Builder(packageName, certificateHashes)
|
|
96
|
+
.watcherMail(config.getString("watcherMail"))
|
|
97
|
+
.supportedAlternativeStores(androidConfig.getArraySafe("supportedAlternativeStores"))
|
|
98
|
+
.prod(config.getBooleanSafe("isProd"))
|
|
116
99
|
|
|
117
|
-
return
|
|
118
|
-
packageName,
|
|
119
|
-
certificateHashes.toTypedArray(),
|
|
120
|
-
watcherMail,
|
|
121
|
-
alternativeStores.toTypedArray(),
|
|
122
|
-
isProd
|
|
123
|
-
)
|
|
100
|
+
return talsecBuilder.build()
|
|
124
101
|
}
|
|
125
102
|
|
|
126
103
|
companion object {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package com.freeraspreactnative
|
|
2
2
|
|
|
3
|
+
import com.aheaditec.talsec_security.security.api.SuspiciousAppInfo
|
|
3
4
|
import com.aheaditec.talsec_security.security.api.ThreatListener
|
|
4
5
|
|
|
5
6
|
internal object FreeraspThreatHandler : ThreatListener.ThreatDetected, ThreatListener.DeviceState {
|
|
@@ -38,6 +39,8 @@ internal object FreeraspThreatHandler : ThreatListener.ThreatDetected, ThreatLis
|
|
|
38
39
|
listener?.threatDetected(Threat.ObfuscationIssues)
|
|
39
40
|
}
|
|
40
41
|
|
|
42
|
+
override fun onMalwareDetected(p0: MutableList<SuspiciousAppInfo>?) {}
|
|
43
|
+
|
|
41
44
|
override fun onUnlockedDeviceDetected() {
|
|
42
45
|
listener?.threatDetected(Threat.Passcode)
|
|
43
46
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
package com.freeraspreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableArray
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap
|
|
5
|
+
import com.freeraspreactnative.exceptions.TalsecException
|
|
6
|
+
|
|
7
|
+
internal fun ReadableMap.getMapThrowing(key: String): ReadableMap {
|
|
8
|
+
return this.getMap(key) ?: throw TalsecException("Key missing in configuration: $key")
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
internal fun ReadableMap.getStringThrowing(key: String): String {
|
|
12
|
+
return this.getString(key) ?: throw TalsecException("Key missing in configuration: $key")
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
internal fun ReadableMap.getBooleanSafe(key: String, defaultValue: Boolean = true): Boolean {
|
|
16
|
+
if (this.hasKey(key)) {
|
|
17
|
+
return this.getBoolean(key)
|
|
18
|
+
}
|
|
19
|
+
return defaultValue
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
internal fun ReadableArray.toArray(): Array<String> {
|
|
23
|
+
val output = mutableListOf<String>()
|
|
24
|
+
for (i in 0 until this.size()) {
|
|
25
|
+
// in RN versions < 0.63, getString is nullable
|
|
26
|
+
@Suppress("UNNECESSARY_SAFE_CALL")
|
|
27
|
+
this.getString(i)?.let {
|
|
28
|
+
output.add(it)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return output.toTypedArray()
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
internal fun ReadableMap.getArraySafe(key: String): Array<String> {
|
|
35
|
+
if (this.hasKey(key)) {
|
|
36
|
+
val inputArray = this.getArray(key)!!
|
|
37
|
+
return inputArray.toArray()
|
|
38
|
+
}
|
|
39
|
+
return arrayOf()
|
|
40
|
+
}
|
package/example/src/App.tsx
CHANGED
|
@@ -14,7 +14,7 @@ const App = () => {
|
|
|
14
14
|
const config = {
|
|
15
15
|
androidConfig: {
|
|
16
16
|
packageName: 'com.freeraspreactnativeexample',
|
|
17
|
-
certificateHashes: ['
|
|
17
|
+
certificateHashes: ['AKoRuyLMM91E7lX/Zqp3u4jMmd0A7hH/Iqozu0TMVd0='],
|
|
18
18
|
// supportedAlternativeStores: ['storeOne', 'storeTwo'],
|
|
19
19
|
},
|
|
20
20
|
iosConfig: {
|
|
@@ -20,7 +20,7 @@ class FreeraspReactNative: RCTEventEmitter {
|
|
|
20
20
|
try initializeTalsec(talsecConfig: options)
|
|
21
21
|
}
|
|
22
22
|
catch let error as NSError {
|
|
23
|
-
reject("
|
|
23
|
+
reject("TalsecInitializationError", "Could not initialize freeRASP: \(error.domain)", error)
|
|
24
24
|
return
|
|
25
25
|
}
|
|
26
26
|
resolve("freeRASP started")
|
|
@@ -5,31 +5,35 @@
|
|
|
5
5
|
<key>AvailableLibraries</key>
|
|
6
6
|
<array>
|
|
7
7
|
<dict>
|
|
8
|
+
<key>BinaryPath</key>
|
|
9
|
+
<string>TalsecRuntime.framework/TalsecRuntime</string>
|
|
8
10
|
<key>LibraryIdentifier</key>
|
|
9
|
-
<string>ios-
|
|
11
|
+
<string>ios-arm64_x86_64-simulator</string>
|
|
10
12
|
<key>LibraryPath</key>
|
|
11
13
|
<string>TalsecRuntime.framework</string>
|
|
12
14
|
<key>SupportedArchitectures</key>
|
|
13
15
|
<array>
|
|
14
16
|
<string>arm64</string>
|
|
17
|
+
<string>x86_64</string>
|
|
15
18
|
</array>
|
|
16
19
|
<key>SupportedPlatform</key>
|
|
17
20
|
<string>ios</string>
|
|
21
|
+
<key>SupportedPlatformVariant</key>
|
|
22
|
+
<string>simulator</string>
|
|
18
23
|
</dict>
|
|
19
24
|
<dict>
|
|
25
|
+
<key>BinaryPath</key>
|
|
26
|
+
<string>TalsecRuntime.framework/TalsecRuntime</string>
|
|
20
27
|
<key>LibraryIdentifier</key>
|
|
21
|
-
<string>ios-
|
|
28
|
+
<string>ios-arm64</string>
|
|
22
29
|
<key>LibraryPath</key>
|
|
23
30
|
<string>TalsecRuntime.framework</string>
|
|
24
31
|
<key>SupportedArchitectures</key>
|
|
25
32
|
<array>
|
|
26
33
|
<string>arm64</string>
|
|
27
|
-
<string>x86_64</string>
|
|
28
34
|
</array>
|
|
29
35
|
<key>SupportedPlatform</key>
|
|
30
36
|
<string>ios</string>
|
|
31
|
-
<key>SupportedPlatformVariant</key>
|
|
32
|
-
<string>simulator</string>
|
|
33
37
|
</dict>
|
|
34
38
|
</array>
|
|
35
39
|
<key>CFBundlePackageType</key>
|
|
Binary file
|
|
Binary file
|