Skip to content

Commit 9620626

Browse files
authored
feat: add screenshot blocking protection for ios, add external id (freeRASP 4.1.0) (#111)
* feat: add screenshot blocking protection for ios, add external id * fix docs * chore: add condition for screen blocking
1 parent b5cb318 commit 9620626

40 files changed

+1433
-845
lines changed

CHANGELOG.md

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,43 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [4.0.0] - 2024-03-25
8+
## [4.1.0] - 2025-05-15
9+
10+
- iOS SDK version: 6.11.0
11+
- Android SDK version: 15.1.0
12+
13+
### React Native
14+
15+
#### Added
16+
17+
- Added interface for screenshot / screen recording blocking on iOS
18+
- Added interface for external ID storage
19+
20+
### Android
21+
22+
#### Added
23+
24+
- Added externalId to put an integrator-specified custom identifier into the logs.
25+
- Added eventId to the logs, which is unique per each log. It allows traceability of the same log across various systems.
26+
27+
#### Changed
28+
29+
- New root detection checks added
30+
31+
### iOS
32+
33+
#### Added
34+
35+
- Added externalId to put an integrator-specified custom identifier into the logs.
36+
- Added eventId to the logs, which is unique per each log. It allows traceability of the same log across various systems.
37+
- Screen capture protection obscuring app content in screenshots and screen recordings preventing unauthorized content capture. Refer to the freeRASP integration documentation.
38+
39+
#### Fixed
40+
41+
- Resolved an issue with the screen recording detection.
42+
- Resolved an issue that prevented Xcode tests from running correctly.
43+
44+
## [4.0.0] - 2025-03-25
945

1046
- iOS SDK version: 6.9.0
1147
- Android SDK version: 15.0.0
@@ -28,6 +64,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2864
#### Fixed
2965

3066
- ANR issues bug-fixing
67+
3168
### iOS
3269

3370
#### Added
@@ -38,7 +75,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3875

3976
- Deep signing of the OpenSSL binaries.
4077

41-
## [3.14.1] - 2024-03-10
78+
## [3.14.1] - 2025-03-10
4279

4380
- iOS SDK version: 6.8.0
4481
- Android SDK version: 14.0.1
@@ -49,7 +86,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4986

5087
- Take Android targetSdkVersion, compileSdkVersion from plugin only
5188

52-
## [3.14.0] - 2024-03-05
89+
## [3.14.0] - 2025-03-05
5390

5491
- iOS SDK version: 6.8.0
5592
- Android SDK version: 14.0.1

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ dependencies {
9999
implementation "com.facebook.react:react-native:$react_native_version"
100100
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
101101
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
102-
implementation "com.aheaditec.talsec.security:TalsecSecurity-Community-ReactNative:15.0.0"
102+
implementation "com.aheaditec.talsec.security:TalsecSecurity-Community-ReactNative:15.1.0"
103103
}
104104

105105
if (isNewArchitectureEnabled()) {

android/src/main/java/com/freeraspreactnative/FreeraspReactNativeModule.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,21 @@ class FreeraspReactNativeModule(private val reactContext: ReactApplicationContex
185185
}
186186
}
187187

188+
@ReactMethod
189+
fun storeExternalId(
190+
externalId: String, promise: Promise
191+
) {
192+
try {
193+
Talsec.storeExternalId(reactContext, externalId)
194+
promise.resolve("OK - Store external ID")
195+
} catch (e: Exception) {
196+
promise.reject(
197+
"NativePluginError",
198+
"Error during storeExternalId operation in Talsec Native Plugin"
199+
)
200+
}
201+
}
202+
188203
private fun buildTalsecConfig(config: ReadableMap): TalsecConfig {
189204
val androidConfig = config.getMapThrowing("androidConfig")
190205
val packageName = androidConfig.getStringThrowing("packageName")

example/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
"@react-native-material/core": "^1.3.7",
1515
"react": "19.0.0",
1616
"react-native": "0.78.0",
17+
"react-native-alert-notification": "^0.4.2",
18+
"react-native-safe-area-context": "^5.4.0",
1719
"react-native-svg": "^15.11.1"
1820
},
1921
"devDependencies": {
@@ -27,8 +29,8 @@
2729
"@react-native/eslint-config": "0.78.0",
2830
"@react-native/metro-config": "0.78.0",
2931
"@react-native/typescript-config": "0.78.0",
30-
"babel-plugin-module-resolver": "^5.0.2",
3132
"@types/react": "^19.0.0",
33+
"babel-plugin-module-resolver": "^5.0.2",
3234
"eslint-config-prettier": "^10.0.1",
3335
"eslint-plugin-prettier": "^5.2.3",
3436
"metro-react-native-babel-preset": "^0.77.0",

0 commit comments

Comments
 (0)