public void Public_properties_are_encrypted_and_decrypted() { var dataProtectionProvider = Helpers.GetTestDataProtectionProvider(ApplicationName); var contractResolver = new JsonCryptionContractResolver(dataProtectionProvider); var serializer = new JsonSerializer() { ContractResolver = contractResolver }; var instance = new FooBool { MyBool = true }; var builder = new StringBuilder(); using (var textWriter = new StringWriter(builder)) serializer.Serialize(textWriter, instance); var json = builder.ToString(); json.ShouldNotBe("{\"MyBool\":true}"); using var textReader = new StringReader(json); using var reader = new JsonTextReader(textReader); var decrypted = serializer.Deserialize <FooBool>(reader); decrypted.MyBool.ShouldBeTrue(); }
public void Boolean_works() { Coordinator.Configure(options => options.DataProtectionProvider = DataProtectionProvider.Create("test")); var foo = new FooBool { MyBool = true }; var json = JsonSerializer.Serialize(foo); // make sure it's encrypted using (var jsonDoc = JsonDocument.Parse(json)) { var jsonProperty = jsonDoc.RootElement.GetProperty(nameof(FooBool.MyBool)); jsonProperty.ValueKind.ShouldBe(JsonValueKind.String); } // decrypt and check var decrypted = JsonSerializer.Deserialize <FooBool>(json); decrypted.MyBool.ShouldBeTrue(); }