2025-03-24 14:17:23 +01:00

44 lines
1.2 KiB
C#

using DigitalData.UserManager.Application.Services;
using DigitalData.UserManager.Application.Services.Options;
using Microsoft.AspNetCore.Mvc;
namespace DigitalData.UserManager.API.Controllers;
[Route("api/[controller]")]
[ApiController]
public class EncryptionController : ControllerBase
{
private readonly Encryptor _encryptor;
public EncryptionController(Encryptor encryptor)
{
_encryptor = encryptor;
}
[HttpPost("encrypt")]
public IActionResult Encrypt([FromQuery] string plainText, [FromBody] EncryptionParameters? options = null)
{
string cipherText = options is null
? _encryptor.Encrypt(plainText)
: Encryptor.Encrypt(plainText, options.Key, options.IV);
return Ok(cipherText);
}
[HttpPost("decrypt")]
public IActionResult Decrypt([FromQuery] string cipherText, [FromBody] EncryptionParameters? options = null)
{
var plainText = options is null
? _encryptor.Decrypt(cipherText)
: Encryptor.Decrypt(cipherText, options.Key, options.IV);
return Ok(plainText);
}
[HttpGet]
public IActionResult Generate()
{
var param = Encryptor.GenerateParameters();
return Ok(param);
}
}