On 2016-11-16 08:01 PM, Yang Shi wrote:
Due to the upstream change [1], ablkcipher APIs have bene deprecated,
so replace it to the new skcipher APIs.

Thanks Yang.

I've grabbed this change.

Bruce


[1] https://www.spinics.net/lists/linux-crypto/msg18133.html

Signed-off-by: Yang Shi <yang....@windriver.com>
---
 drivers/staging/crypto/cryptodev/cryptlib.c | 36 ++++++++++++++---------------
 drivers/staging/crypto/cryptodev/cryptlib.h |  4 ++--
 drivers/staging/crypto/cryptodev/ioctl.c    |  3 ++-
 3 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/crypto/cryptodev/cryptlib.c 
b/drivers/staging/crypto/cryptodev/cryptlib.c
index b68f460..a6b0564 100644
--- a/drivers/staging/crypto/cryptodev/cryptlib.c
+++ b/drivers/staging/crypto/cryptodev/cryptlib.c
@@ -132,19 +132,17 @@ int cryptodev_cipher_init(struct cipher_data *out, const 
char *alg_name,
                                uint8_t *keyp, size_t keylen, int stream, int 
aead)
 {
        int ret;
-       struct crypto_skcipher *tfm;

        if (aead == 0) {
-               struct ablkcipher_alg *alg;
+               struct skcipher_alg *alg;

-               tfm = crypto_alloc_skcipher(alg_name, 0, 0);
-               out->async.s->base = tfm->base;
+               out->async.s = crypto_alloc_skcipher(alg_name, 0, 0);
                if (unlikely(IS_ERR(out->async.s))) {
                        ddebug(1, "Failed to load cipher %s", alg_name);
                                return -EINVAL;
                }

-               alg = crypto_ablkcipher_alg(out->async.s);
+               alg = crypto_skcipher_alg(out->async.s);
                if (alg != NULL) {
                        /* Was correct key length supplied? */
                        if (alg->max_keysize > 0 &&
@@ -157,11 +155,11 @@ int cryptodev_cipher_init(struct cipher_data *out, const 
char *alg_name,
                        }
                }

-               out->blocksize = crypto_ablkcipher_blocksize(out->async.s);
-               out->ivsize = crypto_ablkcipher_ivsize(out->async.s);
-               out->alignmask = crypto_ablkcipher_alignmask(out->async.s);
+               out->blocksize = crypto_skcipher_blocksize(out->async.s);
+               out->ivsize = crypto_skcipher_ivsize(out->async.s);
+               out->alignmask = crypto_skcipher_alignmask(out->async.s);

-               ret = crypto_ablkcipher_setkey(out->async.s, keyp, keylen);
+               ret = crypto_skcipher_setkey(out->async.s, keyp, keylen);
        } else {
                out->async.as = crypto_alloc_aead(alg_name, 0, 0);
                if (unlikely(IS_ERR(out->async.as))) {
@@ -194,14 +192,14 @@ int cryptodev_cipher_init(struct cipher_data *out, const 
char *alg_name,
        init_completion(&out->async.result->completion);

        if (aead == 0) {
-               out->async.request = ablkcipher_request_alloc(out->async.s, 
GFP_KERNEL);
+               out->async.request = skcipher_request_alloc(out->async.s, 
GFP_KERNEL);
                if (unlikely(!out->async.request)) {
                        derr(1, "error allocating async crypto request");
                        ret = -ENOMEM;
                        goto error;
                }

-               ablkcipher_request_set_callback(out->async.request,
+               skcipher_request_set_callback(out->async.request,
                                        CRYPTO_TFM_REQ_MAY_BACKLOG,
                                        cryptodev_complete, out->async.result);
        } else {
@@ -222,9 +220,9 @@ int cryptodev_cipher_init(struct cipher_data *out, const 
char *alg_name,
 error:
        if (aead == 0) {
                if (out->async.request)
-                       ablkcipher_request_free(out->async.request);
+                       skcipher_request_free(out->async.request);
                if (out->async.s)
-                       crypto_free_ablkcipher(out->async.s);
+                       crypto_free_skcipher(out->async.s);
        } else {
                if (out->async.arequest)
                        aead_request_free(out->async.arequest);
@@ -241,9 +239,9 @@ void cryptodev_cipher_deinit(struct cipher_data *cdata)
        if (cdata->init) {
                if (cdata->aead == 0) {
                        if (cdata->async.request)
-                               ablkcipher_request_free(cdata->async.request);
+                               skcipher_request_free(cdata->async.request);
                        if (cdata->async.s)
-                               crypto_free_ablkcipher(cdata->async.s);
+                               crypto_free_skcipher(cdata->async.s);
                } else {
                        if (cdata->async.arequest)
                                aead_request_free(cdata->async.arequest);
@@ -292,10 +290,10 @@ ssize_t cryptodev_cipher_encrypt(struct cipher_data 
*cdata,
        reinit_completion(&cdata->async.result->completion);

        if (cdata->aead == 0) {
-               ablkcipher_request_set_crypt(cdata->async.request,
+               skcipher_request_set_crypt(cdata->async.request,
                        (struct scatterlist *)src, dst,
                        len, cdata->async.iv);
-               ret = crypto_ablkcipher_encrypt(cdata->async.request);
+               ret = crypto_skcipher_encrypt(cdata->async.request);
        } else {
                aead_request_set_crypt(cdata->async.arequest,
                        (struct scatterlist *)src, dst,
@@ -314,10 +312,10 @@ ssize_t cryptodev_cipher_decrypt(struct cipher_data 
*cdata,

        reinit_completion(&cdata->async.result->completion);
        if (cdata->aead == 0) {
-               ablkcipher_request_set_crypt(cdata->async.request,
+               skcipher_request_set_crypt(cdata->async.request,
                        (struct scatterlist *)src, dst,
                        len, cdata->async.iv);
-               ret = crypto_ablkcipher_decrypt(cdata->async.request);
+               ret = crypto_skcipher_decrypt(cdata->async.request);
        } else {
                aead_request_set_crypt(cdata->async.arequest,
                        (struct scatterlist *)src, dst,
diff --git a/drivers/staging/crypto/cryptodev/cryptlib.h 
b/drivers/staging/crypto/cryptodev/cryptlib.h
index 0c20092..1b3e1e8 100644
--- a/drivers/staging/crypto/cryptodev/cryptlib.h
+++ b/drivers/staging/crypto/cryptodev/cryptlib.h
@@ -10,8 +10,8 @@ struct cipher_data {
        int alignmask;
        struct {
                /* block ciphers */
-               struct crypto_ablkcipher *s;
-               struct ablkcipher_request *request;
+               struct crypto_skcipher *s;
+               struct skcipher_request *request;

                /* AEAD ciphers */
                struct crypto_aead *as;
diff --git a/drivers/staging/crypto/cryptodev/ioctl.c 
b/drivers/staging/crypto/cryptodev/ioctl.c
index b23f5fd..8177c68 100644
--- a/drivers/staging/crypto/cryptodev/ioctl.c
+++ b/drivers/staging/crypto/cryptodev/ioctl.c
@@ -47,6 +47,7 @@
 #include <linux/scatterlist.h>
 #include <linux/rtnetlink.h>
 #include <crypto/authenc.h>
+#include <crypto/skcipher.h>

 #include <linux/sysctl.h>

@@ -765,7 +766,7 @@ static int get_session_info(struct fcrypt *fcr, struct 
session_info_op *siop)

        if (ses_ptr->cdata.init) {
                if (ses_ptr->cdata.aead == 0)
-                       tfm = crypto_ablkcipher_tfm(ses_ptr->cdata.async.s);
+                       tfm = crypto_skcipher_tfm(ses_ptr->cdata.async.s);
                else
                        tfm = crypto_aead_tfm(ses_ptr->cdata.async.as);
                tfm_info_to_alg_info(&siop->cipher_info, tfm);


--
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to