mirror of
https://github.com/GOSTSec/vanitygen
synced 2025-03-13 05:41:35 +00:00
use gost curve
This commit is contained in:
parent
0034885bb4
commit
1402c2c428
32
pattern.c
32
pattern.c
@ -46,6 +46,33 @@ vg_exec_context_new_key(void)
|
||||
return EC_KEY_new_by_curve_name(NID_secp256k1);
|
||||
}
|
||||
|
||||
static EC_KEY *
|
||||
vg_exec_context_new_gost_key(void)
|
||||
{
|
||||
EC_KEY * pkey = EC_KEY_new ();
|
||||
// GOST 34.10-2012, param sets A
|
||||
BIGNUM * a = 0, * b = 0, * p = 0, * q = 0, * x = 0, * y = 0;
|
||||
BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD94");
|
||||
BN_hex2bn(&b, "A6");
|
||||
BN_hex2bn(&p, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD97");
|
||||
BN_hex2bn(&q, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C611070995AD10045841B09B761B893");
|
||||
BN_hex2bn(&x, "1");
|
||||
BN_hex2bn(&y, "8D91E471E0989CDA27DF505A453F2B7635294F2DDF23E3B122ACC99C9E9F1E14");
|
||||
|
||||
BN_CTX * ctx = BN_CTX_new ();
|
||||
EC_GROUP *group = EC_GROUP_new_curve_GFp (p, a, b, ctx);
|
||||
EC_POINT * P = EC_POINT_new (group);
|
||||
EC_POINT_set_affine_coordinates_GFp (group, P, x, y, ctx);
|
||||
EC_GROUP_set_generator (group, P, q, 0);
|
||||
EC_GROUP_set_curve_name (group, NID_id_GostR3410_2001);
|
||||
EC_POINT_free(P);
|
||||
BN_CTX_free (ctx);
|
||||
EC_KEY_set_group(pkey, group);
|
||||
EC_GROUP_free (group);
|
||||
BN_free (a); BN_free (b); BN_free (p); BN_free (q); BN_free (x); BN_free (y);
|
||||
return pkey;
|
||||
}
|
||||
|
||||
/*
|
||||
* Thread synchronization helpers
|
||||
*/
|
||||
@ -160,7 +187,10 @@ vg_exec_context_init(vg_context_t *vcp, vg_exec_context_t *vxcp)
|
||||
|
||||
vxcp->vxc_bnctx = BN_CTX_new();
|
||||
assert(vxcp->vxc_bnctx);
|
||||
vxcp->vxc_key = vg_exec_context_new_key();
|
||||
if (vcp->vc_pubkeytype == 38) // gostcoin
|
||||
vxcp->vxc_key = vg_exec_context_new_gost_key();
|
||||
else
|
||||
vxcp->vxc_key = vg_exec_context_new_key();
|
||||
assert(vxcp->vxc_key);
|
||||
EC_KEY_precompute_mult(vxcp->vxc_key, vxcp->vxc_bnctx);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user