using System.Text; using IdentityShroud.Core.Model; using IdentityShroud.Core.Security; namespace IdentityShroud.Core.Contracts; public interface IDataEncryptionService { EncryptedValue Encrypt(RealmDek dek, ReadOnlySpan plain); byte[] Decrypt(IReadOnlyList deks, EncryptedValue input); } public static class DataEncryptionServiceExtensions { public static string DecryptUtf8ToString( this IDataEncryptionService des, IReadOnlyList deks, EncryptedValue input) { return Encoding.UTF8.GetString(des.Decrypt(deks, input)); } }