react-native-quick-crypto 0.7.3 → 1.0.0-beta.2
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 +34 -0
- package/README.md +13 -46
- package/android/CMakeLists.txt +32 -64
- package/android/build.gradle +52 -125
- package/android/gradle.properties +4 -4
- package/android/src/main/cpp/cpp-adapter.cpp +9 -54
- package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +38 -0
- package/cpp/random/HybridRandom.cpp +34 -0
- package/cpp/random/HybridRandom.hpp +44 -0
- package/cpp/utils/Utils.hpp +9 -0
- package/ios/QuickCryptoOnLoad.mm +19 -0
- package/lib/commonjs/index.js +39 -39
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/random.js +26 -12
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/{NativeQuickCrypto/rsa.js → specs/random.nitro.js} +1 -1
- package/lib/commonjs/{NativeQuickCrypto/aes.js.map → specs/random.nitro.js.map} +1 -1
- package/lib/commonjs/utils/conversion.js +22 -0
- package/lib/commonjs/utils/conversion.js.map +1 -0
- package/lib/commonjs/utils/index.js +12 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/utils/types.js +2 -0
- package/lib/{module/NativeQuickCrypto/aes.js.map → commonjs/utils/types.js.map} +1 -1
- package/lib/module/index.js +38 -38
- package/lib/module/index.js.map +1 -1
- package/lib/module/random.js +26 -12
- package/lib/module/random.js.map +1 -1
- package/lib/module/specs/random.nitro.js +4 -0
- package/lib/module/{NativeQuickCrypto/rsa.js.map → specs/random.nitro.js.map} +1 -1
- package/lib/module/utils/conversion.js +16 -0
- package/lib/module/utils/conversion.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 +2 -0
- package/lib/{commonjs/NativeQuickCrypto/rsa.js.map → module/utils/types.js.map} +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/typescript/index.d.ts +10 -141
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/random.d.ts +4 -5
- package/lib/typescript/random.d.ts.map +1 -1
- 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 +4 -0
- package/lib/typescript/utils/conversion.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 +5 -0
- package/lib/typescript/utils/types.d.ts.map +1 -0
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +45 -0
- package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +26 -0
- package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +57 -0
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +9 -0
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +25 -0
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +29 -0
- package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +62 -0
- package/package.json +50 -106
- package/src/index.ts +38 -48
- package/src/random.ts +51 -48
- package/src/specs/random.nitro.ts +14 -0
- package/src/utils/conversion.ts +16 -0
- package/src/utils/index.ts +6 -0
- package/src/utils/types.ts +15 -0
- package/LICENSE +0 -27
- 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 -325
- package/cpp/JSIUtils/MGLTypedArray.h +0 -160
- 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/fastpbkdf2/fastpbkdf2.c +0 -352
- package/cpp/fastpbkdf2/fastpbkdf2.h +0 -68
- 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/QuickCryptoModule.h +0 -5
- package/ios/QuickCryptoModule.mm +0 -42
- package/lib/commonjs/Cipher.js +0 -502
- package/lib/commonjs/Cipher.js.map +0 -1
- package/lib/commonjs/Hash.js +0 -99
- package/lib/commonjs/Hash.js.map +0 -1
- package/lib/commonjs/Hashnames.js +0 -87
- package/lib/commonjs/Hashnames.js.map +0 -1
- package/lib/commonjs/Hmac.js +0 -79
- 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 -52
- package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/aes.js +0 -6
- package/lib/commonjs/NativeQuickCrypto/hash.js +0 -2
- package/lib/commonjs/NativeQuickCrypto/hash.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/hmac.js +0 -2
- package/lib/commonjs/NativeQuickCrypto/hmac.js.map +0 -1
- package/lib/commonjs/NativeQuickCrypto/keygen.js +0 -6
- 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 +0 -6
- package/lib/commonjs/NativeQuickCrypto/webcrypto.js.map +0 -1
- package/lib/commonjs/Utils.js +0 -608
- package/lib/commonjs/Utils.js.map +0 -1
- package/lib/commonjs/aes.js +0 -281
- 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 -276
- package/lib/commonjs/ec.js.map +0 -1
- package/lib/commonjs/keygen.js +0 -56
- package/lib/commonjs/keygen.js.map +0 -1
- package/lib/commonjs/keys.js +0 -492
- package/lib/commonjs/keys.js.map +0 -1
- package/lib/commonjs/pbkdf2.js +0 -90
- package/lib/commonjs/pbkdf2.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 -129
- package/lib/commonjs/sig.js.map +0 -1
- package/lib/commonjs/subtle.js +0 -448
- 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/Cipher.js +0 -491
- package/lib/module/Cipher.js.map +0 -1
- package/lib/module/Hash.js +0 -93
- package/lib/module/Hash.js.map +0 -1
- package/lib/module/Hashnames.js +0 -85
- package/lib/module/Hashnames.js.map +0 -1
- package/lib/module/Hmac.js +0 -74
- 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 -49
- 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 -539
- package/lib/module/Utils.js.map +0 -1
- package/lib/module/aes.js +0 -274
- 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 -267
- package/lib/module/ec.js.map +0 -1
- package/lib/module/keygen.js +0 -49
- package/lib/module/keygen.js.map +0 -1
- package/lib/module/keys.js +0 -477
- package/lib/module/keys.js.map +0 -1
- package/lib/module/pbkdf2.js +0 -84
- package/lib/module/pbkdf2.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 -124
- package/lib/module/sig.js.map +0 -1
- package/lib/module/subtle.js +0 -443
- 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/Cipher.d.ts +0 -81
- package/lib/typescript/Cipher.d.ts.map +0 -1
- package/lib/typescript/Hash.d.ts +0 -44
- package/lib/typescript/Hash.d.ts.map +0 -1
- package/lib/typescript/Hashnames.d.ts +0 -11
- package/lib/typescript/Hashnames.d.ts.map +0 -1
- package/lib/typescript/Hmac.d.ts +0 -37
- package/lib/typescript/Hmac.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/Cipher.d.ts +0 -44
- package/lib/typescript/NativeQuickCrypto/Cipher.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts +0 -33
- package/lib/typescript/NativeQuickCrypto/NativeQuickCrypto.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/aes.d.ts +0 -5
- package/lib/typescript/NativeQuickCrypto/aes.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/hash.d.ts +0 -7
- package/lib/typescript/NativeQuickCrypto/hash.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/hmac.d.ts +0 -6
- package/lib/typescript/NativeQuickCrypto/hmac.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/keygen.d.ts +0 -4
- package/lib/typescript/NativeQuickCrypto/keygen.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts +0 -5
- package/lib/typescript/NativeQuickCrypto/pbkdf2.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/random.d.ts +0 -5
- package/lib/typescript/NativeQuickCrypto/random.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/rsa.d.ts +0 -5
- package/lib/typescript/NativeQuickCrypto/rsa.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/sig.d.ts +0 -23
- package/lib/typescript/NativeQuickCrypto/sig.d.ts.map +0 -1
- package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts +0 -39
- package/lib/typescript/NativeQuickCrypto/webcrypto.d.ts.map +0 -1
- package/lib/typescript/Utils.d.ts +0 -48
- package/lib/typescript/Utils.d.ts.map +0 -1
- package/lib/typescript/aes.d.ts +0 -22
- package/lib/typescript/aes.d.ts.map +0 -1
- package/lib/typescript/constants.d.ts +0 -76
- package/lib/typescript/constants.d.ts.map +0 -1
- package/lib/typescript/ec.d.ts +0 -7
- package/lib/typescript/ec.d.ts.map +0 -1
- package/lib/typescript/keygen.d.ts +0 -6
- package/lib/typescript/keygen.d.ts.map +0 -1
- package/lib/typescript/keys.d.ts +0 -206
- package/lib/typescript/keys.d.ts.map +0 -1
- package/lib/typescript/pbkdf2.d.ts +0 -12
- package/lib/typescript/pbkdf2.d.ts.map +0 -1
- package/lib/typescript/rsa.d.ts +0 -12
- package/lib/typescript/rsa.d.ts.map +0 -1
- package/lib/typescript/sig.d.ts +0 -21
- package/lib/typescript/sig.d.ts.map +0 -1
- package/lib/typescript/subtle.d.ts +0 -15
- package/lib/typescript/subtle.d.ts.map +0 -1
- package/lib/typescript/webcrypto.d.ts +0 -9
- package/lib/typescript/webcrypto.d.ts.map +0 -1
- package/react-native-quick-crypto.podspec +0 -40
- package/src/Cipher.ts +0 -832
- package/src/Hash.ts +0 -132
- package/src/Hashnames.ts +0 -93
- package/src/Hmac.ts +0 -106
- package/src/NativeQuickCrypto/Cipher.ts +0 -102
- package/src/NativeQuickCrypto/NativeQuickCrypto.ts +0 -102
- 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/pbkdf2.ts +0 -16
- package/src/NativeQuickCrypto/random.ts +0 -12
- package/src/NativeQuickCrypto/rsa.ts +0 -12
- package/src/NativeQuickCrypto/sig.ts +0 -44
- package/src/NativeQuickCrypto/webcrypto.ts +0 -72
- package/src/Utils.ts +0 -777
- package/src/aes.ts +0 -402
- package/src/constants.ts +0 -79
- package/src/ec.ts +0 -375
- package/src/keygen.ts +0 -80
- package/src/keys.ts +0 -787
- package/src/pbkdf2.ts +0 -169
- package/src/rsa.ts +0 -370
- package/src/sig.ts +0 -164
- package/src/subtle.ts +0 -639
- package/src/webcrypto.ts +0 -8
- /package/android/src/main/{AndroidManifestNew.xml → AndroidManifest.xml} +0 -0
package/lib/commonjs/ec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_Cipher","require","_NativeQuickCrypto","_sig","_Utils","_keys","verifyAcceptableEcKeyUse","name","isPublic","usages","checkSet","lazyDOMException","hasAnyNotIn","createECPublicKeyRaw","namedCurve","keyData","Error","handle","NativeQuickCrypto","webcrypto","createKeyObjectHandle","initECRaw","kNamedCurveAliases","console","log","ab2str","PublicKeyObject","ecExportKey","key","format","keyObject","ecImportKey","algorithm","extractable","keyUsages","data","kty","crv","d","undefined","length","use","checkUse","validateKeyOps","key_ops","ext","alg","algNamedCurve","type","initJwk","KeyType","Private","PrivateKeyObject","buffer","binaryLikeToArrayBuffer","bufferLikeToArrayBuffer","asymmetricKeyType","CryptoKey","ecdsaSignVerify","hash","signature","mode","SignMode","kSignJobModeSign","kSignJobModeVerify","hashname","normalizeHashName","signVerify","DSASigEnc","kSigEncP1363","ArrayBuffer","exports","ecGenerateKey","Object","keys","includes","checkUsages","options","err","keypair","generateKeyPairPromise","cause","publicUsages","privateUsages","getUsagesUnion","keyAlgorithm","pub","publicKey","priv","privateKey"],"sourceRoot":"../../src","sources":["ec.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/keygen.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.generateKeySync = exports.generateKeyPromise = exports.generateKey = void 0;
|
|
7
|
-
var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
|
|
8
|
-
var _Utils = require("./Utils");
|
|
9
|
-
var _aes = require("./aes");
|
|
10
|
-
var _keys = require("./keys");
|
|
11
|
-
const generateKeyPromise = (type, options) => {
|
|
12
|
-
return new Promise((resolve, reject) => {
|
|
13
|
-
generateKey(type, options, (err, key) => {
|
|
14
|
-
if (err) {
|
|
15
|
-
reject([err, undefined]);
|
|
16
|
-
}
|
|
17
|
-
resolve([undefined, key]);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
exports.generateKeyPromise = generateKeyPromise;
|
|
22
|
-
const generateKey = (type, options, callback) => {
|
|
23
|
-
validateLength(type, options.length);
|
|
24
|
-
if (!(0, _Utils.validateFunction)(callback)) {
|
|
25
|
-
throw (0, _Utils.lazyDOMException)('Callback is not a function', 'SyntaxError');
|
|
26
|
-
}
|
|
27
|
-
_NativeQuickCrypto.NativeQuickCrypto.webcrypto.generateSecretKey(options.length).then(handle => {
|
|
28
|
-
callback(undefined, new _keys.SecretKeyObject(handle));
|
|
29
|
-
}).catch(err => {
|
|
30
|
-
callback(err, undefined);
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
exports.generateKey = generateKey;
|
|
34
|
-
const generateKeySync = (type, options) => {
|
|
35
|
-
validateLength(type, options.length);
|
|
36
|
-
const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.generateSecretKeySync(options.length);
|
|
37
|
-
return new _keys.SecretKeyObject(handle);
|
|
38
|
-
};
|
|
39
|
-
exports.generateKeySync = generateKeySync;
|
|
40
|
-
const validateLength = (type, length) => {
|
|
41
|
-
switch (type) {
|
|
42
|
-
case 'aes':
|
|
43
|
-
if (!_aes.kAesKeyLengths.includes(length)) {
|
|
44
|
-
throw (0, _Utils.lazyDOMException)('AES key length must be 128, 192, or 256 bits', 'OperationError');
|
|
45
|
-
}
|
|
46
|
-
break;
|
|
47
|
-
case 'hmac':
|
|
48
|
-
if (length < 8 || length > 2 ** 31 - 1) {
|
|
49
|
-
throw (0, _Utils.lazyDOMException)('HMAC key length must be between 8 and 2^31 - 1', 'OperationError');
|
|
50
|
-
}
|
|
51
|
-
break;
|
|
52
|
-
default:
|
|
53
|
-
throw new Error(`Unsupported key type '${type}' for generateKey()`);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=keygen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_NativeQuickCrypto","require","_Utils","_aes","_keys","generateKeyPromise","type","options","Promise","resolve","reject","generateKey","err","key","undefined","exports","callback","validateLength","length","validateFunction","lazyDOMException","NativeQuickCrypto","webcrypto","generateSecretKey","then","handle","SecretKeyObject","catch","generateKeySync","generateSecretKeySync","kAesKeyLengths","includes","Error"],"sourceRoot":"../../src","sources":["keygen.ts"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAWO,MAAMI,kBAAkB,GAAGA,CAChCC,IAAmB,EACnBC,OAAwB,KACsC;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;AAACE,OAAA,CAAAV,kBAAA,GAAAA,kBAAA;AAEK,MAAMM,WAAW,GAAGA,CACzBL,IAAmB,EACnBC,OAAwB,EACxBS,QAAwB,KACf;EACTC,cAAc,CAACX,IAAI,EAAEC,OAAO,CAACW,MAAM,CAAC;EACpC,IAAI,CAAC,IAAAC,uBAAgB,EAACH,QAAQ,CAAC,EAAE;IAC/B,MAAM,IAAAI,uBAAgB,EAAC,4BAA4B,EAAE,aAAa,CAAC;EACrE;EACAC,oCAAiB,CAACC,SAAS,CACxBC,iBAAiB,CAAChB,OAAO,CAACW,MAAM,CAAC,CACjCM,IAAI,CAAEC,MAAM,IAAK;IAChBT,QAAQ,CAACF,SAAS,EAAE,IAAIY,qBAAe,CAACD,MAAM,CAAC,CAAC;EAClD,CAAC,CAAC,CACDE,KAAK,CAAEf,GAAG,IAAK;IACdI,QAAQ,CAACJ,GAAG,EAAEE,SAAS,CAAC;EAC1B,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAJ,WAAA,GAAAA,WAAA;AAEK,MAAMiB,eAAe,GAAGA,CAC7BtB,IAAmB,EACnBC,OAAwB,KACJ;EACpBU,cAAc,CAACX,IAAI,EAAEC,OAAO,CAACW,MAAM,CAAC;EACpC,MAAMO,MAAM,GAAGJ,oCAAiB,CAACC,SAAS,CAACO,qBAAqB,CAC9DtB,OAAO,CAACW,MACV,CAAC;EACD,OAAO,IAAIQ,qBAAe,CAACD,MAAM,CAAC;AACpC,CAAC;AAACV,OAAA,CAAAa,eAAA,GAAAA,eAAA;AAEF,MAAMX,cAAc,GAAGA,CAACX,IAAmB,EAAEY,MAAc,KAAK;EAC9D,QAAQZ,IAAI;IACV,KAAK,KAAK;MACR,IAAI,CAACwB,mBAAc,CAACC,QAAQ,CAACb,MAAM,CAAC,EAAE;QACpC,MAAM,IAAAE,uBAAgB,EACpB,8CAA8C,EAC9C,gBACF,CAAC;MACH;MACA;IACF,KAAK,MAAM;MACT,IAAIF,MAAM,GAAG,CAAC,IAAIA,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;QACtC,MAAM,IAAAE,uBAAgB,EACpB,gDAAgD,EAChD,gBACF,CAAC;MACH;MACA;IACF;MACE,MAAM,IAAIY,KAAK,CAAE,yBAAwB1B,IAAK,qBAAoB,CAAC;EACvE;AACF,CAAC","ignoreList":[]}
|
package/lib/commonjs/keys.js
DELETED
|
@@ -1,492 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createPrivateKey = exports.WebCryptoKeyExportStatus = exports.SecretKeyObject = exports.PublicKeyObject = exports.PrivateKeyObject = exports.KeyType = exports.KeyEncoding = exports.KWebCryptoKeyFormat = exports.KFormatType = exports.CryptoKey = exports.CipherOrWrapMode = void 0;
|
|
7
|
-
exports.createPublicKey = createPublicKey;
|
|
8
|
-
exports.createSecretKey = createSecretKey;
|
|
9
|
-
exports.kNamedCurveAliases = exports.isCryptoKey = void 0;
|
|
10
|
-
exports.parsePrivateKeyEncoding = parsePrivateKeyEncoding;
|
|
11
|
-
exports.parsePublicKeyEncoding = parsePublicKeyEncoding;
|
|
12
|
-
exports.preparePrivateKey = preparePrivateKey;
|
|
13
|
-
exports.preparePublicOrPrivateKey = preparePublicOrPrivateKey;
|
|
14
|
-
var _Utils = require("./Utils");
|
|
15
|
-
var _NativeQuickCrypto = require("./NativeQuickCrypto/NativeQuickCrypto");
|
|
16
|
-
const kNamedCurveAliases = exports.kNamedCurveAliases = {
|
|
17
|
-
'P-256': 'prime256v1',
|
|
18
|
-
'P-384': 'secp384r1',
|
|
19
|
-
'P-521': 'secp521r1'
|
|
20
|
-
};
|
|
21
|
-
// On node this value is defined on the native side, for now I'm just creating it here in JS
|
|
22
|
-
// TODO(osp) move this into native side to make sure they always match
|
|
23
|
-
let KFormatType = exports.KFormatType = /*#__PURE__*/function (KFormatType) {
|
|
24
|
-
KFormatType[KFormatType["kKeyFormatDER"] = 0] = "kKeyFormatDER";
|
|
25
|
-
KFormatType[KFormatType["kKeyFormatPEM"] = 1] = "kKeyFormatPEM";
|
|
26
|
-
KFormatType[KFormatType["kKeyFormatJWK"] = 2] = "kKeyFormatJWK";
|
|
27
|
-
return KFormatType;
|
|
28
|
-
}({});
|
|
29
|
-
// Same as KFormatType, this enum needs to be defined on the native side
|
|
30
|
-
let KeyType = exports.KeyType = /*#__PURE__*/function (KeyType) {
|
|
31
|
-
KeyType[KeyType["Secret"] = 0] = "Secret";
|
|
32
|
-
KeyType[KeyType["Public"] = 1] = "Public";
|
|
33
|
-
KeyType[KeyType["Private"] = 2] = "Private";
|
|
34
|
-
return KeyType;
|
|
35
|
-
}({});
|
|
36
|
-
// Same as KFormatType, this enum needs to be defined on the native side
|
|
37
|
-
let KWebCryptoKeyFormat = exports.KWebCryptoKeyFormat = /*#__PURE__*/function (KWebCryptoKeyFormat) {
|
|
38
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatRaw"] = 0] = "kWebCryptoKeyFormatRaw";
|
|
39
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatPKCS8"] = 1] = "kWebCryptoKeyFormatPKCS8";
|
|
40
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatSPKI"] = 2] = "kWebCryptoKeyFormatSPKI";
|
|
41
|
-
KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatJWK"] = 3] = "kWebCryptoKeyFormatJWK";
|
|
42
|
-
return KWebCryptoKeyFormat;
|
|
43
|
-
}({});
|
|
44
|
-
let WebCryptoKeyExportStatus = exports.WebCryptoKeyExportStatus = /*#__PURE__*/function (WebCryptoKeyExportStatus) {
|
|
45
|
-
WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["OK"] = 0] = "OK";
|
|
46
|
-
WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["INVALID_KEY_TYPE"] = 1] = "INVALID_KEY_TYPE";
|
|
47
|
-
WebCryptoKeyExportStatus[WebCryptoKeyExportStatus["FAILED"] = 2] = "FAILED";
|
|
48
|
-
return WebCryptoKeyExportStatus;
|
|
49
|
-
}({});
|
|
50
|
-
var KeyInputContext = /*#__PURE__*/function (KeyInputContext) {
|
|
51
|
-
KeyInputContext[KeyInputContext["kConsumePublic"] = 0] = "kConsumePublic";
|
|
52
|
-
KeyInputContext[KeyInputContext["kConsumePrivate"] = 1] = "kConsumePrivate";
|
|
53
|
-
KeyInputContext[KeyInputContext["kCreatePublic"] = 2] = "kCreatePublic";
|
|
54
|
-
KeyInputContext[KeyInputContext["kCreatePrivate"] = 3] = "kCreatePrivate";
|
|
55
|
-
return KeyInputContext;
|
|
56
|
-
}(KeyInputContext || {});
|
|
57
|
-
let KeyEncoding = exports.KeyEncoding = /*#__PURE__*/function (KeyEncoding) {
|
|
58
|
-
KeyEncoding[KeyEncoding["kKeyEncodingPKCS1"] = 0] = "kKeyEncodingPKCS1";
|
|
59
|
-
KeyEncoding[KeyEncoding["kKeyEncodingPKCS8"] = 1] = "kKeyEncodingPKCS8";
|
|
60
|
-
KeyEncoding[KeyEncoding["kKeyEncodingSPKI"] = 2] = "kKeyEncodingSPKI";
|
|
61
|
-
KeyEncoding[KeyEncoding["kKeyEncodingSEC1"] = 3] = "kKeyEncodingSEC1";
|
|
62
|
-
return KeyEncoding;
|
|
63
|
-
}({});
|
|
64
|
-
const encodingNames = {
|
|
65
|
-
[KeyEncoding.kKeyEncodingPKCS1]: 'pkcs1',
|
|
66
|
-
[KeyEncoding.kKeyEncodingPKCS8]: 'pkcs8',
|
|
67
|
-
[KeyEncoding.kKeyEncodingSPKI]: 'spki',
|
|
68
|
-
[KeyEncoding.kKeyEncodingSEC1]: 'sec1'
|
|
69
|
-
};
|
|
70
|
-
let CipherOrWrapMode = exports.CipherOrWrapMode = /*#__PURE__*/function (CipherOrWrapMode) {
|
|
71
|
-
CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherEncrypt"] = 0] = "kWebCryptoCipherEncrypt";
|
|
72
|
-
CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherDecrypt"] = 1] = "kWebCryptoCipherDecrypt";
|
|
73
|
-
return CipherOrWrapMode;
|
|
74
|
-
}({}); // kWebCryptoWrapKey,
|
|
75
|
-
// kWebCryptoUnwrapKey,
|
|
76
|
-
function option(name, objName) {
|
|
77
|
-
return objName === undefined ? `options.${name}` : `options.${objName}.${name}`;
|
|
78
|
-
}
|
|
79
|
-
function parseKeyFormat(formatStr, defaultFormat, optionName) {
|
|
80
|
-
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;
|
|
81
|
-
throw new Error(`Invalid key format str: ${optionName}`);
|
|
82
|
-
// throw new ERR_INVALID_ARG_VALUE(optionName, formatStr);
|
|
83
|
-
}
|
|
84
|
-
function parseKeyType(typeStr, required, keyType, isPublic, optionName) {
|
|
85
|
-
if (typeStr === undefined && !required) {
|
|
86
|
-
return undefined;
|
|
87
|
-
} else if (typeStr === 'pkcs1') {
|
|
88
|
-
if (keyType !== undefined && keyType !== 'rsa') {
|
|
89
|
-
throw new Error(`Crypto incompatible key options: ${typeStr} can only be used for RSA keys`);
|
|
90
|
-
}
|
|
91
|
-
return KeyEncoding.kKeyEncodingPKCS1;
|
|
92
|
-
} else if (typeStr === 'spki' && isPublic !== false) {
|
|
93
|
-
return KeyEncoding.kKeyEncodingSPKI;
|
|
94
|
-
} else if (typeStr === 'pkcs8' && isPublic !== true) {
|
|
95
|
-
return KeyEncoding.kKeyEncodingPKCS8;
|
|
96
|
-
} else if (typeStr === 'sec1' && isPublic !== true) {
|
|
97
|
-
if (keyType !== undefined && keyType !== 'ec') {
|
|
98
|
-
throw new Error(`Incompatible key options ${typeStr} can only be used for EC keys`);
|
|
99
|
-
}
|
|
100
|
-
return KeyEncoding.kKeyEncodingSEC1;
|
|
101
|
-
}
|
|
102
|
-
throw new Error(`Invalid option ${optionName} - ${typeStr}`);
|
|
103
|
-
}
|
|
104
|
-
function parseKeyFormatAndType(enc, keyType, isPublic, objName) {
|
|
105
|
-
const {
|
|
106
|
-
format: formatStr,
|
|
107
|
-
type: typeStr
|
|
108
|
-
} = enc;
|
|
109
|
-
const isInput = keyType === undefined;
|
|
110
|
-
const format = parseKeyFormat(formatStr, isInput ? KFormatType.kKeyFormatPEM : undefined, option('format', objName));
|
|
111
|
-
const isRequired = (!isInput || format === KFormatType.kKeyFormatDER) && format !== KFormatType.kKeyFormatJWK;
|
|
112
|
-
const type = parseKeyType(typeStr, isRequired, keyType, isPublic, option('type', objName));
|
|
113
|
-
return {
|
|
114
|
-
format,
|
|
115
|
-
type
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
function parseKeyEncoding(enc, keyType, isPublic, objName) {
|
|
119
|
-
// validateObject(enc, 'options');
|
|
120
|
-
|
|
121
|
-
const isInput = keyType === undefined;
|
|
122
|
-
const {
|
|
123
|
-
format,
|
|
124
|
-
type
|
|
125
|
-
} = parseKeyFormatAndType(enc, keyType, isPublic, objName);
|
|
126
|
-
let cipher, passphrase, encoding;
|
|
127
|
-
if (isPublic !== true) {
|
|
128
|
-
({
|
|
129
|
-
cipher,
|
|
130
|
-
passphrase,
|
|
131
|
-
encoding
|
|
132
|
-
} = enc);
|
|
133
|
-
if (!isInput) {
|
|
134
|
-
if (cipher != null) {
|
|
135
|
-
if (typeof cipher !== 'string') throw new Error(`Invalid argument ${option('cipher', objName)}: ${cipher}`);
|
|
136
|
-
if (format === KFormatType.kKeyFormatDER && (type === KeyEncoding.kKeyEncodingPKCS1 || type === KeyEncoding.kKeyEncodingSEC1)) {
|
|
137
|
-
throw new Error(`Incompatible key options ${encodingNames[type]} does not support encryption`);
|
|
138
|
-
}
|
|
139
|
-
} else if (passphrase !== undefined) {
|
|
140
|
-
throw new Error(`invalid argument ${option('cipher', objName)}: ${cipher}`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if (isInput && passphrase !== undefined && !(0, _Utils.isStringOrBuffer)(passphrase) || !isInput && cipher != null && !(0, _Utils.isStringOrBuffer)(passphrase)) {
|
|
144
|
-
throw new Error(`Invalid argument value ${option('passphrase', objName)}: ${passphrase}`);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
if (passphrase !== undefined) passphrase = (0, _Utils.binaryLikeToArrayBuffer)(passphrase, encoding);
|
|
148
|
-
return {
|
|
149
|
-
format,
|
|
150
|
-
type,
|
|
151
|
-
cipher,
|
|
152
|
-
passphrase
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
function prepareAsymmetricKey(key, ctx) {
|
|
156
|
-
// TODO(osp) check, KeyObject some node object
|
|
157
|
-
// if (isKeyObject(key)) {
|
|
158
|
-
// // Best case: A key object, as simple as that.
|
|
159
|
-
// return { data: getKeyObjectHandle(key, ctx) };
|
|
160
|
-
// } else
|
|
161
|
-
// if (isCryptoKey(key)) {
|
|
162
|
-
// return { data: getKeyObjectHandle(key[kKeyObject], ctx) };
|
|
163
|
-
// } else
|
|
164
|
-
if ((0, _Utils.isStringOrBuffer)(key)) {
|
|
165
|
-
// Expect PEM by default, mostly for backward compatibility.
|
|
166
|
-
return {
|
|
167
|
-
format: KFormatType.kKeyFormatPEM,
|
|
168
|
-
data: (0, _Utils.binaryLikeToArrayBuffer)(key)
|
|
169
|
-
};
|
|
170
|
-
} else if (typeof key === 'object') {
|
|
171
|
-
const {
|
|
172
|
-
key: data,
|
|
173
|
-
encoding
|
|
174
|
-
} = key;
|
|
175
|
-
// // The 'key' property can be a KeyObject as well to allow specifying
|
|
176
|
-
// // additional options such as padding along with the key.
|
|
177
|
-
// if (isKeyObject(data)) {
|
|
178
|
-
// return { data: getKeyObjectHandle(data, ctx) };
|
|
179
|
-
// }
|
|
180
|
-
// else if (isCryptoKey(data))
|
|
181
|
-
// return { data: getKeyObjectHandle(data[kKeyObject], ctx) };
|
|
182
|
-
// else if (isJwk(data) && format === 'jwk')
|
|
183
|
-
// return { data: getKeyObjectHandleFromJwk(data, ctx), format: 'jwk' };
|
|
184
|
-
// Either PEM or DER using PKCS#1 or SPKI.
|
|
185
|
-
if (!(0, _Utils.isStringOrBuffer)(data)) {
|
|
186
|
-
throw new Error('prepareAsymmetricKey: key is not a string or ArrayBuffer');
|
|
187
|
-
}
|
|
188
|
-
const isPublic = ctx === KeyInputContext.kConsumePrivate || ctx === KeyInputContext.kCreatePrivate ? false : undefined;
|
|
189
|
-
return {
|
|
190
|
-
data: (0, _Utils.binaryLikeToArrayBuffer)(data, encoding),
|
|
191
|
-
...parseKeyEncoding(key, undefined, isPublic)
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
throw new Error('[prepareAsymetricKey] Invalid argument key: ${key}');
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// TODO(osp) any here is a node KeyObject
|
|
198
|
-
function preparePrivateKey(key) {
|
|
199
|
-
return prepareAsymmetricKey(key, KeyInputContext.kConsumePrivate);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
// TODO(osp) any here is a node KeyObject
|
|
203
|
-
function preparePublicOrPrivateKey(key) {
|
|
204
|
-
return prepareAsymmetricKey(key, KeyInputContext.kConsumePublic);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Parses the public key encoding based on an object. keyType must be undefined
|
|
208
|
-
// when this is used to parse an input encoding and must be a valid key type if
|
|
209
|
-
// used to parse an output encoding.
|
|
210
|
-
function parsePublicKeyEncoding(enc, keyType, objName) {
|
|
211
|
-
return parseKeyEncoding(enc, keyType, keyType ? true : undefined, objName);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// Parses the private key encoding based on an object. keyType must be undefined
|
|
215
|
-
// when this is used to parse an input encoding and must be a valid key type if
|
|
216
|
-
// used to parse an output encoding.
|
|
217
|
-
function parsePrivateKeyEncoding(enc, keyType, objName) {
|
|
218
|
-
return parseKeyEncoding(enc, keyType, false, objName);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// function getKeyObjectHandle(key: any, ctx: KeyInputContext) {
|
|
222
|
-
// if (ctx === KeyInputContext.kConsumePublic) {
|
|
223
|
-
// throw new Error(
|
|
224
|
-
// 'Invalid argument type for "key". Need ArrayBuffer, TypeArray, KeyObject, CryptoKey, string'
|
|
225
|
-
// );
|
|
226
|
-
// }
|
|
227
|
-
|
|
228
|
-
// if (key.type !== 'private') {
|
|
229
|
-
// if (
|
|
230
|
-
// ctx === KeyInputContext.kConsumePrivate ||
|
|
231
|
-
// ctx === KeyInputContext.kCreatePublic
|
|
232
|
-
// )
|
|
233
|
-
// throw new Error(`Invalid KeyObject type: ${key.type}, expected 'public'`);
|
|
234
|
-
// if (key.type !== 'public') {
|
|
235
|
-
// throw new Error(
|
|
236
|
-
// `Invalid KeyObject type: ${key.type}, expected 'private' or 'public'`
|
|
237
|
-
// );
|
|
238
|
-
// }
|
|
239
|
-
// }
|
|
240
|
-
|
|
241
|
-
// return key.handle;
|
|
242
|
-
// }
|
|
243
|
-
|
|
244
|
-
function prepareSecretKey(key, encoding, bufferOnly = false) {
|
|
245
|
-
try {
|
|
246
|
-
if (!bufferOnly) {
|
|
247
|
-
// TODO: maybe use `key.constructor.name === 'KeyObject'` ?
|
|
248
|
-
if (key instanceof KeyObject) {
|
|
249
|
-
if (key.type !== 'secret') throw new Error(`invalid KeyObject type: ${key.type}, expected 'secret'`);
|
|
250
|
-
return key.handle;
|
|
251
|
-
}
|
|
252
|
-
// TODO: maybe use `key.constructor.name === 'CryptoKey'` ?
|
|
253
|
-
else if (key instanceof CryptoKey) {
|
|
254
|
-
if (key.type !== 'secret') throw new Error(`invalid CryptoKey type: ${key.type}, expected 'secret'`);
|
|
255
|
-
return key.keyObject.handle;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
if (key instanceof ArrayBuffer) {
|
|
259
|
-
return key;
|
|
260
|
-
}
|
|
261
|
-
return (0, _Utils.binaryLikeToArrayBuffer)(key, encoding);
|
|
262
|
-
} catch (error) {
|
|
263
|
-
throw new Error('Invalid argument type for "key". Need ArrayBuffer, TypedArray, KeyObject, CryptoKey, string', {
|
|
264
|
-
cause: error
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
function createSecretKey(key, encoding) {
|
|
269
|
-
const k = prepareSecretKey(key, encoding, true);
|
|
270
|
-
const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.createKeyObjectHandle();
|
|
271
|
-
handle.init(KeyType.Secret, k);
|
|
272
|
-
return new SecretKeyObject(handle);
|
|
273
|
-
}
|
|
274
|
-
function createPublicKey(key) {
|
|
275
|
-
const {
|
|
276
|
-
format,
|
|
277
|
-
type,
|
|
278
|
-
data,
|
|
279
|
-
passphrase
|
|
280
|
-
} = prepareAsymmetricKey(key, KeyInputContext.kCreatePublic);
|
|
281
|
-
const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.createKeyObjectHandle();
|
|
282
|
-
if (format === KFormatType.kKeyFormatJWK) {
|
|
283
|
-
handle.init(KeyType.Public, data);
|
|
284
|
-
} else {
|
|
285
|
-
handle.init(KeyType.Public, data, format, type, passphrase);
|
|
286
|
-
}
|
|
287
|
-
return new PublicKeyObject(handle);
|
|
288
|
-
}
|
|
289
|
-
const createPrivateKey = key => {
|
|
290
|
-
const {
|
|
291
|
-
format,
|
|
292
|
-
type,
|
|
293
|
-
data,
|
|
294
|
-
passphrase
|
|
295
|
-
} = prepareAsymmetricKey(key, KeyInputContext.kCreatePrivate);
|
|
296
|
-
const handle = _NativeQuickCrypto.NativeQuickCrypto.webcrypto.createKeyObjectHandle();
|
|
297
|
-
if (format === KFormatType.kKeyFormatJWK) {
|
|
298
|
-
handle.init(KeyType.Private, data);
|
|
299
|
-
} else {
|
|
300
|
-
handle.init(KeyType.Private, data, format, type, passphrase);
|
|
301
|
-
}
|
|
302
|
-
return new PrivateKeyObject(handle);
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
// const isKeyObject = (obj: any): obj is KeyObject => {
|
|
306
|
-
// return obj != null && obj.keyType !== undefined;
|
|
307
|
-
// };
|
|
308
|
-
exports.createPrivateKey = createPrivateKey;
|
|
309
|
-
class CryptoKey {
|
|
310
|
-
constructor(keyObject, keyAlgorithm, keyUsages, keyExtractable) {
|
|
311
|
-
this.keyObject = keyObject;
|
|
312
|
-
this.keyAlgorithm = keyAlgorithm;
|
|
313
|
-
this.keyUsages = keyUsages;
|
|
314
|
-
this.keyExtractable = keyExtractable;
|
|
315
|
-
}
|
|
316
|
-
inspect(_depth, _options) {
|
|
317
|
-
throw new Error('CryptoKey.inspect is not implemented');
|
|
318
|
-
// if (depth < 0) return this;
|
|
319
|
-
|
|
320
|
-
// const opts = {
|
|
321
|
-
// ...options,
|
|
322
|
-
// depth: options.depth == null ? null : options.depth - 1,
|
|
323
|
-
// };
|
|
324
|
-
|
|
325
|
-
// return `CryptoKey ${inspect(
|
|
326
|
-
// {
|
|
327
|
-
// type: this.type,
|
|
328
|
-
// extractable: this.extractable,
|
|
329
|
-
// algorithm: this.algorithm,
|
|
330
|
-
// usages: this.usages,
|
|
331
|
-
// },
|
|
332
|
-
// opts
|
|
333
|
-
// )}`;
|
|
334
|
-
}
|
|
335
|
-
get type() {
|
|
336
|
-
// if (!(this instanceof CryptoKey)) throw new Error('Invalid CryptoKey');
|
|
337
|
-
return this.keyObject.type;
|
|
338
|
-
}
|
|
339
|
-
get extractable() {
|
|
340
|
-
return this.keyExtractable;
|
|
341
|
-
}
|
|
342
|
-
get algorithm() {
|
|
343
|
-
return this.keyAlgorithm;
|
|
344
|
-
}
|
|
345
|
-
get usages() {
|
|
346
|
-
return this.keyUsages;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
exports.CryptoKey = CryptoKey;
|
|
350
|
-
class KeyObject {
|
|
351
|
-
type = 'unknown';
|
|
352
|
-
export(_options) {
|
|
353
|
-
return new ArrayBuffer(0);
|
|
354
|
-
}
|
|
355
|
-
constructor(type, handle) {
|
|
356
|
-
if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
|
|
357
|
-
this.handle = handle;
|
|
358
|
-
this.type = type;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// get type(): string {
|
|
362
|
-
// return this.type;
|
|
363
|
-
// }
|
|
364
|
-
|
|
365
|
-
// static from(key) {
|
|
366
|
-
// if (!isCryptoKey(key))
|
|
367
|
-
// throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key);
|
|
368
|
-
// return key[kKeyObject];
|
|
369
|
-
// }
|
|
370
|
-
|
|
371
|
-
// equals(otherKeyObject) {
|
|
372
|
-
// if (!isKeyObject(otherKeyObject)) {
|
|
373
|
-
// throw new ERR_INVALID_ARG_TYPE(
|
|
374
|
-
// 'otherKeyObject',
|
|
375
|
-
// 'KeyObject',
|
|
376
|
-
// otherKeyObject
|
|
377
|
-
// );
|
|
378
|
-
// }
|
|
379
|
-
|
|
380
|
-
// return (
|
|
381
|
-
// otherKeyObject.type === this.type &&
|
|
382
|
-
// this[kHandle].equals(otherKeyObject[kHandle])
|
|
383
|
-
// );
|
|
384
|
-
// }
|
|
385
|
-
}
|
|
386
|
-
class SecretKeyObject extends KeyObject {
|
|
387
|
-
constructor(handle) {
|
|
388
|
-
super('secret', handle);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
// get symmetricKeySize() {
|
|
392
|
-
// return this[kHandle].getSymmetricKeySize();
|
|
393
|
-
// }
|
|
394
|
-
|
|
395
|
-
export(options) {
|
|
396
|
-
if (options !== undefined) {
|
|
397
|
-
if (options.format === 'jwk') {
|
|
398
|
-
throw new Error('SecretKey export for jwk is not implemented');
|
|
399
|
-
// return this.handle.exportJwk({}, false);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
return this.handle.export();
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
// const kAsymmetricKeyType = Symbol('kAsymmetricKeyType');
|
|
407
|
-
// const kAsymmetricKeyDetails = Symbol('kAsymmetricKeyDetails');
|
|
408
|
-
|
|
409
|
-
// function normalizeKeyDetails(details = {}) {
|
|
410
|
-
// if (details.publicExponent !== undefined) {
|
|
411
|
-
// return {
|
|
412
|
-
// ...details,
|
|
413
|
-
// publicExponent: bigIntArrayToUnsignedBigInt(
|
|
414
|
-
// new Uint8Array(details.publicExponent)
|
|
415
|
-
// ),
|
|
416
|
-
// };
|
|
417
|
-
// }
|
|
418
|
-
// return details;
|
|
419
|
-
// }
|
|
420
|
-
exports.SecretKeyObject = SecretKeyObject;
|
|
421
|
-
class AsymmetricKeyObject extends KeyObject {
|
|
422
|
-
constructor(type, handle) {
|
|
423
|
-
super(type, handle);
|
|
424
|
-
}
|
|
425
|
-
get asymmetricKeyType() {
|
|
426
|
-
if (!this._asymmetricKeyType) {
|
|
427
|
-
this._asymmetricKeyType = this.handle.getAsymmetricKeyType();
|
|
428
|
-
}
|
|
429
|
-
return this._asymmetricKeyType;
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
// get asymmetricKeyDetails() {
|
|
433
|
-
// switch (this._asymmetricKeyType) {
|
|
434
|
-
// case 'rsa':
|
|
435
|
-
// case 'rsa-pss':
|
|
436
|
-
// case 'dsa':
|
|
437
|
-
// case 'ec':
|
|
438
|
-
// return (
|
|
439
|
-
// this[kAsymmetricKeyDetails] ||
|
|
440
|
-
// (this[kAsymmetricKeyDetails] = normalizeKeyDetails(
|
|
441
|
-
// this[kHandle].keyDetail({})
|
|
442
|
-
// ))
|
|
443
|
-
// );
|
|
444
|
-
// default:
|
|
445
|
-
// return {};
|
|
446
|
-
// }
|
|
447
|
-
// }
|
|
448
|
-
}
|
|
449
|
-
class PublicKeyObject extends AsymmetricKeyObject {
|
|
450
|
-
constructor(handle) {
|
|
451
|
-
super('public', handle);
|
|
452
|
-
}
|
|
453
|
-
export(options) {
|
|
454
|
-
if (options?.format === 'jwk') {
|
|
455
|
-
throw new Error('PublicKey export for jwk is not implemented');
|
|
456
|
-
// return this.handle.exportJwk({}, false);
|
|
457
|
-
}
|
|
458
|
-
const {
|
|
459
|
-
format,
|
|
460
|
-
type
|
|
461
|
-
} = parsePublicKeyEncoding(options, this.asymmetricKeyType);
|
|
462
|
-
return this.handle.export(format, type);
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
exports.PublicKeyObject = PublicKeyObject;
|
|
466
|
-
class PrivateKeyObject extends AsymmetricKeyObject {
|
|
467
|
-
constructor(handle) {
|
|
468
|
-
super('private', handle);
|
|
469
|
-
}
|
|
470
|
-
export(options) {
|
|
471
|
-
if (options?.format === 'jwk') {
|
|
472
|
-
if (options.passphrase !== undefined) {
|
|
473
|
-
throw new Error('jwk does not support encryption');
|
|
474
|
-
}
|
|
475
|
-
throw new Error('PrivateKey export for jwk is not implemented');
|
|
476
|
-
// return this.handle.exportJwk({}, false);
|
|
477
|
-
}
|
|
478
|
-
const {
|
|
479
|
-
format,
|
|
480
|
-
type,
|
|
481
|
-
cipher,
|
|
482
|
-
passphrase
|
|
483
|
-
} = parsePrivateKeyEncoding(options, this.asymmetricKeyType);
|
|
484
|
-
return this.handle.export(format, type, cipher, passphrase);
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
exports.PrivateKeyObject = PrivateKeyObject;
|
|
488
|
-
const isCryptoKey = obj => {
|
|
489
|
-
return obj !== null && obj?.keyObject !== undefined;
|
|
490
|
-
};
|
|
491
|
-
exports.isCryptoKey = isCryptoKey;
|
|
492
|
-
//# sourceMappingURL=keys.js.map
|
package/lib/commonjs/keys.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_Utils","require","_NativeQuickCrypto","kNamedCurveAliases","exports","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","isStringOrBuffer","binaryLikeToArrayBuffer","prepareAsymmetricKey","key","ctx","data","kConsumePrivate","kCreatePrivate","preparePrivateKey","preparePublicOrPrivateKey","kConsumePublic","parsePublicKeyEncoding","parsePrivateKeyEncoding","prepareSecretKey","bufferOnly","KeyObject","handle","CryptoKey","keyObject","ArrayBuffer","error","cause","createSecretKey","k","NativeQuickCrypto","webcrypto","createKeyObjectHandle","init","Secret","SecretKeyObject","createPublicKey","kCreatePublic","Public","PublicKeyObject","createPrivateKey","Private","PrivateKeyObject","constructor","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","extractable","algorithm","usages","export","options","AsymmetricKeyObject","asymmetricKeyType","_asymmetricKeyType","getAsymmetricKeyType","isCryptoKey","obj"],"sourceRoot":"../../src","sources":["keys.ts"],"mappings":"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","ignoreList":[]}
|