react-native-quick-crypto 1.0.0-beta.3 → 1.0.0-beta.4
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 +4 -0
- package/README.md +2 -0
- package/android/CMakeLists.txt +26 -13
- package/android/build.gradle +4 -0
- package/android/src/main/cpp/cpp-adapter.cpp +3 -10
- package/android/src/main/java/com/margelo/nitro/quickcrypto/QuickCryptoPackage.java +15 -10
- package/cpp/pbkdf2/HybridPbkdf2.cpp +71 -0
- package/cpp/pbkdf2/HybridPbkdf2.hpp +35 -0
- package/cpp/random/HybridRandom.cpp +42 -18
- package/cpp/random/HybridRandom.hpp +13 -28
- package/cpp/utils/Utils.hpp +12 -1
- package/deps/fastpbkdf2/fastpbkdf2.c +352 -0
- package/deps/fastpbkdf2/fastpbkdf2.h +68 -0
- package/lib/commonjs/index.js +24 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/keys/index.js +86 -0
- package/lib/commonjs/keys/index.js.map +1 -0
- package/lib/commonjs/pbkdf2.js +89 -0
- package/lib/commonjs/pbkdf2.js.map +1 -0
- package/lib/commonjs/random.js +3 -3
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/specs/keyObjectHandle.nitro.js +6 -0
- package/lib/commonjs/specs/keyObjectHandle.nitro.js.map +1 -0
- package/lib/commonjs/specs/pbkdf2.nitro.js +6 -0
- package/lib/commonjs/specs/pbkdf2.nitro.js.map +1 -0
- package/lib/commonjs/utils/conversion.js +74 -0
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/errors.js +14 -0
- package/lib/commonjs/utils/errors.js.map +1 -0
- package/lib/commonjs/utils/hashnames.js +90 -0
- package/lib/commonjs/utils/hashnames.js.map +1 -0
- package/lib/commonjs/utils/index.js +43 -5
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/types.js +27 -0
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/module/index.js +9 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/keys/index.js +81 -0
- package/lib/module/keys/index.js.map +1 -0
- package/lib/module/pbkdf2.js +83 -0
- package/lib/module/pbkdf2.js.map +1 -0
- package/lib/module/random.js +1 -1
- package/lib/module/random.js.map +1 -1
- package/lib/module/specs/keyObjectHandle.nitro.js +4 -0
- package/lib/module/specs/keyObjectHandle.nitro.js.map +1 -0
- package/lib/module/specs/pbkdf2.nitro.js +4 -0
- package/lib/module/specs/pbkdf2.nitro.js.map +1 -0
- package/lib/module/utils/conversion.js +71 -0
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/errors.js +10 -0
- package/lib/module/utils/errors.js.map +1 -0
- package/lib/module/utils/hashnames.js +88 -0
- package/lib/module/utils/hashnames.js.map +1 -0
- package/lib/module/utils/index.js +4 -5
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/types.js +26 -0
- package/lib/module/utils/types.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/index.d.ts +26 -9
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/index.d.ts +22 -0
- package/lib/typescript/keys/index.d.ts.map +1 -0
- package/lib/typescript/pbkdf2.d.ts +12 -0
- package/lib/typescript/pbkdf2.d.ts.map +1 -0
- package/lib/typescript/random.d.ts +1 -1
- package/lib/typescript/random.d.ts.map +1 -1
- 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/utils/conversion.d.ts +7 -1
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts +7 -0
- package/lib/typescript/utils/errors.d.ts.map +1 -0
- package/lib/typescript/utils/hashnames.d.ts +11 -0
- package/lib/typescript/utils/hashnames.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +4 -5
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/lib/typescript/utils/types.d.ts +101 -0
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +19 -3
- package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +1 -2
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +50 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +25 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.kt +1 -0
- package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +7 -6
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +10 -2
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +4 -2
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +12 -6
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +45 -0
- package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +12 -0
- package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +86 -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 +1 -2
- package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +7 -4
- 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 +12 -11
- package/src/index.ts +8 -4
- package/src/keys/index.ts +99 -0
- package/src/pbkdf2.ts +154 -0
- package/src/random.ts +14 -14
- package/src/specs/keyObjectHandle.nitro.ts +32 -0
- package/src/specs/pbkdf2.nitro.ts +18 -0
- package/src/specs/random.nitro.ts +2 -2
- package/src/utils/conversion.ts +83 -1
- package/src/utils/errors.ts +15 -0
- package/src/utils/hashnames.ts +96 -0
- package/src/utils/index.ts +4 -6
- package/src/utils/types.ts +178 -2
- package/ios/QuickCryptoOnLoad.mm +0 -19
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.pbkdf2 = pbkdf2;
|
|
7
|
+
exports.pbkdf2DeriveBits = pbkdf2DeriveBits;
|
|
8
|
+
exports.pbkdf2Sync = pbkdf2Sync;
|
|
9
|
+
var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
|
|
10
|
+
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
11
|
+
var _utils = require("./utils");
|
|
12
|
+
var _util = require("util");
|
|
13
|
+
const WRONG_PASS = 'Password must be a string, a Buffer, a typed array or a DataView';
|
|
14
|
+
const WRONG_SALT = `Salt must be a string, a Buffer, a typed array or a DataView`;
|
|
15
|
+
// to use native bits in sub-functions, use getNative(). don't call it at top-level!
|
|
16
|
+
let native;
|
|
17
|
+
function getNative() {
|
|
18
|
+
if (native == null) {
|
|
19
|
+
// lazy-load the Nitro HybridObject
|
|
20
|
+
native = _reactNativeNitroModules.NitroModules.createHybridObject('Pbkdf2');
|
|
21
|
+
}
|
|
22
|
+
return native;
|
|
23
|
+
}
|
|
24
|
+
function sanitizeInput(input, errorMsg) {
|
|
25
|
+
try {
|
|
26
|
+
return (0, _utils.binaryLikeToArrayBuffer)(input);
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
|
+
} catch (_e) {
|
|
29
|
+
throw new Error(errorMsg);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function pbkdf2(password, salt, iterations, keylen, digest, callback) {
|
|
33
|
+
if (callback === undefined || typeof callback !== 'function') {
|
|
34
|
+
throw new Error('No callback provided to pbkdf2');
|
|
35
|
+
}
|
|
36
|
+
const sanitizedPassword = sanitizeInput(password, WRONG_PASS);
|
|
37
|
+
const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
|
|
38
|
+
const normalizedDigest = (0, _utils.normalizeHashName)(digest, _utils.HashContext.Node);
|
|
39
|
+
getNative();
|
|
40
|
+
native.pbkdf2(sanitizedPassword, sanitizedSalt, iterations, keylen, normalizedDigest).then(res => {
|
|
41
|
+
callback(null, _reactNativeBuffer.Buffer.from(res));
|
|
42
|
+
}, e => {
|
|
43
|
+
callback(e);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function pbkdf2Sync(password, salt, iterations, keylen, digest) {
|
|
47
|
+
const sanitizedPassword = sanitizeInput(password, WRONG_PASS);
|
|
48
|
+
const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
|
|
49
|
+
const algo = digest ? (0, _utils.normalizeHashName)(digest, _utils.HashContext.Node) : 'sha1';
|
|
50
|
+
getNative();
|
|
51
|
+
const result = native.pbkdf2Sync(sanitizedPassword, sanitizedSalt, iterations, keylen, algo);
|
|
52
|
+
return _reactNativeBuffer.Buffer.from(result);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// We need this because the typescript overload signatures in pbkdf2() above do
|
|
56
|
+
// not play nice with promisify() below.
|
|
57
|
+
const pbkdf2WithDigest = (password, salt, iterations, keylen, digest, callback) => pbkdf2(password, salt, iterations, keylen, digest, callback);
|
|
58
|
+
const pbkdf2Promise = (0, _util.promisify)(pbkdf2WithDigest);
|
|
59
|
+
async function pbkdf2DeriveBits(algorithm, baseKey, length) {
|
|
60
|
+
const {
|
|
61
|
+
iterations,
|
|
62
|
+
hash,
|
|
63
|
+
salt
|
|
64
|
+
} = algorithm;
|
|
65
|
+
const normalizedHash = (0, _utils.normalizeHashName)(hash);
|
|
66
|
+
if (!normalizedHash) {
|
|
67
|
+
throw (0, _utils.lazyDOMException)('hash cannot be blank', 'OperationError');
|
|
68
|
+
}
|
|
69
|
+
if (!iterations || iterations === 0) {
|
|
70
|
+
throw (0, _utils.lazyDOMException)('iterations cannot be zero', 'OperationError');
|
|
71
|
+
}
|
|
72
|
+
if (!salt) {
|
|
73
|
+
throw (0, _utils.lazyDOMException)(WRONG_SALT, 'OperationError');
|
|
74
|
+
}
|
|
75
|
+
const raw = baseKey.keyObject.export();
|
|
76
|
+
if (length === 0) throw (0, _utils.lazyDOMException)('length cannot be zero', 'OperationError');
|
|
77
|
+
if (length === null) throw (0, _utils.lazyDOMException)('length cannot be null', 'OperationError');
|
|
78
|
+
if (length % 8) {
|
|
79
|
+
throw (0, _utils.lazyDOMException)('length must be a multiple of 8', 'OperationError');
|
|
80
|
+
}
|
|
81
|
+
const sanitizedPassword = sanitizeInput(raw, WRONG_PASS);
|
|
82
|
+
const sanitizedSalt = sanitizeInput(salt, WRONG_SALT);
|
|
83
|
+
const result = await pbkdf2Promise(sanitizedPassword, sanitizedSalt, iterations, length / 8, normalizedHash);
|
|
84
|
+
if (!result) {
|
|
85
|
+
throw (0, _utils.lazyDOMException)('received bad result from pbkdf2()', 'OperationError');
|
|
86
|
+
}
|
|
87
|
+
return (0, _utils.bufferLikeToArrayBuffer)(result);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=pbkdf2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_utils","_util","WRONG_PASS","WRONG_SALT","native","getNative","NitroModules","createHybridObject","sanitizeInput","input","errorMsg","binaryLikeToArrayBuffer","_e","Error","pbkdf2","password","salt","iterations","keylen","digest","callback","undefined","sanitizedPassword","sanitizedSalt","normalizedDigest","normalizeHashName","HashContext","Node","then","res","Buffer","from","e","pbkdf2Sync","algo","result","pbkdf2WithDigest","pbkdf2Promise","promisify","pbkdf2DeriveBits","algorithm","baseKey","length","hash","normalizedHash","lazyDOMException","raw","keyObject","export","bufferLikeToArrayBuffer"],"sourceRoot":"../../src","sources":["pbkdf2.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/random.js
CHANGED
|
@@ -12,7 +12,7 @@ exports.randomInt = randomInt;
|
|
|
12
12
|
exports.randomUUID = randomUUID;
|
|
13
13
|
exports.rng = void 0;
|
|
14
14
|
var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
|
|
15
|
-
var
|
|
15
|
+
var _utils = require("./utils");
|
|
16
16
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
17
17
|
// to use native bits in sub-functions, use getNative(). don't call it at top-level!
|
|
18
18
|
let random;
|
|
@@ -38,7 +38,7 @@ function randomFill(buffer, ...rest) {
|
|
|
38
38
|
offset = rest[0];
|
|
39
39
|
}
|
|
40
40
|
getNative();
|
|
41
|
-
random.randomFill((0,
|
|
41
|
+
random.randomFill((0, _utils.abvToArrayBuffer)(buffer), offset, size).then(res => {
|
|
42
42
|
callback(null, res);
|
|
43
43
|
}, e => {
|
|
44
44
|
callback(e);
|
|
@@ -46,7 +46,7 @@ function randomFill(buffer, ...rest) {
|
|
|
46
46
|
}
|
|
47
47
|
function randomFillSync(buffer, offset = 0, size) {
|
|
48
48
|
getNative();
|
|
49
|
-
buffer = (0,
|
|
49
|
+
buffer = (0, _utils.abvToArrayBuffer)(buffer);
|
|
50
50
|
const res = random.randomFillSync(buffer, offset, size ?? buffer.byteLength);
|
|
51
51
|
buffer = res;
|
|
52
52
|
return buffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBuffer","require","
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","_utils","_reactNativeNitroModules","random","getNative","NitroModules","createHybridObject","randomFill","buffer","rest","length","Error","callback","offset","size","byteLength","abvToArrayBuffer","then","res","e","randomFillSync","randomBytes","buf","Buffer","undefined","error","from","rng","exports","pseudoRandomBytes","prng","RAND_MAX","randomCache","randomCacheOffset","asyncCacheFillInProgress","asyncCachePendingTasks","randomInt","arg1","arg2","max","min","minNotSpecified","TypeError","isSync","Number","isSafeInteger","range","randLimit","x","readUIntBE","n","process","nextTick","push","asyncRefillRandomIntCache","err","tasks","errorReceiver","shift","splice","forEach","task","getRandomValues","data","byteToHex","i","toString","slice","randomUUID","toLowerCase"],"sourceRoot":"../../src","sources":["random.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/keyObjectHandle.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/pbkdf2.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -5,7 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ab2str = ab2str;
|
|
7
7
|
exports.abvToArrayBuffer = void 0;
|
|
8
|
+
exports.binaryLikeToArrayBuffer = binaryLikeToArrayBuffer;
|
|
9
|
+
exports.bufferLikeToArrayBuffer = bufferLikeToArrayBuffer;
|
|
10
|
+
exports.toArrayBuffer = toArrayBuffer;
|
|
8
11
|
var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
|
|
12
|
+
var _safeBuffer = require("safe-buffer");
|
|
9
13
|
const abvToArrayBuffer = buffer => {
|
|
10
14
|
if (_reactNativeBuffer.Buffer.isBuffer(buffer)) {
|
|
11
15
|
return buffer.buffer;
|
|
@@ -16,6 +20,76 @@ const abvToArrayBuffer = buffer => {
|
|
|
16
20
|
return buffer;
|
|
17
21
|
};
|
|
18
22
|
exports.abvToArrayBuffer = abvToArrayBuffer;
|
|
23
|
+
function toArrayBuffer(buf) {
|
|
24
|
+
if (_reactNativeBuffer.Buffer.isBuffer(buf) && buf?.buffer?.slice) {
|
|
25
|
+
return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
|
|
26
|
+
}
|
|
27
|
+
const ab = new ArrayBuffer(buf.length);
|
|
28
|
+
const view = new Uint8Array(ab);
|
|
29
|
+
for (let i = 0; i < buf.length; ++i) {
|
|
30
|
+
view[i] = _safeBuffer.Buffer.isBuffer(buf) ? buf.readUInt8(i) : buf[i];
|
|
31
|
+
}
|
|
32
|
+
return ab;
|
|
33
|
+
}
|
|
34
|
+
function bufferLikeToArrayBuffer(buf) {
|
|
35
|
+
if (_reactNativeBuffer.Buffer.isBuffer(buf)) {
|
|
36
|
+
return buf.buffer;
|
|
37
|
+
}
|
|
38
|
+
if (_safeBuffer.Buffer.isBuffer(buf)) {
|
|
39
|
+
return toArrayBuffer(buf);
|
|
40
|
+
}
|
|
41
|
+
if (ArrayBuffer.isView(buf)) {
|
|
42
|
+
return buf.buffer;
|
|
43
|
+
}
|
|
44
|
+
return buf;
|
|
45
|
+
}
|
|
46
|
+
function binaryLikeToArrayBuffer(input,
|
|
47
|
+
// CipherKey adds compat with node types
|
|
48
|
+
encoding = 'utf-8') {
|
|
49
|
+
// string
|
|
50
|
+
if (typeof input === 'string') {
|
|
51
|
+
if (encoding === 'buffer') {
|
|
52
|
+
throw new Error('Cannot create a buffer from a string with a buffer encoding');
|
|
53
|
+
}
|
|
54
|
+
const buffer = _reactNativeBuffer.Buffer.from(input, encoding);
|
|
55
|
+
return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Buffer
|
|
59
|
+
if (_reactNativeBuffer.Buffer.isBuffer(input)) {
|
|
60
|
+
return toArrayBuffer(input);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// ArrayBufferView
|
|
64
|
+
// TODO add further binary types to BinaryLike, UInt8Array and so for have this array as property
|
|
65
|
+
if (ArrayBuffer.isView(input)) {
|
|
66
|
+
return input.buffer;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// ArrayBuffer
|
|
70
|
+
if (input instanceof ArrayBuffer) {
|
|
71
|
+
return input;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// if (!(input instanceof ArrayBuffer)) {
|
|
75
|
+
// try {
|
|
76
|
+
// // this is a strange fallback case and input is unknown at this point
|
|
77
|
+
// const buffer = Buffer.from(input as unknown as string);
|
|
78
|
+
// return buffer.buffer.slice(
|
|
79
|
+
// buffer.byteOffset,
|
|
80
|
+
// buffer.byteOffset + buffer.byteLength
|
|
81
|
+
// );
|
|
82
|
+
// } catch(e: unknown) {
|
|
83
|
+
// console.log('throwing 1');
|
|
84
|
+
// const err = e as Error;
|
|
85
|
+
// throw new Error(err.message);
|
|
86
|
+
// }
|
|
87
|
+
// }
|
|
88
|
+
|
|
89
|
+
// TODO: handle if input is KeyObject?
|
|
90
|
+
|
|
91
|
+
throw new Error('input could not be converted to ArrayBuffer');
|
|
92
|
+
}
|
|
19
93
|
function ab2str(buf, encoding = 'hex') {
|
|
20
94
|
return _reactNativeBuffer.Buffer.from(buf).toString(encoding);
|
|
21
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBuffer","require","abvToArrayBuffer","buffer","Buffer","isBuffer","ArrayBuffer","isView","exports","
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","_safeBuffer","abvToArrayBuffer","buffer","Buffer","isBuffer","ArrayBuffer","isView","exports","toArrayBuffer","buf","slice","byteOffset","byteLength","ab","length","view","Uint8Array","i","SBuffer","readUInt8","bufferLikeToArrayBuffer","binaryLikeToArrayBuffer","input","encoding","Error","from","ab2str","toString"],"sourceRoot":"../../../src","sources":["utils/conversion.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.lazyDOMException = lazyDOMException;
|
|
7
|
+
function lazyDOMException(message, domName) {
|
|
8
|
+
let cause = '';
|
|
9
|
+
if (typeof domName !== 'string') {
|
|
10
|
+
cause = `\nCaused by: ${domName.cause}`;
|
|
11
|
+
}
|
|
12
|
+
return new Error(`[${domName}]: ${message}${cause}`);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["lazyDOMException","message","domName","cause","Error"],"sourceRoot":"../../../src","sources":["utils/errors.ts"],"mappings":";;;;;;AAOO,SAASA,gBAAgBA,CAACC,OAAe,EAAEC,OAAgB,EAAS;EACzE,IAAIC,KAAK,GAAG,EAAE;EACd,IAAI,OAAOD,OAAO,KAAK,QAAQ,EAAE;IAC/BC,KAAK,GAAG,gBAAgBD,OAAO,CAACC,KAAK,EAAE;EACzC;EAEA,OAAO,IAAIC,KAAK,CAAC,IAAIF,OAAO,MAAMD,OAAO,GAAGE,KAAK,EAAE,CAAC;AACtD","ignoreList":[]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.HashContext = void 0;
|
|
7
|
+
exports.normalizeHashName = normalizeHashName;
|
|
8
|
+
let HashContext = exports.HashContext = /*#__PURE__*/function (HashContext) {
|
|
9
|
+
HashContext[HashContext["Node"] = 0] = "Node";
|
|
10
|
+
HashContext[HashContext["WebCrypto"] = 1] = "WebCrypto";
|
|
11
|
+
HashContext[HashContext["JwkRsa"] = 2] = "JwkRsa";
|
|
12
|
+
HashContext[HashContext["JwkRsaPss"] = 3] = "JwkRsaPss";
|
|
13
|
+
HashContext[HashContext["JwkRsaOaep"] = 4] = "JwkRsaOaep";
|
|
14
|
+
HashContext[HashContext["JwkHmac"] = 5] = "JwkHmac";
|
|
15
|
+
return HashContext;
|
|
16
|
+
}({}); // WebCrypto and JWK use a bunch of different names for the
|
|
17
|
+
// standard set of SHA-* digest algorithms... which is ... fun.
|
|
18
|
+
// Here we provide a utility for mapping between them in order
|
|
19
|
+
// make it easier in the code.
|
|
20
|
+
const kHashNames = {
|
|
21
|
+
sha1: {
|
|
22
|
+
[HashContext.Node]: 'sha1',
|
|
23
|
+
[HashContext.WebCrypto]: 'SHA-1',
|
|
24
|
+
[HashContext.JwkRsa]: 'RS1',
|
|
25
|
+
[HashContext.JwkRsaPss]: 'PS1',
|
|
26
|
+
[HashContext.JwkRsaOaep]: 'RSA-OAEP',
|
|
27
|
+
[HashContext.JwkHmac]: 'HS1'
|
|
28
|
+
},
|
|
29
|
+
sha224: {
|
|
30
|
+
[HashContext.Node]: 'sha224',
|
|
31
|
+
[HashContext.WebCrypto]: 'SHA-224',
|
|
32
|
+
[HashContext.JwkRsa]: 'RS224',
|
|
33
|
+
[HashContext.JwkRsaPss]: 'PS224',
|
|
34
|
+
[HashContext.JwkRsaOaep]: 'RSA-OAEP-224',
|
|
35
|
+
[HashContext.JwkHmac]: 'HS224'
|
|
36
|
+
},
|
|
37
|
+
sha256: {
|
|
38
|
+
[HashContext.Node]: 'sha256',
|
|
39
|
+
[HashContext.WebCrypto]: 'SHA-256',
|
|
40
|
+
[HashContext.JwkRsa]: 'RS256',
|
|
41
|
+
[HashContext.JwkRsaPss]: 'PS256',
|
|
42
|
+
[HashContext.JwkRsaOaep]: 'RSA-OAEP-256',
|
|
43
|
+
[HashContext.JwkHmac]: 'HS256'
|
|
44
|
+
},
|
|
45
|
+
sha384: {
|
|
46
|
+
[HashContext.Node]: 'sha384',
|
|
47
|
+
[HashContext.WebCrypto]: 'SHA-384',
|
|
48
|
+
[HashContext.JwkRsa]: 'RS384',
|
|
49
|
+
[HashContext.JwkRsaPss]: 'PS384',
|
|
50
|
+
[HashContext.JwkRsaOaep]: 'RSA-OAEP-384',
|
|
51
|
+
[HashContext.JwkHmac]: 'HS384'
|
|
52
|
+
},
|
|
53
|
+
sha512: {
|
|
54
|
+
[HashContext.Node]: 'sha512',
|
|
55
|
+
[HashContext.WebCrypto]: 'SHA-512',
|
|
56
|
+
[HashContext.JwkRsa]: 'RS512',
|
|
57
|
+
[HashContext.JwkRsaPss]: 'PS512',
|
|
58
|
+
[HashContext.JwkRsaOaep]: 'RSA-OAEP-512',
|
|
59
|
+
[HashContext.JwkHmac]: 'HS512'
|
|
60
|
+
},
|
|
61
|
+
ripemd160: {
|
|
62
|
+
[HashContext.Node]: 'ripemd160',
|
|
63
|
+
[HashContext.WebCrypto]: 'RIPEMD-160'
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
{
|
|
67
|
+
// Index the aliases
|
|
68
|
+
const keys = Object.keys(kHashNames);
|
|
69
|
+
for (let n = 0; n < keys.length; n++) {
|
|
70
|
+
const contexts = Object.keys(kHashNames[keys[n]]);
|
|
71
|
+
for (let i = 0; i < contexts.length; i++) {
|
|
72
|
+
const alias = kHashNames[keys[n]][contexts[i]].toLowerCase();
|
|
73
|
+
if (kHashNames[alias] === undefined) kHashNames[alias] = kHashNames[keys[n]];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function normalizeHashName(algo, context = HashContext.Node) {
|
|
78
|
+
if (typeof algo !== 'undefined') {
|
|
79
|
+
const normAlgo = algo.toString().toLowerCase();
|
|
80
|
+
try {
|
|
81
|
+
const alias = kHashNames[normAlgo][context];
|
|
82
|
+
if (alias) return alias;
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
84
|
+
} catch (_e) {
|
|
85
|
+
// ignore
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
throw new Error(`Invalid Hash Algorithm: ${algo}`);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=hashnames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HashContext","exports","kHashNames","sha1","Node","WebCrypto","JwkRsa","JwkRsaPss","JwkRsaOaep","JwkHmac","sha224","sha256","sha384","sha512","ripemd160","keys","Object","n","length","contexts","i","alias","toLowerCase","undefined","normalizeHashName","algo","context","normAlgo","toString","_e","Error"],"sourceRoot":"../../../src","sources":["utils/hashnames.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,10 +3,48 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.utils = void 0;
|
|
7
6
|
var _conversion = require("./conversion");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
Object.keys(_conversion).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _conversion[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _conversion[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _errors = require("./errors");
|
|
18
|
+
Object.keys(_errors).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _errors[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _errors[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _hashnames = require("./hashnames");
|
|
29
|
+
Object.keys(_hashnames).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _hashnames[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _hashnames[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _types = require("./types");
|
|
40
|
+
Object.keys(_types).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _types[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
12
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_conversion","require","
|
|
1
|
+
{"version":3,"names":["_conversion","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_errors","_hashnames","_types"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -1,2 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.KeyType = exports.KeyEncoding = exports.KFormatType = void 0;
|
|
7
|
+
// @types/node
|
|
8
|
+
// On node this value is defined on the native side, for now I'm just creating it here in JS
|
|
9
|
+
// TODO(osp) move this into native side to make sure they always match
|
|
10
|
+
let KFormatType = exports.KFormatType = /*#__PURE__*/function (KFormatType) {
|
|
11
|
+
KFormatType[KFormatType["kKeyFormatDER"] = 0] = "kKeyFormatDER";
|
|
12
|
+
KFormatType[KFormatType["kKeyFormatPEM"] = 1] = "kKeyFormatPEM";
|
|
13
|
+
KFormatType[KFormatType["kKeyFormatJWK"] = 2] = "kKeyFormatJWK";
|
|
14
|
+
return KFormatType;
|
|
15
|
+
}({}); // Same as KFormatType, this enum needs to be defined on the native side
|
|
16
|
+
let KeyType = exports.KeyType = /*#__PURE__*/function (KeyType) {
|
|
17
|
+
KeyType[KeyType["Secret"] = 0] = "Secret";
|
|
18
|
+
KeyType[KeyType["Public"] = 1] = "Public";
|
|
19
|
+
KeyType[KeyType["Private"] = 2] = "Private";
|
|
20
|
+
return KeyType;
|
|
21
|
+
}({});
|
|
22
|
+
let KeyEncoding = exports.KeyEncoding = /*#__PURE__*/function (KeyEncoding) {
|
|
23
|
+
KeyEncoding[KeyEncoding["kKeyEncodingPKCS1"] = 0] = "kKeyEncodingPKCS1";
|
|
24
|
+
KeyEncoding[KeyEncoding["kKeyEncodingPKCS8"] = 1] = "kKeyEncodingPKCS8";
|
|
25
|
+
KeyEncoding[KeyEncoding["kKeyEncodingSPKI"] = 2] = "kKeyEncodingSPKI";
|
|
26
|
+
KeyEncoding[KeyEncoding["kKeyEncodingSEC1"] = 3] = "kKeyEncodingSEC1";
|
|
27
|
+
return KeyEncoding;
|
|
28
|
+
}({});
|
|
2
29
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["KFormatType","exports","KeyType","KeyEncoding"],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":";;;;;;AAEyC;AAyGzC;AACA;AAAA,IACYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAMvB;AAAA,IACYE,OAAO,GAAAD,OAAA,CAAAC,OAAA,0BAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAPA,OAAO,CAAPA,OAAO;EAAA,OAAPA,OAAO;AAAA;AAAA,IAMPC,WAAW,GAAAF,OAAA,CAAAE,WAAA,0BAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAXA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
import { Buffer } from '@craftzdog/react-native-buffer';
|
|
5
5
|
|
|
6
6
|
// API imports
|
|
7
|
+
import * as pbkdf2 from './pbkdf2';
|
|
7
8
|
import * as random from './random';
|
|
8
9
|
|
|
9
10
|
// utils import
|
|
10
|
-
import
|
|
11
|
+
import * as utils from './utils';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Loosely matches Node.js {crypto} with some unimplemented functionality.
|
|
@@ -36,16 +37,17 @@ const QuickCrypto = {
|
|
|
36
37
|
// createVerify,
|
|
37
38
|
// subtle,
|
|
38
39
|
// constants,
|
|
39
|
-
|
|
40
|
+
...pbkdf2,
|
|
40
41
|
...random,
|
|
41
42
|
// getCiphers,
|
|
42
43
|
// getHashes,
|
|
43
44
|
// webcrypto,
|
|
44
|
-
utils
|
|
45
|
+
...utils
|
|
45
46
|
};
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
|
-
* Optional. Patch global.crypto with
|
|
49
|
+
* Optional. Patch global.crypto with react-native-quick-crypto and
|
|
50
|
+
* global.Buffer with react-native-buffer.
|
|
49
51
|
*/
|
|
50
52
|
export const install = () => {
|
|
51
53
|
// @ts-expect-error copyBytesFrom and poolSizets are missing from react-native-buffer
|
|
@@ -57,7 +59,10 @@ export const install = () => {
|
|
|
57
59
|
|
|
58
60
|
// random, cipher, hash use nextTick
|
|
59
61
|
global.process.nextTick = setImmediate;
|
|
62
|
+
|
|
63
|
+
// exports
|
|
60
64
|
export default QuickCrypto;
|
|
65
|
+
export * from './utils';
|
|
61
66
|
|
|
62
67
|
// Additional exports for CommonJS compatibility
|
|
63
68
|
module.exports = QuickCrypto;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Buffer","random","utils","QuickCrypto","install","global","crypto","process","nextTick","setImmediate","module","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,gCAAgC;;AAEvD;AACA,OAAO,KAAKC,MAAM,MAAM,UAAU;;AAElC;AACA,
|
|
1
|
+
{"version":3,"names":["Buffer","pbkdf2","random","utils","QuickCrypto","install","global","crypto","process","nextTick","setImmediate","module","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAQ,gCAAgC;;AAEvD;AACA,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,OAAO,KAAKC,MAAM,MAAM,UAAU;;AAElC;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS;;AAEhC;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAG;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAGH,MAAM;EACT,GAAGC,MAAM;EACT;EACA;EACA;EACA,GAAGC;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,OAAO,GAAGA,CAAA,KAAM;EAC3B;EACAC,MAAM,CAACN,MAAM,GAAGA,MAAM;;EAEtB;EACAM,MAAM,CAACC,MAAM,GAAGH,WAAW;AAC7B,CAAC;;AAED;AACAE,MAAM,CAACE,OAAO,CAACC,QAAQ,GAAGC,YAAY;;AAEtC;AACA,eAAeN,WAAW;AAC1B,cAAc,SAAS;;AAEvB;AACAO,MAAM,CAACC,OAAO,GAAGR,WAAW;AAC5BO,MAAM,CAACC,OAAO,CAACC,OAAO,GAAGT,WAAW;AACpCO,MAAM,CAACC,OAAO,CAACP,OAAO,GAAGA,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export class CryptoKey {
|
|
4
|
+
constructor(keyObject, keyAlgorithm, keyUsages, keyExtractable) {
|
|
5
|
+
this.keyObject = keyObject;
|
|
6
|
+
this.keyAlgorithm = keyAlgorithm;
|
|
7
|
+
this.keyUsages = keyUsages;
|
|
8
|
+
this.keyExtractable = keyExtractable;
|
|
9
|
+
}
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
+
inspect(_depth, _options) {
|
|
12
|
+
throw new Error('CryptoKey.inspect is not implemented');
|
|
13
|
+
// if (depth < 0) return this;
|
|
14
|
+
|
|
15
|
+
// const opts = {
|
|
16
|
+
// ...options,
|
|
17
|
+
// depth: options.depth == null ? null : options.depth - 1,
|
|
18
|
+
// };
|
|
19
|
+
|
|
20
|
+
// return `CryptoKey ${inspect(
|
|
21
|
+
// {
|
|
22
|
+
// type: this.type,
|
|
23
|
+
// extractable: this.extractable,
|
|
24
|
+
// algorithm: this.algorithm,
|
|
25
|
+
// usages: this.usages,
|
|
26
|
+
// },
|
|
27
|
+
// opts
|
|
28
|
+
// )}`;
|
|
29
|
+
}
|
|
30
|
+
get type() {
|
|
31
|
+
// if (!(this instanceof CryptoKey)) throw new Error('Invalid CryptoKey');
|
|
32
|
+
return this.keyObject.type;
|
|
33
|
+
}
|
|
34
|
+
get extractable() {
|
|
35
|
+
return this.keyExtractable;
|
|
36
|
+
}
|
|
37
|
+
get algorithm() {
|
|
38
|
+
return this.keyAlgorithm;
|
|
39
|
+
}
|
|
40
|
+
get usages() {
|
|
41
|
+
return this.keyUsages;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class KeyObject {
|
|
45
|
+
type = 'unknown';
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
47
|
+
export(_options) {
|
|
48
|
+
return new ArrayBuffer(0);
|
|
49
|
+
}
|
|
50
|
+
constructor(type, handle) {
|
|
51
|
+
if (type !== 'secret' && type !== 'public' && type !== 'private') throw new Error(`invalid KeyObject type: ${type}`);
|
|
52
|
+
this.handle = handle;
|
|
53
|
+
this.type = type;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// get type(): string {
|
|
57
|
+
// return this.type;
|
|
58
|
+
// }
|
|
59
|
+
|
|
60
|
+
// static from(key) {
|
|
61
|
+
// if (!isCryptoKey(key))
|
|
62
|
+
// throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key);
|
|
63
|
+
// return key[kKeyObject];
|
|
64
|
+
// }
|
|
65
|
+
|
|
66
|
+
// equals(otherKeyObject) {
|
|
67
|
+
// if (!isKeyObject(otherKeyObject)) {
|
|
68
|
+
// throw new ERR_INVALID_ARG_TYPE(
|
|
69
|
+
// 'otherKeyObject',
|
|
70
|
+
// 'KeyObject',
|
|
71
|
+
// otherKeyObject
|
|
72
|
+
// );
|
|
73
|
+
// }
|
|
74
|
+
|
|
75
|
+
// return (
|
|
76
|
+
// otherKeyObject.type === this.type &&
|
|
77
|
+
// this[kHandle].equals(otherKeyObject[kHandle])
|
|
78
|
+
// );
|
|
79
|
+
// }
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CryptoKey","constructor","keyObject","keyAlgorithm","keyUsages","keyExtractable","inspect","_depth","_options","Error","type","extractable","algorithm","usages","KeyObject","export","ArrayBuffer","handle"],"sourceRoot":"../../../src","sources":["keys/index.ts"],"mappings":";;AAGA,OAAO,MAAMA,SAAS,CAAC;EAMrBC,WAAWA,CACTC,SAAoB,EACpBC,YAA6B,EAC7BC,SAAqB,EACrBC,cAAuB,EACvB;IACA,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,cAAc,GAAGA,cAAc;EACtC;EACA;EACAC,OAAOA,CAACC,MAAc,EAAEC,QAAiB,EAAW;IAClD,MAAM,IAAIC,KAAK,CAAC,sCAAsC,CAAC;IACvD;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EACF;EAEA,IAAIC,IAAIA,CAAA,EAAG;IACT;IACA,OAAO,IAAI,CAACR,SAAS,CAACQ,IAAI;EAC5B;EAEA,IAAIC,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACN,cAAc;EAC5B;EAEA,IAAIO,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACT,YAAY;EAC1B;EAEA,IAAIU,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACT,SAAS;EACvB;AACF;AAEA,MAAMU,SAAS,CAAC;EAEdJ,IAAI,GAAgD,SAAS;EAC7D;EACAK,MAAMA,CAACP,QAA0B,EAAe;IAC9C,OAAO,IAAIQ,WAAW,CAAC,CAAC,CAAC;EAC3B;EAEAf,WAAWA,CAACS,IAAY,EAAEO,MAAuB,EAAE;IACjD,IAAIP,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,SAAS,EAC9D,MAAM,IAAID,KAAK,CAAC,2BAA2BC,IAAI,EAAE,CAAC;IACpD,IAAI,CAACO,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACP,IAAI,GAAGA,IAAI;EAClB;;EAEA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;AACF","ignoreList":[]}
|