Skip to content

Commit 4eab526

Browse files
authored
Merge pull request #7511 from julek-wolfssl/ec-meth
Stub EC_KEY_METHOD
2 parents 56129bd + d629152 commit 4eab526

2 files changed

Lines changed: 104 additions & 1 deletion

File tree

src/pk.c

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5607,7 +5607,7 @@ int wolfSSL_DSA_do_verify_ex(const unsigned char* digest, int digest_len,
56075607
}
56085608
#endif /* !HAVE_SELFTEST */
56095609

5610-
WOLFSSL_API int wolfSSL_i2d_DSAparams(const WOLFSSL_DSA* dsa,
5610+
int wolfSSL_i2d_DSAparams(const WOLFSSL_DSA* dsa,
56115611
unsigned char** out)
56125612
{
56135613
int ret = 0;
@@ -14037,6 +14037,79 @@ int wolfSSL_ECDH_compute_key(void *out, size_t outLen,
1403714037

1403814038
/* End ECDH */
1403914039

14040+
#ifndef NO_WOLFSSL_STUB
14041+
const WOLFSSL_EC_KEY_METHOD *wolfSSL_EC_KEY_OpenSSL(void)
14042+
{
14043+
WOLFSSL_STUB("wolfSSL_EC_KEY_OpenSSL");
14044+
14045+
return NULL;
14046+
}
14047+
14048+
WOLFSSL_EC_KEY_METHOD *wolfSSL_EC_KEY_METHOD_new(
14049+
const WOLFSSL_EC_KEY_METHOD *meth)
14050+
{
14051+
WOLFSSL_STUB("wolfSSL_EC_KEY_METHOD_new");
14052+
14053+
(void)meth;
14054+
14055+
return NULL;
14056+
}
14057+
14058+
void wolfSSL_EC_KEY_METHOD_free(WOLFSSL_EC_KEY_METHOD *meth)
14059+
{
14060+
WOLFSSL_STUB("wolfSSL_EC_KEY_METHOD_free");
14061+
14062+
(void)meth;
14063+
}
14064+
14065+
void wolfSSL_EC_KEY_METHOD_set_init(WOLFSSL_EC_KEY_METHOD *meth,
14066+
void* a1, void* a2, void* a3, void* a4, void* a5, void* a6)
14067+
{
14068+
WOLFSSL_STUB("wolfSSL_EC_KEY_METHOD_set_init");
14069+
14070+
(void)meth;
14071+
(void)a1;
14072+
(void)a2;
14073+
(void)a3;
14074+
(void)a4;
14075+
(void)a5;
14076+
(void)a6;
14077+
}
14078+
14079+
void wolfSSL_EC_KEY_METHOD_set_sign(WOLFSSL_EC_KEY_METHOD *meth,
14080+
void* a1, void* a2, void* a3)
14081+
{
14082+
WOLFSSL_STUB("wolfSSL_EC_KEY_METHOD_set_sign");
14083+
14084+
(void)meth;
14085+
(void)a1;
14086+
(void)a2;
14087+
(void)a3;
14088+
}
14089+
14090+
const WOLFSSL_EC_KEY_METHOD *wolfSSL_EC_KEY_get_method(
14091+
const WOLFSSL_EC_KEY *key)
14092+
{
14093+
WOLFSSL_STUB("wolfSSL_EC_KEY_get_method");
14094+
14095+
(void)key;
14096+
14097+
return NULL;
14098+
}
14099+
14100+
int wolfSSL_EC_KEY_set_method(WOLFSSL_EC_KEY *key,
14101+
const WOLFSSL_EC_KEY_METHOD *meth)
14102+
{
14103+
WOLFSSL_STUB("wolfSSL_EC_KEY_set_method");
14104+
14105+
(void)key;
14106+
(void)meth;
14107+
14108+
return 0;
14109+
}
14110+
14111+
#endif /* !NO_WOLFSSL_STUB */
14112+
1404014113
#endif /* OPENSSL_EXTRA */
1404114114

1404214115
#endif /* HAVE_ECC */

wolfssl/openssl/ec.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,12 @@ struct WOLFSSL_EC_BUILTIN_CURVE {
138138

139139
typedef 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+
141147
WOLFSSL_API
142148
size_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

318339
typedef WOLFSSL_EC_KEY EC_KEY;
319340
typedef WOLFSSL_EC_GROUP EC_GROUP;
320341
typedef WOLFSSL_EC_GROUP EC_METHOD;
321342
typedef WOLFSSL_EC_POINT EC_POINT;
322343
typedef 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

Comments
 (0)