]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: ccree - use correct internal state sizes for export
authorGilad Ben-Yossef <gilad@benyossef.com>
Thu, 18 Apr 2019 13:39:02 +0000 (16:39 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 May 2019 05:38:45 +0000 (07:38 +0200)
commit f3df82b468f00cca241d96ee3697c9a5e7fb6bd0 upstream.

We were computing the size of the import buffer based on the digest size
but the 318 and 224 byte variants use 512 and 256 bytes internal state
sizes respectfully, thus causing the import buffer to overrun.

Fix it by using the right sizes.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Cc: stable@vger.kernel.org # v4.19+
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/crypto/ccree/cc_hash.c

index 657fad4031a80e51c620b668e7c1e64f8f1c2cb8..e44cbf17360618d2dd7789dbe1c081ec6263a077 100644 (file)
@@ -1639,7 +1639,7 @@ static struct cc_hash_template driver_hash[] = {
                        .setkey = cc_hash_setkey,
                        .halg = {
                                .digestsize = SHA224_DIGEST_SIZE,
-                               .statesize = CC_STATE_SIZE(SHA224_DIGEST_SIZE),
+                               .statesize = CC_STATE_SIZE(SHA256_DIGEST_SIZE),
                        },
                },
                .hash_mode = DRV_HASH_SHA224,
@@ -1666,7 +1666,7 @@ static struct cc_hash_template driver_hash[] = {
                        .setkey = cc_hash_setkey,
                        .halg = {
                                .digestsize = SHA384_DIGEST_SIZE,
-                               .statesize = CC_STATE_SIZE(SHA384_DIGEST_SIZE),
+                               .statesize = CC_STATE_SIZE(SHA512_DIGEST_SIZE),
                        },
                },
                .hash_mode = DRV_HASH_SHA384,