using System.Security.Cryptography; namespace DigitalData.Core.Abstractions.Security { public interface IAsymmetricKeyFactory { string CreatePrivateKeyPem(int? keySizeInBits = null, bool encrypt = false); string CreateEncryptedPrivateKeyPem( PbeEncryptionAlgorithm? pbeEncryptionAlgorithm = null, HashAlgorithmName? hashAlgorithmName = null, int? iterationCount = null, int? keySizeInBits = null, string? password = null); string CreateEncryptedPrivateKeyPem( PbeParameters pbeParameters, int? keySizeInBits = null, string? password = null); public IAsymmetricDecryptor CreateDecryptor(string pem, string? issuer = null, string? audience = null, bool encrypt = false, RSAEncryptionPadding? padding = null); } }