public static bool EcPubKeyCreate(Context ctx, PubKey pubkey, byte[] seckey) { GeJ r = new GeJ(); Ge ge = new Ge(); Scalar scalar = new Scalar(); int num = !Scalar.SetB32(scalar, seckey) & !Scalar.IsZero(scalar) ? 1 : 0; if (num != 0) { EcMultGen.secp256k1_ecmult_gen(ctx.EcMultGenCtx, out r, scalar); Group.SetGeJ(ge, r); Secp256K1T.SavePubKey(pubkey, ge); } Scalar.Clear(scalar); return(num != 0); }
public static bool EcPubKeyCreate(Context ctx, PubKey pubkey, byte[] seckey) { GeJ pj = new GeJ(); Ge p = new Ge(); var sec = new Scalar(); var overflow = Scalar.SetB32(sec, seckey); var ret = !overflow & !Scalar.IsZero(sec); if (ret) { EcMultGen.secp256k1_ecmult_gen(ctx.EcMultGenCtx, out pj, sec); Group.SetGeJ(p, pj); SavePubKey(pubkey, p); } Scalar.Clear(sec); return(ret); }