using System.Security.Cryptography; using DigitalData.Core.Abstractions.Security.Key; namespace DigitalData.Core.Abstractions.Security.Services; 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); IAsymmetricDecryptor CreateDecryptor(string pem, string? issuer = null, string? audience = null, bool encrypt = false, RSAEncryptionPadding? padding = null); }