freerasp-react-native 3.9.3 → 3.11.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 +56 -2
- package/README.md +7 -9
- package/android/build.gradle +4 -1
- package/android/src/main/java/com/freeraspreactnative/FreeraspReactNativeModule.kt +49 -4
- package/android/src/main/java/com/freeraspreactnative/FreeraspThreatHandler.kt +9 -1
- package/android/src/main/java/com/freeraspreactnative/Threat.kt +5 -1
- package/android/src/main/java/com/freeraspreactnative/models/RNSuspiciousAppInfo.kt +25 -0
- package/android/src/main/java/com/freeraspreactnative/utils/Extensions.kt +116 -0
- package/android/src/main/java/com/freeraspreactnative/utils/Utils.kt +82 -0
- package/example/assets/arrow-down.png +0 -0
- package/example/assets/arrow-up.png +0 -0
- package/example/ios/FreeraspReactNativeExample.xcodeproj/project.pbxproj +45 -45
- package/example/src/App.tsx +66 -3
- package/example/src/DemoApp.tsx +16 -2
- package/example/src/MalwareItem.tsx +158 -0
- package/example/src/MalwareModal.tsx +126 -0
- package/example/src/checks.ts +2 -0
- package/example/src/styles.ts +1 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements +0 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeResources +60 -60
- 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 +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +7 -7
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +4 -4
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +1 -1
- package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +1 -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 +135 -135
- 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 +2 -2
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +7 -7
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +4 -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/urlapi.h +1 -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 +135 -135
- package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +135 -135
- 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 +21 -21
- package/lib/commonjs/index.js +66 -19
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/{definitions.js → threat.js} +4 -2
- package/lib/commonjs/threat.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils.js +2 -2
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/index.js +33 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/{definitions.js → threat.js} +4 -2
- package/lib/module/threat.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils.js +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/threat.d.ts +21 -0
- package/lib/typescript/src/threat.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +51 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +3 -24
- package/plugin/build/index.d.ts +0 -1
- package/src/index.tsx +38 -8
- package/src/{definitions.ts → threat.ts} +4 -30
- package/src/types.ts +56 -0
- package/src/utils.ts +1 -1
- package/android/src/main/java/com/freeraspreactnative/Utils.kt +0 -40
- package/lib/commonjs/definitions.js.map +0 -1
- package/lib/module/definitions.js.map +0 -1
- package/lib/typescript/src/definitions.d.ts +0 -47
- package/lib/typescript/src/definitions.d.ts.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export type TalsecConfig = {
|
|
2
|
+
androidConfig?: TalsecAndroidConfig;
|
|
3
|
+
iosConfig?: TalsecIosConfig;
|
|
4
|
+
watcherMail: string;
|
|
5
|
+
isProd?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type TalsecAndroidConfig = {
|
|
8
|
+
packageName: string;
|
|
9
|
+
certificateHashes: string[];
|
|
10
|
+
supportedAlternativeStores?: string[];
|
|
11
|
+
malwareConfig?: TalsecMalwareConfig;
|
|
12
|
+
};
|
|
13
|
+
export type TalsecIosConfig = {
|
|
14
|
+
appBundleId: string;
|
|
15
|
+
appTeamId: string;
|
|
16
|
+
};
|
|
17
|
+
export type TalsecMalwareConfig = {
|
|
18
|
+
blacklistedHashes?: string[];
|
|
19
|
+
blacklistedPackageNames?: string[];
|
|
20
|
+
suspiciousPermissions?: string[][];
|
|
21
|
+
whitelistedInstallationSources?: string[];
|
|
22
|
+
};
|
|
23
|
+
export type SuspiciousAppInfo = {
|
|
24
|
+
packageInfo: PackageInfo;
|
|
25
|
+
reason: string;
|
|
26
|
+
};
|
|
27
|
+
export type PackageInfo = {
|
|
28
|
+
packageName: string;
|
|
29
|
+
appName?: string;
|
|
30
|
+
version?: string;
|
|
31
|
+
appIcon?: string;
|
|
32
|
+
installerStore?: string;
|
|
33
|
+
};
|
|
34
|
+
export type NativeEventEmitterActions = {
|
|
35
|
+
privilegedAccess?: () => any;
|
|
36
|
+
debug?: () => any;
|
|
37
|
+
simulator?: () => any;
|
|
38
|
+
appIntegrity?: () => any;
|
|
39
|
+
unofficialStore?: () => any;
|
|
40
|
+
hooks?: () => any;
|
|
41
|
+
deviceBinding?: () => any;
|
|
42
|
+
deviceID?: () => any;
|
|
43
|
+
passcode?: () => any;
|
|
44
|
+
secureHardwareNotAvailable?: () => any;
|
|
45
|
+
obfuscationIssues?: () => any;
|
|
46
|
+
devMode?: () => any;
|
|
47
|
+
systemVPN?: () => any;
|
|
48
|
+
malware?: (suspiciousApps: SuspiciousAppInfo[]) => any;
|
|
49
|
+
adbEnabled?: () => any;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACnC,8BAA8B,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,GAAG,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,KAAK,GAAG,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC;CACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "freerasp-react-native",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "React Native plugin for improving app security and threat monitoring on Android and iOS mobile devices.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
"typecheck": "tsc --noEmit",
|
|
12
12
|
"expo:typecheck": "cd plugin && tsc --noEmit",
|
|
13
13
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
14
|
+
"prettier": "prettier \"**/*.{ts,js}\"",
|
|
14
15
|
"prepack": "bob build && yarn build:plugin",
|
|
16
|
+
"build": "bob build",
|
|
15
17
|
"example": "yarn --cwd example",
|
|
16
18
|
"bootstrap": "yarn example && yarn install && yarn example pods",
|
|
17
19
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build",
|
|
@@ -93,29 +95,6 @@
|
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
},
|
|
96
|
-
"eslintConfig": {
|
|
97
|
-
"root": true,
|
|
98
|
-
"extends": [
|
|
99
|
-
"@react-native-community",
|
|
100
|
-
"prettier"
|
|
101
|
-
],
|
|
102
|
-
"rules": {
|
|
103
|
-
"prettier/prettier": [
|
|
104
|
-
"error",
|
|
105
|
-
{
|
|
106
|
-
"quoteProps": "consistent",
|
|
107
|
-
"singleQuote": true,
|
|
108
|
-
"tabWidth": 2,
|
|
109
|
-
"trailingComma": "es5",
|
|
110
|
-
"useTabs": false
|
|
111
|
-
}
|
|
112
|
-
]
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
"eslintIgnore": [
|
|
116
|
-
"node_modules/",
|
|
117
|
-
"lib/"
|
|
118
|
-
],
|
|
119
98
|
"prettier": {
|
|
120
99
|
"quoteProps": "consistent",
|
|
121
100
|
"singleQuote": true,
|
package/plugin/build/index.d.ts
CHANGED
package/src/index.tsx
CHANGED
|
@@ -2,14 +2,18 @@ import { useEffect } from 'react';
|
|
|
2
2
|
import {
|
|
3
3
|
NativeEventEmitter,
|
|
4
4
|
NativeModules,
|
|
5
|
+
Platform,
|
|
5
6
|
type EmitterSubscription,
|
|
6
7
|
} from 'react-native';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
import type {
|
|
9
|
+
NativeEventEmitterActions,
|
|
10
|
+
PackageInfo,
|
|
11
|
+
SuspiciousAppInfo,
|
|
12
|
+
TalsecConfig,
|
|
13
|
+
} from './types';
|
|
12
14
|
import { getThreatCount, itemsHaveType } from './utils';
|
|
15
|
+
import { Buffer } from 'buffer';
|
|
16
|
+
import { Threat } from './threat';
|
|
13
17
|
|
|
14
18
|
const { FreeraspReactNative } = NativeModules;
|
|
15
19
|
|
|
@@ -31,9 +35,10 @@ const getThreatIdentifiers = async (): Promise<number[]> => {
|
|
|
31
35
|
return identifiers;
|
|
32
36
|
};
|
|
33
37
|
|
|
34
|
-
const getThreatChannelData = async (): Promise<[string, string]> => {
|
|
38
|
+
const getThreatChannelData = async (): Promise<[string, string, string]> => {
|
|
39
|
+
const dataLength = Platform.OS === 'ios' ? 2 : 3;
|
|
35
40
|
let data = await FreeraspReactNative.getThreatChannelData();
|
|
36
|
-
if (data.length !==
|
|
41
|
+
if (data.length !== dataLength || !itemsHaveType(data, 'string')) {
|
|
37
42
|
onInvalidCallback();
|
|
38
43
|
}
|
|
39
44
|
return data;
|
|
@@ -48,10 +53,21 @@ const prepareMapping = async (): Promise<void> => {
|
|
|
48
53
|
});
|
|
49
54
|
};
|
|
50
55
|
|
|
56
|
+
// parses base64-encoded malware data to SuspiciousAppInfo[]
|
|
57
|
+
const parseMalwareData = (data: string[]): SuspiciousAppInfo[] => {
|
|
58
|
+
return data.map((entry) => toSuspiciousAppInfo(entry));
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const toSuspiciousAppInfo = (base64Value: string): SuspiciousAppInfo => {
|
|
62
|
+
const data = JSON.parse(Buffer.from(base64Value, 'base64').toString('utf8'));
|
|
63
|
+
const packageInfo = data.packageInfo as PackageInfo;
|
|
64
|
+
return { packageInfo, reason: data.reason } as SuspiciousAppInfo;
|
|
65
|
+
};
|
|
66
|
+
|
|
51
67
|
export const setThreatListeners = async <T extends NativeEventEmitterActions>(
|
|
52
68
|
config: T & Record<Exclude<keyof T, keyof NativeEventEmitterActions>, []>
|
|
53
69
|
) => {
|
|
54
|
-
const [channel, key] = await getThreatChannelData();
|
|
70
|
+
const [channel, key, malwareKey] = await getThreatChannelData();
|
|
55
71
|
await prepareMapping();
|
|
56
72
|
|
|
57
73
|
eventsListener = eventEmitter.addListener(channel, (event) => {
|
|
@@ -98,6 +114,12 @@ export const setThreatListeners = async <T extends NativeEventEmitterActions>(
|
|
|
98
114
|
case Threat.SystemVPN.value:
|
|
99
115
|
config.systemVPN?.();
|
|
100
116
|
break;
|
|
117
|
+
case Threat.Malware.value:
|
|
118
|
+
config.malware?.(parseMalwareData(event[malwareKey]));
|
|
119
|
+
break;
|
|
120
|
+
case Threat.ADBEnabled.value:
|
|
121
|
+
config.adbEnabled?.();
|
|
122
|
+
break;
|
|
101
123
|
default:
|
|
102
124
|
onInvalidCallback();
|
|
103
125
|
break;
|
|
@@ -138,4 +160,12 @@ export const useFreeRasp = <T extends NativeEventEmitterActions>(
|
|
|
138
160
|
}, []);
|
|
139
161
|
};
|
|
140
162
|
|
|
163
|
+
export const addToWhitelist = async (packageName: string): Promise<boolean> => {
|
|
164
|
+
if (Platform.OS === 'ios') {
|
|
165
|
+
return Promise.reject('Malware detection not available on iOS');
|
|
166
|
+
}
|
|
167
|
+
return FreeraspReactNative.addToWhitelist(packageName);
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
export * from './types';
|
|
141
171
|
export default FreeraspReactNative;
|
|
@@ -1,35 +1,5 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
2
|
|
|
3
|
-
export type TalsecConfig = {
|
|
4
|
-
androidConfig?: {
|
|
5
|
-
packageName: string;
|
|
6
|
-
certificateHashes: string[];
|
|
7
|
-
supportedAlternativeStores?: string[];
|
|
8
|
-
};
|
|
9
|
-
iosConfig?: {
|
|
10
|
-
appBundleId: string;
|
|
11
|
-
appTeamId: string;
|
|
12
|
-
};
|
|
13
|
-
watcherMail: string;
|
|
14
|
-
isProd?: boolean;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export type NativeEventEmitterActions = {
|
|
18
|
-
privilegedAccess?: () => any;
|
|
19
|
-
debug?: () => any;
|
|
20
|
-
simulator?: () => any;
|
|
21
|
-
appIntegrity?: () => any;
|
|
22
|
-
unofficialStore?: () => any;
|
|
23
|
-
hooks?: () => any;
|
|
24
|
-
deviceBinding?: () => any;
|
|
25
|
-
deviceID?: () => any;
|
|
26
|
-
passcode?: () => any;
|
|
27
|
-
secureHardwareNotAvailable?: () => any;
|
|
28
|
-
obfuscationIssues?: () => any;
|
|
29
|
-
devMode?: () => any;
|
|
30
|
-
systemVPN?: () => any;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
3
|
export class Threat {
|
|
34
4
|
value: number;
|
|
35
5
|
|
|
@@ -46,6 +16,8 @@ export class Threat {
|
|
|
46
16
|
static UnofficialStore = new Threat(0);
|
|
47
17
|
static ObfuscationIssues = new Threat(0);
|
|
48
18
|
static DevMode = new Threat(0);
|
|
19
|
+
static Malware = new Threat(0);
|
|
20
|
+
static ADBEnabled = new Threat(0);
|
|
49
21
|
|
|
50
22
|
constructor(value: number) {
|
|
51
23
|
this.value = value;
|
|
@@ -66,6 +38,8 @@ export class Threat {
|
|
|
66
38
|
this.UnofficialStore,
|
|
67
39
|
this.ObfuscationIssues,
|
|
68
40
|
this.DevMode,
|
|
41
|
+
this.Malware,
|
|
42
|
+
this.ADBEnabled,
|
|
69
43
|
]
|
|
70
44
|
: [
|
|
71
45
|
this.AppIntegrity,
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export type TalsecConfig = {
|
|
2
|
+
androidConfig?: TalsecAndroidConfig;
|
|
3
|
+
iosConfig?: TalsecIosConfig;
|
|
4
|
+
watcherMail: string;
|
|
5
|
+
isProd?: boolean;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export type TalsecAndroidConfig = {
|
|
9
|
+
packageName: string;
|
|
10
|
+
certificateHashes: string[];
|
|
11
|
+
supportedAlternativeStores?: string[];
|
|
12
|
+
malwareConfig?: TalsecMalwareConfig;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type TalsecIosConfig = {
|
|
16
|
+
appBundleId: string;
|
|
17
|
+
appTeamId: string;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type TalsecMalwareConfig = {
|
|
21
|
+
blacklistedHashes?: string[];
|
|
22
|
+
blacklistedPackageNames?: string[];
|
|
23
|
+
suspiciousPermissions?: string[][];
|
|
24
|
+
whitelistedInstallationSources?: string[];
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type SuspiciousAppInfo = {
|
|
28
|
+
packageInfo: PackageInfo;
|
|
29
|
+
reason: string;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type PackageInfo = {
|
|
33
|
+
packageName: string;
|
|
34
|
+
appName?: string;
|
|
35
|
+
version?: string;
|
|
36
|
+
appIcon?: string;
|
|
37
|
+
installerStore?: string;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export type NativeEventEmitterActions = {
|
|
41
|
+
privilegedAccess?: () => any;
|
|
42
|
+
debug?: () => any;
|
|
43
|
+
simulator?: () => any;
|
|
44
|
+
appIntegrity?: () => any;
|
|
45
|
+
unofficialStore?: () => any;
|
|
46
|
+
hooks?: () => any;
|
|
47
|
+
deviceBinding?: () => any;
|
|
48
|
+
deviceID?: () => any;
|
|
49
|
+
passcode?: () => any;
|
|
50
|
+
secureHardwareNotAvailable?: () => any;
|
|
51
|
+
obfuscationIssues?: () => any;
|
|
52
|
+
devMode?: () => any;
|
|
53
|
+
systemVPN?: () => any;
|
|
54
|
+
malware?: (suspiciousApps: SuspiciousAppInfo[]) => any;
|
|
55
|
+
adbEnabled?: () => any;
|
|
56
|
+
};
|
package/src/utils.ts
CHANGED
|
@@ -1,40 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","Threat","AppIntegrity","PrivilegedAccess","Debug","Hooks","Passcode","Simulator","SecureHardwareNotAvailable","SystemVPN","DeviceBinding","DeviceID","UnofficialStore","ObfuscationIssues","DevMode","constructor","value","getValues","Platform","OS","exports"],"sourceRoot":"../../src","sources":["definitions.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAgCO,MAAMC,MAAM,CAAC;EAGlB,OAAOC,YAAY,GAAG,IAAID,MAAM,CAAC,CAAC,CAAC;EACnC,OAAOE,gBAAgB,GAAG,IAAIF,MAAM,CAAC,CAAC,CAAC;EACvC,OAAOG,KAAK,GAAG,IAAIH,MAAM,CAAC,CAAC,CAAC;EAC5B,OAAOI,KAAK,GAAG,IAAIJ,MAAM,CAAC,CAAC,CAAC;EAC5B,OAAOK,QAAQ,GAAG,IAAIL,MAAM,CAAC,CAAC,CAAC;EAC/B,OAAOM,SAAS,GAAG,IAAIN,MAAM,CAAC,CAAC,CAAC;EAChC,OAAOO,0BAA0B,GAAG,IAAIP,MAAM,CAAC,CAAC,CAAC;EACjD,OAAOQ,SAAS,GAAG,IAAIR,MAAM,CAAC,CAAC,CAAC;EAChC,OAAOS,aAAa,GAAG,IAAIT,MAAM,CAAC,CAAC,CAAC;EACpC,OAAOU,QAAQ,GAAG,IAAIV,MAAM,CAAC,CAAC,CAAC;EAC/B,OAAOW,eAAe,GAAG,IAAIX,MAAM,CAAC,CAAC,CAAC;EACtC,OAAOY,iBAAiB,GAAG,IAAIZ,MAAM,CAAC,CAAC,CAAC;EACxC,OAAOa,OAAO,GAAG,IAAIb,MAAM,CAAC,CAAC,CAAC;EAE9Bc,WAAWA,CAACC,KAAa,EAAE;IACzB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;EAEA,OAAOC,SAASA,CAAA,EAAa;IAC3B,OAAOC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GAC5B,CACE,IAAI,CAACjB,YAAY,EACjB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,0BAA0B,EAC/B,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,aAAa,EAClB,IAAI,CAACE,eAAe,EACpB,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACC,OAAO,CACb,GACD,CACE,IAAI,CAACZ,YAAY,EACjB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,0BAA0B,EAC/B,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,eAAe,CACrB;EACP;AACF;AAACQ,OAAA,CAAAnB,MAAA,GAAAA,MAAA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Threat","AppIntegrity","PrivilegedAccess","Debug","Hooks","Passcode","Simulator","SecureHardwareNotAvailable","SystemVPN","DeviceBinding","DeviceID","UnofficialStore","ObfuscationIssues","DevMode","constructor","value","getValues","OS"],"sourceRoot":"../../src","sources":["definitions.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAgCvC,OAAO,MAAMC,MAAM,CAAC;EAGlB,OAAOC,YAAY,GAAG,IAAID,MAAM,CAAC,CAAC,CAAC;EACnC,OAAOE,gBAAgB,GAAG,IAAIF,MAAM,CAAC,CAAC,CAAC;EACvC,OAAOG,KAAK,GAAG,IAAIH,MAAM,CAAC,CAAC,CAAC;EAC5B,OAAOI,KAAK,GAAG,IAAIJ,MAAM,CAAC,CAAC,CAAC;EAC5B,OAAOK,QAAQ,GAAG,IAAIL,MAAM,CAAC,CAAC,CAAC;EAC/B,OAAOM,SAAS,GAAG,IAAIN,MAAM,CAAC,CAAC,CAAC;EAChC,OAAOO,0BAA0B,GAAG,IAAIP,MAAM,CAAC,CAAC,CAAC;EACjD,OAAOQ,SAAS,GAAG,IAAIR,MAAM,CAAC,CAAC,CAAC;EAChC,OAAOS,aAAa,GAAG,IAAIT,MAAM,CAAC,CAAC,CAAC;EACpC,OAAOU,QAAQ,GAAG,IAAIV,MAAM,CAAC,CAAC,CAAC;EAC/B,OAAOW,eAAe,GAAG,IAAIX,MAAM,CAAC,CAAC,CAAC;EACtC,OAAOY,iBAAiB,GAAG,IAAIZ,MAAM,CAAC,CAAC,CAAC;EACxC,OAAOa,OAAO,GAAG,IAAIb,MAAM,CAAC,CAAC,CAAC;EAE9Bc,WAAWA,CAACC,KAAa,EAAE;IACzB,IAAI,CAACA,KAAK,GAAGA,KAAK;EACpB;EAEA,OAAOC,SAASA,CAAA,EAAa;IAC3B,OAAOjB,QAAQ,CAACkB,EAAE,KAAK,SAAS,GAC5B,CACE,IAAI,CAAChB,YAAY,EACjB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,0BAA0B,EAC/B,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,aAAa,EAClB,IAAI,CAACE,eAAe,EACpB,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACC,OAAO,CACb,GACD,CACE,IAAI,CAACZ,YAAY,EACjB,IAAI,CAACC,gBAAgB,EACrB,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,KAAK,EACV,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,0BAA0B,EAC/B,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,eAAe,CACrB;EACP;AACF","ignoreList":[]}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export type TalsecConfig = {
|
|
2
|
-
androidConfig?: {
|
|
3
|
-
packageName: string;
|
|
4
|
-
certificateHashes: string[];
|
|
5
|
-
supportedAlternativeStores?: string[];
|
|
6
|
-
};
|
|
7
|
-
iosConfig?: {
|
|
8
|
-
appBundleId: string;
|
|
9
|
-
appTeamId: string;
|
|
10
|
-
};
|
|
11
|
-
watcherMail: string;
|
|
12
|
-
isProd?: boolean;
|
|
13
|
-
};
|
|
14
|
-
export type NativeEventEmitterActions = {
|
|
15
|
-
privilegedAccess?: () => any;
|
|
16
|
-
debug?: () => any;
|
|
17
|
-
simulator?: () => any;
|
|
18
|
-
appIntegrity?: () => any;
|
|
19
|
-
unofficialStore?: () => any;
|
|
20
|
-
hooks?: () => any;
|
|
21
|
-
deviceBinding?: () => any;
|
|
22
|
-
deviceID?: () => any;
|
|
23
|
-
passcode?: () => any;
|
|
24
|
-
secureHardwareNotAvailable?: () => any;
|
|
25
|
-
obfuscationIssues?: () => any;
|
|
26
|
-
devMode?: () => any;
|
|
27
|
-
systemVPN?: () => any;
|
|
28
|
-
};
|
|
29
|
-
export declare class Threat {
|
|
30
|
-
value: number;
|
|
31
|
-
static AppIntegrity: Threat;
|
|
32
|
-
static PrivilegedAccess: Threat;
|
|
33
|
-
static Debug: Threat;
|
|
34
|
-
static Hooks: Threat;
|
|
35
|
-
static Passcode: Threat;
|
|
36
|
-
static Simulator: Threat;
|
|
37
|
-
static SecureHardwareNotAvailable: Threat;
|
|
38
|
-
static SystemVPN: Threat;
|
|
39
|
-
static DeviceBinding: Threat;
|
|
40
|
-
static DeviceID: Threat;
|
|
41
|
-
static UnofficialStore: Threat;
|
|
42
|
-
static ObfuscationIssues: Threat;
|
|
43
|
-
static DevMode: Threat;
|
|
44
|
-
constructor(value: number);
|
|
45
|
-
static getValues(): Threat[];
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/definitions.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;KACvC,CAAC;IACF,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC;IACrB,0BAA0B,CAAC,EAAE,MAAM,GAAG,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC;CACvB,CAAC;AAEF,qBAAa,MAAM;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,YAAY,SAAiB;IACpC,MAAM,CAAC,gBAAgB,SAAiB;IACxC,MAAM,CAAC,KAAK,SAAiB;IAC7B,MAAM,CAAC,KAAK,SAAiB;IAC7B,MAAM,CAAC,QAAQ,SAAiB;IAChC,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,0BAA0B,SAAiB;IAClD,MAAM,CAAC,SAAS,SAAiB;IACjC,MAAM,CAAC,aAAa,SAAiB;IACrC,MAAM,CAAC,QAAQ,SAAiB;IAChC,MAAM,CAAC,eAAe,SAAiB;IACvC,MAAM,CAAC,iBAAiB,SAAiB;IACzC,MAAM,CAAC,OAAO,SAAiB;gBAEnB,KAAK,EAAE,MAAM;IAIzB,MAAM,CAAC,SAAS,IAAI,MAAM,EAAE;CA8B7B"}
|