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
package/lib/module/keygen.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { NativeQuickCrypto } from './NativeQuickCrypto/NativeQuickCrypto';
|
|
4
|
-
import { lazyDOMException, validateFunction } from './Utils';
|
|
5
|
-
import { kAesKeyLengths } from './aes';
|
|
6
|
-
import { SecretKeyObject } from './keys';
|
|
7
|
-
export const generateKeyPromise = (type, options // | HmacKeyGenParams
|
|
8
|
-
) => {
|
|
9
|
-
return new Promise((resolve, reject) => {
|
|
10
|
-
generateKey(type, options, (err, key) => {
|
|
11
|
-
if (err) {
|
|
12
|
-
reject([err, undefined]);
|
|
13
|
-
}
|
|
14
|
-
resolve([undefined, key]);
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
export const generateKey = (type, options, callback) => {
|
|
19
|
-
validateLength(type, options.length);
|
|
20
|
-
if (!validateFunction(callback)) {
|
|
21
|
-
throw lazyDOMException('Callback is not a function', 'SyntaxError');
|
|
22
|
-
}
|
|
23
|
-
NativeQuickCrypto.webcrypto.generateSecretKey(options.length).then(handle => {
|
|
24
|
-
callback(undefined, new SecretKeyObject(handle));
|
|
25
|
-
}).catch(err => {
|
|
26
|
-
callback(err, undefined);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
export const generateKeySync = (type, options // | HmacKeyGenParams,
|
|
30
|
-
) => {
|
|
31
|
-
validateLength(type, options.length);
|
|
32
|
-
const handle = NativeQuickCrypto.webcrypto.generateSecretKeySync(options.length);
|
|
33
|
-
return new SecretKeyObject(handle);
|
|
34
|
-
};
|
|
35
|
-
const validateLength = (type, length) => {
|
|
36
|
-
switch (type) {
|
|
37
|
-
case 'aes':
|
|
38
|
-
if (!kAesKeyLengths.includes(length)) {
|
|
39
|
-
throw lazyDOMException('AES key length must be 128, 192, or 256 bits', 'OperationError');
|
|
40
|
-
}
|
|
41
|
-
break;
|
|
42
|
-
case 'hmac':
|
|
43
|
-
if (length < 8 || length > 2 ** 31 - 1) {
|
|
44
|
-
throw lazyDOMException('HMAC key length must be between 8 and 2^31 - 1', 'OperationError');
|
|
45
|
-
}
|
|
46
|
-
break;
|
|
47
|
-
default:
|
|
48
|
-
throw new Error(`Unsupported key type '${type}' for generateKey()`);
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=keygen.js.map
|
package/lib/module/keygen.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["NativeQuickCrypto","lazyDOMException","validateFunction","kAesKeyLengths","SecretKeyObject","generateKeyPromise","type","options","Promise","resolve","reject","generateKey","err","key","undefined","callback","validateLength","length","webcrypto","generateSecretKey","then","handle","catch","generateKeySync","generateSecretKeySync","includes","Error"],"sourceRoot":"../../src","sources":["keygen.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,uCAAuC;AACzE,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,SAAS;AAC5D,SAASC,cAAc,QAAQ,OAAO;AACtC,SACEC,eAAe,QAGV,QAAQ;AAOf,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,IAAmB,EACnBC,OAAwB,CAAE;AAAA,KACoC;EAC9D,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCC,WAAW,CAACL,IAAI,EAAEC,OAAO,EAAE,CAACK,GAAG,EAAEC,GAAG,KAAK;MACvC,IAAID,GAAG,EAAE;QACPF,MAAM,CAAC,CAACE,GAAG,EAAEE,SAAS,CAAC,CAAC;MAC1B;MACAL,OAAO,CAAC,CAACK,SAAS,EAAED,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMF,WAAW,GAAGA,CACzBL,IAAmB,EACnBC,OAAwB,EACxBQ,QAAwB,KACf;EACTC,cAAc,CAACV,IAAI,EAAEC,OAAO,CAACU,MAAM,CAAC;EACpC,IAAI,CAACf,gBAAgB,CAACa,QAAQ,CAAC,EAAE;IAC/B,MAAMd,gBAAgB,CAAC,4BAA4B,EAAE,aAAa,CAAC;EACrE;EACAD,iBAAiB,CAACkB,SAAS,CACxBC,iBAAiB,CAACZ,OAAO,CAACU,MAAM,CAAC,CACjCG,IAAI,CAAEC,MAAM,IAAK;IAChBN,QAAQ,CAACD,SAAS,EAAE,IAAIV,eAAe,CAACiB,MAAM,CAAC,CAAC;EAClD,CAAC,CAAC,CACDC,KAAK,CAAEV,GAAG,IAAK;IACdG,QAAQ,CAACH,GAAG,EAAEE,SAAS,CAAC;EAC1B,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAMS,eAAe,GAAGA,CAC7BjB,IAAmB,EACnBC,OAAwB,CAAE;AAAA,KACN;EACpBS,cAAc,CAACV,IAAI,EAAEC,OAAO,CAACU,MAAM,CAAC;EACpC,MAAMI,MAAM,GAAGrB,iBAAiB,CAACkB,SAAS,CAACM,qBAAqB,CAC9DjB,OAAO,CAACU,MACV,CAAC;EACD,OAAO,IAAIb,eAAe,CAACiB,MAAM,CAAC;AACpC,CAAC;AAED,MAAML,cAAc,GAAGA,CAACV,IAAmB,EAAEW,MAAc,KAAK;EAC9D,QAAQX,IAAI;IACV,KAAK,KAAK;MACR,IAAI,CAACH,cAAc,CAACsB,QAAQ,CAACR,MAAM,CAAC,EAAE;QACpC,MAAMhB,gBAAgB,CACpB,8CAA8C,EAC9C,gBACF,CAAC;MACH;MACA;IACF,KAAK,MAAM;MACT,IAAIgB,MAAM,GAAG,CAAC,IAAIA,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACtC,MAAMhB,gBAAgB,CACpB,gDAAgD,EAChD,gBACF,CAAC;MACH;MACA;IACF;MACE,MAAM,IAAIyB,KAAK,CAAC,yBAAyBpB,IAAI,qBAAqB,CAAC;EACvE;AACF,CAAC","ignoreList":[]}
|
package/lib/module/keys.js
DELETED
|
@@ -1,482 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { binaryLikeToArrayBuffer, isStringOrBuffer } from './Utils';
|
|
4
|
-
import { NativeQuickCrypto } from './NativeQuickCrypto/NativeQuickCrypto';
|
|
5
|
-
export const kNamedCurveAliases = {
|
|
6
|
-
'P-256': 'prime256v1',
|
|
7
|
-
'P-384': 'secp384r1',
|
|
8
|
-
'P-521': 'secp521r1'
|
|
9
|
-
};
|
|
10
|
-
// On node this value is defined on the native side, for now I'm just creating it here in JS
|
|
11
|
-
// TODO(osp) move this into native side to make sure they always match
|
|
12
|
-
export let KFormatType = /*#__PURE__*/function (KFormatType) {
|
|
13
|
-
KFormatType[KFormatType["kKeyFormatDER"] = 0] = "kKeyFormatDER";
|
|
14
|
-
KFormatType[KFormatType["kKeyFormatPEM"] = 1] = "kKeyFormatPEM";
|
|
15
|
-
KFormatType[KFormatType["kKeyFormatJWK"] = 2] = "kKeyFormatJWK";
|
|
16
|
-
return KFormatType;
|
|
17
|
-
}({});
|
|
18
|
-
// Same as KFormatType, this enum needs to be defined on the native side
|
|
19
|
-
export let KeyType = /*#__PURE__*/function (KeyType) {
|
|
20
|
-
KeyType[KeyType["Secret"] = 0] = "Secret";
|
|
21
|
-
KeyType[KeyType["Public"] = 1] = "Public";
|
|
22
|
-
KeyType[KeyType["Private"] = 2] = "Private";
|
|
23
|
-
return KeyType;
|
|
24
|
-
}({});
|
|
25
|
-
// Same as KFormatType, this enum needs to be defined on the native side
|
|
26
|
-
export let KWebCryptoKeyFormat = /*#__PURE__*/function (KWebCryptoKeyFormat) {
|
|
27
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatRaw"] = 0] = "kWebCryptoKeyFormatRaw";
|
|
28
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatPKCS8"] = 1] = "kWebCryptoKeyFormatPKCS8";
|
|
29
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatSPKI"] = 2] = "kWebCryptoKeyFormatSPKI";
|
|
30
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatJWK"] = 3] = "kWebCryptoKeyFormatJWK";
|
|
31
|
-
return KWebCryptoKeyFormat;
|
|
32
|
-
}({});
|
|
33
|
-
export let WebCryptoKeyExportStatus = /*#__PURE__*/function (WebCryptoKeyExportStatus) {
|
|
34
|
-
WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["OK"] = 0] = "OK";
|
|
35
|
-
WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["INVALID_KEY_TYPE"] = 1] = "INVALID_KEY_TYPE";
|
|
36
|
-
WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["FAILED"] = 2] = "FAILED";
|
|
37
|
-
return WebCryptoKeyExportStatus;
|
|
38
|
-
}({});
|
|
39
|
-
var KeyInputContext = /*#__PURE__*/function (KeyInputContext) {
|
|
40
|
-
KeyInputContext[KeyInputContext["kConsumePublic"] = 0] = "kConsumePublic";
|
|
41
|
-
KeyInputContext[KeyInputContext["kConsumePrivate"] = 1] = "kConsumePrivate";
|
|
42
|
-
KeyInputContext[KeyInputContext["kCreatePublic"] = 2] = "kCreatePublic";
|
|
43
|
-
KeyInputContext[KeyInputContext["kCreatePrivate"] = 3] = "kCreatePrivate";
|
|
44
|
-
return KeyInputContext;
|
|
45
|
-
}(KeyInputContext || {});
|
|
46
|
-
export let KeyEncoding = /*#__PURE__*/function (KeyEncoding) {
|
|
47
|
-
KeyEncoding[KeyEncoding["kKeyEncodingPKCS1"] = 0] = "kKeyEncodingPKCS1";
|
|
48
|
-
KeyEncoding[KeyEncoding["kKeyEncodingPKCS8"] = 1] = "kKeyEncodingPKCS8";
|
|
49
|
-
KeyEncoding[KeyEncoding["kKeyEncodingSPKI"] = 2] = "kKeyEncodingSPKI";
|
|
50
|
-
KeyEncoding[KeyEncoding["kKeyEncodingSEC1"] = 3] = "kKeyEncodingSEC1";
|
|
51
|
-
return KeyEncoding;
|
|
52
|
-
}({});
|
|
53
|
-
const encodingNames = {
|
|
54
|
-
[KeyEncoding.kKeyEncodingPKCS1]: 'pkcs1',
|
|
55
|
-
[KeyEncoding.kKeyEncodingPKCS8]: 'pkcs8',
|
|
56
|
-
[KeyEncoding.kKeyEncodingSPKI]: 'spki',
|
|
57
|
-
[KeyEncoding.kKeyEncodingSEC1]: 'sec1'
|
|
58
|
-
};
|
|
59
|
-
export let CipherOrWrapMode = /*#__PURE__*/function (CipherOrWrapMode) {
|
|
60
|
-
CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherEncrypt"] = 0] = "kWebCryptoCipherEncrypt";
|
|
61
|
-
CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherDecrypt"] = 1] = "kWebCryptoCipherDecrypt";
|
|
62
|
-
return CipherOrWrapMode;
|
|
63
|
-
}({}); // kWebCryptoWrapKey,
|
|
64
|
-
// kWebCryptoUnwrapKey,
|
|
65
|
-
function option(name, objName) {
|
|
66
|
-
return objName === undefined ? `options.${name}` : `options.${objName}.${name}`;
|
|
67
|
-
}
|
|
68
|
-
function parseKeyFormat(formatStr, defaultFormat, optionName) {
|
|
69
|
-
if (formatStr === undefined && defaultFormat !== undefined) return defaultFormat;else if (formatStr === 'pem') return KFormatType.kKeyFormatPEM;else if (formatStr === 'der') return KFormatType.kKeyFormatDER;else if (formatStr === 'jwk') return KFormatType.kKeyFormatJWK;
|
|
70
|
-
throw new Error(`Invalid key format str: ${optionName}`);
|
|
71
|
-
// throw new ERR_INVALID_ARG_VALUE(optionName, formatStr);
|
|
72
|
-
}
|
|
73
|
-
function parseKeyType(typeStr, required, keyType, isPublic, optionName) {
|
|
74
|
-
if (typeStr === undefined && !required) {
|
|
75
|
-
return undefined;
|
|
76
|
-
} else if (typeStr === 'pkcs1') {
|
|
77
|
-
if (keyType !== undefined && keyType !== 'rsa') {
|
|
78
|
-
throw new Error(`Crypto incompatible key options: ${typeStr} can only be used for RSA keys`);
|
|
79
|
-
}
|
|
80
|
-
return KeyEncoding.kKeyEncodingPKCS1;
|
|
81
|
-
} else if (typeStr === 'spki' && isPublic !== false) {
|
|
82
|
-
return KeyEncoding.kKeyEncodingSPKI;
|
|
83
|
-
} else if (typeStr === 'pkcs8' && isPublic !== true) {
|
|
84
|
-
return KeyEncoding.kKeyEncodingPKCS8;
|
|
85
|
-
} else if (typeStr === 'sec1' && isPublic !== true) {
|
|
86
|
-
if (keyType !== undefined && keyType !== 'ec') {
|
|
87
|
-
throw new Error(`Incompatible key options ${typeStr} can only be used for EC keys`);
|
|
88
|
-
}
|
|
89
|
-
return KeyEncoding.kKeyEncodingSEC1;
|
|
90
|
-
}
|
|
91
|
-
throw new Error(`Invalid option ${optionName} - ${typeStr}`);
|
|
92
|
-
}
|
|
93
|
-
function parseKeyFormatAndType(enc, keyType, isPublic, objName) {
|
|
94
|
-
const {
|
|
95
|
-
format: formatStr,
|
|
96
|
-
type: typeStr
|
|
97
|
-
} = enc;
|
|
98
|
-
const isInput = keyType === undefined;
|
|
99
|
-
const format = parseKeyFormat(formatStr, isInput ? KFormatType.kKeyFormatPEM : undefined, option('format', objName));
|
|
100
|
-
const isRequired = (!isInput || format === KFormatType.kKeyFormatDER) && format !== KFormatType.kKeyFormatJWK;
|
|
101
|
-
const type = parseKeyType(typeStr, isRequired, keyType, isPublic, option('type', objName));
|
|
102
|
-
return {
|
|
103
|
-
format,
|
|
104
|
-
type
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
function parseKeyEncoding(enc, keyType, isPublic, objName) {
|
|
108
|
-
// validateObject(enc, 'options');
|
|
109
|
-
|
|
110
|
-
const isInput = keyType === undefined;
|
|
111
|
-
const {
|
|
112
|
-
format,
|
|
113
|
-
type
|
|
114
|
-
} = parseKeyFormatAndType(enc, keyType, isPublic, objName);
|
|
115
|
-
let cipher, passphrase, encoding;
|
|
116
|
-
if (isPublic !== true) {
|
|
117
|
-
({
|
|
118
|
-
cipher,
|
|
119
|
-
passphrase,
|
|
120
|
-
encoding
|
|
121
|
-
} = enc);
|
|
122
|
-
if (!isInput) {
|
|
123
|
-
if (cipher != null) {
|
|
124
|
-
if (typeof cipher !== 'string') throw new Error(`Invalid argument ${option('cipher', objName)}: ${cipher}`);
|
|
125
|
-
if (format === KFormatType.kKeyFormatDER && (type === KeyEncoding.kKeyEncodingPKCS1 || type === KeyEncoding.kKeyEncodingSEC1)) {
|
|
126
|
-
throw new Error(`Incompatible key options ${encodingNames[type]} does not support encryption`);
|
|
127
|
-
}
|
|
128
|
-
} else if (passphrase !== undefined) {
|
|
129
|
-
throw new Error(`invalid argument ${option('cipher', objName)}: ${cipher}`);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (isInput && passphrase !== undefined && !isStringOrBuffer(passphrase) || !isInput && cipher != null && !isStringOrBuffer(passphrase)) {
|
|
133
|
-
throw new Error(`Invalid argument value ${option('passphrase', objName)}: ${passphrase}`);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
if (passphrase !== undefined) passphrase = binaryLikeToArrayBuffer(passphrase, encoding);
|
|
137
|
-
return {
|
|
138
|
-
format,
|
|
139
|
-
type,
|
|
140
|
-
cipher,
|
|
141
|
-
passphrase
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
function prepareAsymmetricKey(key, ctx) {
|
|
145
|
-
// TODO(osp) check, KeyObject some node object
|
|
146
|
-
// if (isKeyObject(key)) {
|
|
147
|
-
// // Best case: A key object, as simple as that.
|
|
148
|
-
// return { data: getKeyObjectHandle(key, ctx) };
|
|
149
|
-
// } else
|
|
150
|
-
// if (isCryptoKey(key)) {
|
|
151
|
-
// return { data: getKeyObjectHandle(key[kKeyObject], ctx) };
|
|
152
|
-
// } else
|
|
153
|
-
if (isStringOrBuffer(key)) {
|
|
154
|
-
// Expect PEM by default, mostly for backward compatibility.
|
|
155
|
-
return {
|
|
156
|
-
format: KFormatType.kKeyFormatPEM,
|
|
157
|
-
data: binaryLikeToArrayBuffer(key)
|
|
158
|
-
};
|
|
159
|
-
} else if (typeof key === 'object') {
|
|
160
|
-
const {
|
|
161
|
-
key: data,
|
|
162
|
-
encoding
|
|
163
|
-
} = key;
|
|
164
|
-
// // The 'key' property can be a KeyObject as well to allow specifying
|
|
165
|
-
// // additional options such as padding along with the key.
|
|
166
|
-
// if (isKeyObject(data)) {
|
|
167
|
-
// return { data: getKeyObjectHandle(data, ctx) };
|
|
168
|
-
// }
|
|
169
|
-
// else if (isCryptoKey(data))
|
|
170
|
-
// return { data: getKeyObjectHandle(data[kKeyObject], ctx) };
|
|
171
|
-
// else if (isJwk(data) && format === 'jwk')
|
|
172
|
-
// return { data: getKeyObjectHandleFromJwk(data, ctx), format: 'jwk' };
|
|
173
|
-
// Either PEM or DER using PKCS#1 or SPKI.
|
|
174
|
-
if (!isStringOrBuffer(data)) {
|
|
175
|
-
throw new Error('prepareAsymmetricKey: key is not a string or ArrayBuffer');
|
|
176
|
-
}
|
|
177
|
-
const isPublic = ctx === KeyInputContext.kConsumePrivate || ctx === KeyInputContext.kCreatePrivate ? false : undefined;
|
|
178
|
-
return {
|
|
179
|
-
data: binaryLikeToArrayBuffer(data, encoding),
|
|
180
|
-
...parseKeyEncoding(key, undefined, isPublic)
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
throw new Error('[prepareAsymetricKey] Invalid argument key: ${key}');
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// TODO(osp) any here is a node KeyObject
|
|
187
|
-
export function preparePrivateKey(key) {
|
|
188
|
-
return prepareAsymmetricKey(key, KeyInputContext.kConsumePrivate);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// TODO(osp) any here is a node KeyObject
|
|
192
|
-
export function preparePublicOrPrivateKey(key) {
|
|
193
|
-
return prepareAsymmetricKey(key, KeyInputContext.kConsumePublic);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// Parses the public key encoding based on an object. keyType must be undefined
|
|
197
|
-
// when this is used to parse an input encoding and must be a valid key type if
|
|
198
|
-
// used to parse an output encoding.
|
|
199
|
-
export function parsePublicKeyEncoding(enc, keyType, objName) {
|
|
200
|
-
return parseKeyEncoding(enc, keyType, keyType ? true : undefined, objName);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// Parses the private key encoding based on an object. keyType must be undefined
|
|
204
|
-
// when this is used to parse an input encoding and must be a valid key type if
|
|
205
|
-
// used to parse an output encoding.
|
|
206
|
-
export function parsePrivateKeyEncoding(enc, keyType, objName) {
|
|
207
|
-
return parseKeyEncoding(enc, keyType, false, objName);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
// function getKeyObjectHandle(key: any, ctx: KeyInputContext) {
|
|
211
|
-
// if (ctx === KeyInputContext.kConsumePublic) {
|
|
212
|
-
// throw new Error(
|
|
213
|
-
// 'Invalid argument type for "key". Need ArrayBuffer, TypeArray, KeyObject, CryptoKey, string'
|
|
214
|
-
// );
|
|
215
|
-
// }
|
|
216
|
-
|
|
217
|
-
// if (key.type !== 'private') {
|
|
218
|
-
// if (
|
|
219
|
-
// ctx === KeyInputContext.kConsumePrivate ||
|
|
220
|
-
// ctx === KeyInputContext.kCreatePublic
|
|
221
|
-
// )
|
|
222
|
-
// throw new Error(`Invalid KeyObject type: ${key.type}, expected 'public'`);
|
|
223
|
-
// if (key.type !== 'public') {
|
|
224
|
-
// throw new Error(
|
|
225
|
-
// `Invalid KeyObject type: ${key.type}, expected 'private' or 'public'`
|
|
226
|
-
// );
|
|
227
|
-
// }
|
|
228
|
-
// }
|
|
229
|
-
|
|
230
|
-
// return key.handle;
|
|
231
|
-
// }
|
|
232
|
-
|
|
233
|
-
function prepareSecretKey(key, encoding, bufferOnly = false) {
|
|
234
|
-
try {
|
|
235
|
-
if (!bufferOnly) {
|
|
236
|
-
// TODO: maybe use `key.constructor.name === 'KeyObject'` ?
|
|
237
|
-
if (key instanceof KeyObject) {
|
|
238
|
-
if (key.type !== 'secret') throw new Error(`invalid KeyObject type: ${key.type}, expected 'secret'`);
|
|
239
|
-
return key.handle.export();
|
|
240
|
-
}
|
|
241
|
-
// TODO: maybe use `key.constructor.name === 'CryptoKey'` ?
|
|
242
|
-
else if (key instanceof CryptoKey) {
|
|
243
|
-
if (key.type !== 'secret') throw new Error(`invalid CryptoKey type: ${key.type}, expected 'secret'`);
|
|
244
|
-
return key.keyObject.handle.export();
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
if (key instanceof ArrayBuffer) {
|
|
248
|
-
return key;
|
|
249
|
-
}
|
|
250
|
-
return binaryLikeToArrayBuffer(key, encoding);
|
|
251
|
-
} catch (error) {
|
|
252
|
-
throw new Error('Invalid argument type for "key". Need ArrayBuffer, TypedArray, KeyObject, CryptoKey, string', {
|
|
253
|
-
cause: error
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
export function createSecretKey(key, encoding) {
|
|
258
|
-
const k = prepareSecretKey(key, encoding, true);
|
|
259
|
-
const handle = NativeQuickCrypto.webcrypto.createKeyObjectHandle();
|
|
260
|
-
handle.init(KeyType.Secret, k);
|
|
261
|
-
return new SecretKeyObject(handle);
|
|
262
|
-
}
|
|
263
|
-
export function createPublicKey(key) {
|
|
264
|
-
const {
|
|
265
|
-
format,
|
|
266
|
-
type,
|
|
267
|
-
data,
|
|
268
|
-
passphrase
|
|
269
|
-
} = prepareAsymmetricKey(key, KeyInputContext.kCreatePublic);
|
|
270
|
-
const handle = NativeQuickCrypto.webcrypto.createKeyObjectHandle();
|
|
271
|
-
if (format === KFormatType.kKeyFormatJWK) {
|
|
272
|
-
handle.init(KeyType.Public, data);
|
|
273
|
-
} else {
|
|
274
|
-
handle.init(KeyType.Public, data, format, type, passphrase);
|
|
275
|
-
}
|
|
276
|
-
return new PublicKeyObject(handle);
|
|
277
|
-
}
|
|
278
|
-
export const createPrivateKey = key => {
|
|
279
|
-
const {
|
|
280
|
-
format,
|
|
281
|
-
type,
|
|
282
|
-
data,
|
|
283
|
-
passphrase
|
|
284
|
-
} = prepareAsymmetricKey(key, KeyInputContext.kCreatePrivate);
|
|
285
|
-
const handle = NativeQuickCrypto.webcrypto.createKeyObjectHandle();
|
|
286
|
-
if (format === KFormatType.kKeyFormatJWK) {
|
|
287
|
-
handle.init(KeyType.Private, data);
|
|
288
|
-
} else {
|
|
289
|
-
handle.init(KeyType.Private, data, format, type, passphrase);
|
|
290
|
-
}
|
|
291
|
-
return new PrivateKeyObject(handle);
|
|
292
|
-
};
|
|
293
|
-
|
|
294
|
-
// const isKeyObject = (obj: any): obj is KeyObject => {
|
|
295
|
-
// return obj != null && obj.keyType !== undefined;
|
|
296
|
-
// };
|
|
297
|
-
|
|
298
|
-
export class CryptoKey {
|
|
299
|
-
constructor(keyObject, keyAlgorithm, keyUsages, keyExtractable) {
|
|
300
|
-
this.keyObject = keyObject;
|
|
301
|
-
this.keyAlgorithm = keyAlgorithm;
|
|
302
|
-
this.keyUsages = keyUsages;
|
|
303
|
-
this.keyExtractable = keyExtractable;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
307
|
-
inspect(_depth, _options) {
|
|
308
|
-
throw new Error('CryptoKey.inspect is not implemented');
|
|
309
|
-
// if (depth < 0) return this;
|
|
310
|
-
|
|
311
|
-
// const opts = {
|
|
312
|
-
// ...options,
|
|
313
|
-
// depth: options.depth == null ? null : options.depth - 1,
|
|
314
|
-
// };
|
|
315
|
-
|
|
316
|
-
// return `CryptoKey ${inspect(
|
|
317
|
-
// {
|
|
318
|
-
// type: this.type,
|
|
319
|
-
// extractable: this.extractable,
|
|
320
|
-
// algorithm: this.algorithm,
|
|
321
|
-
// usages: this.usages,
|
|
322
|
-
// },
|
|
323
|
-
// opts
|
|
324
|
-
// )}`;
|
|
325
|
-
}
|
|
326
|
-
get type() {
|
|
327
|
-
// if (!(this instanceof CryptoKey)) throw new Error('Invalid CryptoKey');
|
|
328
|
-
return this.keyObject.type;
|
|
329
|
-
}
|
|
330
|
-
get extractable() {
|
|
331
|
-
return this.keyExtractable;
|
|
332
|
-
}
|
|
333
|
-
get algorithm() {
|
|
334
|
-
return this.keyAlgorithm;
|
|
335
|
-
}
|
|
336
|
-
get usages() {
|
|
337
|
-
return this.keyUsages;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
class KeyObject {
|
|
341
|
-
type = 'unknown';
|
|
342
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
343
|
-
export(_options) {
|
|
344
|
-
return new ArrayBuffer(0);
|
|
345
|
-
}
|
|
346
|
-
constructor(type, handle) {
|
|
347
|
-
if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
|
|
348
|
-
this.handle = handle;
|
|
349
|
-
this.type = type;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
// get type(): string {
|
|
353
|
-
// return this.type;
|
|
354
|
-
// }
|
|
355
|
-
|
|
356
|
-
// static from(key) {
|
|
357
|
-
// if (!isCryptoKey(key))
|
|
358
|
-
// throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key);
|
|
359
|
-
// return key[kKeyObject];
|
|
360
|
-
// }
|
|
361
|
-
|
|
362
|
-
// equals(otherKeyObject) {
|
|
363
|
-
// if (!isKeyObject(otherKeyObject)) {
|
|
364
|
-
// throw new ERR_INVALID_ARG_TYPE(
|
|
365
|
-
// 'otherKeyObject',
|
|
366
|
-
// 'KeyObject',
|
|
367
|
-
// otherKeyObject
|
|
368
|
-
// );
|
|
369
|
-
// }
|
|
370
|
-
|
|
371
|
-
// return (
|
|
372
|
-
// otherKeyObject.type === this.type &&
|
|
373
|
-
// this[kHandle].equals(otherKeyObject[kHandle])
|
|
374
|
-
// );
|
|
375
|
-
// }
|
|
376
|
-
}
|
|
377
|
-
export class SecretKeyObject extends KeyObject {
|
|
378
|
-
constructor(handle) {
|
|
379
|
-
super('secret', handle);
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
// get symmetricKeySize() {
|
|
383
|
-
// return this[kHandle].getSymmetricKeySize();
|
|
384
|
-
// }
|
|
385
|
-
|
|
386
|
-
export(options) {
|
|
387
|
-
if (options !== undefined) {
|
|
388
|
-
if (options.format === 'jwk') {
|
|
389
|
-
throw new Error('SecretKey export for jwk is not implemented');
|
|
390
|
-
// return this.handle.exportJwk({}, false);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
return this.handle.export();
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
// const kAsymmetricKeyType = Symbol('kAsymmetricKeyType');
|
|
398
|
-
// const kAsymmetricKeyDetails = Symbol('kAsymmetricKeyDetails');
|
|
399
|
-
|
|
400
|
-
// function normalizeKeyDetails(details = {}) {
|
|
401
|
-
// if (details.publicExponent !== undefined) {
|
|
402
|
-
// return {
|
|
403
|
-
// ...details,
|
|
404
|
-
// publicExponent: bigIntArrayToUnsignedBigInt(
|
|
405
|
-
// new Uint8Array(details.publicExponent)
|
|
406
|
-
// ),
|
|
407
|
-
// };
|
|
408
|
-
// }
|
|
409
|
-
// return details;
|
|
410
|
-
// }
|
|
411
|
-
|
|
412
|
-
class AsymmetricKeyObject extends KeyObject {
|
|
413
|
-
constructor(type, handle) {
|
|
414
|
-
super(type, handle);
|
|
415
|
-
}
|
|
416
|
-
get asymmetricKeyType() {
|
|
417
|
-
if (!this._asymmetricKeyType) {
|
|
418
|
-
this._asymmetricKeyType = this.handle.getAsymmetricKeyType();
|
|
419
|
-
}
|
|
420
|
-
return this._asymmetricKeyType;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
// get asymmetricKeyDetails() {
|
|
424
|
-
// switch (this._asymmetricKeyType) {
|
|
425
|
-
// case 'rsa':
|
|
426
|
-
// case 'rsa-pss':
|
|
427
|
-
// case 'dsa':
|
|
428
|
-
// case 'ec':
|
|
429
|
-
// return (
|
|
430
|
-
// this[kAsymmetricKeyDetails] ||
|
|
431
|
-
// (this[kAsymmetricKeyDetails] = normalizeKeyDetails(
|
|
432
|
-
// this[kHandle].keyDetail({})
|
|
433
|
-
// ))
|
|
434
|
-
// );
|
|
435
|
-
// default:
|
|
436
|
-
// return {};
|
|
437
|
-
// }
|
|
438
|
-
// }
|
|
439
|
-
}
|
|
440
|
-
export class PublicKeyObject extends AsymmetricKeyObject {
|
|
441
|
-
constructor(handle) {
|
|
442
|
-
super('public', handle);
|
|
443
|
-
}
|
|
444
|
-
export(options) {
|
|
445
|
-
if (options?.format === 'jwk') {
|
|
446
|
-
throw new Error('PublicKey export for jwk is not implemented');
|
|
447
|
-
// return this.handle.exportJwk({}, false);
|
|
448
|
-
}
|
|
449
|
-
const {
|
|
450
|
-
format,
|
|
451
|
-
type
|
|
452
|
-
} = parsePublicKeyEncoding(options, this.asymmetricKeyType);
|
|
453
|
-
return this.handle.export(format, type);
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
export class PrivateKeyObject extends AsymmetricKeyObject {
|
|
457
|
-
constructor(handle) {
|
|
458
|
-
super('private', handle);
|
|
459
|
-
}
|
|
460
|
-
export(options) {
|
|
461
|
-
if (options?.format === 'jwk') {
|
|
462
|
-
if (options.passphrase !== undefined) {
|
|
463
|
-
throw new Error('jwk does not support encryption');
|
|
464
|
-
}
|
|
465
|
-
throw new Error('PrivateKey export for jwk is not implemented');
|
|
466
|
-
// return this.handle.exportJwk({}, false);
|
|
467
|
-
}
|
|
468
|
-
const {
|
|
469
|
-
format,
|
|
470
|
-
type,
|
|
471
|
-
cipher,
|
|
472
|
-
passphrase
|
|
473
|
-
} = parsePrivateKeyEncoding(options, this.asymmetricKeyType);
|
|
474
|
-
return this.handle.export(format, type, cipher, passphrase);
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
479
|
-
export const isCryptoKey = obj => {
|
|
480
|
-
return obj !== null && obj?.keyObject !== undefined;
|
|
481
|
-
};
|
|
482
|
-
//# sourceMappingURL=keys.js.map
|
package/lib/module/keys.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["binaryLikeToArrayBuffer","isStringOrBuffer","NativeQuickCrypto","kNamedCurveAliases","KFormatType","KeyType","KWebCryptoKeyFormat","WebCryptoKeyExportStatus","KeyInputContext","KeyEncoding","encodingNames","kKeyEncodingPKCS1","kKeyEncodingPKCS8","kKeyEncodingSPKI","kKeyEncodingSEC1","CipherOrWrapMode","option","name","objName","undefined","parseKeyFormat","formatStr","defaultFormat","optionName","kKeyFormatPEM","kKeyFormatDER","kKeyFormatJWK","Error","parseKeyType","typeStr","required","keyType","isPublic","parseKeyFormatAndType","enc","format","type","isInput","isRequired","parseKeyEncoding","cipher","passphrase","encoding","prepareAsymmetricKey","key","ctx","data","kConsumePrivate","kCreatePrivate","preparePrivateKey","preparePublicOrPrivateKey","kConsumePublic","parsePublicKeyEncoding","parsePrivateKeyEncoding","prepareSecretKey","bufferOnly","KeyObject","handle","export","CryptoKey","keyObject","ArrayBuffer","error","cause","createSecretKey","k","webcrypto","createKeyObjectHandle","init","Secret","SecretKeyObject","createPublicKey","kCreatePublic","Public","PublicKeyObject","createPrivateKey","Private","PrivateKeyObject","constructor","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","extractable","algorithm","usages","options","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","getAsymmetricKeyType","isCryptoKey","obj"],"sourceRoot":"../../src","sources":["keys.ts"],"mappings":"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","ignoreList":[]}
|