基于OPENSSL/EVP, EC 库的SM2实践一
公私钥对的生成
/*EC_KEY的结构*/
struct ec_key_st {
// ...
EC_GROUP *group;
EC_POINT *pub_key;
BIGNUM *priv_key;
// ...
};
/*密钥对生成*/
EC_KEY* key = EC_KEY_new();
EC_GROUP* group = EC_GROUP_new_by_curve_name(NID_X9_62_prime192v1);
assert(group);
int rst = EC_KEY_set_group(key, group);
assert(rst == 1);
rst == EC_KEY_generate_key(key);
assert(rst);
const EC_POINT* pub_key = EC_KEY_get0_public_key(key);
const BIGNUM *pri_key = EC_KEY_get0_private_key(key);