react-native-quick-crypto 0.6.0 → 0.7.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -18
- package/android/CMakeLists.txt +58 -61
- package/android/build.gradle +105 -53
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/gradle.properties +5 -5
- package/android/src/main/{AndroidManifest.xml → AndroidManifestNew.xml} +1 -2
- package/cpp/Cipher/MGLCipherHostObject.cpp +31 -5
- package/cpp/Cipher/MGLGenerateKeyPairInstaller.cpp +21 -31
- package/cpp/Cipher/MGLGenerateKeyPairSyncInstaller.cpp +4 -17
- package/cpp/Cipher/MGLPublicCipher.h +1 -1
- package/cpp/Cipher/MGLPublicCipherInstaller.h +6 -6
- package/cpp/Cipher/MGLRsa.cpp +224 -11
- package/cpp/Cipher/MGLRsa.h +13 -3
- package/cpp/Hash/MGLHashHostObject.cpp +1 -1
- package/cpp/Hash/MGLHashInstaller.cpp +2 -4
- package/cpp/JSIUtils/MGLJSIMacros.h +10 -0
- package/cpp/JSIUtils/MGLThreadAwareHostObject.h +1 -1
- package/cpp/MGLKeys.cpp +415 -471
- package/cpp/MGLKeys.h +70 -2
- package/cpp/MGLQuickCryptoHostObject.cpp +9 -0
- package/cpp/Random/MGLRandomHostObject.cpp +9 -2
- package/cpp/Sig/MGLSignHostObjects.cpp +1 -1
- package/cpp/Utils/MGLUtils.cpp +104 -32
- package/cpp/Utils/MGLUtils.h +172 -143
- package/cpp/Utils/node.h +13 -0
- package/cpp/webcrypto/MGLWebCrypto.cpp +63 -0
- package/cpp/webcrypto/MGLWebCrypto.h +34 -0
- package/cpp/webcrypto/crypto_ec.cpp +334 -0
- package/cpp/webcrypto/crypto_ec.h +65 -0
- package/ios/QuickCrypto.xcodeproj/project.pbxproj +4 -4
- package/lib/commonjs/@types/crypto-browserify.d.js.map +1 -1
- package/lib/commonjs/Cipher.js +53 -194
- package/lib/commonjs/Cipher.js.map +1 -1
- package/lib/commonjs/Hash.js +29 -29
- package/lib/commonjs/Hash.js.map +1 -1
- package/lib/commonjs/Hashnames.js +75 -0
- package/lib/commonjs/Hashnames.js.map +1 -0
- package/lib/commonjs/Hmac.js +6 -29
- package/lib/commonjs/Hmac.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/Cipher.js +3 -5
- package/lib/commonjs/NativeQuickCrypto/Cipher.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js +11 -20
- package/lib/commonjs/NativeQuickCrypto/NativeQuickCrypto.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/hash.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/hmac.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/pbkdf2.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/random.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/sig.js.map +1 -1
- package/lib/commonjs/NativeQuickCrypto/webcrypto.js +6 -0
- package/lib/commonjs/NativeQuickCrypto/webcrypto.js.map +1 -0
- package/lib/commonjs/QuickCrypto.js +5 -14
- package/lib/commonjs/QuickCrypto.js.map +1 -1
- package/lib/commonjs/Utils.js +360 -48
- package/lib/commonjs/Utils.js.map +1 -1
- package/lib/commonjs/aes.js +324 -0
- package/lib/commonjs/aes.js.map +1 -0
- package/lib/commonjs/constants.js +1 -2
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/ec.js +288 -0
- package/lib/commonjs/ec.js.map +1 -0
- package/lib/commonjs/index.js +6 -10
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/keys.js +280 -48
- package/lib/commonjs/keys.js.map +1 -1
- package/lib/commonjs/pbkdf2.js +44 -18
- package/lib/commonjs/pbkdf2.js.map +1 -1
- package/lib/commonjs/random.js +49 -68
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +329 -0
- package/lib/commonjs/rsa.js.map +1 -0
- package/lib/commonjs/sig.js +13 -54
- package/lib/commonjs/sig.js.map +1 -1
- package/lib/commonjs/subtle.js +271 -0
- package/lib/commonjs/subtle.js.map +1 -0
- package/lib/module/@types/crypto-browserify.d.js.map +1 -1
- package/lib/module/Cipher.js +53 -188
- package/lib/module/Cipher.js.map +1 -1
- package/lib/module/Hash.js +27 -21
- package/lib/module/Hash.js.map +1 -1
- package/lib/module/Hashnames.js +71 -0
- package/lib/module/Hashnames.js.map +1 -0
- package/lib/module/Hmac.js +4 -21
- package/lib/module/Hmac.js.map +1 -1
- package/lib/module/NativeQuickCrypto/Cipher.js +3 -4
- package/lib/module/NativeQuickCrypto/Cipher.js.map +1 -1
- package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js +11 -17
- package/lib/module/NativeQuickCrypto/NativeQuickCrypto.js.map +1 -1
- package/lib/module/NativeQuickCrypto/hash.js.map +1 -1
- package/lib/module/NativeQuickCrypto/hmac.js.map +1 -1
- package/lib/module/NativeQuickCrypto/pbkdf2.js.map +1 -1
- package/lib/module/NativeQuickCrypto/random.js.map +1 -1
- package/lib/module/NativeQuickCrypto/sig.js.map +1 -1
- package/lib/module/NativeQuickCrypto/webcrypto.js +2 -0
- package/lib/module/NativeQuickCrypto/webcrypto.js.map +1 -0
- package/lib/module/QuickCrypto.js +2 -0
- package/lib/module/QuickCrypto.js.map +1 -1
- package/lib/module/Utils.js +319 -33
- package/lib/module/Utils.js.map +1 -1
- package/lib/module/aes.js +317 -0
- package/lib/module/aes.js.map +1 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/ec.js +282 -0
- package/lib/module/ec.js.map +1 -0
- package/lib/module/index.js +7 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/keys.js +279 -43
- package/lib/module/keys.js.map +1 -1
- package/lib/module/pbkdf2.js +44 -13
- package/lib/module/pbkdf2.js.map +1 -1
- package/lib/module/random.js +46 -54
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +323 -0
- package/lib/module/rsa.js.map +1 -0
- package/lib/module/sig.js +13 -46
- package/lib/module/sig.js.map +1 -1
- package/lib/module/subtle.js +265 -0
- package/lib/module/subtle.js.map +1 -0
- package/lib/typescript/src/Cipher.d.ts +72 -0
- package/lib/typescript/src/Cipher.d.ts.map +1 -0
- package/lib/typescript/{Hash.d.ts → src/Hash.d.ts} +8 -7
- package/lib/typescript/src/Hash.d.ts.map +1 -0
- package/lib/typescript/src/Hashnames.d.ts +11 -0
- package/lib/typescript/src/Hashnames.d.ts.map +1 -0
- package/lib/typescript/{Hmac.d.ts → src/Hmac.d.ts} +3 -3
- package/lib/typescript/src/Hmac.d.ts.map +1 -0
- package/lib/typescript/src/NativeQuickCrypto/Cipher.d.ts +34 -0
- package/lib/typescript/src/NativeQuickCrypto/Cipher.d.ts.map +1 -0
- package/lib/typescript/{NativeQuickCrypto → src/NativeQuickCrypto}/NativeQuickCrypto.d.ts +3 -0
- package/lib/typescript/src/NativeQuickCrypto/NativeQuickCrypto.d.ts.map +1 -0
- package/lib/typescript/src/NativeQuickCrypto/hash.d.ts +7 -0
- package/lib/typescript/src/NativeQuickCrypto/hash.d.ts.map +1 -0
- package/lib/typescript/src/NativeQuickCrypto/hmac.d.ts +6 -0
- package/lib/typescript/src/NativeQuickCrypto/hmac.d.ts.map +1 -0
- package/lib/typescript/{NativeQuickCrypto → src/NativeQuickCrypto}/pbkdf2.d.ts +2 -1
- package/lib/typescript/src/NativeQuickCrypto/pbkdf2.d.ts.map +1 -0
- package/lib/typescript/{NativeQuickCrypto → src/NativeQuickCrypto}/random.d.ts +2 -1
- package/lib/typescript/src/NativeQuickCrypto/random.d.ts.map +1 -0
- package/lib/typescript/{NativeQuickCrypto → src/NativeQuickCrypto}/sig.d.ts +5 -4
- package/lib/typescript/src/NativeQuickCrypto/sig.d.ts.map +1 -0
- package/lib/typescript/src/NativeQuickCrypto/webcrypto.d.ts +27 -0
- package/lib/typescript/src/NativeQuickCrypto/webcrypto.d.ts.map +1 -0
- package/lib/typescript/{QuickCrypto.d.ts → src/QuickCrypto.d.ts} +16 -8
- package/lib/typescript/src/QuickCrypto.d.ts.map +1 -0
- package/lib/typescript/src/Utils.d.ts +44 -0
- package/lib/typescript/src/Utils.d.ts.map +1 -0
- package/lib/typescript/src/aes.d.ts +5 -0
- package/lib/typescript/src/aes.d.ts.map +1 -0
- package/lib/typescript/{constants.d.ts → src/constants.d.ts} +1 -0
- package/lib/typescript/src/constants.d.ts.map +1 -0
- package/lib/typescript/src/ec.d.ts +5 -0
- package/lib/typescript/src/ec.d.ts.map +1 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +33 -27
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/keys.d.ts +154 -0
- package/lib/typescript/src/keys.d.ts.map +1 -0
- package/lib/typescript/src/pbkdf2.d.ts +12 -0
- package/lib/typescript/src/pbkdf2.d.ts.map +1 -0
- package/lib/typescript/{random.d.ts → src/random.d.ts} +7 -6
- package/lib/typescript/src/random.d.ts.map +1 -0
- package/lib/typescript/src/rsa.d.ts +4 -0
- package/lib/typescript/src/rsa.d.ts.map +1 -0
- package/lib/typescript/{sig.d.ts → src/sig.d.ts} +3 -3
- package/lib/typescript/src/sig.d.ts.map +1 -0
- package/lib/typescript/src/subtle.d.ts +11 -0
- package/lib/typescript/src/subtle.d.ts.map +1 -0
- package/package.json +35 -30
- package/react-native-quick-crypto.podspec +5 -4
- package/src/Cipher.ts +103 -100
- package/src/Hash.ts +42 -6
- package/src/Hashnames.ts +91 -0
- package/src/Hmac.ts +3 -3
- package/src/NativeQuickCrypto/Cipher.ts +1 -0
- package/src/NativeQuickCrypto/NativeQuickCrypto.ts +2 -0
- package/src/NativeQuickCrypto/webcrypto.ts +46 -0
- package/src/QuickCrypto.ts +2 -0
- package/src/Utils.ts +409 -5
- package/src/aes.ts +365 -0
- package/src/ec.ts +351 -0
- package/src/keys.ts +428 -54
- package/src/pbkdf2.ts +84 -11
- package/src/random.ts +37 -24
- package/src/rsa.ts +396 -0
- package/src/sig.ts +3 -2
- package/src/subtle.ts +358 -0
- package/lib/commonjs/@types/stream-browserify.d.js +0 -2
- package/lib/commonjs/@types/stream-browserify.d.js.map +0 -1
- package/lib/module/@types/stream-browserify.d.js +0 -2
- package/lib/module/@types/stream-browserify.d.js.map +0 -1
- package/lib/typescript/Cipher.d.ts +0 -87
- package/lib/typescript/NativeQuickCrypto/Cipher.d.ts +0 -32
- package/lib/typescript/NativeQuickCrypto/hash.d.ts +0 -6
- package/lib/typescript/NativeQuickCrypto/hmac.d.ts +0 -5
- package/lib/typescript/Utils.d.ts +0 -23
- package/lib/typescript/keys.d.ts +0 -60
- package/lib/typescript/pbkdf2.d.ts +0 -9
- package/src/@types/stream-browserify.d.ts +0 -4
package/lib/module/sig.js
CHANGED
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
1
|
import { NativeQuickCrypto } from './NativeQuickCrypto/NativeQuickCrypto';
|
|
4
|
-
import Stream from 'stream
|
|
5
|
-
// Do the same here
|
|
6
|
-
|
|
7
|
-
var DSASigEnc;
|
|
2
|
+
import Stream from 'readable-stream';
|
|
8
3
|
|
|
9
|
-
|
|
4
|
+
// TODO(osp) same as publicCipher on node this are defined on C++ and exposed to node
|
|
5
|
+
// Do the same here
|
|
6
|
+
var DSASigEnc = /*#__PURE__*/function (DSASigEnc) {
|
|
10
7
|
DSASigEnc[DSASigEnc["kSigEncDER"] = 0] = "kSigEncDER";
|
|
11
8
|
DSASigEnc[DSASigEnc["kSigEncP1363"] = 1] = "kSigEncP1363";
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
return DSASigEnc;
|
|
10
|
+
}(DSASigEnc || {});
|
|
14
11
|
import { binaryLikeToArrayBuffer, getDefaultEncoding } from './Utils';
|
|
15
12
|
import { preparePrivateKey, preparePublicOrPrivateKey } from './keys';
|
|
16
13
|
const createInternalSign = NativeQuickCrypto.createSign;
|
|
17
14
|
const createInternalVerify = NativeQuickCrypto.createVerify;
|
|
18
|
-
|
|
19
15
|
function getPadding(options) {
|
|
20
16
|
return getIntOption('padding', options);
|
|
21
17
|
}
|
|
22
|
-
|
|
23
18
|
function getSaltLength(options) {
|
|
24
19
|
return getIntOption('saltLength', options);
|
|
25
20
|
}
|
|
26
|
-
|
|
27
21
|
function getDSASignatureEncoding(options) {
|
|
28
22
|
if (typeof options === 'object') {
|
|
29
23
|
const {
|
|
@@ -32,53 +26,39 @@ function getDSASignatureEncoding(options) {
|
|
|
32
26
|
if (dsaEncoding === 'der') return DSASigEnc.kSigEncDER;else if (dsaEncoding === 'ieee-p1363') return DSASigEnc.kSigEncP1363;
|
|
33
27
|
throw new Error(`options.dsaEncoding: ${dsaEncoding} not a valid encoding`);
|
|
34
28
|
}
|
|
35
|
-
|
|
36
29
|
return DSASigEnc.kSigEncDER;
|
|
37
30
|
}
|
|
38
|
-
|
|
39
31
|
function getIntOption(name, options) {
|
|
40
32
|
const value = options[name];
|
|
41
|
-
|
|
42
33
|
if (value !== undefined) {
|
|
34
|
+
// eslint-disable-next-line no-bitwise
|
|
43
35
|
if (value === value >> 0) {
|
|
44
36
|
return value;
|
|
45
37
|
}
|
|
46
|
-
|
|
47
38
|
throw new Error(`options.${name}: ${value} not a valid int value`);
|
|
48
39
|
}
|
|
49
|
-
|
|
50
40
|
return undefined;
|
|
51
41
|
}
|
|
52
|
-
|
|
53
42
|
class Verify extends Stream.Writable {
|
|
54
43
|
constructor(algorithm, options) {
|
|
55
44
|
super(options);
|
|
56
|
-
|
|
57
|
-
_defineProperty(this, "internal", void 0);
|
|
58
|
-
|
|
59
45
|
this.internal = createInternalVerify();
|
|
60
46
|
this.internal.init(algorithm);
|
|
61
47
|
}
|
|
62
|
-
|
|
63
48
|
_write(chunk, encoding, callback) {
|
|
64
49
|
this.update(chunk, encoding);
|
|
65
50
|
callback();
|
|
66
51
|
}
|
|
67
|
-
|
|
68
52
|
update(data, encoding) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
encoding = (_encoding = encoding) !== null && _encoding !== void 0 ? _encoding : getDefaultEncoding();
|
|
53
|
+
encoding = encoding ?? getDefaultEncoding();
|
|
72
54
|
data = binaryLikeToArrayBuffer(data, encoding);
|
|
73
55
|
this.internal.update(data);
|
|
74
56
|
return this;
|
|
75
57
|
}
|
|
76
|
-
|
|
77
58
|
verify(options, signature) {
|
|
78
59
|
if (!options) {
|
|
79
60
|
throw new Error('Crypto sign key required');
|
|
80
61
|
}
|
|
81
|
-
|
|
82
62
|
const {
|
|
83
63
|
data,
|
|
84
64
|
format,
|
|
@@ -86,44 +66,34 @@ class Verify extends Stream.Writable {
|
|
|
86
66
|
passphrase
|
|
87
67
|
} = preparePublicOrPrivateKey(options);
|
|
88
68
|
const rsaPadding = getPadding(options);
|
|
89
|
-
const pssSaltLength = getSaltLength(options);
|
|
69
|
+
const pssSaltLength = getSaltLength(options);
|
|
90
70
|
|
|
71
|
+
// Options specific to (EC)DSA
|
|
91
72
|
const dsaSigEnc = getDSASignatureEncoding(options);
|
|
92
73
|
const ret = this.internal.verify(data, format, type, passphrase, binaryLikeToArrayBuffer(signature), rsaPadding, pssSaltLength, dsaSigEnc);
|
|
93
74
|
return ret;
|
|
94
75
|
}
|
|
95
|
-
|
|
96
76
|
}
|
|
97
|
-
|
|
98
77
|
class Sign extends Stream.Writable {
|
|
99
78
|
constructor(algorithm, options) {
|
|
100
79
|
super(options);
|
|
101
|
-
|
|
102
|
-
_defineProperty(this, "internal", void 0);
|
|
103
|
-
|
|
104
80
|
this.internal = createInternalSign();
|
|
105
81
|
this.internal.init(algorithm);
|
|
106
82
|
}
|
|
107
|
-
|
|
108
83
|
_write(chunk, encoding, callback) {
|
|
109
84
|
this.update(chunk, encoding);
|
|
110
85
|
callback();
|
|
111
86
|
}
|
|
112
|
-
|
|
113
87
|
update(data, encoding) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
encoding = (_encoding2 = encoding) !== null && _encoding2 !== void 0 ? _encoding2 : getDefaultEncoding();
|
|
88
|
+
encoding = encoding ?? getDefaultEncoding();
|
|
117
89
|
data = binaryLikeToArrayBuffer(data, encoding);
|
|
118
90
|
this.internal.update(data);
|
|
119
91
|
return this;
|
|
120
92
|
}
|
|
121
|
-
|
|
122
93
|
sign(options, encoding) {
|
|
123
94
|
if (!options) {
|
|
124
95
|
throw new Error('Crypto sign key required');
|
|
125
96
|
}
|
|
126
|
-
|
|
127
97
|
const {
|
|
128
98
|
data,
|
|
129
99
|
format,
|
|
@@ -131,21 +101,18 @@ class Sign extends Stream.Writable {
|
|
|
131
101
|
passphrase
|
|
132
102
|
} = preparePrivateKey(options);
|
|
133
103
|
const rsaPadding = getPadding(options);
|
|
134
|
-
const pssSaltLength = getSaltLength(options);
|
|
104
|
+
const pssSaltLength = getSaltLength(options);
|
|
135
105
|
|
|
106
|
+
// Options specific to (EC)DSA
|
|
136
107
|
const dsaSigEnc = getDSASignatureEncoding(options);
|
|
137
108
|
const ret = this.internal.sign(data, format, type, passphrase, rsaPadding, pssSaltLength, dsaSigEnc);
|
|
138
109
|
encoding = encoding || getDefaultEncoding();
|
|
139
|
-
|
|
140
110
|
if (encoding && encoding !== 'buffer') {
|
|
141
111
|
return Buffer.from(ret).toString(encoding);
|
|
142
112
|
}
|
|
143
|
-
|
|
144
113
|
return Buffer.from(ret);
|
|
145
114
|
}
|
|
146
|
-
|
|
147
115
|
}
|
|
148
|
-
|
|
149
116
|
export function createSign(algorithm, options) {
|
|
150
117
|
return new Sign(algorithm, options);
|
|
151
118
|
}
|
package/lib/module/sig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["NativeQuickCrypto","Stream","DSASigEnc","binaryLikeToArrayBuffer","getDefaultEncoding","preparePrivateKey","preparePublicOrPrivateKey","createInternalSign","createSign","createInternalVerify","createVerify","getPadding","options","getIntOption","getSaltLength","getDSASignatureEncoding","dsaEncoding","kSigEncDER","kSigEncP1363","Error","name","value","undefined","Verify","Writable","constructor","algorithm","internal","init","_write","chunk","encoding","callback","update","data","verify","signature","format","type","passphrase","rsaPadding","pssSaltLength","dsaSigEnc","ret","Sign","sign","Buffer","from","toString"],"sourceRoot":"../../src","sources":["sig.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { CryptoKey, KWebCryptoKeyFormat, createSecretKey } from './keys';
|
|
2
|
+
import { hasAnyNotIn, normalizeAlgorithm, lazyDOMException, normalizeHashName, HashContext } from './Utils';
|
|
3
|
+
import { ecImportKey, ecExportKey } from './ec';
|
|
4
|
+
import { pbkdf2DeriveBits } from './pbkdf2';
|
|
5
|
+
import { asyncDigest } from './Hash';
|
|
6
|
+
import { aesImportKey, getAlgorithmName } from './aes';
|
|
7
|
+
import { rsaImportKey } from './rsa';
|
|
8
|
+
const exportKeySpki = async key => {
|
|
9
|
+
switch (key.algorithm.name) {
|
|
10
|
+
// case 'RSASSA-PKCS1-v1_5':
|
|
11
|
+
// // Fall through
|
|
12
|
+
// case 'RSA-PSS':
|
|
13
|
+
// // Fall through
|
|
14
|
+
// case 'RSA-OAEP':
|
|
15
|
+
// if (key.type === 'public') {
|
|
16
|
+
// return require('internal/crypto/rsa').rsaExportKey(
|
|
17
|
+
// key,
|
|
18
|
+
// kWebCryptoKeyFormatSPKI
|
|
19
|
+
// );
|
|
20
|
+
// }
|
|
21
|
+
// break;
|
|
22
|
+
case 'ECDSA':
|
|
23
|
+
// Fall through
|
|
24
|
+
case 'ECDH':
|
|
25
|
+
if (key.type === 'public') {
|
|
26
|
+
return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI);
|
|
27
|
+
}
|
|
28
|
+
break;
|
|
29
|
+
// case 'Ed25519':
|
|
30
|
+
// // Fall through
|
|
31
|
+
// case 'Ed448':
|
|
32
|
+
// // Fall through
|
|
33
|
+
// case 'X25519':
|
|
34
|
+
// // Fall through
|
|
35
|
+
// case 'X448':
|
|
36
|
+
// if (key.type === 'public') {
|
|
37
|
+
// return require('internal/crypto/cfrg').cfrgExportKey(
|
|
38
|
+
// key,
|
|
39
|
+
// kWebCryptoKeyFormatSPKI
|
|
40
|
+
// );
|
|
41
|
+
// }
|
|
42
|
+
// break;
|
|
43
|
+
}
|
|
44
|
+
throw new Error(`Unable to export a raw ${key.algorithm.name} ${key.type} key`);
|
|
45
|
+
};
|
|
46
|
+
const exportKeyRaw = key => {
|
|
47
|
+
switch (key.algorithm.name) {
|
|
48
|
+
case 'ECDSA':
|
|
49
|
+
// Fall through
|
|
50
|
+
case 'ECDH':
|
|
51
|
+
if (key.type === 'public') {
|
|
52
|
+
return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatRaw);
|
|
53
|
+
}
|
|
54
|
+
break;
|
|
55
|
+
// case 'Ed25519':
|
|
56
|
+
// // Fall through
|
|
57
|
+
// case 'Ed448':
|
|
58
|
+
// // Fall through
|
|
59
|
+
// case 'X25519':
|
|
60
|
+
// // Fall through
|
|
61
|
+
// case 'X448':
|
|
62
|
+
// if (key.type === 'public') {
|
|
63
|
+
// return require('internal/crypto/cfrg')
|
|
64
|
+
// .cfrgExportKey(key, kWebCryptoKeyFormatRaw);
|
|
65
|
+
// }
|
|
66
|
+
// break;
|
|
67
|
+
case 'AES-CTR':
|
|
68
|
+
// Fall through
|
|
69
|
+
case 'AES-CBC':
|
|
70
|
+
// Fall through
|
|
71
|
+
case 'AES-GCM':
|
|
72
|
+
// Fall through
|
|
73
|
+
case 'AES-KW':
|
|
74
|
+
// Fall through
|
|
75
|
+
case 'HMAC':
|
|
76
|
+
return key.keyObject.export();
|
|
77
|
+
}
|
|
78
|
+
throw lazyDOMException(`Unable to export a raw ${key.algorithm.name} ${key.type} key`, 'InvalidAccessError');
|
|
79
|
+
};
|
|
80
|
+
const exportKeyJWK = key => {
|
|
81
|
+
const jwk = key.keyObject.handle.exportJwk({
|
|
82
|
+
key_ops: key.usages,
|
|
83
|
+
ext: key.extractable
|
|
84
|
+
}, true);
|
|
85
|
+
switch (key.algorithm.name) {
|
|
86
|
+
case 'RSASSA-PKCS1-v1_5':
|
|
87
|
+
jwk.alg = normalizeHashName(key.algorithm.hash, HashContext.JwkRsa);
|
|
88
|
+
return jwk;
|
|
89
|
+
case 'RSA-PSS':
|
|
90
|
+
jwk.alg = normalizeHashName(key.algorithm.hash, HashContext.JwkRsaPss);
|
|
91
|
+
return jwk;
|
|
92
|
+
case 'RSA-OAEP':
|
|
93
|
+
jwk.alg = normalizeHashName(key.algorithm.hash, HashContext.JwkRsaOaep);
|
|
94
|
+
return jwk;
|
|
95
|
+
case 'ECDSA':
|
|
96
|
+
// Fall through
|
|
97
|
+
case 'ECDH':
|
|
98
|
+
jwk.crv ||= key.algorithm.namedCurve;
|
|
99
|
+
return jwk;
|
|
100
|
+
// case 'X25519':
|
|
101
|
+
// // Fall through
|
|
102
|
+
// case 'X448':
|
|
103
|
+
// jwk.crv ||= key.algorithm.name;
|
|
104
|
+
// return jwk;
|
|
105
|
+
// case 'Ed25519':
|
|
106
|
+
// // Fall through
|
|
107
|
+
// case 'Ed448':
|
|
108
|
+
// jwk.crv ||= key.algorithm.name;
|
|
109
|
+
// return jwk;
|
|
110
|
+
case 'AES-CTR':
|
|
111
|
+
// Fall through
|
|
112
|
+
case 'AES-CBC':
|
|
113
|
+
// Fall through
|
|
114
|
+
case 'AES-GCM':
|
|
115
|
+
// Fall through
|
|
116
|
+
case 'AES-KW':
|
|
117
|
+
jwk.alg = getAlgorithmName(key.algorithm.name, key.algorithm.length);
|
|
118
|
+
return jwk;
|
|
119
|
+
// case 'HMAC':
|
|
120
|
+
// jwk.alg = normalizeHashName(
|
|
121
|
+
// key.algorithm.hash.name,
|
|
122
|
+
// normalizeHashName.kContextJwkHmac);
|
|
123
|
+
// return jwk;
|
|
124
|
+
default:
|
|
125
|
+
// Fall through
|
|
126
|
+
}
|
|
127
|
+
throw lazyDOMException(`JWK export not yet supported: ${key.algorithm.name}`, 'NotSupportedError');
|
|
128
|
+
};
|
|
129
|
+
const importGenericSecretKey = async ({
|
|
130
|
+
name,
|
|
131
|
+
length
|
|
132
|
+
}, format, keyData, extractable, keyUsages) => {
|
|
133
|
+
if (extractable) {
|
|
134
|
+
throw new Error(`${name} keys are not extractable`);
|
|
135
|
+
}
|
|
136
|
+
if (hasAnyNotIn(keyUsages, ['deriveKey', 'deriveBits'])) {
|
|
137
|
+
throw new Error(`Unsupported key usage for a ${name} key`);
|
|
138
|
+
}
|
|
139
|
+
switch (format) {
|
|
140
|
+
case 'raw':
|
|
141
|
+
{
|
|
142
|
+
if (hasAnyNotIn(keyUsages, ['deriveKey', 'deriveBits'])) {
|
|
143
|
+
throw new Error(`Unsupported key usage for a ${name} key`);
|
|
144
|
+
}
|
|
145
|
+
const checkLength = typeof keyData === 'string' ? keyData.length * 8 : keyData.byteLength * 8;
|
|
146
|
+
|
|
147
|
+
// The Web Crypto spec allows for key lengths that are not multiples of
|
|
148
|
+
// 8. We don't. Our check here is stricter than that defined by the spec
|
|
149
|
+
// in that we require that algorithm.length match keyData.length * 8 if
|
|
150
|
+
// algorithm.length is specified.
|
|
151
|
+
if (length !== undefined && length !== checkLength) {
|
|
152
|
+
throw new Error('Invalid key length');
|
|
153
|
+
}
|
|
154
|
+
const keyObject = createSecretKey(keyData);
|
|
155
|
+
return new CryptoKey(keyObject, {
|
|
156
|
+
name
|
|
157
|
+
}, keyUsages, false);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
throw new Error(`Unable to import ${name} key with format ${format}`);
|
|
161
|
+
};
|
|
162
|
+
class Subtle {
|
|
163
|
+
async digest(algorithm, data) {
|
|
164
|
+
const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'digest');
|
|
165
|
+
return asyncDigest(normalizedAlgorithm, data);
|
|
166
|
+
}
|
|
167
|
+
async deriveBits(algorithm, baseKey, length) {
|
|
168
|
+
if (!baseKey.keyUsages.includes('deriveBits')) {
|
|
169
|
+
throw new Error('baseKey does not have deriveBits usage');
|
|
170
|
+
}
|
|
171
|
+
if (baseKey.algorithm.name !== algorithm.name) throw new Error('Key algorithm mismatch');
|
|
172
|
+
switch (algorithm.name) {
|
|
173
|
+
// case 'X25519':
|
|
174
|
+
// // Fall through
|
|
175
|
+
// case 'X448':
|
|
176
|
+
// // Fall through
|
|
177
|
+
// case 'ECDH':
|
|
178
|
+
// return require('internal/crypto/diffiehellman')
|
|
179
|
+
// .ecdhDeriveBits(algorithm, baseKey, length);
|
|
180
|
+
// case 'HKDF':
|
|
181
|
+
// return require('internal/crypto/hkdf')
|
|
182
|
+
// .hkdfDeriveBits(algorithm, baseKey, length);
|
|
183
|
+
case 'PBKDF2':
|
|
184
|
+
return pbkdf2DeriveBits(algorithm, baseKey, length);
|
|
185
|
+
}
|
|
186
|
+
throw new Error(`'subtle.deriveBits()' for ${algorithm.name} is not implemented.`);
|
|
187
|
+
}
|
|
188
|
+
async importKey(format, data, algorithm, extractable, keyUsages) {
|
|
189
|
+
let result;
|
|
190
|
+
switch (algorithm.name) {
|
|
191
|
+
case 'RSASSA-PKCS1-v1_5':
|
|
192
|
+
// Fall through
|
|
193
|
+
case 'RSA-PSS':
|
|
194
|
+
// Fall through
|
|
195
|
+
case 'RSA-OAEP':
|
|
196
|
+
result = rsaImportKey(format, data, algorithm, extractable, keyUsages);
|
|
197
|
+
break;
|
|
198
|
+
case 'ECDSA':
|
|
199
|
+
// Fall through
|
|
200
|
+
case 'ECDH':
|
|
201
|
+
result = ecImportKey(format, data, algorithm, extractable, keyUsages);
|
|
202
|
+
break;
|
|
203
|
+
// case 'Ed25519':
|
|
204
|
+
// // Fall through
|
|
205
|
+
// case 'Ed448':
|
|
206
|
+
// // Fall through
|
|
207
|
+
// case 'X25519':
|
|
208
|
+
// // Fall through
|
|
209
|
+
// case 'X448':
|
|
210
|
+
// result = await require('internal/crypto/cfrg').cfrgImportKey(
|
|
211
|
+
// format,
|
|
212
|
+
// keyData,
|
|
213
|
+
// algorithm,
|
|
214
|
+
// extractable,
|
|
215
|
+
// keyUsages
|
|
216
|
+
// );
|
|
217
|
+
// break;
|
|
218
|
+
// case 'HMAC':
|
|
219
|
+
// result = await require('internal/crypto/mac').hmacImportKey(
|
|
220
|
+
// format,
|
|
221
|
+
// keyData,
|
|
222
|
+
// algorithm,
|
|
223
|
+
// extractable,
|
|
224
|
+
// keyUsages
|
|
225
|
+
// );
|
|
226
|
+
// break;
|
|
227
|
+
case 'AES-CTR':
|
|
228
|
+
// Fall through
|
|
229
|
+
case 'AES-CBC':
|
|
230
|
+
// Fall through
|
|
231
|
+
case 'AES-GCM':
|
|
232
|
+
// Fall through
|
|
233
|
+
case 'AES-KW':
|
|
234
|
+
result = await aesImportKey(algorithm, format, data, extractable, keyUsages);
|
|
235
|
+
break;
|
|
236
|
+
// case 'HKDF':
|
|
237
|
+
// // Fall through
|
|
238
|
+
case 'PBKDF2':
|
|
239
|
+
result = await importGenericSecretKey(algorithm, format, data, extractable, keyUsages);
|
|
240
|
+
break;
|
|
241
|
+
default:
|
|
242
|
+
throw new Error(`"subtle.importKey()" is not implemented for ${algorithm.name}`);
|
|
243
|
+
}
|
|
244
|
+
if ((result.type === 'secret' || result.type === 'private') && result.usages.length === 0) {
|
|
245
|
+
throw new Error(`Usages cannot be empty when importing a ${result.type} key.`);
|
|
246
|
+
}
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
249
|
+
async exportKey(format, key) {
|
|
250
|
+
if (!key.extractable) throw new Error('key is not extractable');
|
|
251
|
+
switch (format) {
|
|
252
|
+
case 'spki':
|
|
253
|
+
return await exportKeySpki(key);
|
|
254
|
+
// case 'pkcs8':
|
|
255
|
+
// return await exportKeyPkcs8(key);
|
|
256
|
+
case 'jwk':
|
|
257
|
+
return exportKeyJWK(key);
|
|
258
|
+
case 'raw':
|
|
259
|
+
return exportKeyRaw(key);
|
|
260
|
+
}
|
|
261
|
+
throw new Error(`'subtle.exportKey()' is not implemented for ${format}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
export const subtle = new Subtle();
|
|
265
|
+
//# sourceMappingURL=subtle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CryptoKey","KWebCryptoKeyFormat","createSecretKey","hasAnyNotIn","normalizeAlgorithm","lazyDOMException","normalizeHashName","HashContext","ecImportKey","ecExportKey","pbkdf2DeriveBits","asyncDigest","aesImportKey","getAlgorithmName","rsaImportKey","exportKeySpki","key","algorithm","name","type","kWebCryptoKeyFormatSPKI","Error","exportKeyRaw","kWebCryptoKeyFormatRaw","keyObject","export","exportKeyJWK","jwk","handle","exportJwk","key_ops","usages","ext","extractable","alg","hash","JwkRsa","JwkRsaPss","JwkRsaOaep","crv","namedCurve","length","importGenericSecretKey","format","keyData","keyUsages","checkLength","byteLength","undefined","Subtle","digest","data","normalizedAlgorithm","deriveBits","baseKey","includes","importKey","result","exportKey","subtle"],"sourceRoot":"../../src","sources":["subtle.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { type BinaryLike, type BinaryLikeNode } from './Utils';
|
|
3
|
+
import type { CipherCCMOptions, CipherCCMTypes, CipherGCMTypes, CipherGCMOptions, CipherOCBOptions, CipherOCBTypes, DecipherGCM, DecipherOCB, DecipherCCM, CipherCCM, CipherOCB, CipherGCM } from 'crypto';
|
|
4
|
+
import { Buffer } from '@craftzdog/react-native-buffer';
|
|
5
|
+
export declare function createDecipher(algorithm: CipherCCMTypes, password: BinaryLikeNode, options: CipherCCMOptions): DecipherCCM;
|
|
6
|
+
export declare function createDecipher(algorithm: CipherGCMTypes, password: BinaryLikeNode, options?: CipherGCMOptions): DecipherGCM;
|
|
7
|
+
export declare function createDecipheriv(algorithm: CipherCCMTypes, key: BinaryLikeNode, iv: BinaryLike, options: CipherCCMOptions): DecipherCCM;
|
|
8
|
+
export declare function createDecipheriv(algorithm: CipherOCBTypes, key: BinaryLikeNode, iv: BinaryLike, options: CipherOCBOptions): DecipherOCB;
|
|
9
|
+
export declare function createDecipheriv(algorithm: CipherGCMTypes, key: BinaryLikeNode, iv: BinaryLike, options?: CipherGCMOptions): DecipherGCM;
|
|
10
|
+
export declare function createCipher(algorithm: CipherCCMTypes, password: BinaryLikeNode, options: CipherCCMOptions): CipherCCM;
|
|
11
|
+
export declare function createCipher(algorithm: CipherGCMTypes, password: BinaryLikeNode, options?: CipherGCMOptions): CipherGCM;
|
|
12
|
+
export declare function createCipheriv(algorithm: CipherCCMTypes, key: BinaryLikeNode, iv: BinaryLike, options: CipherCCMOptions): CipherCCM;
|
|
13
|
+
export declare function createCipheriv(algorithm: CipherOCBTypes, key: BinaryLikeNode, iv: BinaryLike, options: CipherOCBOptions): CipherOCB;
|
|
14
|
+
export declare function createCipheriv(algorithm: CipherGCMTypes, key: BinaryLikeNode, iv: BinaryLike, options?: CipherGCMOptions): CipherGCM;
|
|
15
|
+
export declare const publicEncrypt: (options: {
|
|
16
|
+
key: any;
|
|
17
|
+
encoding?: string;
|
|
18
|
+
format?: any;
|
|
19
|
+
padding?: any;
|
|
20
|
+
oaepHash?: any;
|
|
21
|
+
oaepLabel?: any;
|
|
22
|
+
passphrase?: string;
|
|
23
|
+
}, buffer: BinaryLike) => Buffer;
|
|
24
|
+
export declare const publicDecrypt: (options: {
|
|
25
|
+
key: any;
|
|
26
|
+
encoding?: string;
|
|
27
|
+
format?: any;
|
|
28
|
+
padding?: any;
|
|
29
|
+
oaepHash?: any;
|
|
30
|
+
oaepLabel?: any;
|
|
31
|
+
passphrase?: string;
|
|
32
|
+
}, buffer: BinaryLike) => Buffer;
|
|
33
|
+
export declare const privateDecrypt: (options: {
|
|
34
|
+
key: any;
|
|
35
|
+
encoding?: string;
|
|
36
|
+
format?: any;
|
|
37
|
+
padding?: any;
|
|
38
|
+
oaepHash?: any;
|
|
39
|
+
oaepLabel?: any;
|
|
40
|
+
passphrase?: string;
|
|
41
|
+
}, buffer: BinaryLike) => Buffer;
|
|
42
|
+
type GenerateKeyPairOptions = {
|
|
43
|
+
modulusLength: number;
|
|
44
|
+
publicExponent?: number;
|
|
45
|
+
hashAlgorithm?: string;
|
|
46
|
+
mgf1HashAlgorithm?: string;
|
|
47
|
+
saltLength?: number;
|
|
48
|
+
divisorLength?: number;
|
|
49
|
+
namedCurve?: string;
|
|
50
|
+
prime?: Buffer;
|
|
51
|
+
primeLength?: number;
|
|
52
|
+
generator?: number;
|
|
53
|
+
groupName?: string;
|
|
54
|
+
publicKeyEncoding?: any;
|
|
55
|
+
privateKeyEncoding?: any;
|
|
56
|
+
paramEncoding?: string;
|
|
57
|
+
hash?: any;
|
|
58
|
+
mgf1Hash?: any;
|
|
59
|
+
};
|
|
60
|
+
type GenerateKeyPairCallback = (error: unknown | null, publicKey?: Buffer, privateKey?: Buffer) => void;
|
|
61
|
+
export declare function generateKeyPair(type: string, callback: GenerateKeyPairCallback): void;
|
|
62
|
+
export declare function generateKeyPair(type: string, options: GenerateKeyPairOptions, callback: GenerateKeyPairCallback): void;
|
|
63
|
+
export declare function generateKeyPairSync(type: string): {
|
|
64
|
+
publicKey: any;
|
|
65
|
+
privateKey: any;
|
|
66
|
+
};
|
|
67
|
+
export declare function generateKeyPairSync(type: string, options: GenerateKeyPairOptions): {
|
|
68
|
+
publicKey: any;
|
|
69
|
+
privateKey: any;
|
|
70
|
+
};
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=Cipher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cipher.d.ts","sourceRoot":"","sources":["../../../src/Cipher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import 'react-native';
|
|
3
|
-
import { Encoding } from './Utils';
|
|
4
|
-
import Stream from 'stream
|
|
2
|
+
import { type Encoding, type BufferLike } from './Utils';
|
|
3
|
+
import Stream from 'readable-stream';
|
|
5
4
|
import { Buffer } from '@craftzdog/react-native-buffer';
|
|
5
|
+
import type { SubtleAlgorithm } from './keys';
|
|
6
6
|
interface HashOptionsBase extends Stream.TransformOptions {
|
|
7
7
|
outputLength?: number | undefined;
|
|
8
8
|
}
|
|
9
|
-
|
|
10
|
-
declare type BinaryLike = ArrayBuffer;
|
|
9
|
+
type HashOptions = null | undefined | HashOptionsBase;
|
|
11
10
|
export declare function createHash(algorithm: string, options?: HashOptions): Hash;
|
|
12
11
|
declare class Hash extends Stream.Transform {
|
|
13
12
|
private internalHash;
|
|
@@ -24,8 +23,8 @@ declare class Hash extends Stream.Transform {
|
|
|
24
23
|
* @since v0.1.92
|
|
25
24
|
* @param inputEncoding The `encoding` of the `data` string.
|
|
26
25
|
*/
|
|
27
|
-
update(data: string |
|
|
28
|
-
_transform(chunk: string |
|
|
26
|
+
update(data: string | ArrayBuffer, inputEncoding?: Encoding): Hash;
|
|
27
|
+
_transform(chunk: string | ArrayBuffer, encoding: Encoding, callback: () => void): void;
|
|
29
28
|
_flush(callback: () => void): void;
|
|
30
29
|
/**
|
|
31
30
|
* Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method).
|
|
@@ -41,4 +40,6 @@ declare class Hash extends Stream.Transform {
|
|
|
41
40
|
digest(encoding: 'buffer'): Buffer;
|
|
42
41
|
digest(encoding: Encoding): string;
|
|
43
42
|
}
|
|
43
|
+
export declare const asyncDigest: (algorithm: SubtleAlgorithm, data: BufferLike) => Promise<ArrayBuffer>;
|
|
44
44
|
export {};
|
|
45
|
+
//# sourceMappingURL=Hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../../src/Hash.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,QAAQ,EAIb,KAAK,UAAU,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,UAAU,eAAgB,SAAQ,MAAM,CAAC,gBAAgB;IACvD,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,KAAK,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC;AAMtD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,QAElE;AAED,cAAM,IAAK,SAAQ,MAAM,CAAC,SAAS;IACjC,OAAO,CAAC,YAAY,CAAe;gBAEvB,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW;gBAClC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW;IAUpD,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAIrC;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI;IAUlE,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,WAAW,EAC3B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,IAAI;IAMtB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;IAK3B;;;;;;;;;OASG;IACH,MAAM,IAAI,MAAM;IAChB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAClC,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CAUnC;AAID,eAAO,MAAM,WAAW,cACX,eAAe,QACpB,UAAU,KACf,QAAQ,WAAW,CAqBrB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HashAlgorithm, KeyPairAlgorithm, SecretKeyAlgorithm, SubtleAlgorithm } from './keys';
|
|
2
|
+
export declare enum HashContext {
|
|
3
|
+
Node = 0,
|
|
4
|
+
WebCrypto = 1,
|
|
5
|
+
JwkRsa = 2,
|
|
6
|
+
JwkRsaPss = 3,
|
|
7
|
+
JwkRsaOaep = 4,
|
|
8
|
+
JwkHmac = 5
|
|
9
|
+
}
|
|
10
|
+
export declare function normalizeHashName(algo: SubtleAlgorithm | HashAlgorithm | KeyPairAlgorithm | SecretKeyAlgorithm | undefined, context?: HashContext): string;
|
|
11
|
+
//# sourceMappingURL=Hashnames.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hashnames.d.ts","sourceRoot":"","sources":["../../../src/Hashnames.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,QAAQ,CAAC;AAEhB,oBAAY,WAAW;IACrB,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,MAAM,IAAA;IACN,SAAS,IAAA;IACT,UAAU,IAAA;IACV,OAAO,IAAA;CACR;AA2DD,wBAAgB,iBAAiB,CAC/B,IAAI,EACA,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,kBAAkB,GAClB,SAAS,EACb,OAAO,GAAE,WAA8B,GACtC,MAAM,CASR"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import Stream from 'stream-browserify';
|
|
1
|
+
import { type Encoding, type BinaryLike } from './Utils';
|
|
2
|
+
import Stream from 'readable-stream';
|
|
4
3
|
import { Buffer } from '@craftzdog/react-native-buffer';
|
|
5
4
|
export declare function createHmac(algorithm: string, key: BinaryLike, options?: Stream.TransformOptions): Hmac;
|
|
6
5
|
declare class Hmac extends Stream.Transform {
|
|
@@ -35,3 +34,4 @@ declare class Hmac extends Stream.Transform {
|
|
|
35
34
|
digest(encoding: Encoding): string;
|
|
36
35
|
}
|
|
37
36
|
export {};
|
|
37
|
+
//# sourceMappingURL=Hmac.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hmac.d.ts","sourceRoot":"","sources":["../../../src/Hmac.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,UAAU,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAIxD,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,gBAAgB,QAGlC;AAED,cAAM,IAAK,SAAQ,MAAM,CAAC,SAAS;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAkB;gBAGnC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,UAAU,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,gBAAgB;IAepC;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,aAAa,CAAC,EAAE,QAAQ,GAAG,IAAI;IAejE,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,IAAI;IAMtB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI;IAK3B;;;;;;;;;OASG;IACH,MAAM,IAAI,MAAM;IAChB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAClC,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CAWnC"}
|