21 lines
701 B
C#
21 lines
701 B
C#
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using Kbx.Shared.Configuration.Generated;
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
namespace Kbx.Shared.Configuration;
|
|
|
|
public static class KbxConfigurationFingerprint
|
|
{
|
|
public static string Compute(IConfiguration configuration)
|
|
{
|
|
var lines = KbxConfigurationCatalog.Settings.Values
|
|
.Where(x => !x.Secret)
|
|
.OrderBy(x => x.Key, StringComparer.Ordinal)
|
|
.Select(x => $"{x.Key}={configuration[x.Key] ?? x.DefaultValue ?? string.Empty}");
|
|
|
|
var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(string.Join("\n", lines)));
|
|
return Convert.ToHexString(bytes).ToLowerInvariant();
|
|
}
|
|
}
|