Am Mittwoch, 22. November 2017, 11:44:51 CET schrieb Dmitry Vyukov: Hi Dmitry, > > Thanks! I think we can incorporate this into syzkaller. > > One question: what's the relation between alg names and type ("aead", > "hash", "rng", "skcipher")? If you refer to AF_ALG, then the following applies: AF_ALG type of aead -> kernel crypto API: crypto_aead_*, aead_request_* AF_ALG type of skcipher -> kernel crypto API: crypto_skcipher_*, skcipher_request_* AF_ALG type of hash -> kernel crypto API: crypto_ahash_*, ahash_request_* AF_ALG type of rng -> kernel crypto API: crypto_rng_* > I remember I already looked at it before > and could not figure it out. Are all algorithms and templates > partitioned between types? Or they are orthogonal? If you refer to the cipher names, there are two types: templates and cipher implementations. See [1] for details. [2] gives you some ideas of the interrelationships between the templates and the ciphers. The relationship between the names and the AF_ALG names mentioned above is defined with the .cra_flags in the cipher specification of each cipher implementation. See [3] for details. Note, I started some fuzzing work in my libkcapi test application. See [4] for the implementation. [1] http://www.chronox.de/crypto-API/crypto/architecture.html#crypto-api-cipher-references-and-priority [2] http://www.chronox.de/crypto-API/crypto/architecture.html#internal-structure-of-kernel-crypto-api [3] http://www.chronox.de/crypto-API/crypto/architecture.html#cipher-allocation-type-and-masks [4] https://github.com/smuellerDD/libkcapi/blob/master/test/kcapi-main.c line 522 Ciao Stephan