@aws-amplify/react-native 1.0.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/AmplifyRTNCore.podspec +35 -0
- package/LICENSE +201 -0
- package/android/build.gradle +103 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradle.properties +5 -0
- package/android/gradlew +234 -0
- package/android/gradlew.bat +89 -0
- package/android/src/hasPackageName/AndroidManifest.xml +4 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/kotlin/com/amazonaws/amplify/rtncore/AmplifyRTNCoreModule.kt +29 -0
- package/android/src/main/kotlin/com/amazonaws/amplify/rtncore/AmplifyRTNCorePackage.kt +17 -0
- package/android/src/main/kotlin/com/amazonaws/amplify/rtncore/BigInteger.kt +65 -0
- package/ios/AmplifyRTNCore-Bridging-Header.h +5 -0
- package/ios/AmplifyRTNCore.mm +21 -0
- package/ios/AmplifyRTNCore.swift +29 -0
- package/ios/AmplifyRTNCore.xcodeproj/project.pbxproj +283 -0
- package/ios/AmplifyRTNCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/ios/BigInteger.swift +78 -0
- package/ios/JKBigInteger/JKBigDecimal.h +40 -0
- package/ios/JKBigInteger/JKBigDecimal.m +224 -0
- package/ios/JKBigInteger/JKBigInteger.h +58 -0
- package/ios/JKBigInteger/JKBigInteger.m +419 -0
- package/ios/JKBigInteger/LICENSE.txt +18 -0
- package/ios/JKBigInteger/LibTomMath/tommath.c +6925 -0
- package/ios/JKBigInteger/LibTomMath/tommath.h +584 -0
- package/ios/JKBigInteger/LibTomMath/tommath_class.h +999 -0
- package/ios/JKBigInteger/LibTomMath/tommath_superclass.h +76 -0
- package/lib/apis/computeModPow.d.ts +2 -0
- package/lib/apis/computeModPow.js +9 -0
- package/lib/apis/computeModPow.js.map +1 -0
- package/lib/apis/computeS.d.ts +2 -0
- package/lib/apis/computeS.js +9 -0
- package/lib/apis/computeS.js.map +1 -0
- package/lib/apis/getOperatingSystem.d.ts +1 -0
- package/lib/apis/getOperatingSystem.js +9 -0
- package/lib/apis/getOperatingSystem.js.map +1 -0
- package/lib/apis/index.d.ts +3 -0
- package/lib/apis/index.js +12 -0
- package/lib/apis/index.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -0
- package/lib/moduleLoaders/index.d.ts +8 -0
- package/lib/moduleLoaders/index.js +22 -0
- package/lib/moduleLoaders/index.js.map +1 -0
- package/lib/moduleLoaders/loadAmplifyPushNotification.d.ts +21 -0
- package/lib/moduleLoaders/loadAmplifyPushNotification.js +26 -0
- package/lib/moduleLoaders/loadAmplifyPushNotification.js.map +1 -0
- package/lib/moduleLoaders/loadAppState.d.ts +1 -0
- package/lib/moduleLoaders/loadAppState.js +9 -0
- package/lib/moduleLoaders/loadAppState.js.map +1 -0
- package/lib/moduleLoaders/loadAsyncStorage.d.ts +2 -0
- package/lib/moduleLoaders/loadAsyncStorage.js +26 -0
- package/lib/moduleLoaders/loadAsyncStorage.js.map +1 -0
- package/lib/moduleLoaders/loadBase64.d.ts +5 -0
- package/lib/moduleLoaders/loadBase64.js +9 -0
- package/lib/moduleLoaders/loadBase64.js.map +1 -0
- package/lib/moduleLoaders/loadBuffer.d.ts +22 -0
- package/lib/moduleLoaders/loadBuffer.js +9 -0
- package/lib/moduleLoaders/loadBuffer.js.map +1 -0
- package/lib/moduleLoaders/loadGetRandomValues.d.ts +1 -0
- package/lib/moduleLoaders/loadGetRandomValues.js +21 -0
- package/lib/moduleLoaders/loadGetRandomValues.js.map +1 -0
- package/lib/moduleLoaders/loadNetInfo.d.ts +4 -0
- package/lib/moduleLoaders/loadNetInfo.js +26 -0
- package/lib/moduleLoaders/loadNetInfo.js.map +1 -0
- package/lib/moduleLoaders/loadUrlPolyfill.d.ts +1 -0
- package/lib/moduleLoaders/loadUrlPolyfill.js +21 -0
- package/lib/moduleLoaders/loadUrlPolyfill.js.map +1 -0
- package/lib/nativeModule.d.ts +2 -0
- package/lib/nativeModule.js +18 -0
- package/lib/nativeModule.js.map +1 -0
- package/lib/types.d.ts +15 -0
- package/lib/types.js +5 -0
- package/lib/types.js.map +1 -0
- package/lib-esm/apis/computeModPow.d.ts +2 -0
- package/lib-esm/apis/computeModPow.js +5 -0
- package/lib-esm/apis/computeModPow.js.map +1 -0
- package/lib-esm/apis/computeS.d.ts +2 -0
- package/lib-esm/apis/computeS.js +5 -0
- package/lib-esm/apis/computeS.js.map +1 -0
- package/lib-esm/apis/getOperatingSystem.d.ts +1 -0
- package/lib-esm/apis/getOperatingSystem.js +5 -0
- package/lib-esm/apis/getOperatingSystem.js.map +1 -0
- package/lib-esm/apis/index.d.ts +3 -0
- package/lib-esm/apis/index.js +6 -0
- package/lib-esm/apis/index.js.map +1 -0
- package/lib-esm/index.d.ts +2 -0
- package/lib-esm/index.js +5 -0
- package/lib-esm/index.js.map +1 -0
- package/lib-esm/moduleLoaders/index.d.ts +8 -0
- package/lib-esm/moduleLoaders/index.js +11 -0
- package/lib-esm/moduleLoaders/index.js.map +1 -0
- package/lib-esm/moduleLoaders/loadAmplifyPushNotification.d.ts +21 -0
- package/lib-esm/moduleLoaders/loadAmplifyPushNotification.js +22 -0
- package/lib-esm/moduleLoaders/loadAmplifyPushNotification.js.map +1 -0
- package/lib-esm/moduleLoaders/loadAppState.d.ts +1 -0
- package/lib-esm/moduleLoaders/loadAppState.js +5 -0
- package/lib-esm/moduleLoaders/loadAppState.js.map +1 -0
- package/lib-esm/moduleLoaders/loadAsyncStorage.d.ts +2 -0
- package/lib-esm/moduleLoaders/loadAsyncStorage.js +22 -0
- package/lib-esm/moduleLoaders/loadAsyncStorage.js.map +1 -0
- package/lib-esm/moduleLoaders/loadBase64.d.ts +5 -0
- package/lib-esm/moduleLoaders/loadBase64.js +5 -0
- package/lib-esm/moduleLoaders/loadBase64.js.map +1 -0
- package/lib-esm/moduleLoaders/loadBuffer.d.ts +22 -0
- package/lib-esm/moduleLoaders/loadBuffer.js +5 -0
- package/lib-esm/moduleLoaders/loadBuffer.js.map +1 -0
- package/lib-esm/moduleLoaders/loadGetRandomValues.d.ts +1 -0
- package/lib-esm/moduleLoaders/loadGetRandomValues.js +17 -0
- package/lib-esm/moduleLoaders/loadGetRandomValues.js.map +1 -0
- package/lib-esm/moduleLoaders/loadNetInfo.d.ts +4 -0
- package/lib-esm/moduleLoaders/loadNetInfo.js +22 -0
- package/lib-esm/moduleLoaders/loadNetInfo.js.map +1 -0
- package/lib-esm/moduleLoaders/loadUrlPolyfill.d.ts +1 -0
- package/lib-esm/moduleLoaders/loadUrlPolyfill.js +17 -0
- package/lib-esm/moduleLoaders/loadUrlPolyfill.js.map +1 -0
- package/lib-esm/nativeModule.d.ts +2 -0
- package/lib-esm/nativeModule.js +15 -0
- package/lib-esm/nativeModule.js.map +1 -0
- package/lib-esm/types.d.ts +15 -0
- package/lib-esm/types.js +4 -0
- package/lib-esm/types.js.map +1 -0
- package/package.json +69 -0
- package/src/apis/computeModPow.ts +8 -0
- package/src/apis/computeS.ts +8 -0
- package/src/apis/getOperatingSystem.ts +6 -0
- package/src/apis/index.ts +6 -0
- package/src/index.ts +14 -0
- package/src/moduleLoaders/index.ts +11 -0
- package/src/moduleLoaders/loadAmplifyPushNotification.ts +29 -0
- package/src/moduleLoaders/loadAppState.ts +6 -0
- package/src/moduleLoaders/loadAsyncStorage.ts +29 -0
- package/src/moduleLoaders/loadBase64.ts +6 -0
- package/src/moduleLoaders/loadBuffer.ts +6 -0
- package/src/moduleLoaders/loadGetRandomValues.ts +19 -0
- package/src/moduleLoaders/loadNetInfo.ts +31 -0
- package/src/moduleLoaders/loadUrlPolyfill.ts +19 -0
- package/src/nativeModule.ts +22 -0
- package/src/types.ts +19 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
package com.amazonaws.amplify.rtncore
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
5
|
+
import com.facebook.react.bridge.ReactMethod
|
|
6
|
+
import com.facebook.react.bridge.Promise
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap
|
|
8
|
+
|
|
9
|
+
class AmplifyRTNCoreModule(reactContext: ReactApplicationContext) :
|
|
10
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
11
|
+
|
|
12
|
+
override fun getName(): String {
|
|
13
|
+
return NAME
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@ReactMethod
|
|
17
|
+
fun computeModPow(payload: ReadableMap, promise: Promise) {
|
|
18
|
+
BigInteger.computeModPow(payload, promise)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@ReactMethod
|
|
22
|
+
fun computeS(payload: ReadableMap, promise: Promise) {
|
|
23
|
+
BigInteger.computeS(payload, promise)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
companion object {
|
|
27
|
+
const val NAME = "AmplifyRTNCore"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package com.amazonaws.amplify.rtncore
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.ReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.uimanager.ViewManager
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class AmplifyRTNCorePackage : ReactPackage {
|
|
10
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
11
|
+
return listOf(AmplifyRTNCoreModule(reactContext))
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
15
|
+
return emptyList()
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
package com.amazonaws.amplify.rtncore
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Promise
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap
|
|
5
|
+
import java.math.BigInteger
|
|
6
|
+
|
|
7
|
+
fun parseBigInteger(key: String, payload: ReadableMap): BigInteger {
|
|
8
|
+
val value = payload.getString(key) ?: throw IllegalArgumentException("Payload is missing $key")
|
|
9
|
+
return BigInteger(value, 16)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
class BigInteger {
|
|
13
|
+
companion object {
|
|
14
|
+
private const val nInHex = ("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
|
|
15
|
+
+ "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
|
|
16
|
+
+ "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"
|
|
17
|
+
+ "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"
|
|
18
|
+
+ "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"
|
|
19
|
+
+ "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F"
|
|
20
|
+
+ "83655D23DCA3AD961C62F356208552BB9ED529077096966D"
|
|
21
|
+
+ "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B"
|
|
22
|
+
+ "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9"
|
|
23
|
+
+ "DE2BCBF6955817183995497CEA956AE515D2261898FA0510"
|
|
24
|
+
+ "15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64"
|
|
25
|
+
+ "ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7"
|
|
26
|
+
+ "ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B"
|
|
27
|
+
+ "F12FFA06D98A0864D87602733EC86A64521F2B18177B200C"
|
|
28
|
+
+ "BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31"
|
|
29
|
+
+ "43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF")
|
|
30
|
+
|
|
31
|
+
fun computeModPow(
|
|
32
|
+
payload: ReadableMap,
|
|
33
|
+
promise: Promise
|
|
34
|
+
) = try {
|
|
35
|
+
val base = parseBigInteger("base", payload)
|
|
36
|
+
val exponent = parseBigInteger("exponent", payload)
|
|
37
|
+
val divisor = parseBigInteger("divisor", payload)
|
|
38
|
+
|
|
39
|
+
promise.resolve(base.modPow(exponent, divisor).toString(16))
|
|
40
|
+
} catch (e: IllegalArgumentException) {
|
|
41
|
+
promise.reject("ERROR", e.message)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
fun computeS(
|
|
45
|
+
payload: ReadableMap,
|
|
46
|
+
promise: Promise
|
|
47
|
+
) = try {
|
|
48
|
+
val n = BigInteger(nInHex, 16)
|
|
49
|
+
|
|
50
|
+
val g = parseBigInteger("g", payload)
|
|
51
|
+
val x = parseBigInteger("x", payload)
|
|
52
|
+
val k = parseBigInteger("k", payload)
|
|
53
|
+
val a = parseBigInteger("a", payload)
|
|
54
|
+
val b = parseBigInteger("b", payload)
|
|
55
|
+
val u = parseBigInteger("u", payload)
|
|
56
|
+
|
|
57
|
+
val exponent = a.add(u.multiply(x))
|
|
58
|
+
val base = b.subtract(k.multiply(g.modPow(x, n)))
|
|
59
|
+
|
|
60
|
+
promise.resolve(base.modPow(exponent, n).mod(n).toString(16))
|
|
61
|
+
} catch (e: IllegalArgumentException) {
|
|
62
|
+
promise.reject("ERROR", e.message)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
#import <React/RCTBridgeModule.h>
|
|
5
|
+
|
|
6
|
+
@interface RCT_EXTERN_MODULE(AmplifyRTNCore, NSObject)
|
|
7
|
+
|
|
8
|
+
RCT_EXTERN_METHOD(computeModPow:(NSDictionary*)payload
|
|
9
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
|
10
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
11
|
+
|
|
12
|
+
RCT_EXTERN_METHOD(computeS:(NSDictionary*)payload
|
|
13
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
|
14
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
15
|
+
|
|
16
|
+
+ (BOOL)requiresMainQueueSetup
|
|
17
|
+
{
|
|
18
|
+
return NO;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
@objc(AmplifyRTNCore)
|
|
5
|
+
class AmplifyRTNCore: NSObject {
|
|
6
|
+
|
|
7
|
+
@objc(multiply:withB:withResolver:withRejecter:)
|
|
8
|
+
func multiply(a: Float, b: Float, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
|
|
9
|
+
resolve(a*b)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@objc(computeModPow:withResolver:withRejecter:)
|
|
13
|
+
func computeModPow(
|
|
14
|
+
payload: [String: String],
|
|
15
|
+
resolve: RCTPromiseResolveBlock,
|
|
16
|
+
reject: RCTPromiseRejectBlock
|
|
17
|
+
) -> Void {
|
|
18
|
+
BigInteger.computeModPow(payload, resolve: resolve, reject: reject)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@objc(computeS:withResolver:withRejecter:)
|
|
22
|
+
func computeS(
|
|
23
|
+
_ payload: [String: String],
|
|
24
|
+
resolve: RCTPromiseResolveBlock,
|
|
25
|
+
reject: RCTPromiseRejectBlock
|
|
26
|
+
) -> Void {
|
|
27
|
+
BigInteger.computeS(payload, resolve: resolve, reject: reject)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
// !$*UTF8*$!
|
|
2
|
+
{
|
|
3
|
+
archiveVersion = 1;
|
|
4
|
+
classes = {
|
|
5
|
+
};
|
|
6
|
+
objectVersion = 46;
|
|
7
|
+
objects = {
|
|
8
|
+
|
|
9
|
+
/* Begin PBXBuildFile section */
|
|
10
|
+
5E555C0D2413F4C50049A1A2 /* AmplifyRTNCore.mm in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* AmplifyRTNCore.mm */; };
|
|
11
|
+
F4FF95D7245B92E800C19C63 /* AmplifyRTNCore.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4FF95D6245B92E800C19C63 /* AmplifyRTNCore.swift */; };
|
|
12
|
+
/* End PBXBuildFile section */
|
|
13
|
+
|
|
14
|
+
/* Begin PBXCopyFilesBuildPhase section */
|
|
15
|
+
58B511D91A9E6C8500147676 /* CopyFiles */ = {
|
|
16
|
+
isa = PBXCopyFilesBuildPhase;
|
|
17
|
+
buildActionMask = 2147483647;
|
|
18
|
+
dstPath = "include/$(PRODUCT_NAME)";
|
|
19
|
+
dstSubfolderSpec = 16;
|
|
20
|
+
files = (
|
|
21
|
+
);
|
|
22
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
23
|
+
};
|
|
24
|
+
/* End PBXCopyFilesBuildPhase section */
|
|
25
|
+
|
|
26
|
+
/* Begin PBXFileReference section */
|
|
27
|
+
134814201AA4EA6300B7C361 /* libAmplifyRTNCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libAmplifyRTNCore.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
28
|
+
B3E7B5891CC2AC0600A0062D /* AmplifyRTNCore.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AmplifyRTNCore.mm; sourceTree = "<group>"; };
|
|
29
|
+
F4FF95D5245B92E700C19C63 /* AmplifyRTNCore-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AmplifyRTNCore-Bridging-Header.h"; sourceTree = "<group>"; };
|
|
30
|
+
F4FF95D6245B92E800C19C63 /* AmplifyRTNCore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AmplifyRTNCore.swift; sourceTree = "<group>"; };
|
|
31
|
+
/* End PBXFileReference section */
|
|
32
|
+
|
|
33
|
+
/* Begin PBXFrameworksBuildPhase section */
|
|
34
|
+
58B511D81A9E6C8500147676 /* Frameworks */ = {
|
|
35
|
+
isa = PBXFrameworksBuildPhase;
|
|
36
|
+
buildActionMask = 2147483647;
|
|
37
|
+
files = (
|
|
38
|
+
);
|
|
39
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
40
|
+
};
|
|
41
|
+
/* End PBXFrameworksBuildPhase section */
|
|
42
|
+
|
|
43
|
+
/* Begin PBXGroup section */
|
|
44
|
+
134814211AA4EA7D00B7C361 /* Products */ = {
|
|
45
|
+
isa = PBXGroup;
|
|
46
|
+
children = (
|
|
47
|
+
134814201AA4EA6300B7C361 /* libAmplifyRTNCore.a */,
|
|
48
|
+
);
|
|
49
|
+
name = Products;
|
|
50
|
+
sourceTree = "<group>";
|
|
51
|
+
};
|
|
52
|
+
58B511D21A9E6C8500147676 = {
|
|
53
|
+
isa = PBXGroup;
|
|
54
|
+
children = (
|
|
55
|
+
F4FF95D6245B92E800C19C63 /* AmplifyRTNCore.swift */,
|
|
56
|
+
B3E7B5891CC2AC0600A0062D /* AmplifyRTNCore.mm */,
|
|
57
|
+
F4FF95D5245B92E700C19C63 /* AmplifyRTNCore-Bridging-Header.h */,
|
|
58
|
+
134814211AA4EA7D00B7C361 /* Products */,
|
|
59
|
+
);
|
|
60
|
+
sourceTree = "<group>";
|
|
61
|
+
};
|
|
62
|
+
/* End PBXGroup section */
|
|
63
|
+
|
|
64
|
+
/* Begin PBXNativeTarget section */
|
|
65
|
+
58B511DA1A9E6C8500147676 /* AmplifyRTNCore */ = {
|
|
66
|
+
isa = PBXNativeTarget;
|
|
67
|
+
buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "AmplifyRTNCore" */;
|
|
68
|
+
buildPhases = (
|
|
69
|
+
58B511D71A9E6C8500147676 /* Sources */,
|
|
70
|
+
58B511D81A9E6C8500147676 /* Frameworks */,
|
|
71
|
+
58B511D91A9E6C8500147676 /* CopyFiles */,
|
|
72
|
+
);
|
|
73
|
+
buildRules = (
|
|
74
|
+
);
|
|
75
|
+
dependencies = (
|
|
76
|
+
);
|
|
77
|
+
name = AmplifyRTNCore;
|
|
78
|
+
productName = RCTDataManager;
|
|
79
|
+
productReference = 134814201AA4EA6300B7C361 /* libAmplifyRTNCore.a */;
|
|
80
|
+
productType = "com.apple.product-type.library.static";
|
|
81
|
+
};
|
|
82
|
+
/* End PBXNativeTarget section */
|
|
83
|
+
|
|
84
|
+
/* Begin PBXProject section */
|
|
85
|
+
58B511D31A9E6C8500147676 /* Project object */ = {
|
|
86
|
+
isa = PBXProject;
|
|
87
|
+
attributes = {
|
|
88
|
+
LastUpgradeCheck = 0920;
|
|
89
|
+
ORGANIZATIONNAME = Facebook;
|
|
90
|
+
TargetAttributes = {
|
|
91
|
+
58B511DA1A9E6C8500147676 = {
|
|
92
|
+
CreatedOnToolsVersion = 6.1.1;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "AmplifyRTNCore" */;
|
|
97
|
+
compatibilityVersion = "Xcode 3.2";
|
|
98
|
+
developmentRegion = English;
|
|
99
|
+
hasScannedForEncodings = 0;
|
|
100
|
+
knownRegions = (
|
|
101
|
+
English,
|
|
102
|
+
en,
|
|
103
|
+
);
|
|
104
|
+
mainGroup = 58B511D21A9E6C8500147676;
|
|
105
|
+
productRefGroup = 58B511D21A9E6C8500147676;
|
|
106
|
+
projectDirPath = "";
|
|
107
|
+
projectRoot = "";
|
|
108
|
+
targets = (
|
|
109
|
+
58B511DA1A9E6C8500147676 /* AmplifyRTNCore */,
|
|
110
|
+
);
|
|
111
|
+
};
|
|
112
|
+
/* End PBXProject section */
|
|
113
|
+
|
|
114
|
+
/* Begin PBXSourcesBuildPhase section */
|
|
115
|
+
58B511D71A9E6C8500147676 /* Sources */ = {
|
|
116
|
+
isa = PBXSourcesBuildPhase;
|
|
117
|
+
buildActionMask = 2147483647;
|
|
118
|
+
files = (
|
|
119
|
+
F4FF95D7245B92E800C19C63 /* AmplifyRTNCore.swift in Sources */,
|
|
120
|
+
B3E7B58A1CC2AC0600A0062D /* AmplifyRTNCore.mm in Sources */,
|
|
121
|
+
);
|
|
122
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
123
|
+
};
|
|
124
|
+
/* End PBXSourcesBuildPhase section */
|
|
125
|
+
|
|
126
|
+
/* Begin XCBuildConfiguration section */
|
|
127
|
+
58B511ED1A9E6C8500147676 /* Debug */ = {
|
|
128
|
+
isa = XCBuildConfiguration;
|
|
129
|
+
buildSettings = {
|
|
130
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
131
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
132
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
133
|
+
CLANG_ENABLE_MODULES = YES;
|
|
134
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
135
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
136
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
137
|
+
CLANG_WARN_COMMA = YES;
|
|
138
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
139
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
140
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
141
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
142
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
143
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
144
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
145
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
146
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
147
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
148
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
149
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
150
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
151
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
152
|
+
COPY_PHASE_STRIP = NO;
|
|
153
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
154
|
+
ENABLE_TESTABILITY = YES;
|
|
155
|
+
"EXCLUDED_ARCHS[sdk=*]" = arm64;
|
|
156
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
157
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
|
158
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
159
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
|
160
|
+
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
161
|
+
"DEBUG=1",
|
|
162
|
+
"$(inherited)",
|
|
163
|
+
);
|
|
164
|
+
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
|
165
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
166
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
167
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
168
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
169
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
170
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
171
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
172
|
+
MTL_ENABLE_DEBUG_INFO = YES;
|
|
173
|
+
ONLY_ACTIVE_ARCH = YES;
|
|
174
|
+
SDKROOT = iphoneos;
|
|
175
|
+
};
|
|
176
|
+
name = Debug;
|
|
177
|
+
};
|
|
178
|
+
58B511EE1A9E6C8500147676 /* Release */ = {
|
|
179
|
+
isa = XCBuildConfiguration;
|
|
180
|
+
buildSettings = {
|
|
181
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
182
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
183
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
184
|
+
CLANG_ENABLE_MODULES = YES;
|
|
185
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
186
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
187
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
188
|
+
CLANG_WARN_COMMA = YES;
|
|
189
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
190
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
191
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
192
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
193
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
194
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
195
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
196
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
197
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
198
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
199
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
200
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
201
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
202
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
203
|
+
COPY_PHASE_STRIP = YES;
|
|
204
|
+
ENABLE_NS_ASSERTIONS = NO;
|
|
205
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
206
|
+
"EXCLUDED_ARCHS[sdk=*]" = arm64;
|
|
207
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
208
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
209
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
210
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
211
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
212
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
213
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
214
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
215
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
216
|
+
MTL_ENABLE_DEBUG_INFO = NO;
|
|
217
|
+
SDKROOT = iphoneos;
|
|
218
|
+
VALIDATE_PRODUCT = YES;
|
|
219
|
+
};
|
|
220
|
+
name = Release;
|
|
221
|
+
};
|
|
222
|
+
58B511F01A9E6C8500147676 /* Debug */ = {
|
|
223
|
+
isa = XCBuildConfiguration;
|
|
224
|
+
buildSettings = {
|
|
225
|
+
HEADER_SEARCH_PATHS = (
|
|
226
|
+
"$(inherited)",
|
|
227
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
228
|
+
"$(SRCROOT)/../../../React/**",
|
|
229
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
230
|
+
);
|
|
231
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
232
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
233
|
+
PRODUCT_NAME = AmplifyRTNCore;
|
|
234
|
+
SKIP_INSTALL = YES;
|
|
235
|
+
SWIFT_OBJC_BRIDGING_HEADER = "AmplifyRTNCore-Bridging-Header.h";
|
|
236
|
+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
237
|
+
SWIFT_VERSION = 5.0;
|
|
238
|
+
};
|
|
239
|
+
name = Debug;
|
|
240
|
+
};
|
|
241
|
+
58B511F11A9E6C8500147676 /* Release */ = {
|
|
242
|
+
isa = XCBuildConfiguration;
|
|
243
|
+
buildSettings = {
|
|
244
|
+
HEADER_SEARCH_PATHS = (
|
|
245
|
+
"$(inherited)",
|
|
246
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
247
|
+
"$(SRCROOT)/../../../React/**",
|
|
248
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
249
|
+
);
|
|
250
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
251
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
252
|
+
PRODUCT_NAME = AmplifyRTNCore;
|
|
253
|
+
SKIP_INSTALL = YES;
|
|
254
|
+
SWIFT_OBJC_BRIDGING_HEADER = "AmplifyRTNCore-Bridging-Header.h";
|
|
255
|
+
SWIFT_VERSION = 5.0;
|
|
256
|
+
};
|
|
257
|
+
name = Release;
|
|
258
|
+
};
|
|
259
|
+
/* End XCBuildConfiguration section */
|
|
260
|
+
|
|
261
|
+
/* Begin XCConfigurationList section */
|
|
262
|
+
58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "AmplifyRTNCore" */ = {
|
|
263
|
+
isa = XCConfigurationList;
|
|
264
|
+
buildConfigurations = (
|
|
265
|
+
58B511ED1A9E6C8500147676 /* Debug */,
|
|
266
|
+
58B511EE1A9E6C8500147676 /* Release */,
|
|
267
|
+
);
|
|
268
|
+
defaultConfigurationIsVisible = 0;
|
|
269
|
+
defaultConfigurationName = Release;
|
|
270
|
+
};
|
|
271
|
+
58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "AmplifyRTNCore" */ = {
|
|
272
|
+
isa = XCConfigurationList;
|
|
273
|
+
buildConfigurations = (
|
|
274
|
+
58B511F01A9E6C8500147676 /* Debug */,
|
|
275
|
+
58B511F11A9E6C8500147676 /* Release */,
|
|
276
|
+
);
|
|
277
|
+
defaultConfigurationIsVisible = 0;
|
|
278
|
+
defaultConfigurationName = Release;
|
|
279
|
+
};
|
|
280
|
+
/* End XCConfigurationList section */
|
|
281
|
+
};
|
|
282
|
+
rootObject = 58B511D31A9E6C8500147676 /* Project object */;
|
|
283
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import Foundation
|
|
5
|
+
|
|
6
|
+
enum ParseError: Error {
|
|
7
|
+
case missingValue(String)
|
|
8
|
+
case invalidValue(String)
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@objc(BigInteger)
|
|
12
|
+
class BigInteger: NSObject {
|
|
13
|
+
static let nInHex: String = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF"
|
|
14
|
+
|
|
15
|
+
@objc(computeModPow:withResolver:withRejecter:)
|
|
16
|
+
static func computeModPow(
|
|
17
|
+
_ payload: [String: String],
|
|
18
|
+
resolve: RCTPromiseResolveBlock,
|
|
19
|
+
reject: RCTPromiseRejectBlock) -> Void {
|
|
20
|
+
do {
|
|
21
|
+
let base = try parseBigInteger("base", from: payload)
|
|
22
|
+
let exponent = try parseBigInteger("exponent", from: payload)
|
|
23
|
+
let divisor = try parseBigInteger("divisor", from: payload)
|
|
24
|
+
let result = base.pow(exponent, andMod: divisor) as! JKBigInteger
|
|
25
|
+
|
|
26
|
+
resolve(result.stringValue(withRadix: 16))
|
|
27
|
+
} catch let error as ParseError {
|
|
28
|
+
reject("ERROR", error.localizedDescription, nil)
|
|
29
|
+
} catch {
|
|
30
|
+
reject("ERROR", "An unexpected error occurred", nil)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static func computeS(
|
|
35
|
+
_ payload: [String: String],
|
|
36
|
+
resolve: RCTPromiseResolveBlock,
|
|
37
|
+
reject: RCTPromiseRejectBlock
|
|
38
|
+
) -> Void {
|
|
39
|
+
do {
|
|
40
|
+
let N = JKBigInteger(string: nInHex, andRadix: 16)!
|
|
41
|
+
|
|
42
|
+
let g = try parseBigInteger("g", from: payload)
|
|
43
|
+
let x = try parseBigInteger("x", from: payload)
|
|
44
|
+
let k = try parseBigInteger("k", from: payload)
|
|
45
|
+
let a = try parseBigInteger("a", from: payload)
|
|
46
|
+
let b = try parseBigInteger("b", from: payload)
|
|
47
|
+
let u = try parseBigInteger("u", from: payload)
|
|
48
|
+
|
|
49
|
+
let exponent = a.add((u.multiply(x) as! JKBigInteger)) as! JKBigInteger
|
|
50
|
+
var base = b.subtract((k.multiply((g.pow(x, andMod: N) as! JKBigInteger)) as! JKBigInteger)) as! JKBigInteger
|
|
51
|
+
base = self.mod(base, by: N)
|
|
52
|
+
var result = base.pow(exponent, andMod: N) as! JKBigInteger
|
|
53
|
+
result = self.mod(result, by: N)
|
|
54
|
+
|
|
55
|
+
resolve(result.stringValue(withRadix: 16))
|
|
56
|
+
} catch let error as ParseError {
|
|
57
|
+
reject("ERROR", error.localizedDescription, nil)
|
|
58
|
+
} catch {
|
|
59
|
+
reject("ERROR", "An unexpected error occurred", nil)
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static private func mod(_ dividend: JKBigInteger, by divisor: JKBigInteger ) -> JKBigInteger {
|
|
64
|
+
return (divisor.add((dividend.remainder(divisor) as! JKBigInteger)) as! JKBigInteger).remainder(divisor) as! JKBigInteger
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static private func parseBigInteger(_ key: String, from payload: [String: String]) throws -> JKBigInteger {
|
|
68
|
+
guard let value = payload[key] else {
|
|
69
|
+
throw ParseError.missingValue("Payload is missing `\(key)`")
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
guard let parsedValue = JKBigInteger(string: value, andRadix: 16) else {
|
|
73
|
+
throw ParseError.invalidValue("Invalid value for `\(key)`")
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return parsedValue
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
//
|
|
2
|
+
// JKBigDecimal.h
|
|
3
|
+
// JKBigInteger
|
|
4
|
+
//
|
|
5
|
+
// Created by Midfar Sun on 5/4/15.
|
|
6
|
+
// Copyright (c) 2015 Midfar Sun. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
// Licensed under the MIT License
|
|
10
|
+
|
|
11
|
+
#import <Foundation/Foundation.h>
|
|
12
|
+
#import "JKBigInteger.h"
|
|
13
|
+
|
|
14
|
+
@interface JKBigDecimal : NSObject <NSSecureCoding>
|
|
15
|
+
|
|
16
|
+
@property(nonatomic, retain)JKBigInteger *bigInteger;
|
|
17
|
+
@property(nonatomic, assign)NSUInteger figure;//小数位数
|
|
18
|
+
|
|
19
|
+
+ (id)decimalWithString:(NSString *)string;
|
|
20
|
+
- (id)initWithString:(NSString *)string;
|
|
21
|
+
|
|
22
|
+
- (id)add:(JKBigDecimal *)bigDecimal;
|
|
23
|
+
- (id)subtract:(JKBigDecimal *)bigDecimal;
|
|
24
|
+
- (id)multiply:(JKBigDecimal *)bigDecimal;
|
|
25
|
+
- (id)divide:(JKBigDecimal *)bigDecimal;
|
|
26
|
+
|
|
27
|
+
- (id)remainder:(JKBigDecimal *)bigInteger;
|
|
28
|
+
//- (NSArray *)divideAndRemainder:(JKBigDecimal *)bigInteger;
|
|
29
|
+
|
|
30
|
+
- (NSComparisonResult) compare:(JKBigDecimal *)other;
|
|
31
|
+
- (id)pow:(unsigned int)exponent;
|
|
32
|
+
|
|
33
|
+
- (id)negate;
|
|
34
|
+
- (id)abs;
|
|
35
|
+
|
|
36
|
+
- (NSString *)stringValue;
|
|
37
|
+
|
|
38
|
+
- (NSString *)description;
|
|
39
|
+
|
|
40
|
+
@end
|