cryptodev: add RSA private key feature flag
authorAyuj Verma <ayverma@marvell.com>
Thu, 28 Mar 2019 10:28:22 +0000 (10:28 +0000)
committerAkhil Goyal <akhil.goyal@nxp.com>
Tue, 2 Apr 2019 14:50:24 +0000 (16:50 +0200)
Add feature flag to reflect RSA private key
operation support using quintuple (crt) or
exponent type key. if PMD support both,
then it should set both.

App should query cryptodev feature flag to check
if Sign and Decryt with CRT keys or exponent is
supported, thus call operation with relevant
key type.

Signed-off-by: Ayuj Verma <ayverma@marvell.com>
Signed-off-by: Shally Verma <shallyv@marvell.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
doc/guides/cryptodevs/features/default.ini
doc/guides/cryptodevs/overview.rst
lib/librte_cryptodev/rte_cryptodev.c
lib/librte_cryptodev/rte_cryptodev.h

index 810da0d..5f3ed30 100644 (file)
@@ -23,6 +23,8 @@ OOP SGL In SGL Out     =
 OOP SGL In LB  Out     =
 OOP LB  In SGL Out     =
 OOP LB  In LB  Out     =
+RSA PRIV OP KEY EXP    =
+RSA PRIV OP KEY QT     =
 
 ;
 ; Supported crypto algorithms of a default crypto driver.
index 607e758..d7b7141 100644 (file)
@@ -37,6 +37,12 @@ Supported Feature Flags
      which means that Out-of-place operation is supported,
      with linear input and output buffers.
 
+   - "RSA PRIV OP KEY EXP" feature flag means PMD support RSA private key
+     operation (Sign and Decrypt) using exponent key type only.
+
+   - "RSA PRIV OP KEY QT" feature flag means PMD support RSA private key
+     operation (Sign and Decrypt) using quintuple (crt) type key only.
+
 
 Supported Cipher Algorithms
 ---------------------------
index 871d7dd..cdc586a 100644 (file)
@@ -486,6 +486,10 @@ rte_cryptodev_get_feature_name(uint64_t flag)
                return "CPU_ARM_CE";
        case RTE_CRYPTODEV_FF_SECURITY:
                return "SECURITY_PROTOCOL";
+       case RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_EXP:
+               return "RSA_PRIV_OP_KEY_EXP";
+       case RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT:
+               return "RSA_PRIV_OP_KEY_QT";
        default:
                return NULL;
        }
index a0bbcf9..298b352 100644 (file)
@@ -438,6 +438,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 */
 
 
 /**