quantum-resistant-rustykey 0.6.0 → 0.6.1
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/README.md +18 -12
- package/package.json +25 -8
- package/dist/index.mjs +0 -2404
package/README.md
CHANGED
|
@@ -4,8 +4,7 @@ A WebAssembly implementation of ML-KEM for both Node.js and web environments.
|
|
|
4
4
|
|
|
5
5
|
## Implementation status
|
|
6
6
|
|
|
7
|
-
- **ML-KEM-512**, **ML-KEM-768**, and **ML-KEM-1024** all use the same stack: [mlkem-native](https://github.com/pq-code-package/mlkem-native) (C) built with **Emscripten
|
|
8
|
-
- **PQClean** and **libsodium** are no longer part of this package’s build or runtime path.
|
|
7
|
+
- **ML-KEM-512**, **ML-KEM-768**, and **ML-KEM-1024** all use the same stack: [mlkem-native](https://github.com/pq-code-package/mlkem-native) (C) built with **Emscripten**.
|
|
9
8
|
|
|
10
9
|
## Security assurance and verification
|
|
11
10
|
|
|
@@ -54,12 +53,17 @@ pnpm build:vendor
|
|
|
54
53
|
|
|
55
54
|
Notes:
|
|
56
55
|
- The upstream project documents scope/assumptions in `SOUNDNESS.md`; review this when making compliance assertions.
|
|
57
|
-
- This package uses ML-KEM-1024 (not "1028").
|
|
58
56
|
|
|
59
57
|
## Credits
|
|
60
58
|
|
|
61
|
-
-
|
|
62
|
-
|
|
59
|
+
- NIST
|
|
60
|
+
- signature algorithms:
|
|
61
|
+
- FN-DSA (Falcon-512, Falcon-1024)
|
|
62
|
+
- ML-DSA (Dilithium variants)
|
|
63
|
+
- SQISign
|
|
64
|
+
- module-lattice-based key-encapsulation mechanism
|
|
65
|
+
- ML-KEM
|
|
66
|
+
- approach adapted from Dmitry Chestnykh's `mlkem-wasm`: https://github.com/dchest/mlkem-wasm
|
|
63
67
|
|
|
64
68
|
## Installation
|
|
65
69
|
|
|
@@ -93,7 +97,7 @@ async function main() {
|
|
|
93
97
|
console.log("Private Key:", privateKey);
|
|
94
98
|
|
|
95
99
|
// Encrypt a message
|
|
96
|
-
const message = "
|
|
100
|
+
const message = "Rusty keys, the rustier the better!";
|
|
97
101
|
const encrypt = mlkem.encrypt(keypair.get('public_key'))
|
|
98
102
|
const sharedSecret = encrypt.get('secret')
|
|
99
103
|
const encryptedMessage = await mlkem.encryptMessage(message, sharedSecret)
|
|
@@ -147,7 +151,7 @@ Security note for web apps:
|
|
|
147
151
|
|
|
148
152
|
### Prerequisites
|
|
149
153
|
|
|
150
|
-
- Node.js >=
|
|
154
|
+
- Node.js >= 25.9.0
|
|
151
155
|
- pnpm (or npm)
|
|
152
156
|
- Emscripten **or** Docker — only needed if you run `pnpm build:vendor` to regenerate `src/vendor/mlkem*.js`
|
|
153
157
|
|
|
@@ -198,7 +202,7 @@ See `examples/browser-demo/README.md` for details.
|
|
|
198
202
|
|
|
199
203
|
## Project Structure
|
|
200
204
|
|
|
201
|
-
ML-KEM logic comes from **mlkem-native** (C), compiled with **Emscripten** under `wasm/`, wrapped by TypeScript
|
|
205
|
+
ML-KEM logic comes from **mlkem-native** (C), compiled with **Emscripten** under `wasm/`, wrapped by TypeScript in `mlkem-src/`, then bundled into `src/vendor/mlkem*.js`.
|
|
202
206
|
|
|
203
207
|
## Publishing
|
|
204
208
|
|
|
@@ -224,7 +228,9 @@ This implementation includes patches to withstand side-channel attacks. For more
|
|
|
224
228
|
|
|
225
229
|
ISC
|
|
226
230
|
|
|
227
|
-
##
|
|
228
|
-
|
|
229
|
-
-
|
|
230
|
-
-
|
|
231
|
+
## Funding
|
|
232
|
+
This project was generously supported by:
|
|
233
|
+
- University of Quantum Science
|
|
234
|
+
- RustyKey®
|
|
235
|
+
- Customers' Yachts® Advisors
|
|
236
|
+
- BuzzyBee® [buzzybee.ai]
|
package/package.json
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quantum-resistant-rustykey",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "WebAssembly
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"description": "WebAssembly post-quantum-resistant tools for web",
|
|
5
|
+
"author": "Antony R Mott <a@auditcanary.com> (https://rustykey.app)",
|
|
5
6
|
"license": "ISC",
|
|
7
|
+
"funding": [
|
|
8
|
+
{
|
|
9
|
+
"type": "github",
|
|
10
|
+
"url": "https://github.com/antonymott"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/antonymott/quantum-resistant-rustykey.git"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://github.com/antonymott/quantum-resistant-rustykey.git#readme",
|
|
18
|
+
"keywords": [
|
|
19
|
+
"NIST",
|
|
20
|
+
"post-quantum",
|
|
21
|
+
"WebAssembly",
|
|
22
|
+
"cryptography"
|
|
23
|
+
],
|
|
6
24
|
"type": "module",
|
|
7
25
|
"sideEffects": false,
|
|
8
26
|
"main": "./dist/index.js",
|
|
@@ -30,12 +48,11 @@
|
|
|
30
48
|
"example:browser": "pnpm --filter browser-demo dev"
|
|
31
49
|
},
|
|
32
50
|
"devDependencies": {
|
|
33
|
-
"@biomejs/biome": "2.4.
|
|
51
|
+
"@biomejs/biome": "2.4.11",
|
|
34
52
|
"@changesets/cli": "2.30.0",
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"vitest": "4.1.2"
|
|
53
|
+
"esbuild": "0.28.0",
|
|
54
|
+
"tsdown": "0.21.8",
|
|
55
|
+
"typescript": "6.0.2",
|
|
56
|
+
"vitest": "4.1.4"
|
|
40
57
|
}
|
|
41
58
|
}
|