From mboxrd@z Thu Jan 1 00:00:00 1970 From: arvid.brodin@enea.com (Arvid Brodin) Date: Tue, 24 May 2011 00:43:50 +0200 Subject: How to use the cryptographic API (e.g. md5 checksum)? Message-ID: <4DDAE326.9030605@enea.com> To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org Hi, I want to perform an md5 checksum on a process' text segment (I create a file /proc//text_checksum that, when read, should give the md5sum). The crypto api documentation (Documentation/crypto/api-intro.txt) seems to be quite lacking. The only example is: tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(tfm)) fail(); /* ... set up the scatterlists ... */ desc.tfm = tfm; desc.flags = 0; if (crypto_hash_digest(&desc, sg, 2, result)) fail(); crypto_free_hash(tfm); Looking at some existing code, I see usage of crypto_hash_init(), crypto_hash_final(), desc.flag set to CRYPTO_TFM_REQ_MAY_SLEEP, ... (e.g. in fs/ecryptfs/crypto.c). Does anybody know what they do? Do I need to, or should I, use them? The functions are are declared in include/linux/crypto.h as some kind of wrapper functions, but lack documentation. Also, Google has not been my friend here. Thanks, Arvid Brodin Enea Services Stockholm AB