Example #1
0
        public static ThirdIssuanceMessage convertThirdIssuanceMessageComposite(ThirdIssuanceMessageComposite tic)
        {
            BigInteger[] biArray = new BigInteger[tic.SigmaR.Length];
            for (int i = 0; i < biArray.Length; i++)
            {
                biArray[i] = new BigInteger(1, tic.SigmaR[i]);
            }

            ThirdIssuanceMessage tm = new ThirdIssuanceMessage(biArray);

            return(tm);
        }
Example #2
0
        public static ThirdIssuanceMessageComposite convertThirdIssuanceMessage(ThirdIssuanceMessage tim)
        {
            ThirdIssuanceMessageComposite timc = new ThirdIssuanceMessageComposite();

            byte[][] byteArray1 = new byte[tim.sigmaR.Length][];
            for (int i = 0; i < byteArray1.Length; i++)
            {
                byte[] tmp = tim.sigmaR[i].ToByteArray();
                byteArray1[i] = tmp;
            }

            timc.SigmaR = byteArray1;

            return(timc);
        }
Example #3
0
        public List <UProveKeyAndTokenComposite> generateTokens(ThirdIssuanceMessageComposite thirdMessage, string sessionID)
        {
            /*
             *  token issuance - generate tokens.
             */

            cOut.write("Issuing U-Prove tokens - generate tokens, prover side");
            VerifySessionId(sessionID);

            try
            {
                // Convert serializable ThirdIssuanceMessageComposite members to ThirdIssuanceMessage.
                ThirdIssuanceMessage tm = ConvertUtils.convertThirdIssuanceMessageComposite(thirdMessage);

                // Retrieve correct Prover instance from proversDictionary for the given sessionKey.
                if (sessionDB.ContainsKey(sessionID))
                {
                    Prover prover = sessionDB[sessionID].prover;
                    // generate the tokens.
                    UProveKeyAndToken[] upkt = prover.GenerateTokens(tm);

                    // Serialize them.
                    cOut.write("Generating tokens...");

                    List <UProveKeyAndTokenComposite> tokens = new List <UProveKeyAndTokenComposite>();

                    foreach (UProveKeyAndToken t in upkt)
                    {
                        byte[] bigInt = t.PrivateKey.ToByteArray();
                        UProveKeyAndTokenComposite keyAndTokenComposite = new UProveKeyAndTokenComposite();
                        keyAndTokenComposite.PrivateKey = bigInt;
                        keyAndTokenComposite.Token      = ConvertUtils.convertUProveToken(t.Token);
                        tokens.Add(keyAndTokenComposite);
                    }

                    return(tokens);
                }
            }
            catch (Exception e)
            {
                cOut.write(e.ToString());
                DebugUtils.DebugPrint(e.StackTrace.ToString());
            }

            return(null);
        }
Example #4
0
        public ThirdIssuanceMessageComposite getThirdMessage(SecondIssuanceMessageComposite secondMessage, string sessionID)
        {
            /*
             *  token issuance - generate third message
             */

            cOut.write("Issuing U-Prove tokens - generate third message, issuer side");
            VerifySessionId(sessionID);
            try
            {
                // Convert serializable SecondIssuanceMessageComposite members to SecondIssuanceMessage
                SecondIssuanceMessage si = ConvertUtils.convertSecondIssuanceMessageComposite(secondMessage);

                // Get unique session key from SecondIssuanceMessageComposite for retrieving the correct Issuer instance from issuersDictionary
                string sessionKey = secondMessage.SessionKey;
                //VerifySessionId(sessionKey);

                // Retrieve correct Issuer instance from issuersDictionary for the given sessionKey
                if (sessionDB.ContainsKey(sessionID))
                {
                    Issuer issuer = sessionDB[sessionID].issuer;

                    ThirdIssuanceMessage tim = issuer.GenerateThirdMessage(si);

                    // Convert ThirdIssuanceMessage members to serializable ThirdIssuanceMessageComposite
                    ThirdIssuanceMessageComposite timc = ConvertUtils.convertThirdIssuanceMessage(tim);

                    // Add the sessionKey to ThirdIssuanceMessageComposite
                    timc.SessionKey = sessionID;

                    return(timc);
                }
            }
            catch (Exception e)
            {
                cOut.write(e.ToString());
                DebugUtils.DebugPrint(e.StackTrace.ToString());
            }

            return(null);
        }
    public List<UProveKeyAndTokenComposite> generateTokens(ThirdIssuanceMessageComposite thirdMessage, string sessionID)
    {
      /*
             *  token issuance - generate tokens.
            */

      cOut.write("Issuing U-Prove tokens - generate tokens, prover side");
      VerifySessionId(sessionID);

      try
      {
        // Convert serializable ThirdIssuanceMessageComposite members to ThirdIssuanceMessage.
        ThirdIssuanceMessage tm = ConvertUtils.convertThirdIssuanceMessageComposite(thirdMessage);

        // Retrieve correct Prover instance from proversDictionary for the given sessionKey.
        if (sessionDB.ContainsKey(sessionID))
        {
          Prover prover = sessionDB[sessionID].prover;
          // generate the tokens.
          UProveKeyAndToken[] upkt = prover.GenerateTokens(tm);

          // Serialize them.
          cOut.write("Generating tokens...");

          List<UProveKeyAndTokenComposite> tokens = new List<UProveKeyAndTokenComposite>();

          foreach (UProveKeyAndToken t in upkt)
          {
            byte[] bigInt = t.PrivateKey.ToByteArray();
            UProveKeyAndTokenComposite keyAndTokenComposite = new UProveKeyAndTokenComposite();
            keyAndTokenComposite.PrivateKey = bigInt;
            keyAndTokenComposite.Token = ConvertUtils.convertUProveToken(t.Token);
            tokens.Add(keyAndTokenComposite);
          }

          return tokens;
        }

      }
      catch (Exception e)
      {
        cOut.write(e.ToString());
        DebugUtils.DebugPrint(e.StackTrace.ToString());
      }

      return null;
    }
    public static ThirdIssuanceMessage convertThirdIssuanceMessageComposite(ThirdIssuanceMessageComposite tic)
    {
      BigInteger[] biArray = new BigInteger[tic.SigmaR.Length];
      for (int i = 0; i < biArray.Length; i++)
      {
        biArray[i] = new BigInteger(1, tic.SigmaR[i]); 
      }

      ThirdIssuanceMessage tm = new ThirdIssuanceMessage(biArray);

      return tm;
    }
    public static ThirdIssuanceMessageComposite convertThirdIssuanceMessage(ThirdIssuanceMessage tim)
    {
      ThirdIssuanceMessageComposite timc = new ThirdIssuanceMessageComposite();

      byte[][] byteArray1 = new byte[tim.sigmaR.Length][];
      for (int i = 0; i < byteArray1.Length; i++)
      {
        byte[] tmp = tim.sigmaR[i].ToByteArray();
        byteArray1[i] = tmp;
      }

      timc.SigmaR = byteArray1;

      return timc;
    }