|
2 | 2 | * Quantum-resistant end-to-end encrypted chat using CRYSTALS-Kyber |
3 | 3 | * This module handles the chat UI, WebSocket communication, and encryption/decryption |
4 | 4 | */ |
5 | | -import { Kyber768 } from 'https://esm.sh/crystals-kyber-js'; |
| 5 | +import { MlKem768 } from 'https://esm.sh/crystals-kyber-js'; |
6 | 6 |
|
7 | 7 | // Chat state |
8 | 8 | const chatState = { |
@@ -67,7 +67,7 @@ async function generateKeys() { |
67 | 67 | elements.generateKeysButton.disabled = true; |
68 | 68 |
|
69 | 69 | // Generate key pair |
70 | | - const kyber = new Kyber768(); |
| 70 | + const kyber = new MlKem768(); |
71 | 71 | const keyPair = await kyber.keyPair(); |
72 | 72 |
|
73 | 73 | // Store key pair |
@@ -193,7 +193,7 @@ async function performKeyEncapsulation() { |
193 | 193 | try { |
194 | 194 | addSystemMessage('Performing key encapsulation...'); |
195 | 195 |
|
196 | | - const kyber = new Kyber768(); |
| 196 | + const kyber = new MlKem768(); |
197 | 197 |
|
198 | 198 | // Encapsulate using recipient's public key to generate a shared secret |
199 | 199 | const { ciphertext, sharedSecret } = await kyber.encap(chatState.recipientPublicKey); |
@@ -256,7 +256,7 @@ async function handleKeyExchange(message) { |
256 | 256 | const ciphertext = base64ToArrayBuffer(message.ciphertext); |
257 | 257 |
|
258 | 258 | // Perform key decapsulation |
259 | | - const kyber = new Kyber768(); |
| 259 | + const kyber = new MlKem768(); |
260 | 260 | const sharedSecret = await kyber.decap(ciphertext, chatState.keyPair.secretKey); |
261 | 261 |
|
262 | 262 | // Store shared secret |
|
0 commit comments