Lines Matching refs:eckey
225 int EC_KEY_generate_key(EC_KEY *eckey)
232 if (!eckey || !eckey->group) {
242 if (eckey->priv_key == NULL) {
247 priv_key = eckey->priv_key;
249 if (!EC_GROUP_get_order(eckey->group, order, ctx))
257 if (eckey->pub_key == NULL) {
258 pub_key = EC_POINT_new(eckey->group);
262 pub_key = eckey->pub_key;
264 if (!EC_POINT_mul(eckey->group, pub_key, priv_key, NULL, NULL, ctx))
267 eckey->priv_key = priv_key;
268 eckey->pub_key = pub_key;
275 if (pub_key != NULL && eckey->pub_key == NULL)
277 if (priv_key != NULL && eckey->priv_key == NULL)
284 int EC_KEY_check_key(const EC_KEY *eckey)
291 if (!eckey || !eckey->group || !eckey->pub_key) {
296 if (EC_POINT_is_at_infinity(eckey->group, eckey->pub_key)) {
303 if ((point = EC_POINT_new(eckey->group)) == NULL)
307 if (EC_POINT_is_on_curve(eckey->group, eckey->pub_key, ctx) <= 0) {
312 order = &eckey->group->order;
317 if (!EC_POINT_mul(eckey->group, point, NULL, eckey->pub_key, order, ctx)) {
321 if (!EC_POINT_is_at_infinity(eckey->group, point)) {
329 if (eckey->priv_key) {
330 if (BN_cmp(eckey->priv_key, order) >= 0) {
334 if (!EC_POINT_mul(eckey->group, point, eckey->priv_key,
339 if (EC_POINT_cmp(eckey->group, point, eckey->pub_key, ctx) != 0) {