public void ReturnsTheSameObjectFromEachCallToTheGetMethod() { var state = new SerializationState(); var foo1 = state.Get(() => new Foo(2)); var foo2 = state.Get(() => new Foo(2)); var foo3 = state.Get(() => new Foo(2)); Assert.That(foo1, Is.SameAs(foo2)); Assert.That(foo2, Is.SameAs(foo3)); }
/// <summary> /// Decrypts the specified cipher text. /// </summary> /// <param name="cipherText">The cipher text.</param> /// <param name="credentialName"> /// The name of the credential to use for this encryption operation, /// or null to use the default credential. /// </param> /// <param name="serializationState"> /// An object that holds an arbitrary value that is passed to one or more decrypt /// operations within a single serialization operation. /// </param> /// <returns>The decrypted text.</returns> public string Decrypt(string cipherText, string credentialName, SerializationState serializationState) { var decryptor = serializationState.Get(() => _crypto.GetDecryptor(credentialName?.ToString())); var plainText = decryptor.Decrypt(cipherText); return(plainText); }
/// <summary> /// Encrypts the specified plain text. /// </summary> /// <param name="plainText">The plain text.</param> /// <param name="credentialName"> /// The name of the credential to use for this encryption operation, /// or null to use the default credential. /// </param> /// <param name="serializationState"> /// An object that holds an arbitrary value that is passed to one or more encrypt /// operations within a single serialization operation. /// </param> /// <returns>The encrypted text.</returns> public string Encrypt(string plainText, string credentialName, SerializationState serializationState) { var encryptor = serializationState.Get(() => _crypto.GetEncryptor(credentialName?.ToString())); var cipherText = encryptor.Encrypt(plainText); return(cipherText); }
public void ReturnsTheObjectFromTheGetMethod() { var state = new SerializationState(); var foo = state.Get(() => new Foo(1)); Assert.That(foo.Bar, Is.EqualTo(1)); }
public string Decrypt(string cipherText, object encryptKey, SerializationState serializationState) { LastSerializationState = serializationState; var counts = serializationState.Get(() => new Counts()); counts.DecryptInvocationCount++; return(Encoding.UTF8.GetString(Convert.FromBase64String(cipherText))); }
public string Encrypt(string plainText, object encryptKey, SerializationState serializationState) { LastSerializationState = serializationState; var counts = serializationState.Get(() => new Counts()); counts.EncryptInvocationCount++; return(Convert.ToBase64String(Encoding.UTF8.GetBytes(plainText))); }
/// <summary> /// Encrypts the specified plain text. /// </summary> /// <param name="plainText">The plain text.</param> /// <param name="encryptKey"> /// An object to used to look up invokation-specific encryption parameters. /// </param> /// <param name="serializationState"> /// An object that holds an arbitrary value that is passed to one or more encrypt /// operations within a single serialization operation. /// </param> /// <returns></returns> public string Encrypt(string plainText, object encryptKey, SerializationState serializationState) { var encryptor = serializationState == null ? _crypto.GetEncryptor(encryptKey) : serializationState.Get(() => _crypto.GetEncryptor(encryptKey)); var cipherText = encryptor.Encrypt(plainText); return(cipherText); }
/// <summary> /// Decrypts the specified cipher text. /// </summary> /// <param name="cipherText">The cipher text.</param> /// <param name="encryptKey"> /// An object to used to look up invokation-specific encryption parameters. /// </param> /// <param name="serializationState"> /// An object that holds an arbitrary value that is passed to one or more decrypt /// operations within a single serialization operation. /// </param> /// <returns>The decrypted text.</returns> public string Decrypt(string cipherText, object encryptKey, SerializationState serializationState) { var decryptor = serializationState == null ? _crypto.GetDecryptor(encryptKey) : serializationState.Get(() => _crypto.GetDecryptor(encryptKey)); var plainText = decryptor.Decrypt(cipherText); return(plainText); }
public string Decrypt(string cipherText, object encryptKey, SerializationState serializationState) { if (serializationState == null) { throw new ArgumentNullException(nameof(serializationState)); } LastSerializationState = serializationState; var counts = serializationState.Get(() => new Counts()); counts.DecryptInvocationCount++; return(Encoding.UTF8.GetString(Convert.FromBase64String(cipherText))); }
public string Encrypt(string plainText, object encryptKey, SerializationState serializationState) { if (serializationState == null) { throw new ArgumentNullException(nameof(serializationState)); } LastSerializationState = serializationState; var counts = serializationState.Get(() => new Counts()); counts.EncryptInvocationCount++; return(Convert.ToBase64String(Encoding.UTF8.GetBytes(plainText))); }
public void GetDecryptorIsNotCalledWhenSerializationStateIsNotEmpty() { var mockCrypto = new Mock <ICrypto>(); var mockDecryptor = new Mock <IDecryptor>(); mockCrypto.Setup(c => c.GetDecryptor(It.IsAny <string>())).Returns(() => mockDecryptor.Object); var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object); const string credentialName = "foobar"; var serializationState = new SerializationState(); serializationState.Get(() => mockDecryptor.Object); encryptionMechanism.Decrypt("foo", credentialName, serializationState); mockCrypto.Verify(c => c.GetDecryptor(It.Is <string>(obj => obj == credentialName)), Times.Never()); }
public void TheCachedEncryptorReturnsTheReturnValue() { var mockCrypto = new Mock <ICrypto>(); var mockEncryptor = new Mock <IEncryptor>(); mockCrypto.Setup(c => c.GetEncryptor(It.IsAny <string>())).Returns(() => mockEncryptor.Object); mockEncryptor.Setup(e => e.Encrypt(It.IsAny <string>())).Returns("bar"); var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object); var credentialName = "foobar"; var serializationState = new SerializationState(); serializationState.Get(() => mockEncryptor.Object); var encrypted = encryptionMechanism.Encrypt("foo", credentialName, serializationState); Assert.AreEqual(encrypted, "bar"); }
public void TheCachedEncryptorReturnsTheReturnValue() { var mockCrypto = new Mock <ICrypto>(); var mockEncryptor = new Mock <IEncryptor>(); mockCrypto.Setup(c => c.GetEncryptor(It.IsAny <string>())).Returns(() => mockEncryptor.Object); mockEncryptor.Setup(e => e.Encrypt(It.IsAny <string>())).Returns("bar"); var encryptionMechanism = new CryptoEncryptionMechanism(mockCrypto.Object); var credentialName = "foobar"; var serializationState = new SerializationState(); // Force the mock encryptor to be cached in the serialization state. serializationState.Get(() => mockEncryptor.Object); var encrypted = encryptionMechanism.Encrypt("foo", credentialName, serializationState); encrypted.Should().Be("bar"); }
public string Decrypt(string cipherText, object encryptKey, SerializationState serializationState) { LastSerializationState = serializationState; var counts = serializationState.Get(() => new Counts()); counts.DecryptInvocationCount++; return Encoding.UTF8.GetString(Convert.FromBase64String(cipherText)); }
public void ThrowsAnExceptionIfGetValueIsNull() { var state = new SerializationState(); Assert.That(() => state.Get <Foo>(null), Throws.InstanceOf <ArgumentNullException>()); }
public void ThrowsAnExceptionIfGetValueReturnsNull() { var state = new SerializationState(); Assert.That(() => state.Get <Foo>(() => null), Throws.ArgumentException); }
public string Encrypt(string plainText, object encryptKey, SerializationState serializationState) { LastSerializationState = serializationState; var counts = serializationState.Get(() => new Counts()); counts.EncryptInvocationCount++; return Convert.ToBase64String(Encoding.UTF8.GetBytes(plainText)); }
public void ThrowsAnExceptionIfGetValueIsNull() { var state = new SerializationState(); Assert.That(() => state.Get<Foo>(null), Throws.InstanceOf<ArgumentNullException>()); }
public void ThrowsAnExceptionIfGetValueReturnsNull() { var state = new SerializationState(); Assert.That(() => state.Get<Foo>(() => null), Throws.ArgumentException); }