react-native-quick-crypto 0.7.11 → 1.0.0-beta.10
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/QuickCrypto.podspec +47 -0
- package/README.md +6 -4
- package/android/CMakeLists.txt +26 -55
- package/android/build.gradle +70 -112
- package/android/gradle.properties +3 -3
- package/android/src/main/cpp/cpp-adapter.cpp +3 -64
- package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +43 -0
- package/cpp/ed25519/HybridEdKeyPair.cpp +268 -0
- package/cpp/ed25519/HybridEdKeyPair.hpp +85 -0
- package/cpp/pbkdf2/HybridPbkdf2.cpp +72 -0
- package/cpp/pbkdf2/HybridPbkdf2.hpp +35 -0
- package/cpp/random/HybridRandom.cpp +59 -0
- package/cpp/random/HybridRandom.hpp +33 -0
- package/cpp/utils/Utils.hpp +20 -0
- package/lib/commonjs/ed.js +42 -0
- package/lib/commonjs/ed.js.map +1 -0
- package/lib/commonjs/index.js +90 -39
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/keys/classes.js +191 -0
- package/lib/commonjs/keys/classes.js.map +1 -0
- package/lib/commonjs/keys/generateKeyPair.js +148 -0
- package/lib/commonjs/keys/generateKeyPair.js.map +1 -0
- package/lib/commonjs/keys/index.js +62 -0
- package/lib/commonjs/keys/index.js.map +1 -0
- package/lib/commonjs/keys/signVerify.js +41 -0
- package/lib/commonjs/keys/signVerify.js.map +1 -0
- package/lib/commonjs/keys/utils.js +118 -0
- package/lib/commonjs/keys/utils.js.map +1 -0
- package/lib/commonjs/pbkdf2.js +29 -19
- package/lib/commonjs/pbkdf2.js.map +1 -1
- package/lib/commonjs/random.js +27 -11
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/{NativeQuickCrypto/aes.js → specs/edKeyPair.nitro.js} +1 -1
- package/lib/commonjs/{NativeQuickCrypto/aes.js.map → specs/edKeyPair.nitro.js.map} +1 -1
- package/lib/commonjs/{NativeQuickCrypto/keygen.js → specs/keyObjectHandle.nitro.js} +1 -1
- package/lib/commonjs/{NativeQuickCrypto/hash.js.map → specs/keyObjectHandle.nitro.js.map} +1 -1
- package/lib/commonjs/{NativeQuickCrypto/rsa.js → specs/pbkdf2.nitro.js} +1 -1
- package/lib/{module/NativeQuickCrypto/aes.js.map → commonjs/specs/pbkdf2.nitro.js.map} +1 -1
- package/lib/commonjs/{NativeQuickCrypto/webcrypto.js → specs/random.nitro.js} +1 -1
- package/lib/{module/NativeQuickCrypto/rsa.js.map → commonjs/specs/random.nitro.js.map} +1 -1
- package/lib/commonjs/utils/conversion.js +117 -0
- package/lib/commonjs/utils/conversion.js.map +1 -0
- package/lib/commonjs/utils/errors.js +14 -0
- package/lib/commonjs/utils/errors.js.map +1 -0
- package/lib/commonjs/{Hashnames.js → utils/hashnames.js} +2 -5
- package/lib/commonjs/utils/hashnames.js.map +1 -0
- package/lib/commonjs/utils/index.js +61 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/utils/types.js +40 -0
- package/lib/commonjs/utils/types.js.map +1 -0
- package/lib/commonjs/utils/validation.js +25 -0
- package/lib/commonjs/utils/validation.js.map +1 -0
- package/lib/module/ed.js +37 -0
- package/lib/module/ed.js.map +1 -0
- package/lib/module/index.js +44 -37
- package/lib/module/index.js.map +1 -1
- package/lib/module/keys/classes.js +182 -0
- package/lib/module/keys/classes.js.map +1 -0
- package/lib/module/keys/generateKeyPair.js +148 -0
- package/lib/module/keys/generateKeyPair.js.map +1 -0
- package/lib/module/keys/index.js +29 -0
- package/lib/module/keys/index.js.map +1 -0
- package/lib/module/keys/signVerify.js +41 -0
- package/lib/module/keys/signVerify.js.map +1 -0
- package/lib/module/keys/utils.js +110 -0
- package/lib/module/keys/utils.js.map +1 -0
- package/lib/module/pbkdf2.js +17 -7
- package/lib/module/pbkdf2.js.map +1 -1
- package/lib/module/random.js +26 -10
- package/lib/module/random.js.map +1 -1
- package/lib/module/specs/edKeyPair.nitro.js +4 -0
- package/lib/{commonjs/NativeQuickCrypto/rsa.js.map → module/specs/edKeyPair.nitro.js.map} +1 -1
- package/lib/module/specs/keyObjectHandle.nitro.js +4 -0
- package/lib/{commonjs/NativeQuickCrypto/hmac.js.map → module/specs/keyObjectHandle.nitro.js.map} +1 -1
- package/lib/module/specs/pbkdf2.nitro.js +4 -0
- package/lib/module/specs/pbkdf2.nitro.js.map +1 -0
- package/lib/module/specs/random.nitro.js +4 -0
- package/lib/module/specs/random.nitro.js.map +1 -0
- package/lib/module/utils/conversion.js +107 -0
- package/lib/module/utils/conversion.js.map +1 -0
- package/lib/module/utils/errors.js +10 -0
- package/lib/module/utils/errors.js.map +1 -0
- package/lib/module/{Hashnames.js → utils/hashnames.js} +2 -5
- package/lib/module/utils/hashnames.js.map +1 -0
- package/lib/module/utils/index.js +8 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/module/utils/types.js +42 -0
- package/lib/module/utils/types.js.map +1 -0
- package/lib/module/utils/validation.js +19 -0
- package/lib/module/utils/validation.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/typescript/ed.d.ts +17 -0
- package/lib/typescript/ed.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +74 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/keys/classes.d.ts +38 -0
- package/lib/typescript/keys/classes.d.ts.map +1 -0
- package/lib/typescript/keys/generateKeyPair.d.ts +1 -0
- package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -0
- package/lib/typescript/keys/index.d.ts +4 -0
- package/lib/typescript/keys/index.d.ts.map +1 -0
- package/lib/typescript/keys/signVerify.d.ts +1 -0
- package/lib/typescript/keys/signVerify.d.ts.map +1 -0
- package/lib/typescript/keys/utils.d.ts +32 -0
- package/lib/typescript/keys/utils.d.ts.map +1 -0
- package/lib/typescript/{src/pbkdf2.d.ts → pbkdf2.d.ts} +4 -3
- package/lib/typescript/pbkdf2.d.ts.map +1 -0
- package/lib/typescript/{src/random.d.ts → random.d.ts} +4 -4
- package/lib/typescript/random.d.ts.map +1 -0
- package/lib/typescript/specs/edKeyPair.nitro.d.ts +16 -0
- package/lib/typescript/specs/edKeyPair.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +15 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/pbkdf2.nitro.d.ts +9 -0
- package/lib/typescript/specs/pbkdf2.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/random.nitro.d.ts +9 -0
- package/lib/typescript/specs/random.nitro.d.ts.map +1 -0
- package/lib/typescript/utils/conversion.d.ts +25 -0
- package/lib/typescript/utils/conversion.d.ts.map +1 -0
- package/lib/typescript/utils/errors.d.ts +7 -0
- package/lib/typescript/utils/errors.d.ts.map +1 -0
- package/lib/typescript/{src/Hashnames.d.ts → utils/hashnames.d.ts} +3 -3
- package/lib/typescript/utils/hashnames.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +6 -0
- package/lib/typescript/utils/index.d.ts.map +1 -0
- package/lib/typescript/utils/types.d.ts +162 -0
- package/lib/typescript/utils/types.d.ts.map +1 -0
- package/lib/typescript/utils/validation.d.ts +8 -0
- package/lib/typescript/utils/validation.d.ts.map +1 -0
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +65 -0
- package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +27 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +64 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +58 -0
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +17 -0
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +27 -0
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +38 -0
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +55 -0
- package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +12 -0
- package/nitrogen/generated/shared/c++/CFRGKeyPairType.hpp +86 -0
- package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +93 -0
- package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +66 -0
- package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +65 -0
- package/nitrogen/generated/shared/c++/JWK.hpp +162 -0
- package/nitrogen/generated/shared/c++/JWKkty.hpp +86 -0
- package/nitrogen/generated/shared/c++/JWKuse.hpp +78 -0
- package/nitrogen/generated/shared/c++/KFormatType.hpp +65 -0
- package/nitrogen/generated/shared/c++/KeyDetail.hpp +93 -0
- package/nitrogen/generated/shared/c++/KeyEncoding.hpp +66 -0
- package/nitrogen/generated/shared/c++/KeyType.hpp +65 -0
- package/nitrogen/generated/shared/c++/KeyUsage.hpp +102 -0
- package/nitrogen/generated/shared/c++/NamedCurve.hpp +82 -0
- package/package.json +57 -51
- package/src/ed.ts +79 -0
- package/src/index.ts +43 -47
- package/src/keys/classes.ts +211 -0
- package/src/keys/generateKeyPair.ts +146 -0
- package/src/keys/index.ts +42 -0
- package/src/keys/signVerify.ts +39 -0
- package/src/keys/utils.ts +184 -0
- package/src/pbkdf2.ts +26 -15
- package/src/random.ts +33 -20
- package/src/specs/edKeyPair.nitro.ts +41 -0
- package/src/specs/keyObjectHandle.nitro.ts +32 -0
- package/src/{NativeQuickCrypto/pbkdf2.ts → specs/pbkdf2.nitro.ts} +8 -6
- package/src/specs/random.nitro.ts +14 -0
- package/src/utils/conversion.ts +123 -0
- package/src/utils/errors.ts +15 -0
- package/src/{Hashnames.ts → utils/hashnames.ts} +4 -7
- package/src/utils/index.ts +5 -0
- package/src/utils/types.ts +275 -0
- package/src/utils/validation.ts +35 -0
- package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoModule.java +0 -70
- package/android/src/main/java/com/margelo/quickcrypto/QuickCryptoPackage.java +0 -25
- package/cpp/Cipher/MGLCipherHostObject.cpp +0 -663
- package/cpp/Cipher/MGLCipherHostObject.h +0 -90
- package/cpp/Cipher/MGLCreateCipherInstaller.cpp +0 -75
- package/cpp/Cipher/MGLCreateCipherInstaller.h +0 -22
- package/cpp/Cipher/MGLCreateDecipherInstaller.cpp +0 -77
- package/cpp/Cipher/MGLCreateDecipherInstaller.h +0 -17
- package/cpp/Cipher/MGLGenerateKeyPairInstaller.cpp +0 -134
- package/cpp/Cipher/MGLGenerateKeyPairInstaller.h +0 -35
- package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp +0 -63
- package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.h +0 -37
- package/cpp/Cipher/MGLPublicCipher.h +0 -124
- package/cpp/Cipher/MGLPublicCipherInstaller.h +0 -107
- package/cpp/Cipher/MGLRsa.cpp +0 -573
- package/cpp/Cipher/MGLRsa.h +0 -109
- package/cpp/HMAC/MGLHmacHostObject.cpp +0 -95
- package/cpp/HMAC/MGLHmacHostObject.h +0 -39
- package/cpp/HMAC/MGLHmacInstaller.cpp +0 -43
- package/cpp/HMAC/MGLHmacInstaller.h +0 -20
- package/cpp/Hash/MGLHashHostObject.cpp +0 -147
- package/cpp/Hash/MGLHashHostObject.h +0 -53
- package/cpp/Hash/MGLHashInstaller.cpp +0 -44
- package/cpp/Hash/MGLHashInstaller.h +0 -20
- package/cpp/JSIUtils/MGLJSIMacros.h +0 -110
- package/cpp/JSIUtils/MGLJSIUtils.h +0 -41
- package/cpp/JSIUtils/MGLSmartHostObject.cpp +0 -43
- package/cpp/JSIUtils/MGLSmartHostObject.h +0 -46
- package/cpp/JSIUtils/MGLThreadAwareHostObject.cpp +0 -24
- package/cpp/JSIUtils/MGLThreadAwareHostObject.h +0 -43
- package/cpp/JSIUtils/MGLTypedArray.cpp +0 -352
- package/cpp/JSIUtils/MGLTypedArray.h +0 -179
- package/cpp/MGLKeys.cpp +0 -1426
- package/cpp/MGLKeys.h +0 -203
- package/cpp/MGLQuickCryptoHostObject.cpp +0 -127
- package/cpp/MGLQuickCryptoHostObject.h +0 -30
- package/cpp/Random/MGLRandomHostObject.cpp +0 -96
- package/cpp/Random/MGLRandomHostObject.h +0 -27
- package/cpp/Sig/MGLSignHostObjects.cpp +0 -757
- package/cpp/Sig/MGLSignHostObjects.h +0 -128
- package/cpp/Sig/MGLSignInstaller.cpp +0 -24
- package/cpp/Sig/MGLSignInstaller.h +0 -29
- package/cpp/Sig/MGLVerifyInstaller.cpp +0 -24
- package/cpp/Sig/MGLVerifyInstaller.h +0 -22
- package/cpp/Utils/MGLDispatchQueue.cpp +0 -75
- package/cpp/Utils/MGLDispatchQueue.h +0 -55
- package/cpp/Utils/MGLUtils.cpp +0 -295
- package/cpp/Utils/MGLUtils.h +0 -358
- package/cpp/Utils/base64.h +0 -320
- package/cpp/Utils/logs.h +0 -38
- package/cpp/Utils/node.h +0 -13
- package/cpp/fastpbkdf2/MGLPbkdf2HostObject.cpp +0 -164
- package/cpp/fastpbkdf2/MGLPbkdf2HostObject.h +0 -29
- package/cpp/webcrypto/MGLWebCrypto.cpp +0 -125
- package/cpp/webcrypto/MGLWebCrypto.h +0 -32
- package/cpp/webcrypto/crypto_aes.cpp +0 -516
- package/cpp/webcrypto/crypto_aes.h +0 -79
- package/cpp/webcrypto/crypto_ec.cpp +0 -424
- package/cpp/webcrypto/crypto_ec.h +0 -78
- package/cpp/webcrypto/crypto_keygen.cpp +0 -86
- package/cpp/webcrypto/crypto_keygen.h +0 -38
- package/ios/QuickCrypto.xcodeproj/project.pbxproj +0 -274
- package/ios/QuickCrypto.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/QuickCrypto.xcodeproj/project.xcworkspace/xcuserdata/brad.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/QuickCrypto.xcodeproj/xcuserdata/brad.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/ios/QuickCryptoModule.h +0 -5
- package/ios/QuickCryptoModule.mm +0 -57
- package/lib/commonjs/Algorithms.js +0 -224
- package/lib/commonjs/Algorithms.js.map +0 -1
- package/lib/commonjs/Cipher.js +0 -504
- package/lib/commonjs/Cipher.js.map +0 -1
- package/lib/commonjs/Hash.js +0 -102
- package/lib/commonjs/Hash.js.map +0 -1
- package/lib/commonjs/Hashnames.js.map +0 -1
- package/lib/commonjs/Hmac.js +0 -81
- package/lib/commonjs/Hmac.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/Cipher.js +0 -30
- package/lib/commonjs/NativeQuickCrypto/Cipher.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js +0 -59
- package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/hash.js +0 -2
- package/lib/commonjs/NativeQuickCrypto/hmac.js +0 -2
- package/lib/commonjs/NativeQuickCrypto/keygen.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/pbkdf2.js +0 -2
- package/lib/commonjs/NativeQuickCrypto/pbkdf2.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/random.js +0 -2
- package/lib/commonjs/NativeQuickCrypto/random.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/sig.js +0 -19
- package/lib/commonjs/NativeQuickCrypto/sig.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/webcrypto.js.map +0 -1
- package/lib/commonjs/Utils.js +0 -437
- package/lib/commonjs/Utils.js.map +0 -1
- package/lib/commonjs/aes.js +0 -282
- package/lib/commonjs/aes.js.map +0 -1
- package/lib/commonjs/constants.js +0 -85
- package/lib/commonjs/constants.js.map +0 -1
- package/lib/commonjs/ec.js +0 -275
- package/lib/commonjs/ec.js.map +0 -1
- package/lib/commonjs/keygen.js +0 -58
- package/lib/commonjs/keygen.js.map +0 -1
- package/lib/commonjs/keys.js +0 -497
- package/lib/commonjs/keys.js.map +0 -1
- package/lib/commonjs/rsa.js +0 -248
- package/lib/commonjs/rsa.js.map +0 -1
- package/lib/commonjs/sig.js +0 -128
- package/lib/commonjs/sig.js.map +0 -1
- package/lib/commonjs/subtle.js +0 -450
- package/lib/commonjs/subtle.js.map +0 -1
- package/lib/commonjs/webcrypto.js +0 -14
- package/lib/commonjs/webcrypto.js.map +0 -1
- package/lib/module/Algorithms.js +0 -219
- package/lib/module/Algorithms.js.map +0 -1
- package/lib/module/Cipher.js +0 -493
- package/lib/module/Cipher.js.map +0 -1
- package/lib/module/Hash.js +0 -96
- package/lib/module/Hash.js.map +0 -1
- package/lib/module/Hashnames.js.map +0 -1
- package/lib/module/Hmac.js +0 -76
- package/lib/module/Hmac.js.map +0 -1
- package/lib/module/NativeQuickCrypto/Cipher.js +0 -26
- package/lib/module/NativeQuickCrypto/Cipher.js.map +0 -1
- package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js +0 -56
- package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
- package/lib/module/NativeQuickCrypto/aes.js +0 -4
- package/lib/module/NativeQuickCrypto/hash.js +0 -2
- package/lib/module/NativeQuickCrypto/hash.js.map +0 -1
- package/lib/module/NativeQuickCrypto/hmac.js +0 -2
- package/lib/module/NativeQuickCrypto/hmac.js.map +0 -1
- package/lib/module/NativeQuickCrypto/keygen.js +0 -4
- package/lib/module/NativeQuickCrypto/keygen.js.map +0 -1
- package/lib/module/NativeQuickCrypto/pbkdf2.js +0 -2
- package/lib/module/NativeQuickCrypto/pbkdf2.js.map +0 -1
- package/lib/module/NativeQuickCrypto/random.js +0 -2
- package/lib/module/NativeQuickCrypto/random.js.map +0 -1
- package/lib/module/NativeQuickCrypto/rsa.js +0 -4
- package/lib/module/NativeQuickCrypto/sig.js +0 -17
- package/lib/module/NativeQuickCrypto/sig.js.map +0 -1
- package/lib/module/NativeQuickCrypto/webcrypto.js +0 -4
- package/lib/module/NativeQuickCrypto/webcrypto.js.map +0 -1
- package/lib/module/Utils.js +0 -369
- package/lib/module/Utils.js.map +0 -1
- package/lib/module/aes.js +0 -275
- package/lib/module/aes.js.map +0 -1
- package/lib/module/constants.js +0 -81
- package/lib/module/constants.js.map +0 -1
- package/lib/module/ec.js +0 -266
- package/lib/module/ec.js.map +0 -1
- package/lib/module/keygen.js +0 -51
- package/lib/module/keygen.js.map +0 -1
- package/lib/module/keys.js +0 -482
- package/lib/module/keys.js.map +0 -1
- package/lib/module/rsa.js +0 -242
- package/lib/module/rsa.js.map +0 -1
- package/lib/module/sig.js +0 -123
- package/lib/module/sig.js.map +0 -1
- package/lib/module/subtle.js +0 -445
- package/lib/module/subtle.js.map +0 -1
- package/lib/module/webcrypto.js +0 -10
- package/lib/module/webcrypto.js.map +0 -1
- package/lib/typescript/src/Algorithms.d.ts +0 -4
- package/lib/typescript/src/Algorithms.d.ts.map +0 -1
- package/lib/typescript/src/Cipher.d.ts +0 -85
- package/lib/typescript/src/Cipher.d.ts.map +0 -1
- package/lib/typescript/src/Hash.d.ts +0 -44
- package/lib/typescript/src/Hash.d.ts.map +0 -1
- package/lib/typescript/src/Hashnames.d.ts.map +0 -1
- package/lib/typescript/src/Hmac.d.ts +0 -37
- package/lib/typescript/src/Hmac.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/Cipher.d.ts +0 -44
- package/lib/typescript/src/NativeQuickCrypto/Cipher.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/NativeQuickCrypto.d.ts +0 -33
- package/lib/typescript/src/NativeQuickCrypto/NativeQuickCrypto.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/aes.d.ts +0 -5
- package/lib/typescript/src/NativeQuickCrypto/aes.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/hash.d.ts +0 -7
- package/lib/typescript/src/NativeQuickCrypto/hash.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/hmac.d.ts +0 -6
- package/lib/typescript/src/NativeQuickCrypto/hmac.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/keygen.d.ts +0 -4
- package/lib/typescript/src/NativeQuickCrypto/keygen.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/pbkdf2.d.ts +0 -5
- package/lib/typescript/src/NativeQuickCrypto/pbkdf2.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/random.d.ts +0 -5
- package/lib/typescript/src/NativeQuickCrypto/random.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/rsa.d.ts +0 -5
- package/lib/typescript/src/NativeQuickCrypto/rsa.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/sig.d.ts +0 -23
- package/lib/typescript/src/NativeQuickCrypto/sig.d.ts.map +0 -1
- package/lib/typescript/src/NativeQuickCrypto/webcrypto.d.ts +0 -40
- package/lib/typescript/src/NativeQuickCrypto/webcrypto.d.ts.map +0 -1
- package/lib/typescript/src/Utils.d.ts +0 -71
- package/lib/typescript/src/Utils.d.ts.map +0 -1
- package/lib/typescript/src/aes.d.ts +0 -22
- package/lib/typescript/src/aes.d.ts.map +0 -1
- package/lib/typescript/src/constants.d.ts +0 -76
- package/lib/typescript/src/constants.d.ts.map +0 -1
- package/lib/typescript/src/ec.d.ts +0 -7
- package/lib/typescript/src/ec.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -139
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/keygen.d.ts +0 -6
- package/lib/typescript/src/keygen.d.ts.map +0 -1
- package/lib/typescript/src/keys.d.ts +0 -211
- package/lib/typescript/src/keys.d.ts.map +0 -1
- package/lib/typescript/src/pbkdf2.d.ts.map +0 -1
- package/lib/typescript/src/random.d.ts.map +0 -1
- package/lib/typescript/src/rsa.d.ts +0 -12
- package/lib/typescript/src/rsa.d.ts.map +0 -1
- package/lib/typescript/src/sig.d.ts +0 -21
- package/lib/typescript/src/sig.d.ts.map +0 -1
- package/lib/typescript/src/subtle.d.ts +0 -15
- package/lib/typescript/src/subtle.d.ts.map +0 -1
- package/lib/typescript/src/webcrypto.d.ts +0 -9
- package/lib/typescript/src/webcrypto.d.ts.map +0 -1
- package/react-native-quick-crypto.podspec +0 -40
- package/src/Algorithms.ts +0 -247
- package/src/Cipher.ts +0 -890
- package/src/Hash.ts +0 -139
- package/src/Hmac.ts +0 -107
- package/src/NativeQuickCrypto/Cipher.ts +0 -103
- package/src/NativeQuickCrypto/NativeQuickCrypto.ts +0 -106
- package/src/NativeQuickCrypto/aes.ts +0 -14
- package/src/NativeQuickCrypto/hash.ts +0 -10
- package/src/NativeQuickCrypto/hmac.ts +0 -9
- package/src/NativeQuickCrypto/keygen.ts +0 -7
- package/src/NativeQuickCrypto/random.ts +0 -12
- package/src/NativeQuickCrypto/rsa.ts +0 -12
- package/src/NativeQuickCrypto/sig.ts +0 -46
- package/src/NativeQuickCrypto/webcrypto.ts +0 -73
- package/src/Utils.ts +0 -628
- package/src/aes.ts +0 -402
- package/src/constants.ts +0 -79
- package/src/ec.ts +0 -374
- package/src/keygen.ts +0 -80
- package/src/keys.ts +0 -797
- package/src/rsa.ts +0 -372
- package/src/sig.ts +0 -163
- package/src/subtle.ts +0 -643
- package/src/webcrypto.ts +0 -8
- /package/android/src/main/{AndroidManifestNew.xml → AndroidManifest.xml} +0 -0
- /package/{cpp → deps}/fastpbkdf2/fastpbkdf2.c +0 -0
- /package/{cpp → deps}/fastpbkdf2/fastpbkdf2.h +0 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
|
|
5
|
+
Pod::UI.puts "[QuickCrypto] 💨 crypto just got quicker"
|
|
6
|
+
|
|
7
|
+
Pod::Spec.new do |s|
|
|
8
|
+
s.name = "QuickCrypto"
|
|
9
|
+
s.version = package["version"]
|
|
10
|
+
s.summary = package["description"]
|
|
11
|
+
s.homepage = package["homepage"]
|
|
12
|
+
s.license = package["license"]
|
|
13
|
+
s.authors = package["authors"]
|
|
14
|
+
|
|
15
|
+
s.ios.deployment_target = 16.0 # min_ios_version_supported (see https://github.com/Expensify/App/pull/53149#issuecomment-2562786065)
|
|
16
|
+
s.visionos.deployment_target = 1.0
|
|
17
|
+
s.macos.deployment_target = 10.13
|
|
18
|
+
s.tvos.deployment_target = 13.4
|
|
19
|
+
|
|
20
|
+
s.source = { :git => "https://github.com/margelo/react-native-quick-crypto.git", :tag => "#{s.version}" }
|
|
21
|
+
|
|
22
|
+
s.source_files = [
|
|
23
|
+
# implementation (Swift)
|
|
24
|
+
"ios/**/*.{swift}",
|
|
25
|
+
# ios (Objective-C++)
|
|
26
|
+
"ios/**/*.{h,m,mm}",
|
|
27
|
+
# implementation (C++)
|
|
28
|
+
"cpp/**/*.{hpp,cpp}",
|
|
29
|
+
# dependencies (C++)
|
|
30
|
+
"deps/**/*.{hpp,cpp}",
|
|
31
|
+
# dependencies (C)
|
|
32
|
+
"deps/**/*.{h,c}",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
if ENV["USE_FRAMEWORKS"]
|
|
36
|
+
s.dependency "React-Core"
|
|
37
|
+
add_dependency(s, "React-jsinspector", :framework_name => "jsinspector_modern")
|
|
38
|
+
add_dependency(s, "React-rendererconsistency", :framework_name => "React_rendererconsistency")
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Add all files generated by Nitrogen
|
|
42
|
+
load 'nitrogen/generated/ios/QuickCrypto+autolinking.rb'
|
|
43
|
+
add_nitrogen_files(s)
|
|
44
|
+
|
|
45
|
+
s.dependency "OpenSSL-Universal"
|
|
46
|
+
install_modules_dependencies(s)
|
|
47
|
+
end
|
package/README.md
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
A fast implementation of Node's `crypto` module.
|
|
8
8
|
|
|
9
|
-
> Note: This version `
|
|
9
|
+
> Note: This version `1.x` is undergoing a major refactor, porting to New Architecture, Bridgeless, and [`Nitro Modules`](https://github.com/mrousavy/react-native-nitro) and is incomplete compared to the `0.x` version. Status, as always, will be represented in [implementation-coverage.md](../main/docs/implementation-coverage.md).
|
|
10
|
+
|
|
11
|
+
> Note: Minimum supported version of React Native is `0.75`. If you need to use earlier versions, please use `0.x` versions of this library.
|
|
10
12
|
|
|
11
13
|
## Features
|
|
12
14
|
|
|
@@ -24,8 +26,8 @@ QuickCrypto can be used as a drop-in replacement for your Web3/Crypto apps to sp
|
|
|
24
26
|
|
|
25
27
|
| Version | RN Architecture | Modules |
|
|
26
28
|
| ------- | ------ | ------- |
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
+
| `1.x` | new [->](https://github.com/reactwg/react-native-new-architecture/blob/main/docs/enable-apps.md) | Nitro Modules [->](https://github.com/margelo/react-native-nitro) |
|
|
30
|
+
| `0.x` | old | Bridge & JSI |
|
|
29
31
|
|
|
30
32
|
## Benchmarks
|
|
31
33
|
|
|
@@ -59,7 +61,7 @@ Creating a Wallet took 289 ms
|
|
|
59
61
|
</h3>
|
|
60
62
|
|
|
61
63
|
```sh
|
|
62
|
-
|
|
64
|
+
bun add react-native-quick-crypto react-native-nitro-modules
|
|
63
65
|
cd ios && pod install
|
|
64
66
|
```
|
|
65
67
|
|
package/android/CMakeLists.txt
CHANGED
|
@@ -1,84 +1,55 @@
|
|
|
1
|
-
project(
|
|
1
|
+
project(QuickCrypto)
|
|
2
2
|
cmake_minimum_required(VERSION 3.9.0)
|
|
3
3
|
|
|
4
|
-
set(PACKAGE_NAME
|
|
5
|
-
set(BUILD_DIR ${CMAKE_SOURCE_DIR}/build)
|
|
4
|
+
set(PACKAGE_NAME QuickCrypto)
|
|
6
5
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
7
|
-
set(CMAKE_CXX_STANDARD
|
|
6
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
8
7
|
|
|
9
8
|
# Define C++ library and add all sources
|
|
10
9
|
add_library(
|
|
11
10
|
${PACKAGE_NAME} SHARED
|
|
12
11
|
src/main/cpp/cpp-adapter.cpp
|
|
13
|
-
../cpp/
|
|
14
|
-
../cpp/
|
|
15
|
-
../cpp/
|
|
16
|
-
../
|
|
17
|
-
../cpp/JSIUtils/MGLSmartHostObject.cpp
|
|
18
|
-
../cpp/HMAC/MGLHmacInstaller.cpp
|
|
19
|
-
../cpp/HMAC/MGLHmacHostObject.cpp
|
|
20
|
-
../cpp/fastpbkdf2/MGLPbkdf2HostObject.cpp
|
|
21
|
-
../cpp/fastpbkdf2/fastpbkdf2.c
|
|
22
|
-
../cpp/Random/MGLRandomHostObject.cpp
|
|
23
|
-
../cpp/Hash/MGLHashInstaller.cpp
|
|
24
|
-
../cpp/Hash/MGLHashHostObject.cpp
|
|
25
|
-
../cpp/Cipher/MGLCipherHostObject.cpp
|
|
26
|
-
../cpp/Cipher/MGLCreateCipherInstaller.cpp
|
|
27
|
-
../cpp/Cipher/MGLCreateDecipherInstaller.cpp
|
|
28
|
-
../cpp/MGLKeys.cpp
|
|
29
|
-
../cpp/Utils/MGLUtils.cpp
|
|
30
|
-
../cpp/Cipher/MGLRsa.cpp
|
|
31
|
-
../cpp/Cipher/MGLGenerateKeyPairInstaller.cpp
|
|
32
|
-
../cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp
|
|
33
|
-
../cpp/Sig/MGLSignInstaller.cpp
|
|
34
|
-
../cpp/Sig/MGLVerifyInstaller.cpp
|
|
35
|
-
../cpp/Sig/MGLSignHostObjects.cpp
|
|
36
|
-
../cpp/webcrypto/MGLWebCrypto.cpp
|
|
37
|
-
../cpp/webcrypto/crypto_aes.cpp
|
|
38
|
-
../cpp/webcrypto/crypto_ec.cpp
|
|
39
|
-
../cpp/webcrypto/crypto_keygen.cpp
|
|
12
|
+
../cpp/ed25519/HybridEdKeyPair.cpp
|
|
13
|
+
../cpp/pbkdf2/HybridPbkdf2.cpp
|
|
14
|
+
../cpp/random/HybridRandom.cpp
|
|
15
|
+
../deps/fastpbkdf2/fastpbkdf2.c
|
|
40
16
|
)
|
|
41
17
|
|
|
18
|
+
# add Nitrogen specs
|
|
19
|
+
include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/QuickCrypto+autolinking.cmake)
|
|
20
|
+
|
|
42
21
|
# local includes
|
|
43
22
|
include_directories(
|
|
44
|
-
src/main/cpp
|
|
45
|
-
../cpp
|
|
46
|
-
../cpp/
|
|
47
|
-
../cpp/
|
|
48
|
-
../cpp/
|
|
49
|
-
../
|
|
50
|
-
../cpp/JSIUtils
|
|
51
|
-
../cpp/Random
|
|
52
|
-
../cpp/Sig
|
|
53
|
-
../cpp/Utils
|
|
54
|
-
../cpp/webcrypto
|
|
23
|
+
"src/main/cpp"
|
|
24
|
+
"../cpp/ed25519"
|
|
25
|
+
"../cpp/pbkdf2"
|
|
26
|
+
"../cpp/random"
|
|
27
|
+
"../cpp/utils"
|
|
28
|
+
"../deps/fastpbkdf2"
|
|
55
29
|
)
|
|
56
30
|
|
|
57
31
|
# Third party libraries (Prefabs)
|
|
58
32
|
find_library(LOG_LIB log)
|
|
59
|
-
find_package(openssl REQUIRED CONFIG)
|
|
60
|
-
find_package(fbjni REQUIRED CONFIG)
|
|
61
|
-
find_package(ReactAndroid REQUIRED CONFIG)
|
|
62
33
|
|
|
34
|
+
find_package(openssl REQUIRED CONFIG)
|
|
63
35
|
|
|
36
|
+
# Link all libraries together
|
|
64
37
|
target_link_libraries(
|
|
65
38
|
${PACKAGE_NAME}
|
|
66
|
-
${LOG_LIB}
|
|
67
|
-
android
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
openssl::crypto # <-- OpenSSL (Crypto)
|
|
71
|
-
)
|
|
39
|
+
${LOG_LIB} # <-- Logcat logger
|
|
40
|
+
android # <-- Android core
|
|
41
|
+
openssl::crypto # <-- OpenSSL (Crypto)
|
|
42
|
+
)
|
|
72
43
|
|
|
73
44
|
if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
|
|
74
45
|
target_link_libraries(
|
|
75
46
|
${PACKAGE_NAME}
|
|
76
|
-
ReactAndroid::reactnative
|
|
47
|
+
ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
|
|
77
48
|
)
|
|
78
49
|
else()
|
|
79
50
|
target_link_libraries(
|
|
80
51
|
${PACKAGE_NAME}
|
|
81
|
-
ReactAndroid::
|
|
82
|
-
ReactAndroid::
|
|
83
|
-
)
|
|
52
|
+
ReactAndroid::turbomodulejsijni
|
|
53
|
+
ReactAndroid::react_nativemodule_core # <-- RN: React Native native module core
|
|
54
|
+
)
|
|
84
55
|
endif()
|
package/android/build.gradle
CHANGED
|
@@ -1,119 +1,66 @@
|
|
|
1
|
-
import java.nio.file.Paths
|
|
2
|
-
import com.android.Version
|
|
3
|
-
|
|
4
|
-
def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION
|
|
5
|
-
def agpVersionMajor = agpVersion.tokenize('.')[0].toInteger()
|
|
6
|
-
def agpVersionMinor = agpVersion.tokenize('.')[1].toInteger()
|
|
7
|
-
|
|
8
1
|
buildscript {
|
|
2
|
+
ext.kotlinVersion = '1.9.25'
|
|
3
|
+
|
|
9
4
|
repositories {
|
|
10
5
|
google()
|
|
11
6
|
mavenCentral()
|
|
12
7
|
}
|
|
13
8
|
|
|
14
9
|
dependencies {
|
|
15
|
-
classpath
|
|
10
|
+
classpath "com.android.tools.build:gradle:8.7.3"
|
|
16
11
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}"
|
|
17
12
|
}
|
|
18
13
|
}
|
|
19
14
|
|
|
20
|
-
def
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// - Invoke gradle with `-newArchEnabled=true`
|
|
24
|
-
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
|
|
25
|
-
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
15
|
+
def reactNativeArchitectures() {
|
|
16
|
+
def value = rootProject.getProperties().get("reactNativeArchitectures")
|
|
17
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
26
18
|
}
|
|
27
19
|
|
|
28
|
-
def
|
|
29
|
-
|
|
30
|
-
String tskReqStr = gradle.getStartParameter().getTaskRequests()['args'].toString()
|
|
31
|
-
|
|
32
|
-
return tskReqStr.contains('Release') ? 'release' : 'debug'
|
|
20
|
+
def isNewArchitectureEnabled() {
|
|
21
|
+
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
|
33
22
|
}
|
|
34
23
|
|
|
35
|
-
apply plugin:
|
|
24
|
+
apply plugin: "com.android.library"
|
|
36
25
|
apply plugin: "org.jetbrains.kotlin.android"
|
|
26
|
+
apply from: "../nitrogen/generated/android/QuickCrypto+autolinking.gradle"
|
|
37
27
|
|
|
38
28
|
if (isNewArchitectureEnabled()) {
|
|
39
29
|
apply plugin: "com.facebook.react"
|
|
40
30
|
}
|
|
41
31
|
|
|
42
|
-
def
|
|
43
|
-
rootProject.ext.has(
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
def reactNativeArchitectures() {
|
|
47
|
-
def value = project.getProperties().get("reactNativeArchitectures")
|
|
48
|
-
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static def findNodeModules(baseDir) {
|
|
52
|
-
def basePath = baseDir.toPath().normalize()
|
|
53
|
-
// Node's module resolution algorithm searches up to the root directory,
|
|
54
|
-
// after which the base path will be null
|
|
55
|
-
while (basePath) {
|
|
56
|
-
def nodeModulesPath = Paths.get(basePath.toString(), "node_modules")
|
|
57
|
-
def reactNativePath = Paths.get(nodeModulesPath.toString(), "react-native")
|
|
58
|
-
if (nodeModulesPath.toFile().exists() && reactNativePath.toFile().exists()) {
|
|
59
|
-
return nodeModulesPath.toString()
|
|
60
|
-
}
|
|
61
|
-
basePath = basePath.getParent()
|
|
62
|
-
}
|
|
63
|
-
throw new GradleException("react-native-quick-crypto: Failed to find node_modules/ path!")
|
|
32
|
+
def getExtOrDefault(name) {
|
|
33
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["QuickCrypto_" + name]
|
|
64
34
|
}
|
|
65
35
|
|
|
66
|
-
def
|
|
67
|
-
|
|
68
|
-
repositories {
|
|
69
|
-
google()
|
|
70
|
-
mavenCentral()
|
|
36
|
+
def getExtOrIntegerDefault(name) {
|
|
37
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["QuickCrypto_" + name]).toInteger()
|
|
71
38
|
}
|
|
72
39
|
|
|
73
40
|
android {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// Namespace support was added in 7.3.0
|
|
78
|
-
namespace "com.margelo.quickcrypto"
|
|
79
|
-
|
|
80
|
-
sourceSets {
|
|
81
|
-
main {
|
|
82
|
-
manifest.srcFile "src/main/AndroidManifestNew.xml"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (agpVersionMajor >= 8) {
|
|
88
|
-
buildFeatures {
|
|
89
|
-
buildConfig = true
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Used to override the NDK path/version on internal CI or by allowing
|
|
94
|
-
// users to customize the NDK path/version from their root project (e.g. for M1 support)
|
|
95
|
-
if (rootProject.hasProperty("ndkPath")) {
|
|
96
|
-
ndkPath rootProject.ext.ndkPath
|
|
97
|
-
}
|
|
98
|
-
if (rootProject.hasProperty("ndkVersion")) {
|
|
99
|
-
ndkVersion rootProject.ext.ndkVersion
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
buildFeatures {
|
|
103
|
-
prefab true
|
|
104
|
-
}
|
|
41
|
+
namespace "com.margelo.nitro.quickcrypto"
|
|
42
|
+
ndkVersion getExtOrDefault("ndkVersion")
|
|
43
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
105
44
|
|
|
106
45
|
defaultConfig {
|
|
107
|
-
minSdkVersion
|
|
108
|
-
targetSdkVersion
|
|
109
|
-
versionCode 1
|
|
110
|
-
versionName "1.0"
|
|
46
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
47
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
111
48
|
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
|
49
|
+
|
|
112
50
|
externalNativeBuild {
|
|
113
51
|
cmake {
|
|
114
|
-
cppFlags "-
|
|
52
|
+
cppFlags "-frtti -fexceptions -Wall -fstack-protector-all"
|
|
115
53
|
arguments "-DANDROID_STL=c++_shared"
|
|
116
54
|
abiFilters (*reactNativeArchitectures())
|
|
55
|
+
|
|
56
|
+
buildTypes {
|
|
57
|
+
debug {
|
|
58
|
+
cppFlags "-O1 -g"
|
|
59
|
+
}
|
|
60
|
+
release {
|
|
61
|
+
cppFlags "-O2"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
117
64
|
}
|
|
118
65
|
}
|
|
119
66
|
}
|
|
@@ -124,17 +71,29 @@ android {
|
|
|
124
71
|
}
|
|
125
72
|
}
|
|
126
73
|
|
|
127
|
-
|
|
128
|
-
|
|
74
|
+
buildFeatures {
|
|
75
|
+
buildConfig true
|
|
76
|
+
prefab true
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
packagingOptions {
|
|
129
80
|
excludes = [
|
|
81
|
+
"META-INF",
|
|
82
|
+
"META-INF/**",
|
|
130
83
|
"**/libc++_shared.so",
|
|
131
84
|
"**/libfbjni.so",
|
|
132
|
-
"**/libreactnativejni.so",
|
|
133
85
|
"**/libjsi.so",
|
|
134
|
-
"**/
|
|
135
|
-
"**/
|
|
136
|
-
"**/
|
|
86
|
+
"**/libfolly_json.so",
|
|
87
|
+
"**/libfolly_runtime.so",
|
|
88
|
+
"**/libglog.so",
|
|
89
|
+
"**/libhermes.so",
|
|
90
|
+
"**/libhermes-executor-debug.so",
|
|
91
|
+
"**/libhermes_executor.so",
|
|
137
92
|
"**/libreactnative.so",
|
|
93
|
+
"**/libreactnativejni.so",
|
|
94
|
+
"**/libturbomodulejsijni.so",
|
|
95
|
+
"**/libreact_nativemodule_core.so",
|
|
96
|
+
"**/libjscexecutor.so"
|
|
138
97
|
]
|
|
139
98
|
}
|
|
140
99
|
|
|
@@ -142,25 +101,27 @@ android {
|
|
|
142
101
|
release {
|
|
143
102
|
minifyEnabled false
|
|
144
103
|
}
|
|
145
|
-
debug {
|
|
146
|
-
packagingOptions {
|
|
147
|
-
doNotStrip '**/*.so'
|
|
148
|
-
}
|
|
149
|
-
minifyEnabled false
|
|
150
|
-
debuggable true
|
|
151
|
-
jniDebuggable true
|
|
152
|
-
renderscriptDebuggable true
|
|
153
|
-
}
|
|
154
104
|
}
|
|
155
105
|
|
|
156
106
|
lintOptions {
|
|
157
|
-
disable
|
|
107
|
+
disable "GradleCompatible"
|
|
158
108
|
}
|
|
109
|
+
|
|
159
110
|
compileOptions {
|
|
160
111
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
161
112
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
162
113
|
}
|
|
163
114
|
|
|
115
|
+
sourceSets {
|
|
116
|
+
main {
|
|
117
|
+
if (isNewArchitectureEnabled()) {
|
|
118
|
+
java.srcDirs += [
|
|
119
|
+
// React Codegen files
|
|
120
|
+
"${project.buildDir}/generated/source/codegen/java"
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
164
125
|
}
|
|
165
126
|
|
|
166
127
|
repositories {
|
|
@@ -168,25 +129,22 @@ repositories {
|
|
|
168
129
|
google()
|
|
169
130
|
}
|
|
170
131
|
|
|
132
|
+
|
|
171
133
|
dependencies {
|
|
172
134
|
//noinspection GradleDynamicVersion
|
|
173
|
-
implementation "com.facebook.react:react-
|
|
135
|
+
implementation "com.facebook.react:react-native:+"
|
|
136
|
+
|
|
137
|
+
// Add a dependency on NitroModules
|
|
138
|
+
implementation project(":react-native-nitro-modules")
|
|
174
139
|
|
|
175
140
|
// Add a dependency on OpenSSL
|
|
176
141
|
implementation 'io.github.ronickg:openssl:3.3.2'
|
|
177
142
|
}
|
|
178
143
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// We want to add a dependency for both configureCMakeRelease and configureCMakeRelWithDebInfo
|
|
187
|
-
if (task.name.contains("configureCMakeRel")) {
|
|
188
|
-
rootProject.getTasksByName("packageReactNdkReleaseLibs", true).forEach {
|
|
189
|
-
task.dependsOn(it)
|
|
190
|
-
}
|
|
144
|
+
if (isNewArchitectureEnabled()) {
|
|
145
|
+
react {
|
|
146
|
+
jsRootDir = file("../src/")
|
|
147
|
+
libraryName = "QuickCrypto"
|
|
148
|
+
codegenJavaPackageName = "com.margelo.nitro.quickcrypto"
|
|
191
149
|
}
|
|
192
150
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
QuickCrypto_compileSdkVersion=
|
|
2
|
-
QuickCrypto_targetSdkVersion=
|
|
3
|
-
QuickCrypto_ndkversion=21.4.7075529
|
|
1
|
+
QuickCrypto_compileSdkVersion=34
|
|
2
|
+
QuickCrypto_targetSdkVersion=34
|
|
4
3
|
QuickCrypto_minSdkVersion=23
|
|
4
|
+
QuickCrypto_ndkVersion=21.4.7075529
|
|
5
5
|
|
|
6
6
|
android.useAndroidX=true
|
|
@@ -1,69 +1,8 @@
|
|
|
1
|
-
#include <ReactCommon/CallInvokerHolder.h>
|
|
2
1
|
#include <fbjni/fbjni.h>
|
|
3
2
|
#include <jni.h>
|
|
4
|
-
#include <jsi/jsi.h>
|
|
5
|
-
#include <memory>
|
|
6
3
|
|
|
7
|
-
#include "
|
|
8
|
-
#include "JSIUtils/MGLTypedArray.h"
|
|
4
|
+
#include "QuickCryptoOnLoad.hpp"
|
|
9
5
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class CryptoCppAdapter : public jni::HybridClass<CryptoCppAdapter> {
|
|
13
|
-
public:
|
|
14
|
-
static auto constexpr kJavaDescriptor =
|
|
15
|
-
"Lcom/margelo/quickcrypto/QuickCryptoModule;";
|
|
16
|
-
|
|
17
|
-
static jni::local_ref<jni::HybridClass<CryptoCppAdapter>::jhybriddata>
|
|
18
|
-
initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
19
|
-
return makeCxxInstance();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
CryptoCppAdapter() {}
|
|
23
|
-
|
|
24
|
-
void install(jsi::Runtime &runtime,
|
|
25
|
-
std::shared_ptr<facebook::react::CallInvoker> jsCallInvoker) {
|
|
26
|
-
auto workerQueue = std::make_shared<margelo::DispatchQueue::dispatch_queue>(
|
|
27
|
-
"margelo crypto worker thread");
|
|
28
|
-
auto hostObject = std::make_shared<margelo::MGLQuickCryptoHostObject>(
|
|
29
|
-
jsCallInvoker, workerQueue);
|
|
30
|
-
auto object = jsi::Object::createFromHostObject(runtime, hostObject);
|
|
31
|
-
runtime.global().setProperty(runtime, "__QuickCryptoProxy",
|
|
32
|
-
std::move(object));
|
|
33
|
-
// Adds the PropNameIDCache object to the Runtime. If the Runtime gets destroyed, the Object gets destroyed and the cache gets invalidated.
|
|
34
|
-
auto propNameIdCache = std::make_shared<InvalidateCacheOnDestroy>(runtime);
|
|
35
|
-
runtime.global().setProperty(
|
|
36
|
-
runtime,
|
|
37
|
-
"rnqcArrayBufferPropNameIdCache",
|
|
38
|
-
jsi::Object::createFromHostObject(runtime, propNameIdCache)
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
void nativeInstall(
|
|
43
|
-
jlong jsiPtr,
|
|
44
|
-
jni::alias_ref<facebook::react::CallInvokerHolder::javaobject>
|
|
45
|
-
jsCallInvokerHolder) {
|
|
46
|
-
auto jsCallInvoker = jsCallInvokerHolder->cthis()->getCallInvoker();
|
|
47
|
-
auto runtime = reinterpret_cast<jsi::Runtime *>(jsiPtr);
|
|
48
|
-
if (runtime) {
|
|
49
|
-
install(*runtime, jsCallInvoker);
|
|
50
|
-
}
|
|
51
|
-
// if runtime was nullptr, QuickCrypto will not be installed. This should
|
|
52
|
-
// only happen while Remote Debugging (Chrome), but will be weird either
|
|
53
|
-
// way.
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
static void registerNatives() {
|
|
57
|
-
registerHybrid(
|
|
58
|
-
{makeNativeMethod("initHybrid", CryptoCppAdapter::initHybrid),
|
|
59
|
-
makeNativeMethod("nativeInstall", CryptoCppAdapter::nativeInstall)});
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
private:
|
|
63
|
-
friend HybridBase;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
|
|
67
|
-
return facebook::jni::initialize(vm,
|
|
68
|
-
[] { CryptoCppAdapter::registerNatives(); });
|
|
6
|
+
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
|
|
7
|
+
return facebook::jni::initialize(vm, [=] { margelo::nitro::crypto::initialize(vm); });
|
|
69
8
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
package com.margelo.nitro.quickcrypto;
|
|
2
|
+
|
|
3
|
+
import android.util.Log;
|
|
4
|
+
|
|
5
|
+
import androidx.annotation.Nullable;
|
|
6
|
+
|
|
7
|
+
import com.facebook.react.bridge.NativeModule;
|
|
8
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
9
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
|
10
|
+
import com.facebook.react.TurboReactPackage;
|
|
11
|
+
import com.margelo.nitro.core.HybridObject;
|
|
12
|
+
import com.margelo.nitro.core.HybridObjectRegistry;
|
|
13
|
+
|
|
14
|
+
import java.util.HashMap;
|
|
15
|
+
import java.util.function.Supplier;
|
|
16
|
+
|
|
17
|
+
public class QuickCryptoPackage extends TurboReactPackage {
|
|
18
|
+
private static final String TAG = "QuickCrypto";
|
|
19
|
+
|
|
20
|
+
@Nullable
|
|
21
|
+
@Override
|
|
22
|
+
public NativeModule getModule(String name, ReactApplicationContext reactContext) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@Override
|
|
27
|
+
public ReactModuleInfoProvider getReactModuleInfoProvider() {
|
|
28
|
+
return () -> {
|
|
29
|
+
return new HashMap<>();
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static {
|
|
34
|
+
try {
|
|
35
|
+
Log.i(TAG, "Loading C++ library...");
|
|
36
|
+
System.loadLibrary(TAG);
|
|
37
|
+
Log.i(TAG, "Successfully loaded C++ library!");
|
|
38
|
+
} catch (Throwable e) {
|
|
39
|
+
Log.e(TAG, "Failed to load C++ library! Is it properly installed and linked?", e);
|
|
40
|
+
throw e;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|