const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('cryptoAPI', { generateKeys: () => ipcRenderer.invoke('generate-keys'), randomBytes: (size) => ipcRenderer.invoke('random-bytes', size), sha256: (data) => ipcRenderer.invoke('sha256', data), signMessage: (privateKey, message) => ipcRenderer.invoke('sign-message', privateKey, message), verifySignature: (publicKey, message, signature) => ipcRenderer.invoke('verify-signature', publicKey, message, signature), deriveAuthKeys: (password, salt) => ipcRenderer.invoke('derive-auth-keys', password, salt), encryptData: (data, key) => ipcRenderer.invoke('encrypt-data', data, key), decryptData: (encryptedData, key, iv, tag, options) => ipcRenderer.invoke('decrypt-data', encryptedData, key, iv, tag, options), // RSA Helpers publicEncrypt: (publicKey, data) => ipcRenderer.invoke('public-encrypt', publicKey, data), privateDecrypt: (privateKey, encryptedHex) => ipcRenderer.invoke('private-decrypt', privateKey, encryptedHex), fetchMetadata: (url) => ipcRenderer.invoke('fetch-metadata', url), openExternal: (url) => ipcRenderer.invoke('open-external', url), getScreenSources: () => ipcRenderer.invoke('get-screen-sources'), }); contextBridge.exposeInMainWorld('windowControls', { minimize: () => ipcRenderer.send('window-minimize'), maximize: () => ipcRenderer.send('window-maximize'), close: () => ipcRenderer.send('window-close'), });