/// <summary> /// Serializes an array of IStatements. /// </summary> /// <param name="statements">statements</param> /// <param name="serializeGroup">If true, will serialize statements[0].Group. If false, will not serialize group.</param> /// <param name="serializeBases">If true, will serialize all bases. If false, will not serialize bases.</param> /// <returns>Array of strings. String[2i] is the serialized statement, String[2i+1] is the actual class name</returns> public static string[] Serialize(IStatement[] statements, bool serializeGroup = true, bool serializeBases = true) { string[] output = new string[statements.Length * 2]; for (int i = 0; i < statements.Length; ++i) { if ((i == 0) && (serializeGroup)) { statements[i].IsGroupSerializable = true; } else { statements[i].IsGroupSerializable = false; } if (serializeBases == true) { statements[i].AreBasesSerializable = true; } else { statements[i].AreBasesSerializable = false; } output[2 * i] = CryptoSerializer.Serialize <IStatement>(statements[i]); output[2 * i + 1] = statements[i].GetType().FullName; } return(output); }
public void VerifierOnSerializing(StreamingContext context) { _closedEq = null; if (AreStatementsSerializable) { _closedEq = CryptoSerializer.Serialize(this.Statements, false, true); } }
internal void OnPPSerializing(StreamingContext context) { if ((PublicValues == null) || (!ArePublicValuesSerializable)) { _publicValues = null; } else { _publicValues = CryptoSerializer.SerializeGroupElementArray(this.PublicValues, "PublicValues"); } if ((Witnesses == null) || (!AreWitnessesSerializable)) { _witnesses = null; } else { _witnesses = CryptoSerializer.Serialize(this.Witnesses, false, this.AreWitnessBasesSerializable); } }
public void OnSerializing(StreamingContext context) { this._representationLength = this.RepresentationLength; this._value = CryptoSerializer.Serialize(this.Value); if (this.AreBasesSerializable) { this._bases = CryptoSerializer.SerializeGroupElementArray(this.Bases, "Bases"); } else { this._bases = null; } if (this.IsWitness) { this._exponents = CryptoSerializer.SerializeFieldZqElementArray(this.Exponents, "exponents"); } else { this._exponents = null; } }
public void ProverOnSerializing(StreamingContext context) { _witnesses = CryptoSerializer.Serialize(this.Witnesses, false, true); }