Thread (8 messages) 8 messages, 3 authors, 2017-11-29

[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.c
diff --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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help