> 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