feat: Add initial Electron app structure with real-time chat, user authentication, and encrypted messaging.

This commit is contained in:
bryan
2025-12-30 15:09:17 -06:00
parent f0e8d9400a
commit b26a1d0b4b
9 changed files with 682 additions and 201 deletions

View File

@@ -1,10 +1,12 @@
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('cryptoAPI', {
deriveAuthKeys: (password, salt) => ipcRenderer.invoke('crypto:deriveAuthKeys', password, salt),
encryptData: (plaintext, keyHex, ivHex) => ipcRenderer.invoke('crypto:encryptData', plaintext, keyHex, ivHex),
decryptData: (ciphertext, keyHex, ivHex, tagHex) => ipcRenderer.invoke('crypto:decryptData', ciphertext, keyHex, ivHex, tagHex),
generateKeys: () => ipcRenderer.invoke('crypto:generateKeys'),
randomBytes: (size) => ipcRenderer.invoke('crypto:randomBytes', size),
sha256: (data) => ipcRenderer.invoke('crypto:sha256', data)
generateKeys: () => ipcRenderer.invoke('generate-keys'),
randomBytes: (size) => ipcRenderer.invoke('random-bytes', size),
sha256: (data) => ipcRenderer.invoke('sha256', data),
deriveAuthKeys: (password, salt) => ipcRenderer.invoke('derive-auth-keys', password, salt),
encryptData: (data, key) => ipcRenderer.invoke('encrypt-data', data, key),
decryptData: (encryptedData, key, iv, tag) => ipcRenderer.invoke('decrypt-data', encryptedData, key, iv, tag),
fetchMetadata: (url) => ipcRenderer.invoke('fetch-metadata', url),
openExternal: (url) => ipcRenderer.invoke('open-external', url),
});