Ejemplo n.º 1
0
        /**
         * Convert this signature to a proto
         *
         * @return a protobuf object representing this IdemixSignature
         */
        public Signature ToProto()
        {
            Signature s = new Signature
            {
                APrime             = aPrime.ToProto(),
                ABar               = aBar.ToProto(),
                BPrime             = bPrime.ToProto(),
                Nym                = nym.ToProto(),
                ProofC             = ByteString.CopyFrom(proofC.ToBytes()),
                ProofSSk           = ByteString.CopyFrom(proofSSk.ToBytes()),
                ProofSE            = ByteString.CopyFrom(proofSE.ToBytes()),
                ProofSR2           = ByteString.CopyFrom(proofSR2.ToBytes()),
                ProofSR3           = ByteString.CopyFrom(proofSR3.ToBytes()),
                ProofSRNym         = ByteString.CopyFrom(proofSRNym.ToBytes()),
                ProofSSPrime       = ByteString.CopyFrom(proofSSPrime.ToBytes()),
                Nonce              = ByteString.CopyFrom(nonce.ToBytes()),
                RevocationEpochPk  = revocationPk,
                RevocationPkSig    = ByteString.CopyFrom(revocationPKSig),
                Epoch              = epoch,
                NonRevocationProof = nonRevocationProof
            };

            foreach (BIG attr in proofSAttrs)
            {
                s.ProofSAttrs.Add(ByteString.CopyFrom(attr.ToBytes()));
            }
            return(s);
        }
        /**
         * @return A proto version of this issuer public key
         */
        public IssuerPublicKey ToProto()
        {
            IssuerPublicKey ipc = new IssuerPublicKey
            {
                ProofC = ByteString.CopyFrom(ProofC.ToBytes()),
                ProofS = ByteString.CopyFrom(ProofS.ToBytes()),
                W      = W.ToProto(),
                HSk    = Hsk.ToProto(),
                HRand  = HRand.ToProto(),
                Hash   = ByteString.CopyFrom(Hash),
                BarG1  = BarG1.ToProto(),
                BarG2  = BarG2.ToProto()
            };

            foreach (string attributeName in AttributeNames)
            {
                ipc.AttributeNames.Add(attributeName);
            }
            foreach (ECP ecp in HAttrs)
            {
                ipc.HAttrs.Add(ecp.ToProto());
            }
            return(ipc);
        }