ECX_KEY
ECX_KEY *ossl_ecx_key_dup(const ECX_KEY *key, int selection)
ECX_KEY *ret = OPENSSL_zalloc(sizeof(*ret));
ECX_KEY *ossl_ecx_key_op(const X509_ALGOR *palg,
ECX_KEY *key = NULL;
ECX_KEY *ossl_ecx_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf,
ECX_KEY *ecx = NULL;
int ossl_ecx_public_from_private(ECX_KEY *key)
int ossl_ecx_key_fromdata(ECX_KEY *ecx, const OSSL_PARAM params[],
unsigned char *ossl_ecx_key_allocate_privkey(ECX_KEY *key)
int ossl_ecx_compute_key(ECX_KEY *peer, ECX_KEY *priv, size_t keylen,
ECX_KEY *ossl_ecx_key_new(OSSL_LIB_CTX *libctx, ECX_KEY_TYPE type, int haspubkey,
ECX_KEY *ret = OPENSSL_zalloc(sizeof(*ret));
void ossl_ecx_key_free(ECX_KEY *key)
void ossl_ecx_key_set0_libctx(ECX_KEY *key, OSSL_LIB_CTX *libctx)
int ossl_ecx_key_up_ref(ECX_KEY *key)
const ECX_KEY *ecxkey = pkey->pkey.ecx;
ECX_KEY *key = ossl_ecx_key_new(ctx->libctx, ECX_KEY_TYPE_ED25519, 1,
ECX_KEY *key = ossl_ecx_key_new(ctx->libctx, ECX_KEY_TYPE_ED448, 1,
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
const ECX_KEY *ecxkey = pkey->pkey.ecx;
ECX_KEY *ecx = ossl_ecx_key_op(NULL, arg2, arg1, pkey->ameth->pkey_id,
ECX_KEY *ecx = NULL;
ECX_KEY *ecx = NULL;
const ECX_KEY *key = pkey->pkey.ecx;
const ECX_KEY *key = pkey->pkey.ecx;
const ECX_KEY *ecxkey = pkey->pkey.ecx;
const ECX_KEY *key = from->pkey.ecx;
ECX_KEY *ecx = ossl_ecx_key_new(pctx->libctx, KEYNID2TYPE(keytype), 0,
ECX_KEY *ecx = from->pkey.ecx, *dupkey = NULL;
ECX_KEY *ecx;
ECX_KEY *ecx = ossl_ecx_key_op(NULL, NULL, 0, ctx->pmeth->pkey_id,
const ECX_KEY *ecxkey, *peerkey;
const ECX_KEY *akey = a->pkey.ecx;
const ECX_KEY *bkey = b->pkey.ecx;
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
ECX_KEY *ecx = ossl_ecx_key_from_pkcs8(p8, libctx, propq);
const ECX_KEY *edkey = evp_pkey_get_legacy(EVP_MD_CTX_get_pkey_ctx(ctx)->pkey);
ECX_KEY *key = ossl_ecx_key_new(ctx->libctx, ECX_KEY_TYPE_X25519, 1,
ECX_KEY *key = ossl_ecx_key_new(ctx->libctx, ECX_KEY_TYPE_X448, 1,
static const ECX_KEY *evp_pkey_get0_ECX_KEY(const EVP_PKEY *pkey, int type)
static ECX_KEY *evp_pkey_get1_ECX_KEY(EVP_PKEY *pkey, int type)
ECX_KEY *ret = (ECX_KEY *)evp_pkey_get0_ECX_KEY(pkey, type);
ECX_KEY *ossl_evp_pkey_get1_##NAME(EVP_PKEY *pkey) \
(void)EVP_PKEY_assign(pktmp, EVP_PKEY_X448, (ECX_KEY *)a);
ECX_KEY *ossl_d2i_ED25519_PUBKEY(ECX_KEY **a,
ECX_KEY *key = NULL;
int ossl_i2d_ED25519_PUBKEY(const ECX_KEY *a, unsigned char **pp)
(void)EVP_PKEY_assign(pktmp, EVP_PKEY_ED25519, (ECX_KEY *)a);
ECX_KEY *ossl_d2i_ED448_PUBKEY(ECX_KEY **a,
ECX_KEY *key = NULL;
int ossl_i2d_ED448_PUBKEY(const ECX_KEY *a, unsigned char **pp)
(void)EVP_PKEY_assign(pktmp, EVP_PKEY_ED448, (ECX_KEY *)a);
ECX_KEY *ossl_d2i_X25519_PUBKEY(ECX_KEY **a,
ECX_KEY *key = NULL;
int ossl_i2d_X25519_PUBKEY(const ECX_KEY *a, unsigned char **pp)
(void)EVP_PKEY_assign(pktmp, EVP_PKEY_X25519, (ECX_KEY *)a);
ECX_KEY *ossl_d2i_X448_PUBKEY(ECX_KEY **a,
ECX_KEY *key = NULL;
int ossl_i2d_X448_PUBKEY(const ECX_KEY *a, unsigned char **pp)
ECX_KEY *ossl_ecx_key_op(const X509_ALGOR *palg,
int ossl_ecx_public_from_private(ECX_KEY *key);
int ossl_ecx_key_fromdata(ECX_KEY *ecx, const OSSL_PARAM params[],
ECX_KEY *ossl_ecx_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf,
ECX_KEY *ossl_evp_pkey_get1_X25519(EVP_PKEY *pkey);
ECX_KEY *ossl_evp_pkey_get1_X448(EVP_PKEY *pkey);
ECX_KEY *ossl_evp_pkey_get1_ED25519(EVP_PKEY *pkey);
ECX_KEY *ossl_evp_pkey_get1_ED448(EVP_PKEY *pkey);
ECX_KEY *ossl_ecx_key_new(OSSL_LIB_CTX *libctx, ECX_KEY_TYPE type,
void ossl_ecx_key_set0_libctx(ECX_KEY *key, OSSL_LIB_CTX *libctx);
unsigned char *ossl_ecx_key_allocate_privkey(ECX_KEY *key);
void ossl_ecx_key_free(ECX_KEY *key);
int ossl_ecx_key_up_ref(ECX_KEY *key);
ECX_KEY *ossl_ecx_key_dup(const ECX_KEY *key, int selection);
int ossl_ecx_compute_key(ECX_KEY *peer, ECX_KEY *priv, size_t keylen,
ECX_KEY *ecx; /* X25519, X448, Ed25519, Ed448 */
ECX_KEY *ossl_d2i_ED25519_PUBKEY(ECX_KEY **a,
int ossl_i2d_ED25519_PUBKEY(const ECX_KEY *a, unsigned char **pp);
ECX_KEY *ossl_d2i_ED448_PUBKEY(ECX_KEY **a,
int ossl_i2d_ED448_PUBKEY(const ECX_KEY *a, unsigned char **pp);
ECX_KEY *ossl_d2i_X25519_PUBKEY(ECX_KEY **a,
int ossl_i2d_X25519_PUBKEY(const ECX_KEY *a, unsigned char **pp);
ECX_KEY *ossl_d2i_X448_PUBKEY(ECX_KEY **a,
int ossl_i2d_X448_PUBKEY(const ECX_KEY *a, unsigned char **pp);
int ossl_DER_w_algorithmIdentifier_X25519(WPACKET *pkt, int cont, ECX_KEY *ec)
int ossl_DER_w_algorithmIdentifier_X448(WPACKET *pkt, int cont, ECX_KEY *ec)
int ossl_DER_w_algorithmIdentifier_ED25519(WPACKET *pkt, int cont, ECX_KEY *ec)
int ossl_DER_w_algorithmIdentifier_ED448(WPACKET *pkt, int cont, ECX_KEY *ec)
int ossl_DER_w_algorithmIdentifier_ED25519(WPACKET *pkt, int cont, ECX_KEY *ec);
int ossl_DER_w_algorithmIdentifier_ED448(WPACKET *pkt, int cont, ECX_KEY *ec);
int ossl_DER_w_algorithmIdentifier_X25519(WPACKET *pkt, int cont, ECX_KEY *ec);
int ossl_DER_w_algorithmIdentifier_X448(WPACKET *pkt, int cont, ECX_KEY *ec);
const ECX_KEY *ecxkey = vecxkey;
const ECX_KEY *ecxkey = vecxkey;
const ECX_KEY *ecx = key;
ECX_KEY *key = vkey;
ECX_KEY *key;
ECX_KEY *peerkey;
ECX_KEY *key = vkey;
int ossl_ecx_dhkem_derive_private(ECX_KEY *ecx, unsigned char *privout,
static int sender_authkey_set(PROV_ECX_CTX *ctx, ECX_KEY *ecx)
static ECX_KEY *ecxkey_pubfromdata(PROV_ECX_CTX *ctx,
ECX_KEY *ecx = NULL;
static unsigned char *ecx_pubkey(ECX_KEY *ecx)
static int ecx_match_params(const ECX_KEY *key1, const ECX_KEY *key2)
static int ecx_key_check(const ECX_KEY *ecx, int requires_privatekey)
ECX_KEY *ecx = vecx;
ECX_KEY *auth = vauth;
int ossl_ecx_dhkem_derive_private(ECX_KEY *ecx, unsigned char *privout,
static ECX_KEY *derivekey(PROV_ECX_CTX *ctx,
ECX_KEY *key;
static int generate_ecxdhkm(const ECX_KEY *sender, const ECX_KEY *peer,
return ossl_ecx_compute_key((ECX_KEY *)peer, (ECX_KEY *)sender,
const ECX_KEY *privkey1, const ECX_KEY *peerkey1,
const ECX_KEY *privkey2, const ECX_KEY *peerkey2,
ECX_KEY *recipient_key;
ECX_KEY *sender_authkey;
ECX_KEY *sender_ephemkey = NULL;
ECX_KEY *recipient_privkey = ctx->recipient_key;
ECX_KEY *sender_ephempubkey = NULL;
static const OSSL_HPKE_KEM_INFO *get_kem_info(ECX_KEY *ecx)
static int recipient_key_set(PROV_ECX_CTX *ctx, ECX_KEY *ecx)
ECX_KEY *key = ossl_ecx_key_new(gctx->libctx, ECX_KEY_TYPE_X25519, 1,
ECX_KEY *key = ossl_ecx_key_new(gctx->libctx, ECX_KEY_TYPE_X448, 1,
ECX_KEY *key = ossl_ecx_key_new(gctx->libctx, ECX_KEY_TYPE_ED25519, 1,
ECX_KEY *key = ossl_ecx_key_new(gctx->libctx, ECX_KEY_TYPE_ED448, 1,
const ECX_KEY *key = keydata;
const ECX_KEY *key1 = keydata1;
const ECX_KEY *key2 = keydata2;
ECX_KEY *key = keydata;
static int key_to_params(ECX_KEY *key, OSSL_PARAM_BLD *tmpl,
ECX_KEY *key = keydata;
ECX_KEY *ecx = key;
static int set_property_query(ECX_KEY *ecxkey, const char *propq)
ECX_KEY *ecxkey = key;
static int ecd_fips140_pairwise_test(const ECX_KEY *ecx, int type, int self_test)
ECX_KEY *key;
ECX_KEY *key = NULL;
ECX_KEY *key = NULL;
ECX_KEY *key = NULL;
key = *(ECX_KEY **)reference;
*(ECX_KEY **)reference = NULL;
static int ecx_key_pairwise_check(const ECX_KEY *ecx, int type)
static int ecd_key_pub_check(const ECX_KEY *ecx, int type)
static int ecd_key_pairwise_check(const ECX_KEY *ecx, int type)
static int ecd_key_pairwise_check(const ECX_KEY *ecx, int type)
const ECX_KEY *ecx = keydata;
static int ecd_fips140_pairwise_test(const ECX_KEY *ecx, int type, int self_test);
static int s390x_ed25519_digestsign(const ECX_KEY *edkey, unsigned char *sig,
static int s390x_ed448_digestsign(const ECX_KEY *edkey, unsigned char *sig,
static int s390x_ed25519_digestverify(const ECX_KEY *edkey,
static int s390x_ed448_digestverify(const ECX_KEY *edkey,
ECX_KEY *key;
ECX_KEY *edkey = (ECX_KEY *)vedkey;
static int s390x_ed25519_digestsign(const ECX_KEY *edkey, unsigned char *sig,
static int s390x_ed448_digestsign(const ECX_KEY *edkey, unsigned char *sig,
static int s390x_ed25519_digestverify(const ECX_KEY *edkey,
const ECX_KEY *edkey = peddsactx->key;
static int s390x_ed448_digestverify(const ECX_KEY *edkey,
const ECX_KEY *edkey = peddsactx->key;
const ECX_KEY *edkey = peddsactx->key;
const ECX_KEY *edkey = peddsactx->key;