X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_cryptodev%2Frte_crypto_asym.h;h=0d34ce8dfdd9e0badd80adacd31e7d8c29d44e42;hb=34a90f86657c323d521af19766587951c77b9133;hp=5e4362097253ddf1d968916a2e5997f3fb3a7445;hpb=83a6cb03bc9a0f3b9647205da3d1a716d35faab2;p=dpdk.git diff --git a/lib/librte_cryptodev/rte_crypto_asym.h b/lib/librte_cryptodev/rte_crypto_asym.h index 5e43620972..0d34ce8dfd 100644 --- a/lib/librte_cryptodev/rte_crypto_asym.h +++ b/lib/librte_cryptodev/rte_crypto_asym.h @@ -25,6 +25,8 @@ extern "C" { #include #include +#include "rte_crypto_sym.h" + typedef struct rte_crypto_param_t { uint8_t *data; /**< pointer to buffer holding data */ @@ -110,17 +112,9 @@ enum rte_crypto_asym_op_type { enum rte_crypto_rsa_padding_type { RTE_CRYPTO_RSA_PADDING_NONE = 0, /**< RSA no padding scheme */ - RTE_CRYPTO_RSA_PKCS1_V1_5_BT0, - /**< RSA PKCS#1 V1.5 Block Type 0 padding scheme - * as descibed in rfc2313 - */ - RTE_CRYPTO_RSA_PKCS1_V1_5_BT1, - /**< RSA PKCS#1 V1.5 Block Type 01 padding scheme - * as descibed in rfc2313 - */ - RTE_CRYPTO_RSA_PKCS1_V1_5_BT2, - /**< RSA PKCS#1 V1.5 Block Type 02 padding scheme - * as descibed in rfc2313 + RTE_CRYPTO_RSA_PADDING_PKCS1_5, + /**< RSA PKCS#1 PKCS1-v1_5 padding scheme. For signatures block type 01, + * for encryption block type 02 are used. */ RTE_CRYPTO_RSA_PADDING_OAEP, /**< RSA PKCS#1 OAEP padding scheme */ @@ -197,8 +191,8 @@ struct rte_crypto_rsa_priv_key_qt { */ struct rte_crypto_rsa_xform { rte_crypto_param n; - /**< n - Prime modulus - * Prime modulus data of RSA operation in Octet-string network + /**< n - Modulus + * Modulus data of RSA operation in Octet-string network * byte order format. */ @@ -227,7 +221,7 @@ struct rte_crypto_rsa_xform { /** * Asymmetric Modular exponentiation transform data * - * Structure describing modular exponentation xform param + * Structure describing modular exponentiation xform param * */ struct rte_crypto_modex_xform { @@ -280,7 +274,7 @@ struct rte_crypto_dh_xform { rte_crypto_param p; /**< p : Prime modulus data - * DH prime modulous data in octet-string network byte order format. + * DH prime modulus data in octet-string network byte order format. * */ @@ -346,7 +340,7 @@ struct rte_crypto_mod_op_param { * data in octet-string network byte order format. * * This field shall be big enough to hold the result of Modular - * Exponentiation or Modular Multplicative Inverse + * Exponentiation or Modular Multiplicative Inverse * (bigger or equal to length of modulus) */ }; @@ -389,25 +383,54 @@ struct rte_cryptodev_asym_session; */ struct rte_crypto_rsa_op_param { enum rte_crypto_asym_op_type op_type; - /**< Type of RSA operation for transform */; + /**< Type of RSA operation for transform */ rte_crypto_param message; /**< - * Pointer to data + * Pointer to input data * - to be encrypted for RSA public encrypt. - * - to be decrypted for RSA private decrypt. * - to be signed for RSA sign generation. * - to be authenticated for RSA sign verification. + * + * Pointer to output data + * - for RSA private decrypt. + * In this case the underlying array should have been + * allocated with enough memory to hold plaintext output + * (i.e. must be at least RSA key size). The message.length + * field should be 0 and will be overwritten by the PMD + * with the decrypted length. + * + * All data is in Octet-string network byte order format. + */ + + rte_crypto_param cipher; + /**< + * Pointer to input data + * - to be decrypted for RSA private decrypt. + * + * Pointer to output data + * - for RSA public encrypt. + * In this case the underlying array should have been allocated + * with enough memory to hold ciphertext output (i.e. must be + * at least RSA key size). The cipher.length field should + * be 0 and will be overwritten by the PMD with the encrypted length. + * + * All data is in Octet-string network byte order format. */ rte_crypto_param sign; /**< - * Pointer to RSA signature data. If operation is RSA - * sign @ref RTE_CRYPTO_ASYM_OP_SIGN, buffer will be - * over-written with generated signature. + * Pointer to input data + * - to be verified for RSA public decrypt. * - * Length of the signature data will be equal to the - * RSA prime modulus length. + * Pointer to output data + * - for RSA private encrypt. + * In this case the underlying array should have been allocated + * with enough memory to hold signature output (i.e. must be + * at least RSA key size). The sign.length field should + * be 0 and will be overwritten by the PMD with the signature length. + * + * All data is in Octet-string network byte order format. */ enum rte_crypto_rsa_padding_type pad; @@ -499,8 +522,13 @@ struct rte_crypto_dsa_op_param { * */ struct rte_crypto_asym_op { - struct rte_cryptodev_asym_session *session; - /**< Handle for the initialised session context */ + RTE_STD_C11 + union { + struct rte_cryptodev_asym_session *session; + /**< Handle for the initialised session context */ + struct rte_crypto_asym_xform *xform; + /**< Session-less API crypto operation parameters */ + }; __extension__ union {