[PATCH v5 2/2] crypto: stm32 - Support for STM32 CRYP crypto module
From: Fabien DESSENNE <hidden>
Date: 2017-11-07 14:41:55
Also in:
linux-crypto, linux-devicetree, lkml
On 22/10/17 09:26, Corentin Labbe wrote:
On Thu, Oct 19, 2017 at 05:10:30PM +0200, Fabien Dessenne wrote:quoted
This module registers block cipher algorithms that make use of the STMicroelectronics STM32 crypto "CRYP1" hardware. The following algorithms are supported: - aes: ecb, cbc, ctr - des: ecb, cbc - tdes: ecb, cbc Signed-off-by: Fabien Dessenne <redacted> --- drivers/crypto/stm32/Kconfig | 9 + drivers/crypto/stm32/Makefile | 3 +- drivers/crypto/stm32/stm32-cryp.c | 1172 +++++++++++++++++++++++++++++++++++++ 3 files changed, 1183 insertions(+), 1 deletion(-) create mode 100644 drivers/crypto/stm32/stm32-cryp.cdiff --git a/drivers/crypto/stm32/Kconfig b/drivers/crypto/stm32/Kconfig +static void stm32_cryp_irq_write_block(struct stm32_cryp *cryp) +{ + unsigned int i, j; + u32 *src; + u8 d8[4]; + + src = sg_virt(cryp->in_sg) + _walked_in; + + for (i = 0; i < cryp->hw_blocksize / sizeof(u32); i++) { + if (likely(cryp->total_in >= sizeof(u32))) { + /* Write a full u32 */ + stm32_cryp_write(cryp, CRYP_DIN, *src);Hello Try also to test your driver with userspace via AF_ALG (libkcapi is a good start). It should probably crash here. I have do the same on my first sunxi-ss driver and you should use kmap(). Regards
Hi Corentin, Thank you for suggesting to test from userspace through the AF_ALG socket with libkcapi. This increases my test coverage. I ran the miscellaneous tests (kcapi-enc-test(large).sh + test.sh) and could not observe any crash. Note that I had already fixed some 'memory crashes' while testing with testmgr / tcrypt while testing from the kernel. So it looks like the proposed implementation is fine. BR Fabien