Ejemplo n.º 1
0
        public void TestProver()
        {
            byte[][] A = new byte[][] { };
            byte[] TI = null;
            byte[] PI = null;
            IssuerSetupParameters isp = new IssuerSetupParameters();
            isp.UidP = new byte[] { 0 };
            isp.E = new byte[] { 0 };
            IssuerKeyAndParameters ikap = isp.Generate();
            IssuerProtocolParameters ipp = new IssuerProtocolParameters(ikap);
            ipp.Attributes = A;
            ipp.NumberOfTokens = 1;
            ipp.TokenInformation = TI;
            Issuer issuer = ipp.CreateIssuer();

            FirstIssuanceMessage msg1 = null;
            SecondIssuanceMessage msg2 = null;
            ThirdIssuanceMessage msg3 = null;
    
            msg1 = issuer.GenerateFirstMessage();
            try { new Prover(null, 1, A, TI, PI, null); Assert.Fail(); } catch (ArgumentNullException) { }
            try { new Prover(ikap.IssuerParameters, -1, A, TI, PI, null); Assert.Fail(); } catch (ArgumentException) { }
            try { new Prover(ikap.IssuerParameters, 0, A, TI, PI, null); Assert.Fail(); } catch (ArgumentException) { }
            Prover prover = new Prover(ikap.IssuerParameters, 1, A, TI, PI, null);
            try { prover.GenerateTokens(msg3); Assert.Fail(); } catch (InvalidOperationException) { }
            msg2 = prover.GenerateSecondMessage(msg1);
            try { msg2 = prover.GenerateSecondMessage(msg1); Assert.Fail(); } catch (InvalidOperationException) { }
            msg3 = issuer.GenerateThirdMessage(msg2);
            prover.GenerateTokens(msg3);
            try { prover.GenerateTokens(msg3); Assert.Fail(); } catch (InvalidOperationException) { }
        }
 private GenerateTokensInfo HandleGenerateTokens(Prover prover, ThirdIssuanceMessage thirdIssuanceMessage)
 {
   GenerateTokensInfo gInfo = new GenerateTokensInfo();
   gInfo.Tokens = prover.GenerateTokens(thirdIssuanceMessage, true);
   return gInfo;
 }
Ejemplo n.º 3
0
        public void TestProverStateExport()
        {
            IssuerKeyAndParameters ikap;
            IssuerProtocolParameters ipp;
            ProverProtocolParameters ppp;
            StaticTestHelpers.GenerateTestIssuanceParameters("test issuer params", "test spec", 3, true, 6, out ikap, out ipp, out ppp);
            
            // generate test issuer parameters
            Issuer issuer = ipp.CreateIssuer();
            IssuerParameters ip = ikap.IssuerParameters;
            Prover prover = ppp.CreateProver();

            FirstIssuanceMessage msg1 = null;
            SecondIssuanceMessage msg2 = null;
            ThirdIssuanceMessage msg3 = null; 
            
            msg1 = issuer.GenerateFirstMessage();
            msg2 = prover.GenerateSecondMessage(msg1);

            PostSecondMessageState state = prover.ExportPostSecondMessageState();
            string serializedState = ip.Serialize(state);

            // complete the issuance with a new prover instance
            msg3 = issuer.GenerateThirdMessage(msg2);
            Prover prover2 = new Prover(ip, ip.Deserialize<PostSecondMessageState>(serializedState));
            prover2.GenerateTokens(msg3);
            // make sure the original prover is unusable
            try
            {
                prover.GenerateTokens(msg3);
                Assert.Fail();
            }
            catch (Exception)
            {
                // expected
            }
        
        }