import * as nacl from 'tweetnacl' const newKey = nacl.randomBytes(nacl.secretbox.keyLength) console.log(newKey) function encryptMessage(message: string, key: Uint8Array) { const nonce = nacl.randomBytes(nacl.secretbox.nonceLength) const messageUint8 = new TextEncoder().encode(message) const box = nacl.secretbox(messageUint8, nonce, key) return { nonce, box } } function decryptMessage(nonce: Uint8Array, box: Uint8Array, key: Uint8Array) { const decryptedMessage = nacl.secretbox.open(box, nonce, key) if (!decryptedMessage) { return null } return new TextDecoder().decode(decryptedMessage) } const encrypted = encryptMessage('hallo zipfl', newKey) const decrypted = decryptMessage(encrypted.nonce, encrypted.box, newKey) console.log(decrypted) const myKeyPair = nacl.box.keyPair() console.log(myKeyPair) const createRoom = (roomName: string) => { const roomKey = nacl.randomBytes(nacl.secretbox.keyLength) const room = { name: roomName, key: roomKey, users: [ /* TODO self */ ], } }