ox 0.8.1 → 0.8.3
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/CHANGELOG.md +20 -0
- package/Ed25519/package.json +6 -0
- package/X25519/package.json +6 -0
- package/_cjs/core/Bls.js +10 -0
- package/_cjs/core/Bls.js.map +1 -1
- package/_cjs/core/Ed25519.js +53 -0
- package/_cjs/core/Ed25519.js.map +1 -0
- package/_cjs/core/P256.js +23 -0
- package/_cjs/core/P256.js.map +1 -1
- package/_cjs/core/Secp256k1.js +20 -0
- package/_cjs/core/Secp256k1.js.map +1 -1
- package/_cjs/core/WebAuthnP256.js +5 -4
- package/_cjs/core/WebAuthnP256.js.map +1 -1
- package/_cjs/core/WebCryptoP256.js +31 -0
- package/_cjs/core/WebCryptoP256.js.map +1 -1
- package/_cjs/core/X25519.js +45 -0
- package/_cjs/core/X25519.js.map +1 -0
- package/_cjs/index.js +4 -2
- package/_cjs/index.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/core/Bls.js +109 -0
- package/_esm/core/Bls.js.map +1 -1
- package/_esm/core/Ed25519.js +121 -0
- package/_esm/core/Ed25519.js.map +1 -0
- package/_esm/core/P256.js +54 -2
- package/_esm/core/P256.js.map +1 -1
- package/_esm/core/Secp256k1.js +50 -0
- package/_esm/core/Secp256k1.js.map +1 -1
- package/_esm/core/WebAuthnP256.js +5 -4
- package/_esm/core/WebAuthnP256.js.map +1 -1
- package/_esm/core/WebCryptoP256.js +72 -0
- package/_esm/core/WebCryptoP256.js.map +1 -1
- package/_esm/core/X25519.js +97 -0
- package/_esm/core/X25519.js.map +1 -0
- package/_esm/index.js +65 -0
- package/_esm/index.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/core/Bls.d.ts +124 -0
- package/_types/core/Bls.d.ts.map +1 -1
- package/_types/core/Ed25519.d.ts +156 -0
- package/_types/core/Ed25519.d.ts.map +1 -0
- package/_types/core/P256.d.ts +68 -2
- package/_types/core/P256.d.ts.map +1 -1
- package/_types/core/Secp256k1.d.ts +67 -0
- package/_types/core/Secp256k1.d.ts.map +1 -1
- package/_types/core/WebAuthnP256.d.ts +2 -0
- package/_types/core/WebAuthnP256.d.ts.map +1 -1
- package/_types/core/WebCryptoP256.d.ts +76 -1
- package/_types/core/WebCryptoP256.d.ts.map +1 -1
- package/_types/core/X25519.d.ts +127 -0
- package/_types/core/X25519.d.ts.map +1 -0
- package/_types/index.d.ts +65 -0
- package/_types/index.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/core/Bls.ts +150 -0
- package/core/Ed25519.ts +237 -0
- package/core/P256.ts +114 -2
- package/core/Secp256k1.ts +110 -0
- package/core/WebAuthnP256.ts +9 -3
- package/core/WebCryptoP256.ts +141 -1
- package/core/X25519.ts +202 -0
- package/index.ts +67 -0
- package/package.json +11 -1
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 0.8.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#74](https://github.com/wevm/ox/pull/74) [`72209ef`](https://github.com/wevm/ox/commit/72209efaf2bf6dd5d71274db8df7416532ebe9cb) Thanks [@danpopenko](https://github.com/danpopenko)! - Added extensions support for `WebAuthnP256.sign`.
|
|
8
|
+
|
|
9
|
+
## 0.8.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`9fd0bf0`](https://github.com/wevm/ox/commit/9fd0bf0460694709566805bc29f50cad25816620) Thanks [@jxom](https://github.com/jxom)! - Added [ECDH (Elliptic Curve Diffie-Hellman)](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey#ecdh) shared secrets to `P256`, `Secp256k1`, and `WebCryptoP256` modules. This enables secure key agreement between parties using elliptic curve cryptography for both secp256k1 and secp256r1 (P256) curves, with support for both `@noble/curves` (for `P256` and `Secp256k1`) implementation and Web Crypto APIs (`WebCryptoP256`).
|
|
14
|
+
|
|
15
|
+
- `P256.getSharedSecret`
|
|
16
|
+
- `Secp256k1.getSharedSecret`
|
|
17
|
+
- `WebCryptoP256.getSharedSecret`
|
|
18
|
+
|
|
19
|
+
- [`9fd0bf0`](https://github.com/wevm/ox/commit/9fd0bf0460694709566805bc29f50cad25816620) Thanks [@jxom](https://github.com/jxom)! - Added `createKeyPair` helper functions for `Bls`, `P256`, and `Secp256k1` modules. These functions provide a convenient way to generate complete key pairs (private key + public key) in a single operation, simplifying key generation workflows and reducing the need for separate `randomPrivateKey` and `getPublicKey` calls.
|
|
20
|
+
|
|
21
|
+
- [`9fd0bf0`](https://github.com/wevm/ox/commit/9fd0bf0460694709566805bc29f50cad25816620) Thanks [@jxom](https://github.com/jxom)! - Added `Ed25519` and `X25519` modules. The `Ed25519` module provides functionality for creating key pairs, signing messages, and verifying signatures using the Ed25519 signature scheme. The `X25519` module enables Elliptic Curve Diffie-Hellman (ECDH) key agreement operations for secure shared secret derivation.
|
|
22
|
+
|
|
3
23
|
## 0.8.1
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/_cjs/core/Bls.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.noble = void 0;
|
|
4
4
|
exports.aggregate = aggregate;
|
|
5
|
+
exports.createKeyPair = createKeyPair;
|
|
5
6
|
exports.getPublicKey = getPublicKey;
|
|
6
7
|
exports.randomPrivateKey = randomPrivateKey;
|
|
7
8
|
exports.sign = sign;
|
|
@@ -19,6 +20,15 @@ function aggregate(points) {
|
|
|
19
20
|
z: point.pz,
|
|
20
21
|
};
|
|
21
22
|
}
|
|
23
|
+
function createKeyPair(options = {}) {
|
|
24
|
+
const { as = 'Hex', size = 'short-key:long-sig' } = options;
|
|
25
|
+
const privateKey = randomPrivateKey({ as });
|
|
26
|
+
const publicKey = getPublicKey({ privateKey, size });
|
|
27
|
+
return {
|
|
28
|
+
privateKey: privateKey,
|
|
29
|
+
publicKey: publicKey,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
22
32
|
function getPublicKey(options) {
|
|
23
33
|
const { privateKey, size = 'short-key:long-sig' } = options;
|
|
24
34
|
const group = size === 'short-key:long-sig' ? bls12_381_1.bls12_381.G1 : bls12_381_1.bls12_381.G2;
|
package/_cjs/core/Bls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bls.js","sourceRoot":"","sources":["../../core/Bls.ts"],"names":[],"mappings":";;;AAoDA,8BAcC;
|
|
1
|
+
{"version":3,"file":"Bls.js","sourceRoot":"","sources":["../../core/Bls.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.noble = void 0;
|
|
4
|
+
exports.createKeyPair = createKeyPair;
|
|
5
|
+
exports.getPublicKey = getPublicKey;
|
|
6
|
+
exports.randomPrivateKey = randomPrivateKey;
|
|
7
|
+
exports.sign = sign;
|
|
8
|
+
exports.verify = verify;
|
|
9
|
+
const ed25519_1 = require("@noble/curves/ed25519");
|
|
10
|
+
const Bytes = require("./Bytes.js");
|
|
11
|
+
const Hex = require("./Hex.js");
|
|
12
|
+
exports.noble = ed25519_1.ed25519;
|
|
13
|
+
function createKeyPair(options = {}) {
|
|
14
|
+
const { as = 'Hex' } = options;
|
|
15
|
+
const privateKey = randomPrivateKey({ as });
|
|
16
|
+
const publicKey = getPublicKey({ privateKey, as });
|
|
17
|
+
return {
|
|
18
|
+
privateKey: privateKey,
|
|
19
|
+
publicKey: publicKey,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function getPublicKey(options) {
|
|
23
|
+
const { as = 'Hex', privateKey } = options;
|
|
24
|
+
const privateKeyBytes = Bytes.from(privateKey);
|
|
25
|
+
const publicKeyBytes = ed25519_1.ed25519.getPublicKey(privateKeyBytes);
|
|
26
|
+
if (as === 'Hex')
|
|
27
|
+
return Hex.fromBytes(publicKeyBytes);
|
|
28
|
+
return publicKeyBytes;
|
|
29
|
+
}
|
|
30
|
+
function randomPrivateKey(options = {}) {
|
|
31
|
+
const { as = 'Hex' } = options;
|
|
32
|
+
const bytes = ed25519_1.ed25519.utils.randomPrivateKey();
|
|
33
|
+
if (as === 'Hex')
|
|
34
|
+
return Hex.fromBytes(bytes);
|
|
35
|
+
return bytes;
|
|
36
|
+
}
|
|
37
|
+
function sign(options) {
|
|
38
|
+
const { as = 'Hex', payload, privateKey } = options;
|
|
39
|
+
const payloadBytes = Bytes.from(payload);
|
|
40
|
+
const privateKeyBytes = Bytes.from(privateKey);
|
|
41
|
+
const signatureBytes = ed25519_1.ed25519.sign(payloadBytes, privateKeyBytes);
|
|
42
|
+
if (as === 'Hex')
|
|
43
|
+
return Hex.fromBytes(signatureBytes);
|
|
44
|
+
return signatureBytes;
|
|
45
|
+
}
|
|
46
|
+
function verify(options) {
|
|
47
|
+
const { payload, publicKey, signature } = options;
|
|
48
|
+
const payloadBytes = Bytes.from(payload);
|
|
49
|
+
const publicKeyBytes = Bytes.from(publicKey);
|
|
50
|
+
const signatureBytes = Bytes.from(signature);
|
|
51
|
+
return ed25519_1.ed25519.verify(signatureBytes, payloadBytes, publicKeyBytes);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=Ed25519.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ed25519.js","sourceRoot":"","sources":["../../core/Ed25519.ts"],"names":[],"mappings":";;;AAqBA,sCAWC;AAwCD,oCAQC;AAsCD,4CAOC;AAkCD,oBASC;AAiDD,wBAMC;AA/ND,mDAA+C;AAC/C,oCAAmC;AAEnC,gCAA+B;AAGlB,QAAA,KAAK,GAAG,iBAAO,CAAA;AAe5B,SAAgB,aAAa,CAC3B,UAAqC,EAAE;IAEvC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IAC9B,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO;QACL,UAAU,EAAE,UAAmB;QAC/B,SAAS,EAAE,SAAkB;KAC9B,CAAA;AACH,CAAC;AAwCD,SAAgB,YAAY,CAC1B,OAAiC;IAEjC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,iBAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;IAC5D,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,CAAU,CAAA;IAC/D,OAAO,cAAuB,CAAA;AAChC,CAAC;AAsCD,SAAgB,gBAAgB,CAC9B,UAAwC,EAAE;IAE1C,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IAC9B,MAAM,KAAK,GAAG,iBAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;IAC9C,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;IACtD,OAAO,KAAc,CAAA;AACvB,CAAC;AAkCD,SAAgB,IAAI,CAClB,OAAyB;IAEzB,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IACnD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,iBAAO,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;IAClE,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,CAAU,CAAA;IAC/D,OAAO,cAAuB,CAAA;AAChC,CAAC;AAiDD,SAAgB,MAAM,CAAC,OAAuB;IAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACjD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5C,OAAO,iBAAO,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,CAAA;AACrE,CAAC"}
|
package/_cjs/core/P256.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.noble = void 0;
|
|
4
|
+
exports.createKeyPair = createKeyPair;
|
|
4
5
|
exports.getPublicKey = getPublicKey;
|
|
6
|
+
exports.getSharedSecret = getSharedSecret;
|
|
5
7
|
exports.randomPrivateKey = randomPrivateKey;
|
|
6
8
|
exports.recoverPublicKey = recoverPublicKey;
|
|
7
9
|
exports.sign = sign;
|
|
@@ -12,6 +14,15 @@ const Hex = require("./Hex.js");
|
|
|
12
14
|
const PublicKey = require("./PublicKey.js");
|
|
13
15
|
const Entropy = require("./internal/entropy.js");
|
|
14
16
|
exports.noble = p256_1.secp256r1;
|
|
17
|
+
function createKeyPair(options = {}) {
|
|
18
|
+
const { as = 'Hex' } = options;
|
|
19
|
+
const privateKey = randomPrivateKey({ as });
|
|
20
|
+
const publicKey = getPublicKey({ privateKey });
|
|
21
|
+
return {
|
|
22
|
+
privateKey: privateKey,
|
|
23
|
+
publicKey,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
15
26
|
function getPublicKey(options) {
|
|
16
27
|
const { privateKey } = options;
|
|
17
28
|
const point = p256_1.secp256r1.ProjectivePoint.fromPrivateKey(typeof privateKey === 'string'
|
|
@@ -19,6 +30,18 @@ function getPublicKey(options) {
|
|
|
19
30
|
: Hex.fromBytes(privateKey).slice(2));
|
|
20
31
|
return PublicKey.from(point);
|
|
21
32
|
}
|
|
33
|
+
function getSharedSecret(options) {
|
|
34
|
+
const { as = 'Hex', privateKey, publicKey } = options;
|
|
35
|
+
const point = p256_1.secp256r1.ProjectivePoint.fromHex(PublicKey.toHex(publicKey).slice(2));
|
|
36
|
+
const privateKeyHex = typeof privateKey === 'string'
|
|
37
|
+
? privateKey.slice(2)
|
|
38
|
+
: Hex.fromBytes(privateKey).slice(2);
|
|
39
|
+
const sharedPoint = point.multiply(p256_1.secp256r1.utils.normPrivateKeyToScalar(privateKeyHex));
|
|
40
|
+
const sharedSecret = sharedPoint.toRawBytes(true);
|
|
41
|
+
if (as === 'Hex')
|
|
42
|
+
return Hex.fromBytes(sharedSecret);
|
|
43
|
+
return sharedSecret;
|
|
44
|
+
}
|
|
22
45
|
function randomPrivateKey(options = {}) {
|
|
23
46
|
const { as = 'Hex' } = options;
|
|
24
47
|
const bytes = p256_1.secp256r1.utils.randomPrivateKey();
|
package/_cjs/core/P256.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"P256.js","sourceRoot":"","sources":["../../core/P256.ts"],"names":[],"mappings":";;;AAwBA,oCAUC;
|
|
1
|
+
{"version":3,"file":"P256.js","sourceRoot":"","sources":["../../core/P256.ts"],"names":[],"mappings":"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"}
|
package/_cjs/core/Secp256k1.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.noble = void 0;
|
|
4
|
+
exports.createKeyPair = createKeyPair;
|
|
4
5
|
exports.getPublicKey = getPublicKey;
|
|
6
|
+
exports.getSharedSecret = getSharedSecret;
|
|
5
7
|
exports.randomPrivateKey = randomPrivateKey;
|
|
6
8
|
exports.recoverAddress = recoverAddress;
|
|
7
9
|
exports.recoverPublicKey = recoverPublicKey;
|
|
@@ -14,11 +16,29 @@ const Hex = require("./Hex.js");
|
|
|
14
16
|
const PublicKey = require("./PublicKey.js");
|
|
15
17
|
const Entropy = require("./internal/entropy.js");
|
|
16
18
|
exports.noble = secp256k1_1.secp256k1;
|
|
19
|
+
function createKeyPair(options = {}) {
|
|
20
|
+
const { as = 'Hex' } = options;
|
|
21
|
+
const privateKey = randomPrivateKey({ as });
|
|
22
|
+
const publicKey = getPublicKey({ privateKey });
|
|
23
|
+
return {
|
|
24
|
+
privateKey: privateKey,
|
|
25
|
+
publicKey,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
17
28
|
function getPublicKey(options) {
|
|
18
29
|
const { privateKey } = options;
|
|
19
30
|
const point = secp256k1_1.secp256k1.ProjectivePoint.fromPrivateKey(Hex.from(privateKey).slice(2));
|
|
20
31
|
return PublicKey.from(point);
|
|
21
32
|
}
|
|
33
|
+
function getSharedSecret(options) {
|
|
34
|
+
const { as = 'Hex', privateKey, publicKey } = options;
|
|
35
|
+
const point = secp256k1_1.secp256k1.ProjectivePoint.fromHex(PublicKey.toHex(publicKey).slice(2));
|
|
36
|
+
const sharedPoint = point.multiply(secp256k1_1.secp256k1.utils.normPrivateKeyToScalar(Hex.from(privateKey).slice(2)));
|
|
37
|
+
const sharedSecret = sharedPoint.toRawBytes(true);
|
|
38
|
+
if (as === 'Hex')
|
|
39
|
+
return Hex.fromBytes(sharedSecret);
|
|
40
|
+
return sharedSecret;
|
|
41
|
+
}
|
|
22
42
|
function randomPrivateKey(options = {}) {
|
|
23
43
|
const { as = 'Hex' } = options;
|
|
24
44
|
const bytes = secp256k1_1.secp256k1.utils.randomPrivateKey();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Secp256k1.js","sourceRoot":"","sources":["../../core/Secp256k1.ts"],"names":[],"mappings":";;;AA0BA,oCAQC;
|
|
1
|
+
{"version":3,"file":"Secp256k1.js","sourceRoot":"","sources":["../../core/Secp256k1.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,10 +62,10 @@ function getCredentialCreationOptions(options) {
|
|
|
62
62
|
residentKey: 'preferred',
|
|
63
63
|
requireResidentKey: false,
|
|
64
64
|
userVerification: 'required',
|
|
65
|
-
}, challenge = exports.createChallenge, excludeCredentialIds, name: name_, rp = {
|
|
65
|
+
}, challenge = exports.createChallenge, excludeCredentialIds, extensions, name: name_, rp = {
|
|
66
66
|
id: window.location.hostname,
|
|
67
67
|
name: window.document.title,
|
|
68
|
-
}, user,
|
|
68
|
+
}, user, } = options;
|
|
69
69
|
const name = (user?.name ?? name_);
|
|
70
70
|
return {
|
|
71
71
|
publicKey: {
|
|
@@ -86,18 +86,18 @@ function getCredentialCreationOptions(options) {
|
|
|
86
86
|
alg: -7,
|
|
87
87
|
},
|
|
88
88
|
],
|
|
89
|
+
...(extensions && { extensions }),
|
|
89
90
|
rp,
|
|
90
91
|
user: {
|
|
91
92
|
id: user?.id ?? Hash.keccak256(Bytes.fromString(name), { as: 'Bytes' }),
|
|
92
93
|
name,
|
|
93
94
|
displayName: user?.displayName ?? name,
|
|
94
95
|
},
|
|
95
|
-
extensions,
|
|
96
96
|
},
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
function getCredentialRequestOptions(options) {
|
|
100
|
-
const { credentialId, challenge, rpId = window.location.hostname, userVerification = 'required', } = options;
|
|
100
|
+
const { credentialId, challenge, extensions, rpId = window.location.hostname, userVerification = 'required', } = options;
|
|
101
101
|
return {
|
|
102
102
|
publicKey: {
|
|
103
103
|
...(credentialId
|
|
@@ -116,6 +116,7 @@ function getCredentialRequestOptions(options) {
|
|
|
116
116
|
}
|
|
117
117
|
: {}),
|
|
118
118
|
challenge: Bytes.fromHex(challenge),
|
|
119
|
+
...(extensions && { extensions }),
|
|
119
120
|
rpId,
|
|
120
121
|
userVerification,
|
|
121
122
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebAuthnP256.js","sourceRoot":"","sources":["../../core/WebAuthnP256.ts"],"names":[],"mappings":";;;AAsDA,4CA6BC;AAkDD,oDAQC;AA0CD,8CAeC;AAiCD,oEAiDC;AA0FD,
|
|
1
|
+
{"version":3,"file":"WebAuthnP256.js","sourceRoot":"","sources":["../../core/WebAuthnP256.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createKeyPair = createKeyPair;
|
|
4
|
+
exports.createKeyPairECDH = createKeyPairECDH;
|
|
5
|
+
exports.getSharedSecret = getSharedSecret;
|
|
4
6
|
exports.sign = sign;
|
|
5
7
|
exports.verify = verify;
|
|
6
8
|
const p256_1 = require("@noble/curves/p256");
|
|
7
9
|
const Bytes = require("./Bytes.js");
|
|
10
|
+
const Hex = require("./Hex.js");
|
|
8
11
|
const PublicKey = require("./PublicKey.js");
|
|
9
12
|
async function createKeyPair(options = {}) {
|
|
10
13
|
const { extractable = false } = options;
|
|
@@ -19,6 +22,34 @@ async function createKeyPair(options = {}) {
|
|
|
19
22
|
publicKey,
|
|
20
23
|
};
|
|
21
24
|
}
|
|
25
|
+
async function createKeyPairECDH(options = {}) {
|
|
26
|
+
const { extractable = false } = options;
|
|
27
|
+
const keypair = await globalThis.crypto.subtle.generateKey({
|
|
28
|
+
name: 'ECDH',
|
|
29
|
+
namedCurve: 'P-256',
|
|
30
|
+
}, extractable, ['deriveKey', 'deriveBits']);
|
|
31
|
+
const publicKey_raw = await globalThis.crypto.subtle.exportKey('raw', keypair.publicKey);
|
|
32
|
+
const publicKey = PublicKey.from(new Uint8Array(publicKey_raw));
|
|
33
|
+
return {
|
|
34
|
+
privateKey: keypair.privateKey,
|
|
35
|
+
publicKey,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async function getSharedSecret(options) {
|
|
39
|
+
const { as = 'Hex', privateKey, publicKey } = options;
|
|
40
|
+
if (privateKey.algorithm.name === 'ECDSA') {
|
|
41
|
+
throw new Error('privateKey is not compatible with ECDH. please use `createKeyPairECDH` to create an ECDH key.');
|
|
42
|
+
}
|
|
43
|
+
const publicKeyCrypto = await globalThis.crypto.subtle.importKey('raw', PublicKey.toBytes(publicKey), { name: 'ECDH', namedCurve: 'P-256' }, false, []);
|
|
44
|
+
const sharedSecretBuffer = await globalThis.crypto.subtle.deriveBits({
|
|
45
|
+
name: 'ECDH',
|
|
46
|
+
public: publicKeyCrypto,
|
|
47
|
+
}, privateKey, 256);
|
|
48
|
+
const sharedSecret = new Uint8Array(sharedSecretBuffer);
|
|
49
|
+
if (as === 'Hex')
|
|
50
|
+
return Hex.fromBytes(sharedSecret);
|
|
51
|
+
return sharedSecret;
|
|
52
|
+
}
|
|
22
53
|
async function sign(options) {
|
|
23
54
|
const { payload, privateKey } = options;
|
|
24
55
|
const signature = await globalThis.crypto.subtle.sign({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebCryptoP256.js","sourceRoot":"","sources":["../../core/WebCryptoP256.ts"],"names":[],"mappings":";;AAiCA,sCAqBC;
|
|
1
|
+
{"version":3,"file":"WebCryptoP256.js","sourceRoot":"","sources":["../../core/WebCryptoP256.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.noble = void 0;
|
|
4
|
+
exports.createKeyPair = createKeyPair;
|
|
5
|
+
exports.getPublicKey = getPublicKey;
|
|
6
|
+
exports.getSharedSecret = getSharedSecret;
|
|
7
|
+
exports.randomPrivateKey = randomPrivateKey;
|
|
8
|
+
const ed25519_1 = require("@noble/curves/ed25519");
|
|
9
|
+
const Bytes = require("./Bytes.js");
|
|
10
|
+
const Hex = require("./Hex.js");
|
|
11
|
+
exports.noble = ed25519_1.x25519;
|
|
12
|
+
function createKeyPair(options = {}) {
|
|
13
|
+
const { as = 'Hex' } = options;
|
|
14
|
+
const privateKey = randomPrivateKey({ as });
|
|
15
|
+
const publicKey = getPublicKey({ privateKey, as });
|
|
16
|
+
return {
|
|
17
|
+
privateKey: privateKey,
|
|
18
|
+
publicKey: publicKey,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function getPublicKey(options) {
|
|
22
|
+
const { as = 'Hex', privateKey } = options;
|
|
23
|
+
const privateKeyBytes = Bytes.from(privateKey);
|
|
24
|
+
const publicKeyBytes = ed25519_1.x25519.getPublicKey(privateKeyBytes);
|
|
25
|
+
if (as === 'Hex')
|
|
26
|
+
return Hex.fromBytes(publicKeyBytes);
|
|
27
|
+
return publicKeyBytes;
|
|
28
|
+
}
|
|
29
|
+
function getSharedSecret(options) {
|
|
30
|
+
const { as = 'Hex', privateKey, publicKey } = options;
|
|
31
|
+
const privateKeyBytes = Bytes.from(privateKey);
|
|
32
|
+
const publicKeyBytes = Bytes.from(publicKey);
|
|
33
|
+
const sharedSecretBytes = ed25519_1.x25519.getSharedSecret(privateKeyBytes, publicKeyBytes);
|
|
34
|
+
if (as === 'Hex')
|
|
35
|
+
return Hex.fromBytes(sharedSecretBytes);
|
|
36
|
+
return sharedSecretBytes;
|
|
37
|
+
}
|
|
38
|
+
function randomPrivateKey(options = {}) {
|
|
39
|
+
const { as = 'Hex' } = options;
|
|
40
|
+
const bytes = ed25519_1.x25519.utils.randomPrivateKey();
|
|
41
|
+
if (as === 'Hex')
|
|
42
|
+
return Hex.fromBytes(bytes);
|
|
43
|
+
return bytes;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=X25519.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"X25519.js","sourceRoot":"","sources":["../../core/X25519.ts"],"names":[],"mappings":";;;AAqBA,sCAWC;AAwCD,oCAQC;AA4CD,0CAYC;AA0CD,4CAOC;AAzLD,mDAA8C;AAC9C,oCAAmC;AAEnC,gCAA+B;AAGlB,QAAA,KAAK,GAAG,gBAAM,CAAA;AAe3B,SAAgB,aAAa,CAC3B,UAAqC,EAAE;IAEvC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IAC9B,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO;QACL,UAAU,EAAE,UAAmB;QAC/B,SAAS,EAAE,SAAkB;KAC9B,CAAA;AACH,CAAC;AAwCD,SAAgB,YAAY,CAC1B,OAAiC;IAEjC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,gBAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;IAC3D,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,CAAU,CAAA;IAC/D,OAAO,cAAuB,CAAA;AAChC,CAAC;AA4CD,SAAgB,eAAe,CAC7B,OAAoC;IAEpC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IACrD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,iBAAiB,GAAG,gBAAM,CAAC,eAAe,CAC9C,eAAe,EACf,cAAc,CACf,CAAA;IACD,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAU,CAAA;IAClE,OAAO,iBAA0B,CAAA;AACnC,CAAC;AA0CD,SAAgB,gBAAgB,CAC9B,UAAwC,EAAE;IAE1C,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IAC9B,MAAM,KAAK,GAAG,gBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;IAC7C,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;IACtD,OAAO,KAAc,CAAA;AACvB,CAAC"}
|
package/_cjs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.Withdrawal = exports.WebCryptoP256 = exports.WebAuthnP256 = exports.Value = exports.ValidatorData = exports.TypedData = exports.TransactionRequest = exports.TransactionReceipt = exports.TransactionEnvelopeEip7702 = exports.TransactionEnvelopeEip4844 = exports.TransactionEnvelopeEip2930 = exports.TransactionEnvelopeEip1559 = exports.TransactionEnvelopeLegacy = exports.TransactionEnvelope = exports.Transaction = void 0;
|
|
3
|
+
exports.Solidity = exports.Siwe = exports.Signature = exports.P256 = exports.Secp256k1 = exports.RpcTransport = exports.RpcResponse = exports.RpcRequest = exports.RpcSchema = exports.Rlp = exports.PublicKey = exports.Provider = exports.PersonalMessage = exports.Mnemonic = exports.Log = exports.Kzg = exports.Keystore = exports.Json = exports.Fee = exports.Hex = exports.HdKey = exports.Hash = exports.Filter = exports.Errors = exports.Ens = exports.Ed25519 = exports.ContractAddress = exports.Caches = exports.Bytes = exports.BlsPoint = exports.Bls = exports.Bloom = exports.BlockOverrides = exports.Block = exports.Blobs = exports.BinaryStateTree = exports.Base64 = exports.Base58 = exports.Authorization = exports.AesGcm = exports.Address = exports.AccountProof = exports.AccessList = exports.AbiParameters = exports.AbiItem = exports.AbiFunction = exports.AbiEvent = exports.AbiError = exports.AbiConstructor = exports.Abi = void 0;
|
|
4
|
+
exports.X25519 = exports.Withdrawal = exports.WebCryptoP256 = exports.WebAuthnP256 = exports.Value = exports.ValidatorData = exports.TypedData = exports.TransactionRequest = exports.TransactionReceipt = exports.TransactionEnvelopeEip7702 = exports.TransactionEnvelopeEip4844 = exports.TransactionEnvelopeEip2930 = exports.TransactionEnvelopeEip1559 = exports.TransactionEnvelopeLegacy = exports.TransactionEnvelope = exports.Transaction = exports.StateOverrides = void 0;
|
|
5
5
|
exports.Abi = require("./core/Abi.js");
|
|
6
6
|
exports.AbiConstructor = require("./core/AbiConstructor.js");
|
|
7
7
|
exports.AbiError = require("./core/AbiError.js");
|
|
@@ -26,6 +26,7 @@ exports.BlsPoint = require("./core/BlsPoint.js");
|
|
|
26
26
|
exports.Bytes = require("./core/Bytes.js");
|
|
27
27
|
exports.Caches = require("./core/Caches.js");
|
|
28
28
|
exports.ContractAddress = require("./core/ContractAddress.js");
|
|
29
|
+
exports.Ed25519 = require("./core/Ed25519.js");
|
|
29
30
|
exports.Ens = require("./core/Ens.js");
|
|
30
31
|
exports.Errors = require("./core/Errors.js");
|
|
31
32
|
exports.Filter = require("./core/Filter.js");
|
|
@@ -67,4 +68,5 @@ exports.Value = require("./core/Value.js");
|
|
|
67
68
|
exports.WebAuthnP256 = require("./core/WebAuthnP256.js");
|
|
68
69
|
exports.WebCryptoP256 = require("./core/WebCryptoP256.js");
|
|
69
70
|
exports.Withdrawal = require("./core/Withdrawal.js");
|
|
71
|
+
exports.X25519 = require("./core/X25519.js");
|
|
70
72
|
//# sourceMappingURL=index.js.map
|
package/_cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAuHA,uCAAoC;AA4EpC,6DAA0D;AAwE1D,iDAA8C;AAmH9C,iDAA8C;AA8F9C,uDAAoD;AA8EpD,+CAA4C;AAwG5C,2DAAwD;AAOxD,qDAAkD;AAOlD,yDAAsD;AAuDtD,+CAA4C;AAqC5C,6CAA0C;AA0E1C,2DAAwD;AAuDxD,6CAA0C;AAsD1C,6CAA0C;AAO1C,+DAA4D;AAO5D,2CAAwC;AAgCxC,2CAAwC;AAOxC,6DAA0D;AAO1D,2CAAwC;AAoHxC,uCAAoC;AA6CpC,iDAA8C;AAgI9C,2CAAwC;AAExC,6CAA0C;AAsC1C,+DAA4D;AA+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAuHA,uCAAoC;AA4EpC,6DAA0D;AAwE1D,iDAA8C;AAmH9C,iDAA8C;AA8F9C,uDAAoD;AA8EpD,+CAA4C;AAwG5C,2DAAwD;AAOxD,qDAAkD;AAOlD,yDAAsD;AAuDtD,+CAA4C;AAqC5C,6CAA0C;AA0E1C,2DAAwD;AAuDxD,6CAA0C;AAsD1C,6CAA0C;AAO1C,+DAA4D;AAO5D,2CAAwC;AAgCxC,2CAAwC;AAOxC,6DAA0D;AAO1D,2CAAwC;AAoHxC,uCAAoC;AA6CpC,iDAA8C;AAgI9C,2CAAwC;AAExC,6CAA0C;AAsC1C,+DAA4D;AAgC5D,+CAA4C;AA+B5C,uCAAoC;AAEpC,6CAA0C;AAO1C,6CAA0C;AAe1C,yCAAsC;AActC,2CAAwC;AAmHxC,uCAAoC;AAKpC,uCAAoC;AAkCpC,yCAAsC;AAgEtC,iDAA8C;AAS9C,uCAAoC;AA2DpC,uCAAoC;AA6DpC,iDAA8C;AAoB9C,+DAA4D;AAqF5D,iDAA8C;AAyC9C,mDAAgD;AAoBhD,uCAAoC;AAOpC,mDAAgD;AAmChD,qDAAkD;AAmFlD,uDAAoD;AA0BpD,yDAAsD;AAyEtD,mDAAgD;AAyEhD,yCAAsC;AAmCtC,mDAAgD;AAqGhD,yCAAsC;AAEtC,iDAA8C;AAO9C,6DAA0D;AAuC1D,uDAAoD;AAgBpD,uEAAoE;AA2JpE,mFAAgF;AAuKhF,qFAAkF;AA+JlF,qFAAkF;AAwLlF,qFAAkF;AAqIlF,qFAAkF;AA6ClF,qEAAkE;AAyBlE,qEAAkE;AAkDlE,mDAAgD;AAOhD,2DAAwD;AAsBxD,2CAAwC;AAkFxC,yDAAsD;AAiEtD,2DAAwD;AAOxD,qDAAkD;AAmClD,6CAA0C"}
|
package/_cjs/version.js
CHANGED
package/_esm/core/Bls.js
CHANGED
|
@@ -13,6 +13,115 @@ export function aggregate(points) {
|
|
|
13
13
|
z: point.pz,
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new BLS12-381 key pair consisting of a private key and its corresponding public key.
|
|
18
|
+
*
|
|
19
|
+
* - G1 Point (Default):
|
|
20
|
+
* - short (48 bytes)
|
|
21
|
+
* - computes longer G2 Signatures (96 bytes)
|
|
22
|
+
* - G2 Point:
|
|
23
|
+
* - long (96 bytes)
|
|
24
|
+
* - computes short G1 Signatures (48 bytes)
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ### Short G1 Public Keys (Default)
|
|
28
|
+
*
|
|
29
|
+
* ```ts twoslash
|
|
30
|
+
* import { Bls } from 'ox'
|
|
31
|
+
*
|
|
32
|
+
* const { publicKey } = Bls.createKeyPair()
|
|
33
|
+
* // ^?
|
|
34
|
+
*
|
|
35
|
+
*
|
|
36
|
+
*
|
|
37
|
+
*
|
|
38
|
+
*
|
|
39
|
+
*
|
|
40
|
+
*
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ### Long G2 Public Keys
|
|
45
|
+
*
|
|
46
|
+
* A G2 Public Key can be derived as a G2 point (96 bytes) using `size: 'long-key:short-sig'`.
|
|
47
|
+
*
|
|
48
|
+
* This will allow you to compute G1 Signatures (48 bytes) with {@link ox#Bls.(sign:function)}.
|
|
49
|
+
*
|
|
50
|
+
* ```ts twoslash
|
|
51
|
+
* import { Bls } from 'ox'
|
|
52
|
+
*
|
|
53
|
+
* const { publicKey } = Bls.createKeyPair({
|
|
54
|
+
* size: 'long-key:short-sig',
|
|
55
|
+
* })
|
|
56
|
+
*
|
|
57
|
+
* publicKey
|
|
58
|
+
* // ^?
|
|
59
|
+
*
|
|
60
|
+
*
|
|
61
|
+
*
|
|
62
|
+
*
|
|
63
|
+
*
|
|
64
|
+
*
|
|
65
|
+
*
|
|
66
|
+
*
|
|
67
|
+
*
|
|
68
|
+
*
|
|
69
|
+
*
|
|
70
|
+
*
|
|
71
|
+
*
|
|
72
|
+
*
|
|
73
|
+
*
|
|
74
|
+
*
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* ### Serializing
|
|
78
|
+
*
|
|
79
|
+
* Public Keys can be serialized to hex or bytes using {@link ox#BlsPoint.(toHex:function)} or {@link ox#BlsPoint.(toBytes:function)}:
|
|
80
|
+
*
|
|
81
|
+
* ```ts twoslash
|
|
82
|
+
* import { Bls, BlsPoint } from 'ox'
|
|
83
|
+
*
|
|
84
|
+
* const { publicKey } = Bls.createKeyPair()
|
|
85
|
+
*
|
|
86
|
+
* const publicKeyHex = BlsPoint.toHex(publicKey)
|
|
87
|
+
* // ^?
|
|
88
|
+
*
|
|
89
|
+
*
|
|
90
|
+
* const publicKeyBytes = BlsPoint.toBytes(publicKey)
|
|
91
|
+
* // ^?
|
|
92
|
+
*
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* They can also be deserialized from hex or bytes using {@link ox#BlsPoint.(fromHex:function)} or {@link ox#BlsPoint.(fromBytes:function)}:
|
|
96
|
+
*
|
|
97
|
+
* ```ts twoslash
|
|
98
|
+
* import { Bls, BlsPoint } from 'ox'
|
|
99
|
+
*
|
|
100
|
+
* const publicKeyHex = '0x...'
|
|
101
|
+
*
|
|
102
|
+
* const publicKey = BlsPoint.fromHex(publicKeyHex, 'G1')
|
|
103
|
+
* // ^?
|
|
104
|
+
*
|
|
105
|
+
*
|
|
106
|
+
*
|
|
107
|
+
*
|
|
108
|
+
*
|
|
109
|
+
*
|
|
110
|
+
*
|
|
111
|
+
* ```
|
|
112
|
+
*
|
|
113
|
+
* @param options - The options to generate the key pair.
|
|
114
|
+
* @returns The generated key pair containing both private and public keys.
|
|
115
|
+
*/
|
|
116
|
+
export function createKeyPair(options = {}) {
|
|
117
|
+
const { as = 'Hex', size = 'short-key:long-sig' } = options;
|
|
118
|
+
const privateKey = randomPrivateKey({ as });
|
|
119
|
+
const publicKey = getPublicKey({ privateKey, size });
|
|
120
|
+
return {
|
|
121
|
+
privateKey: privateKey,
|
|
122
|
+
publicKey: publicKey,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
16
125
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
17
126
|
export function getPublicKey(options) {
|
|
18
127
|
const { privateKey, size = 'short-key:long-sig' } = options;
|
package/_esm/core/Bls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bls.js","sourceRoot":"","sources":["../../core/Bls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAG1D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAK/B,qDAAqD;AACrD,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;AAuCxB,+CAA+C;AAC/C,MAAM,UAAU,SAAS,CACvB,MAAoC;IAEpC,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACb,GAAG,CAAC,GAAG,CAAC,IAAK,KAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EACxE,KAAK,CAAC,eAAe,CAAC,IAAI,CAC3B,CAAA;IACD,OAAO;QACL,CAAC,EAAE,KAAK,CAAC,EAAE;QACX,CAAC,EAAE,KAAK,CAAC,EAAE;QACX,CAAC,EAAE,KAAK,CAAC,EAAE;KACZ,CAAA;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"Bls.js","sourceRoot":"","sources":["../../core/Bls.ts"],"names":[],"mappings":"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"}
|