2012-05-14 04:46:53

by Rodel Miguel

[permalink] [raw]
Subject: CRYPTO_ALG_TYPE_ABLKCIPHER concepts guide

Hello Experts,

I am writing a driver for my AES encryption hardware. It is a
hardware which can do encryption of 4k bytes of data every time. I
have tried creating a driver based on geode-aes.c code which uses the
CRYPTO_ALG_TYPE_BLKCIPHER interface. While testing the driver, I
found out that the limit for this type of API is 512 bytes of data
sent on every encryption/decryption call. I have sent the dm-crypt
mailing list a query about this and they said that this limit cannot
be changed at the moment.

I am now looking at a different type of crypto API which is the
CRYPTO_ALG_TYPE_ABLKCIPHER but I could not find any
tutorials/documentation which would guide to the minimum code required
to create this type of driver. I looked at the mv_cesa.c but I am
still quite lost at the procedures in doing this type of driver. The
reason I want to explore this driver is that I am assuming that the
CRYPTO_ALG_TYPE_ABLKCIPHER type of interface would allow me to collect
4k bytes of data first before doing DMA to my hardware for
encryption/decryption. Is this a correct assumption?

Is there a good documentation that would lay out the requirements to
write an asynchronous type of block cipher?

Thank you very much for your help!

Kind Regards,
Rodel