From b843cf9f0858d030e9f1b5a9655ae828e5e0f8ec Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Tue, 31 Mar 2026 07:15:13 -0500 Subject: [PATCH] feat: wip on aes crypto provider --- .../Cryptography/AesCryptoProvider.cs | 20 +++++++++++++ .../Cryptography/AesCryptoProviderTests.cs | 28 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/StevanFreeborn.Extensions.Configuration.Secure/Cryptography/AesCryptoProvider.cs create mode 100644 tests/StevanFreeborn.Extensions.Configuration.Secure.Tests/Unit/Cryptography/AesCryptoProviderTests.cs diff --git a/src/StevanFreeborn.Extensions.Configuration.Secure/Cryptography/AesCryptoProvider.cs b/src/StevanFreeborn.Extensions.Configuration.Secure/Cryptography/AesCryptoProvider.cs new file mode 100644 index 0000000..c75220f --- /dev/null +++ b/src/StevanFreeborn.Extensions.Configuration.Secure/Cryptography/AesCryptoProvider.cs @@ -0,0 +1,20 @@ +namespace StevanFreeborn.Extensions.Configuration.Secure.Cryptography; + +internal sealed class AesCryptoProvider(IEncryptionKeyProvider keyProvider) : ICryptoProvider +{ + private readonly IEncryptionKeyProvider _keyProvider = keyProvider + ?? throw new ArgumentNullException(nameof(keyProvider)); + + // TODO: Implement this shit + + public string Decrypt(string cipherText) + { + _ = _keyProvider.GetKey(); + throw new NotImplementedException(); + } + + public string Encrypt(string plainText) + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/tests/StevanFreeborn.Extensions.Configuration.Secure.Tests/Unit/Cryptography/AesCryptoProviderTests.cs b/tests/StevanFreeborn.Extensions.Configuration.Secure.Tests/Unit/Cryptography/AesCryptoProviderTests.cs new file mode 100644 index 0000000..f1a2dd1 --- /dev/null +++ b/tests/StevanFreeborn.Extensions.Configuration.Secure.Tests/Unit/Cryptography/AesCryptoProviderTests.cs @@ -0,0 +1,28 @@ +using Moq; + +using StevanFreeborn.Extensions.Configuration.Secure.Cryptography; + +namespace StevanFreeborn.Extensions.Configuration.Secure.Tests.Unit.Cryptography; + +public class AesCryptoProviderTests +{ + private readonly Mock _mockKeyProvider = new(); + private readonly AesCryptoProvider _sut; + + public AesCryptoProviderTests() + { + _sut = new(_mockKeyProvider.Object); + } + + [Fact] + public void EncryptAndDecrypt_WhenCalled_ItShouldReturnOriginalString() + { + var originalText = "SuperDuperSecret"; + + var encryptedText = _sut.Encrypt(originalText); + var decryptedText = _sut.Decrypt(encryptedText); + + encryptedText.Should().NotBe(originalText); + decryptedText.Should().Be(originalText); + } +} \ No newline at end of file