Over the years, various networking-related users have needed per-packet keys for hashing (and potentially for ciphers because hashing can be derived from ciphers, e.g., CMAC). Currently this is impossible to do with the Crypto API for two reasons. Each key is tied to a tfm object, which cannot be allocated on the network data path (as it requires sleeping). Secondly, various drivers rely on the fact that setkey is usually done right after allocating a tfm object and therefore sleep in their setkey functions. This series tries to resolve this by making it possible to clone an existing tfm object, thus making it possible to allocate new tfms on the data path. To do so you simply call crypto_clone_ahash/shash on an existing tfm object. Afterwards you may call setkey on it as usual. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt