diff --git a/DigitalData.Core.Abstractions/Security/IRSAFactory.cs b/DigitalData.Core.Abstractions/Security/IRSAFactory.cs index d1347ff..28a776a 100644 --- a/DigitalData.Core.Abstractions/Security/IRSAFactory.cs +++ b/DigitalData.Core.Abstractions/Security/IRSAFactory.cs @@ -4,16 +4,16 @@ namespace DigitalData.Core.Abstractions.Security { public interface IRSAFactory { - string CreatePrivateKeyPem(int? keySizeInBits = null); + string CreatePrivateKeyPem(int? keySizeInBits = null, bool encrypt = false); - public string CreateEncryptedPrivateKeyPem( + string CreateEncryptedPrivateKeyPem( PbeEncryptionAlgorithm? pbeEncryptionAlgorithm = null, HashAlgorithmName? hashAlgorithmName = null, int? iterationCount = null, int? keySizeInBits = null, string? password = null); - public string CreateEncryptedPrivateKeyPem( + string CreateEncryptedPrivateKeyPem( PbeParameters pbeParameters, int? keySizeInBits = null, string? password = null); diff --git a/DigitalData.Core.Security/Cryptographer/RSAFactory.cs b/DigitalData.Core.Security/Cryptographer/RSAFactory.cs index 9f10a06..e928280 100644 --- a/DigitalData.Core.Security/Cryptographer/RSAFactory.cs +++ b/DigitalData.Core.Security/Cryptographer/RSAFactory.cs @@ -11,8 +11,9 @@ namespace DigitalData.Core.Security.Cryptographer public RSAFactory(IOptions options) => _params = options.Value; - public string CreatePrivateKeyPem(int? keySizeInBits = null) - => RSA.Create(keySizeInBits ?? _params.KeySizeInBits).ExportRSAPrivateKeyPem(); + public string CreatePrivateKeyPem(int? keySizeInBits = null, bool encrypt = false) => encrypt + ? CreateEncryptedPrivateKeyPem(keySizeInBits: keySizeInBits) + : RSA.Create(keySizeInBits ?? _params.KeySizeInBits).ExportRSAPrivateKeyPem(); public string CreateEncryptedPrivateKeyPem( PbeEncryptionAlgorithm? pbeEncryptionAlgorithm = null,