25#if defined(LWS_WITH_OPENHITLS)
26#include <crypt_eal_pkey.h>
45#define LWS_GENEC_CTX_CREATED_MARK 0x4c574745u
48#if defined(LWS_WITH_MBEDTLS)
49#if !defined(LWS_HAVE_MBEDTLS_V4)
51 mbedtls_ecdh_context *ctx_ecdh;
52 mbedtls_ecdsa_context *ctx_ecdsa;
60#elif defined(LWS_WITH_SCHANNEL)
66#elif defined(LWS_WITH_GNUTLS)
67 gnutls_privkey_t priv;
69#elif defined(LWS_WITH_BEARSSL)
71 br_ec_private_key priv;
74#elif defined(LWS_WITH_OPENHITLS)
75 CRYPT_EAL_PkeyCtx *
ctx[2];
87#if defined(LWS_WITH_MBEDTLS) && !defined(LWS_HAVE_MBEDTLS_V4)
222 const uint8_t *sig,
size_t sig_len);
301 size_t in_len,
const uint8_t *sig,
size_t sig_len);
315 size_t in_len,
uint8_t *sig,
size_t sig_len);
const struct lws_ec_curves * curve_table
LWS_VISIBLE LWS_EXTERN int lws_geneddsa_create(struct lws_genec_ctx *ctx, struct lws_context *context, const struct lws_ec_curves *curve_table)
LWS_VISIBLE LWS_EXTERN int lws_geneddsa_hash_sig_verify_jws(struct lws_genec_ctx *ctx, const uint8_t *in, size_t in_len, const uint8_t *sig, size_t sig_len)
LWS_VISIBLE LWS_EXTERN int lws_genecdh_create(struct lws_genec_ctx *ctx, struct lws_context *context, const struct lws_ec_curves *curve_table)
LWS_VISIBLE LWS_EXTERN int lws_genecdh_new_keypair(struct lws_genec_ctx *ctx, enum enum_lws_dh_side side, const char *curve_name, struct lws_gencrypto_keyelem *el)
LWS_VISIBLE LWS_EXTERN int lws_geneddsa_set_key(struct lws_genec_ctx *ctx, const struct lws_gencrypto_keyelem *el)
LWS_VISIBLE LWS_EXTERN int lws_genecdsa_new_keypair(struct lws_genec_ctx *ctx, const char *curve_name, struct lws_gencrypto_keyelem *el)
LWS_VISIBLE LWS_EXTERN int lws_genecdsa_set_key(struct lws_genec_ctx *ctx, const struct lws_gencrypto_keyelem *el)
LWS_VISIBLE LWS_EXTERN int lws_genec_dump(struct lws_gencrypto_keyelem *el)
LWS_VISIBLE LWS_EXTERN void lws_genec_destroy_elements(struct lws_gencrypto_keyelem *el)
LWS_VISIBLE LWS_EXTERN int lws_genecdh_compute_shared_secret(struct lws_genec_ctx *ctx, uint8_t *ss, int *ss_len)
LWS_VISIBLE LWS_EXTERN int lws_genecdsa_hash_sign_jws(struct lws_genec_ctx *ctx, const uint8_t *in, enum lws_genhash_types hash_type, int keybits, uint8_t *sig, size_t sig_len)
LWS_VISIBLE LWS_EXTERN int lws_genecdsa_hash_sig_verify_jws(struct lws_genec_ctx *ctx, const uint8_t *in, enum lws_genhash_types hash_type, int keybits, const uint8_t *sig, size_t sig_len)
LWS_VISIBLE LWS_EXTERN int lws_geneddsa_hash_sign_jws(struct lws_genec_ctx *ctx, const uint8_t *in, size_t in_len, uint8_t *sig, size_t sig_len)
enum enum_genec_alg genec_alg
struct lws_context * context
LWS_VISIBLE LWS_EXTERN int lws_genecdsa_create(struct lws_genec_ctx *ctx, struct lws_context *context, const struct lws_ec_curves *curve_table)
LWS_VISIBLE LWS_EXTERN void lws_genec_destroy(struct lws_genec_ctx *ctx)
LWS_VISIBLE LWS_EXTERN int lws_genecdh_set_key(struct lws_genec_ctx *ctx, const struct lws_gencrypto_keyelem *el, enum enum_lws_dh_side side)
LWS_VISIBLE LWS_EXTERN int lws_geneddsa_new_keypair(struct lws_genec_ctx *ctx, const char *curve_name, struct lws_gencrypto_keyelem *el)