@@ -138,6 +138,12 @@ struct WOLFSSL_EC_BUILTIN_CURVE {
138138
139139typedef int point_conversion_form_t ;
140140
141+ typedef struct WOLFSSL_EC_KEY_METHOD {
142+ /* Not implemented */
143+ /* Just here so that some C compilers don't complain. To be removed. */
144+ void * dummy_member ;
145+ } WOLFSSL_EC_KEY_METHOD ;
146+
141147WOLFSSL_API
142148size_t wolfSSL_EC_get_builtin_curves (WOLFSSL_EC_BUILTIN_CURVE * r ,size_t nitems );
143149
@@ -313,13 +319,29 @@ char* wolfSSL_EC_POINT_point2hex(const WOLFSSL_EC_GROUP* group,
313319 WOLFSSL_BN_CTX * ctx );
314320#endif
315321
322+ WOLFSSL_API const WOLFSSL_EC_KEY_METHOD * wolfSSL_EC_KEY_OpenSSL (void );
323+ WOLFSSL_API WOLFSSL_EC_KEY_METHOD * wolfSSL_EC_KEY_METHOD_new (
324+ const WOLFSSL_EC_KEY_METHOD * meth );
325+ WOLFSSL_API void wolfSSL_EC_KEY_METHOD_free (WOLFSSL_EC_KEY_METHOD * meth );
326+ /* TODO when implementing change the types to the real callback signatures
327+ * and use real parameter names */
328+ WOLFSSL_API void wolfSSL_EC_KEY_METHOD_set_init (WOLFSSL_EC_KEY_METHOD * meth ,
329+ void * a1 , void * a2 , void * a3 , void * a4 , void * a5 , void * a6 );
330+ WOLFSSL_API void wolfSSL_EC_KEY_METHOD_set_sign (WOLFSSL_EC_KEY_METHOD * meth ,
331+ void * a1 , void * a2 , void * a3 );
332+ WOLFSSL_API const WOLFSSL_EC_KEY_METHOD * wolfSSL_EC_KEY_get_method (
333+ const WOLFSSL_EC_KEY * key );
334+ WOLFSSL_API int wolfSSL_EC_KEY_set_method (WOLFSSL_EC_KEY * key ,
335+ const WOLFSSL_EC_KEY_METHOD * meth );
336+
316337#if defined(OPENSSL_EXTRA ) || defined(OPENSSL_EXTRA_X509_SMALL )
317338
318339typedef WOLFSSL_EC_KEY EC_KEY ;
319340typedef WOLFSSL_EC_GROUP EC_GROUP ;
320341typedef WOLFSSL_EC_GROUP EC_METHOD ;
321342typedef WOLFSSL_EC_POINT EC_POINT ;
322343typedef WOLFSSL_EC_BUILTIN_CURVE EC_builtin_curve ;
344+ typedef WOLFSSL_EC_KEY_METHOD EC_KEY_METHOD ;
323345
324346#ifndef HAVE_ECC
325347#define OPENSSL_NO_EC
@@ -405,6 +427,14 @@ typedef WOLFSSL_EC_BUILTIN_CURVE EC_builtin_curve;
405427#define EC_curve_nid2nist wolfSSL_EC_curve_nid2nist
406428#define EC_curve_nist2nid wolfSSL_EC_curve_nist2nid
407429
430+ #define EC_KEY_OpenSSL wolfSSL_EC_KEY_OpenSSL
431+ #define EC_KEY_METHOD_new wolfSSL_EC_KEY_METHOD_new
432+ #define EC_KEY_METHOD_free wolfSSL_EC_KEY_METHOD_free
433+ #define EC_KEY_METHOD_set_init wolfSSL_EC_KEY_METHOD_set_init
434+ #define EC_KEY_METHOD_set_sign wolfSSL_EC_KEY_METHOD_set_sign
435+ #define EC_KEY_get_method wolfSSL_EC_KEY_get_method
436+ #define EC_KEY_set_method wolfSSL_EC_KEY_set_method
437+
408438#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
409439
410440#ifdef __cplusplus
0 commit comments