示例#1
0
        public BFUserPrivateKey(SerializedPrivateKey key)
        {
            this.key = new Point(new BigInt(key.KeyX), new BigInt(key.KeyY));
            Fp            field = new Fp(new BigInt(key.CurveField));
            EllipticCurve curve = new EllipticCurve(field, new BigInt(key.CurveA), new BigInt(key.CurveB));
            Pairing       e     = new TatePairing(curve, new BigInt(key.PairingGroupOrder), new BigInt(key.PairingCofactor));
            Point         p     = new Point(new BigInt(key.PX), new BigInt(key.PY));
            Point         pPub  = new Point(new BigInt(key.PPubX), new BigInt(key.PPubY));

            this.param = new BFMasterPublicKey(e, p, pPub);
        }
示例#2
0
        public SerializedPrivateKey Serialize()
        {
            SerializedPrivateKey sKey = new SerializedPrivateKey();

            sKey.KeyX              = key.X.ToString(16);
            sKey.KeyY              = key.Y.ToString(16);
            sKey.CurveField        = param.Pairing.Curve.Field.GetP().ToString(16);
            sKey.CurveA            = param.Pairing.Curve.A.ToString(16);
            sKey.CurveB            = param.Pairing.Curve.B.ToString(16);
            sKey.PairingCofactor   = param.Pairing.Cofactor.ToString(16);
            sKey.PairingGroupOrder = param.Pairing.GroupOrder.ToString(16);
            sKey.PX    = param.P.X.ToString(16);
            sKey.PY    = param.P.Y.ToString(16);
            sKey.PPubX = param.Ppub.X.ToString(16);
            sKey.PPubY = param.Ppub.Y.ToString(16);
            return(sKey);
        }