[Botan-announce] 1.9.10 - constant time AES using SSSE3, dynamically loaded Engines

Jack Lloyd lloyd at randombit.net
Thu Aug 12 14:04:53 EDT 2010

A new release of botan on the development tree is now available.

1.9.10 adds an implementation of AES using SSSE3 instructions that
runs in constant time (ie, without danger of timing/cache based
attacks), and is also substantially faster on at least some
processors. With Clang on a i7-860, AES-128/ECB runs at just under 300
MiB/second (GCC is about 10% slower). It works on 32 and 64 bit
processors, as long as SSSE3 is available - which unfortunately means
Intel (Core2 or later, or Atom) or VIA (Nano) only; I've only tested
on Penryn/Nehalem/Westmere processors currently but will try it on an
Atom when I have time. This code is entirely due to work by Mike
Hamburg who created the technique and published a paper and assembly
code describing it (http://crypto.stanford.edu/vpaes/).  My only
addition was rewriting it into intrinsics so it can be used on 32 bit
processors and on Windows.

Another notable change is adding support for loading Engine objects
dynamically at runtime. This is particularly useful when algorithms
implemented by the engine require special build support or runtime
libraries, or are hardware specific - the specific use case I have in
mind for this is CUDA. Currently only systems that use dlopen-style
dynamic linking are supported but it should be adaptable to Windows as

A build change: Python 2.4 cannot be used to run configure.py anymore.
I hope this won't affect too many people; as far as I can tell the
only actively maintained Linux distro that uses Python 2.4 is RHEL5,
which is due for a refresh soon. OS X provides either 2.3 (which never
worked) or 2.5 (which is fine). This allowed fixing a number of bugs
and limitations that were otherwise difficult to work around,
particularly in the version of optparse included in 2.4.

You can read a full rundown of the changes on the website:

Also, if you haven't already, please take a few minutes to fill out
the user survey:


More information about the botan-announce mailing list