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.
- package/cpp/ec/HybridEcKeyPair.cpp +34 -4
- package/lib/commonjs/ed.js +72 -39
- package/lib/commonjs/ed.js.map +1 -1
- package/lib/module/ed.js +72 -39
- package/lib/module/ed.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/ed.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ed.ts +84 -67
|
@@ -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
|
-
//
|
|
376
|
-
|
|
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
|
-
//
|
|
414
|
-
|
|
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");
|
package/lib/commonjs/ed.js
CHANGED
|
@@ -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
|
|
38
|
-
const
|
|
39
|
-
const
|
|
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
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
-
} =
|
|
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
|
-
} :
|
|
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
|
|
277
|
-
|
|
278
|
-
|
|
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
|
|
312
|
-
|
|
313
|
-
|
|
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);
|
package/lib/commonjs/ed.js.map
CHANGED
|
@@ -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":";;;;;;;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAoBA,IAAAG,MAAA,GAAAH,OAAA;AAQA,IAAAI,KAAA,GAAAJ,OAAA;AAEO,MAAMK,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,GAAGC,qCAAY,CAACC,kBAAkB,CAAY,WAAW,CAAC;IACrE,IAAI,CAACF,MAAM,CAACG,QAAQ,CAACL,IAAI,CAAC;EAC5B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,aAAaA,CACXC,OAA6B,EAC7BC,QAAgC,EACjB;IACf;IACA,MAAMC,UAAU,GAAGF,OAAO,CAACG,UAAiC;IAC5D,MAAMC,SAAS,GAAGJ,OAAO,CAACK,SAAgC;IAC1D,MAAMF,UAAU,GAAGD,UAAU,CAACI,MAAM,CAACC,SAAS,CAAC,CAAC;IAChD,MAAMF,SAAS,GAAGD,SAAS,CAACE,MAAM,CAACC,SAAS,CAAC,CAAC;IAE9C,IAAI;MACF,MAAMC,GAAG,GAAG,IAAI,CAACb,MAAM,CAACI,aAAa,CAACI,UAAU,EAAEE,SAAS,CAAC;MAC5D,IAAI,CAACG,GAAG,EAAE;QACR,MAAM,IAAIC,KAAK,CAAC,WAAW,CAAC;MAC9B;MACA,IAAIR,QAAQ,EAAE;QACZA,QAAQ,CAAC,IAAI,EAAES,yBAAM,CAACC,IAAI,CAACH,GAAG,CAAC,CAAC;MAClC,CAAC,MAAM;QACL,OAAOE,yBAAM,CAACC,IAAI,CAACH,GAAG,CAAC;MACzB;IACF,CAAC,CAAC,OAAOI,CAAU,EAAE;MACnB,MAAMC,GAAG,GAAGD,CAAU;MACtB,IAAIX,QAAQ,EAAE;QACZA,QAAQ,CAACY,GAAG,EAAEC,SAAS,CAAC;MAC1B,CAAC,MAAM;QACL,MAAMD,GAAG;MACX;IACF;EACF;EAEA,MAAME,eAAeA,CAAA,EAAkB;IACrC,MAAM,IAAI,CAACpB,MAAM,CAACoB,eAAe,CAC/B,IAAI,CAACrB,MAAM,CAACsB,YAAY,IAAI,CAAC,CAAC,EAC9B,IAAI,CAACtB,MAAM,CAACuB,UAAU,IAAI,CAAC,CAAC,EAC5B,IAAI,CAACvB,MAAM,CAACwB,aAAa,IAAI,CAAC,CAAC,EAC/B,IAAI,CAACxB,MAAM,CAACyB,WAAW,IAAI,CAAC,CAAC,EAC7B,IAAI,CAACzB,MAAM,CAAC0B,MAAM,EAClB,IAAI,CAAC1B,MAAM,CAAC2B,UACd,CAAC;EACH;EAEAC,mBAAmBA,CAAA,EAAS;IAC1B,IAAI,CAAC3B,MAAM,CAAC2B,mBAAmB,CAC7B,IAAI,CAAC5B,MAAM,CAACsB,YAAY,IAAI,CAAC,CAAC,EAC9B,IAAI,CAACtB,MAAM,CAACuB,UAAU,IAAI,CAAC,CAAC,EAC5B,IAAI,CAACvB,MAAM,CAACwB,aAAa,IAAI,CAAC,CAAC,EAC/B,IAAI,CAACxB,MAAM,CAACyB,WAAW,IAAI,CAAC,CAAC,EAC7B,IAAI,CAACzB,MAAM,CAAC0B,MAAM,EAClB,IAAI,CAAC1B,MAAM,CAAC2B,UACd,CAAC;EACH;EAEAE,YAAYA,CAAA,EAAgB;IAC1B,OAAO,IAAI,CAAC5B,MAAM,CAAC4B,YAAY,CAAC,CAAC;EACnC;EAEAC,aAAaA,CAAA,EAAgB;IAC3B,OAAO,IAAI,CAAC7B,MAAM,CAAC6B,aAAa,CAAC,CAAC;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,eAAeA,CAACtB,UAAe,EAAEE,SAAc,EAAe;IAC5D,OAAO,IAAI,CAACV,MAAM,CAACI,aAAa,CAAC,IAAA2B,8BAAI,EAACvB,UAAU,CAAC,EAAE,IAAAuB,8BAAI,EAACrB,SAAS,CAAC,CAAC;EACrE;EAEA,MAAMsB,IAAIA,CAACC,OAAmB,EAAEC,GAAgB,EAAwB;IACtE,OAAOA,GAAG,GACN,IAAI,CAAClC,MAAM,CAACgC,IAAI,CAAC,IAAAD,8BAAI,EAACE,OAAO,CAAC,EAAE,IAAAF,8BAAI,EAACG,GAAG,CAAC,CAAC,GAC1C,IAAI,CAAClC,MAAM,CAACgC,IAAI,CAAC,IAAAD,8BAAI,EAACE,OAAO,CAAC,CAAC;EACrC;EAEAE,QAAQA,CAACF,OAAmB,EAAEC,GAAgB,EAAe;IAC3D,OAAOA,GAAG,GACN,IAAI,CAAClC,MAAM,CAACmC,QAAQ,CAAC,IAAAJ,8BAAI,EAACE,OAAO,CAAC,EAAE,IAAAF,8BAAI,EAACG,GAAG,CAAC,CAAC,GAC9C,IAAI,CAAClC,MAAM,CAACmC,QAAQ,CAAC,IAAAJ,8BAAI,EAACE,OAAO,CAAC,CAAC;EACzC;EAEA,MAAMG,MAAMA,CACVC,SAAqB,EACrBJ,OAAmB,EACnBC,GAAgB,EACE;IAClB,OAAOA,GAAG,GACN,IAAI,CAAClC,MAAM,CAACoC,MAAM,CAAC,IAAAL,8BAAI,EAACM,SAAS,CAAC,EAAE,IAAAN,8BAAI,EAACE,OAAO,CAAC,EAAE,IAAAF,8BAAI,EAACG,GAAG,CAAC,CAAC,GAC7D,IAAI,CAAClC,MAAM,CAACoC,MAAM,CAAC,IAAAL,8BAAI,EAACM,SAAS,CAAC,EAAE,IAAAN,8BAAI,EAACE,OAAO,CAAC,CAAC;EACxD;EAEAK,UAAUA,CACRD,SAAqB,EACrBJ,OAAmB,EACnBC,GAAgB,EACP;IACT,OAAOA,GAAG,GACN,IAAI,CAAClC,MAAM,CAACsC,UAAU,CAAC,IAAAP,8BAAI,EAACM,SAAS,CAAC,EAAE,IAAAN,8BAAI,EAACE,OAAO,CAAC,EAAE,IAAAF,8BAAI,EAACG,GAAG,CAAC,CAAC,GACjE,IAAI,CAAClC,MAAM,CAACsC,UAAU,CAAC,IAAAP,8BAAI,EAACM,SAAS,CAAC,EAAE,IAAAN,8BAAI,EAACE,OAAO,CAAC,CAAC;EAC5D;AACF;;AAEA;AAAAM,OAAA,CAAA3C,EAAA,GAAAA,EAAA;AACO,SAASQ,aAAaA,CAC3BC,OAA6B,EAC7BC,QAAgC,EACjB;EACfkC,yBAAyB,CAACnC,OAAO,CAAC;EAElC,MAAMG,UAAU,GAAGH,OAAO,CAACG,UAA8B;EACzD,MAAMiC,OAAO,GAAGjC,UAAU,CAACkC,iBAAiB;EAE5C,IAAID,OAAO,KAAK,IAAI,EAAE;IACpB,OAAOE,eAAe,CAACtC,OAAO,EAAEC,QAAQ,CAAC;EAC3C;EAEA,MAAMR,IAAI,GAAG2C,OAA0B;EACvC,MAAMG,EAAE,GAAG,IAAIhD,EAAE,CAACE,IAAI,EAAE,CAAC,CAAC,CAAC;EAC3B,OAAO8C,EAAE,CAACxC,aAAa,CAACC,OAAO,EAAEC,QAAQ,CAAC;AAC5C;AAEA,SAASuC,mBAAmBA,CAACD,EAAM,EAGjC;EACA,MAAME,aAAa,GAAGF,EAAE,CAAChB,YAAY,CAAC,CAAC;EACvC,MAAMmB,cAAc,GAAGH,EAAE,CAACf,aAAa,CAAC,CAAC;EACzC,MAAMmB,GAAG,GAAGC,kBAAS,CAACC,eAAe,CACnC,QAAQ,EACRJ,aAAa,EACbK,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACC,IACd,CAAoB;EACpB,MAAMC,IAAI,GAAGN,kBAAS,CAACC,eAAe,CACpC,SAAS,EACTH,cAAc,EACdI,kBAAW,CAACC,GAAG,EACfC,kBAAW,CAACG,KACd,CAA0B;EAC1B,OAAO;IAAER,GAAG;IAAEO;EAAK,CAAC;AACtB;;AAEA;AACA,SAASE,sBAAsBA,CAC7Bb,EAAM,EACNc,QAA0B,EAI1B;EACA,MAAM;IAAErC,YAAY;IAAEE,aAAa;IAAEE,MAAM;IAAEC;EAAW,CAAC,GAAGgC,QAAQ;EACpE,MAAM;IAAEV,GAAG;IAAEO;EAAK,CAAC,GAAGV,mBAAmB,CAACD,EAAE,CAAC;EAE7C,IAAIlC,SAAiD;EACrD,IAAIF,UAAwD;EAE5D,IAAIa,YAAY,IAAI,IAAI,IAAIA,YAAY,KAAK,CAAC,CAAC,EAAE;IAC/CX,SAAS,GAAGsC,GAAG;EACjB,CAAC,MAAM;IACL,MAAMW,MAAM,GACVtC,YAAY,KAAK8B,kBAAW,CAACS,GAAG,GAAGT,kBAAW,CAACS,GAAG,GAAGT,kBAAW,CAACC,GAAG;IACtE,MAAMS,QAAQ,GAAGb,GAAG,CAACrC,MAAM,CAACC,SAAS,CAAC+C,MAAM,EAAEN,kBAAW,CAACC,IAAI,CAAC;IAC/D,IAAIK,MAAM,KAAKR,kBAAW,CAACS,GAAG,EAAE;MAC9BlD,SAAS,GAAGK,yBAAM,CAACC,IAAI,CAAC,IAAI8C,UAAU,CAACD,QAAQ,CAAC,CAAC,CAACE,QAAQ,CAAC,OAAO,CAAC;IACrE,CAAC,MAAM;MACLrD,SAAS,GAAGmD,QAAQ;IACtB;EACF;EAEA,IAAItC,aAAa,IAAI,IAAI,IAAIA,aAAa,KAAK,CAAC,CAAC,EAAE;IACjDf,UAAU,GAAG+C,IAAI;EACnB,CAAC,MAAM;IACL,MAAMI,MAAM,GACVpC,aAAa,KAAK4B,kBAAW,CAACS,GAAG,GAAGT,kBAAW,CAACS,GAAG,GAAGT,kBAAW,CAACC,GAAG;IACvE,MAAMS,QAAQ,GAAGN,IAAI,CAAC5C,MAAM,CAACC,SAAS,CACpC+C,MAAM,EACNN,kBAAW,CAACG,KAAK,EACjB/B,MAAM,EACNC,UACF,CAAC;IACD,IAAIiC,MAAM,KAAKR,kBAAW,CAACS,GAAG,EAAE;MAC9BpD,UAAU,GAAGO,yBAAM,CAACC,IAAI,CAAC,IAAI8C,UAAU,CAACD,QAAQ,CAAC,CAAC,CAACE,QAAQ,CAAC,OAAO,CAAC;IACtE,CAAC,MAAM;MACLvD,UAAU,GAAGqD,QAAQ;IACvB;EACF;EAEA,OAAO;IAAEnD,SAAS;IAAEF;EAAW,CAAC;AAClC;AAEO,SAASwD,kBAAkBA,CAChCC,OAAgB,EAChBnE,IAAqB,EACrB4D,QAA0B,EAC1BpD,QAA6C,EACf;EAC9B,MAAM4D,SAA2B,GAAG;IAClC,GAAGR,QAAQ;IACXrC,YAAY,EAAE8B,kBAAW,CAACC,GAAG;IAC7B9B,UAAU,EAAE+B,kBAAW,CAACC,IAAI;IAC5B/B,aAAa,EAAE4B,kBAAW,CAACC,GAAG;IAC9B5B,WAAW,EAAE6B,kBAAW,CAACG;EAC3B,CAAC;EACD,MAAMZ,EAAE,GAAG,IAAIhD,EAAE,CAACE,IAAI,EAAEoE,SAAS,CAAC;EAElC,IAAID,OAAO,EAAE;IACX,IAAI,CAAC3D,QAAQ,EAAE;MACb,MAAM,IAAIQ,KAAK,CAAC,kDAAkD,CAAC;IACrE;IACA8B,EAAE,CAACxB,eAAe,CAAC,CAAC,CACjB+C,IAAI,CAAC,MAAM;MACV,MAAM;QAAEzD,SAAS;QAAEF;MAAW,CAAC,GAAGiD,sBAAsB,CAACb,EAAE,EAAEc,QAAQ,CAAC;MACtEpD,QAAQ,CAACa,SAAS,EAAET,SAAS,EAAEF,UAAU,CAAC;IAC5C,CAAC,CAAC,CACD4D,KAAK,CAAClD,GAAG,IAAI;MACZZ,QAAQ,CAACY,GAAG,EAAEC,SAAS,EAAEA,SAAS,CAAC;IACrC,CAAC,CAAC;IACJ;EACF;EAEA,IAAID,GAAsB;EAC1B,IAAI;IACF0B,EAAE,CAACjB,mBAAmB,CAAC,CAAC;EAC1B,CAAC,CAAC,OAAOV,CAAC,EAAE;IACVC,GAAG,GAAGD,CAAC,YAAYH,KAAK,GAAGG,CAAC,GAAG,IAAIH,KAAK,CAACuD,MAAM,CAACpD,CAAC,CAAC,CAAC;EACrD;EAEA,MAAM;IAAEP,SAAS;IAAEF;EAAW,CAAC,GAAGU,GAAG,GACjC;IAAER,SAAS,EAAES,SAAS;IAAEX,UAAU,EAAEW;EAAU,CAAC,GAC/CsC,sBAAsB,CAACb,EAAE,EAAEc,QAAQ,CAAC;EAExC,IAAIpD,QAAQ,EAAE;IACZA,QAAQ,CAACY,GAAG,EAAER,SAAS,EAAEF,UAAU,CAAC;IACpC;EACF;EACA,OAAO,CAACU,GAAG,EAAER,SAAS,EAAEF,UAAU,CAAC;AACrC;AAEA,SAASmC,eAAeA,CACtBtC,OAA6B,EAC7BC,QAAgC,EACjB;EACf,MAAME,UAAU,GAAGH,OAAO,CAACG,UAA8B;EACzD,MAAME,SAAS,GAAGL,OAAO,CAACK,SAAgC;EAE1D,MAAM4D,SAAS,GAAG9D,UAAU,CAAC+D,UAAU;EACvC,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAIxD,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,MAAM0D,IAAI,GAAG,IAAIC,UAAI,CAACH,SAAS,CAAC;EAEhC,MAAMI,UAAU,GAAGlE,UAAU,CAACG,MAAM,CAACgE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;EACzD,IAAI,CAACD,UAAU,CAACE,CAAC,EAAE,MAAM,IAAI9D,KAAK,CAAC,qBAAqB,CAAC;EACzD0D,IAAI,CAACK,aAAa,CAAC9D,yBAAM,CAACC,IAAI,CAAC0D,UAAU,CAACE,CAAC,EAAE,WAAW,CAAC,CAAC;EAE1D,MAAME,SAAS,GAAGpE,SAAS,CAACC,MAAM,CAACgE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;EACvD,IAAI,CAACG,SAAS,CAACC,CAAC,IAAI,CAACD,SAAS,CAACE,CAAC,EAAE,MAAM,IAAIlE,KAAK,CAAC,oBAAoB,CAAC;EACvE,MAAMiE,CAAC,GAAGhE,yBAAM,CAACC,IAAI,CAAC8D,SAAS,CAACC,CAAC,EAAE,WAAW,CAAC;EAC/C,MAAMC,CAAC,GAAGjE,yBAAM,CAACC,IAAI,CAAC8D,SAAS,CAACE,CAAC,EAAE,WAAW,CAAC;EAC/C,MAAMC,WAAW,GAAGlE,yBAAM,CAACmE,MAAM,CAAC,CAACnE,yBAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE+D,CAAC,EAAEC,CAAC,CAAC,CAAC;EAE9D,IAAI;IACF,MAAMG,MAAM,GAAGX,IAAI,CAACY,aAAa,CAACH,WAAW,CAAC;IAC9C,IAAI3E,QAAQ,EAAE;MACZA,QAAQ,CAAC,IAAI,EAAE6E,MAAM,CAAC;IACxB,CAAC,MAAM;MACL,OAAOA,MAAM;IACf;EACF,CAAC,CAAC,OAAOlE,CAAU,EAAE;IACnB,MAAMC,GAAG,GAAGD,CAAU;IACtB,IAAIX,QAAQ,EAAE;MACZA,QAAQ,CAACY,GAAG,EAAEC,SAAS,CAAC;IAC1B,CAAC,MAAM;MACL,MAAMD,GAAG;IACX;EACF;AACF;AAEA,SAASsB,yBAAyBA,CAACnC,OAA6B,EAAQ;EACtE,MAAM;IAAEG,UAAU;IAAEE;EAAU,CAAC,GAAGL,OAAO;;EAEzC;EACA,IACE,CAACG,UAAU,IACX,OAAOA,UAAU,KAAK,QAAQ,IAC9B,EAAE,MAAM,IAAIA,UAAU,CAAC,EACvB;IACA,MAAM,IAAIM,KAAK,CAAC,gCAAgC,CAAC;EACnD;EACA,IAAI,CAACJ,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,IAAI,EAAE,MAAM,IAAIA,SAAS,CAAC,EAAE;IACzE,MAAM,IAAII,KAAK,CAAC,+BAA+B,CAAC;EAClD;;EAEA;EACA,IAAIN,UAAU,CAACV,IAAI,KAAK,SAAS,EAAE;IACjC,MAAM,IAAIgB,KAAK,CAAC,wCAAwC,CAAC;EAC3D;EACA,IAAIJ,SAAS,CAACZ,IAAI,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAIgB,KAAK,CAAC,sCAAsC,CAAC;EACzD;;EAEA;EACA,MAAMuE,cAAc,GAAG7E,UAAiC;EACxD,MAAM8E,aAAa,GAAG5E,SAAgC;;EAEtD;EACA,IACE2E,cAAc,CAAC3C,iBAAiB,IAChC4C,aAAa,CAAC5C,iBAAiB,IAC/B2C,cAAc,CAAC3C,iBAAiB,KAAK4C,aAAa,CAAC5C,iBAAiB,EACpE;IACA,MAAM,IAAI5B,KAAK,CAAC,oDAAoD,CAAC;EACvE;EAEA,QAAQuE,cAAc,CAAC3C,iBAAiB;IACtC;IACA,KAAK,IAAI;MAAE;QACT,MAAM6C,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,IAAI1E,KAAK,CAAC,4CAA4C,CAAC;QAC/D;QACA;MACF;IACA,KAAK,QAAQ;IACb,KAAK,MAAM;MACT;IACF;MACE,MAAM,IAAIA,KAAK,CACb,uBAAuBuE,cAAc,CAAC3C,iBAAiB,EACzD,CAAC;EACL;AACF;AAEO,eAAe+C,2BAA2BA,CAC/C3F,IAAyB,EACzB4F,WAAoB,EACpBC,SAAqB,EACG;EACxB,IAAI,IAAAC,kBAAW,EAACD,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9C,MAAM,IAAAE,uBAAgB,EAAC,6BAA6B/F,IAAI,EAAE,EAAE,aAAa,CAAC;EAC5E;EAEA,MAAMgG,YAAY,GAAG,IAAAC,qBAAc,EAACJ,SAAS,EAAE,QAAQ,CAAC;EACxD,MAAMK,aAAa,GAAG,IAAAD,qBAAc,EAACJ,SAAS,EAAE,MAAM,CAAC;EAEvD,IAAIK,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;IAC9B,MAAM,IAAAJ,uBAAgB,EAAC,wBAAwB,EAAE,aAAa,CAAC;EACjE;;EAEA;EACA,MAAM9F,MAAM,GAAG;IACbsB,YAAY,EAAE8B,kBAAW,CAACC,GAAG;IAC7B9B,UAAU,EAAE+B,kBAAW,CAACC,IAAI;IAC5B/B,aAAa,EAAE4B,kBAAW,CAACC,GAAG;IAC9B5B,WAAW,EAAE6B,kBAAW,CAACG;EAC3B,CAAC;EACD,MAAMZ,EAAE,GAAG,IAAIhD,EAAE,CAACE,IAAI,EAAEC,MAAM,CAAC;EAC/B,MAAM6C,EAAE,CAACxB,eAAe,CAAC,CAAC;EAE1B,MAAM8E,aAAa,GAAGpG,IAAI,KAAK,SAAS,GAAG,SAAS,GAAG,OAAO;EAC9D,MAAM;IAAEkD,GAAG;IAAEO;EAAK,CAAC,GAAGV,mBAAmB,CAACD,EAAE,CAAC;EAE7C,MAAMlC,SAAS,GAAG,IAAIyF,kBAAS,CAC7BnD,GAAG,EACH;IAAEoD,IAAI,EAAEF;EAAc,CAAC,EACvBJ,YAAY,EACZ,IACF,CAAC;EACD,MAAMtF,UAAU,GAAG,IAAI2F,kBAAS,CAC9B5C,IAAI,EACJ;IAAE6C,IAAI,EAAEF;EAAc,CAAC,EACvBF,aAAa,EACbN,WACF,CAAC;EAED,OAAO;IAAEhF,SAAS;IAAEF;EAAW,CAAC;AAClC;AAEO,eAAe6F,0BAA0BA,CAC9CvG,IAAuB,EACvB4F,WAAoB,EACpBC,SAAqB,EACG;EACxB,IAAI,IAAAC,kBAAW,EAACD,SAAS,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE;IACvD,MAAM,IAAAE,uBAAgB,EAAC,6BAA6B/F,IAAI,EAAE,EAAE,aAAa,CAAC;EAC5E;EAEA,MAAMgG,YAAY,GAAG,IAAAC,qBAAc,EAACJ,SAAS,CAAC;EAC9C,MAAMK,aAAa,GAAG,IAAAD,qBAAc,EAACJ,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC;EAE1E,IAAIK,aAAa,CAACC,MAAM,KAAK,CAAC,EAAE;IAC9B,MAAM,IAAAJ,uBAAgB,EAAC,wBAAwB,EAAE,aAAa,CAAC;EACjE;;EAEA;EACA,MAAM9F,MAAM,GAAG;IACbsB,YAAY,EAAE8B,kBAAW,CAACC,GAAG;IAC7B9B,UAAU,EAAE+B,kBAAW,CAACC,IAAI;IAC5B/B,aAAa,EAAE4B,kBAAW,CAACC,GAAG;IAC9B5B,WAAW,EAAE6B,kBAAW,CAACG;EAC3B,CAAC;EACD,MAAMZ,EAAE,GAAG,IAAIhD,EAAE,CAACE,IAAI,EAAEC,MAAM,CAAC;EAC/B,MAAM6C,EAAE,CAACxB,eAAe,CAAC,CAAC;EAE1B,MAAM8E,aAAa,GAAGpG,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM;EAC3D,MAAM;IAAEkD,GAAG;IAAEO;EAAK,CAAC,GAAGV,mBAAmB,CAACD,EAAE,CAAC;EAE7C,MAAMlC,SAAS,GAAG,IAAIyF,kBAAS,CAC7BnD,GAAG,EACH;IAAEoD,IAAI,EAAEF;EAAc,CAAC,EACvBJ,YAAY,EACZ,IACF,CAAC;EACD,MAAMtF,UAAU,GAAG,IAAI2F,kBAAS,CAC9B5C,IAAI,EACJ;IAAE6C,IAAI,EAAEF;EAAc,CAAC,EACvBF,aAAa,EACbN,WACF,CAAC;EAED,OAAO;IAAEhF,SAAS;IAAEF;EAAW,CAAC;AAClC;AAEO,SAAS8F,WAAWA,CACzBC,SAA0B,EAC1BC,OAAkB,EAClBP,MAAqB,EACR;EACb,MAAMvF,SAAS,GAAG6F,SAAS,CAACE,MAAM;EAElC,IAAI,CAAC/F,SAAS,EAAE;IACd,MAAM,IAAII,KAAK,CAAC,mDAAmD,CAAC;EACtE;EAEA,IAAI0F,OAAO,CAACD,SAAS,CAACH,IAAI,KAAK1F,SAAS,CAAC6F,SAAS,CAACH,IAAI,EAAE;IACvD,MAAM,IAAItF,KAAK,CAAC,oCAAoC,CAAC;EACvD;EAEA,MAAMhB,IAAI,GAAG0G,OAAO,CAACD,SAAS,CAACH,IAAI,CAACM,WAAW,CAAC,CAAsB;EACtE,MAAM9D,EAAE,GAAG,IAAIhD,EAAE,CAACE,IAAI,EAAE,CAAC,CAAC,CAAC;;EAE3B;EACA,MAAM6G,eAAe,GAAGH,OAAO,CAACI,SAAS,CAACjG,MAAM,CAACC,SAAS,CAAC,CAAC;EAC5D,MAAMiG,cAAc,GAAGnG,SAAS,CAACkG,SAAS,CAACjG,MAAM,CAACC,SAAS,CAAC,CAAC;EAE7D,MAAMkG,eAAe,GAAG,IAAIhD,UAAU,CAAC6C,eAAe,CAAC;EACvD,MAAMI,cAAc,GAAG,IAAIjD,UAAU,CAAC+C,cAAc,CAAC;EAErD,MAAM1B,MAAM,GAAGvC,EAAE,CAACd,eAAe,CAACgF,eAAe,EAAEC,cAAc,CAAC;;EAElE;EACA,IAAId,MAAM,KAAK,IAAI,EAAE;IACnB,OAAOd,MAAM;EACf;;EAEA;EACA,MAAM6B,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACjB,MAAM,GAAG,CAAC,CAAC;EACxC,IAAId,MAAM,CAAC6B,UAAU,IAAIA,UAAU,EAAE;IACnC,OAAO7B,MAAM,CAACgC,KAAK,CAAC,CAAC,EAAEH,UAAU,CAAC;EACpC;EAEA,MAAM,IAAIlG,KAAK,CAAC,8CAA8C,CAAC;AACjE","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
|
|
29
|
-
const
|
|
30
|
-
const
|
|
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
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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
|
-
} =
|
|
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
|
-
} :
|
|
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
|
|
267
|
-
|
|
268
|
-
|
|
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
|
|
302
|
-
|
|
303
|
-
|
|
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);
|
package/lib/module/ed.js.map
CHANGED
|
@@ -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":"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","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":[]}
|