public void CSBadSerializeGroupElementArrayTest() { GroupElement[] input = StaticHelperClass.GenerateRandomBases(10, paramIndex); StaticHelperClass.TryBodyDelegate negativeLength = new StaticHelperClass.TryBodyDelegate( () => { string[] serialized = CryptoSerializer.SerializeGroupElementArray(input, 3, -1, "blah"); }); StaticHelperClass.AssertThrowsException(negativeLength, typeof(Exception), "negative output length"); // zero output length string[] output = CryptoSerializer.SerializeGroupElementArray(input, 3, 0, "blah"); Assert.AreEqual(0, output.Length, "output.Length."); // output length too long StaticHelperClass.TryBodyDelegate outputLengthTooLarge = new StaticHelperClass.TryBodyDelegate( () => { string[] serialized = CryptoSerializer.SerializeGroupElementArray(input, 3, 9, "blah"); }); StaticHelperClass.AssertThrowsException(outputLengthTooLarge, typeof(Exception), "Output length too large"); // copy index negative StaticHelperClass.TryBodyDelegate startIndexNegative = new StaticHelperClass.TryBodyDelegate( () => { string[] serialized = CryptoSerializer.SerializeGroupElementArray(input, -1, 4, "blah"); }); StaticHelperClass.AssertThrowsException(startIndexNegative, typeof(Exception), "Start index is negative."); }
public void CSBadDeserializeFieldZqElementArrayTest() { FieldZqElement[] input = StaticHelperClass.GenerateRandomExponents(10, paramIndex); string[] serialized = CryptoSerializer.SerializeFieldZqElementArray(input, 3, 4, "blah"); Assert.AreEqual(4, serialized.Length, "serialized array length"); StaticHelperClass.TryBodyDelegate negativeStartIndex = new StaticHelperClass.TryBodyDelegate( () => { FieldZqElement[] output = CryptoSerializer.DeserializeFieldZqElementArray(serialized, -1, 10, "blah", crypto.Group); }); StaticHelperClass.AssertThrowsException(negativeStartIndex, typeof(Exception), "negative start index"); StaticHelperClass.TryBodyDelegate startIndexTooLarge = new StaticHelperClass.TryBodyDelegate( () => { FieldZqElement[] output = CryptoSerializer.DeserializeFieldZqElementArray(serialized, 8, 10, "blah", crypto.Group); }); StaticHelperClass.AssertThrowsException(startIndexTooLarge, typeof(Exception), "start index too large"); StaticHelperClass.TryBodyDelegate startIndexWaytooLarge = new StaticHelperClass.TryBodyDelegate( () => { FieldZqElement[] output = CryptoSerializer.DeserializeFieldZqElementArray(serialized, 11, 10, "blah", crypto.Group); }); StaticHelperClass.AssertThrowsException(startIndexWaytooLarge, typeof(Exception), "start index greater than output length "); }
public void SMBadConstructorTest() { ProverSetMembershipParameters badProver = new ProverSetMembershipParameters(_cryptoParameters); StaticHelperClass.AssertThrowsException( new StaticHelperClass.TryBodyDelegate(() => { SetMembershipProof proof = new SetMembershipProof(badProver); }), typeof(Exception), "Constructor SetMembershipProof called with bad prover parameters."); }
public void CSCheckDeserializationInputTest() { PrivateType serializer = new PrivateType(typeof(CryptoSerializer)); object [] parameters = new object[] { new string[] { "b", "a" }, 0, 0, "lalla", null }; StaticHelperClass.AssertThrowsException( () => { serializer.InvokeStatic("CheckDeserializationInput", parameters); }, typeof(SerializationException), "Group is null"); }
public void BDBadProverParameterTest() { ProverBitDecompositionParameters prover = new ProverBitDecompositionParameters( new PedersenCommitment(_parameters[2].FieldZq.GetElement(10), _parameters[2]), 4, _parameters[2]); prover.Witnesses[3] = new PedersenCommitment(_parameters[2].FieldZq.GetElement(2), _parameters[2]); StaticHelperClass.AssertThrowsException ( () => { BitDecompositionProof proof = new BitDecompositionProof(prover); }, typeof(Exception), "Bad prover parameters." ); }
public void CSGenericBadSerializationTest() { StaticHelperClass.AssertThrowsException( () => { CryptoSerializer.Deserialize <SetMembershipProof>("bad jsonString"); }, typeof(SerializationException), "deserialization"); ProverSetMembershipParameters prover = new ProverSetMembershipParameters(crypto); FieldZqElement [] memberSet = crypto.FieldZq.GetRandomElements(10, true); prover.setProverParameters(memberSet[0], memberSet); SetMembershipProof proof = new SetMembershipProof(prover); PrivateObject proofAccessor = new PrivateObject(proof); proofAccessor.SetProperty("c", null); StaticHelperClass.AssertThrowsException( () => { CryptoSerializer.Serialize <SetMembershipProof>(proof); }, typeof(SerializationException), "serialization"); }
public void CSBadSerializeFieldZqElementArrayTest() { FieldZqElement[] input = StaticHelperClass.GenerateRandomExponents(10, paramIndex); StaticHelperClass.TryBodyDelegate negativeLength = new StaticHelperClass.TryBodyDelegate( () => { string[] serialized = CryptoSerializer.SerializeFieldZqElementArray(input, 3, -1, "blah"); }); StaticHelperClass.AssertThrowsException(negativeLength, typeof(Exception), "negative output length"); // zero output length string[] output = CryptoSerializer.SerializeFieldZqElementArray(input, 3, 0, "blah"); Assert.AreEqual(0, output.Length, "output.Length."); // output length too long StaticHelperClass.TryBodyDelegate outputLengthTooLarge = new StaticHelperClass.TryBodyDelegate( () => { string[] serialized = CryptoSerializer.SerializeFieldZqElementArray(input, 3, 9, "blah"); }); StaticHelperClass.AssertThrowsException(outputLengthTooLarge, typeof(Exception), "Output length too large"); // copy index negative StaticHelperClass.TryBodyDelegate startIndexNegative = new StaticHelperClass.TryBodyDelegate( () => { string[] serialized = CryptoSerializer.SerializeFieldZqElementArray(input, -1, 4, "blah"); }); StaticHelperClass.AssertThrowsException(startIndexNegative, typeof(Exception), "Start index is negative."); string[] jsonStrings = new string[32]; StaticHelperClass.AssertThrowsException( () => { CryptoSerializer.DeserializeFieldZqElementArray(jsonStrings, 0, 0, "field", null); }, typeof(SerializationException), "Group is null."); }
public void SMIndexOfCommittedValueTest() { // place index in set ProverSetMembershipParameters prover = new ProverSetMembershipParameters(_cryptoParameters); prover.setProverParameters(ValidDaysOfTheWeek[4], ValidDaysOfTheWeek); Assert.AreEqual(4, prover.IndexOfCommittedValueInSet, "computed wrong index of committed value."); // now index is not in set FieldZqElement badday = _cryptoParameters.FieldZq.One; prover.setProverParameters(badday, ValidDaysOfTheWeek); StaticHelperClass.AssertThrowsException( new StaticHelperClass.TryBodyDelegate(() => { int index = prover.IndexOfCommittedValueInSet; }), typeof(Exception), "Witness not in memberset."); // prover parameters not set yet prover = new ProverSetMembershipParameters(_cryptoParameters); StaticHelperClass.AssertThrowsException( new StaticHelperClass.TryBodyDelegate(() => { int index = prover.IndexOfCommittedValueInSet; }), typeof(Exception), "witness set to null."); }