mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 08:36:11 +02:00
feat: Implement message encryption and decryption support
- Added IMessageEncryptionService and its implementation MessageEncryptionService for handling message encryption. - Updated ChannelsController and ChatService to encrypt messages before storing and sending. - Introduced encryption key retrieval endpoint in ServerController. - Modified EchoHubDbContext to accommodate increased message content and embed JSON lengths for encrypted data. - Created migrations to support encryption-related database changes. - Enhanced FirstRunSetup to ensure encryption key is generated if not present. - Updated appsettings.example.json to include encryption configuration. - Added comprehensive unit tests for encryption service and compatibility tests between client and server encryption.
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using EchoHub.Core.DTOs;
|
||||
using EchoHub.Server.Data;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.RateLimiting;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace EchoHub.Server.Controllers;
|
||||
@@ -32,4 +34,17 @@ public class ServerController : ControllerBase
|
||||
|
||||
return Ok(status);
|
||||
}
|
||||
|
||||
[HttpGet("encryption-key")]
|
||||
[Authorize]
|
||||
[EnableRateLimiting("auth")]
|
||||
public IActionResult GetEncryptionKey()
|
||||
{
|
||||
var key = _config["Encryption:Key"];
|
||||
|
||||
if (string.IsNullOrEmpty(key))
|
||||
return StatusCode(503, new ErrorResponse("Encryption is not configured on this server."));
|
||||
|
||||
return Ok(new EncryptionKeyResponse(key));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user