X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=include%2Fcrypto%2Fecx.h;h=dfc70fb4e65e4a96711c3415977f59b0e8b3ca54;hb=cf333799979755dd46193b49c15db0afd262c6a0;hp=101a5748e8571c124610f698ef2b60651ef65fe1;hpb=e0be34beee9ef8ebab49c51581f796e013600b77;p=thirdparty%2Fopenssl.git diff --git a/include/crypto/ecx.h b/include/crypto/ecx.h index 101a5748e8..dfc70fb4e6 100644 --- a/include/crypto/ecx.h +++ b/include/crypto/ecx.h @@ -20,7 +20,9 @@ # include # include # include +# include # include "internal/refcount.h" +# include "crypto/types.h" # define X25519_KEYLEN 32 # define X448_KEYLEN 56 @@ -76,6 +78,7 @@ struct ecx_key_st { typedef struct ecx_key_st ECX_KEY; +size_t ossl_ecx_key_length(ECX_KEY_TYPE type); ECX_KEY *ossl_ecx_key_new(OSSL_LIB_CTX *libctx, ECX_KEY_TYPE type, int haspubkey, const char *propq); void ossl_ecx_key_set0_libctx(ECX_KEY *key, OSSL_LIB_CTX *libctx); @@ -124,9 +127,22 @@ ossl_x448_public_from_private(uint8_t out_public_value[56], /* Backend support */ +typedef enum { + KEY_OP_PUBLIC, + KEY_OP_PRIVATE, + KEY_OP_KEYGEN +} ecx_key_op_t; + +ECX_KEY *ossl_ecx_key_op(const X509_ALGOR *palg, + const unsigned char *p, int plen, + int pkey_id, ecx_key_op_t op, + OSSL_LIB_CTX *libctx, const char *propq); + int ossl_ecx_public_from_private(ECX_KEY *key); int ossl_ecx_key_fromdata(ECX_KEY *ecx, const OSSL_PARAM params[], int include_private); +ECX_KEY *ossl_ecx_key_from_pkcs8(const PKCS8_PRIV_KEY_INFO *p8inf, + OSSL_LIB_CTX *libctx, const char *propq); ECX_KEY *ossl_evp_pkey_get1_X25519(EVP_PKEY *pkey); ECX_KEY *ossl_evp_pkey_get1_X448(EVP_PKEY *pkey);