> 3) An accellerator device directly supports TLS/SSL record > encryption/decryption and the handshake operation itself. > > We do many bus transactions to the accellerator (and > possibly system calls into the OS kernel) where we > could do one, doing every single basic cryptographic > operation individually when we could actually amortize > the cost over the entire record or handshake operation. > > This is the case for most modern accellerators used with > general-purpose CPUs.
Application of such technique does not limited to hardware acselerator. Yet another example of such "devices" is services, allowing to pass the whole record plus encryption and MAC keys, and process it in single call. It is used when for some (security) reasons all cryptography-manipulations performed in separate process/driver/VM, and client operates only with handlers to keys. I saw how it was implemented in extension to MS CryptoAPI. Even without such extensions CryptEncrypt function is able to encrypt and hash data at the same time. Extension I'm taking about does add abbility to pass there pointer to "header", "body" and place where to put "tail" - i.e. MAC value. Inabbility to process TLS record in single call results to necessity to pass the same data over IPC twice. Andrey. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org