/// <summary> /// Generates the third issuance message. /// </summary> /// <param name="message">The second issuance message.</param> /// <returnn>The third issuance message.</returnn> public ThirdIssuanceMessage GenerateThirdMessage(SecondIssuanceMessage message) { if (state != State.First) { throw new InvalidOperationException("GenerateFirstMessage must be called first"); } if (message.sigmaC.Length != numberOfTokens) { throw new ArgumentException("invalid sigmaC array length"); } FieldZqElement[] sigmaR = new FieldZqElement[message.sigmaC.Length]; Group Gq = ikap.IssuerParameters.Gq; FieldZq Zq = ikap.IssuerParameters.Zq; for (int i = 0; i < message.sigmaC.Length; i++) { sigmaR[i] = message.sigmaC[i] * ikap.PrivateKey + w[i]; w[i] = Zq.Zero; } w = null; state = State.Third; return(new ThirdIssuanceMessage(sigmaR)); }
public static SecondIssuanceMessageComposite convertSecondIssuanceMessage(SecondIssuanceMessage sm) { SecondIssuanceMessageComposite smc = new SecondIssuanceMessageComposite(); byte[][] byteArray1 = new byte[sm.sigmaC.Length][]; for (int i = 0; i < byteArray1.Length; i++) { byteArray1[i] = sm.sigmaC[i].ToByteArray(); } smc.SigmaC = byteArray1; return smc; }
public static SecondIssuanceMessage convertSecondIssuanceMessageComposite(SecondIssuanceMessageComposite sic) { BigInteger[] biArray = new BigInteger[sic.SigmaC.Length]; for (int i = 0; i < biArray.Length; i++) { biArray[i] = new BigInteger(1, sic.SigmaC[i]); } SecondIssuanceMessage si = new SecondIssuanceMessage(biArray); return si; }
private ThirdIssuanceMessageInfo HandleThirdMessageInfo(Issuer issuer, SecondIssuanceMessage secondMessage) { ThirdIssuanceMessageInfo thirdMessageInfo = new ThirdIssuanceMessageInfo(); thirdMessageInfo.ThirdMessage = issuer.GenerateThirdMessage(secondMessage); return thirdMessageInfo; }
/// <summary> /// Generates the third issuance message. /// </summary> /// <param name="message">The second issuance message.</param> /// <returnn>The third issuance message.</returnn> public ThirdIssuanceMessage GenerateThirdMessage(SecondIssuanceMessage message) { if (state != State.First) { throw new InvalidOperationException("GenerateFirstMessage must be called first"); } if (message.sigmaC.Length != numberOfTokens) { throw new ArgumentException("invalid sigmaC array length"); } FieldZqElement[] sigmaR = new FieldZqElement[message.sigmaC.Length]; Group Gq = ikap.IssuerParameters.Gq; FieldZq Zq = ikap.IssuerParameters.Zq; for (int i = 0; i < message.sigmaC.Length; i++) { sigmaR[i] = message.sigmaC[i] * ikap.PrivateKey + w[i]; w[i] = Zq.Zero; } w = null; state = State.Third; return new ThirdIssuanceMessage(sigmaR); }