Hello. I'm developing driver for our crypto platform-device on arm-realview arch. Could you please help with understanding some CryptoAPI concepts? Our device is hw implementation of 3DES/AES cipher. it allows: - encrypt/decrypt 64-bit words (slave mode, data exchange via registers, CBC/ECB controlled by driver) - encrypt/decrypt blocks of data (master mode, data exchange via DMA transfers, CBC/ECB controlled by device) I've implemented CRYPTO_ALG_TYPE_CIPHER driver for "slave" mode (just as i in geode-aes driver). CBC and ECB templates are working fine. But for "master" mode i have a questions: 1. Whats the difference between async crypto_alg's with .cra_type = CRYPTO_ALG_TYPE_BLKCIPHER | CRYPTO_ALG_ASYNC and .cra_type = CRYPTO_ALG_TYPE_ABLKCIPHER Seems, that both are async. What is typical use-cases for them? 2. What are the rules for naming my alorithms? I looked in code, and think, that name is constructed like template_name1 ( template_name2 ( ... ( algorithm_name ) ... ) For example (as i saw in tcrypt.c), if my crypto_alg has .cra_flags = CRYPTO_ALG_TYPE_CIPHER , .cra_name = "des3_ede" then it is possible to alloc CRYPTO_ALG_TYPE_BLKCIPHER request by names "cbc(des3_ede)" or "ecb(des3_ede)" and CRYPTO_ALG_TYPE_BLKCIPHER | CRYPTO_ALG_ASYNC request with "cryptd(cbc(des3_ede)))" ? Am i right ? Thanks. -- Sergey -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html