/// <summary>
 /// Deserialize.
 /// </summary>
 /// <param name="context"></param>
 public override void FinishDeserializing()
 {
     base.FinishDeserializing();
     if ((_witnesses != null) && (AreWitnessesSerializable))
     {
         if (this.AreWitnessBasesSerializable)
         {
             this.Witnesses = CryptoSerializer.Deserialize <DLRepOfGroupElement>(_witnesses, this.Group);
         }
         else
         {
             this.Witnesses = CryptoSerializer.Deserialize <DLRepOfGroupElement>(_witnesses, this.Group, this.Generators);
         }
     }
     if ((_publicValues != null) && ArePublicValuesSerializable)
     {
         this.PublicValues = CryptoSerializer.DeserializeGroupElementArray(_publicValues, "PublicValues", this.Group);
     }
     if ((this.PublicValues == null) && (this.Witnesses != null))
     {
         this.PublicValues = new GroupElement[this.Witnesses.Length];
         for (int i = 0; i < this.PublicValues.Length; ++i)
         {
             this.PublicValues[i] = this.Witnesses[i].Value;
         }
     }
 }
示例#2
0
 public void VerifierOnDeserialized(StreamingContext context)
 {
     if (this._closedEq == null)
     {
         return;
     }
     this.Statements = CryptoSerializer.Deserialize <IStatement>(_closedEq, this.Group);
 }
示例#3
0
        public void ProverOnDeserialized(StreamingContext context)
        {
            this.Witnesses = (IWitness [])CryptoSerializer.Deserialize <IWitness>(_witnesses, this.Group);

            this.Statements = new IStatement[this.Witnesses.Length];
            for (int i = 0; i < Witnesses.Length; ++i)
            {
                this.Statements[i] = this.Witnesses[i].GetStatement();
            }
        }