feat: implement end-to-end encryption for chat messages and files, including key management and decryption functionality; enhance chat components to support encrypted content display
This commit is contained in:
@@ -47,3 +47,37 @@ export function abrirConversa(conversaId: Id<'conversas'>) {
|
||||
export function voltarParaLista() {
|
||||
conversaAtiva.set(null);
|
||||
}
|
||||
|
||||
// ========== CRIPTOGRAFIA E2E ==========
|
||||
|
||||
// Store para chaves de criptografia por conversa
|
||||
// Mapeia conversaId -> CryptoKey
|
||||
const chavesCriptografia = new Map<string, CryptoKey>();
|
||||
|
||||
/**
|
||||
* Armazena uma chave de criptografia para uma conversa
|
||||
*/
|
||||
export function armazenarChaveCriptografia(conversaId: string, key: CryptoKey): void {
|
||||
chavesCriptografia.set(conversaId, key);
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtém uma chave de criptografia para uma conversa
|
||||
*/
|
||||
export function obterChaveCriptografia(conversaId: string): CryptoKey | null {
|
||||
return chavesCriptografia.get(conversaId) || null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove uma chave de criptografia de uma conversa
|
||||
*/
|
||||
export function removerChaveCriptografia(conversaId: string): void {
|
||||
chavesCriptografia.delete(conversaId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifica se uma conversa tem chave de criptografia
|
||||
*/
|
||||
export function temChaveCriptografia(conversaId: string): boolean {
|
||||
return chavesCriptografia.has(conversaId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user