From 6f27b2e328d227a674329680656cf97f8c3d4543 Mon Sep 17 00:00:00 2001 From: Ajitomi Daisuke Date: Tue, 17 Sep 2024 21:42:07 +0900 Subject: [PATCH] Bump version to 2.1.0. --- CHANGES.md | 11 +++++++++++ README.md | 24 +++++++++++++++--------- SECURITY.md | 2 +- deno.json | 2 +- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 82e7839..0b65ecc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,16 @@ # Changes +## Version 2.1.0 + +Released 2024-09-17 + +- [(#56) Sync with the latest KAT test vectors.](https://github.com/dajiaji/crystals-kyber-js/pull/56) +- [(#50) Sync with the latest CCTV test vectors.](https://github.com/dajiaji/crystals-kyber-js/pull/50) +- Update devDependencies: + - [(#55) Bump typescript to 5.6.2 in test/runtimes/cloudflare.](https://github.com/dajiaji/crystals-kyber-js/pull/55) + - [(#52) Bump wrangler to 3.78.2 in test/runtimes/cloudflare.](https://github.com/dajiaji/crystals-kyber-js/pull/51) + - [(#51) Bump cloudflare/workers-types to 4.20240909.0 in test/runtimes/cloudflare.](https://github.com/dajiaji/crystals-kyber-js/pull/51) + ## Version 2.0.1 Released 2024-09-16 diff --git a/README.md b/README.md index 44f7370..f78bbf6 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@
-An ML-KEM/CRYSTALS-KYBER implementation written in TypeScript for various JavaScript runtimes.
+An ML-KEM (NIST FIPS 203) and CRYSTALS-KYBER implementation written in TypeScript.

@@ -28,24 +28,30 @@ This module is based on [ntontutoveanu/crystals-kyber-javascript](https://github.com/antontutoveanu/crystals-kyber-javascript), but includes the following improvements: +- ✅ Written in TypeScript. - ✅ Available on various JavaScript runtimes: Browsers, Node.js, Deno, Cloudflare Workers, etc. -- ✅ Written in TypeScript. - ✅ Deterministic key generation support. - ✅ Constant-time validation for ciphertext. - ✅ Better performance: 1.4 to 1.8 times faster than the original implementation. - ✅ Tree-shaking friendly. - ✅ Fix [KyberSlash](https://kyberslash.cr.yp.to/index.html) vulnerability. -- ✅ ML-KEM ([FIPS 203](https://csrc.nist.gov/pubs/fips/203/final)) support. +- ✅ ML-KEM ([NIST FIPS 203](https://csrc.nist.gov/pubs/fips/203/final)) + support. +- ✅ Passed all the tests published by: + - [post-quantum-cryptography/KAT/MLKEM](https://github.com/post-quantum-cryptography/KAT/tree/main/MLKEM) + - [C2SP/CCTV/ML-KEM](https://github.com/C2SP/CCTV/tree/main/ML-KEM) + - [pq-crystals/kyber](https://github.com/C2SP/CCTV/tree/main/ML-KEM) (10000 + consecutive tests) This repository has the following packages: -| package | registry | description | -| ----------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| crystals-kyber-js | [![npm](https://img.shields.io/npm/v/crystals-kyber-js?color=%23EE3214)](https://www.npmjs.com/package/crystals-kyber-js) | `v1.x` implements CRYSTALS-KYBER, and `v2.x-` implements ML-KEM (FIPS 203). `crystals-kyber-js` may become deprecated in the near future. Instead, we recommend switching to the following `mlkem` or `@dajiaji/mlkem`. | -| mlkem | [![npm](https://img.shields.io/npm/v/mlkem?color=%23EE3214)](https://www.npmjs.com/package/mlkem) | Implements only ML-KEM (FIPS 203). It is an alias for the above `crystals-kyber-js` starting from `v2` onwards. We recommend using this package going forward. | -| @dajiaji/mlkem | [![JSR](https://jsr.io/badges/@dajiaji/mlkem)](https://jsr.io/@dajiaji/mlkem) | Implements only ML-KEM (FIPS 203). It is an ML-KEM package for [jsr.io](https://jsr.io/). The above `mlkem` is an npm package of `@dajiaji/mlkem`, which has been converted using [@deno/dnt](https://github.com/denoland/dnt). | +| package | registry | description | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| crystals-kyber-js | [![npm](https://img.shields.io/npm/v/crystals-kyber-js?color=%23EE3214)](https://www.npmjs.com/package/crystals-kyber-js) | `v1.x` implements CRYSTALS-KYBER, and `v2.x-` implements ML-KEM (NIST FIPS 203). `crystals-kyber-js` may become deprecated in the near future. Instead, we recommend switching to the following `mlkem` or `@dajiaji/mlkem`. | +| mlkem | [![npm](https://img.shields.io/npm/v/mlkem?color=%23EE3214)](https://www.npmjs.com/package/mlkem) | Implements only ML-KEM (NIST FIPS 203). It is an alias for the above `crystals-kyber-js` starting from `v2` onwards. We recommend using this package going forward. | +| @dajiaji/mlkem | [![JSR](https://jsr.io/badges/@dajiaji/mlkem)](https://jsr.io/@dajiaji/mlkem) | Implements only ML-KEM (NIST FIPS 203). It is an ML-KEM package for [jsr.io](https://jsr.io/). The above `mlkem` is an npm package of `@dajiaji/mlkem`, which has been converted using [@deno/dnt](https://github.com/denoland/dnt). | For Node.js, you can install `mlkem` or `crystals-kyber-js` via npm, yarn or pnpm: @@ -85,7 +91,7 @@ async function doMlKem() { try { doMlKem(); } catch (err: unknown) { - console.log("failed: ", (err as Error).message); + console.log("failed:", (err as Error).message); } ``` diff --git a/SECURITY.md b/SECURITY.md index d929267..599bed8 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,7 +4,7 @@ | Version | Supported | | ------- | ------------------ | -| 2.0.x | :white_check_mark: | +| 2.1.x | :white_check_mark: | | 1.1.x | :white_check_mark: | | < 1.1.2 | :x: | diff --git a/deno.json b/deno.json index 1070118..6c986e1 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "@dajiaji/mlkem", - "version": "2.0.1", + "version": "2.1.0", "exports": "./mod.ts", "imports": { "@noble/hashes": "npm:@noble/hashes@^1.5.0"