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!