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 | 06961a012c9d55ca2a9e5d007643a0970693d0fc (patch) | |
tree | ef81bc705a23077ac6d451bd696b9f56c1f95cb8 | |
parent | 5bbeda97fef1f61ac40025b879890538ab14c703 (diff) | |
download | linux-crypto-06961a012c9d55ca2a9e5d007643a0970693d0fc.tar.gz linux-crypto-06961a012c9d55ca2a9e5d007643a0970693d0fc.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>
-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 ed1464a5..4aa0b0cb 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) |