react-native-quick-crypto 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/QuickCrypto.podspec +9 -2
- package/README.md +13 -9
- package/android/CMakeLists.txt +4 -0
- package/cpp/cipher/HybridCipherFactory.hpp +15 -1
- package/cpp/cipher/OCBCipher.cpp +4 -4
- package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +161 -0
- package/cpp/cipher/XChaCha20Poly1305Cipher.hpp +43 -0
- package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +145 -0
- package/cpp/cipher/XSalsa20Poly1305Cipher.hpp +42 -0
- package/cpp/dh/HybridDiffieHellman.cpp +10 -0
- package/cpp/dh/HybridDiffieHellman.hpp +1 -0
- package/cpp/ec/HybridEcKeyPair.cpp +21 -0
- package/cpp/ec/HybridEcKeyPair.hpp +1 -0
- package/cpp/hash/HybridHash.cpp +1 -1
- package/cpp/hash/HybridHash.hpp +1 -1
- package/cpp/hmac/HybridHmac.cpp +1 -1
- package/cpp/hmac/HybridHmac.hpp +1 -1
- package/cpp/keys/HybridKeyObjectHandle.cpp +112 -1
- package/cpp/keys/HybridKeyObjectHandle.hpp +5 -1
- package/deps/ncrypto/.bazelrc +0 -1
- package/deps/ncrypto/.bazelversion +1 -1
- package/deps/ncrypto/.github/workflows/commitlint.yml +16 -0
- package/deps/ncrypto/.github/workflows/linter.yml +2 -2
- package/deps/ncrypto/.github/workflows/release-please.yml +16 -0
- package/deps/ncrypto/.github/workflows/ubuntu.yml +82 -0
- package/deps/ncrypto/.release-please-manifest.json +3 -0
- package/deps/ncrypto/BUILD.bazel +9 -1
- package/deps/ncrypto/CHANGELOG.md +37 -0
- package/deps/ncrypto/CMakeLists.txt +35 -11
- package/deps/ncrypto/MODULE.bazel +16 -1
- package/deps/ncrypto/MODULE.bazel.lock +299 -118
- package/deps/ncrypto/cmake/ncrypto-flags.cmake +1 -0
- package/deps/ncrypto/include/ncrypto/aead.h +137 -0
- package/deps/ncrypto/include/ncrypto/version.h +14 -0
- package/deps/ncrypto/include/ncrypto.h +85 -230
- package/deps/ncrypto/ncrypto.pc.in +10 -0
- package/deps/ncrypto/release-please-config.json +11 -0
- package/deps/ncrypto/src/CMakeLists.txt +31 -6
- package/deps/ncrypto/src/aead.cpp +302 -0
- package/deps/ncrypto/src/ncrypto.cpp +274 -556
- package/deps/ncrypto/tests/BUILD.bazel +2 -0
- package/deps/ncrypto/tests/basic.cpp +772 -2
- package/deps/ncrypto/tools/run-clang-format.sh +5 -5
- package/lib/commonjs/diffie-hellman.js +4 -1
- package/lib/commonjs/diffie-hellman.js.map +1 -1
- package/lib/commonjs/ec.js +20 -25
- package/lib/commonjs/ec.js.map +1 -1
- package/lib/commonjs/ed.js +1 -2
- package/lib/commonjs/ed.js.map +1 -1
- package/lib/commonjs/hash.js +7 -0
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/index.js +11 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/keys/classes.js +9 -5
- package/lib/commonjs/keys/classes.js.map +1 -1
- package/lib/commonjs/subtle.js +82 -31
- package/lib/commonjs/subtle.js.map +1 -1
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/module/diffie-hellman.js +4 -0
- package/lib/module/diffie-hellman.js.map +1 -1
- package/lib/module/ec.js +19 -25
- package/lib/module/ec.js.map +1 -1
- package/lib/module/ed.js +1 -2
- package/lib/module/ed.js.map +1 -1
- package/lib/module/hash.js +6 -0
- package/lib/module/hash.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/keys/classes.js +9 -5
- package/lib/module/keys/classes.js.map +1 -1
- package/lib/module/subtle.js +83 -32
- package/lib/module/subtle.js.map +1 -1
- package/lib/module/utils/types.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/diffie-hellman.d.ts +2 -0
- package/lib/typescript/diffie-hellman.d.ts.map +1 -1
- package/lib/typescript/ec.d.ts +1 -0
- package/lib/typescript/ec.d.ts.map +1 -1
- package/lib/typescript/ed.d.ts.map +1 -1
- package/lib/typescript/hash.d.ts +2 -0
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/classes.d.ts +2 -0
- package/lib/typescript/keys/classes.d.ts.map +1 -1
- package/lib/typescript/specs/diffie-hellman.nitro.d.ts +1 -0
- package/lib/typescript/specs/diffie-hellman.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/ecKeyPair.nitro.d.ts +1 -0
- package/lib/typescript/specs/ecKeyPair.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +2 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
- package/lib/typescript/subtle.d.ts.map +1 -1
- package/lib/typescript/utils/types.d.ts +12 -5
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +8 -5
- package/nitrogen/generated/android/QuickCrypto+autolinking.gradle +1 -1
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +54 -54
- package/nitrogen/generated/android/QuickCryptoOnLoad.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/crypto/QuickCryptoOnLoad.kt +1 -1
- package/nitrogen/generated/ios/QuickCrypto+autolinking.rb +2 -2
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Bridge.hpp +1 -1
- package/nitrogen/generated/ios/QuickCrypto-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +54 -54
- package/nitrogen/generated/ios/QuickCryptoAutolinking.swift +5 -1
- package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +1 -1
- package/nitrogen/generated/shared/c++/CipherArgs.hpp +34 -19
- package/nitrogen/generated/shared/c++/HybridBlake3Spec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridBlake3Spec.hpp +1 -3
- package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCipherFactorySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCipherSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCipherSpec.hpp +1 -3
- package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridDiffieHellmanSpec.hpp +3 -3
- package/nitrogen/generated/shared/c++/HybridECDHSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridECDHSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridEcKeyPairSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridEdKeyPairSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridHashSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridHashSpec.hpp +2 -4
- package/nitrogen/generated/shared/c++/HybridHkdfSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridHkdfSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridHmacSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridHmacSpec.hpp +3 -4
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +3 -1
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +8 -4
- package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridMlDsaKeyPairSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridPbkdf2Spec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridRandomSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRandomSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRsaCipherSpec.hpp +1 -3
- package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridRsaKeyPairSpec.hpp +1 -3
- package/nitrogen/generated/shared/c++/HybridScryptSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridScryptSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridSignHandleSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridSignHandleSpec.hpp +1 -3
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +2 -3
- package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridVerifyHandleSpec.hpp +1 -3
- package/nitrogen/generated/shared/c++/JWK.hpp +84 -68
- package/nitrogen/generated/shared/c++/JWKkty.hpp +5 -1
- package/nitrogen/generated/shared/c++/JWKuse.hpp +1 -1
- package/nitrogen/generated/shared/c++/KFormatType.hpp +1 -1
- package/nitrogen/generated/shared/c++/KeyDetail.hpp +39 -23
- package/nitrogen/generated/shared/c++/KeyEncoding.hpp +1 -1
- package/nitrogen/generated/shared/c++/KeyObject.hpp +21 -5
- package/nitrogen/generated/shared/c++/KeyType.hpp +1 -1
- package/nitrogen/generated/shared/c++/KeyUsage.hpp +1 -1
- package/nitrogen/generated/shared/c++/NamedCurve.hpp +1 -1
- package/package.json +1 -1
- package/src/diffie-hellman.ts +6 -0
- package/src/ec.ts +23 -19
- package/src/ed.ts +1 -2
- package/src/hash.ts +11 -0
- package/src/index.ts +3 -0
- package/src/keys/classes.ts +10 -3
- package/src/specs/diffie-hellman.nitro.ts +1 -0
- package/src/specs/ecKeyPair.nitro.ts +2 -0
- package/src/specs/keyObjectHandle.nitro.ts +2 -0
- package/src/subtle.ts +131 -32
- package/src/utils/types.ts +18 -3
- package/deps/ncrypto/WORKSPACE +0 -15
package/lib/commonjs/subtle.js
CHANGED
|
@@ -54,7 +54,22 @@ function normalizeAlgorithm(algorithm, _operation) {
|
|
|
54
54
|
return algorithm;
|
|
55
55
|
}
|
|
56
56
|
function getAlgorithmName(name, length) {
|
|
57
|
-
|
|
57
|
+
switch (name) {
|
|
58
|
+
case 'AES-CBC':
|
|
59
|
+
return `A${length}CBC`;
|
|
60
|
+
case 'AES-CTR':
|
|
61
|
+
return `A${length}CTR`;
|
|
62
|
+
case 'AES-GCM':
|
|
63
|
+
return `A${length}GCM`;
|
|
64
|
+
case 'AES-KW':
|
|
65
|
+
return `A${length}KW`;
|
|
66
|
+
case 'AES-OCB':
|
|
67
|
+
return `A${length}OCB`;
|
|
68
|
+
case 'ChaCha20-Poly1305':
|
|
69
|
+
return 'C20P';
|
|
70
|
+
default:
|
|
71
|
+
return `${name}${length}`;
|
|
72
|
+
}
|
|
58
73
|
}
|
|
59
74
|
|
|
60
75
|
// Placeholder implementations for missing functions
|
|
@@ -137,6 +152,8 @@ async function aesCipher(mode, key, data, algorithm) {
|
|
|
137
152
|
return aesCbcCipher(mode, key, data, algorithm);
|
|
138
153
|
case 'AES-GCM':
|
|
139
154
|
return aesGcmCipher(mode, key, data, algorithm);
|
|
155
|
+
case 'AES-OCB':
|
|
156
|
+
return aesOcbCipher(mode, key, data, algorithm);
|
|
140
157
|
default:
|
|
141
158
|
throw (0, _errors.lazyDOMException)(`Unsupported AES algorithm: ${name}`, 'NotSupportedError');
|
|
142
159
|
}
|
|
@@ -203,61 +220,40 @@ async function aesCbcCipher(mode, key, data, algorithm) {
|
|
|
203
220
|
result.set(new Uint8Array(final), updated.byteLength);
|
|
204
221
|
return result.buffer;
|
|
205
222
|
}
|
|
206
|
-
async function
|
|
207
|
-
|
|
208
|
-
tagLength
|
|
209
|
-
} = algorithm;
|
|
210
|
-
|
|
211
|
-
// Validate tag length
|
|
212
|
-
const validTagLengths = [32, 64, 96, 104, 112, 120, 128];
|
|
213
|
-
if (!validTagLengths.includes(tagLength)) {
|
|
214
|
-
throw (0, _errors.lazyDOMException)(`${tagLength} is not a valid AES-GCM tag length`, 'OperationError');
|
|
223
|
+
async function aesAeadCipher(mode, key, data, config, additionalData, tagLength = 128) {
|
|
224
|
+
if (!config.validTagLengths.includes(tagLength)) {
|
|
225
|
+
throw (0, _errors.lazyDOMException)(`${tagLength} is not a valid ${config.algorithmName} tag length`, 'OperationError');
|
|
215
226
|
}
|
|
216
227
|
const tagByteLength = tagLength / 8;
|
|
217
|
-
|
|
218
|
-
// Get cipher type based on key length
|
|
219
228
|
const keyLength = key.algorithm.length;
|
|
220
|
-
const cipherType = `aes-${keyLength}
|
|
221
|
-
|
|
222
|
-
// Create cipher
|
|
229
|
+
const cipherType = `aes-${keyLength}-${config.cipherSuffix}`;
|
|
223
230
|
const factory = _reactNativeNitroModules.NitroModules.createHybridObject('CipherFactory');
|
|
224
231
|
const cipher = factory.createCipher({
|
|
225
232
|
isCipher: mode === CipherOrWrapMode.kWebCryptoCipherEncrypt,
|
|
226
233
|
cipherType,
|
|
227
234
|
cipherKey: (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.export()),
|
|
228
|
-
iv:
|
|
235
|
+
iv: config.iv,
|
|
229
236
|
authTagLen: tagByteLength
|
|
230
237
|
});
|
|
231
238
|
let processData;
|
|
232
|
-
let authTag;
|
|
233
239
|
if (mode === CipherOrWrapMode.kWebCryptoCipherDecrypt) {
|
|
234
|
-
// For decryption, extract auth tag from end of data
|
|
235
240
|
const dataView = new Uint8Array(data);
|
|
236
241
|
if (dataView.byteLength < tagByteLength) {
|
|
237
242
|
throw (0, _errors.lazyDOMException)('The provided data is too small.', 'OperationError');
|
|
238
243
|
}
|
|
239
|
-
|
|
240
|
-
// Split data and tag
|
|
241
244
|
const ciphertextLength = dataView.byteLength - tagByteLength;
|
|
242
245
|
processData = dataView.slice(0, ciphertextLength).buffer;
|
|
243
|
-
authTag = dataView.slice(ciphertextLength).buffer;
|
|
244
|
-
|
|
245
|
-
// Set auth tag for verification
|
|
246
|
+
const authTag = dataView.slice(ciphertextLength).buffer;
|
|
246
247
|
cipher.setAuthTag(authTag);
|
|
247
248
|
} else {
|
|
248
249
|
processData = data;
|
|
249
250
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
if (algorithm.additionalData) {
|
|
253
|
-
cipher.setAAD((0, _conversion.bufferLikeToArrayBuffer)(algorithm.additionalData));
|
|
251
|
+
if (additionalData) {
|
|
252
|
+
cipher.setAAD((0, _conversion.bufferLikeToArrayBuffer)(additionalData));
|
|
254
253
|
}
|
|
255
|
-
|
|
256
|
-
// Process data
|
|
257
254
|
const updated = cipher.update(processData);
|
|
258
255
|
const final = cipher.final();
|
|
259
256
|
if (mode === CipherOrWrapMode.kWebCryptoCipherEncrypt) {
|
|
260
|
-
// For encryption, append auth tag to result
|
|
261
257
|
const tag = cipher.getAuthTag();
|
|
262
258
|
const result = new Uint8Array(updated.byteLength + final.byteLength + tag.byteLength);
|
|
263
259
|
result.set(new Uint8Array(updated), 0);
|
|
@@ -265,13 +261,32 @@ async function aesGcmCipher(mode, key, data, algorithm) {
|
|
|
265
261
|
result.set(new Uint8Array(tag), updated.byteLength + final.byteLength);
|
|
266
262
|
return result.buffer;
|
|
267
263
|
} else {
|
|
268
|
-
// For decryption, just concatenate plaintext
|
|
269
264
|
const result = new Uint8Array(updated.byteLength + final.byteLength);
|
|
270
265
|
result.set(new Uint8Array(updated), 0);
|
|
271
266
|
result.set(new Uint8Array(final), updated.byteLength);
|
|
272
267
|
return result.buffer;
|
|
273
268
|
}
|
|
274
269
|
}
|
|
270
|
+
async function aesGcmCipher(mode, key, data, algorithm) {
|
|
271
|
+
return aesAeadCipher(mode, key, data, {
|
|
272
|
+
algorithmName: 'AES-GCM',
|
|
273
|
+
validTagLengths: [32, 64, 96, 104, 112, 120, 128],
|
|
274
|
+
cipherSuffix: 'gcm',
|
|
275
|
+
iv: (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv)
|
|
276
|
+
}, algorithm.additionalData, algorithm.tagLength);
|
|
277
|
+
}
|
|
278
|
+
async function aesOcbCipher(mode, key, data, algorithm) {
|
|
279
|
+
const ivBuffer = (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv);
|
|
280
|
+
if (ivBuffer.byteLength < 1 || ivBuffer.byteLength > 15) {
|
|
281
|
+
throw (0, _errors.lazyDOMException)('AES-OCB algorithm.iv must be between 1 and 15 bytes', 'OperationError');
|
|
282
|
+
}
|
|
283
|
+
return aesAeadCipher(mode, key, data, {
|
|
284
|
+
algorithmName: 'AES-OCB',
|
|
285
|
+
validTagLengths: [64, 96, 128],
|
|
286
|
+
cipherSuffix: 'ocb',
|
|
287
|
+
iv: ivBuffer
|
|
288
|
+
}, algorithm.additionalData, algorithm.tagLength);
|
|
289
|
+
}
|
|
275
290
|
async function aesKwCipher(mode, key, data) {
|
|
276
291
|
const isWrap = mode === CipherOrWrapMode.kWebCryptoCipherEncrypt;
|
|
277
292
|
|
|
@@ -695,6 +710,18 @@ function edImportKey(format, data, algorithm, extractable, keyUsages) {
|
|
|
695
710
|
// Raw public keys are just the key bytes
|
|
696
711
|
handle.init(1, keyData); // 1 = public key type
|
|
697
712
|
keyObject = new _keys.PublicKeyObject(handle);
|
|
713
|
+
} else if (format === 'jwk') {
|
|
714
|
+
const jwkData = data;
|
|
715
|
+
const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
|
|
716
|
+
const keyType = handle.initJwk(jwkData);
|
|
717
|
+
if (keyType === undefined) {
|
|
718
|
+
throw (0, _errors.lazyDOMException)('Invalid JWK data', 'DataError');
|
|
719
|
+
}
|
|
720
|
+
if (keyType === _utils.KeyType.PRIVATE) {
|
|
721
|
+
keyObject = new _keys.PrivateKeyObject(handle);
|
|
722
|
+
} else {
|
|
723
|
+
keyObject = new _keys.PublicKeyObject(handle);
|
|
724
|
+
}
|
|
698
725
|
} else {
|
|
699
726
|
throw (0, _errors.lazyDOMException)(`Unsupported format for ${name} import: ${format}`, 'NotSupportedError');
|
|
700
727
|
}
|
|
@@ -843,6 +870,8 @@ const exportKeyRaw = key => {
|
|
|
843
870
|
// Fall through
|
|
844
871
|
case 'AES-KW':
|
|
845
872
|
// Fall through
|
|
873
|
+
case 'AES-OCB':
|
|
874
|
+
// Fall through
|
|
846
875
|
case 'ChaCha20-Poly1305':
|
|
847
876
|
// Fall through
|
|
848
877
|
case 'HMAC':
|
|
@@ -877,6 +906,14 @@ const exportKeyJWK = key => {
|
|
|
877
906
|
case 'ECDH':
|
|
878
907
|
jwk.crv ||= key.algorithm.namedCurve;
|
|
879
908
|
return jwk;
|
|
909
|
+
case 'Ed25519':
|
|
910
|
+
// Fall through
|
|
911
|
+
case 'Ed448':
|
|
912
|
+
// Fall through
|
|
913
|
+
case 'X25519':
|
|
914
|
+
// Fall through
|
|
915
|
+
case 'X448':
|
|
916
|
+
return jwk;
|
|
880
917
|
case 'AES-CTR':
|
|
881
918
|
// Fall through
|
|
882
919
|
case 'AES-CBC':
|
|
@@ -885,6 +922,8 @@ const exportKeyJWK = key => {
|
|
|
885
922
|
// Fall through
|
|
886
923
|
case 'AES-KW':
|
|
887
924
|
// Fall through
|
|
925
|
+
case 'AES-OCB':
|
|
926
|
+
// Fall through
|
|
888
927
|
case 'ChaCha20-Poly1305':
|
|
889
928
|
if (key.algorithm.length === undefined) {
|
|
890
929
|
throw (0, _errors.lazyDOMException)(`Algorithm ${key.algorithm.name} missing required length property`, 'InvalidAccessError');
|
|
@@ -1101,6 +1140,8 @@ const cipherOrWrap = async (mode, algorithm, key, data, op) => {
|
|
|
1101
1140
|
case 'AES-CBC':
|
|
1102
1141
|
// Fall through
|
|
1103
1142
|
case 'AES-GCM':
|
|
1143
|
+
// Fall through
|
|
1144
|
+
case 'AES-OCB':
|
|
1104
1145
|
return aesCipher(mode, key, data, algorithm);
|
|
1105
1146
|
case 'AES-KW':
|
|
1106
1147
|
return aesKwCipher(mode, key, data);
|
|
@@ -1158,6 +1199,9 @@ class Subtle {
|
|
|
1158
1199
|
case 'X448':
|
|
1159
1200
|
derivedBits = await (0, _ed.xDeriveBits)(algorithm, baseKey, length);
|
|
1160
1201
|
break;
|
|
1202
|
+
case 'ECDH':
|
|
1203
|
+
derivedBits = await (0, _ec.ecDeriveBits)(algorithm, baseKey, length);
|
|
1204
|
+
break;
|
|
1161
1205
|
case 'HKDF':
|
|
1162
1206
|
derivedBits = (0, _hkdf.hkdfDeriveBits)(algorithm, baseKey, length);
|
|
1163
1207
|
break;
|
|
@@ -1174,6 +1218,7 @@ class Subtle {
|
|
|
1174
1218
|
}
|
|
1175
1219
|
async exportKey(format, key) {
|
|
1176
1220
|
if (!key.extractable) throw new Error('key is not extractable');
|
|
1221
|
+
if (format === 'raw-secret') format = 'raw';
|
|
1177
1222
|
switch (format) {
|
|
1178
1223
|
case 'spki':
|
|
1179
1224
|
return await exportKeySpki(key);
|
|
@@ -1279,6 +1324,8 @@ class Subtle {
|
|
|
1279
1324
|
case 'AES-GCM':
|
|
1280
1325
|
// Fall through
|
|
1281
1326
|
case 'AES-KW':
|
|
1327
|
+
// Fall through
|
|
1328
|
+
case 'AES-OCB':
|
|
1282
1329
|
result = await aesGenerateKey(algorithm, extractable, keyUsages);
|
|
1283
1330
|
break;
|
|
1284
1331
|
case 'ChaCha20-Poly1305':
|
|
@@ -1323,6 +1370,7 @@ class Subtle {
|
|
|
1323
1370
|
return result;
|
|
1324
1371
|
}
|
|
1325
1372
|
async importKey(format, data, algorithm, extractable, keyUsages) {
|
|
1373
|
+
if (format === 'raw-secret') format = 'raw';
|
|
1326
1374
|
const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'importKey');
|
|
1327
1375
|
let result;
|
|
1328
1376
|
switch (normalizedAlgorithm.name) {
|
|
@@ -1349,6 +1397,8 @@ class Subtle {
|
|
|
1349
1397
|
// Fall through
|
|
1350
1398
|
case 'AES-KW':
|
|
1351
1399
|
// Fall through
|
|
1400
|
+
case 'AES-OCB':
|
|
1401
|
+
// Fall through
|
|
1352
1402
|
case 'ChaCha20-Poly1305':
|
|
1353
1403
|
result = await aesImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
|
|
1354
1404
|
break;
|
|
@@ -1473,6 +1523,7 @@ function getKeyLength(algorithm) {
|
|
|
1473
1523
|
case 'AES-CBC':
|
|
1474
1524
|
case 'AES-GCM':
|
|
1475
1525
|
case 'AES-KW':
|
|
1526
|
+
case 'AES-OCB':
|
|
1476
1527
|
case 'ChaCha20-Poly1305':
|
|
1477
1528
|
return algorithm.length || 256;
|
|
1478
1529
|
case 'HMAC':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_safeBuffer","require","_utils","_keys","_conversion","_errors","_hashnames","_validation","_hash","_reactNativeNitroModules","_pbkdf","_ec","_rsa","_random","_hmac","_signVerify","_ed","_mldsa","_hkdf","KWebCryptoKeyFormat","CipherOrWrapMode","hasAnyNotIn","usages","allowed","some","usage","includes","normalizeAlgorithm","algorithm","_operation","name","getAlgorithmName","length","ecExportKey","key","format","keyObject","kWebCryptoKeyFormatSPKI","exported","export","type","bufferLikeToArrayBuffer","kWebCryptoKeyFormatPKCS8","Error","rsaExportKey","rsaCipher","mode","data","rsaParams","expectedType","kWebCryptoCipherEncrypt","lazyDOMException","hashAlgorithm","normalizeHashName","hash","label","undefined","rsaCipherModule","NitroModules","createHybridObject","RSA_PKCS1_OAEP_PADDING","encrypt","handle","decrypt","aesCipher","aesCtrCipher","aesCbcCipher","aesGcmCipher","counter","byteLength","keyLength","cipherType","factory","cipher","createCipher","isCipher","cipherKey","iv","updated","update","final","result","Uint8Array","set","buffer","tagLength","validTagLengths","tagByteLength","authTagLen","processData","authTag","kWebCryptoCipherDecrypt","dataView","ciphertextLength","slice","setAuthTag","additionalData","setAAD","tag","getAuthTag","aesKwCipher","isWrap","exportedKey","defaultWrapIV","chaCha20Poly1305Cipher","ivBuffer","aesGenerateKey","extractable","keyUsages","validUsages","keyBytes","getRandomValues","createSecretKey","keyAlgorithm","CryptoKey","hmacGenerateKey","hashName","Math","ceil","webCryptoHashName","HashContext","WebCrypto","rsaImportKey","checkSet","jwk","kty","keyType","initJwk","PublicKeyObject","PrivateKeyObject","keyData","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","PKCS8","keyDetails","asymmetricKeyDetails","publicExponentBytes","publicExponent","exp","bytes","value","unshift","floor","normalizedHash","algorithmWithDetails","modulusLength","hmacImportKey","k","decoded","SBuffer","from","keyBitLength","SecretKeyObject","normalizedAlgorithm","aesImportKey","actualLength","edImportKey","isX","allowedUsages","init","mldsaImportKey","exportKeySpki","exportKey","exportKeyPkcs8","exportKeyRaw","kWebCryptoKeyFormatRaw","byteOffset","exportKeyJWK","exportJwk","key_ops","ext","alg","JwkRsa","JwkRsaPss","JwkRsaOaep","JwkHmac","crv","namedCurve","importGenericSecretKey","checkLength","isBuffer","hkdfImportKey","checkCryptoKeyPairUsages","pair","privateKey","isCryptoKeyPair","hmacSignVerify","signature","hmac","createHmac","computed","digest","sigBytes","computedBytes","i","rsaSignVerify","padding","saltLength","RSA_PKCS1_PADDING","RSA_PKCS1_PSS_PADDING","paddingValue","signer","createSign","sig","sign","verifier","createVerify","verify","edSignVerify","isSign","expectedKeyType","algorithmName","curveType","toLowerCase","ed","Ed","rawKey","dataBuffer","signSync","signatureBuffer","verifySync","mldsaSignVerify","signVerify","ecdsaSignVerify","cipherOrWrap","op","validateMaxBufferLength","Subtle","asyncDigest","deriveBits","baseKey","pbkdf2DeriveBits","xDeriveBits","ecDeriveBits","hkdfDeriveBits","deriveKey","derivedKeyAlgorithm","getKeyLength","derivedBits","importKey","wrapKey","wrappingKey","wrapAlgorithm","jwkString","JSON","stringify","paddedLength","paddedBuffer","alloc","copy","writeUInt8","unwrapKey","wrappedKey","unwrappingKey","unwrapAlgorithm","unwrappedKeyAlgorithm","decrypted","nullIndex","indexOf","toString","trim","parse","generateKey","rsa_generateKeyPair","ec_generateKeyPair","ed_generateKeyPairWebCrypto","mldsa_generateKeyPairWebCrypto","x_generateKeyPairWebCrypto","ecImportKey","keyAlg","expectedDigest","expected","signatureArray","exports","subtle","hmacAlg"],"sourceRoot":"../../src","sources":["subtle.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_safeBuffer","require","_utils","_keys","_conversion","_errors","_hashnames","_validation","_hash","_reactNativeNitroModules","_pbkdf","_ec","_rsa","_random","_hmac","_signVerify","_ed","_mldsa","_hkdf","KWebCryptoKeyFormat","CipherOrWrapMode","hasAnyNotIn","usages","allowed","some","usage","includes","normalizeAlgorithm","algorithm","_operation","name","getAlgorithmName","length","ecExportKey","key","format","keyObject","kWebCryptoKeyFormatSPKI","exported","export","type","bufferLikeToArrayBuffer","kWebCryptoKeyFormatPKCS8","Error","rsaExportKey","rsaCipher","mode","data","rsaParams","expectedType","kWebCryptoCipherEncrypt","lazyDOMException","hashAlgorithm","normalizeHashName","hash","label","undefined","rsaCipherModule","NitroModules","createHybridObject","RSA_PKCS1_OAEP_PADDING","encrypt","handle","decrypt","aesCipher","aesCtrCipher","aesCbcCipher","aesGcmCipher","aesOcbCipher","counter","byteLength","keyLength","cipherType","factory","cipher","createCipher","isCipher","cipherKey","iv","updated","update","final","result","Uint8Array","set","buffer","aesAeadCipher","config","additionalData","tagLength","validTagLengths","algorithmName","tagByteLength","cipherSuffix","authTagLen","processData","kWebCryptoCipherDecrypt","dataView","ciphertextLength","slice","authTag","setAuthTag","setAAD","tag","getAuthTag","ivBuffer","aesKwCipher","isWrap","exportedKey","defaultWrapIV","chaCha20Poly1305Cipher","aesGenerateKey","extractable","keyUsages","validUsages","keyBytes","getRandomValues","createSecretKey","keyAlgorithm","CryptoKey","hmacGenerateKey","hashName","Math","ceil","webCryptoHashName","HashContext","WebCrypto","rsaImportKey","checkSet","jwk","kty","keyType","initJwk","PublicKeyObject","PrivateKeyObject","keyData","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","PKCS8","keyDetails","asymmetricKeyDetails","publicExponentBytes","publicExponent","exp","bytes","value","unshift","floor","normalizedHash","algorithmWithDetails","modulusLength","hmacImportKey","k","decoded","SBuffer","from","keyBitLength","SecretKeyObject","normalizedAlgorithm","aesImportKey","actualLength","edImportKey","isX","allowedUsages","init","jwkData","KeyType","PRIVATE","mldsaImportKey","exportKeySpki","exportKey","exportKeyPkcs8","exportKeyRaw","kWebCryptoKeyFormatRaw","byteOffset","exportKeyJWK","exportJwk","key_ops","ext","alg","JwkRsa","JwkRsaPss","JwkRsaOaep","JwkHmac","crv","namedCurve","importGenericSecretKey","checkLength","isBuffer","hkdfImportKey","checkCryptoKeyPairUsages","pair","privateKey","isCryptoKeyPair","hmacSignVerify","signature","hmac","createHmac","computed","digest","sigBytes","computedBytes","i","rsaSignVerify","padding","saltLength","RSA_PKCS1_PADDING","RSA_PKCS1_PSS_PADDING","paddingValue","signer","createSign","sig","sign","verifier","createVerify","verify","edSignVerify","isSign","expectedKeyType","curveType","toLowerCase","ed","Ed","rawKey","dataBuffer","signSync","signatureBuffer","verifySync","mldsaSignVerify","signVerify","ecdsaSignVerify","cipherOrWrap","op","validateMaxBufferLength","Subtle","asyncDigest","deriveBits","baseKey","pbkdf2DeriveBits","xDeriveBits","ecDeriveBits","hkdfDeriveBits","deriveKey","derivedKeyAlgorithm","getKeyLength","derivedBits","importKey","wrapKey","wrappingKey","wrapAlgorithm","jwkString","JSON","stringify","paddedLength","paddedBuffer","alloc","copy","writeUInt8","unwrapKey","wrappedKey","unwrappingKey","unwrapAlgorithm","unwrappedKeyAlgorithm","decrypted","nullIndex","indexOf","toString","trim","parse","generateKey","rsa_generateKeyPair","ec_generateKeyPair","ed_generateKeyPairWebCrypto","mldsa_generateKeyPairWebCrypto","x_generateKeyPairWebCrypto","ecImportKey","keyAlg","expectedDigest","expected","signatureArray","exports","subtle","hmacAlg"],"sourceRoot":"../../src","sources":["subtle.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KFormatType","exports","KeyType","KeyEncoding","KeyFormat","kNamedCurveAliases","KeyVariant"],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":";;;;;;AAE8C;AAoE9C;
|
|
1
|
+
{"version":3,"names":["KFormatType","exports","KeyType","KeyEncoding","KeyFormat","kNamedCurveAliases","KeyVariant"],"sourceRoot":"../../../src","sources":["utils/types.ts"],"mappings":";;;;;;AAE8C;AAoE9C;AA6JA;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;AAAA,IAMXE,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;AAAA,IAOXC,SAAS,GAAAH,OAAA,CAAAG,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AASd,MAAMC,kBAAkB,GAAAJ,OAAA,CAAAI,kBAAA,GAAG;EAChC,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,WAAW;EACpB,OAAO,EAAE;AACX,CAAU;AACV;AAAA,IA0IYC,UAAU,GAAAL,OAAA,CAAAK,UAAA,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,OAuBtB;AACA;AACA;AAqCA","ignoreList":[]}
|
|
@@ -83,6 +83,9 @@ export class DiffieHellman {
|
|
|
83
83
|
}
|
|
84
84
|
this._hybrid.setPrivateKey(keyBuf.buffer);
|
|
85
85
|
}
|
|
86
|
+
get verifyError() {
|
|
87
|
+
return this._hybrid.getVerifyError();
|
|
88
|
+
}
|
|
86
89
|
}
|
|
87
90
|
export function createDiffieHellman(primeOrSize, primeEncodingOrGenerator, generator, _generatorEncoding) {
|
|
88
91
|
if (typeof primeOrSize === 'number') {
|
|
@@ -137,4 +140,5 @@ export function getDiffieHellman(groupName) {
|
|
|
137
140
|
// group.prime and group.generator are hex strings
|
|
138
141
|
return new DiffieHellman(group.prime, group.generator, 'hex');
|
|
139
142
|
}
|
|
143
|
+
export { getDiffieHellman as createDiffieHellmanGroup };
|
|
140
144
|
//# sourceMappingURL=diffie-hellman.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","Buffer","DH_GROUPS","DiffieHellman","constructor","sizeOrPrime","generator","encoding","_hybrid","createHybridObject","gen","initWithSize","primeBuf","isBuffer","from","genBuf","undefined","init","buffer","generateKeys","keys","toString","computeSecret","otherPublicKey","inputEncoding","outputEncoding","keyBuf","secret","getPrime","p","getGenerator","g","getPublicKey","getPrivateKey","setPublicKey","publicKey","setPrivateKey","privateKey","createDiffieHellman","primeOrSize","primeEncodingOrGenerator","_generatorEncoding","prime","generatorVal","getDiffieHellman","groupName","group","Error"],"sourceRoot":"../../src","sources":["diffie-hellman.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["NitroModules","Buffer","DH_GROUPS","DiffieHellman","constructor","sizeOrPrime","generator","encoding","_hybrid","createHybridObject","gen","initWithSize","primeBuf","isBuffer","from","genBuf","undefined","init","buffer","generateKeys","keys","toString","computeSecret","otherPublicKey","inputEncoding","outputEncoding","keyBuf","secret","getPrime","p","getGenerator","g","getPublicKey","getPrivateKey","setPublicKey","publicKey","setPrivateKey","privateKey","verifyError","getVerifyError","createDiffieHellman","primeOrSize","primeEncodingOrGenerator","_generatorEncoding","prime","generatorVal","getDiffieHellman","groupName","group","Error","createDiffieHellmanGroup"],"sourceRoot":"../../src","sources":["diffie-hellman.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,SAAS,QAAQ,aAAa;AAEvC,OAAO,MAAMC,aAAa,CAAC;EAGzBC,WAAWA,CACTC,WAAqC,EACrCC,SAAoC,EACpCC,QAAyB,EACzB;IACA,IAAI,CAACC,OAAO,GACVR,YAAY,CAACS,kBAAkB,CAAyB,eAAe,CAAC;IAE1E,IAAI,OAAOJ,WAAW,KAAK,QAAQ,EAAE;MACnC,MAAMK,GAAG,GAAG,OAAOJ,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAG,CAAC;MACzD,IAAI,CAACE,OAAO,CAACG,YAAY,CAACN,WAAW,EAAEK,GAAG,CAAC;IAC7C,CAAC,MAAM;MACL,IAAIE,QAAgB;MACpB,IAAIX,MAAM,CAACY,QAAQ,CAACR,WAAW,CAAC,EAAE;QAChCO,QAAQ,GAAGP,WAAW;MACxB,CAAC,MAAM;QACLO,QAAQ,GAAGX,MAAM,CAACa,IAAI,CAACT,WAAW,EAAEE,QAA0B,CAAC;MACjE;MAEA,IAAIQ,MAAc;MAClB,IAAIT,SAAS,KAAKU,SAAS,EAAE;QAC3BD,MAAM,GAAGd,MAAM,CAACa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;MAC3B,CAAC,MAAM,IAAI,OAAOR,SAAS,KAAK,QAAQ,EAAE;QACxCS,MAAM,GAAGd,MAAM,CAACa,IAAI,CAAC,CAACR,SAAS,CAAC,CAAC;MACnC,CAAC,MAAM,IAAIL,MAAM,CAACY,QAAQ,CAACP,SAAS,CAAC,EAAE;QACrCS,MAAM,GAAGT,SAAS;MACpB,CAAC,MAAM;QACLS,MAAM,GAAGd,MAAM,CAACa,IAAI,CAACR,SAAS,EAAEC,QAA0B,CAAC;MAC7D;MAEA,IAAI,CAACC,OAAO,CAACS,IAAI,CACfL,QAAQ,CAACM,MAAM,EACfH,MAAM,CAACG,MACT,CAAC;IACH;EACF;EAEAC,YAAYA,CAACZ,QAAyB,EAAmB;IACvD,MAAMa,IAAI,GAAGnB,MAAM,CAACa,IAAI,CAAC,IAAI,CAACN,OAAO,CAACW,YAAY,CAAC,CAAC,CAAC;IACrD,IAAIZ,QAAQ,EAAE,OAAOa,IAAI,CAACC,QAAQ,CAACd,QAAQ,CAAC;IAC5C,OAAOa,IAAI;EACb;EAEAE,aAAaA,CACXC,cAA+B,EAC/BC,aAA8B,EAC9BC,cAA+B,EACd;IACjB,IAAIC,MAAc;IAClB,IAAIzB,MAAM,CAACY,QAAQ,CAACU,cAAc,CAAC,EAAE;MACnCG,MAAM,GAAGH,cAAc;IACzB,CAAC,MAAM;MACLG,MAAM,GAAGzB,MAAM,CAACa,IAAI,CAACS,cAAc,EAAEC,aAAa,CAAC;IACrD;IAEA,MAAMG,MAAM,GAAG1B,MAAM,CAACa,IAAI,CACxB,IAAI,CAACN,OAAO,CAACc,aAAa,CAACI,MAAM,CAACR,MAAqB,CACzD,CAAC;IACD,IAAIO,cAAc,EAAE,OAAOE,MAAM,CAACN,QAAQ,CAACI,cAAc,CAAC;IAC1D,OAAOE,MAAM;EACf;EAEAC,QAAQA,CAACrB,QAAyB,EAAmB;IACnD,MAAMsB,CAAC,GAAG5B,MAAM,CAACa,IAAI,CAAC,IAAI,CAACN,OAAO,CAACoB,QAAQ,CAAC,CAAC,CAAC;IAC9C,IAAIrB,QAAQ,EAAE,OAAOsB,CAAC,CAACR,QAAQ,CAACd,QAAQ,CAAC;IACzC,OAAOsB,CAAC;EACV;EAEAC,YAAYA,CAACvB,QAAyB,EAAmB;IACvD,MAAMwB,CAAC,GAAG9B,MAAM,CAACa,IAAI,CAAC,IAAI,CAACN,OAAO,CAACsB,YAAY,CAAC,CAAC,CAAC;IAClD,IAAIvB,QAAQ,EAAE,OAAOwB,CAAC,CAACV,QAAQ,CAACd,QAAQ,CAAC;IACzC,OAAOwB,CAAC;EACV;EAEAC,YAAYA,CAACzB,QAAyB,EAAmB;IACvD,MAAMsB,CAAC,GAAG5B,MAAM,CAACa,IAAI,CAAC,IAAI,CAACN,OAAO,CAACwB,YAAY,CAAC,CAAC,CAAC;IAClD,IAAIzB,QAAQ,EAAE,OAAOsB,CAAC,CAACR,QAAQ,CAACd,QAAQ,CAAC;IACzC,OAAOsB,CAAC;EACV;EAEAI,aAAaA,CAAC1B,QAAyB,EAAmB;IACxD,MAAMsB,CAAC,GAAG5B,MAAM,CAACa,IAAI,CAAC,IAAI,CAACN,OAAO,CAACyB,aAAa,CAAC,CAAC,CAAC;IACnD,IAAI1B,QAAQ,EAAE,OAAOsB,CAAC,CAACR,QAAQ,CAACd,QAAQ,CAAC;IACzC,OAAOsB,CAAC;EACV;EAEAK,YAAYA,CAACC,SAA0B,EAAE5B,QAAyB,EAAQ;IACxE,IAAImB,MAAc;IAClB,IAAIzB,MAAM,CAACY,QAAQ,CAACsB,SAAS,CAAC,EAAE;MAC9BT,MAAM,GAAGS,SAAS;IACpB,CAAC,MAAM;MACLT,MAAM,GAAGzB,MAAM,CAACa,IAAI,CAACqB,SAAS,EAAE5B,QAAQ,CAAC;IAC3C;IACA,IAAI,CAACC,OAAO,CAAC0B,YAAY,CAACR,MAAM,CAACR,MAAqB,CAAC;EACzD;EAEAkB,aAAaA,CAACC,UAA2B,EAAE9B,QAAyB,EAAQ;IAC1E,IAAImB,MAAc;IAClB,IAAIzB,MAAM,CAACY,QAAQ,CAACwB,UAAU,CAAC,EAAE;MAC/BX,MAAM,GAAGW,UAAU;IACrB,CAAC,MAAM;MACLX,MAAM,GAAGzB,MAAM,CAACa,IAAI,CAACuB,UAAU,EAAE9B,QAAQ,CAAC;IAC5C;IACA,IAAI,CAACC,OAAO,CAAC4B,aAAa,CAACV,MAAM,CAACR,MAAqB,CAAC;EAC1D;EAEA,IAAIoB,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAAC9B,OAAO,CAAC+B,cAAc,CAAC,CAAC;EACtC;AACF;AAEA,OAAO,SAASC,mBAAmBA,CACjCC,WAAqC,EACrCC,wBAAmD,EACnDpC,SAAoC,EACpCqC,kBAA2B,EACZ;EACf,IAAI,OAAOF,WAAW,KAAK,QAAQ,EAAE;IACnC,MAAM/B,GAAG,GACP,OAAOgC,wBAAwB,KAAK,QAAQ,GACxCA,wBAAwB,GACxB,CAAC;IACP,OAAO,IAAIvC,aAAa,CAACsC,WAAW,EAAE/B,GAAG,CAAC;EAC5C;;EAEA;EACA;;EAEA,IAAIkC,KAAa;EACjB,IAAIC,YAAyC;EAE7C,IAAI5C,MAAM,CAACY,QAAQ,CAAC4B,WAAW,CAAC,EAAE;IAChCG,KAAK,GAAGH,WAAW;IACnB;IACA,IACEC,wBAAwB,KAAK1B,SAAS,IACtC,OAAO0B,wBAAwB,KAAK,QAAQ,EAC5C;MACAG,YAAY,GAAGH,wBAA2C;IAC5D,CAAC,MAAM,IAAIpC,SAAS,KAAKU,SAAS,EAAE;MAClC6B,YAAY,GAAGvC,SAA4B;IAC7C,CAAC,MAAM;MACLuC,YAAY,GAAG,CAAC;IAClB;EACF,CAAC,MAAM;IACL;IACA,MAAMtC,QAAQ,GACZ,OAAOmC,wBAAwB,KAAK,QAAQ,GACxCA,wBAAwB,GACxB,MAAM,CAAC,CAAC;IACd;IACAE,KAAK,GAAG3C,MAAM,CAACa,IAAI,CAAC2B,WAAW,EAAElC,QAA0B,CAAC;;IAE5D;IACA,IAAID,SAAS,KAAKU,SAAS,EAAE;MAC3B6B,YAAY,GAAGvC,SAA4B;MAC3C,IAAI,OAAOA,SAAS,KAAK,QAAQ,IAAIqC,kBAAkB,EAAE;QACvDE,YAAY,GAAG5C,MAAM,CAACa,IAAI,CACxBR,SAAS,EACTqC,kBACF,CAAC;MACH,CAAC,MAAM,IAAI,OAAOrC,SAAS,KAAK,QAAQ,EAAE;QACxC;QACAuC,YAAY,GAAG5C,MAAM,CAACa,IAAI,CAACR,SAAS,EAAEC,QAA0B,CAAC;MACnE;IACF,CAAC,MAAM,IACL,OAAOmC,wBAAwB,KAAK,QAAQ,IAC5CA,wBAAwB,KAAK1B,SAAS,EACtC;MACA;MACA6B,YAAY,GAAGH,wBAAkC;IACnD,CAAC,MAAM;MACLG,YAAY,GAAG,CAAC;IAClB;EACF;EAEA,OAAO,IAAI1C,aAAa,CAACyC,KAAK,EAAEC,YAAY,CAAC;AAC/C;AAEA,OAAO,SAASC,gBAAgBA,CAACC,SAAiB,EAAiB;EACjE,MAAMC,KAAK,GAAG9C,SAAS,CAAC6C,SAAS,CAAC;EAClC,IAAI,CAACC,KAAK,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,kBAAkBF,SAAS,EAAE,CAAC;EAChD;EACA;EACA,OAAO,IAAI5C,aAAa,CAAC6C,KAAK,CAACJ,KAAK,EAAEI,KAAK,CAAC1C,SAAS,EAAE,KAAK,CAAC;AAC/D;AAEA,SAASwC,gBAAgB,IAAII,wBAAwB","ignoreList":[]}
|
package/lib/module/ec.js
CHANGED
|
@@ -5,6 +5,20 @@ import { CryptoKey, KeyObject, PublicKeyObject, PrivateKeyObject } from './keys'
|
|
|
5
5
|
import { bufferLikeToArrayBuffer, getUsagesUnion, hasAnyNotIn, kNamedCurveAliases, lazyDOMException, normalizeHashName, HashContext, KeyEncoding, KFormatType } from './utils';
|
|
6
6
|
import { Buffer } from '@craftzdog/react-native-buffer';
|
|
7
7
|
import { ECDH } from './ecdh';
|
|
8
|
+
class EcUtils {
|
|
9
|
+
static get native() {
|
|
10
|
+
if (!this._native) {
|
|
11
|
+
this._native = NitroModules.createHybridObject('EcKeyPair');
|
|
12
|
+
}
|
|
13
|
+
return this._native;
|
|
14
|
+
}
|
|
15
|
+
static getSupportedCurves() {
|
|
16
|
+
return this.native.getSupportedCurves();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function getCurves() {
|
|
20
|
+
return EcUtils.getSupportedCurves();
|
|
21
|
+
}
|
|
8
22
|
export class Ec {
|
|
9
23
|
constructor(curve) {
|
|
10
24
|
this.native = NitroModules.createHybridObject('EcKeyPair');
|
|
@@ -294,8 +308,7 @@ export function ec_generateKeyPairNodeSync(options, encoding) {
|
|
|
294
308
|
return ec_formatKeyPairOutput(ec, encoding);
|
|
295
309
|
}
|
|
296
310
|
export function ecDeriveBits(algorithm, baseKey, length) {
|
|
297
|
-
const
|
|
298
|
-
const publicKey = publicParams.public;
|
|
311
|
+
const publicKey = algorithm.public;
|
|
299
312
|
if (!publicKey) {
|
|
300
313
|
throw new Error('Public key is required for ECDH derivation');
|
|
301
314
|
}
|
|
@@ -309,35 +322,16 @@ export function ecDeriveBits(algorithm, baseKey, length) {
|
|
|
309
322
|
if (!namedCurve) {
|
|
310
323
|
throw new Error('Curve name is missing');
|
|
311
324
|
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
317
|
-
const jwkPrivate = baseKey.keyObject.export({
|
|
318
|
-
format: 'jwk'
|
|
319
|
-
});
|
|
325
|
+
const opensslCurve = kNamedCurveAliases[namedCurve];
|
|
326
|
+
const ecdh = new ECDH(opensslCurve);
|
|
327
|
+
const jwkPrivate = baseKey.keyObject.handle.exportJwk({}, false);
|
|
320
328
|
if (!jwkPrivate.d) throw new Error('Invalid private key');
|
|
321
329
|
const privateBytes = Buffer.from(jwkPrivate.d, 'base64');
|
|
322
330
|
ecdh.setPrivateKey(privateBytes);
|
|
323
|
-
|
|
324
|
-
// Public key
|
|
325
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
326
|
-
const jwkPublic = publicKey.keyObject.export({
|
|
327
|
-
format: 'jwk'
|
|
328
|
-
});
|
|
329
|
-
|
|
330
|
-
// HybridECDH `computeSecret` takes public key.
|
|
331
|
-
// My implementation `HybridECDH.cpp` `computeSecret` expects what?
|
|
332
|
-
// `derive_secret` -> `EVP_PKEY_derive_set_peer`
|
|
333
|
-
// `computeSecret` calls `EC_POINT_oct2point`. So it expects an uncompressed/compressed point (04... or 02/03...).
|
|
334
|
-
// JWK gives `x` and `y`. We can construct the uncompressed point 04 + x + y.
|
|
335
|
-
|
|
331
|
+
const jwkPublic = publicKey.keyObject.handle.exportJwk({}, false);
|
|
336
332
|
if (!jwkPublic.x || !jwkPublic.y) throw new Error('Invalid public key');
|
|
337
333
|
const x = Buffer.from(jwkPublic.x, 'base64');
|
|
338
334
|
const y = Buffer.from(jwkPublic.y, 'base64');
|
|
339
|
-
|
|
340
|
-
// Uncompressed point: 0x04 || x || y
|
|
341
335
|
const publicBytes = Buffer.concat([Buffer.from([0x04]), x, y]);
|
|
342
336
|
const secret = ecdh.computeSecret(publicBytes);
|
|
343
337
|
const secretBuf = Buffer.from(secret);
|