How to use the cryptographic API (e.g. md5 checksum)?
Arvid Brodin
arvid.brodin at enea.com
Fri May 27 18:03:10 EDT 2011
Peter Teoh wrote:
> On Tue, May 24, 2011 at 6:43 AM, Arvid Brodin <arvid.brodin at enea.com> wrote:
>> Hi,
>>
>> I want to perform an md5 checksum on a process' text segment (I create a file
>> /proc/<pid>/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
>
> http://www.redhat.com/archives/dm-devel/2005-August/msg00058.html
Thanks, that explains the CRYPTO_TFM_REQ_MAY_SLEEP flag!
>> 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.
>
> http://www.linuxjournal.com/article/6451?page=0,0
This link is one I've found before, and it really does not explain anything
about the usage of crypto_hash_{digest,init,update,final}() as far as I can
see. So I'm still looking for help on this!
Thanks,
Arvid Brodin
Enea Services Stockholm AB
More information about the Kernelnewbies
mailing list