@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.
Files changed (141) hide show
  1. package/AmplifyRTNCore.podspec +35 -0
  2. package/LICENSE +201 -0
  3. package/android/build.gradle +103 -0
  4. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  5. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/gradlew +234 -0
  8. package/android/gradlew.bat +89 -0
  9. package/android/src/hasPackageName/AndroidManifest.xml +4 -0
  10. package/android/src/main/AndroidManifest.xml +3 -0
  11. package/android/src/main/kotlin/com/amazonaws/amplify/rtncore/AmplifyRTNCoreModule.kt +29 -0
  12. package/android/src/main/kotlin/com/amazonaws/amplify/rtncore/AmplifyRTNCorePackage.kt +17 -0
  13. package/android/src/main/kotlin/com/amazonaws/amplify/rtncore/BigInteger.kt +65 -0
  14. package/ios/AmplifyRTNCore-Bridging-Header.h +5 -0
  15. package/ios/AmplifyRTNCore.mm +21 -0
  16. package/ios/AmplifyRTNCore.swift +29 -0
  17. package/ios/AmplifyRTNCore.xcodeproj/project.pbxproj +283 -0
  18. package/ios/AmplifyRTNCore.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  19. package/ios/BigInteger.swift +78 -0
  20. package/ios/JKBigInteger/JKBigDecimal.h +40 -0
  21. package/ios/JKBigInteger/JKBigDecimal.m +224 -0
  22. package/ios/JKBigInteger/JKBigInteger.h +58 -0
  23. package/ios/JKBigInteger/JKBigInteger.m +419 -0
  24. package/ios/JKBigInteger/LICENSE.txt +18 -0
  25. package/ios/JKBigInteger/LibTomMath/tommath.c +6925 -0
  26. package/ios/JKBigInteger/LibTomMath/tommath.h +584 -0
  27. package/ios/JKBigInteger/LibTomMath/tommath_class.h +999 -0
  28. package/ios/JKBigInteger/LibTomMath/tommath_superclass.h +76 -0
  29. package/lib/apis/computeModPow.d.ts +2 -0
  30. package/lib/apis/computeModPow.js +9 -0
  31. package/lib/apis/computeModPow.js.map +1 -0
  32. package/lib/apis/computeS.d.ts +2 -0
  33. package/lib/apis/computeS.js +9 -0
  34. package/lib/apis/computeS.js.map +1 -0
  35. package/lib/apis/getOperatingSystem.d.ts +1 -0
  36. package/lib/apis/getOperatingSystem.js +9 -0
  37. package/lib/apis/getOperatingSystem.js.map +1 -0
  38. package/lib/apis/index.d.ts +3 -0
  39. package/lib/apis/index.js +12 -0
  40. package/lib/apis/index.js.map +1 -0
  41. package/lib/index.d.ts +2 -0
  42. package/lib/index.js +19 -0
  43. package/lib/index.js.map +1 -0
  44. package/lib/moduleLoaders/index.d.ts +8 -0
  45. package/lib/moduleLoaders/index.js +22 -0
  46. package/lib/moduleLoaders/index.js.map +1 -0
  47. package/lib/moduleLoaders/loadAmplifyPushNotification.d.ts +21 -0
  48. package/lib/moduleLoaders/loadAmplifyPushNotification.js +26 -0
  49. package/lib/moduleLoaders/loadAmplifyPushNotification.js.map +1 -0
  50. package/lib/moduleLoaders/loadAppState.d.ts +1 -0
  51. package/lib/moduleLoaders/loadAppState.js +9 -0
  52. package/lib/moduleLoaders/loadAppState.js.map +1 -0
  53. package/lib/moduleLoaders/loadAsyncStorage.d.ts +2 -0
  54. package/lib/moduleLoaders/loadAsyncStorage.js +26 -0
  55. package/lib/moduleLoaders/loadAsyncStorage.js.map +1 -0
  56. package/lib/moduleLoaders/loadBase64.d.ts +5 -0
  57. package/lib/moduleLoaders/loadBase64.js +9 -0
  58. package/lib/moduleLoaders/loadBase64.js.map +1 -0
  59. package/lib/moduleLoaders/loadBuffer.d.ts +22 -0
  60. package/lib/moduleLoaders/loadBuffer.js +9 -0
  61. package/lib/moduleLoaders/loadBuffer.js.map +1 -0
  62. package/lib/moduleLoaders/loadGetRandomValues.d.ts +1 -0
  63. package/lib/moduleLoaders/loadGetRandomValues.js +21 -0
  64. package/lib/moduleLoaders/loadGetRandomValues.js.map +1 -0
  65. package/lib/moduleLoaders/loadNetInfo.d.ts +4 -0
  66. package/lib/moduleLoaders/loadNetInfo.js +26 -0
  67. package/lib/moduleLoaders/loadNetInfo.js.map +1 -0
  68. package/lib/moduleLoaders/loadUrlPolyfill.d.ts +1 -0
  69. package/lib/moduleLoaders/loadUrlPolyfill.js +21 -0
  70. package/lib/moduleLoaders/loadUrlPolyfill.js.map +1 -0
  71. package/lib/nativeModule.d.ts +2 -0
  72. package/lib/nativeModule.js +18 -0
  73. package/lib/nativeModule.js.map +1 -0
  74. package/lib/types.d.ts +15 -0
  75. package/lib/types.js +5 -0
  76. package/lib/types.js.map +1 -0
  77. package/lib-esm/apis/computeModPow.d.ts +2 -0
  78. package/lib-esm/apis/computeModPow.js +5 -0
  79. package/lib-esm/apis/computeModPow.js.map +1 -0
  80. package/lib-esm/apis/computeS.d.ts +2 -0
  81. package/lib-esm/apis/computeS.js +5 -0
  82. package/lib-esm/apis/computeS.js.map +1 -0
  83. package/lib-esm/apis/getOperatingSystem.d.ts +1 -0
  84. package/lib-esm/apis/getOperatingSystem.js +5 -0
  85. package/lib-esm/apis/getOperatingSystem.js.map +1 -0
  86. package/lib-esm/apis/index.d.ts +3 -0
  87. package/lib-esm/apis/index.js +6 -0
  88. package/lib-esm/apis/index.js.map +1 -0
  89. package/lib-esm/index.d.ts +2 -0
  90. package/lib-esm/index.js +5 -0
  91. package/lib-esm/index.js.map +1 -0
  92. package/lib-esm/moduleLoaders/index.d.ts +8 -0
  93. package/lib-esm/moduleLoaders/index.js +11 -0
  94. package/lib-esm/moduleLoaders/index.js.map +1 -0
  95. package/lib-esm/moduleLoaders/loadAmplifyPushNotification.d.ts +21 -0
  96. package/lib-esm/moduleLoaders/loadAmplifyPushNotification.js +22 -0
  97. package/lib-esm/moduleLoaders/loadAmplifyPushNotification.js.map +1 -0
  98. package/lib-esm/moduleLoaders/loadAppState.d.ts +1 -0
  99. package/lib-esm/moduleLoaders/loadAppState.js +5 -0
  100. package/lib-esm/moduleLoaders/loadAppState.js.map +1 -0
  101. package/lib-esm/moduleLoaders/loadAsyncStorage.d.ts +2 -0
  102. package/lib-esm/moduleLoaders/loadAsyncStorage.js +22 -0
  103. package/lib-esm/moduleLoaders/loadAsyncStorage.js.map +1 -0
  104. package/lib-esm/moduleLoaders/loadBase64.d.ts +5 -0
  105. package/lib-esm/moduleLoaders/loadBase64.js +5 -0
  106. package/lib-esm/moduleLoaders/loadBase64.js.map +1 -0
  107. package/lib-esm/moduleLoaders/loadBuffer.d.ts +22 -0
  108. package/lib-esm/moduleLoaders/loadBuffer.js +5 -0
  109. package/lib-esm/moduleLoaders/loadBuffer.js.map +1 -0
  110. package/lib-esm/moduleLoaders/loadGetRandomValues.d.ts +1 -0
  111. package/lib-esm/moduleLoaders/loadGetRandomValues.js +17 -0
  112. package/lib-esm/moduleLoaders/loadGetRandomValues.js.map +1 -0
  113. package/lib-esm/moduleLoaders/loadNetInfo.d.ts +4 -0
  114. package/lib-esm/moduleLoaders/loadNetInfo.js +22 -0
  115. package/lib-esm/moduleLoaders/loadNetInfo.js.map +1 -0
  116. package/lib-esm/moduleLoaders/loadUrlPolyfill.d.ts +1 -0
  117. package/lib-esm/moduleLoaders/loadUrlPolyfill.js +17 -0
  118. package/lib-esm/moduleLoaders/loadUrlPolyfill.js.map +1 -0
  119. package/lib-esm/nativeModule.d.ts +2 -0
  120. package/lib-esm/nativeModule.js +15 -0
  121. package/lib-esm/nativeModule.js.map +1 -0
  122. package/lib-esm/types.d.ts +15 -0
  123. package/lib-esm/types.js +4 -0
  124. package/lib-esm/types.js.map +1 -0
  125. package/package.json +69 -0
  126. package/src/apis/computeModPow.ts +8 -0
  127. package/src/apis/computeS.ts +8 -0
  128. package/src/apis/getOperatingSystem.ts +6 -0
  129. package/src/apis/index.ts +6 -0
  130. package/src/index.ts +14 -0
  131. package/src/moduleLoaders/index.ts +11 -0
  132. package/src/moduleLoaders/loadAmplifyPushNotification.ts +29 -0
  133. package/src/moduleLoaders/loadAppState.ts +6 -0
  134. package/src/moduleLoaders/loadAsyncStorage.ts +29 -0
  135. package/src/moduleLoaders/loadBase64.ts +6 -0
  136. package/src/moduleLoaders/loadBuffer.ts +6 -0
  137. package/src/moduleLoaders/loadGetRandomValues.ts +19 -0
  138. package/src/moduleLoaders/loadNetInfo.ts +31 -0
  139. package/src/moduleLoaders/loadUrlPolyfill.ts +19 -0
  140. package/src/nativeModule.ts +22 -0
  141. package/src/types.ts +19 -0
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
+ </manifest>
@@ -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,5 @@
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
+ #import <React/RCTViewManager.h>
@@ -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,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ </Workspace>
@@ -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