Beispiel #1
0
        PreIssuanceData PreIssuance(ProverPreIssuanceParameters ppip, IssuerPreIssuanceParameters ipip)
        {
            byte[] message = encoding.GetBytes("Optional Message");
            UProveCrypto.Math.FieldZqElement beta0;

            ppip.Validate();
            PreIssuanceProof proof = PreIssuanceProof.CreateProof(ppip, out beta0, message);

            if (TEST_SERIALIZATION)
            {
                string _proof = ip.Serialize<PreIssuanceProof>(proof);
                proof = ip.Deserialize<PreIssuanceProof>(_proof);
            }
            GroupElement gamma = null;
            try
            {
                gamma = PreIssuanceProof.VerifyProof(ipip, proof, message);
            }
            catch (InvalidUProveArtifactException e)
            {
                Assert.Fail("Invalid proof: " + e.Message);
            }

            PreIssuanceData pid = new PreIssuanceData();
            pid.Gamma = gamma;
            pid.Beta0 = beta0;
            return pid;
        }