using System.Security.Cryptography; namespace DigitalData.Core.Abstractions.Security { public interface ICryptFactory { public int KeySizeInBits { get; init; } public string PbePassword { init; } public PbeEncryptionAlgorithm PbeEncryptionAlgorithm { get; init; } public HashAlgorithmName PbeHashAlgorithmName { get; init; } public int PbeIterationCount { get; init; } public PbeParameters PbeParameters { get; } public string EncryptedPrivateKeyPemLabel { get; init; } string CreateRSAPrivateKeyPem(int? keySizeInBits = null); string CreateEncryptedPrivateKeyPem( int? keySizeInBits = null, string? password = null, PbeEncryptionAlgorithm? pbeEncryptionAlgorithm = null, HashAlgorithmName? hashAlgorithmName = null, int? iterationCount = null); } }