OpenSC/libp11 — pull request #13 by dengert (2014-12-20 21:07:52+00:00)
Title: ECDSA support

Support for ECDSA is added for use with OpenSSL >= 1.0.2.
OpenSSL had an outstanding bug report, #2459, that requests
the structure ecdsa_method be exposed. An engine needs to create
a modified version of the structure, which has pointers into
functions within the engine. Code as suggested in #2459 was
added in OpenSSL master and in OpenSSL-1.0.2-beta.

Engines using RSA do not have this problem, because the
rsa_method_st is exposed in rsa.h This allows an engine such
as the combination of libp11 and engine_pkcs11 to compile in
a static version of the rsa_method_st.

These libp11 modifications are designed to allow building
libp11 using either the ESDA_METHOD_new or (for backward
compatibility with older OpenSSL versions) use the internal OpenSSL
crypto/ecdsa/ecs_locl.h

By default the ECDSA_METHOD_new will be used if present.

To build using the ecs_locl.h, one must have access to the
OpenSSL source and add to the libp11 build process,
-DBUILD_WITH_ECS_LOCL_H -I//crypto/edcsa

(Note: that using an internal header file may require libp11
to be rebuilt to match the specific version of OpenSSL being
used, and is not recommened.)