From: Tudor-Dan Ambarus Date: Thu, 25 May 2017 07:18:10 +0000 (+0300) Subject: crypto: ecdh - comply with crypto_kpp_maxsize() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=d0efb48b8615292e05373caa27854e36e732668b;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git 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 Signed-off-by: Herbert Xu --- 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)