Add QAT_ASYM_RSA_CAP macro to report RSA asymmetric capabilities using rsa_capa, including modulus length and padding schemes.
Update Gen1 and Gen4 QAT asymmetric PMDs to advertise RTE_CRYPTO_RSA_PADDING_NONE via pad_types, matching the padding mode supported by the QAT RSA implementation. Signed-off-by: Sucharitha Sarananaga <[email protected]> --- drivers/crypto/qat/asym/qat_asym.h | 20 ++++++++++++++++++++ drivers/crypto/qat/dev/qat_asym_pmd_gen1.c | 5 +++-- drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c | 5 +++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/qat/asym/qat_asym.h b/drivers/crypto/qat/asym/qat_asym.h index 0ecbc47548..cf40d445df 100644 --- a/drivers/crypto/qat/asym/qat_asym.h +++ b/drivers/crypto/qat/asym/qat_asym.h @@ -56,6 +56,26 @@ typedef uint64_t large_int_ptr; } \ } +#define QAT_ASYM_RSA_CAP(o, l, r, i, p) \ + { \ + .op = RTE_CRYPTO_OP_TYPE_ASYMMETRIC, \ + {.asym = { \ + .xform_capa = { \ + .xform_type = RTE_CRYPTO_ASYM_XFORM_RSA, \ + .op_types = o, \ + .rsa_capa = { \ + .modlen = { \ + .min = l, \ + .max = r, \ + .increment = i \ + }, \ + .pad_types = p, \ + }, \ + } \ + }, \ + } \ + } + struct __rte_aligned(8) qat_asym_op_cookie { uint64_t error; uint32_t alg_bytesize; /* Bytesize of algorithm */ diff --git a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c index c96608dd37..5b93cf374b 100644 --- a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c +++ b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c @@ -32,12 +32,13 @@ static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen1[] = { 0, 1, 512, 1), QAT_ASYM_CAP(MODINV, 0, 1, 512, 1), - QAT_ASYM_CAP(RSA, + QAT_ASYM_RSA_CAP( ((1 << RTE_CRYPTO_ASYM_OP_SIGN) | (1 << RTE_CRYPTO_ASYM_OP_VERIFY) | (1 << RTE_CRYPTO_ASYM_OP_ENCRYPT) | (1 << RTE_CRYPTO_ASYM_OP_DECRYPT)), - 64, 512, 64), + 64, 512, 64, + (1 << RTE_CRYPTO_RSA_PADDING_NONE)), QAT_ASYM_CAP(ECDH, ((1 << RTE_CRYPTO_ASYM_KE_PUB_KEY_GENERATE) | (1 << RTE_CRYPTO_ASYM_KE_SHARED_SECRET_COMPUTE) | diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c index 41cad29142..106c512a06 100644 --- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c +++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c @@ -121,12 +121,13 @@ static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen4[] = { 0, 1, 512, 1), QAT_ASYM_CAP(MODINV, 0, 1, 512, 1), - QAT_ASYM_CAP(RSA, + QAT_ASYM_RSA_CAP( ((1 << RTE_CRYPTO_ASYM_OP_SIGN) | (1 << RTE_CRYPTO_ASYM_OP_VERIFY) | (1 << RTE_CRYPTO_ASYM_OP_ENCRYPT) | (1 << RTE_CRYPTO_ASYM_OP_DECRYPT)), - 64, 512, 64), + 64, 512, 64, + (1 << RTE_CRYPTO_RSA_PADDING_NONE)), { /* SM2 */ .op = RTE_CRYPTO_OP_TYPE_ASYMMETRIC, {.asym = { -- 2.54.0

