using DigitalData.Core.Abstractions.Security; using DigitalData.Core.Security.Config; using DigitalData.Core.Security.Cryptographer; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System.Collections; namespace DigitalData.Core.Security { public class AsymCryptService : RSAFactory, IAsymCryptService, IRSAFactory, IEnumerable where TAsymCryptParams : AsymCryptParams { public IEnumerable Decryptors => _params.Decryptors; public AsymCryptService(IOptions options, ILogger>? logger = null) : base(options) { logger?.LogInformation("Core.Secrets version: {Version}, Created on: {CreationDate}.", Secrets.Version, Secrets.CreationDate.ToString("dd.MM.yyyy")); } public IEnumerator GetEnumerator() => Decryptors.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => Decryptors.GetEnumerator(); public IEnumerable Encryptors { get { foreach (var decryptor in Decryptors) { yield return decryptor.Encryptor; } } } } }