public void CanDecryptCurrentStringValueAndAccessDecryptedNodes(string plainTextJson, params JsonNodeType[] expectedNodeTypes) { var cipherTextJson = @"""" + Convert.ToBase64String(Encoding.UTF8.GetBytes(plainTextJson)) + @""""; var info = new JsonSerializeOperationInfo { EncryptionMechanism = new Base64EncryptionMechanism(), }; var reader = new JsonReader(new StringReader(cipherTextJson), info); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.None)); reader.Read(""); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.String)); reader.SetDecryptReads(true, ""); foreach (var expectedNodeType in expectedNodeTypes) { Assert.That(reader.NodeType, Is.EqualTo(expectedNodeType)); reader.Read(""); } reader.SetDecryptReads(false, ""); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.EndOfString)); }
public void ThrowsExceptionWhenSettingDecryptReadsToFalseBeforeEncryptedDataIsCompletelyConsumed() { var cipherTextJson = @"""" + Convert.ToBase64String(Encoding.UTF8.GetBytes(@"{""foo"":""bar""}")) + @""""; var info = new JsonSerializeOperationInfo { EncryptionMechanism = new Base64EncryptionMechanism(), }; var reader = new JsonReader(new StringReader(cipherTextJson), info); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.None)); reader.Read(); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.String)); reader.DecryptReads = true; Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.OpenObject)); reader.Read(); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.String)); Assert.That(() => reader.DecryptReads = false, Throws.InvalidOperationException); }
public void CanDecryptCurrentStringValueAndAccessDecryptedNodes(string plainTextJson, params JsonNodeType[] expectedNodeTypes) { var cipherTextJson = @"""" + Convert.ToBase64String(Encoding.UTF8.GetBytes(plainTextJson)) + @""""; var info = new JsonSerializeOperationInfo { EncryptionMechanism = new Base64EncryptionMechanism(), }; var reader = new JsonReader(new StringReader(cipherTextJson), info); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.None)); reader.Read(); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.String)); reader.DecryptReads = true; foreach (var expectedNodeType in expectedNodeTypes) { Assert.That(reader.NodeType, Is.EqualTo(expectedNodeType)); reader.Read(); } reader.DecryptReads = false; Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.None)); }
public void ThrowsExceptionWhenSettingDecryptReadsToFalseBeforeEncryptedDataIsCompletelyConsumed() { var cipherTextJson = @"""" + Convert.ToBase64String(Encoding.UTF8.GetBytes(@"{""foo"":""bar""}")) + @""""; var info = new JsonSerializeOperationInfo { EncryptionMechanism = new Base64EncryptionMechanism(), }; var reader = new JsonReader(new StringReader(cipherTextJson), info); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.None)); reader.Read(); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.String)); reader.DecryptReads = true; Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.OpenObject)); reader.Read(); Assert.That(reader.NodeType, Is.EqualTo(JsonNodeType.String)); Assert.That(() => reader.DecryptReads = false, Throws.InvalidOperationException); }