Lumi/companion/plugins/Lumi.Companion.SongOverlay/SongOverlaySecretProtector.cs
2026-07-24 14:44:27 +02:00

29 lines
853 B
C#

using System.Security.Cryptography;
using System.Text;
namespace Lumi.Companion.SongOverlay;
internal sealed class SongOverlaySecretProtector
{
private static readonly byte[] Entropy = "Lumi.Companion.SongOverlay.v1"u8.ToArray();
public string Protect(string value)
{
if (string.IsNullOrWhiteSpace(value)) return "";
return Convert.ToBase64String(ProtectedData.Protect(Encoding.UTF8.GetBytes(value), Entropy, DataProtectionScope.CurrentUser));
}
public string Unprotect(string value)
{
if (string.IsNullOrWhiteSpace(value)) return "";
try
{
return Encoding.UTF8.GetString(ProtectedData.Unprotect(Convert.FromBase64String(value), Entropy, DataProtectionScope.CurrentUser));
}
catch (CryptographicException)
{
return "";
}
}
}