crypto: pkcs1pad - comply with crypto_akcipher_maxsize()
authorTudor-Dan Ambarus <tudor.ambarus@microchip.com>
Thu, 25 May 2017 07:18:16 +0000 (10:18 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 10 Jun 2017 04:04:31 +0000 (12:04 +0800)
crypto_akcipher_maxsize() asks for the output buffer size without
caring for errors. It allways assume that will be called after
a valid setkey. Comply with it and return what he wants.

crypto_akcipher_maxsize() now returns an unsigned int.
Remove the unnecessary check.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/rsa-pkcs1pad.c

index 8baab4307f7b9a9064fa1234825fca29a34380c6..044bcfa69cba1bf9f3f344bec8ac76fdf21346ec 100644 (file)
@@ -120,9 +120,6 @@ static int pkcs1pad_set_pub_key(struct crypto_akcipher *tfm, const void *key,
 
        /* Find out new modulus size from rsa implementation */
        err = crypto_akcipher_maxsize(ctx->child);
-       if (err < 0)
-               return err;
-
        if (err > PAGE_SIZE)
                return -ENOTSUPP;
 
@@ -144,9 +141,6 @@ static int pkcs1pad_set_priv_key(struct crypto_akcipher *tfm, const void *key,
 
        /* Find out new modulus size from rsa implementation */
        err = crypto_akcipher_maxsize(ctx->child);
-       if (err < 0)
-               return err;
-
        if (err > PAGE_SIZE)
                return -ENOTSUPP;
 
@@ -154,7 +148,7 @@ static int pkcs1pad_set_priv_key(struct crypto_akcipher *tfm, const void *key,
        return 0;
 }
 
-static int pkcs1pad_get_max_size(struct crypto_akcipher *tfm)
+static unsigned int pkcs1pad_get_max_size(struct crypto_akcipher *tfm)
 {
        struct pkcs1pad_ctx *ctx = akcipher_tfm_ctx(tfm);
 
@@ -164,7 +158,7 @@ static int pkcs1pad_get_max_size(struct crypto_akcipher *tfm)
         * decrypt/verify.
         */
 
-       return ctx->key_size ?: -EINVAL;
+       return ctx->key_size;
 }
 
 static void pkcs1pad_sg_set_buf(struct scatterlist *sg, void *buf, size_t len,