If that is the case, why EC_KEY is exposed in ec.h, and how do I make use of the functions that requires this object, e.g. EVP_PKEY_get1_EC_KEY()?
How do you solve the problem like the following without directly accessing to this object: I have one EVP_PKEY contains the ECDSA private key and another EVP_PKEY contains the public key, and I need to determine if the public key and the private key are the right pair. What is the API should I use to achieve that? Thanks, -binlu From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] On Behalf Of Bodo Moeller Sent: Tuesday, May 08, 2012 12:13 AM To: openssl-users@openssl.org Subject: Re: header file for EC_KEY I noticed that EC_KEY (ec_key_st) is not defined in ec.h but in ec_lcl.h which is not a public header file, not like RSA(rsa_st) in rsa.h and DSA in dsa.h. Is that correct? Yes, this is intentional - this intentionally prevents applications from accessing ec_key_st fields directly, forcing them to use the proper exported APIs so that they won't depend on internal implementation details. Previously existing structs such as those for RSA and DSA were never changed like that to restrict visibility (for one thing, this probably would break applications that *do* depend on internal implementation details, even though this is bad style). Bodo