X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_cryptodev%2Frte_cryptodev.h;h=cb894ef63d79bcb18670763f616381a70820d7e6;hb=894c373ce59e9f7b52b63d3b660bcc00121f161d;hp=d0eaf00260c1b5dd9c010519f8a2e04336e02cdc;hpb=0b60386ac353835485d2ea8add8c059cfeae9d58;p=dpdk.git diff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h index d0eaf00260..cb894ef63d 100644 --- a/lib/librte_cryptodev/rte_cryptodev.h +++ b/lib/librte_cryptodev/rte_cryptodev.h @@ -230,7 +230,8 @@ rte_cryptodev_sym_capability_get(uint8_t dev_id, * - Return description of the asymmetric crypto capability if exist. * - Return NULL if the capability not exist. */ -const struct rte_cryptodev_asymmetric_xform_capability * __rte_experimental +__rte_experimental +const struct rte_cryptodev_asymmetric_xform_capability * rte_cryptodev_asym_capability_get(uint8_t dev_id, const struct rte_cryptodev_asym_capability_idx *idx); @@ -299,7 +300,8 @@ rte_cryptodev_sym_capability_check_aead( * - Return 1 if the op type is supported * - Return 0 if unsupported */ -int __rte_experimental +__rte_experimental +int rte_cryptodev_asym_xform_capability_check_optype( const struct rte_cryptodev_asymmetric_xform_capability *capability, enum rte_crypto_asym_op_type op_type); @@ -314,7 +316,8 @@ rte_cryptodev_asym_xform_capability_check_optype( * - Return 0 if the parameters are in range of the capability. * - Return -1 if the parameters are out of range of the capability. */ -int __rte_experimental +__rte_experimental +int rte_cryptodev_asym_xform_capability_check_modlen( const struct rte_cryptodev_asymmetric_xform_capability *capability, uint16_t modlen); @@ -375,7 +378,8 @@ rte_cryptodev_get_aead_algo_enum(enum rte_crypto_aead_algorithm *algo_enum, * - Return -1 if string is not valid * - Return 0 if the string is valid */ -int __rte_experimental +__rte_experimental +int rte_cryptodev_asym_get_xform_enum(enum rte_crypto_asym_xform_type *xform_enum, const char *xform_string); @@ -438,6 +442,10 @@ rte_cryptodev_asym_get_xform_enum(enum rte_crypto_asym_xform_type *xform_enum, /**< Utilises ARM CPU Cryptographic Extensions */ #define RTE_CRYPTODEV_FF_SECURITY (1ULL << 16) /**< Support Security Protocol Processing */ +#define RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_EXP (1ULL << 17) +/**< Support RSA Private Key OP with exponent */ +#define RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT (1ULL << 18) +/**< Support RSA Private Key OP with CRT (quintuple) Keys */ /** @@ -953,8 +961,17 @@ rte_cryptodev_enqueue_burst(uint8_t dev_id, uint16_t qp_id, * has a fixed algo, key, op-type, digest_len etc. */ struct rte_cryptodev_sym_session { - __extension__ void *sess_private_data[0]; - /**< Private symmetric session material */ + uint64_t opaque_data; + /**< Can be used for external metadata */ + uint16_t nb_drivers; + /**< number of elements in sess_data array */ + uint16_t user_data_sz; + /**< session user data will be placed after sess_data */ + __extension__ struct { + void *data; + uint16_t refcnt; + } sess_data[0]; + /**< Driver specific session material, variable size */ }; /** Cryptodev asymmetric crypto session */ @@ -989,7 +1006,8 @@ struct rte_cryptodev_asym_session { * - On success return size of the session * - On failure returns 0 */ -struct rte_mempool * __rte_experimental +__rte_experimental +struct rte_mempool * rte_cryptodev_sym_session_pool_create(const char *name, uint32_t nb_elts, uint32_t elt_size, uint32_t cache_size, uint16_t priv_size, int socket_id); @@ -1015,7 +1033,8 @@ rte_cryptodev_sym_session_create(struct rte_mempool *mempool); * - On success return pointer to asym-session * - On failure returns NULL */ -struct rte_cryptodev_asym_session * __rte_experimental +__rte_experimental +struct rte_cryptodev_asym_session * rte_cryptodev_asym_session_create(struct rte_mempool *mempool); /** @@ -1045,7 +1064,8 @@ rte_cryptodev_sym_session_free(struct rte_cryptodev_sym_session *sess); * - -EINVAL if session is NULL. * - -EBUSY if not all device private data has been freed. */ -int __rte_experimental +__rte_experimental +int rte_cryptodev_asym_session_free(struct rte_cryptodev_asym_session *sess); /** @@ -1085,7 +1105,8 @@ rte_cryptodev_sym_session_init(uint8_t dev_id, * - -ENOTSUP if crypto device does not support the crypto transform. * - -ENOMEM if the private session could not be allocated. */ -int __rte_experimental +__rte_experimental +int rte_cryptodev_asym_session_init(uint8_t dev_id, struct rte_cryptodev_asym_session *sess, struct rte_crypto_asym_xform *xforms, @@ -1119,15 +1140,17 @@ rte_cryptodev_sym_session_clear(uint8_t dev_id, * - 0 if successful. * - -EINVAL if device is invalid or session is NULL. */ -int __rte_experimental +__rte_experimental +int rte_cryptodev_asym_session_clear(uint8_t dev_id, struct rte_cryptodev_asym_session *sess); /** - * Get the size of the header session, for all registered drivers. + * Get the size of the header session, for all registered drivers excluding + * the user data size. * * @return - * Size of the symmetric eader session. + * Size of the symmetric header session. */ unsigned int rte_cryptodev_sym_get_header_session_size(void); @@ -1143,7 +1166,8 @@ rte_cryptodev_sym_get_header_session_size(void); * the private data size defined within sess. * - If sess is NULL, return 0. */ -unsigned int __rte_experimental +__rte_experimental +unsigned int rte_cryptodev_sym_get_existing_header_session_size( struct rte_cryptodev_sym_session *sess); @@ -1153,7 +1177,8 @@ rte_cryptodev_sym_get_existing_header_session_size( * @return * Size of the asymmetric header session. */ -unsigned int __rte_experimental +__rte_experimental +unsigned int rte_cryptodev_asym_get_header_session_size(void); /** @@ -1180,7 +1205,8 @@ rte_cryptodev_sym_get_private_session_size(uint8_t dev_id); * - Size of the asymmetric private data, if successful * - 0 if device is invalid or does not have private session */ -unsigned int __rte_experimental +__rte_experimental +unsigned int rte_cryptodev_asym_get_private_session_size(uint8_t dev_id); /** @@ -1215,7 +1241,8 @@ const char *rte_cryptodev_driver_name_get(uint8_t driver_id); * - On success, zero. * - On failure, a negative value. */ -int __rte_experimental +__rte_experimental +int rte_cryptodev_sym_session_set_user_data( struct rte_cryptodev_sym_session *sess, void *data, @@ -1231,7 +1258,8 @@ rte_cryptodev_sym_session_set_user_data( * - On success return pointer to user data. * - On failure returns NULL. */ -void * __rte_experimental +__rte_experimental +void * rte_cryptodev_sym_session_get_user_data( struct rte_cryptodev_sym_session *sess);