Thus spake Dr S N Henson: > > The reason for the macros was that when the EVP layer was being revised > it was an absolute nightmare to change anything. IIRC at one point I had > to add an additional field to the EVP_CIPHER structure. I then spent the > next couple of hours modifying lots of almost identical EVP_CIPHER > definitions spread over zillions of little files. So I rewrote the files > to use macros so that any future changes could largely be handled by > just changing the macros and the odd exception manually.
That's roughly what I figured :) After implementing CBC, CFB, OFB, and CTR for AES (mostly plagiarized from IDEA), I'm beginning to wonder why we have 40 different implementations of the exact same algorithms in the first place. Couldn't we have a general "modes" macro set, to which you pass the ECB function of the cipher you're using? I've also been at a loss for how to use SSE/MMX registers to pass around keys and blocks, since doing so would grossly violate the current API. This would provide serious performance gains, however. S -- Stephen Sprunk "So long as they don't get violent, I want to CCIE #3723 let everyone say what they wish, for I myself have K5SSS always said exactly what pleased me." --Albert Einstein ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]