Replace legacy encryption with AES-GCM

This commit is contained in:
Andy Howard
2026-09-16 18:40:32 +01:00
parent 6989c5f9b6
commit a0a5ef970c
13 changed files with 456 additions and 278 deletions
@@ -36,15 +36,14 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
Assert.That(() => SacsEncryptionHelper.EncodePlainKey(value), Throws.TypeOf<NotSupportedException>());
}
// --- Key and IV Generation ---
// --- Key Generation ---
[Test]
public void InitSymmetricEncryptionKeyIV_ReturnsAes256KeyAndBlockSizedIv()
public void InitSymmetricEncryptionKey_ReturnsAes256Key()
{
(String key, String iv) = SacsEncryptionHelper.InitSymmetricEncryptionKeyIV();
String key = SacsEncryptionHelper.InitSymmetricEncryptionKey();
Assert.That(Convert.FromBase64String(key), Has.Length.EqualTo(32));
Assert.That(Convert.FromBase64String(iv), Has.Length.EqualTo(16));
}
[Test]
@@ -63,12 +62,13 @@ namespace Sacs.UnitTests.Net.Standard.Base.Helpers
[TestCase("Unicode £ € 漢字 and emoji 😀")]
public void EncryptDecrypt_RoundTripsText(String value)
{
(String key, String iv) = SacsEncryptionHelper.InitSymmetricEncryptionKeyIV();
String key = SacsEncryptionHelper.InitSymmetricEncryptionKey();
String encrypted = SacsEncryptionHelper.Encrypt(value, iv, key);
String decrypted = SacsEncryptionHelper.Decrypt(encrypted, iv, key);
String encrypted = SacsEncryptionHelper.EncryptAuthenticated(value, key, "Tests:SacsEncryptionHelper");
String decrypted = SacsEncryptionHelper.DecryptAuthenticated(encrypted, key, "Tests:SacsEncryptionHelper");
Assert.That(encrypted, Is.Not.EqualTo(value));
Assert.That(encrypted, Does.StartWith(SacsAuthenticatedEncryption.EnvelopePrefix));
Assert.That(decrypted, Is.EqualTo(value));
}