24 lines
967 B
C#
24 lines
967 B
C#
using DigitalData.Core.Abstractions.Security;
|
|
using System.Collections;
|
|
|
|
namespace DigitalData.Core.Security.Cryptographer
|
|
{
|
|
public class RSACryptographerList<TRSACryptographer> : IEnumerable<TRSACryptographer> where TRSACryptographer : IRSACryptographer
|
|
{
|
|
private readonly Func<TRSACryptographer, string> _keyGenerator;
|
|
|
|
private readonly IEnumerable<TRSACryptographer> _cryptographers;
|
|
|
|
internal RSACryptographerList(Func<TRSACryptographer, string> keyGenerator, IEnumerable<TRSACryptographer> cryptographers)
|
|
{
|
|
_keyGenerator = keyGenerator;
|
|
_cryptographers = cryptographers;
|
|
}
|
|
|
|
public TRSACryptographer? this[string key] => _cryptographers.SingleOrDefault(crypt => _keyGenerator(crypt) == key);
|
|
|
|
public IEnumerator<TRSACryptographer> GetEnumerator() => _cryptographers.GetEnumerator();
|
|
|
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
|
}
|
|
} |