crypto/openssl: support DES-CBC
[dpdk.git] / drivers / crypto / openssl / rte_openssl_pmd_ops.c
index 1db4d14..a197f79 100644 (file)
@@ -48,16 +48,15 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                .algo = RTE_CRYPTO_AUTH_MD5_HMAC,
                                .block_size = 64,
                                .key_size = {
-                                       .min = 64,
+                                       .min = 1,
                                        .max = 64,
-                                       .increment = 0
+                                       .increment = 1
                                },
                                .digest_size = {
                                        .min = 16,
                                        .max = 16,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -79,7 +78,6 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                        .max = 16,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -92,16 +90,15 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                .algo = RTE_CRYPTO_AUTH_SHA1_HMAC,
                                .block_size = 64,
                                .key_size = {
-                                       .min = 64,
+                                       .min = 1,
                                        .max = 64,
-                                       .increment = 0
+                                       .increment = 1
                                },
                                .digest_size = {
                                        .min = 20,
                                        .max = 20,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -123,7 +120,6 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                        .max = 20,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -136,16 +132,15 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                .algo = RTE_CRYPTO_AUTH_SHA224_HMAC,
                                .block_size = 64,
                                .key_size = {
-                                       .min = 64,
+                                       .min = 1,
                                        .max = 64,
-                                       .increment = 0
+                                       .increment = 1
                                },
                                .digest_size = {
                                        .min = 28,
                                        .max = 28,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -167,7 +162,6 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                        .max = 28,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -180,16 +174,15 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                .algo = RTE_CRYPTO_AUTH_SHA256_HMAC,
                                .block_size = 64,
                                .key_size = {
-                                       .min = 64,
+                                       .min = 1,
                                        .max = 64,
-                                       .increment = 0
+                                       .increment = 1
                                },
                                .digest_size = {
                                        .min = 32,
                                        .max = 32,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -211,7 +204,6 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                        .max = 32,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -224,16 +216,15 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                .algo = RTE_CRYPTO_AUTH_SHA384_HMAC,
                                .block_size = 128,
                                .key_size = {
-                                       .min = 128,
+                                       .min = 1,
                                        .max = 128,
-                                       .increment = 0
+                                       .increment = 1
                                },
                                .digest_size = {
                                        .min = 48,
                                        .max = 48,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -255,7 +246,6 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                        .max = 48,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -268,16 +258,15 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                .algo = RTE_CRYPTO_AUTH_SHA512_HMAC,
                                .block_size = 128,
                                .key_size = {
-                                       .min = 128,
+                                       .min = 1,
                                        .max = 128,
-                                       .increment = 0
+                                       .increment = 1
                                },
                                .digest_size = {
                                        .min = 64,
                                        .max = 64,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -299,7 +288,6 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                                        .max = 64,
                                        .increment = 0
                                },
-                               .aad_size = { 0 },
                                .iv_size = { 0 }
                        }, }
                }, }
@@ -439,6 +427,26 @@ static const struct rte_cryptodev_capabilities openssl_pmd_capabilities[] = {
                        }, }
                }, }
        },
+       {       /* DES CBC */
+               .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
+               {.sym = {
+                       .xform_type = RTE_CRYPTO_SYM_XFORM_CIPHER,
+                       {.cipher = {
+                               .algo = RTE_CRYPTO_CIPHER_DES_CBC,
+                               .block_size = 8,
+                               .key_size = {
+                                       .min = 8,
+                                       .max = 8,
+                                       .increment = 0
+                               },
+                               .iv_size = {
+                                       .min = 8,
+                                       .max = 8,
+                                       .increment = 0
+                               }
+                       }, }
+               }, }
+       },
        {       /* DES DOCSIS BPI */
                .op = RTE_CRYPTO_OP_TYPE_SYMMETRIC,
                {.sym = {
@@ -675,25 +683,26 @@ openssl_pmd_session_configure(struct rte_cryptodev *dev __rte_unused,
                struct rte_mempool *mempool)
 {
        void *sess_private_data;
+       int ret;
 
        if (unlikely(sess == NULL)) {
                OPENSSL_LOG_ERR("invalid session struct");
-               return -1;
+               return -EINVAL;
        }
 
        if (rte_mempool_get(mempool, &sess_private_data)) {
                CDEV_LOG_ERR(
                        "Couldn't get object from session mempool");
-               return -1;
+               return -ENOMEM;
        }
 
-       if (openssl_set_session_parameters(
-                       sess_private_data, xform) != 0) {
+       ret = openssl_set_session_parameters(sess_private_data, xform);
+       if (ret != 0) {
                OPENSSL_LOG_ERR("failed configure session parameters");
 
                /* Return session to mempool */
                rte_mempool_put(mempool, sess_private_data);
-               return -1;
+               return ret;
        }
 
        set_session_private_data(sess, dev->driver_id,