Files
Antifraude.Net/Antifraude.Net/ApiOPE/Security/OpeResponseSigner.cs

24 lines
653 B
C#

using System.Security.Cryptography;
using System.Text;
using ApiOPE.Configuration;
using Microsoft.Extensions.Options;
namespace ApiOPE.Security;
public sealed class OpeResponseSigner
{
private readonly byte[] _secretKey;
public OpeResponseSigner(IOptions<OpeOptions> options)
{
_secretKey = Encoding.UTF8.GetBytes(options.Value.SecretKey);
}
public string Sign(string uuid)
{
var hash = HMACSHA256.HashData(_secretKey, Encoding.UTF8.GetBytes(uuid));
var lowercaseHex = Convert.ToHexString(hash).ToLowerInvariant();
return Convert.ToBase64String(Encoding.UTF8.GetBytes(lowercaseHex));
}
}