In a test harness I’m writing I’m adding in a facility to check the validity of an EC public key according to the 4 tests of X9.62.
The curve and point I supply to EC_POINT_is_at_infinity works fine.
However, when I come to use EC_POINT_is_on_curve it fails. The error return indicates the error is “incompatible objects”. Looking through the openssl source indicates that the error is a result of failing one of the tests in the inline function ec_point_is_compat. In this function there are four simple tests – most of which pertains to looking at the values of curve_name in the EC_POINT and EC_GROUP structures. So I thought, quite simply, look at what these two structures hold pertaining to the member curve_name – and then I can figure out what I’m doing wrong.
The openssl interface has the function EC_GROUP_get_curve_name() which I used to show that curve name was 409 (for NIST P192) and 415 (for NIST P256). But to my surprise there was no function of EC_POINT_get_curve_name().
Has any one any suggestions why my code is failing the ec_point_is_compat tests and how to get hold of the values of meth and curve_name in my EC_GROUP and EC_POINT structures so I can determine why the checks are failing