public void InequalityParamsSerializationTest() { for (int i = 0; i < StaticHelperClass.ParameterArray.Length; ++i) { CryptoParameters crypto = StaticHelperClass.ParameterArray[i]; FieldZqElement x = crypto.FieldZq.GetElement(1000); FieldZqElement y = crypto.FieldZq.GetElement(2000); PedersenCommitment X = new PedersenCommitment(x, crypto); PedersenCommitment Y = new PedersenCommitment(y, crypto); VerifierInequalityProofParameters verifier = new VerifierInequalityProofParameters(X.Value, Y.Value, crypto); string json = CryptoSerializer.Serialize <VerifierInequalityProofParameters>(verifier); VerifierInequalityProofParameters deserialized = CryptoSerializer.Deserialize <VerifierInequalityProofParameters>(json); StaticHelperClass.AssertProofParametersAreEqual(verifier, deserialized, "Verifier X Y"); verifier = new VerifierInequalityProofParameters(X.Value, y, crypto); json = CryptoSerializer.Serialize <VerifierInequalityProofParameters>(verifier); deserialized = CryptoSerializer.Deserialize <VerifierInequalityProofParameters>(json); StaticHelperClass.AssertProofParametersAreEqual(verifier, deserialized, "Verifier X value"); ProverInequalityProofParameters prover = new ProverInequalityProofParameters(X, Y, crypto); json = CryptoSerializer.Serialize <ProverInequalityProofParameters>(prover); ProverInequalityProofParameters dProver = CryptoSerializer.Deserialize <ProverInequalityProofParameters>(json); StaticHelperClass.AssertProofParametersAreEqual(dProver, prover, "Prover X Y"); prover = new ProverInequalityProofParameters(X, y, crypto); json = CryptoSerializer.Serialize <ProverInequalityProofParameters>(prover); dProver = CryptoSerializer.Deserialize <ProverInequalityProofParameters>(json); StaticHelperClass.AssertProofParametersAreEqual(dProver, prover, "Prover X value"); } }