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

Reply via email to