react-native-quick-crypto 1.0.5 → 1.0.6
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 +21 -7
- package/android/CMakeLists.txt +1 -0
- package/cpp/cipher/HybridRsaCipher.cpp +111 -25
- package/cpp/cipher/HybridRsaCipher.hpp +5 -1
- package/cpp/hash/HybridHash.cpp +11 -4
- package/cpp/hash/HybridHash.hpp +1 -1
- package/cpp/hmac/HybridHmac.cpp +13 -4
- package/cpp/hmac/HybridHmac.hpp +2 -1
- package/cpp/utils/HybridUtils.cpp +19 -0
- package/cpp/utils/HybridUtils.hpp +15 -0
- package/lib/commonjs/hash.js +7 -1
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/hmac.js +7 -1
- package/lib/commonjs/hmac.js.map +1 -1
- package/lib/commonjs/keys/publicCipher.js +30 -18
- package/lib/commonjs/keys/publicCipher.js.map +1 -1
- package/lib/commonjs/specs/utils.nitro.js +6 -0
- package/lib/commonjs/specs/utils.nitro.js.map +1 -0
- package/lib/commonjs/utils/index.js +11 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/commonjs/utils/timingSafeEqual.js +24 -0
- package/lib/commonjs/utils/timingSafeEqual.js.map +1 -0
- package/lib/module/hash.js +7 -1
- package/lib/module/hash.js.map +1 -1
- package/lib/module/hmac.js +7 -1
- package/lib/module/hmac.js.map +1 -1
- package/lib/module/keys/publicCipher.js +30 -18
- package/lib/module/keys/publicCipher.js.map +1 -1
- package/lib/module/specs/utils.nitro.js +4 -0
- package/lib/module/specs/utils.nitro.js.map +1 -0
- package/lib/module/utils/index.js +1 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/module/utils/timingSafeEqual.js +20 -0
- package/lib/module/utils/timingSafeEqual.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/hmac.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/publicCipher.d.ts +2 -0
- package/lib/typescript/keys/publicCipher.d.ts.map +1 -1
- package/lib/typescript/specs/hash.nitro.d.ts +1 -1
- package/lib/typescript/specs/hash.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/hmac.nitro.d.ts +1 -1
- package/lib/typescript/specs/hmac.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/rsaCipher.nitro.d.ts +14 -4
- package/lib/typescript/specs/rsaCipher.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/utils.nitro.d.ts +8 -0
- package/lib/typescript/specs/utils.nitro.d.ts.map +1 -0
- package/lib/typescript/utils/index.d.ts +1 -0
- package/lib/typescript/utils/index.d.ts.map +1 -1
- package/lib/typescript/utils/timingSafeEqual.d.ts +3 -0
- package/lib/typescript/utils/timingSafeEqual.d.ts.map +1 -0
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +1 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +10 -0
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +10 -0
- package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +2 -1
- package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +2 -1
- package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +2 -1
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +63 -0
- package/package.json +2 -2
- package/src/hash.ts +6 -1
- package/src/hmac.ts +6 -1
- package/src/keys/publicCipher.ts +46 -26
- package/src/specs/hash.nitro.ts +1 -1
- package/src/specs/hmac.nitro.ts +1 -1
- package/src/specs/rsaCipher.nitro.ts +20 -3
- package/src/specs/utils.nitro.ts +5 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/timingSafeEqual.ts +23 -0
- package/react-native.config.js +0 -19
- package/scripts/embed_openssl_framework.sh +0 -18
|
@@ -36,6 +36,17 @@ Object.keys(_hashnames).forEach(function (key) {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
|
+
var _timingSafeEqual = require("./timingSafeEqual");
|
|
40
|
+
Object.keys(_timingSafeEqual).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _timingSafeEqual[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _timingSafeEqual[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
39
50
|
var _types = require("./types");
|
|
40
51
|
Object.keys(_types).forEach(function (key) {
|
|
41
52
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_conversion","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_errors","_hashnames","_types","_validation","_cipher"],"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,
|
|
1
|
+
{"version":3,"names":["_conversion","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_errors","_hashnames","_timingSafeEqual","_types","_validation","_cipher"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.timingSafeEqual = timingSafeEqual;
|
|
7
|
+
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
8
|
+
var _conversion = require("./conversion");
|
|
9
|
+
let utils;
|
|
10
|
+
function getNative() {
|
|
11
|
+
if (utils == null) {
|
|
12
|
+
utils = _reactNativeNitroModules.NitroModules.createHybridObject('Utils');
|
|
13
|
+
}
|
|
14
|
+
return utils;
|
|
15
|
+
}
|
|
16
|
+
function timingSafeEqual(a, b) {
|
|
17
|
+
const bufA = (0, _conversion.abvToArrayBuffer)(a);
|
|
18
|
+
const bufB = (0, _conversion.abvToArrayBuffer)(b);
|
|
19
|
+
if (bufA.byteLength !== bufB.byteLength) {
|
|
20
|
+
throw new RangeError('Input buffers must have the same byte length');
|
|
21
|
+
}
|
|
22
|
+
return getNative().timingSafeEqual(bufA, bufB);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=timingSafeEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_conversion","utils","getNative","NitroModules","createHybridObject","timingSafeEqual","a","b","bufA","abvToArrayBuffer","bufB","byteLength","RangeError"],"sourceRoot":"../../../src","sources":["utils/timingSafeEqual.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAIE,KAAY;AAChB,SAASC,SAASA,CAAA,EAAU;EAC1B,IAAID,KAAK,IAAI,IAAI,EAAE;IACjBA,KAAK,GAAGE,qCAAY,CAACC,kBAAkB,CAAQ,OAAO,CAAC;EACzD;EACA,OAAOH,KAAK;AACd;AAEO,SAASI,eAAeA,CAACC,CAAM,EAAEC,CAAM,EAAW;EACvD,MAAMC,IAAI,GAAG,IAAAC,4BAAgB,EAACH,CAAC,CAAC;EAChC,MAAMI,IAAI,GAAG,IAAAD,4BAAgB,EAACF,CAAC,CAAC;EAEhC,IAAIC,IAAI,CAACG,UAAU,KAAKD,IAAI,CAACC,UAAU,EAAE;IACvC,MAAM,IAAIC,UAAU,CAAC,8CAA8C,CAAC;EACtE;EAEA,OAAOV,SAAS,CAAC,CAAC,CAACG,eAAe,CAACG,IAAI,EAAEE,IAAI,CAAC;AAChD","ignoreList":[]}
|
package/lib/module/hash.js
CHANGED
|
@@ -52,7 +52,13 @@ class Hash extends Stream.Transform {
|
|
|
52
52
|
update(data, inputEncoding) {
|
|
53
53
|
const defaultEncoding = 'utf8';
|
|
54
54
|
inputEncoding = inputEncoding ?? defaultEncoding;
|
|
55
|
-
|
|
55
|
+
|
|
56
|
+
// OPTIMIZED PATH: Pass UTF-8 strings directly to native without conversion
|
|
57
|
+
if (typeof data === 'string' && inputEncoding === 'utf8') {
|
|
58
|
+
this.native.update(data);
|
|
59
|
+
} else {
|
|
60
|
+
this.native.update(binaryLikeToArrayBuffer(data, inputEncoding));
|
|
61
|
+
}
|
|
56
62
|
return this; // to support chaining syntax createHash().update().digest()
|
|
57
63
|
}
|
|
58
64
|
|
package/lib/module/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Stream","NitroModules","ab2str","binaryLikeToArrayBuffer","bufferLikeToArrayBuffer","validateMaxBufferLength","lazyDOMException","normalizeHashName","HashUtils","native","createHybridObject","getSupportedHashAlgorithms","getHashes","Hash","Transform","validate","args","algorithm","length","Error","options","outputLength","undefined","constructor","createHash","update","data","inputEncoding","defaultEncoding","digest","encoding","nativeDigest","Buffer","from","copy","newOptions","newNativeHash","hash","getOpenSSLVersion","_transform","chunk","callback","_flush","push","asyncDigest","name","internalDigest","normalizedHashName","result","arrayBuffer","ArrayBuffer","view","Uint8Array","set","hashExports"],"sourceRoot":"../../src","sources":["hash.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,iBAAiB;AACxC,SAASC,YAAY,QAAQ,4BAA4B;AASzD,SACEC,MAAM,EACNC,uBAAuB,EACvBC,uBAAuB,QAClB,SAAS;AAChB,SAASC,uBAAuB,QAAQ,oBAAoB;AAC5D,SAASC,gBAAgB,QAAQ,gBAAgB;AACjD,SAASC,iBAAiB,QAAQ,mBAAmB;AAErD,MAAMC,SAAS,CAAC;EACd,OAAeC,MAAM,GAAGR,YAAY,CAACS,kBAAkB,CAAa,MAAM,CAAC;EAC3E,OAAcC,0BAA0BA,CAAA,EAAa;IACnD,OAAO,IAAI,CAACF,MAAM,CAACE,0BAA0B,CAAC,CAAC;EACjD;AACF;AAEA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,OAAOJ,SAAS,CAACG,0BAA0B,CAAC,CAAC;AAC/C;AAgBA,MAAME,IAAI,SAASb,MAAM,CAACc,SAAS,CAAC;EAK1BC,QAAQA,CAACC,IAAc,EAAE;IAC/B,IAAI,OAAOA,IAAI,CAACC,SAAS,KAAK,QAAQ,IAAID,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EACnE,MAAM,IAAIC,KAAK,CAAC,sCAAsC,CAAC;IACzD,IACEH,IAAI,CAACI,OAAO,EAAEC,YAAY,KAAKC,SAAS,IACxCN,IAAI,CAACI,OAAO,CAACC,YAAY,GAAG,CAAC,EAE7B,MAAM,IAAIF,KAAK,CAAC,6CAA6C,CAAC;IAChE,IACEH,IAAI,CAACI,OAAO,EAAEC,YAAY,KAAKC,SAAS,IACxC,OAAON,IAAI,CAACI,OAAO,CAACC,YAAY,KAAK,QAAQ,EAE7C,MAAM,IAAIF,KAAK,CAAC,gCAAgC,CAAC;EACrD;;EAEA;AACF;AACA;EACUI,WAAWA,CAACP,IAAc,EAAE;IAClC,KAAK,CAACA,IAAI,CAACI,OAAO,CAAC;IAEnB,IAAI,CAACL,QAAQ,CAACC,IAAI,CAAC;IAEnB,IAAI,CAACC,SAAS,GAAGD,IAAI,CAACC,SAAS;IAC/B,IAAI,CAACG,OAAO,GAAGJ,IAAI,CAACI,OAAO,IAAI,CAAC,CAAC;IAEjC,IAAIJ,IAAI,CAACP,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,GAAGO,IAAI,CAACP,MAAM;MACzB;IACF;IAEA,IAAI,CAACA,MAAM,GAAGR,YAAY,CAACS,kBAAkB,CAAa,MAAM,CAAC;IACjE,IAAI,CAACD,MAAM,CAACe,UAAU,CAAC,IAAI,CAACP,SAAS,EAAE,IAAI,CAACG,OAAO,CAACC,YAAY,CAAC;EACnE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEI,MAAMA,CAACC,IAAgB,EAAEC,aAAwB,EAAiB;IAChE,MAAMC,eAAyB,GAAG,MAAM;IACxCD,aAAa,GAAGA,aAAa,IAAIC,eAAe;
|
|
1
|
+
{"version":3,"names":["Stream","NitroModules","ab2str","binaryLikeToArrayBuffer","bufferLikeToArrayBuffer","validateMaxBufferLength","lazyDOMException","normalizeHashName","HashUtils","native","createHybridObject","getSupportedHashAlgorithms","getHashes","Hash","Transform","validate","args","algorithm","length","Error","options","outputLength","undefined","constructor","createHash","update","data","inputEncoding","defaultEncoding","digest","encoding","nativeDigest","Buffer","from","copy","newOptions","newNativeHash","hash","getOpenSSLVersion","_transform","chunk","callback","_flush","push","asyncDigest","name","internalDigest","normalizedHashName","result","arrayBuffer","ArrayBuffer","view","Uint8Array","set","hashExports"],"sourceRoot":"../../src","sources":["hash.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/hmac.js
CHANGED
|
@@ -35,7 +35,13 @@ class Hmac extends Stream.Transform {
|
|
|
35
35
|
update(data, inputEncoding) {
|
|
36
36
|
const defaultEncoding = 'utf8';
|
|
37
37
|
inputEncoding = inputEncoding ?? defaultEncoding;
|
|
38
|
-
|
|
38
|
+
|
|
39
|
+
// Optimize: pass UTF-8 strings directly to C++ without conversion
|
|
40
|
+
if (typeof data === 'string' && inputEncoding === 'utf8') {
|
|
41
|
+
this.native.update(data);
|
|
42
|
+
} else {
|
|
43
|
+
this.native.update(binaryLikeToArrayBuffer(data, inputEncoding));
|
|
44
|
+
}
|
|
39
45
|
return this; // to support chaining syntax createHmac().update().digest()
|
|
40
46
|
}
|
|
41
47
|
|
package/lib/module/hmac.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Buffer","Stream","NitroModules","ab2str","binaryLikeToArrayBuffer","Hmac","Transform","validate","args","algorithm","length","Error","key","undefined","constructor","options","native","createHybridObject","createHmac","update","data","inputEncoding","defaultEncoding","digest","encoding","nativeDigest","from","_transform","chunk","callback","_flush","push","hmacExports"],"sourceRoot":"../../src","sources":["hmac.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,gCAAgC;AACvD,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,YAAY,QAAQ,4BAA4B;AAIzD,SAASC,MAAM,EAAEC,uBAAuB,QAAQ,oBAAoB;AAQpE,MAAMC,IAAI,SAASJ,MAAM,CAACK,SAAS,CAAC;EAK1BC,QAAQA,CAACC,IAAc,EAAE;IAC/B,IAAI,OAAOA,IAAI,CAACC,SAAS,KAAK,QAAQ,IAAID,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EACnE,MAAM,IAAIC,KAAK,CAAC,sCAAsC,CAAC;IACzD,IAAIH,IAAI,CAACI,GAAG,KAAK,IAAI,IAAIJ,IAAI,CAACI,GAAG,KAAKC,SAAS,EAC7C,MAAM,IAAIF,KAAK,CAAC,mCAAmC,CAAC;EACxD;;EAEA;AACF;AACA;EACUG,WAAWA,CAACN,IAAc,EAAE;IAClC,KAAK,CAACA,IAAI,CAACO,OAAO,CAAC;IAEnB,IAAI,CAACR,QAAQ,CAACC,IAAI,CAAC;IAEnB,IAAI,CAACC,SAAS,GAAGD,IAAI,CAACC,SAAS;IAC/B,IAAI,CAACG,GAAG,GAAGJ,IAAI,CAACI,GAAG;IAEnB,IAAI,CAACI,MAAM,GAAGd,YAAY,CAACe,kBAAkB,CAAa,MAAM,CAAC;IACjE,IAAI,CAACD,MAAM,CAACE,UAAU,CAAC,IAAI,CAACT,SAAS,EAAEL,uBAAuB,CAAC,IAAI,CAACQ,GAAG,CAAC,CAAC;EAC3E;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGEO,MAAMA,CAACC,IAAgB,EAAEC,aAAwB,EAAQ;IACvD,MAAMC,eAAyB,GAAG,MAAM;IACxCD,aAAa,GAAGA,aAAa,IAAIC,eAAe;
|
|
1
|
+
{"version":3,"names":["Buffer","Stream","NitroModules","ab2str","binaryLikeToArrayBuffer","Hmac","Transform","validate","args","algorithm","length","Error","key","undefined","constructor","options","native","createHybridObject","createHmac","update","data","inputEncoding","defaultEncoding","digest","encoding","nativeDigest","from","_transform","chunk","callback","_flush","push","hmacExports"],"sourceRoot":"../../src","sources":["hmac.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,18 +14,22 @@ function preparePublicCipherKey(key, isEncrypt) {
|
|
|
14
14
|
if (isEncrypt && key.type !== 'public') {
|
|
15
15
|
throw new Error('publicEncrypt requires a public key');
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
17
|
+
// publicDecrypt accepts both public and private keys (Node.js behavior)
|
|
18
|
+
// A private key contains the public components needed for verify_recover
|
|
20
19
|
keyObj = key;
|
|
21
20
|
} else if (isCryptoKey(key)) {
|
|
22
21
|
const cryptoKey = key;
|
|
23
22
|
keyObj = cryptoKey.keyObject;
|
|
24
23
|
} else if (isStringOrBuffer(key)) {
|
|
25
24
|
const data = toAB(key);
|
|
26
|
-
// Detect if it's PEM format (contains PEM headers) or DER binary
|
|
27
25
|
const isPem = typeof key === 'string' && key.includes('-----BEGIN');
|
|
28
|
-
|
|
26
|
+
const isPrivatePem = typeof key === 'string' && key.includes('-----BEGIN PRIVATE');
|
|
27
|
+
// publicDecrypt accepts both public and private keys (Node.js behavior)
|
|
28
|
+
if (!isEncrypt && isPrivatePem) {
|
|
29
|
+
keyObj = KeyObject.createKeyObject('private', data, KFormatType.PEM, KeyEncoding.PKCS8);
|
|
30
|
+
} else {
|
|
31
|
+
keyObj = KeyObject.createKeyObject('public', data, isPem ? KFormatType.PEM : KFormatType.DER, KeyEncoding.SPKI);
|
|
32
|
+
}
|
|
29
33
|
} else if (typeof key === 'object' && 'key' in key) {
|
|
30
34
|
const options = key;
|
|
31
35
|
const result = preparePublicCipherKey(options.key, isEncrypt);
|
|
@@ -66,16 +70,13 @@ export function publicEncrypt(key, buffer) {
|
|
|
66
70
|
export function publicDecrypt(key, buffer) {
|
|
67
71
|
const {
|
|
68
72
|
keyHandle,
|
|
69
|
-
padding
|
|
70
|
-
oaepHash,
|
|
71
|
-
oaepLabel
|
|
73
|
+
padding
|
|
72
74
|
} = preparePublicCipherKey(key, false);
|
|
73
75
|
const rsaCipher = NitroModules.createHybridObject('RsaCipher');
|
|
74
76
|
const data = toAB(buffer);
|
|
75
|
-
const paddingMode = padding ?? constants.
|
|
76
|
-
const hashAlgorithm = oaepHash || 'SHA-256';
|
|
77
|
+
const paddingMode = padding ?? constants.RSA_PKCS1_PADDING;
|
|
77
78
|
try {
|
|
78
|
-
const decrypted = rsaCipher.
|
|
79
|
+
const decrypted = rsaCipher.publicDecrypt(keyHandle.handle, data, paddingMode);
|
|
79
80
|
return Buffer.from(decrypted);
|
|
80
81
|
} catch (error) {
|
|
81
82
|
throw new Error(`publicDecrypt failed: ${error.message}`);
|
|
@@ -84,12 +85,14 @@ export function publicDecrypt(key, buffer) {
|
|
|
84
85
|
function preparePrivateCipherKey(key, isEncrypt) {
|
|
85
86
|
let keyObj;
|
|
86
87
|
let padding;
|
|
88
|
+
let oaepHash;
|
|
89
|
+
let oaepLabel;
|
|
87
90
|
if (key instanceof KeyObject) {
|
|
88
91
|
if (isEncrypt && key.type !== 'private') {
|
|
89
92
|
throw new Error('privateEncrypt requires a private key');
|
|
90
93
|
}
|
|
91
|
-
if (!isEncrypt && key.type !== '
|
|
92
|
-
throw new Error('privateDecrypt requires a
|
|
94
|
+
if (!isEncrypt && key.type !== 'private') {
|
|
95
|
+
throw new Error('privateDecrypt requires a private key');
|
|
93
96
|
}
|
|
94
97
|
keyObj = key;
|
|
95
98
|
} else if (isCryptoKey(key)) {
|
|
@@ -98,18 +101,24 @@ function preparePrivateCipherKey(key, isEncrypt) {
|
|
|
98
101
|
} else if (isStringOrBuffer(key)) {
|
|
99
102
|
const data = toAB(key);
|
|
100
103
|
const isPem = typeof key === 'string' && key.includes('-----BEGIN');
|
|
101
|
-
keyObj = KeyObject.createKeyObject(
|
|
104
|
+
keyObj = KeyObject.createKeyObject('private', data, isPem ? KFormatType.PEM : KFormatType.DER, KeyEncoding.PKCS8);
|
|
102
105
|
} else if (typeof key === 'object' && 'key' in key) {
|
|
103
106
|
const options = key;
|
|
104
107
|
const result = preparePrivateCipherKey(options.key, isEncrypt);
|
|
105
108
|
keyObj = result.keyHandle;
|
|
106
109
|
padding = options.padding;
|
|
110
|
+
oaepHash = options.oaepHash;
|
|
111
|
+
if (options.oaepLabel) {
|
|
112
|
+
oaepLabel = toAB(options.oaepLabel);
|
|
113
|
+
}
|
|
107
114
|
} else {
|
|
108
115
|
throw new Error('Invalid key input');
|
|
109
116
|
}
|
|
110
117
|
return {
|
|
111
118
|
keyHandle: keyObj,
|
|
112
|
-
padding
|
|
119
|
+
padding,
|
|
120
|
+
oaepHash,
|
|
121
|
+
oaepLabel
|
|
113
122
|
};
|
|
114
123
|
}
|
|
115
124
|
export function privateEncrypt(key, buffer) {
|
|
@@ -130,13 +139,16 @@ export function privateEncrypt(key, buffer) {
|
|
|
130
139
|
export function privateDecrypt(key, buffer) {
|
|
131
140
|
const {
|
|
132
141
|
keyHandle,
|
|
133
|
-
padding
|
|
142
|
+
padding,
|
|
143
|
+
oaepHash,
|
|
144
|
+
oaepLabel
|
|
134
145
|
} = preparePrivateCipherKey(key, false);
|
|
135
146
|
const rsaCipher = NitroModules.createHybridObject('RsaCipher');
|
|
136
147
|
const data = toAB(buffer);
|
|
137
|
-
const paddingMode = padding ?? constants.
|
|
148
|
+
const paddingMode = padding ?? constants.RSA_PKCS1_OAEP_PADDING;
|
|
149
|
+
const hashAlgorithm = oaepHash || 'SHA-256';
|
|
138
150
|
try {
|
|
139
|
-
const decrypted = rsaCipher.privateDecrypt(keyHandle.handle, data, paddingMode);
|
|
151
|
+
const decrypted = rsaCipher.privateDecrypt(keyHandle.handle, data, paddingMode, hashAlgorithm, oaepLabel);
|
|
140
152
|
return Buffer.from(decrypted);
|
|
141
153
|
} catch (error) {
|
|
142
154
|
throw new Error(`privateDecrypt failed: ${error.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","binaryLikeToArrayBuffer","toAB","isStringOrBuffer","KFormatType","KeyEncoding","isCryptoKey","KeyObject","constants","preparePublicCipherKey","key","isEncrypt","keyObj","padding","oaepHash","oaepLabel","type","Error","cryptoKey","keyObject","data","isPem","includes","createKeyObject","PEM","
|
|
1
|
+
{"version":3,"names":["NitroModules","binaryLikeToArrayBuffer","toAB","isStringOrBuffer","KFormatType","KeyEncoding","isCryptoKey","KeyObject","constants","preparePublicCipherKey","key","isEncrypt","keyObj","padding","oaepHash","oaepLabel","type","Error","cryptoKey","keyObject","data","isPem","includes","isPrivatePem","createKeyObject","PEM","PKCS8","DER","SPKI","options","result","keyHandle","publicEncrypt","buffer","rsaCipher","createHybridObject","paddingMode","RSA_PKCS1_OAEP_PADDING","hashAlgorithm","encrypted","encrypt","handle","Buffer","from","error","message","publicDecrypt","RSA_PKCS1_PADDING","decrypted","preparePrivateCipherKey","privateEncrypt","privateDecrypt"],"sourceRoot":"../../../src","sources":["keys/publicCipher.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/utils.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;AAAA,cAAc,cAAc;AAC5B,cAAc,UAAU;AACxB,cAAc,aAAa;AAC3B,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;AAAA,cAAc,cAAc;AAC5B,cAAc,UAAU;AACxB,cAAc,aAAa;AAC3B,cAAc,mBAAmB;AACjC,cAAc,SAAS;AACvB,cAAc,cAAc;AAC5B,cAAc,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
import { abvToArrayBuffer } from './conversion';
|
|
5
|
+
let utils;
|
|
6
|
+
function getNative() {
|
|
7
|
+
if (utils == null) {
|
|
8
|
+
utils = NitroModules.createHybridObject('Utils');
|
|
9
|
+
}
|
|
10
|
+
return utils;
|
|
11
|
+
}
|
|
12
|
+
export function timingSafeEqual(a, b) {
|
|
13
|
+
const bufA = abvToArrayBuffer(a);
|
|
14
|
+
const bufB = abvToArrayBuffer(b);
|
|
15
|
+
if (bufA.byteLength !== bufB.byteLength) {
|
|
16
|
+
throw new RangeError('Input buffers must have the same byte length');
|
|
17
|
+
}
|
|
18
|
+
return getNative().timingSafeEqual(bufA, bufB);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=timingSafeEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","abvToArrayBuffer","utils","getNative","createHybridObject","timingSafeEqual","a","b","bufA","bufB","byteLength","RangeError"],"sourceRoot":"../../../src","sources":["utils/timingSafeEqual.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,SAASC,gBAAgB,QAAQ,cAAc;AAE/C,IAAIC,KAAY;AAChB,SAASC,SAASA,CAAA,EAAU;EAC1B,IAAID,KAAK,IAAI,IAAI,EAAE;IACjBA,KAAK,GAAGF,YAAY,CAACI,kBAAkB,CAAQ,OAAO,CAAC;EACzD;EACA,OAAOF,KAAK;AACd;AAEA,OAAO,SAASG,eAAeA,CAACC,CAAM,EAAEC,CAAM,EAAW;EACvD,MAAMC,IAAI,GAAGP,gBAAgB,CAACK,CAAC,CAAC;EAChC,MAAMG,IAAI,GAAGR,gBAAgB,CAACM,CAAC,CAAC;EAEhC,IAAIC,IAAI,CAACE,UAAU,KAAKD,IAAI,CAACC,UAAU,EAAE;IACvC,MAAM,IAAIC,UAAU,CAAC,8CAA8C,CAAC;EACtE;EAEA,OAAOR,SAAS,CAAC,CAAC,CAACE,eAAe,CAACG,IAAI,EAAEC,IAAI,CAAC;AAChD","ignoreList":[]}
|