@unknownncat/curve25519-node 2.0.0 → 2.1.0
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/NOTICE.md +89 -0
- package/README.en.md +110 -20
- package/README.md +102 -12
- package/SECURITY.md +23 -0
- package/THIRD_PARTY_NOTICE.md +3 -0
- package/THIRD_PARTY_NOTICES.md +5 -0
- package/dist/axlsign.d.ts.map +1 -1
- package/dist/axlsign.js +29 -7
- package/dist/axlsign.js.map +1 -1
- package/dist/cjs/axlsign.js +28 -6
- package/dist/cjs/axlsign.js.map +1 -1
- package/dist/cjs/ed25519.js +46 -10
- package/dist/cjs/ed25519.js.map +1 -1
- package/dist/cjs/index.js +27 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/assert.js.map +1 -1
- package/dist/cjs/internal/curve25519-wasm/LICENSE +21 -0
- package/dist/cjs/internal/curve25519-wasm/curve25519_wasm.d.ts +12 -0
- package/dist/cjs/internal/curve25519-wasm/curve25519_wasm.js +165 -0
- package/dist/cjs/internal/curve25519-wasm/curve25519_wasm_bg.wasm +0 -0
- package/dist/cjs/internal/curve25519-wasm/curve25519_wasm_bg.wasm.d.ts +13 -0
- package/dist/cjs/internal/curve25519-wasm/package.json +17 -0
- package/dist/cjs/wasm.js +228 -0
- package/dist/cjs/wasm.js.map +1 -0
- package/dist/cjs/x25519.js +73 -12
- package/dist/cjs/x25519.js.map +1 -1
- package/dist/ed25519.d.ts +21 -0
- package/dist/ed25519.d.ts.map +1 -1
- package/dist/ed25519.js +44 -13
- package/dist/ed25519.js.map +1 -1
- package/dist/index.d.ts +87 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/assert.js.map +1 -1
- package/dist/internal/curve25519-wasm/LICENSE +21 -0
- package/dist/internal/curve25519-wasm/curve25519_wasm.d.ts +12 -0
- package/dist/internal/curve25519-wasm/curve25519_wasm.js +165 -0
- package/dist/internal/curve25519-wasm/curve25519_wasm_bg.wasm +0 -0
- package/dist/internal/curve25519-wasm/curve25519_wasm_bg.wasm.d.ts +13 -0
- package/dist/internal/curve25519-wasm/package.json +17 -0
- package/dist/types.d.ts +2 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/wasm.d.ts +92 -0
- package/dist/wasm.d.ts.map +1 -0
- package/dist/wasm.js +204 -0
- package/dist/wasm.js.map +1 -0
- package/dist/x25519.d.ts +29 -0
- package/dist/x25519.d.ts.map +1 -1
- package/dist/x25519.js +66 -12
- package/dist/x25519.js.map +1 -1
- package/package.json +28 -5
package/dist/axlsign.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axlsign.js","sourceRoot":"","sources":["../src/axlsign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"axlsign.js","sourceRoot":"","sources":["../src/axlsign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AAEzD,MAAM,WAAW,GACf,OAAO,UAAU,KAAK,QAAQ;IAC5B,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QACnC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAExC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAE/C,IAAI,cAAkC,CAAC;AAEvC,IAAI,OAAyC,CAAC;AAE9C,SAAS,UAAU;IACjB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,iBAAiB,eAAe,CAAC,CAAC;QACjF,cAAc,GAAG,IAAI,CACnB,OAAO,CAAC,eAAe,CAAC,EACxB,MAAM,EACN,UAAU,EACV,cAAc,EACd,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,OAAO,GAAG,WAAW,CAAC,cAAc,CAAyB,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAClC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAC5B,OAAO,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA6B,EAAE,MAAc;IAC3E,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,aAAa,CAAC,KAAK,EAAE,GAAG,MAAM,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,WAAoB;IAC5C,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACvD,OAAO,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,WAAoB,EAAE,WAAoB;IAClE,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpE,OAAO,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,UAAU;KACpB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,WAAoB,EAAE,GAAe,EAAE,UAAuB;IACjF,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE3C,MAAM,SAAS,GACb,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC;QAC5C,CAAC,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAChE,OAAO,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,WAAoB,EAAE,GAAe,EAAE,WAAoB;IAChF,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,OAAO,UAAU,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,WAAoB,EACpB,GAAe,EACf,UAAuB;IAEvB,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,sBAAsB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,WAAoB,EAAE,SAAqB;IACrE,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC1C,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAEzC,IAAI,SAAS,CAAC,UAAU,GAAG,EAAE,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAChF,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/cjs/axlsign.js
CHANGED
|
@@ -7,8 +7,30 @@ exports.sign = sign;
|
|
|
7
7
|
exports.verify = verify;
|
|
8
8
|
exports.signMessage = signMessage;
|
|
9
9
|
exports.openMessage = openMessage;
|
|
10
|
+
const node_path_1 = require("node:path");
|
|
11
|
+
const node_module_1 = require("node:module");
|
|
10
12
|
const assert_js_1 = require("./internal/assert.js");
|
|
11
|
-
const
|
|
13
|
+
const SELF_PACKAGE_NAME = "@unknownncat/curve25519-node";
|
|
14
|
+
const requireBase = typeof __filename === "string"
|
|
15
|
+
? __filename
|
|
16
|
+
: typeof process.argv[1] === "string"
|
|
17
|
+
? process.argv[1]
|
|
18
|
+
: (0, node_path_1.join)(process.cwd(), "index.js");
|
|
19
|
+
const nodeRequire = (0, node_module_1.createRequire)(requireBase);
|
|
20
|
+
let wasmModulePath;
|
|
21
|
+
let wasmAxl;
|
|
22
|
+
function getWasmAxl() {
|
|
23
|
+
if (wasmAxl !== undefined) {
|
|
24
|
+
return wasmAxl;
|
|
25
|
+
}
|
|
26
|
+
if (wasmModulePath === undefined) {
|
|
27
|
+
const packageJsonPath = nodeRequire.resolve(`${SELF_PACKAGE_NAME}/package.json`);
|
|
28
|
+
wasmModulePath = (0, node_path_1.join)((0, node_path_1.dirname)(packageJsonPath), "dist", "internal", "axlsign-wasm", "axlsign_wasm.js");
|
|
29
|
+
}
|
|
30
|
+
// Lazy-load WASM bindings to keep modern-only imports lightweight.
|
|
31
|
+
wasmAxl = nodeRequire(wasmModulePath);
|
|
32
|
+
return wasmAxl;
|
|
33
|
+
}
|
|
12
34
|
function clampScalar(seed32) {
|
|
13
35
|
const out = new Uint8Array(32);
|
|
14
36
|
out.set(seed32);
|
|
@@ -27,7 +49,7 @@ function assertOptionalRandom64(value, fnName) {
|
|
|
27
49
|
*/
|
|
28
50
|
function publicKey(secretKey32) {
|
|
29
51
|
(0, assert_js_1.assertBytes32)(secretKey32, "secretKey32");
|
|
30
|
-
const out =
|
|
52
|
+
const out = getWasmAxl().axlsignPublicKey(secretKey32);
|
|
31
53
|
return (0, assert_js_1.asBytes32)(out, "axlsign public key");
|
|
32
54
|
}
|
|
33
55
|
/**
|
|
@@ -36,7 +58,7 @@ function publicKey(secretKey32) {
|
|
|
36
58
|
function sharedKey(secretKey32, publicKey32) {
|
|
37
59
|
(0, assert_js_1.assertBytes32)(secretKey32, "secretKey32");
|
|
38
60
|
(0, assert_js_1.assertBytes32)(publicKey32, "publicKey32");
|
|
39
|
-
const out =
|
|
61
|
+
const out = getWasmAxl().axlsignSharedKey(secretKey32, publicKey32);
|
|
40
62
|
return (0, assert_js_1.asBytes32)(out, "axlsign shared key");
|
|
41
63
|
}
|
|
42
64
|
/**
|
|
@@ -60,8 +82,8 @@ function sign(secretKey32, msg, opt_random) {
|
|
|
60
82
|
(0, assert_js_1.assertUint8Array)(msg, "msg");
|
|
61
83
|
assertOptionalRandom64(opt_random, "sign");
|
|
62
84
|
const signature = opt_random === undefined
|
|
63
|
-
?
|
|
64
|
-
:
|
|
85
|
+
? getWasmAxl().axlsignSign(secretKey32, msg)
|
|
86
|
+
: getWasmAxl().axlsignSignRnd(secretKey32, msg, opt_random);
|
|
65
87
|
return (0, assert_js_1.asBytes64)(signature, "axlsign signature");
|
|
66
88
|
}
|
|
67
89
|
/**
|
|
@@ -71,7 +93,7 @@ function verify(publicKey32, msg, signature64) {
|
|
|
71
93
|
(0, assert_js_1.assertBytes32)(publicKey32, "publicKey32");
|
|
72
94
|
(0, assert_js_1.assertUint8Array)(msg, "msg");
|
|
73
95
|
(0, assert_js_1.assertBytes64)(signature64, "signature64");
|
|
74
|
-
return
|
|
96
|
+
return getWasmAxl().axlsignVerify(publicKey32, msg, signature64);
|
|
75
97
|
}
|
|
76
98
|
/**
|
|
77
99
|
* Returns signature || message (axlsign mode).
|
package/dist/cjs/axlsign.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axlsign.js","sourceRoot":"","sources":["../../src/axlsign.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"axlsign.js","sourceRoot":"","sources":["../../src/axlsign.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/ed25519.js
CHANGED
|
@@ -1,20 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPrivateKeyObject = createPrivateKeyObject;
|
|
4
|
+
exports.createPublicKeyObject = createPublicKeyObject;
|
|
5
|
+
exports.publicKeyFromPrivateKeyObject = publicKeyFromPrivateKeyObject;
|
|
3
6
|
exports.publicKey = publicKey;
|
|
4
7
|
exports.generateKeyPair = generateKeyPair;
|
|
5
8
|
exports.sign = sign;
|
|
9
|
+
exports.signWithPrivateKey = signWithPrivateKey;
|
|
6
10
|
exports.verify = verify;
|
|
11
|
+
exports.verifyWithPublicKey = verifyWithPublicKey;
|
|
7
12
|
exports.signMessage = signMessage;
|
|
8
13
|
exports.openMessage = openMessage;
|
|
9
14
|
const node_crypto_1 = require("node:crypto");
|
|
10
15
|
const assert_js_1 = require("./internal/assert.js");
|
|
11
16
|
const der_js_1 = require("./internal/der.js");
|
|
17
|
+
function normalizeSignature(signature) {
|
|
18
|
+
if (signature.byteLength !== 64) {
|
|
19
|
+
throw new Error(`Ed25519 signature must be 64 bytes, received ${signature.byteLength}`);
|
|
20
|
+
}
|
|
21
|
+
return (0, assert_js_1.asBytes64)(new Uint8Array(signature.buffer, signature.byteOffset, signature.byteLength), "signature");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Builds a reusable Ed25519 private KeyObject from a raw 32-byte seed.
|
|
25
|
+
*/
|
|
26
|
+
function createPrivateKeyObject(secretSeed32) {
|
|
27
|
+
(0, assert_js_1.assertBytes32)(secretSeed32, "secretSeed32");
|
|
28
|
+
return (0, der_js_1.keyFromEd25519Private)(secretSeed32);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Builds a reusable Ed25519 public KeyObject from a raw 32-byte public key.
|
|
32
|
+
*/
|
|
33
|
+
function createPublicKeyObject(publicKey32) {
|
|
34
|
+
(0, assert_js_1.assertBytes32)(publicKey32, "publicKey32");
|
|
35
|
+
return (0, der_js_1.keyFromEd25519Public)(publicKey32);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Derives raw 32-byte Ed25519 public key from a private KeyObject.
|
|
39
|
+
*/
|
|
40
|
+
function publicKeyFromPrivateKeyObject(privateKey) {
|
|
41
|
+
return (0, der_js_1.rawPublicFromEd25519Spki)((0, node_crypto_1.createPublicKey)(privateKey));
|
|
42
|
+
}
|
|
12
43
|
/**
|
|
13
44
|
* Derives an Ed25519 public key from a raw 32-byte seed.
|
|
14
45
|
*/
|
|
15
46
|
function publicKey(secretSeed32) {
|
|
16
|
-
|
|
17
|
-
return (0, der_js_1.rawPublicFromEd25519Spki)((0, node_crypto_1.createPublicKey)((0, der_js_1.keyFromEd25519Private)(secretSeed32)));
|
|
47
|
+
return publicKeyFromPrivateKeyObject(createPrivateKeyObject(secretSeed32));
|
|
18
48
|
}
|
|
19
49
|
/**
|
|
20
50
|
* Deterministically creates an Ed25519 key pair from a 32-byte seed.
|
|
@@ -31,22 +61,28 @@ function generateKeyPair(seed32) {
|
|
|
31
61
|
* Signs a message with Ed25519 and returns the 64-byte detached signature.
|
|
32
62
|
*/
|
|
33
63
|
function sign(secretSeed32, msg) {
|
|
34
|
-
|
|
64
|
+
return signWithPrivateKey(createPrivateKeyObject(secretSeed32), msg);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Signs a message with Ed25519 using a reusable private KeyObject.
|
|
68
|
+
*/
|
|
69
|
+
function signWithPrivateKey(privateKey, msg) {
|
|
35
70
|
(0, assert_js_1.assertUint8Array)(msg, "msg");
|
|
36
|
-
|
|
37
|
-
if (signature.byteLength !== 64) {
|
|
38
|
-
throw new Error(`Ed25519 signature must be 64 bytes, received ${signature.byteLength}`);
|
|
39
|
-
}
|
|
40
|
-
return (0, assert_js_1.asBytes64)(new Uint8Array(signature.buffer, signature.byteOffset, signature.byteLength), "signature");
|
|
71
|
+
return normalizeSignature((0, node_crypto_1.sign)(null, (0, assert_js_1.toBufferView)(msg), privateKey));
|
|
41
72
|
}
|
|
42
73
|
/**
|
|
43
74
|
* Verifies a detached Ed25519 signature.
|
|
44
75
|
*/
|
|
45
76
|
function verify(publicKey32, msg, signature64) {
|
|
46
|
-
|
|
77
|
+
return verifyWithPublicKey(createPublicKeyObject(publicKey32), msg, signature64);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Verifies a detached Ed25519 signature using a reusable public KeyObject.
|
|
81
|
+
*/
|
|
82
|
+
function verifyWithPublicKey(publicKey, msg, signature64) {
|
|
47
83
|
(0, assert_js_1.assertUint8Array)(msg, "msg");
|
|
48
84
|
(0, assert_js_1.assertBytes64)(signature64, "signature64");
|
|
49
|
-
return (0, node_crypto_1.verify)(null, (0, assert_js_1.toBufferView)(msg),
|
|
85
|
+
return (0, node_crypto_1.verify)(null, (0, assert_js_1.toBufferView)(msg), publicKey, (0, assert_js_1.toBufferView)(signature64));
|
|
50
86
|
}
|
|
51
87
|
/**
|
|
52
88
|
* Returns signature || message.
|
package/dist/cjs/ed25519.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../src/ed25519.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../src/ed25519.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.verify = exports.openMessage = exports.generateKeyPairEd25519 = exports.generateKeyPairX25519 = exports.generateKeyPair = exports.sharedKey = exports.axlsign = exports.ed25519 = exports.x25519 = exports.assertBytes64 = exports.assertBytes32 = exports.asBytes64 = exports.asBytes32 = void 0;
|
|
3
|
+
exports.verify = exports.openMessage = exports.generateKeyPairEd25519 = exports.generateKeyPairX25519 = exports.generateKeyPair = exports.sharedKeyStrict = exports.sharedKey = exports.wasm = exports.axlsign = exports.ed25519 = exports.x25519 = exports.assertBytes64 = exports.assertBytes32 = exports.asBytes64 = exports.asBytes32 = void 0;
|
|
4
4
|
exports.sign = sign;
|
|
5
5
|
exports.signMessage = signMessage;
|
|
6
6
|
const assert_js_1 = require("./internal/assert.js");
|
|
7
7
|
const axlsignApi = require("./axlsign.js");
|
|
8
|
+
const wasmApi = require("./wasm.js");
|
|
8
9
|
const ed25519Api = require("./ed25519.js");
|
|
9
10
|
const x25519Api = require("./x25519.js");
|
|
10
11
|
var assert_js_2 = require("./internal/assert.js");
|
|
@@ -16,18 +17,30 @@ Object.defineProperty(exports, "assertBytes64", { enumerable: true, get: functio
|
|
|
16
17
|
* Standard X25519 namespace.
|
|
17
18
|
*/
|
|
18
19
|
exports.x25519 = {
|
|
20
|
+
createPrivateKeyObject: x25519Api.createPrivateKeyObject,
|
|
21
|
+
createPublicKeyObject: x25519Api.createPublicKeyObject,
|
|
22
|
+
publicKeyFromPrivateKeyObject: x25519Api.publicKeyFromPrivateKeyObject,
|
|
19
23
|
publicKey: x25519Api.publicKey,
|
|
20
24
|
sharedKey: x25519Api.sharedKey,
|
|
25
|
+
sharedKeyFromKeyObjects: x25519Api.sharedKeyFromKeyObjects,
|
|
26
|
+
sharedKeyStrict: x25519Api.sharedKeyStrict,
|
|
27
|
+
sharedKeyStrictFromKeyObjects: x25519Api.sharedKeyStrictFromKeyObjects,
|
|
28
|
+
isAllZero32: x25519Api.isAllZero32,
|
|
21
29
|
generateKeyPair: x25519Api.generateKeyPair,
|
|
22
30
|
};
|
|
23
31
|
/**
|
|
24
32
|
* Standard Ed25519 namespace.
|
|
25
33
|
*/
|
|
26
34
|
exports.ed25519 = {
|
|
35
|
+
createPrivateKeyObject: ed25519Api.createPrivateKeyObject,
|
|
36
|
+
createPublicKeyObject: ed25519Api.createPublicKeyObject,
|
|
37
|
+
publicKeyFromPrivateKeyObject: ed25519Api.publicKeyFromPrivateKeyObject,
|
|
27
38
|
publicKey: ed25519Api.publicKey,
|
|
28
39
|
generateKeyPair: ed25519Api.generateKeyPair,
|
|
29
40
|
sign: ed25519Api.sign,
|
|
41
|
+
signWithPrivateKey: ed25519Api.signWithPrivateKey,
|
|
30
42
|
verify: ed25519Api.verify,
|
|
43
|
+
verifyWithPublicKey: ed25519Api.verifyWithPublicKey,
|
|
31
44
|
signMessage: ed25519Api.signMessage,
|
|
32
45
|
openMessage: ed25519Api.openMessage,
|
|
33
46
|
};
|
|
@@ -43,10 +56,21 @@ exports.axlsign = {
|
|
|
43
56
|
signMessage: axlsignApi.signMessage,
|
|
44
57
|
openMessage: axlsignApi.openMessage,
|
|
45
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Optional modern WASM namespace with X25519 + Ed25519 parity methods.
|
|
61
|
+
*/
|
|
62
|
+
exports.wasm = {
|
|
63
|
+
x25519: wasmApi.x25519,
|
|
64
|
+
ed25519: wasmApi.ed25519,
|
|
65
|
+
};
|
|
46
66
|
/**
|
|
47
67
|
* Top-level compatibility alias for X25519 shared secret.
|
|
48
68
|
*/
|
|
49
69
|
exports.sharedKey = exports.x25519.sharedKey;
|
|
70
|
+
/**
|
|
71
|
+
* Top-level strict X25519 shared secret helper that rejects all-zero results.
|
|
72
|
+
*/
|
|
73
|
+
exports.sharedKeyStrict = exports.x25519.sharedKeyStrict;
|
|
50
74
|
/**
|
|
51
75
|
* Top-level compatibility alias for X25519 deterministic key generation.
|
|
52
76
|
*/
|
|
@@ -89,7 +113,9 @@ const api = {
|
|
|
89
113
|
x25519: exports.x25519,
|
|
90
114
|
ed25519: exports.ed25519,
|
|
91
115
|
axlsign: exports.axlsign,
|
|
116
|
+
wasm: exports.wasm,
|
|
92
117
|
sharedKey: exports.sharedKey,
|
|
118
|
+
sharedKeyStrict: exports.sharedKeyStrict,
|
|
93
119
|
generateKeyPair: exports.generateKeyPair,
|
|
94
120
|
generateKeyPairX25519: exports.generateKeyPairX25519,
|
|
95
121
|
generateKeyPairEd25519: exports.generateKeyPairEd25519,
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../src/internal/assert.ts"],"names":[],"mappings":";;AAEA,4CAKC;AAQD,sCAGC;AAED,sCAGC;AAED,8BAGC;AAED,8BAGC;AAED,8CAOC;AAED,oCAEC;AA5CD,SAAgB,gBAAgB,CAAC,KAAc,EAAE,IAAY;IAC3D,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;QACtD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mCAAmC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB,EAAE,QAAgB,EAAE,IAAY;IACrE,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,YAAY,QAAQ,oBAAoB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAAiB,EAAE,IAAI,GAAG,OAAO;IAC7D,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,aAAa,CAAC,KAAiB,EAAE,IAAI,GAAG,OAAO;IAC7D,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,SAAS,CAAC,KAAiB,EAAE,IAAI,GAAG,OAAO;IACzD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../src/internal/assert.ts"],"names":[],"mappings":";;AAEA,4CAKC;AAQD,sCAGC;AAED,sCAGC;AAED,8BAGC;AAED,8BAGC;AAED,8CAOC;AAED,oCAEC;AA5CD,SAAgB,gBAAgB,CAAC,KAAc,EAAE,IAAY;IAC3D,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;QACtD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mCAAmC,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB,EAAE,QAAgB,EAAE,IAAY;IACrE,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,YAAY,QAAQ,oBAAoB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAAiB,EAAE,IAAI,GAAG,OAAO;IAC7D,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,aAAa,CAAC,KAAiB,EAAE,IAAI,GAAG,OAAO;IAC7D,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,SAAS,CAAC,KAAiB,EAAE,IAAI,GAAG,OAAO;IACzD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,SAAS,CAAC,KAAiB,EAAE,IAAI,GAAG,OAAO;IACzD,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,iBAAiB,CAAC,SAAkB,EAAE,MAAc;IAClE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,yDAAyD;YAChE,kEAAkE,CACrE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,KAAiB;IAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Sem nome bah
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
|
|
4
|
+
export function ed25519PublicKey(secret_seed: Uint8Array): Uint8Array;
|
|
5
|
+
|
|
6
|
+
export function ed25519Sign(secret_seed: Uint8Array, msg: Uint8Array): Uint8Array;
|
|
7
|
+
|
|
8
|
+
export function ed25519Verify(public_key: Uint8Array, msg: Uint8Array, signature: Uint8Array): boolean;
|
|
9
|
+
|
|
10
|
+
export function x25519PublicKey(secret_key: Uint8Array): Uint8Array;
|
|
11
|
+
|
|
12
|
+
export function x25519SharedKey(secret_key: Uint8Array, public_key: Uint8Array): Uint8Array;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/* @ts-self-types="./curve25519_wasm.d.ts" */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {Uint8Array} secret_seed
|
|
5
|
+
* @returns {Uint8Array}
|
|
6
|
+
*/
|
|
7
|
+
function ed25519PublicKey(secret_seed) {
|
|
8
|
+
const ptr0 = passArray8ToWasm0(secret_seed, wasm.__wbindgen_malloc);
|
|
9
|
+
const len0 = WASM_VECTOR_LEN;
|
|
10
|
+
const ret = wasm.ed25519PublicKey(ptr0, len0);
|
|
11
|
+
if (ret[3]) {
|
|
12
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
13
|
+
}
|
|
14
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
15
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
16
|
+
return v2;
|
|
17
|
+
}
|
|
18
|
+
exports.ed25519PublicKey = ed25519PublicKey;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @param {Uint8Array} secret_seed
|
|
22
|
+
* @param {Uint8Array} msg
|
|
23
|
+
* @returns {Uint8Array}
|
|
24
|
+
*/
|
|
25
|
+
function ed25519Sign(secret_seed, msg) {
|
|
26
|
+
const ptr0 = passArray8ToWasm0(secret_seed, wasm.__wbindgen_malloc);
|
|
27
|
+
const len0 = WASM_VECTOR_LEN;
|
|
28
|
+
const ptr1 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
|
|
29
|
+
const len1 = WASM_VECTOR_LEN;
|
|
30
|
+
const ret = wasm.ed25519Sign(ptr0, len0, ptr1, len1);
|
|
31
|
+
if (ret[3]) {
|
|
32
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
33
|
+
}
|
|
34
|
+
var v3 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
35
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
36
|
+
return v3;
|
|
37
|
+
}
|
|
38
|
+
exports.ed25519Sign = ed25519Sign;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @param {Uint8Array} public_key
|
|
42
|
+
* @param {Uint8Array} msg
|
|
43
|
+
* @param {Uint8Array} signature
|
|
44
|
+
* @returns {boolean}
|
|
45
|
+
*/
|
|
46
|
+
function ed25519Verify(public_key, msg, signature) {
|
|
47
|
+
const ptr0 = passArray8ToWasm0(public_key, wasm.__wbindgen_malloc);
|
|
48
|
+
const len0 = WASM_VECTOR_LEN;
|
|
49
|
+
const ptr1 = passArray8ToWasm0(msg, wasm.__wbindgen_malloc);
|
|
50
|
+
const len1 = WASM_VECTOR_LEN;
|
|
51
|
+
const ptr2 = passArray8ToWasm0(signature, wasm.__wbindgen_malloc);
|
|
52
|
+
const len2 = WASM_VECTOR_LEN;
|
|
53
|
+
const ret = wasm.ed25519Verify(ptr0, len0, ptr1, len1, ptr2, len2);
|
|
54
|
+
if (ret[2]) {
|
|
55
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
56
|
+
}
|
|
57
|
+
return ret[0] !== 0;
|
|
58
|
+
}
|
|
59
|
+
exports.ed25519Verify = ed25519Verify;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @param {Uint8Array} secret_key
|
|
63
|
+
* @returns {Uint8Array}
|
|
64
|
+
*/
|
|
65
|
+
function x25519PublicKey(secret_key) {
|
|
66
|
+
const ptr0 = passArray8ToWasm0(secret_key, wasm.__wbindgen_malloc);
|
|
67
|
+
const len0 = WASM_VECTOR_LEN;
|
|
68
|
+
const ret = wasm.x25519PublicKey(ptr0, len0);
|
|
69
|
+
if (ret[3]) {
|
|
70
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
71
|
+
}
|
|
72
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
73
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
74
|
+
return v2;
|
|
75
|
+
}
|
|
76
|
+
exports.x25519PublicKey = x25519PublicKey;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @param {Uint8Array} secret_key
|
|
80
|
+
* @param {Uint8Array} public_key
|
|
81
|
+
* @returns {Uint8Array}
|
|
82
|
+
*/
|
|
83
|
+
function x25519SharedKey(secret_key, public_key) {
|
|
84
|
+
const ptr0 = passArray8ToWasm0(secret_key, wasm.__wbindgen_malloc);
|
|
85
|
+
const len0 = WASM_VECTOR_LEN;
|
|
86
|
+
const ptr1 = passArray8ToWasm0(public_key, wasm.__wbindgen_malloc);
|
|
87
|
+
const len1 = WASM_VECTOR_LEN;
|
|
88
|
+
const ret = wasm.x25519SharedKey(ptr0, len0, ptr1, len1);
|
|
89
|
+
if (ret[3]) {
|
|
90
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
91
|
+
}
|
|
92
|
+
var v3 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
93
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
94
|
+
return v3;
|
|
95
|
+
}
|
|
96
|
+
exports.x25519SharedKey = x25519SharedKey;
|
|
97
|
+
|
|
98
|
+
function __wbg_get_imports() {
|
|
99
|
+
const import0 = {
|
|
100
|
+
__proto__: null,
|
|
101
|
+
__wbindgen_cast_0000000000000001: function(arg0, arg1) {
|
|
102
|
+
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
103
|
+
const ret = getStringFromWasm0(arg0, arg1);
|
|
104
|
+
return ret;
|
|
105
|
+
},
|
|
106
|
+
__wbindgen_init_externref_table: function() {
|
|
107
|
+
const table = wasm.__wbindgen_externrefs;
|
|
108
|
+
const offset = table.grow(4);
|
|
109
|
+
table.set(0, undefined);
|
|
110
|
+
table.set(offset + 0, undefined);
|
|
111
|
+
table.set(offset + 1, null);
|
|
112
|
+
table.set(offset + 2, true);
|
|
113
|
+
table.set(offset + 3, false);
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
return {
|
|
117
|
+
__proto__: null,
|
|
118
|
+
"./curve25519_wasm_bg.js": import0,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function getArrayU8FromWasm0(ptr, len) {
|
|
123
|
+
ptr = ptr >>> 0;
|
|
124
|
+
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function getStringFromWasm0(ptr, len) {
|
|
128
|
+
ptr = ptr >>> 0;
|
|
129
|
+
return decodeText(ptr, len);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
let cachedUint8ArrayMemory0 = null;
|
|
133
|
+
function getUint8ArrayMemory0() {
|
|
134
|
+
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
135
|
+
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
|
|
136
|
+
}
|
|
137
|
+
return cachedUint8ArrayMemory0;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function passArray8ToWasm0(arg, malloc) {
|
|
141
|
+
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
|
142
|
+
getUint8ArrayMemory0().set(arg, ptr / 1);
|
|
143
|
+
WASM_VECTOR_LEN = arg.length;
|
|
144
|
+
return ptr;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function takeFromExternrefTable0(idx) {
|
|
148
|
+
const value = wasm.__wbindgen_externrefs.get(idx);
|
|
149
|
+
wasm.__externref_table_dealloc(idx);
|
|
150
|
+
return value;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
|
154
|
+
cachedTextDecoder.decode();
|
|
155
|
+
function decodeText(ptr, len) {
|
|
156
|
+
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
let WASM_VECTOR_LEN = 0;
|
|
160
|
+
|
|
161
|
+
const wasmPath = `${__dirname}/curve25519_wasm_bg.wasm`;
|
|
162
|
+
const wasmBytes = require('fs').readFileSync(wasmPath);
|
|
163
|
+
const wasmModule = new WebAssembly.Module(wasmBytes);
|
|
164
|
+
let wasm = new WebAssembly.Instance(wasmModule, __wbg_get_imports()).exports;
|
|
165
|
+
wasm.__wbindgen_start();
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
export const memory: WebAssembly.Memory;
|
|
4
|
+
export const ed25519PublicKey: (a: number, b: number) => [number, number, number, number];
|
|
5
|
+
export const ed25519Sign: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
6
|
+
export const ed25519Verify: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
|
|
7
|
+
export const x25519PublicKey: (a: number, b: number) => [number, number, number, number];
|
|
8
|
+
export const x25519SharedKey: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
9
|
+
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
10
|
+
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
11
|
+
export const __externref_table_dealloc: (a: number) => void;
|
|
12
|
+
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
13
|
+
export const __wbindgen_start: () => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "curve25519-node-wasm",
|
|
3
|
+
"description": "WASM primitives for curve25519-node modern API",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/unknownncat/curve25519-node"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"curve25519_wasm_bg.wasm",
|
|
12
|
+
"curve25519_wasm.js",
|
|
13
|
+
"curve25519_wasm.d.ts"
|
|
14
|
+
],
|
|
15
|
+
"main": "curve25519_wasm.js",
|
|
16
|
+
"types": "curve25519_wasm.d.ts"
|
|
17
|
+
}
|