capacitor-freerasp 2.2.1 → 2.3.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 +71 -0
- package/CapacitorFreerasp.podspec +1 -1
- package/README.md +8 -8
- package/android/build.gradle +1 -1
- package/android/proguard-rules.pro +23 -0
- package/android/src/main/java/com/aheaditec/freerasp/FreeraspPlugin.kt +39 -18
- package/android/src/main/java/com/aheaditec/freerasp/ScreenProtector.kt +24 -2
- package/android/src/main/java/com/aheaditec/freerasp/ThreatHandler.kt +36 -18
- package/android/src/main/java/com/aheaditec/freerasp/events/BaseRaspEvent.kt +7 -0
- package/android/src/main/java/com/aheaditec/freerasp/events/RaspExecutionStateEvent.kt +22 -0
- package/android/src/main/java/com/aheaditec/freerasp/events/ThreatEvent.kt +69 -0
- package/android/src/main/java/com/aheaditec/freerasp/models/CapSuspiciousAppInfo.kt +1 -0
- package/android/src/main/java/com/aheaditec/freerasp/utils/Extensions.kt +1 -0
- package/android/src/main/java/com/aheaditec/freerasp/utils/RandomGenerator.kt +24 -0
- package/android/src/main/java/com/aheaditec/freerasp/utils/Utils.kt +3 -5
- package/dist/esm/api/listeners/raspExecutionState.d.ts +2 -0
- package/dist/esm/api/listeners/raspExecutionState.js +23 -0
- package/dist/esm/api/listeners/raspExecutionState.js.map +1 -0
- package/dist/esm/api/listeners/threat.d.ts +2 -0
- package/dist/esm/api/listeners/threat.js +84 -0
- package/dist/esm/api/listeners/threat.js.map +1 -0
- package/dist/esm/api/methods/capacitor.d.ts +4 -0
- package/dist/esm/api/methods/capacitor.js +11 -0
- package/dist/esm/api/methods/capacitor.js.map +1 -0
- package/dist/esm/api/methods/native.d.ts +6 -0
- package/dist/esm/api/methods/native.js +32 -0
- package/dist/esm/api/methods/native.js.map +1 -0
- package/dist/esm/api/nativeModules.d.ts +2 -0
- package/dist/esm/api/nativeModules.js +3 -0
- package/dist/esm/api/nativeModules.js.map +1 -0
- package/dist/esm/channels/raspExecutionState.d.ts +3 -0
- package/dist/esm/channels/raspExecutionState.js +27 -0
- package/dist/esm/channels/raspExecutionState.js.map +1 -0
- package/dist/esm/channels/threat.d.ts +3 -0
- package/dist/esm/channels/threat.js +34 -0
- package/dist/esm/channels/threat.js.map +1 -0
- package/dist/esm/index.d.ts +7 -12
- package/dist/esm/index.js +7 -158
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/raspExecutionState.d.ts +6 -0
- package/dist/esm/models/raspExecutionState.js +10 -0
- package/dist/esm/models/raspExecutionState.js.map +1 -0
- package/dist/esm/models/threat.d.ts +26 -0
- package/dist/esm/{definitions.js → models/threat.js} +7 -3
- package/dist/esm/models/threat.js.map +1 -0
- package/dist/esm/{definitions.d.ts → types/types.d.ts} +37 -44
- package/dist/esm/types/types.js +2 -0
- package/dist/esm/types/types.js.map +1 -0
- package/dist/esm/utils/malware.d.ts +3 -0
- package/dist/esm/utils/malware.js +22 -0
- package/dist/esm/utils/malware.js.map +1 -0
- package/dist/esm/utils/utils.d.ts +3 -0
- package/dist/esm/utils/utils.js +12 -0
- package/dist/esm/utils/utils.js.map +1 -0
- package/dist/plugin.cjs.js +153 -78
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +153 -78
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/FreeraspPlugin.m +2 -0
- package/ios/Plugin/FreeraspPlugin.swift +50 -75
- package/ios/Plugin/Info.plist +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeResources +100 -298
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeSignature +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +7 -2
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +380 -281
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curlver.h +5 -6
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/easy.h +4 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/header.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/mprintf.h +11 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +62 -22
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +2 -2
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/system.h +76 -164
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/typecheck-gcc.h +947 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +5 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/websockets.h +17 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.abi.json +233 -528
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.private.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +14 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +380 -281
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curlver.h +5 -6
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/easy.h +4 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/header.h +1 -1
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/mprintf.h +11 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +62 -22
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/options.h +2 -2
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/system.h +76 -164
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/typecheck-gcc.h +947 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/urlapi.h +5 -4
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/websockets.h +17 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Info.plist +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.abi.json +233 -528
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +233 -528
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +7 -3
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/TalsecRuntime +0 -0
- package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/_CodeSignature/CodeResources +56 -45
- package/ios/Plugin/models/RaspExecutionStates.swift +15 -0
- package/ios/Plugin/models/SecurityThreat.swift +40 -0
- package/ios/Plugin/utils/EventIdentifiers.swift +17 -0
- package/ios/Plugin/utils/RandomGenerator.swift +23 -0
- package/ios/Plugin/utils/Utils.swift +32 -0
- package/package.json +15 -10
- package/android/src/main/java/com/aheaditec/freerasp/Threat.kt +0 -58
- package/dist/esm/definitions.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -2
- package/dist/esm/utils.js +0 -8
- package/dist/esm/utils.js.map +0 -1
- package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
|
@@ -6,12 +6,21 @@ import TalsecRuntime
|
|
|
6
6
|
public class FreeraspPlugin: CAPPlugin {
|
|
7
7
|
|
|
8
8
|
public static var shared: FreeraspPlugin?
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
|
|
10
|
+
static var threatCache = Set<SecurityThreat>()
|
|
11
|
+
static var executionStateCache = Set<RaspExecutionStates>()
|
|
12
12
|
|
|
13
13
|
override public func load() {
|
|
14
14
|
FreeraspPlugin.shared = self
|
|
15
|
+
FreeraspPlugin.flushCache()
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
private static func flushCache() {
|
|
19
|
+
FreeraspPlugin.threatCache.forEach(FreeraspPlugin.dispatchEvent)
|
|
20
|
+
FreeraspPlugin.threatCache.removeAll()
|
|
21
|
+
|
|
22
|
+
FreeraspPlugin.executionStateCache.forEach(FreeraspPlugin.dispatchRaspExecutionStateEvent)
|
|
23
|
+
FreeraspPlugin.executionStateCache.removeAll()
|
|
15
24
|
}
|
|
16
25
|
|
|
17
26
|
/// Runs Talsec with given configuration
|
|
@@ -67,29 +76,38 @@ public class FreeraspPlugin: CAPPlugin {
|
|
|
67
76
|
}
|
|
68
77
|
}
|
|
69
78
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
|
|
80
|
+
static func dispatchEvent(securityThreat: SecurityThreat) {
|
|
81
|
+
if let instance = FreeraspPlugin.shared {
|
|
82
|
+
instance.notifyListeners(EventIdentifiers.threatChannelName, data: [EventIdentifiers.threatChannelKey: securityThreat.callbackIdentifier], retainUntilConsumed: true)
|
|
83
|
+
} else {
|
|
84
|
+
FreeraspPlugin.threatCache.insert(securityThreat)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static func dispatchRaspExecutionStateEvent(event: RaspExecutionStates) -> Void {
|
|
89
|
+
if let instance = FreeraspPlugin.shared {
|
|
90
|
+
instance.notifyListeners(EventIdentifiers.raspExecutionStateChannelName, data: [EventIdentifiers.raspExecutionStateChannelKey: event.callbackIdentifier], retainUntilConsumed: true)
|
|
91
|
+
} else {
|
|
92
|
+
FreeraspPlugin.executionStateCache.insert(event)
|
|
84
93
|
}
|
|
85
94
|
}
|
|
86
95
|
|
|
87
96
|
/**
|
|
88
|
-
* Method to setup the message passing between native and
|
|
97
|
+
* Method to setup the message passing between native and Capacitor
|
|
89
98
|
*/
|
|
90
99
|
@objc func getThreatChannelData(_ call: CAPPluginCall) -> Void {
|
|
91
100
|
call.resolve([
|
|
92
|
-
"ids": [threatChannelName, threatChannelKey]
|
|
101
|
+
"ids": [EventIdentifiers.threatChannelName, EventIdentifiers.threatChannelKey]
|
|
102
|
+
])
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Method to setup the message passing between native and Capacitor
|
|
107
|
+
*/
|
|
108
|
+
@objc func getRaspExecutionStateChannelData(_ call: CAPPluginCall) -> Void {
|
|
109
|
+
call.resolve([
|
|
110
|
+
"ids": [EventIdentifiers.raspExecutionStateChannelName, EventIdentifiers.raspExecutionStateChannelKey]
|
|
93
111
|
])
|
|
94
112
|
}
|
|
95
113
|
|
|
@@ -98,9 +116,15 @@ public class FreeraspPlugin: CAPPlugin {
|
|
|
98
116
|
*/
|
|
99
117
|
@objc func getThreatIdentifiers(_ call: CAPPluginCall) -> Void {
|
|
100
118
|
call.resolve([
|
|
101
|
-
"ids":
|
|
119
|
+
"ids": getThreatIdentifiersList()
|
|
102
120
|
])
|
|
103
121
|
}
|
|
122
|
+
|
|
123
|
+
@objc func getRaspExecutionStateIdentifiers(_ call: CAPPluginCall) -> Void {
|
|
124
|
+
call.resolve([
|
|
125
|
+
"ids": getRaspExecutionStateIdentifiersList()
|
|
126
|
+
])
|
|
127
|
+
}
|
|
104
128
|
|
|
105
129
|
/**
|
|
106
130
|
* We never send an invalid callback over our channel.
|
|
@@ -110,16 +134,6 @@ public class FreeraspPlugin: CAPPlugin {
|
|
|
110
134
|
abort()
|
|
111
135
|
}
|
|
112
136
|
|
|
113
|
-
private func getThreatIdentifiers() -> [Int] {
|
|
114
|
-
return SecurityThreat.allCases
|
|
115
|
-
.filter {
|
|
116
|
-
threat in threat.rawValue != "passcodeChange"
|
|
117
|
-
}
|
|
118
|
-
.map {
|
|
119
|
-
threat in threat.callbackIdentifier
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
137
|
private func initializeTalsec(talsecConfig: JSObject) throws {
|
|
124
138
|
guard let iosConfig = talsecConfig["iosConfig"] as? JSObject else {
|
|
125
139
|
throw NSError(domain: "Missing iosConfig parameter in Talsec Native Plugin", code: 1)
|
|
@@ -140,56 +154,17 @@ public class FreeraspPlugin: CAPPlugin {
|
|
|
140
154
|
}
|
|
141
155
|
}
|
|
142
156
|
|
|
143
|
-
extension SecurityThreatCenter: SecurityThreatHandler {
|
|
157
|
+
extension SecurityThreatCenter: @retroactive SecurityThreatHandler, @retroactive RaspExecutionState {
|
|
144
158
|
|
|
145
159
|
public func threatDetected(_ securityThreat: TalsecRuntime.SecurityThreat) {
|
|
146
160
|
if (securityThreat.rawValue == "passcodeChange") {
|
|
147
161
|
return
|
|
148
162
|
}
|
|
149
163
|
|
|
150
|
-
FreeraspPlugin.
|
|
164
|
+
FreeraspPlugin.dispatchEvent(securityThreat: securityThreat)
|
|
151
165
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
static let threatIdentifierList: [Int] = (1...14).map { _ in Int.random(in: 100_000..<999_999_999) }
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/// An extension to unify callback names with Capacitor ones.
|
|
159
|
-
extension SecurityThreat {
|
|
160
|
-
|
|
161
|
-
var callbackIdentifier: Int {
|
|
162
|
-
switch self {
|
|
163
|
-
case .signature:
|
|
164
|
-
return ThreatIdentifiers.threatIdentifierList[0]
|
|
165
|
-
case .jailbreak:
|
|
166
|
-
return ThreatIdentifiers.threatIdentifierList[1]
|
|
167
|
-
case .debugger:
|
|
168
|
-
return ThreatIdentifiers.threatIdentifierList[2]
|
|
169
|
-
case .runtimeManipulation:
|
|
170
|
-
return ThreatIdentifiers.threatIdentifierList[3]
|
|
171
|
-
case .passcode:
|
|
172
|
-
return ThreatIdentifiers.threatIdentifierList[4]
|
|
173
|
-
case .passcodeChange:
|
|
174
|
-
return ThreatIdentifiers.threatIdentifierList[5]
|
|
175
|
-
case .simulator:
|
|
176
|
-
return ThreatIdentifiers.threatIdentifierList[6]
|
|
177
|
-
case .missingSecureEnclave:
|
|
178
|
-
return ThreatIdentifiers.threatIdentifierList[7]
|
|
179
|
-
case .systemVPN:
|
|
180
|
-
return ThreatIdentifiers.threatIdentifierList[8]
|
|
181
|
-
case .deviceChange:
|
|
182
|
-
return ThreatIdentifiers.threatIdentifierList[9]
|
|
183
|
-
case .deviceID:
|
|
184
|
-
return ThreatIdentifiers.threatIdentifierList[10]
|
|
185
|
-
case .unofficialStore:
|
|
186
|
-
return ThreatIdentifiers.threatIdentifierList[11]
|
|
187
|
-
case .screenshot:
|
|
188
|
-
return ThreatIdentifiers.threatIdentifierList[12]
|
|
189
|
-
case .screenRecording:
|
|
190
|
-
return ThreatIdentifiers.threatIdentifierList[13]
|
|
191
|
-
@unknown default:
|
|
192
|
-
abort()
|
|
193
|
-
}
|
|
166
|
+
|
|
167
|
+
public func onAllChecksFinished() {
|
|
168
|
+
FreeraspPlugin.dispatchRaspExecutionStateEvent(event: RaspExecutionStates.allChecksFinished)
|
|
194
169
|
}
|
|
195
|
-
}
|
|
170
|
+
}
|
package/ios/Plugin/Info.plist
CHANGED
|
Binary file
|