react-native-quick-crypto 1.0.17 → 1.0.18

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.
@@ -13,6 +13,8 @@
13
13
  #include <stdexcept>
14
14
  #include <string>
15
15
 
16
+ #include "../sign/SignUtils.hpp"
17
+
16
18
  // OpenSSL EC parameter encoding constants
17
19
  #ifndef OPENSSL_EC_EXPLICIT_CURVE
18
20
  #define OPENSSL_EC_EXPLICIT_CURVE 0x000
@@ -24,6 +26,8 @@
24
26
  #include "HybridEcKeyPair.hpp"
25
27
  #include "QuickCryptoUtils.hpp"
26
28
 
29
+ using margelo::nitro::NativeArrayBuffer;
30
+
27
31
  namespace margelo::nitro::crypto {
28
32
 
29
33
  std::shared_ptr<Promise<void>> HybridEcKeyPair::generateKeyPair() {
@@ -372,8 +376,18 @@ std::shared_ptr<ArrayBuffer> HybridEcKeyPair::sign(const std::shared_ptr<ArrayBu
372
376
  // Resize to actual signature length
373
377
  signature.resize(sig_len);
374
378
 
375
- // Convert to ArrayBuffer
376
- return ToNativeArrayBuffer(std::string(signature.begin(), signature.end()));
379
+ // Web Crypto API requires IEEE P1363 format for ECDSA signatures
380
+ unsigned int n = getBytesOfRS(this->pkey);
381
+ if (n == 0) {
382
+ throw std::runtime_error("Failed to determine EC key order size for P1363 conversion");
383
+ }
384
+ auto p1363_buf = std::make_unique<uint8_t[]>(2 * n);
385
+ std::memset(p1363_buf.get(), 0, 2 * n);
386
+ if (!convertSignatureToP1363(signature.data(), sig_len, p1363_buf.get(), n)) {
387
+ throw std::runtime_error("Failed to convert ECDSA signature from DER to P1363 format");
388
+ }
389
+ uint8_t* raw_ptr = p1363_buf.get();
390
+ return std::make_shared<NativeArrayBuffer>(p1363_buf.release(), 2 * n, [raw_ptr]() { delete[] raw_ptr; });
377
391
  }
378
392
 
379
393
  bool HybridEcKeyPair::verify(const std::shared_ptr<ArrayBuffer>& data, const std::shared_ptr<ArrayBuffer>& signature,
@@ -410,8 +424,24 @@ bool HybridEcKeyPair::verify(const std::shared_ptr<ArrayBuffer>& data, const std
410
424
  throw std::runtime_error("Failed to update ECDSA verification with data");
411
425
  }
412
426
 
413
- // Verify signature
414
- int result = EVP_DigestVerifyFinal(md_ctx.get(), static_cast<const unsigned char*>(signature->data()), signature->size());
427
+ // Web Crypto API passes IEEE P1363 format, OpenSSL expects DER
428
+ const unsigned char* sig_data = static_cast<const unsigned char*>(signature->data());
429
+ size_t sig_len = signature->size();
430
+ std::unique_ptr<uint8_t[]> der_sig_buf;
431
+
432
+ unsigned int n = getBytesOfRS(this->pkey);
433
+ if (n == 0) {
434
+ throw std::runtime_error("Failed to determine EC key order size for DER conversion");
435
+ }
436
+ size_t der_len = 0;
437
+ der_sig_buf = convertSignatureToDER(sig_data, sig_len, n, &der_len);
438
+ if (!der_sig_buf) {
439
+ throw std::runtime_error("Failed to convert ECDSA signature from P1363 to DER format");
440
+ }
441
+ sig_data = der_sig_buf.get();
442
+ sig_len = der_len;
443
+
444
+ int result = EVP_DigestVerifyFinal(md_ctx.get(), sig_data, sig_len);
415
445
 
416
446
  if (result < 0) {
417
447
  throw std::runtime_error("ECDSA verification failed with error");
@@ -34,9 +34,11 @@ class Ed {
34
34
  * @returns `Buffer` if no callback, or `void` if callback is provided
35
35
  */
36
36
  diffieHellman(options, callback) {
37
- // extract the private and public keys as ArrayBuffers
38
- const privateKey = (0, _utils.binaryLikeToArrayBuffer)(options.privateKey);
39
- const publicKey = (0, _utils.binaryLikeToArrayBuffer)(options.publicKey);
37
+ // extract raw key bytes from KeyObject instances
38
+ const privKeyObj = options.privateKey;
39
+ const pubKeyObj = options.publicKey;
40
+ const privateKey = privKeyObj.handle.exportKey();
41
+ const publicKey = pubKeyObj.handle.exportKey();
40
42
  try {
41
43
  const ret = this.native.diffieHellman(privateKey, publicKey);
42
44
  if (!ret) {
@@ -109,51 +111,82 @@ function diffieHellman(options, callback) {
109
111
  const ed = new Ed(type, {});
110
112
  return ed.diffieHellman(options, callback);
111
113
  }
114
+ function ed_createKeyObjects(ed) {
115
+ const publicKeyData = ed.getPublicKey();
116
+ const privateKeyData = ed.getPrivateKey();
117
+ const pub = _classes.KeyObject.createKeyObject('public', publicKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
118
+ const priv = _classes.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
119
+ return {
120
+ pub,
121
+ priv
122
+ };
123
+ }
112
124
 
113
125
  // Node API
126
+ function ed_formatKeyPairOutput(ed, encoding) {
127
+ const {
128
+ publicFormat,
129
+ privateFormat,
130
+ cipher,
131
+ passphrase
132
+ } = encoding;
133
+ const {
134
+ pub,
135
+ priv
136
+ } = ed_createKeyObjects(ed);
137
+ let publicKey;
138
+ let privateKey;
139
+ if (publicFormat == null || publicFormat === -1) {
140
+ publicKey = pub;
141
+ } else {
142
+ const format = publicFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
143
+ const exported = pub.handle.exportKey(format, _utils.KeyEncoding.SPKI);
144
+ if (format === _utils.KFormatType.PEM) {
145
+ publicKey = _reactNativeBuffer.Buffer.from(new Uint8Array(exported)).toString('utf-8');
146
+ } else {
147
+ publicKey = exported;
148
+ }
149
+ }
150
+ if (privateFormat == null || privateFormat === -1) {
151
+ privateKey = priv;
152
+ } else {
153
+ const format = privateFormat === _utils.KFormatType.PEM ? _utils.KFormatType.PEM : _utils.KFormatType.DER;
154
+ const exported = priv.handle.exportKey(format, _utils.KeyEncoding.PKCS8, cipher, passphrase);
155
+ if (format === _utils.KFormatType.PEM) {
156
+ privateKey = _reactNativeBuffer.Buffer.from(new Uint8Array(exported)).toString('utf-8');
157
+ } else {
158
+ privateKey = exported;
159
+ }
160
+ }
161
+ return {
162
+ publicKey,
163
+ privateKey
164
+ };
165
+ }
114
166
  function ed_generateKeyPair(isAsync, type, encoding, callback) {
115
- const ed = new Ed(type, encoding);
116
-
117
- // Helper to convert keys to proper output format
118
- const formatKeys = () => {
119
- const publicKeyRaw = ed.getPublicKey();
120
- const privateKeyRaw = ed.getPrivateKey();
121
-
122
- // Check if PEM format was requested (KFormatType.PEM = 1)
123
- const isPemPublic = encoding.publicFormat === _utils.KFormatType.PEM;
124
- const isPemPrivate = encoding.privateFormat === _utils.KFormatType.PEM;
125
-
126
- // Convert ArrayBuffer to string for PEM format
127
- const arrayBufferToString = ab => {
128
- return _reactNativeBuffer.Buffer.from(new Uint8Array(ab)).toString('utf-8');
129
- };
130
- const publicKey = isPemPublic ? arrayBufferToString(publicKeyRaw) : publicKeyRaw;
131
- const privateKey = isPemPrivate ? arrayBufferToString(privateKeyRaw) : privateKeyRaw;
132
- return {
133
- publicKey,
134
- privateKey
135
- };
167
+ const derConfig = {
168
+ ...encoding,
169
+ publicFormat: _utils.KFormatType.DER,
170
+ publicType: _utils.KeyEncoding.SPKI,
171
+ privateFormat: _utils.KFormatType.DER,
172
+ privateType: _utils.KeyEncoding.PKCS8
136
173
  };
137
-
138
- // Async path
174
+ const ed = new Ed(type, derConfig);
139
175
  if (isAsync) {
140
176
  if (!callback) {
141
- // This should not happen if called from public API
142
177
  throw new Error('A callback is required for async key generation.');
143
178
  }
144
179
  ed.generateKeyPair().then(() => {
145
180
  const {
146
181
  publicKey,
147
182
  privateKey
148
- } = formatKeys();
183
+ } = ed_formatKeyPairOutput(ed, encoding);
149
184
  callback(undefined, publicKey, privateKey);
150
185
  }).catch(err => {
151
186
  callback(err, undefined, undefined);
152
187
  });
153
188
  return;
154
189
  }
155
-
156
- // Sync path
157
190
  let err;
158
191
  try {
159
192
  ed.generateKeyPairSync();
@@ -166,7 +199,7 @@ function ed_generateKeyPair(isAsync, type, encoding, callback) {
166
199
  } = err ? {
167
200
  publicKey: undefined,
168
201
  privateKey: undefined
169
- } : formatKeys();
202
+ } : ed_formatKeyPairOutput(ed, encoding);
170
203
  if (callback) {
171
204
  callback(err, publicKey, privateKey);
172
205
  return;
@@ -273,13 +306,13 @@ async function ed_generateKeyPairWebCrypto(type, extractable, keyUsages) {
273
306
  const ed = new Ed(type, config);
274
307
  await ed.generateKeyPair();
275
308
  const algorithmName = type === 'ed25519' ? 'Ed25519' : 'Ed448';
276
- const publicKeyData = ed.getPublicKey();
277
- const privateKeyData = ed.getPrivateKey();
278
- const pub = _classes.KeyObject.createKeyObject('public', publicKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
309
+ const {
310
+ pub,
311
+ priv
312
+ } = ed_createKeyObjects(ed);
279
313
  const publicKey = new _classes.CryptoKey(pub, {
280
314
  name: algorithmName
281
315
  }, publicUsages, true);
282
- const priv = _classes.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
283
316
  const privateKey = new _classes.CryptoKey(priv, {
284
317
  name: algorithmName
285
318
  }, privateUsages, extractable);
@@ -308,13 +341,13 @@ async function x_generateKeyPairWebCrypto(type, extractable, keyUsages) {
308
341
  const ed = new Ed(type, config);
309
342
  await ed.generateKeyPair();
310
343
  const algorithmName = type === 'x25519' ? 'X25519' : 'X448';
311
- const publicKeyData = ed.getPublicKey();
312
- const privateKeyData = ed.getPrivateKey();
313
- const pub = _classes.KeyObject.createKeyObject('public', publicKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
344
+ const {
345
+ pub,
346
+ priv
347
+ } = ed_createKeyObjects(ed);
314
348
  const publicKey = new _classes.CryptoKey(pub, {
315
349
  name: algorithmName
316
350
  }, publicUsages, true);
317
- const priv = _classes.KeyObject.createKeyObject('private', privateKeyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
318
351
  const privateKey = new _classes.CryptoKey(priv, {
319
352
  name: algorithmName
320
353
  }, privateUsages, extractable);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_ecdh","Ed","constructor","type","config","native","NitroModules","createHybridObject","setCurve","diffieHellman","options","callback","privateKey","toAB","publicKey","ret","Error","Buffer","from","e","err","undefined","generateKeyPair","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","generateKeyPairSync","getPublicKey","getPrivateKey","getSharedSecret","sign","message","key","signSync","verify","signature","verifySync","exports","checkDiffieHellmanOptions","keyType","asymmetricKeyType","ecDiffieHellman","ed","ed_generateKeyPair","isAsync","encoding","formatKeys","publicKeyRaw","privateKeyRaw","isPemPublic","KFormatType","PEM","isPemPrivate","arrayBufferToString","ab","Uint8Array","toString","then","catch","String","curveName","namedCurve","ecdh","ECDH","jwkPrivate","handle","exportJwk","d","setPrivateKey","jwkPublic","x","y","publicBytes","concat","secret","computeSecret","privateKeyAsym","publicKeyAsym","privateCurve","publicCurve","ed_generateKeyPairWebCrypto","extractable","keyUsages","hasAnyNotIn","lazyDOMException","publicUsages","getUsagesUnion","privateUsages","length","DER","KeyEncoding","SPKI","PKCS8","algorithmName","publicKeyData","privateKeyData","pub","KeyObject","createKeyObject","CryptoKey","name","priv","x_generateKeyPairWebCrypto","xDeriveBits","algorithm","baseKey","public","toLowerCase","privateKeyBytes","keyObject","exportKey","publicKeyBytes","privateKeyTyped","publicKeyTyped","byteLength","Math","ceil","slice"],"sourceRoot":"../../src","sources":["ed.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_reactNativeBuffer","_classes","_utils","_ecdh","Ed","constructor","type","config","native","NitroModules","createHybridObject","setCurve","diffieHellman","options","callback","privKeyObj","privateKey","pubKeyObj","publicKey","handle","exportKey","ret","Error","Buffer","from","e","err","undefined","generateKeyPair","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","generateKeyPairSync","getPublicKey","getPrivateKey","getSharedSecret","toAB","sign","message","key","signSync","verify","signature","verifySync","exports","checkDiffieHellmanOptions","keyType","asymmetricKeyType","ecDiffieHellman","ed","ed_createKeyObjects","publicKeyData","privateKeyData","pub","KeyObject","createKeyObject","KFormatType","DER","KeyEncoding","SPKI","priv","PKCS8","ed_formatKeyPairOutput","encoding","format","PEM","exported","Uint8Array","toString","ed_generateKeyPair","isAsync","derConfig","then","catch","String","curveName","namedCurve","ecdh","ECDH","jwkPrivate","exportJwk","d","setPrivateKey","jwkPublic","x","y","publicBytes","concat","secret","computeSecret","privateKeyAsym","publicKeyAsym","privateCurve","publicCurve","ed_generateKeyPairWebCrypto","extractable","keyUsages","hasAnyNotIn","lazyDOMException","publicUsages","getUsagesUnion","privateUsages","length","algorithmName","CryptoKey","name","x_generateKeyPairWebCrypto","xDeriveBits","algorithm","baseKey","public","toLowerCase","privateKeyBytes","keyObject","publicKeyBytes","privateKeyTyped","publicKeyTyped","byteLength","Math","ceil","slice"],"sourceRoot":"../../src","sources":["ed.ts"],"mappings":"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","ignoreList":[]}
package/lib/module/ed.js CHANGED
@@ -25,9 +25,11 @@ export class Ed {
25
25
  * @returns `Buffer` if no callback, or `void` if callback is provided
26
26
  */
27
27
  diffieHellman(options, callback) {
28
- // extract the private and public keys as ArrayBuffers
29
- const privateKey = toAB(options.privateKey);
30
- const publicKey = toAB(options.publicKey);
28
+ // extract raw key bytes from KeyObject instances
29
+ const privKeyObj = options.privateKey;
30
+ const pubKeyObj = options.publicKey;
31
+ const privateKey = privKeyObj.handle.exportKey();
32
+ const publicKey = pubKeyObj.handle.exportKey();
31
33
  try {
32
34
  const ret = this.native.diffieHellman(privateKey, publicKey);
33
35
  if (!ret) {
@@ -99,51 +101,82 @@ export function diffieHellman(options, callback) {
99
101
  const ed = new Ed(type, {});
100
102
  return ed.diffieHellman(options, callback);
101
103
  }
104
+ function ed_createKeyObjects(ed) {
105
+ const publicKeyData = ed.getPublicKey();
106
+ const privateKeyData = ed.getPrivateKey();
107
+ const pub = KeyObject.createKeyObject('public', publicKeyData, KFormatType.DER, KeyEncoding.SPKI);
108
+ const priv = KeyObject.createKeyObject('private', privateKeyData, KFormatType.DER, KeyEncoding.PKCS8);
109
+ return {
110
+ pub,
111
+ priv
112
+ };
113
+ }
102
114
 
103
115
  // Node API
116
+ function ed_formatKeyPairOutput(ed, encoding) {
117
+ const {
118
+ publicFormat,
119
+ privateFormat,
120
+ cipher,
121
+ passphrase
122
+ } = encoding;
123
+ const {
124
+ pub,
125
+ priv
126
+ } = ed_createKeyObjects(ed);
127
+ let publicKey;
128
+ let privateKey;
129
+ if (publicFormat == null || publicFormat === -1) {
130
+ publicKey = pub;
131
+ } else {
132
+ const format = publicFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
133
+ const exported = pub.handle.exportKey(format, KeyEncoding.SPKI);
134
+ if (format === KFormatType.PEM) {
135
+ publicKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');
136
+ } else {
137
+ publicKey = exported;
138
+ }
139
+ }
140
+ if (privateFormat == null || privateFormat === -1) {
141
+ privateKey = priv;
142
+ } else {
143
+ const format = privateFormat === KFormatType.PEM ? KFormatType.PEM : KFormatType.DER;
144
+ const exported = priv.handle.exportKey(format, KeyEncoding.PKCS8, cipher, passphrase);
145
+ if (format === KFormatType.PEM) {
146
+ privateKey = Buffer.from(new Uint8Array(exported)).toString('utf-8');
147
+ } else {
148
+ privateKey = exported;
149
+ }
150
+ }
151
+ return {
152
+ publicKey,
153
+ privateKey
154
+ };
155
+ }
104
156
  export function ed_generateKeyPair(isAsync, type, encoding, callback) {
105
- const ed = new Ed(type, encoding);
106
-
107
- // Helper to convert keys to proper output format
108
- const formatKeys = () => {
109
- const publicKeyRaw = ed.getPublicKey();
110
- const privateKeyRaw = ed.getPrivateKey();
111
-
112
- // Check if PEM format was requested (KFormatType.PEM = 1)
113
- const isPemPublic = encoding.publicFormat === KFormatType.PEM;
114
- const isPemPrivate = encoding.privateFormat === KFormatType.PEM;
115
-
116
- // Convert ArrayBuffer to string for PEM format
117
- const arrayBufferToString = ab => {
118
- return Buffer.from(new Uint8Array(ab)).toString('utf-8');
119
- };
120
- const publicKey = isPemPublic ? arrayBufferToString(publicKeyRaw) : publicKeyRaw;
121
- const privateKey = isPemPrivate ? arrayBufferToString(privateKeyRaw) : privateKeyRaw;
122
- return {
123
- publicKey,
124
- privateKey
125
- };
157
+ const derConfig = {
158
+ ...encoding,
159
+ publicFormat: KFormatType.DER,
160
+ publicType: KeyEncoding.SPKI,
161
+ privateFormat: KFormatType.DER,
162
+ privateType: KeyEncoding.PKCS8
126
163
  };
127
-
128
- // Async path
164
+ const ed = new Ed(type, derConfig);
129
165
  if (isAsync) {
130
166
  if (!callback) {
131
- // This should not happen if called from public API
132
167
  throw new Error('A callback is required for async key generation.');
133
168
  }
134
169
  ed.generateKeyPair().then(() => {
135
170
  const {
136
171
  publicKey,
137
172
  privateKey
138
- } = formatKeys();
173
+ } = ed_formatKeyPairOutput(ed, encoding);
139
174
  callback(undefined, publicKey, privateKey);
140
175
  }).catch(err => {
141
176
  callback(err, undefined, undefined);
142
177
  });
143
178
  return;
144
179
  }
145
-
146
- // Sync path
147
180
  let err;
148
181
  try {
149
182
  ed.generateKeyPairSync();
@@ -156,7 +189,7 @@ export function ed_generateKeyPair(isAsync, type, encoding, callback) {
156
189
  } = err ? {
157
190
  publicKey: undefined,
158
191
  privateKey: undefined
159
- } : formatKeys();
192
+ } : ed_formatKeyPairOutput(ed, encoding);
160
193
  if (callback) {
161
194
  callback(err, publicKey, privateKey);
162
195
  return;
@@ -263,13 +296,13 @@ export async function ed_generateKeyPairWebCrypto(type, extractable, keyUsages)
263
296
  const ed = new Ed(type, config);
264
297
  await ed.generateKeyPair();
265
298
  const algorithmName = type === 'ed25519' ? 'Ed25519' : 'Ed448';
266
- const publicKeyData = ed.getPublicKey();
267
- const privateKeyData = ed.getPrivateKey();
268
- const pub = KeyObject.createKeyObject('public', publicKeyData, KFormatType.DER, KeyEncoding.SPKI);
299
+ const {
300
+ pub,
301
+ priv
302
+ } = ed_createKeyObjects(ed);
269
303
  const publicKey = new CryptoKey(pub, {
270
304
  name: algorithmName
271
305
  }, publicUsages, true);
272
- const priv = KeyObject.createKeyObject('private', privateKeyData, KFormatType.DER, KeyEncoding.PKCS8);
273
306
  const privateKey = new CryptoKey(priv, {
274
307
  name: algorithmName
275
308
  }, privateUsages, extractable);
@@ -298,13 +331,13 @@ export async function x_generateKeyPairWebCrypto(type, extractable, keyUsages) {
298
331
  const ed = new Ed(type, config);
299
332
  await ed.generateKeyPair();
300
333
  const algorithmName = type === 'x25519' ? 'X25519' : 'X448';
301
- const publicKeyData = ed.getPublicKey();
302
- const privateKeyData = ed.getPrivateKey();
303
- const pub = KeyObject.createKeyObject('public', publicKeyData, KFormatType.DER, KeyEncoding.SPKI);
334
+ const {
335
+ pub,
336
+ priv
337
+ } = ed_createKeyObjects(ed);
304
338
  const publicKey = new CryptoKey(pub, {
305
339
  name: algorithmName
306
340
  }, publicUsages, true);
307
- const priv = KeyObject.createKeyObject('private', privateKeyData, KFormatType.DER, KeyEncoding.PKCS8);
308
341
  const privateKey = new CryptoKey(priv, {
309
342
  name: algorithmName
310
343
  }, privateUsages, extractable);
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","Buffer","CryptoKey","KeyObject","binaryLikeToArrayBuffer","toAB","hasAnyNotIn","lazyDOMException","getUsagesUnion","KFormatType","KeyEncoding","ECDH","Ed","constructor","type","config","native","createHybridObject","setCurve","diffieHellman","options","callback","privateKey","publicKey","ret","Error","from","e","err","undefined","generateKeyPair","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","generateKeyPairSync","getPublicKey","getPrivateKey","getSharedSecret","sign","message","key","signSync","verify","signature","verifySync","checkDiffieHellmanOptions","keyType","asymmetricKeyType","ecDiffieHellman","ed","ed_generateKeyPair","isAsync","encoding","formatKeys","publicKeyRaw","privateKeyRaw","isPemPublic","PEM","isPemPrivate","arrayBufferToString","ab","Uint8Array","toString","then","catch","String","curveName","namedCurve","ecdh","jwkPrivate","handle","exportJwk","d","setPrivateKey","jwkPublic","x","y","publicBytes","concat","secret","computeSecret","privateKeyAsym","publicKeyAsym","privateCurve","publicCurve","ed_generateKeyPairWebCrypto","extractable","keyUsages","publicUsages","privateUsages","length","DER","SPKI","PKCS8","algorithmName","publicKeyData","privateKeyData","pub","createKeyObject","name","priv","x_generateKeyPairWebCrypto","xDeriveBits","algorithm","baseKey","public","toLowerCase","privateKeyBytes","keyObject","exportKey","publicKeyBytes","privateKeyTyped","publicKeyTyped","byteLength","Math","ceil","slice"],"sourceRoot":"../../src","sources":["ed.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AACzD,SAASC,MAAM,QAAQ,gCAAgC;AAEvD,SACEC,SAAS,EACTC,SAAS,QAGJ,gBAAgB;AAevB,SACEC,uBAAuB,IAAIC,IAAI,EAC/BC,WAAW,EACXC,gBAAgB,EAChBC,cAAc,EACdC,WAAW,EACXC,WAAW,QACN,SAAS;AAChB,SAASC,IAAI,QAAQ,QAAQ;AAE7B,OAAO,MAAMC,EAAE,CAAC;EAKdC,WAAWA,CAACC,IAAqB,EAAEC,MAAwB,EAAE;IAC3D,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,MAAM,GAAGhB,YAAY,CAACiB,kBAAkB,CAAY,WAAW,CAAC;IACrE,IAAI,CAACD,MAAM,CAACE,QAAQ,CAACJ,IAAI,CAAC;EAC5B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEK,aAAaA,CACXC,OAA6B,EAC7BC,QAAgC,EACjB;IACf;IACA,MAAMC,UAAU,GAAGjB,IAAI,CAACe,OAAO,CAACE,UAAU,CAAC;IAC3C,MAAMC,SAAS,GAAGlB,IAAI,CAACe,OAAO,CAACG,SAAS,CAAC;IAEzC,IAAI;MACF,MAAMC,GAAG,GAAG,IAAI,CAACR,MAAM,CAACG,aAAa,CAACG,UAAU,EAAEC,SAAS,CAAC;MAC5D,IAAI,CAACC,GAAG,EAAE;QACR,MAAM,IAAIC,KAAK,CAAC,WAAW,CAAC;MAC9B;MACA,IAAIJ,QAAQ,EAAE;QACZA,QAAQ,CAAC,IAAI,EAAEpB,MAAM,CAACyB,IAAI,CAACF,GAAG,CAAC,CAAC;MAClC,CAAC,MAAM;QACL,OAAOvB,MAAM,CAACyB,IAAI,CAACF,GAAG,CAAC;MACzB;IACF,CAAC,CAAC,OAAOG,CAAU,EAAE;MACnB,MAAMC,GAAG,GAAGD,CAAU;MACtB,IAAIN,QAAQ,EAAE;QACZA,QAAQ,CAACO,GAAG,EAAEC,SAAS,CAAC;MAC1B,CAAC,MAAM;QACL,MAAMD,GAAG;MACX;IACF;EACF;EAEA,MAAME,eAAeA,CAAA,EAAkB;IACrC,MAAM,IAAI,CAACd,MAAM,CAACc,eAAe,CAC/B,IAAI,CAACf,MAAM,CAACgB,YAAY,IAAI,CAAC,CAAC,EAC9B,IAAI,CAAChB,MAAM,CAACiB,UAAU,IAAI,CAAC,CAAC,EAC5B,IAAI,CAACjB,MAAM,CAACkB,aAAa,IAAI,CAAC,CAAC,EAC/B,IAAI,CAAClB,MAAM,CAACmB,WAAW,IAAI,CAAC,CAAC,EAC7B,IAAI,CAACnB,MAAM,CAACoB,MAAM,EAClB,IAAI,CAACpB,MAAM,CAACqB,UACd,CAAC;EACH;EAEAC,mBAAmBA,CAAA,EAAS;IAC1B,IAAI,CAACrB,MAAM,CAACqB,mBAAmB,CAC7B,IAAI,CAACtB,MAAM,CAACgB,YAAY,IAAI,CAAC,CAAC,EAC9B,IAAI,CAAChB,MAAM,CAACiB,UAAU,IAAI,CAAC,CAAC,EAC5B,IAAI,CAACjB,MAAM,CAACkB,aAAa,IAAI,CAAC,CAAC,EAC/B,IAAI,CAAClB,MAAM,CAACmB,WAAW,IAAI,CAAC,CAAC,EAC7B,IAAI,CAACnB,MAAM,CAACoB,MAAM,EAClB,IAAI,CAACpB,MAAM,CAACqB,UACd,CAAC;EACH;EAEAE,YAAYA,CAAA,EAAgB;IAC1B,OAAO,IAAI,CAACtB,MAAM,CAACsB,YAAY,CAAC,CAAC;EACnC;EAEAC,aAAaA,CAAA,EAAgB;IAC3B,OAAO,IAAI,CAACvB,MAAM,CAACuB,aAAa,CAAC,CAAC;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,eAAeA,CAAClB,UAAe,EAAEC,SAAc,EAAe;IAC5D,OAAO,IAAI,CAACP,MAAM,CAACG,aAAa,CAACd,IAAI,CAACiB,UAAU,CAAC,EAAEjB,IAAI,CAACkB,SAAS,CAAC,CAAC;EACrE;EAEA,MAAMkB,IAAIA,CAACC,OAAmB,EAAEC,GAAgB,EAAwB;IACtE,OAAOA,GAAG,GACN,IAAI,CAAC3B,MAAM,CAACyB,IAAI,CAACpC,IAAI,CAACqC,OAAO,CAAC,EAAErC,IAAI,CAACsC,GAAG,CAAC,CAAC,GAC1C,IAAI,CAAC3B,MAAM,CAACyB,IAAI,CAACpC,IAAI,CAACqC,OAAO,CAAC,CAAC;EACrC;EAEAE,QAAQA,CAACF,OAAmB,EAAEC,GAAgB,EAAe;IAC3D,OAAOA,GAAG,GACN,IAAI,CAAC3B,MAAM,CAAC4B,QAAQ,CAACvC,IAAI,CAACqC,OAAO,CAAC,EAAErC,IAAI,CAACsC,GAAG,CAAC,CAAC,GAC9C,IAAI,CAAC3B,MAAM,CAAC4B,QAAQ,CAACvC,IAAI,CAACqC,OAAO,CAAC,CAAC;EACzC;EAEA,MAAMG,MAAMA,CACVC,SAAqB,EACrBJ,OAAmB,EACnBC,GAAgB,EACE;IAClB,OAAOA,GAAG,GACN,IAAI,CAAC3B,MAAM,CAAC6B,MAAM,CAACxC,IAAI,CAACyC,SAAS,CAAC,EAAEzC,IAAI,CAACqC,OAAO,CAAC,EAAErC,IAAI,CAACsC,GAAG,CAAC,CAAC,GAC7D,IAAI,CAAC3B,MAAM,CAAC6B,MAAM,CAACxC,IAAI,CAACyC,SAAS,CAAC,EAAEzC,IAAI,CAACqC,OAAO,CAAC,CAAC;EACxD;EAEAK,UAAUA,CACRD,SAAqB,EACrBJ,OAAmB,EACnBC,GAAgB,EACP;IACT,OAAOA,GAAG,GACN,IAAI,CAAC3B,MAAM,CAAC+B,UAAU,CAAC1C,IAAI,CAACyC,SAAS,CAAC,EAAEzC,IAAI,CAACqC,OAAO,CAAC,EAAErC,IAAI,CAACsC,GAAG,CAAC,CAAC,GACjE,IAAI,CAAC3B,MAAM,CAAC+B,UAAU,CAAC1C,IAAI,CAACyC,SAAS,CAAC,EAAEzC,IAAI,CAACqC,OAAO,CAAC,CAAC;EAC5D;AACF;;AAEA;AACA,OAAO,SAASvB,aAAaA,CAC3BC,OAA6B,EAC7BC,QAAgC,EACjB;EACf2B,yBAAyB,CAAC5B,OAAO,CAAC;EAElC,MAAME,UAAU,GAAGF,OAAO,CAACE,UAA8B;EACzD,MAAM2B,OAAO,GAAG3B,UAAU,CAAC4B,iBAAiB;EAE5C,IAAID,OAAO,KAAK,IAAI,EAAE;IACpB,OAAOE,eAAe,CAAC/B,OAAO,EAAEC,QAAQ,CAAC;EAC3C;EAEA,MAAMP,IAAI,GAAGmC,OAA0B;EACvC,MAAMG,EAAE,GAAG,IAAIxC,EAAE,CAACE,IAAI,EAAE,CAAC,CAAC,CAAC;EAC3B,OAAOsC,EAAE,CAACjC,aAAa,CAACC,OAAO,EAAEC,QAAQ,CAAC;AAC5C;;AAEA;AACA,OAAO,SAASgC,kBAAkBA,CAChCC,OAAgB,EAChBxC,IAAqB,EACrByC,QAA0B,EAC1BlC,QAA6C,EACf;EAC9B,MAAM+B,EAAE,GAAG,IAAIxC,EAAE,CAACE,IAAI,EAAEyC,QAAQ,CAAC;;EAEjC;EACA,MAAMC,UAAU,GAAGA,CAAA,KAGd;IACH,MAAMC,YAAY,GAAGL,EAAE,CAACd,YAAY,CAAC,CAAC;IACtC,MAAMoB,aAAa,GAAGN,EAAE,CAACb,aAAa,CAAC,CAAC;;IAExC;IACA,MAAMoB,WAAW,GAAGJ,QAAQ,CAACxB,YAAY,KAAKtB,WAAW,CAACmD,GAAG;IAC7D,MAAMC,YAAY,GAAGN,QAAQ,CAACtB,aAAa,KAAKxB,WAAW,CAACmD,GAAG;;IAE/D;IACA,MAAME,mBAAmB,GAAIC,EAAe,IAAa;MACvD,OAAO9D,MAAM,CAACyB,IAAI,CAAC,IAAIsC,UAAU,CAACD,EAAE,CAAC,CAAC,CAACE,QAAQ,CAAC,OAAO,CAAC;IAC1D,CAAC;IAED,MAAM1C,SAAS,GAAGoC,WAAW,GACzBG,mBAAmB,CAACL,YAAY,CAAC,GACjCA,YAAY;IAChB,MAAMnC,UAAU,GAAGuC,YAAY,GAC3BC,mBAAmB,CAACJ,aAAa,CAAC,GAClCA,aAAa;IAEjB,OAAO;MAAEnC,SAAS;MAAED;IAAW,CAAC;EAClC,CAAC;;EAED;EACA,IAAIgC,OAAO,EAAE;IACX,IAAI,CAACjC,QAAQ,EAAE;MACb;MACA,MAAM,IAAII,KAAK,CAAC,kDAAkD,CAAC;IACrE;IACA2B,EAAE,CAACtB,eAAe,CAAC,CAAC,CACjBoC,IAAI,CAAC,MAAM;MACV,MAAM;QAAE3C,SAAS;QAAED;MAAW,CAAC,GAAGkC,UAAU,CAAC,CAAC;MAC9CnC,QAAQ,CAACQ,SAAS,EAAEN,SAAS,EAAED,UAAU,CAAC;IAC5C,CAAC,CAAC,CACD6C,KAAK,CAACvC,GAAG,IAAI;MACZP,QAAQ,CAACO,GAAG,EAAEC,SAAS,EAAEA,SAAS,CAAC;IACrC,CAAC,CAAC;IACJ;EACF;;EAEA;EACA,IAAID,GAAsB;EAC1B,IAAI;IACFwB,EAAE,CAACf,mBAAmB,CAAC,CAAC;EAC1B,CAAC,CAAC,OAAOV,CAAC,EAAE;IACVC,GAAG,GAAGD,CAAC,YAAYF,KAAK,GAAGE,CAAC,GAAG,IAAIF,KAAK,CAAC2C,MAAM,CAACzC,CAAC,CAAC,CAAC;EACrD;EAEA,MAAM;IAAEJ,SAAS;IAAED;EAAW,CAAC,GAAGM,GAAG,GACjC;IAAEL,SAAS,EAAEM,SAAS;IAAEP,UAAU,EAAEO;EAAU,CAAC,GAC/C2B,UAAU,CAAC,CAAC;EAEhB,IAAInC,QAAQ,EAAE;IACZA,QAAQ,CAACO,GAAG,EAAEL,SAAS,EAAED,UAAU,CAAC;IACpC;EACF;EACA,OAAO,CAACM,GAAG,EAAEL,SAAS,EAAED,UAAU,CAAC;AACrC;AAEA,SAAS6B,eAAeA,CACtB/B,OAA6B,EAC7BC,QAAgC,EACjB;EACf,MAAMC,UAAU,GAAGF,OAAO,CAACE,UAA8B;EACzD,MAAMC,SAAS,GAAGH,OAAO,CAACG,SAAgC;EAE1D,MAAM8C,SAAS,GAAG/C,UAAU,CAACgD,UAAU;EACvC,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAI5C,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,MAAM8C,IAAI,GAAG,IAAI5D,IAAI,CAAC0D,SAAS,CAAC;EAEhC,MAAMG,UAAU,GAAGlD,UAAU,CAACmD,MAAM,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;EACzD,IAAI,CAACF,UAAU,CAACG,CAAC,EAAE,MAAM,IAAIlD,KAAK,CAAC,qBAAqB,CAAC;EACzD8C,IAAI,CAACK,aAAa,CAAC3E,MAAM,CAACyB,IAAI,CAAC8C,UAAU,CAACG,CAAC,EAAE,WAAW,CAAC,CAAC;EAE1D,MAAME,SAAS,GAAGtD,SAAS,CAACkD,MAAM,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;EACvD,IAAI,CAACG,SAAS,CAACC,CAAC,IAAI,CAACD,SAAS,CAACE,CAAC,EAAE,MAAM,IAAItD,KAAK,CAAC,oBAAoB,CAAC;EACvE,MAAMqD,CAAC,GAAG7E,MAAM,CAACyB,IAAI,CAACmD,SAAS,CAACC,CAAC,EAAE,WAAW,CAAC;EAC/C,MAAMC,CAAC,GAAG9E,MAAM,CAACyB,IAAI,CAACmD,SAAS,CAACE,CAAC,EAAE,WAAW,CAAC;EAC/C,MAAMC,WAAW,GAAG/E,MAAM,CAACgF,MAAM,CAAC,CAAChF,MAAM,CAACyB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAEoD,CAAC,EAAEC,CAAC,CAAC,CAAC;EAE9D,IAAI;IACF,MAAMG,MAAM,GAAGX,IAAI,CAACY,aAAa,CAACH,WAAW,CAAC;IAC9C,IAAI3D,QAAQ,EAAE;MACZA,QAAQ,CAAC,IAAI,EAAE6D,MAAM,CAAC;IACxB,CAAC,MAAM;MACL,OAAOA,MAAM;IACf;EACF,CAAC,CAAC,OAAOvD,CAAU,EAAE;IACnB,MAAMC,GAAG,GAAGD,CAAU;IACtB,IAAIN,QAAQ,EAAE;MACZA,QAAQ,CAACO,GAAG,EAAEC,SAAS,CAAC;IAC1B,CAAC,MAAM;MACL,MAAMD,GAAG;IACX;EACF;AACF;AAEA,SAASoB,yBAAyBA,CAAC5B,OAA6B,EAAQ;EACtE,MAAM;IAAEE,UAAU;IAAEC;EAAU,CAAC,GAAGH,OAAO;;EAEzC;EACA,IACE,CAACE,UAAU,IACX,OAAOA,UAAU,KAAK,QAAQ,IAC9B,EAAE,MAAM,IAAIA,UAAU,CAAC,EACvB;IACA,MAAM,IAAIG,KAAK,CAAC,gCAAgC,CAAC;EACnD;EACA,IAAI,CAACF,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,IAAI,EAAE,MAAM,IAAIA,SAAS,CAAC,EAAE;IACzE,MAAM,IAAIE,KAAK,CAAC,+BAA+B,CAAC;EAClD;;EAEA;EACA,IAAIH,UAAU,CAACR,IAAI,KAAK,SAAS,EAAE;IACjC,MAAM,IAAIW,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EACA,IAAIF,SAAS,CAACT,IAAI,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAIW,KAAK,CAAC,sCAAsC,CAAC;EACzD;;EAEA;EACA,MAAM2D,cAAc,GAAG9D,UAAiC;EACxD,MAAM+D,aAAa,GAAG9D,SAAgC;;EAEtD;EACA,IACE6D,cAAc,CAAClC,iBAAiB,IAChCmC,aAAa,CAACnC,iBAAiB,IAC/BkC,cAAc,CAAClC,iBAAiB,KAAKmC,aAAa,CAACnC,iBAAiB,EACpE;IACA,MAAM,IAAIzB,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,QAAQ2D,cAAc,CAAClC,iBAAiB;IACtC;IACA,KAAK,IAAI;MAAE;QACT,MAAMoC,YAAY,GAAGF,cAAc,CAACd,UAAU;QAC9C,MAAMiB,WAAW,GAAGF,aAAa,CAACf,UAAU;QAC5C,IAAIgB,YAAY,IAAIC,WAAW,IAAID,YAAY,KAAKC,WAAW,EAAE;UAC/D,MAAM,IAAI9D,KAAK,CAAC,4CAA4C,CAAC;QAC/D;QACA;MACF;IACA,KAAK,QAAQ;IACb,KAAK,MAAM;MACT;IACF;MACE,MAAM,IAAIA,KAAK,CACb,uBAAuB2D,cAAc,CAAClC,iBAAiB,EACzD,CAAC;EACL;AACF;AAEA,OAAO,eAAesC,2BAA2BA,CAC/C1E,IAAyB,EACzB2E,WAAoB,EACpBC,SAAqB,EACG;EACxB,IAAIpF,WAAW,CAACoF,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9C,MAAMnF,gBAAgB,CAAC,6BAA6BO,IAAI,EAAE,EAAE,aAAa,CAAC;EAC5E;EAEA,MAAM6E,YAAY,GAAGnF,cAAc,CAACkF,SAAS,EAAE,QAAQ,CAAC;EACxD,MAAME,aAAa,GAAGpF,cAAc,CAACkF,SAAS,EAAE,MAAM,CAAC;EAEvD,IAAIE,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;IAC9B,MAAMtF,gBAAgB,CAAC,wBAAwB,EAAE,aAAa,CAAC;EACjE;;EAEA;EACA,MAAMQ,MAAM,GAAG;IACbgB,YAAY,EAAEtB,WAAW,CAACqF,GAAG;IAC7B9D,UAAU,EAAEtB,WAAW,CAACqF,IAAI;IAC5B9D,aAAa,EAAExB,WAAW,CAACqF,GAAG;IAC9B5D,WAAW,EAAExB,WAAW,CAACsF;EAC3B,CAAC;EACD,MAAM5C,EAAE,GAAG,IAAIxC,EAAE,CAACE,IAAI,EAAEC,MAAM,CAAC;EAC/B,MAAMqC,EAAE,CAACtB,eAAe,CAAC,CAAC;EAE1B,MAAMmE,aAAa,GAAGnF,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,OAAO;EAE9D,MAAMoF,aAAa,GAAG9C,EAAE,CAACd,YAAY,CAAC,CAAC;EACvC,MAAM6D,cAAc,GAAG/C,EAAE,CAACb,aAAa,CAAC,CAAC;EAEzC,MAAM6D,GAAG,GAAGjG,SAAS,CAACkG,eAAe,CACnC,QAAQ,EACRH,aAAa,EACbzF,WAAW,CAACqF,GAAG,EACfpF,WAAW,CAACqF,IACd,CAAoB;EACpB,MAAMxE,SAAS,GAAG,IAAIrB,SAAS,CAC7BkG,GAAG,EACH;IAAEE,IAAI,EAAEL;EAAc,CAAC,EACvBN,YAAY,EACZ,IACF,CAAC;EAED,MAAMY,IAAI,GAAGpG,SAAS,CAACkG,eAAe,CACpC,SAAS,EACTF,cAAc,EACd1F,WAAW,CAACqF,GAAG,EACfpF,WAAW,CAACsF,KACd,CAA0B;EAC1B,MAAM1E,UAAU,GAAG,IAAIpB,SAAS,CAC9BqG,IAAI,EACJ;IAAED,IAAI,EAAEL;EAAc,CAAC,EACvBL,aAAa,EACbH,WACF,CAAC;EAED,OAAO;IAAElE,SAAS;IAAED;EAAW,CAAC;AAClC;AAEA,OAAO,eAAekF,0BAA0BA,CAC9C1F,IAAuB,EACvB2E,WAAoB,EACpBC,SAAqB,EACG;EACxB,IAAIpF,WAAW,CAACoF,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;IACvD,MAAMnF,gBAAgB,CAAC,6BAA6BO,IAAI,EAAE,EAAE,aAAa,CAAC;EAC5E;EAEA,MAAM6E,YAAY,GAAGnF,cAAc,CAACkF,SAAS,CAAC;EAC9C,MAAME,aAAa,GAAGpF,cAAc,CAACkF,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;EAE1E,IAAIE,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;IAC9B,MAAMtF,gBAAgB,CAAC,wBAAwB,EAAE,aAAa,CAAC;EACjE;;EAEA;EACA,MAAMQ,MAAM,GAAG;IACbgB,YAAY,EAAEtB,WAAW,CAACqF,GAAG;IAC7B9D,UAAU,EAAEtB,WAAW,CAACqF,IAAI;IAC5B9D,aAAa,EAAExB,WAAW,CAACqF,GAAG;IAC9B5D,WAAW,EAAExB,WAAW,CAACsF;EAC3B,CAAC;EACD,MAAM5C,EAAE,GAAG,IAAIxC,EAAE,CAACE,IAAI,EAAEC,MAAM,CAAC;EAC/B,MAAMqC,EAAE,CAACtB,eAAe,CAAC,CAAC;EAE1B,MAAMmE,aAAa,GAAGnF,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM;EAE3D,MAAMoF,aAAa,GAAG9C,EAAE,CAACd,YAAY,CAAC,CAAC;EACvC,MAAM6D,cAAc,GAAG/C,EAAE,CAACb,aAAa,CAAC,CAAC;EAEzC,MAAM6D,GAAG,GAAGjG,SAAS,CAACkG,eAAe,CACnC,QAAQ,EACRH,aAAa,EACbzF,WAAW,CAACqF,GAAG,EACfpF,WAAW,CAACqF,IACd,CAAoB;EACpB,MAAMxE,SAAS,GAAG,IAAIrB,SAAS,CAC7BkG,GAAG,EACH;IAAEE,IAAI,EAAEL;EAAc,CAAC,EACvBN,YAAY,EACZ,IACF,CAAC;EAED,MAAMY,IAAI,GAAGpG,SAAS,CAACkG,eAAe,CACpC,SAAS,EACTF,cAAc,EACd1F,WAAW,CAACqF,GAAG,EACfpF,WAAW,CAACsF,KACd,CAA0B;EAC1B,MAAM1E,UAAU,GAAG,IAAIpB,SAAS,CAC9BqG,IAAI,EACJ;IAAED,IAAI,EAAEL;EAAc,CAAC,EACvBL,aAAa,EACbH,WACF,CAAC;EAED,OAAO;IAAElE,SAAS;IAAED;EAAW,CAAC;AAClC;AAEA,OAAO,SAASmF,WAAWA,CACzBC,SAA0B,EAC1BC,OAAkB,EAClBd,MAAqB,EACR;EACb,MAAMtE,SAAS,GAAGmF,SAAS,CAACE,MAAM;EAElC,IAAI,CAACrF,SAAS,EAAE;IACd,MAAM,IAAIE,KAAK,CAAC,mDAAmD,CAAC;EACtE;EAEA,IAAIkF,OAAO,CAACD,SAAS,CAACJ,IAAI,KAAK/E,SAAS,CAACmF,SAAS,CAACJ,IAAI,EAAE;IACvD,MAAM,IAAI7E,KAAK,CAAC,oCAAoC,CAAC;EACvD;EAEA,MAAMX,IAAI,GAAG6F,OAAO,CAACD,SAAS,CAACJ,IAAI,CAACO,WAAW,CAAC,CAAsB;EACtE,MAAMzD,EAAE,GAAG,IAAIxC,EAAE,CAACE,IAAI,EAAE,CAAC,CAAC,CAAC;;EAE3B;EACA,MAAMgG,eAAe,GAAGH,OAAO,CAACI,SAAS,CAACtC,MAAM,CAACuC,SAAS,CAAC,CAAC;EAC5D,MAAMC,cAAc,GAAG1F,SAAS,CAACwF,SAAS,CAACtC,MAAM,CAACuC,SAAS,CAAC,CAAC;EAE7D,MAAME,eAAe,GAAG,IAAIlD,UAAU,CAAC8C,eAAe,CAAC;EACvD,MAAMK,cAAc,GAAG,IAAInD,UAAU,CAACiD,cAAc,CAAC;EAErD,MAAM/B,MAAM,GAAG9B,EAAE,CAACZ,eAAe,CAAC0E,eAAe,EAAEC,cAAc,CAAC;;EAElE;EACA,IAAItB,MAAM,KAAK,IAAI,EAAE;IACnB,OAAOX,MAAM;EACf;;EAEA;EACA,MAAMkC,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACzB,MAAM,GAAG,CAAC,CAAC;EACxC,IAAIX,MAAM,CAACkC,UAAU,IAAIA,UAAU,EAAE;IACnC,OAAOlC,MAAM,CAACqC,KAAK,CAAC,CAAC,EAAEH,UAAU,CAAC;EACpC;EAEA,MAAM,IAAI3F,KAAK,CAAC,8CAA8C,CAAC;AACjE","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","Buffer","CryptoKey","KeyObject","binaryLikeToArrayBuffer","toAB","hasAnyNotIn","lazyDOMException","getUsagesUnion","KFormatType","KeyEncoding","ECDH","Ed","constructor","type","config","native","createHybridObject","setCurve","diffieHellman","options","callback","privKeyObj","privateKey","pubKeyObj","publicKey","handle","exportKey","ret","Error","from","e","err","undefined","generateKeyPair","publicFormat","publicType","privateFormat","privateType","cipher","passphrase","generateKeyPairSync","getPublicKey","getPrivateKey","getSharedSecret","sign","message","key","signSync","verify","signature","verifySync","checkDiffieHellmanOptions","keyType","asymmetricKeyType","ecDiffieHellman","ed","ed_createKeyObjects","publicKeyData","privateKeyData","pub","createKeyObject","DER","SPKI","priv","PKCS8","ed_formatKeyPairOutput","encoding","format","PEM","exported","Uint8Array","toString","ed_generateKeyPair","isAsync","derConfig","then","catch","String","curveName","namedCurve","ecdh","jwkPrivate","exportJwk","d","setPrivateKey","jwkPublic","x","y","publicBytes","concat","secret","computeSecret","privateKeyAsym","publicKeyAsym","privateCurve","publicCurve","ed_generateKeyPairWebCrypto","extractable","keyUsages","publicUsages","privateUsages","length","algorithmName","name","x_generateKeyPairWebCrypto","xDeriveBits","algorithm","baseKey","public","toLowerCase","privateKeyBytes","keyObject","publicKeyBytes","privateKeyTyped","publicKeyTyped","byteLength","Math","ceil","slice"],"sourceRoot":"../../src","sources":["ed.ts"],"mappings":"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","ignoreList":[]}