public void RegisterCipherTest() { var cipher1 = new CipherStub("cipherStub1"); var cipher2 = new CipherStub("cipherStub2"); using var provider = new CryptoProvider(cipher1); provider.RegisterCipher(cipher2); var ex = Assert.Throws <StorageClientException>(() => provider.RegisterCipher(cipher1)); Assert.AreEqual("Custom cipher with name cipherStub1 is already registered", ex.Message); ex = Assert.Throws <StorageClientException>(() => provider.UnregisterCipher(cipher1)); Assert.AreEqual("Can't unregister default cipher with name cipherStub1", ex.Message); var unregisterStatus2 = provider.UnregisterCipher(cipher2); Assert.IsTrue(unregisterStatus2); var unregisterStatus4 = provider.UnregisterCipher(cipher2); Assert.IsFalse(unregisterStatus4); var unregisterStatus5 = provider.UnregisterCipher(null); Assert.IsFalse(unregisterStatus5); var unregisterStatus6 = provider.UnregisterCipher(new CipherStub("")); Assert.IsFalse(unregisterStatus6); }
public void ValidateCipherNegativeTest() { var cipher1 = new CipherStub("cipherStub1"); var cipher2 = new WrongCipher("WrongCipher"); using var provider = new CryptoProvider(cipher1); provider.RegisterCipher(cipher2); var customEncryptionKey = new CustomEncryptionKey(1, Encoding.UTF8.GetBytes("CustomEncryptionKey")); var exception = Assert.Throws <StorageClientException>(() => { provider.ValidateCustomCiphers(new SecretsData(new List <Secret> { customEncryptionKey }, customEncryptionKey)); }); Assert.AreEqual("Validation failed for custom cipher with version 'WrongCipher'", exception.Message); provider.UnregisterCipher(cipher2); var cipher3 = new CipherWithException("CipherWithException"); provider.RegisterCipher(cipher3); exception = Assert.Throws <StorageClientException>(() => { provider.ValidateCustomCiphers(new SecretsData(new List <Secret> { customEncryptionKey }, customEncryptionKey)); }); Assert.AreEqual("Validation failed for custom cipher with version 'CipherWithException'", exception.Message); Assert.NotNull(exception.InnerException); Assert.IsInstanceOf <NotImplementedException>(exception.InnerException); var secretData = SecretsDataGenerator.FromPassword("password"); exception = Assert.Throws <StorageClientException>(() => provider.ValidateCustomCiphers(secretData)); Assert.AreEqual("There is no custom encryption key for the custom ciphers", exception.Message); }