This is a packet processing module found on the espressobin. This
commit adds an opencrypto driver for the crypto and hash engines in this
module; it can be programmed to do fairly arbitrary packet processing
and so the hardware interface is quite general compared to most other
opencrypto drivers that I've looked at.
This driver implements a number of
AES modes: CBC, CTR, and XTS, as well as AES-GCM and -CCM. The block
AES modes can be combined with HMAC, and the driver can be used to
compute plain SHA hashes as well. The EIP-197 is similar but not
supported at the moment for lack of hardware to test on. It implements
some other algorithms not supported here, particularly, chacha20 and
poly1305. The EIP-97 implements DES, 3DES and RC4 as well, but I didn't
really see a reason to include support for those.
Documentation for the hardware interface is not publicly available, so much
of the driver cannot be usefully reviewed. I'd appreciate any feedback on the
opencrypto integration though.