Skip to content

Commit 0f06faf

Browse files
committed
Stub EC_KEY_METHOD
1 parent 52861cb commit 0f06faf

2 files changed

Lines changed: 102 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: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ 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+
} WOLFSSL_EC_KEY_METHOD;
144+
141145
WOLFSSL_API
142146
size_t wolfSSL_EC_get_builtin_curves(WOLFSSL_EC_BUILTIN_CURVE *r,size_t nitems);
143147

@@ -313,13 +317,29 @@ char* wolfSSL_EC_POINT_point2hex(const WOLFSSL_EC_GROUP* group,
313317
WOLFSSL_BN_CTX* ctx);
314318
#endif
315319

320+
WOLFSSL_API const WOLFSSL_EC_KEY_METHOD *wolfSSL_EC_KEY_OpenSSL(void);
321+
WOLFSSL_API WOLFSSL_EC_KEY_METHOD *wolfSSL_EC_KEY_METHOD_new(
322+
const WOLFSSL_EC_KEY_METHOD *meth);
323+
WOLFSSL_API void wolfSSL_EC_KEY_METHOD_free(WOLFSSL_EC_KEY_METHOD *meth);
324+
/* TODO when implementing change the types to the real callback signatures
325+
* and use real parameter names */
326+
WOLFSSL_API void wolfSSL_EC_KEY_METHOD_set_init(WOLFSSL_EC_KEY_METHOD *meth,
327+
void* a1, void* a2, void* a3, void* a4, void* a5, void* a6);
328+
WOLFSSL_API void wolfSSL_EC_KEY_METHOD_set_sign(WOLFSSL_EC_KEY_METHOD *meth,
329+
void* a1, void* a2, void* a3);
330+
WOLFSSL_API const WOLFSSL_EC_KEY_METHOD *wolfSSL_EC_KEY_get_method(
331+
const WOLFSSL_EC_KEY *key);
332+
WOLFSSL_API int wolfSSL_EC_KEY_set_method(WOLFSSL_EC_KEY *key,
333+
const WOLFSSL_EC_KEY_METHOD *meth);
334+
316335
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
317336

318337
typedef WOLFSSL_EC_KEY EC_KEY;
319338
typedef WOLFSSL_EC_GROUP EC_GROUP;
320339
typedef WOLFSSL_EC_GROUP EC_METHOD;
321340
typedef WOLFSSL_EC_POINT EC_POINT;
322341
typedef WOLFSSL_EC_BUILTIN_CURVE EC_builtin_curve;
342+
typedef WOLFSSL_EC_KEY_METHOD EC_KEY_METHOD;
323343

324344
#ifndef HAVE_ECC
325345
#define OPENSSL_NO_EC
@@ -405,6 +425,14 @@ typedef WOLFSSL_EC_BUILTIN_CURVE EC_builtin_curve;
405425
#define EC_curve_nid2nist wolfSSL_EC_curve_nid2nist
406426
#define EC_curve_nist2nid wolfSSL_EC_curve_nist2nid
407427

428+
#define EC_KEY_OpenSSL wolfSSL_EC_KEY_OpenSSL
429+
#define EC_KEY_METHOD_new wolfSSL_EC_KEY_METHOD_new
430+
#define EC_KEY_METHOD_free wolfSSL_EC_KEY_METHOD_free
431+
#define EC_KEY_METHOD_set_init wolfSSL_EC_KEY_METHOD_set_init
432+
#define EC_KEY_METHOD_set_sign wolfSSL_EC_KEY_METHOD_set_sign
433+
#define EC_KEY_get_method wolfSSL_EC_KEY_get_method
434+
#define EC_KEY_set_method wolfSSL_EC_KEY_set_method
435+
408436
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
409437

410438
#ifdef __cplusplus

0 commit comments

Comments
 (0)