On Fri, 2009-01-09 at 15:01 +0800, Herbert Xu wrote: > Actually I was thinking of something as simple as just using > cryptd as is. That is, register a blkcipher algorithm for your > version of cbc-aes, but don't register under the name cbc(aes), > e.g., register it under the name of __cbc-aes-aesni for both alg > name and driver name. You can register it under cbc(aes) too > if you add the fallback in there. > > Then for the real thing, just allocate the blkcipher __cbc_*, > plus the ablkcipher cryptd(__cbc_*), and invoke the right one > depending on caller context. One more question: I use a "shell" cbc(aes) algorithm which chooses between cryptd(__cbc-aes-aesni) and __cbc-aes-aesni according to context. But the struct ablkcipher_request passed in can not be used for cryptd(*). This can be resolved by allocating another struct ablkcipher_request for cryptd(*) for each incoming struct ablkcipher_request. But is there any better solution? Best Regards, Huang Ying
Attachment:
signature.asc
Description: This is a digitally signed message part