public void DataProtection() { ProtectedBinary bin = new ProtectedBinary(ExpectedBytes, true); Assert.IsFalse(bin.GetRawData().SequenceEqual(ExpectedBytes), "Raw data should not be the same as clear data"); Assert.IsTrue(bin.GetClearData().SequenceEqual(ExpectedBytes), "Clear data should be the same as original"); // Do it again to ensure the cipher is re-seeded ProtectedBinary bin2 = new ProtectedBinary(ExpectedBytes, true); Assert.IsFalse(bin.GetRawData().SequenceEqual(bin2.GetRawData()), "Raw data should differ binary-to-binary"); Assert.IsTrue(bin2.GetClearData().SequenceEqual(ExpectedBytes), "Clear data should be the same as original, second time"); ProtectedBinary clearBin = new ProtectedBinary(ExpectedBytes, false); Assert.IsTrue(clearBin.GetRawData().SequenceEqual(ExpectedBytes), "Unencrypted data should be exposed as-is"); Assert.IsTrue(clearBin.GetClearData().SequenceEqual(ExpectedBytes), "Unencrypted data should not be encrypted accidentally"); }