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); }
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); }