Below is a Linux driver for CE-InfoSys FastCrypt PCI card equipped with a SuperCrypt CE99C003B chip that can offload DES and 3DES encryption from the CPU.
This is a very preliminary version, but still the speed improvement can be demonstrated. For the benchmarking I used IPsec connection in transport mode without HMAC checksums. Transport speed was measured using wget on trasferring a 100MB file of random data between Host A (VIA Nehemiah @1.2 GHz) and Host B (Intel Itanium 2 @1.4 GHz, 2P SMP).
Host A | Host B | A -> B | B -> A |
des.ko | des.ko | 2.74 MB/s | 2.75 MB/s |
fcrypt.ko | des.ko | 3.62 MB/s | 4.08 MB/s |
As can be seen in the bottom row, using this hardware crypto accelerator can give more then 30% speed increase on the IPsec connection.
This linux driver is a very early version with a very few speed optimizations and is still somehow incomplete and not SMP safe. However it is well integrated with the kernel CryptoAPI and somehow works :-)
It uses my cryptoapi extensions from PadLock
page. Is should be applied on top of the crypto-api-*.diff
patches found there.