diff options
author | Tudor-Dan Ambarus <tudor.ambarus@microchip.com> | 2017-05-25 10:18:10 +0300 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2017-06-10 12:04:28 +0800 |
commit | d0efb48b8615292e05373caa27854e36e732668b (patch) | |
tree | df5bae0162177c605d02b9530308e481dc7e0add /crypto | |
parent | 7f69105077bfb36a8ff9c2ee20af50d921445fc0 (diff) | |
download | linux-stable-d0efb48b8615292e05373caa27854e36e732668b.tar.gz linux-stable-d0efb48b8615292e05373caa27854e36e732668b.tar.bz2 linux-stable-d0efb48b8615292e05373caa27854e36e732668b.zip |
crypto: ecdh - comply with crypto_kpp_maxsize()
crypto_kpp_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.
nbytes has no sense now, remove it and directly return the maxsize.
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/ecdh.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crypto/ecdh.c b/crypto/ecdh.c index ed1464a5ce1b..4aa0b0cb4627 100644 --- a/crypto/ecdh.c +++ b/crypto/ecdh.c @@ -104,13 +104,12 @@ static int ecdh_compute_value(struct kpp_request *req) return ret; } -static int ecdh_max_size(struct crypto_kpp *tfm) +static unsigned int ecdh_max_size(struct crypto_kpp *tfm) { struct ecdh_ctx *ctx = ecdh_get_ctx(tfm); - int nbytes = ctx->ndigits << ECC_DIGITS_TO_BYTES_SHIFT; - /* Public key is made of two coordinates */ - return 2 * nbytes; + /* Public key is made of two coordinates, add one to the left shift */ + return ctx->ndigits << (ECC_DIGITS_TO_BYTES_SHIFT + 1); } static void no_exit_tfm(struct crypto_kpp *tfm) |