Skip to content

Commit 99da15c

Browse files
committed
Release 0.6.1.
1 parent ee66dee commit 99da15c

6 files changed

Lines changed: 73 additions & 62 deletions

File tree

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ node_modules
66
*.d.ts.map
77
/test/build
88
/test/compiled
9-
/test/vectors/wycheproof

README.md

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,9 @@ For [hashes](https://github.com/paulmillr/noble-hashes), use SHA512 or SHA3-512
252252

253253
The library has not been independently audited yet.
254254

255-
v0.6.0 (Mar 2026) has been undergone through a self-audit. All files were in scope.
255+
- at version 0.6.1, in Apr 2026, it was audited by ourselves (self-audited)
256+
- Scope: everything
257+
- [Changes since audit](https://github.com/paulmillr/noble-post-quantum/compare/0.6.1..main)
256258

257259
If you see anything unusual: investigate and report.
258260

@@ -287,36 +289,61 @@ which is considered a cryptographically secure PRNG.
287289

288290
Browsers have had weaknesses in the past - and could again - but implementing a userspace CSPRNG is even worse, as there’s no reliable userspace source of high-quality entropy.
289291

292+
## Contributing & testing
293+
294+
- `npm install && npm run build && npm test` will build the code and run tests.
295+
- `npm run lint` / `npm run format` will run linter / fix linter issues.
296+
- `npm run bench` will run benchmarks
297+
- `npm run build:release` will build single file
298+
299+
Check out [github.com/paulmillr/guidelines](https://github.com/paulmillr/guidelines)
300+
for general coding practices and rules.
301+
302+
See [paulmillr.com/noble](https://paulmillr.com/noble/)
303+
for useful resources, articles, documentation and demos
304+
related to the library.
305+
290306
## Speed
291307

292308
> `npm run bench`
293309
294-
Noble is the fastest JS implementation of post-quantum algorithms. WASM libraries can be faster.
310+
Noble is the fastest JS implementation of post-quantum algorithms.
295311

296312
Benchmarks on Apple M4 (**higher is better**):
297313

298-
| OPs/sec | Keygen | Signing | Verification | Shared secret |
299-
| ----------------- | ------ | ------- | ------------ | ------------- |
300-
| ECC x/ed25519 | 14216 | 6849 | 1400 | 1981 |
301-
| ML-KEM-768 | 3778 | | | 3750 |
302-
| ML-DSA65 | 580 | 272 | 546 | |
303-
| SLH-DSA-SHA2-192f | 245 | 8 | 169 | |
304-
305314
```
306315
# ML-KEM768
307-
keygen x 3,778 ops/sec @ 264μs/op
308-
encapsulate x 3,220 ops/sec @ 310μs/op
309-
decapsulate x 4,029 ops/sec @ 248μs/op
316+
keygen x 4,277 ops/sec @ 233μs/op
317+
encapsulate x 3,470 ops/sec @ 288μs/op
318+
decapsulate x 3,757 ops/sec @ 266μs/op
310319
# ML-DSA65
311-
keygen x 580 ops/sec @ 1ms/op
312-
sign x 272 ops/sec @ 3ms/op
313-
verify x 546 ops/sec @ 1ms/op
320+
keygen x 669 ops/sec @ 1ms/op
321+
sign x 271 ops/sec @ 3ms/op
322+
verify x 565 ops/sec @ 1ms/op
314323
# SLH-DSA SHA2 192f
315-
keygen x 245 ops/sec @ 4ms/op
316-
sign x 8 ops/sec @ 114ms/op
317-
verify x 169 ops/sec @ 5ms/op
324+
keygen x 235 ops/sec @ 4ms/op
325+
sign x 8 ops/sec @ 117ms/op
326+
verify x 159 ops/sec @ 6ms/op
327+
# Falcon512
328+
keygen x 14 ops/sec @ 66ms/op ± 11.01% (56ms..96ms)
329+
sign x 749 ops/sec @ 1ms/op
330+
verify x 2,160 ops/sec @ 462μs/op
331+
# Falcon1024
332+
keygen x 4 ops/sec @ 247ms/op ± 5.22% (234ms..266ms)
333+
sign x 343 ops/sec @ 2ms/op
334+
verify x 950 ops/sec @ 1ms/op
318335
```
319336

337+
Compared with pre-quantum:
338+
339+
| OPs/sec | Keygen | Signing | Verification | Shared secret |
340+
| ----------------- | ------ | ------- | ------------ | ------------- |
341+
| ECC x/ed25519 | 12648 | 6157 | 1255 | 1981 |
342+
| ML-KEM-768 | 4277 | | | 3757 |
343+
| ML-DSA65 | 669 | 271 | 565 | |
344+
| SLH-DSA-SHA2-192f | 235 | 8 | 159 | |
345+
| Falcon512 | 14 | 749 | 950 | |
346+
320347
SLH-DSA:
321348

322349
| | sig size | keygen | sign | verify |
@@ -330,20 +357,6 @@ SLH-DSA:
330357
| shake_192f | 35664 | 21ms | 553ms | 29ms |
331358
| shake_192s | 16224 | 260ms | 2635ms | 2ms |
332359

333-
## Contributing & testing
334-
335-
- `npm install && npm run build && npm test` will build the code and run tests.
336-
- `npm run lint` / `npm run format` will run linter / fix linter issues.
337-
- `npm run bench` will run benchmarks
338-
- `npm run build:release` will build single file
339-
340-
Check out [github.com/paulmillr/guidelines](https://github.com/paulmillr/guidelines)
341-
for general coding practices and rules.
342-
343-
See [paulmillr.com/noble](https://paulmillr.com/noble/)
344-
for useful resources, articles, documentation and demos
345-
related to the library.
346-
347360
## License
348361

349362
The MIT License (MIT)

SECURITY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ See [README's Security section](./README.md#security) for detailed description o
66

77
| Version | Supported |
88
| ------- | ------------------ |
9-
| >=0.6.0 | :white_check_mark: |
10-
| <0.6.0 | :x: |
9+
| >=0.6.1 | :white_check_mark: |
10+
| <0.6.1 | :x: |
1111

1212
## Reporting a Vulnerability
1313

14-
Use maintainer's email specified at https://paulmillr.com
14+
Use maintainer's email specified at https://github.com/paulmillr.
1515

1616
It's preferred that you use
1717
PGP key from [pgp proof](https://paulmillr.com/pgp_proof.txt) (current is [697079DA6878B89B](https://paulmillr.com/pgp_proof.txt)).

jsr.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@noble/post-quantum",
3-
"version": "0.6.0",
3+
"version": "0.6.1",
44
"exports": {
55
".": "./src/index.ts",
66
"./_crystals.js": "./src/_crystals.ts",
@@ -12,9 +12,9 @@
1212
"./utils.js": "./src/utils.ts"
1313
},
1414
"imports": {
15-
"@noble/ciphers": "jsr:@noble/ciphers@~2.0.0",
16-
"@noble/curves": "jsr:@noble/curves@~2.0.0",
17-
"@noble/hashes": "jsr:@noble/hashes@~2.0.0"
15+
"@noble/ciphers": "jsr:@noble/ciphers@~2.2.0",
16+
"@noble/curves": "jsr:@noble/curves@~2.2.0",
17+
"@noble/hashes": "jsr:@noble/hashes@~2.2.0"
1818
},
1919
"publish": {
2020
"include": [

package-lock.json

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@noble/post-quantum",
3-
"version": "0.6.0",
3+
"version": "0.6.1",
44
"description": "Auditable & minimal JS implementation of post-quantum cryptography: FIPS 203, 204, 205, Falcon",
55
"files": [
66
"*.js",
@@ -10,9 +10,9 @@
1010
"src"
1111
],
1212
"dependencies": {
13-
"@noble/ciphers": "~2.0.0",
14-
"@noble/curves": "~2.0.0",
15-
"@noble/hashes": "~2.0.0"
13+
"@noble/ciphers": "~2.2.0",
14+
"@noble/curves": "~2.2.0",
15+
"@noble/hashes": "~2.2.0"
1616
},
1717
"devDependencies": {
1818
"@paulmillr/jsbt": "0.5.0",
@@ -31,12 +31,11 @@
3131
"check:jsdoc": "npx --no @paulmillr/jsbt tsdoc package.json",
3232
"build:clean": "rm *.{js,js.map,d.ts,d.ts.map} 2> /dev/null",
3333
"format": "prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'",
34-
"test": "node --experimental-strip-types --no-warnings test/index.ts",
34+
"test": "node test/index.ts",
3535
"test:bun": "bun test/index.ts",
3636
"test:deno": "deno --allow-env --allow-read test/index.ts",
3737
"test:node20": "cd test; npx tsc; node compiled/test/index.js",
38-
"test:slow": "SLOW_TESTS=1 node test/index.ts",
39-
"test:wycheproof": "bash test/fetch-wycheproof.sh && node --experimental-strip-types --no-warnings test/wycheproof.test.ts"
38+
"test:slow": "SLOW_TESTS=1 node test/index.ts"
4039
},
4140
"exports": {
4241
".": "./index.js",

0 commit comments

Comments
 (0)