[Cryptech Tech] new Novena I2C interface

Paul Selkirk paul at psgd.org
Fri Sep 26 03:22:58 UTC 2014


I just committed a new version of the Novena I2C interface. I actually
finished it last week, but have been letting it ripen (not unlike
surströmming).

Instead of sending commands to write 4 bytes at a time, you simply
write() 64 bytes or 128 bytes of block data, and read() the digest. All
the init/next/ready/valid signalling is handled internally. Each hash
core is a separate virtual I2C device, including the variations on SHA-512.

Repeated writes to the same SHA core will be added to the same digest;
the act of reading the digest resets the internal state, so that the
next write will start a new digest.

I also added a generic file-hashing utility to both versions of the
Novena project, so we can make some speed comparisons. The "simple"
version is 6.5 times faster than the "classic" version, because it skips
the overhead of the command/response system, and starts hashing as soon
as all block data are present. The hash.c app is also about half the
size in the "simple" version.

In the long term, we still want to be using EIM (which I've been banging
my head against), but this gives us another tool in the toolbox.

				paul


More information about the Tech mailing list