react-native-quick-crypto 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/QuickCrypto.podspec +1 -0
- package/android/CMakeLists.txt +4 -0
- package/cpp/cipher/CCMCipher.cpp +7 -11
- package/cpp/cipher/ChaCha20Cipher.cpp +6 -10
- package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +10 -16
- package/cpp/cipher/GCMCipher.cpp +3 -5
- package/cpp/cipher/HybridCipher.cpp +7 -13
- package/cpp/cipher/HybridRsaCipher.cpp +19 -27
- package/cpp/cipher/OCBCipher.cpp +2 -3
- package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +13 -19
- package/cpp/cipher/XSalsa20Cipher.cpp +8 -12
- package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +11 -16
- package/cpp/keys/HybridKeyObjectHandle.cpp +630 -2
- package/cpp/keys/HybridKeyObjectHandle.hpp +21 -1
- package/cpp/sign/HybridSignHandle.cpp +26 -8
- package/cpp/sign/HybridVerifyHandle.cpp +28 -11
- package/cpp/slhdsa/HybridSlhDsaKeyPair.cpp +245 -0
- package/cpp/slhdsa/HybridSlhDsaKeyPair.hpp +48 -0
- package/cpp/turboshake/HybridTurboShake.cpp +379 -0
- package/cpp/turboshake/HybridTurboShake.hpp +28 -0
- package/cpp/utils/HybridUtils.cpp +26 -14
- package/deps/blake3/README.md +6 -7
- package/deps/blake3/c/blake3.c +3 -2
- package/deps/blake3/c/blake3.h +2 -2
- package/deps/blake3/c/blake3_dispatch.c +2 -2
- package/deps/blake3/c/blake3_impl.h +1 -1
- package/deps/blake3/c/blake3_neon.c +5 -4
- package/deps/ncrypto/include/ncrypto/version.h +2 -2
- package/deps/ncrypto/include/ncrypto.h +9 -2
- package/deps/ncrypto/src/ncrypto.cpp +130 -35
- package/lib/commonjs/dhKeyPair.js +3 -0
- package/lib/commonjs/dhKeyPair.js.map +1 -1
- package/lib/commonjs/dsa.js +3 -0
- package/lib/commonjs/dsa.js.map +1 -1
- package/lib/commonjs/ec.js +37 -30
- package/lib/commonjs/ec.js.map +1 -1
- package/lib/commonjs/ed.js +60 -6
- package/lib/commonjs/ed.js.map +1 -1
- package/lib/commonjs/hash.js +52 -5
- package/lib/commonjs/hash.js.map +1 -1
- package/lib/commonjs/keys/classes.js +33 -7
- package/lib/commonjs/keys/classes.js.map +1 -1
- package/lib/commonjs/keys/generateKeyPair.js +85 -4
- package/lib/commonjs/keys/generateKeyPair.js.map +1 -1
- package/lib/commonjs/keys/index.js +50 -2
- package/lib/commonjs/keys/index.js.map +1 -1
- package/lib/commonjs/keys/signVerify.js +9 -2
- package/lib/commonjs/keys/signVerify.js.map +1 -1
- package/lib/commonjs/keys/utils.js +59 -1
- package/lib/commonjs/keys/utils.js.map +1 -1
- package/lib/commonjs/random.js +63 -9
- package/lib/commonjs/random.js.map +1 -1
- package/lib/commonjs/rsa.js +3 -0
- package/lib/commonjs/rsa.js.map +1 -1
- package/lib/commonjs/slhdsa.js +70 -0
- package/lib/commonjs/slhdsa.js.map +1 -0
- package/lib/commonjs/specs/slhDsaKeyPair.nitro.js +6 -0
- package/lib/commonjs/specs/slhDsaKeyPair.nitro.js.map +1 -0
- package/lib/commonjs/specs/turboshake.nitro.js +6 -0
- package/lib/commonjs/specs/turboshake.nitro.js.map +1 -0
- package/lib/commonjs/subtle.js +926 -275
- package/lib/commonjs/subtle.js.map +1 -1
- package/lib/commonjs/utils/conversion.js +53 -19
- package/lib/commonjs/utils/conversion.js.map +1 -1
- package/lib/commonjs/utils/errors.js +63 -4
- package/lib/commonjs/utils/errors.js.map +1 -1
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/commonjs/utils/validation.js +46 -0
- package/lib/commonjs/utils/validation.js.map +1 -1
- package/lib/module/dhKeyPair.js +3 -0
- package/lib/module/dhKeyPair.js.map +1 -1
- package/lib/module/dsa.js +3 -0
- package/lib/module/dsa.js.map +1 -1
- package/lib/module/ec.js +38 -31
- package/lib/module/ec.js.map +1 -1
- package/lib/module/ed.js +61 -7
- package/lib/module/ed.js.map +1 -1
- package/lib/module/hash.js +52 -5
- package/lib/module/hash.js.map +1 -1
- package/lib/module/keys/classes.js +31 -5
- package/lib/module/keys/classes.js.map +1 -1
- package/lib/module/keys/generateKeyPair.js +86 -5
- package/lib/module/keys/generateKeyPair.js.map +1 -1
- package/lib/module/keys/index.js +50 -2
- package/lib/module/keys/index.js.map +1 -1
- package/lib/module/keys/signVerify.js +9 -2
- package/lib/module/keys/signVerify.js.map +1 -1
- package/lib/module/keys/utils.js +57 -1
- package/lib/module/keys/utils.js.map +1 -1
- package/lib/module/random.js +63 -10
- package/lib/module/random.js.map +1 -1
- package/lib/module/rsa.js +3 -0
- package/lib/module/rsa.js.map +1 -1
- package/lib/module/slhdsa.js +64 -0
- package/lib/module/slhdsa.js.map +1 -0
- package/lib/module/specs/slhDsaKeyPair.nitro.js +4 -0
- package/lib/module/specs/slhDsaKeyPair.nitro.js.map +1 -0
- package/lib/module/specs/turboshake.nitro.js +4 -0
- package/lib/module/specs/turboshake.nitro.js.map +1 -0
- package/lib/module/subtle.js +927 -276
- package/lib/module/subtle.js.map +1 -1
- package/lib/module/utils/conversion.js +51 -19
- package/lib/module/utils/conversion.js.map +1 -1
- package/lib/module/utils/errors.js +61 -4
- package/lib/module/utils/errors.js.map +1 -1
- package/lib/module/utils/types.js.map +1 -1
- package/lib/module/utils/validation.js +44 -0
- package/lib/module/utils/validation.js.map +1 -1
- package/lib/typescript/dhKeyPair.d.ts.map +1 -1
- package/lib/typescript/dsa.d.ts.map +1 -1
- package/lib/typescript/ec.d.ts.map +1 -1
- package/lib/typescript/ed.d.ts.map +1 -1
- package/lib/typescript/hash.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +12 -7
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/keys/classes.d.ts +10 -1
- package/lib/typescript/keys/classes.d.ts.map +1 -1
- package/lib/typescript/keys/generateKeyPair.d.ts +12 -1
- package/lib/typescript/keys/generateKeyPair.d.ts.map +1 -1
- package/lib/typescript/keys/index.d.ts +3 -1
- package/lib/typescript/keys/index.d.ts.map +1 -1
- package/lib/typescript/keys/signVerify.d.ts.map +1 -1
- package/lib/typescript/keys/utils.d.ts +21 -4
- package/lib/typescript/keys/utils.d.ts.map +1 -1
- package/lib/typescript/random.d.ts +5 -1
- package/lib/typescript/random.d.ts.map +1 -1
- package/lib/typescript/rsa.d.ts.map +1 -1
- package/lib/typescript/slhdsa.d.ts +19 -0
- package/lib/typescript/slhdsa.d.ts.map +1 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts +9 -0
- package/lib/typescript/specs/keyObjectHandle.nitro.d.ts.map +1 -1
- package/lib/typescript/specs/slhDsaKeyPair.nitro.d.ts +16 -0
- package/lib/typescript/specs/slhDsaKeyPair.nitro.d.ts.map +1 -0
- package/lib/typescript/specs/turboshake.nitro.d.ts +11 -0
- package/lib/typescript/specs/turboshake.nitro.d.ts.map +1 -0
- package/lib/typescript/subtle.d.ts +3 -2
- package/lib/typescript/subtle.d.ts.map +1 -1
- package/lib/typescript/utils/conversion.d.ts +4 -3
- package/lib/typescript/utils/conversion.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts +12 -0
- package/lib/typescript/utils/errors.d.ts.map +1 -1
- package/lib/typescript/utils/types.d.ts +32 -15
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/lib/typescript/utils/validation.d.ts +3 -1
- package/lib/typescript/utils/validation.d.ts.map +1 -1
- package/nitrogen/generated/android/QuickCrypto+autolinking.cmake +2 -0
- package/nitrogen/generated/android/QuickCryptoOnLoad.cpp +20 -0
- package/nitrogen/generated/ios/QuickCryptoAutolinking.mm +20 -0
- package/nitrogen/generated/shared/c++/AsymmetricKeyType.hpp +48 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.cpp +9 -0
- package/nitrogen/generated/shared/c++/HybridKeyObjectHandleSpec.hpp +9 -0
- package/nitrogen/generated/shared/c++/HybridSlhDsaKeyPairSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridSlhDsaKeyPairSpec.hpp +72 -0
- package/nitrogen/generated/shared/c++/HybridTurboShakeSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridTurboShakeSpec.hpp +70 -0
- package/nitrogen/generated/shared/c++/JWK.hpp +9 -1
- package/nitrogen/generated/shared/c++/JWKkty.hpp +4 -0
- package/nitrogen/generated/shared/c++/KangarooTwelveVariant.hpp +76 -0
- package/nitrogen/generated/shared/c++/TurboShakeVariant.hpp +76 -0
- package/package.json +2 -3
- package/src/dhKeyPair.ts +8 -0
- package/src/dsa.ts +8 -0
- package/src/ec.ts +52 -29
- package/src/ed.ts +95 -16
- package/src/hash.ts +108 -5
- package/src/keys/classes.ts +46 -5
- package/src/keys/generateKeyPair.ts +151 -5
- package/src/keys/index.ts +73 -3
- package/src/keys/signVerify.ts +13 -2
- package/src/keys/utils.ts +78 -5
- package/src/random.ts +93 -9
- package/src/rsa.ts +8 -0
- package/src/slhdsa.ts +146 -0
- package/src/specs/keyObjectHandle.nitro.ts +17 -0
- package/src/specs/slhDsaKeyPair.nitro.ts +29 -0
- package/src/specs/turboshake.nitro.ts +21 -0
- package/src/subtle.ts +1191 -360
- package/src/utils/conversion.ts +72 -21
- package/src/utils/errors.ts +72 -4
- package/src/utils/types.ts +80 -15
- package/src/utils/validation.ts +70 -1
|
@@ -148,6 +148,41 @@ var _utils = require("./utils");
|
|
|
148
148
|
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
149
149
|
var _utils2 = require("../utils");
|
|
150
150
|
var _random = require("../random");
|
|
151
|
+
function isRawFormat(format) {
|
|
152
|
+
return format === 'raw-public' || format === 'raw-private' || format === 'raw-seed';
|
|
153
|
+
}
|
|
154
|
+
function createPublicKeyFromRaw(input) {
|
|
155
|
+
if (input.format !== 'raw-public') {
|
|
156
|
+
throw new Error('Invalid format for createPublicKey raw import');
|
|
157
|
+
}
|
|
158
|
+
if (typeof input.asymmetricKeyType !== 'string') {
|
|
159
|
+
throw new Error('options.asymmetricKeyType is required for raw key import');
|
|
160
|
+
}
|
|
161
|
+
if (input.asymmetricKeyType === 'ec' && !input.namedCurve) {
|
|
162
|
+
throw new Error('options.namedCurve is required for EC raw key import');
|
|
163
|
+
}
|
|
164
|
+
const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
|
|
165
|
+
handle.initRawPublic(input.asymmetricKeyType, (0, _utils2.binaryLikeToArrayBuffer)(input.key), input.namedCurve);
|
|
166
|
+
return new _classes.PublicKeyObject(handle);
|
|
167
|
+
}
|
|
168
|
+
function createPrivateKeyFromRaw(input) {
|
|
169
|
+
if (input.format !== 'raw-private' && input.format !== 'raw-seed') {
|
|
170
|
+
throw new Error('Invalid format for createPrivateKey raw import');
|
|
171
|
+
}
|
|
172
|
+
if (typeof input.asymmetricKeyType !== 'string') {
|
|
173
|
+
throw new Error('options.asymmetricKeyType is required for raw key import');
|
|
174
|
+
}
|
|
175
|
+
if (input.asymmetricKeyType === 'ec' && !input.namedCurve) {
|
|
176
|
+
throw new Error('options.namedCurve is required for EC raw key import');
|
|
177
|
+
}
|
|
178
|
+
const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
|
|
179
|
+
if (input.format === 'raw-seed') {
|
|
180
|
+
handle.initRawSeed(input.asymmetricKeyType, (0, _utils2.binaryLikeToArrayBuffer)(input.key));
|
|
181
|
+
} else {
|
|
182
|
+
handle.initRawPrivate(input.asymmetricKeyType, (0, _utils2.binaryLikeToArrayBuffer)(input.key), input.namedCurve);
|
|
183
|
+
}
|
|
184
|
+
return new _classes.PrivateKeyObject(handle);
|
|
185
|
+
}
|
|
151
186
|
function createSecretKey(key) {
|
|
152
187
|
const keyBuffer = (0, _utils2.binaryLikeToArrayBuffer)(key);
|
|
153
188
|
return _classes.KeyObject.createKeyObject('secret', keyBuffer);
|
|
@@ -217,8 +252,9 @@ function prepareAsymmetricKey(key, isPublic) {
|
|
|
217
252
|
};
|
|
218
253
|
}
|
|
219
254
|
|
|
220
|
-
// Filter
|
|
221
|
-
|
|
255
|
+
// Filter to only 'pem' or 'der' — JWK and raw formats are handled
|
|
256
|
+
// separately via dedicated paths.
|
|
257
|
+
const filteredFormat = format === 'pem' || format === 'der' ? format : undefined;
|
|
222
258
|
return {
|
|
223
259
|
data: (0, _utils2.binaryLikeToArrayBuffer)(data),
|
|
224
260
|
format: filteredFormat,
|
|
@@ -228,6 +264,12 @@ function prepareAsymmetricKey(key, isPublic) {
|
|
|
228
264
|
throw new Error('Invalid key input');
|
|
229
265
|
}
|
|
230
266
|
function createPublicKey(key) {
|
|
267
|
+
if (typeof key === 'object' && 'key' in key && isRawFormat(key.format)) {
|
|
268
|
+
if (key.format !== 'raw-public') {
|
|
269
|
+
throw new Error(`Invalid format ${key.format} for createPublicKey — only 'raw-public' is allowed`);
|
|
270
|
+
}
|
|
271
|
+
return createPublicKeyFromRaw(key);
|
|
272
|
+
}
|
|
231
273
|
if (typeof key === 'object' && 'key' in key && key.format === 'jwk') {
|
|
232
274
|
const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
|
|
233
275
|
const keyType = handle.initJwk(key.key);
|
|
@@ -259,6 +301,12 @@ function createPublicKey(key) {
|
|
|
259
301
|
return _classes.KeyObject.createKeyObject('public', data, kFormat, kType);
|
|
260
302
|
}
|
|
261
303
|
function createPrivateKey(key) {
|
|
304
|
+
if (typeof key === 'object' && 'key' in key && isRawFormat(key.format)) {
|
|
305
|
+
if (key.format === 'raw-public') {
|
|
306
|
+
throw new Error("Invalid format 'raw-public' for createPrivateKey");
|
|
307
|
+
}
|
|
308
|
+
return createPrivateKeyFromRaw(key);
|
|
309
|
+
}
|
|
262
310
|
if (typeof key === 'object' && 'key' in key && key.format === 'jwk') {
|
|
263
311
|
const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
|
|
264
312
|
const keyType = handle.initJwk(key.key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classes","require","_generateKeyPair","_signVerify","_publicCipher","_utils","_reactNativeNitroModules","_utils2","_random","
|
|
1
|
+
{"version":3,"names":["_classes","require","_generateKeyPair","_signVerify","_publicCipher","_utils","_reactNativeNitroModules","_utils2","_random","isRawFormat","format","createPublicKeyFromRaw","input","Error","asymmetricKeyType","namedCurve","handle","NitroModules","createHybridObject","initRawPublic","toAB","key","PublicKeyObject","createPrivateKeyFromRaw","initRawSeed","initRawPrivate","PrivateKeyObject","createSecretKey","keyBuffer","KeyObject","createKeyObject","prepareAsymmetricKey","isPublic","type","exported","exportKey","KFormatType","DER","KeyEncoding","SPKI","data","PKCS8","isCryptoKey","cryptoKey","keyObject","isStringOrBuffer","isPem","includes","undefined","keyObj","filteredFormat","createPublicKey","keyType","initJwk","KeyType","PRIVATE","pubHandle","init","PUBLIC","kFormat","PEM","kType","PKCS1","createPrivateKey","SEC1","generateKeySync","options","TypeError","length","Number","isInteger","RangeError","keyBytes","keyMaterial","randomBytes","generateKey","callback","process","nextTick","err"],"sourceRoot":"../../../src","sources":["keys/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
|
13
13
|
var _classes = require("./classes");
|
|
14
14
|
var _utils = require("./utils");
|
|
15
15
|
var _utils2 = require("../utils");
|
|
16
|
+
var _constants = require("../constants");
|
|
16
17
|
function prepareKey(key, isPublic) {
|
|
17
18
|
// Already a KeyObject
|
|
18
19
|
if (key instanceof _classes.KeyObject) {
|
|
@@ -114,6 +115,12 @@ function dsaEncodingToNumber(dsaEncoding) {
|
|
|
114
115
|
if (dsaEncoding === 'ieee-p1363') return 1;
|
|
115
116
|
return undefined;
|
|
116
117
|
}
|
|
118
|
+
function getSaltLength(options) {
|
|
119
|
+
if (options?.padding === _constants.constants.RSA_PKCS1_PSS_PADDING && options?.saltLength === undefined) {
|
|
120
|
+
return _constants.constants.RSA_PSS_SALTLEN_MAX_SIGN;
|
|
121
|
+
}
|
|
122
|
+
return options?.saltLength;
|
|
123
|
+
}
|
|
117
124
|
class Sign {
|
|
118
125
|
constructor(algorithm) {
|
|
119
126
|
this.handle = _reactNativeNitroModules.NitroModules.createHybridObject('SignHandle');
|
|
@@ -132,7 +139,7 @@ class Sign {
|
|
|
132
139
|
keyObject,
|
|
133
140
|
options
|
|
134
141
|
} = prepareKey(privateKey, false);
|
|
135
|
-
const signature = this.handle.sign(keyObject.handle, options?.padding, options
|
|
142
|
+
const signature = this.handle.sign(keyObject.handle, options?.padding, getSaltLength(options), dsaEncodingToNumber(options?.dsaEncoding));
|
|
136
143
|
const buf = _reactNativeBuffer.Buffer.from(signature);
|
|
137
144
|
if (outputEncoding) {
|
|
138
145
|
return buf.toString(outputEncoding);
|
|
@@ -167,7 +174,7 @@ class Verify {
|
|
|
167
174
|
} else {
|
|
168
175
|
sigBuffer = (0, _utils2.binaryLikeToArrayBuffer)(signature);
|
|
169
176
|
}
|
|
170
|
-
return this.handle.verify(keyObject.handle, sigBuffer, options?.padding, options
|
|
177
|
+
return this.handle.verify(keyObject.handle, sigBuffer, options?.padding, getSaltLength(options), dsaEncodingToNumber(options?.dsaEncoding));
|
|
171
178
|
}
|
|
172
179
|
}
|
|
173
180
|
exports.Verify = Verify;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_classes","_utils","_utils2","prepareKey","key","isPublic","KeyObject","type","Error","keyObject","isCryptoKey","cryptoKey","isStringOrBuffer","isPem","includes","format","KFormatType","PEM","undefined","keyData","toAB","createKeyObject","keyObj","data","padding","saltLength","dsaEncoding","options","kFormat","DER","kType","KeyEncoding","PKCS8","PKCS1","SEC1","SPKI","keyType","dsaEncodingToNumber","Sign","constructor","algorithm","handle","NitroModules","createHybridObject","init","update","dataBuffer","sign","privateKey","outputEncoding","signature","buf","Buffer","from","toString","exports","Verify","verify","publicKey","signatureEncoding","sigBuffer","createSign","createVerify","callback","doSign","signer","process","nextTick","err","doVerify","verifier","result"],"sourceRoot":"../../../src","sources":["keys/signVerify.ts"],"mappings":";;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAKA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","_reactNativeNitroModules","_classes","_utils","_utils2","_constants","prepareKey","key","isPublic","KeyObject","type","Error","keyObject","isCryptoKey","cryptoKey","isStringOrBuffer","isPem","includes","format","KFormatType","PEM","undefined","keyData","toAB","createKeyObject","keyObj","data","padding","saltLength","dsaEncoding","options","kFormat","DER","kType","KeyEncoding","PKCS8","PKCS1","SEC1","SPKI","keyType","dsaEncodingToNumber","getSaltLength","constants","RSA_PKCS1_PSS_PADDING","RSA_PSS_SALTLEN_MAX_SIGN","Sign","constructor","algorithm","handle","NitroModules","createHybridObject","init","update","dataBuffer","sign","privateKey","outputEncoding","signature","buf","Buffer","from","toString","exports","Verify","verify","publicKey","signatureEncoding","sigBuffer","createSign","createVerify","callback","doSign","signer","process","nextTick","err","doVerify","verifier","result"],"sourceRoot":"../../../src","sources":["keys/signVerify.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.exportPrivateKeyRaw = exportPrivateKeyRaw;
|
|
7
|
+
exports.exportPublicKeyRaw = exportPublicKeyRaw;
|
|
6
8
|
exports.getCryptoKeyPair = getCryptoKeyPair;
|
|
7
9
|
exports.isCryptoKey = void 0;
|
|
8
10
|
exports.parseKeyEncoding = parseKeyEncoding;
|
|
@@ -14,6 +16,21 @@ const isCryptoKey = obj => {
|
|
|
14
16
|
return obj !== null && obj?.keyObject !== undefined;
|
|
15
17
|
};
|
|
16
18
|
exports.isCryptoKey = isCryptoKey;
|
|
19
|
+
function exportPublicKeyRaw(pub, pointType) {
|
|
20
|
+
if (pub.asymmetricKeyType === 'ec') {
|
|
21
|
+
return pub.handle.exportECPublicRaw(pointType === 'compressed');
|
|
22
|
+
}
|
|
23
|
+
return pub.handle.exportRawPublic();
|
|
24
|
+
}
|
|
25
|
+
function exportPrivateKeyRaw(priv, format) {
|
|
26
|
+
if (format === 'raw-seed') {
|
|
27
|
+
return priv.handle.exportRawSeed();
|
|
28
|
+
}
|
|
29
|
+
if (priv.asymmetricKeyType === 'ec') {
|
|
30
|
+
return priv.handle.exportECPrivateRaw();
|
|
31
|
+
}
|
|
32
|
+
return priv.handle.exportRawPrivate();
|
|
33
|
+
}
|
|
17
34
|
function getCryptoKeyPair(key) {
|
|
18
35
|
if ('publicKey' in key && 'privateKey' in key) return key;
|
|
19
36
|
throw new Error('Invalid CryptoKeyPair');
|
|
@@ -44,6 +61,17 @@ function parseKeyEncoding(enc, keyType, isPublic, objName) {
|
|
|
44
61
|
format,
|
|
45
62
|
type
|
|
46
63
|
} = parseKeyFormatAndType(enc, keyType, isPublic, objName);
|
|
64
|
+
if (format === 'raw-public' || format === 'raw-private' || format === 'raw-seed') {
|
|
65
|
+
if (enc.cipher != null || enc.passphrase !== undefined) {
|
|
66
|
+
throw new Error(`Incompatible key options: ${format} does not support encryption`);
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
format,
|
|
70
|
+
type,
|
|
71
|
+
cipher: undefined,
|
|
72
|
+
passphrase: undefined
|
|
73
|
+
};
|
|
74
|
+
}
|
|
47
75
|
let cipher, passphrase, encoding;
|
|
48
76
|
if (isPublic !== true) {
|
|
49
77
|
({
|
|
@@ -83,7 +111,7 @@ function option(name, objName) {
|
|
|
83
111
|
return objName === undefined ? `options.${name}` : `options.${objName}.${name}`;
|
|
84
112
|
}
|
|
85
113
|
function parseKeyFormat(formatStr, defaultFormat, optionName) {
|
|
86
|
-
if (formatStr === undefined && defaultFormat !== undefined) return defaultFormat;else if (formatStr === 'pem') return _utils.KFormatType.PEM;else if (formatStr === 'der') return _utils.KFormatType.DER;else if (formatStr === 'jwk') return _utils.KFormatType.JWK;
|
|
114
|
+
if (formatStr === undefined && defaultFormat !== undefined) return defaultFormat;else if (formatStr === 'pem') return _utils.KFormatType.PEM;else if (formatStr === 'der') return _utils.KFormatType.DER;else if (formatStr === 'jwk') return _utils.KFormatType.JWK;else if (formatStr === 'raw-public') return 'raw-public';else if (formatStr === 'raw-private') return 'raw-private';else if (formatStr === 'raw-seed') return 'raw-seed';
|
|
87
115
|
throw new Error(`Invalid key format str: ${optionName}`);
|
|
88
116
|
}
|
|
89
117
|
function parseKeyType(typeStr, required, keyType, isPublic, optionName) {
|
|
@@ -113,6 +141,36 @@ function parseKeyFormatAndType(enc, keyType, isPublic, objName) {
|
|
|
113
141
|
} = enc;
|
|
114
142
|
const isInput = keyType === undefined;
|
|
115
143
|
const format = parseKeyFormat(formatStr, isInput ? _utils.KFormatType.PEM : undefined, option('format', objName));
|
|
144
|
+
if (format === 'raw-public') {
|
|
145
|
+
if (isPublic === false) {
|
|
146
|
+
throw new Error(`Invalid format 'raw-public' for ${option('format', objName)}`);
|
|
147
|
+
}
|
|
148
|
+
if (typeStr === undefined || typeStr === 'uncompressed') {
|
|
149
|
+
return {
|
|
150
|
+
format,
|
|
151
|
+
type: 'uncompressed'
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
if (typeStr === 'compressed') {
|
|
155
|
+
return {
|
|
156
|
+
format,
|
|
157
|
+
type: 'compressed'
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
throw new Error(`Invalid ${option('type', objName)} for raw-public: ${typeStr}`);
|
|
161
|
+
}
|
|
162
|
+
if (format === 'raw-private' || format === 'raw-seed') {
|
|
163
|
+
if (isPublic === true) {
|
|
164
|
+
throw new Error(`Invalid format '${format}' for ${option('format', objName)}`);
|
|
165
|
+
}
|
|
166
|
+
if (typeStr !== undefined) {
|
|
167
|
+
throw new Error(`Invalid ${option('type', objName)} for ${format}: ${typeStr}`);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
format,
|
|
171
|
+
type: undefined
|
|
172
|
+
};
|
|
173
|
+
}
|
|
116
174
|
const isRequired = (!isInput || format === _utils.KFormatType.DER) && format !== _utils.KFormatType.JWK;
|
|
117
175
|
const type = parseKeyType(typeStr, isRequired, keyType, isPublic, option('type', objName));
|
|
118
176
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","isCryptoKey","obj","keyObject","undefined","exports","getCryptoKeyPair","key","Error","parsePublicKeyEncoding","enc","keyType","objName","parseKeyEncoding","parsePrivateKeyEncoding","isPublic","isInput","
|
|
1
|
+
{"version":3,"names":["_utils","require","isCryptoKey","obj","keyObject","undefined","exports","exportPublicKeyRaw","pub","pointType","asymmetricKeyType","handle","exportECPublicRaw","exportRawPublic","exportPrivateKeyRaw","priv","format","exportRawSeed","exportECPrivateRaw","exportRawPrivate","getCryptoKeyPair","key","Error","parsePublicKeyEncoding","enc","keyType","objName","parseKeyEncoding","parsePrivateKeyEncoding","isPublic","isInput","type","parseKeyFormatAndType","cipher","passphrase","encoding","option","KFormatType","DER","KeyEncoding","PKCS1","SEC1","encodingNames","isStringOrBuffer","binaryLikeToArrayBuffer","PKCS8","SPKI","name","parseKeyFormat","formatStr","defaultFormat","optionName","PEM","JWK","parseKeyType","typeStr","required","isRequired"],"sourceRoot":"../../../src","sources":["keys/utils.ts"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA;AACO,MAAMC,WAAW,GAAIC,GAAQ,IAAc;EAChD,OAAOA,GAAG,KAAK,IAAI,IAAIA,GAAG,EAAEC,SAAS,KAAKC,SAAS;AACrD,CAAC;AAACC,OAAA,CAAAJ,WAAA,GAAAA,WAAA;AAEK,SAASK,kBAAkBA,CAChCC,GAAoB,EACpBC,SAAoD,EACvC;EACb,IAAID,GAAG,CAACE,iBAAiB,KAAK,IAAI,EAAE;IAClC,OAAOF,GAAG,CAACG,MAAM,CAACC,iBAAiB,CAACH,SAAS,KAAK,YAAY,CAAC;EACjE;EACA,OAAOD,GAAG,CAACG,MAAM,CAACE,eAAe,CAAC,CAAC;AACrC;AAEO,SAASC,mBAAmBA,CACjCC,IAAsB,EACtBC,MAAkC,EACrB;EACb,IAAIA,MAAM,KAAK,UAAU,EAAE;IACzB,OAAOD,IAAI,CAACJ,MAAM,CAACM,aAAa,CAAC,CAAC;EACpC;EACA,IAAIF,IAAI,CAACL,iBAAiB,KAAK,IAAI,EAAE;IACnC,OAAOK,IAAI,CAACJ,MAAM,CAACO,kBAAkB,CAAC,CAAC;EACzC;EACA,OAAOH,IAAI,CAACJ,MAAM,CAACQ,gBAAgB,CAAC,CAAC;AACvC;AAEO,SAASC,gBAAgBA,CAC9BC,GAA8B,EACf;EACf,IAAI,WAAW,IAAIA,GAAG,IAAI,YAAY,IAAIA,GAAG,EAAE,OAAOA,GAAG;EACzD,MAAM,IAAIC,KAAK,CAAC,uBAAuB,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CACpCC,GAAoB,EACpBC,OAA2B,EAC3BC,OAAgB,EAChB;EACA,OAAOC,gBAAgB,CAACH,GAAG,EAAEC,OAAO,EAAEA,OAAO,GAAG,IAAI,GAAGpB,SAAS,EAAEqB,OAAO,CAAC;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,uBAAuBA,CACrCJ,GAAoB,EACpBC,OAA2B,EAC3BC,OAAgB,EAChB;EACA,OAAOC,gBAAgB,CAACH,GAAG,EAAEC,OAAO,EAAE,KAAK,EAAEC,OAAO,CAAC;AACvD;AAEO,SAASC,gBAAgBA,CAC9BH,GAAoB,EACpBC,OAAgB,EAChBI,QAAkB,EAClBH,OAAgB,EAChB;EACA;;EAEA,MAAMI,OAAO,GAAGL,OAAO,KAAKpB,SAAS;EAErC,MAAM;IAAEW,MAAM;IAAEe;EAAK,CAAC,GAAGC,qBAAqB,CAC5CR,GAAG,EACHC,OAAO,EACPI,QAAQ,EACRH,OACF,CAAC;EAED,IACEV,MAAM,KAAK,YAAY,IACvBA,MAAM,KAAK,aAAa,IACxBA,MAAM,KAAK,UAAU,EACrB;IACA,IAAIQ,GAAG,CAACS,MAAM,IAAI,IAAI,IAAIT,GAAG,CAACU,UAAU,KAAK7B,SAAS,EAAE;MACtD,MAAM,IAAIiB,KAAK,CACb,6BAA6BN,MAAM,8BACrC,CAAC;IACH;IACA,OAAO;MAAEA,MAAM;MAAEe,IAAI;MAAEE,MAAM,EAAE5B,SAAS;MAAE6B,UAAU,EAAE7B;IAAU,CAAC;EACnE;EAEA,IAAI4B,MAAM,EAAEC,UAAU,EAAEC,QAAQ;EAChC,IAAIN,QAAQ,KAAK,IAAI,EAAE;IACrB,CAAC;MAAEI,MAAM;MAAEC,UAAU;MAAEC;IAAS,CAAC,GAAGX,GAAG;IAEvC,IAAI,CAACM,OAAO,EAAE;MACZ,IAAIG,MAAM,IAAI,IAAI,EAAE;QAClB,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAC5B,MAAM,IAAIX,KAAK,CACb,oBAAoBc,MAAM,CAAC,QAAQ,EAAEV,OAAO,CAAC,KAAKO,MAAM,EAC1D,CAAC;QACH,IACEjB,MAAM,KAAKqB,kBAAW,CAACC,GAAG,KACzBP,IAAI,KAAKQ,kBAAW,CAACC,KAAK,IAAIT,IAAI,KAAKQ,kBAAW,CAACE,IAAI,CAAC,EACzD;UACA,MAAM,IAAInB,KAAK,CACb,4BAA4BoB,aAAa,CAACX,IAAI,CAAgB,8BAChE,CAAC;QACH;MACF,CAAC,MAAM,IAAIG,UAAU,KAAK7B,SAAS,EAAE;QACnC,MAAM,IAAIiB,KAAK,CACb,oBAAoBc,MAAM,CAAC,QAAQ,EAAEV,OAAO,CAAC,KAAKO,MAAM,EAC1D,CAAC;MACH;IACF;IAEA,IACGH,OAAO,IAAII,UAAU,KAAK7B,SAAS,IAAI,CAAC,IAAAsC,uBAAgB,EAACT,UAAU,CAAC,IACpE,CAACJ,OAAO,IAAIG,MAAM,IAAI,IAAI,IAAI,CAAC,IAAAU,uBAAgB,EAACT,UAAU,CAAE,EAC7D;MACA,MAAM,IAAIZ,KAAK,CACb,0BAA0Bc,MAAM,CAAC,YAAY,EAAEV,OAAO,CAAC,KAAKQ,UAAU,EACxE,CAAC;IACH;EACF;EAEA,IAAIA,UAAU,KAAK7B,SAAS,EAC1B6B,UAAU,GAAG,IAAAU,8BAAuB,EAACV,UAAU,EAAEC,QAAQ,CAAC;EAE5D,OAAO;IAAEnB,MAAM;IAAEe,IAAI;IAAEE,MAAM;IAAEC;EAAW,CAAC;AAC7C;AAEA,MAAMQ,aAAa,GAAG;EACpB,CAACH,kBAAW,CAACC,KAAK,GAAG,OAAO;EAC5B,CAACD,kBAAW,CAACM,KAAK,GAAG,OAAO;EAC5B,CAACN,kBAAW,CAACO,IAAI,GAAG,MAAM;EAC1B,CAACP,kBAAW,CAACE,IAAI,GAAG;AACtB,CAAC;AAED,SAASL,MAAMA,CAACW,IAAY,EAAErB,OAAgB,EAAE;EAC9C,OAAOA,OAAO,KAAKrB,SAAS,GACxB,WAAW0C,IAAI,EAAE,GACjB,WAAWrB,OAAO,IAAIqB,IAAI,EAAE;AAClC;AAEA,SAASC,cAAcA,CACrBC,SAAkB,EAClBC,aAA2B,EAC3BC,UAAmB,EACsC;EACzD,IAAIF,SAAS,KAAK5C,SAAS,IAAI6C,aAAa,KAAK7C,SAAS,EACxD,OAAO6C,aAAa,CAAC,KAClB,IAAID,SAAS,KAAK,KAAK,EAAE,OAAOZ,kBAAW,CAACe,GAAG,CAAC,KAChD,IAAIH,SAAS,KAAK,KAAK,EAAE,OAAOZ,kBAAW,CAACC,GAAG,CAAC,KAChD,IAAIW,SAAS,KAAK,KAAK,EAAE,OAAOZ,kBAAW,CAACgB,GAAG,CAAC,KAChD,IAAIJ,SAAS,KAAK,YAAY,EAAE,OAAO,YAAY,CAAC,KACpD,IAAIA,SAAS,KAAK,aAAa,EAAE,OAAO,aAAa,CAAC,KACtD,IAAIA,SAAS,KAAK,UAAU,EAAE,OAAO,UAAU;EACpD,MAAM,IAAI3B,KAAK,CAAC,2BAA2B6B,UAAU,EAAE,CAAC;AAC1D;AAEA,SAASG,YAAYA,CACnBC,OAA2B,EAC3BC,QAAiB,EACjB/B,OAA2B,EAC3BI,QAA6B,EAC7BsB,UAAkB,EACO;EACzB,IAAII,OAAO,KAAKlD,SAAS,IAAI,CAACmD,QAAQ,EAAE;IACtC,OAAOnD,SAAS;EAClB,CAAC,MAAM,IAAIkD,OAAO,KAAK,OAAO,EAAE;IAC9B,IAAI9B,OAAO,KAAKpB,SAAS,IAAIoB,OAAO,KAAK,KAAK,EAAE;MAC9C,MAAM,IAAIH,KAAK,CACb,oCAAoCiC,OAAO,gCAC7C,CAAC;IACH;IACA,OAAOhB,kBAAW,CAACC,KAAK;EAC1B,CAAC,MAAM,IAAIe,OAAO,KAAK,MAAM,IAAI1B,QAAQ,KAAK,KAAK,EAAE;IACnD,OAAOU,kBAAW,CAACO,IAAI;EACzB,CAAC,MAAM,IAAIS,OAAO,KAAK,OAAO,IAAI1B,QAAQ,KAAK,IAAI,EAAE;IACnD,OAAOU,kBAAW,CAACM,KAAK;EAC1B,CAAC,MAAM,IAAIU,OAAO,KAAK,MAAM,IAAI1B,QAAQ,KAAK,IAAI,EAAE;IAClD,IAAIJ,OAAO,KAAKpB,SAAS,IAAIoB,OAAO,KAAK,IAAI,EAAE;MAC7C,MAAM,IAAIH,KAAK,CACb,4BAA4BiC,OAAO,+BACrC,CAAC;IACH;IACA,OAAOhB,kBAAW,CAACE,IAAI;EACzB;EAEA,MAAM,IAAInB,KAAK,CAAC,kBAAkB6B,UAAU,MAAMI,OAAO,EAAE,CAAC;AAC9D;AAEA,SAASvB,qBAAqBA,CAC5BR,GAAoB,EACpBC,OAAgB,EAChBI,QAAkB,EAClBH,OAAgB,EAIhB;EACA,MAAM;IAAEV,MAAM,EAAEiC,SAAS;IAAElB,IAAI,EAAEwB;EAAQ,CAAC,GAAG/B,GAAG;EAEhD,MAAMM,OAAO,GAAGL,OAAO,KAAKpB,SAAS;EACrC,MAAMW,MAAM,GAAGgC,cAAc,CAC3BC,SAAS,EACTnB,OAAO,GAAGO,kBAAW,CAACe,GAAG,GAAG/C,SAAS,EACrC+B,MAAM,CAAC,QAAQ,EAAEV,OAAO,CAC1B,CAAC;EAED,IAAIV,MAAM,KAAK,YAAY,EAAE;IAC3B,IAAIa,QAAQ,KAAK,KAAK,EAAE;MACtB,MAAM,IAAIP,KAAK,CACb,mCAAmCc,MAAM,CAAC,QAAQ,EAAEV,OAAO,CAAC,EAC9D,CAAC;IACH;IACA,IAAI6B,OAAO,KAAKlD,SAAS,IAAIkD,OAAO,KAAK,cAAc,EAAE;MACvD,OAAO;QAAEvC,MAAM;QAAEe,IAAI,EAAE;MAAe,CAAC;IACzC;IACA,IAAIwB,OAAO,KAAK,YAAY,EAAE;MAC5B,OAAO;QAAEvC,MAAM;QAAEe,IAAI,EAAE;MAAa,CAAC;IACvC;IACA,MAAM,IAAIT,KAAK,CACb,WAAWc,MAAM,CAAC,MAAM,EAAEV,OAAO,CAAC,oBAAoB6B,OAAO,EAC/D,CAAC;EACH;EAEA,IAAIvC,MAAM,KAAK,aAAa,IAAIA,MAAM,KAAK,UAAU,EAAE;IACrD,IAAIa,QAAQ,KAAK,IAAI,EAAE;MACrB,MAAM,IAAIP,KAAK,CACb,mBAAmBN,MAAM,SAASoB,MAAM,CAAC,QAAQ,EAAEV,OAAO,CAAC,EAC7D,CAAC;IACH;IACA,IAAI6B,OAAO,KAAKlD,SAAS,EAAE;MACzB,MAAM,IAAIiB,KAAK,CACb,WAAWc,MAAM,CAAC,MAAM,EAAEV,OAAO,CAAC,QAAQV,MAAM,KAAKuC,OAAO,EAC9D,CAAC;IACH;IACA,OAAO;MAAEvC,MAAM;MAAEe,IAAI,EAAE1B;IAAU,CAAC;EACpC;EAEA,MAAMoD,UAAU,GACd,CAAC,CAAC3B,OAAO,IAAId,MAAM,KAAKqB,kBAAW,CAACC,GAAG,KAAKtB,MAAM,KAAKqB,kBAAW,CAACgB,GAAG;EAExE,MAAMtB,IAAI,GAAGuB,YAAY,CACvBC,OAAO,EACPE,UAAU,EACVhC,OAAO,EACPI,QAAQ,EACRO,MAAM,CAAC,MAAM,EAAEV,OAAO,CACxB,CAAC;EACD,OAAO;IAAEV,MAAM;IAAEe;EAAK,CAAC;AACzB","ignoreList":[]}
|
package/lib/commonjs/random.js
CHANGED
|
@@ -10,6 +10,7 @@ exports.randomFill = randomFill;
|
|
|
10
10
|
exports.randomFillSync = randomFillSync;
|
|
11
11
|
exports.randomInt = randomInt;
|
|
12
12
|
exports.randomUUID = randomUUID;
|
|
13
|
+
exports.randomUUIDv7 = randomUUIDv7;
|
|
13
14
|
exports.rng = void 0;
|
|
14
15
|
var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
|
|
15
16
|
var _utils = require("./utils");
|
|
@@ -210,6 +211,16 @@ function asyncRefillRandomIntCache() {
|
|
|
210
211
|
// not allowed to exceed 65536 bytes, and can only
|
|
211
212
|
// be an integer-type TypedArray.
|
|
212
213
|
|
|
214
|
+
// WebCrypto §getRandomValues only accepts integer-typed views. Float and
|
|
215
|
+
// non-TypedArray ABVs (DataView) must be rejected with a TypeMismatchError
|
|
216
|
+
// DOMException — see https://w3c.github.io/webcrypto/#Crypto-method-getRandomValues
|
|
217
|
+
const INTEGER_TYPED_ARRAY_TAGS = new Set(['Int8Array', 'Int16Array', 'Int32Array', 'Uint8Array', 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'BigInt64Array', 'BigUint64Array']);
|
|
218
|
+
function isIntegerTypedArray(value) {
|
|
219
|
+
if (!ArrayBuffer.isView(value)) return false;
|
|
220
|
+
const tag = value[Symbol.toStringTag];
|
|
221
|
+
return tag !== undefined && INTEGER_TYPED_ARRAY_TAGS.has(tag);
|
|
222
|
+
}
|
|
223
|
+
|
|
213
224
|
/**
|
|
214
225
|
* Fills the provided typed array with cryptographically strong random values.
|
|
215
226
|
*
|
|
@@ -217,8 +228,21 @@ function asyncRefillRandomIntCache() {
|
|
|
217
228
|
* @returns The filled data
|
|
218
229
|
*/
|
|
219
230
|
function getRandomValues(data) {
|
|
231
|
+
// WebIDL BufferSource conversion (TypeError) must run before the
|
|
232
|
+
// WebCrypto-specific integer-type / size checks (TypeMismatchError /
|
|
233
|
+
// QuotaExceededError). `randomFillSync` below also rejects SAB via
|
|
234
|
+
// `abvToArrayBuffer`, but by then we'd already have thrown the wrong
|
|
235
|
+
// error type for a non-integer SAB-view, so the explicit early call is
|
|
236
|
+
// load-bearing for spec compliance — not redundant.
|
|
237
|
+
(0, _utils.rejectSharedArrayBuffer)(data);
|
|
238
|
+
if (!isIntegerTypedArray(data)) {
|
|
239
|
+
throw (0, _utils.lazyDOMException)('The data argument must be an integer-type TypedArray', 'TypeMismatchError');
|
|
240
|
+
}
|
|
220
241
|
if (data.byteLength > 65536) {
|
|
221
|
-
throw new
|
|
242
|
+
throw new _utils.QuotaExceededError('The requested length exceeds 65,536 bytes', {
|
|
243
|
+
quota: 65536,
|
|
244
|
+
requested: data.byteLength
|
|
245
|
+
});
|
|
222
246
|
}
|
|
223
247
|
randomFillSync(data, 0);
|
|
224
248
|
return data;
|
|
@@ -227,16 +251,46 @@ const byteToHex = [];
|
|
|
227
251
|
for (let i = 0; i < 256; ++i) {
|
|
228
252
|
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
229
253
|
}
|
|
254
|
+
function validateRandomUUIDOptions(options) {
|
|
255
|
+
if (options === undefined) return;
|
|
256
|
+
if (typeof options !== 'object' || options === null) {
|
|
257
|
+
throw new TypeError('options must be an object');
|
|
258
|
+
}
|
|
259
|
+
if (options.disableEntropyCache !== undefined && typeof options.disableEntropyCache !== 'boolean') {
|
|
260
|
+
throw new TypeError('options.disableEntropyCache must be a boolean');
|
|
261
|
+
}
|
|
262
|
+
}
|
|
230
263
|
|
|
231
|
-
//
|
|
232
|
-
function
|
|
233
|
-
|
|
234
|
-
const buffer = new _reactNativeBuffer.Buffer(size);
|
|
235
|
-
randomFillSync(buffer, 0, size);
|
|
236
|
-
|
|
237
|
-
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
|
238
|
-
buffer[6] = buffer[6] & 0x0f | 0x40;
|
|
264
|
+
// RFC 9562 variant 10xx is shared by v4 and v7.
|
|
265
|
+
function serializeUUID(buffer, version) {
|
|
266
|
+
buffer[6] = buffer[6] & 0x0f | version << 4;
|
|
239
267
|
buffer[8] = buffer[8] & 0x3f | 0x80;
|
|
240
268
|
return (byteToHex[buffer[0]] + byteToHex[buffer[1]] + byteToHex[buffer[2]] + byteToHex[buffer[3]] + '-' + byteToHex[buffer[4]] + byteToHex[buffer[5]] + '-' + byteToHex[buffer[6]] + byteToHex[buffer[7]] + '-' + byteToHex[buffer[8]] + byteToHex[buffer[9]] + '-' + byteToHex[buffer[10]] + byteToHex[buffer[11]] + byteToHex[buffer[12]] + byteToHex[buffer[13]] + byteToHex[buffer[14]] + byteToHex[buffer[15]]).toLowerCase();
|
|
241
269
|
}
|
|
270
|
+
|
|
271
|
+
// RFC 9562 §5.4 — random UUID (v4).
|
|
272
|
+
function randomUUID(options) {
|
|
273
|
+
validateRandomUUIDOptions(options);
|
|
274
|
+
const buffer = new _reactNativeBuffer.Buffer(16);
|
|
275
|
+
randomFillSync(buffer, 0, 16);
|
|
276
|
+
return serializeUUID(buffer, 4);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// RFC 9562 §5.7 — Unix-ms timestamped UUID (v7).
|
|
280
|
+
// Layout: 48-bit big-endian Unix-ms timestamp | 4-bit version (7) |
|
|
281
|
+
// 12 bits random | 2-bit variant (10) | 62 bits random.
|
|
282
|
+
function randomUUIDv7(options) {
|
|
283
|
+
validateRandomUUIDOptions(options);
|
|
284
|
+
const buffer = new _reactNativeBuffer.Buffer(16);
|
|
285
|
+
randomFillSync(buffer, 6, 10);
|
|
286
|
+
const now = Date.now();
|
|
287
|
+
const msb = Math.floor(now / 0x100000000);
|
|
288
|
+
buffer[0] = msb >>> 8 & 0xff;
|
|
289
|
+
buffer[1] = msb & 0xff;
|
|
290
|
+
buffer[2] = now >>> 24 & 0xff;
|
|
291
|
+
buffer[3] = now >>> 16 & 0xff;
|
|
292
|
+
buffer[4] = now >>> 8 & 0xff;
|
|
293
|
+
buffer[5] = now & 0xff;
|
|
294
|
+
return serializeUUID(buffer, 7);
|
|
295
|
+
}
|
|
242
296
|
//# sourceMappingURL=random.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeBuffer","require","_utils","_reactNativeNitroModules","random","getNative","NitroModules","createHybridObject","randomFill","buffer","rest","length","Error","callback","viewOffset","ArrayBuffer","isView","byteOffset","viewLength","byteLength","offset","size","ab","abvToArrayBuffer","start","then","res","Uint8Array","set","e","randomFillSync","arrayBuffer","randomBytes","buf","Buffer","undefined","error","from","rng","exports","pseudoRandomBytes","prng","RAND_MAX","randomCache","randomCacheOffset","asyncCacheFillInProgress","asyncCachePendingTasks","randomInt","arg1","arg2","max","min","minNotSpecified","TypeError","isSync","Number","isSafeInteger","range","randLimit","x","readUIntBE","n","process","nextTick","push","asyncRefillRandomIntCache","err","tasks","errorReceiver","shift","splice","forEach","task","getRandomValues","data","byteToHex","i","toString","slice","
|
|
1
|
+
{"version":3,"names":["_reactNativeBuffer","require","_utils","_reactNativeNitroModules","random","getNative","NitroModules","createHybridObject","randomFill","buffer","rest","length","Error","callback","viewOffset","ArrayBuffer","isView","byteOffset","viewLength","byteLength","offset","size","ab","abvToArrayBuffer","start","then","res","Uint8Array","set","e","randomFillSync","arrayBuffer","randomBytes","buf","Buffer","undefined","error","from","rng","exports","pseudoRandomBytes","prng","RAND_MAX","randomCache","randomCacheOffset","asyncCacheFillInProgress","asyncCachePendingTasks","randomInt","arg1","arg2","max","min","minNotSpecified","TypeError","isSync","Number","isSafeInteger","range","randLimit","x","readUIntBE","n","process","nextTick","push","asyncRefillRandomIntCache","err","tasks","errorReceiver","shift","splice","forEach","task","INTEGER_TYPED_ARRAY_TAGS","Set","isIntegerTypedArray","value","tag","Symbol","toStringTag","has","getRandomValues","data","rejectSharedArrayBuffer","lazyDOMException","QuotaExceededError","quota","requested","byteToHex","i","toString","slice","validateRandomUUIDOptions","options","disableEntropyCache","serializeUUID","version","toLowerCase","randomUUID","randomUUIDv7","now","Date","msb","Math","floor"],"sourceRoot":"../../src","sources":["random.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/rsa.js
CHANGED
|
@@ -168,6 +168,9 @@ function rsa_formatKeyPairOutput(rsa, encoding) {
|
|
|
168
168
|
const priv = _classes.KeyObject.createKeyObject('private', privateKeyData);
|
|
169
169
|
let publicKey;
|
|
170
170
|
let privateKey;
|
|
171
|
+
if (publicFormat === 'raw-public' || privateFormat === 'raw-private' || privateFormat === 'raw-seed') {
|
|
172
|
+
throw new Error('Raw key formats are not supported for RSA keys');
|
|
173
|
+
}
|
|
171
174
|
if (publicFormat === -1) {
|
|
172
175
|
publicKey = pub;
|
|
173
176
|
} else {
|
package/lib/commonjs/rsa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","Rsa","constructor","modulusLength","publicExponent","hashAlgorithm","native","NitroModules","createHybridObject","setModulusLength","setPublicExponent","buffer","slice","byteOffset","byteLength","setHashAlgorithm","generateKeyPair","publicKey","getPublicKey","privateKey","getPrivateKey","generateKeyPairSync","exports","RSA_MIN_MODULUS_LENGTH","rsa_generateKeyPair","algorithm","extractable","keyUsages","name","hash","lazyDOMException","length","hashName","normalizedHash","normalizeHashName","hasAnyNotIn","publicUsages","privateUsages","getUsagesUnion","rsa","keyAlgorithm","publicKeyData","pub","KeyObject","createKeyObject","CryptoKey","privateKeyData","priv","rsa_prepareKeyGenParams","_type","options","Error","RangeError","pubExp","pubExpBytes","Uint8Array","rsa_formatKeyPairOutput","encoding","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","format","KFormatType","PEM","DER","keyEncoding","KeyEncoding","SPKI","PKCS1","exported","handle","exportKey","Buffer","from","toString","PKCS8","rsa_generateKeyPairNode","type","rsa_generateKeyPairNodeSync"],"sourceRoot":"../../src","sources":["rsa.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","Rsa","constructor","modulusLength","publicExponent","hashAlgorithm","native","NitroModules","createHybridObject","setModulusLength","setPublicExponent","buffer","slice","byteOffset","byteLength","setHashAlgorithm","generateKeyPair","publicKey","getPublicKey","privateKey","getPrivateKey","generateKeyPairSync","exports","RSA_MIN_MODULUS_LENGTH","rsa_generateKeyPair","algorithm","extractable","keyUsages","name","hash","lazyDOMException","length","hashName","normalizedHash","normalizeHashName","hasAnyNotIn","publicUsages","privateUsages","getUsagesUnion","rsa","keyAlgorithm","publicKeyData","pub","KeyObject","createKeyObject","CryptoKey","privateKeyData","priv","rsa_prepareKeyGenParams","_type","options","Error","RangeError","pubExp","pubExpBytes","Uint8Array","rsa_formatKeyPairOutput","encoding","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","format","KFormatType","PEM","DER","keyEncoding","KeyEncoding","SPKI","PKCS1","exported","handle","exportKey","Buffer","from","toString","PKCS8","rsa_generateKeyPairNode","type","rsa_generateKeyPairNodeSync"],"sourceRoot":"../../src","sources":["rsa.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SlhDsa = exports.SLH_DSA_VARIANTS = void 0;
|
|
7
|
+
exports.slhdsa_generateKeyPairWebCrypto = slhdsa_generateKeyPairWebCrypto;
|
|
8
|
+
var _reactNativeNitroModules = require("react-native-nitro-modules");
|
|
9
|
+
var _classes = require("./keys/classes");
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
const SLH_DSA_VARIANTS = exports.SLH_DSA_VARIANTS = ['SLH-DSA-SHA2-128s', 'SLH-DSA-SHA2-128f', 'SLH-DSA-SHA2-192s', 'SLH-DSA-SHA2-192f', 'SLH-DSA-SHA2-256s', 'SLH-DSA-SHA2-256f', 'SLH-DSA-SHAKE-128s', 'SLH-DSA-SHAKE-128f', 'SLH-DSA-SHAKE-192s', 'SLH-DSA-SHAKE-192f', 'SLH-DSA-SHAKE-256s', 'SLH-DSA-SHAKE-256f'];
|
|
12
|
+
class SlhDsa {
|
|
13
|
+
constructor(variant) {
|
|
14
|
+
this.variant = variant;
|
|
15
|
+
this.native = _reactNativeNitroModules.NitroModules.createHybridObject('SlhDsaKeyPair');
|
|
16
|
+
this.native.setVariant(variant);
|
|
17
|
+
}
|
|
18
|
+
async generateKeyPair() {
|
|
19
|
+
await this.native.generateKeyPair(_utils.KFormatType.DER, _utils.KeyEncoding.SPKI, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
|
|
20
|
+
}
|
|
21
|
+
generateKeyPairSync() {
|
|
22
|
+
this.native.generateKeyPairSync(_utils.KFormatType.DER, _utils.KeyEncoding.SPKI, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
|
|
23
|
+
}
|
|
24
|
+
getPublicKey() {
|
|
25
|
+
return this.native.getPublicKey();
|
|
26
|
+
}
|
|
27
|
+
getPrivateKey() {
|
|
28
|
+
return this.native.getPrivateKey();
|
|
29
|
+
}
|
|
30
|
+
async sign(message) {
|
|
31
|
+
return this.native.sign(message);
|
|
32
|
+
}
|
|
33
|
+
signSync(message) {
|
|
34
|
+
return this.native.signSync(message);
|
|
35
|
+
}
|
|
36
|
+
async verify(signature, message) {
|
|
37
|
+
return this.native.verify(signature, message);
|
|
38
|
+
}
|
|
39
|
+
verifySync(signature, message) {
|
|
40
|
+
return this.native.verifySync(signature, message);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.SlhDsa = SlhDsa;
|
|
44
|
+
async function slhdsa_generateKeyPairWebCrypto(variant, extractable, keyUsages) {
|
|
45
|
+
if ((0, _utils.hasAnyNotIn)(keyUsages, ['sign', 'verify'])) {
|
|
46
|
+
throw (0, _utils.lazyDOMException)(`Unsupported key usage for ${variant}`, 'SyntaxError');
|
|
47
|
+
}
|
|
48
|
+
const publicUsages = (0, _utils.getUsagesUnion)(keyUsages, 'verify');
|
|
49
|
+
const privateUsages = (0, _utils.getUsagesUnion)(keyUsages, 'sign');
|
|
50
|
+
if (privateUsages.length === 0) {
|
|
51
|
+
throw (0, _utils.lazyDOMException)('Usages cannot be empty', 'SyntaxError');
|
|
52
|
+
}
|
|
53
|
+
const slhdsa = new SlhDsa(variant);
|
|
54
|
+
await slhdsa.generateKeyPair();
|
|
55
|
+
const publicKeyData = slhdsa.getPublicKey();
|
|
56
|
+
const privateKeyData = slhdsa.getPrivateKey();
|
|
57
|
+
const pub = _classes.KeyObject.createKeyObject('public', publicKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
|
|
58
|
+
const publicKey = new _classes.CryptoKey(pub, {
|
|
59
|
+
name: variant
|
|
60
|
+
}, publicUsages, true);
|
|
61
|
+
const priv = _classes.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
|
|
62
|
+
const privateKey = new _classes.CryptoKey(priv, {
|
|
63
|
+
name: variant
|
|
64
|
+
}, privateUsages, extractable);
|
|
65
|
+
return {
|
|
66
|
+
publicKey,
|
|
67
|
+
privateKey
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=slhdsa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","_classes","_utils","SLH_DSA_VARIANTS","exports","SlhDsa","constructor","variant","native","NitroModules","createHybridObject","setVariant","generateKeyPair","KFormatType","DER","KeyEncoding","SPKI","PKCS8","generateKeyPairSync","getPublicKey","getPrivateKey","sign","message","signSync","verify","signature","verifySync","slhdsa_generateKeyPairWebCrypto","extractable","keyUsages","hasAnyNotIn","lazyDOMException","publicUsages","getUsagesUnion","privateUsages","length","slhdsa","publicKeyData","privateKeyData","pub","KeyObject","createKeyObject","publicKey","CryptoKey","name","priv","privateKey"],"sourceRoot":"../../src","sources":["slhdsa.ts"],"mappings":"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","ignoreList":[]}
|