Next Previous Contents

3. The Crypto API

The Crypto API is an approach to unify the interface between kernel modules using crypto routines (such as the loop_gen driver or CIPE (eventually?)) and kernel modules providing crypto routines (such as cipher or hash modules).

It shows up as the ``Crypto Options'' menu in make menuconfig. At the time of this writing (Sep 2000), only the crypto loop device driver (CONFIG_BLK_DEV_LOOP_GEN) uses this facility and not all ciphers contained in the international kernel have been integrated into the Crypto Library. It is obviously desirable that all kernel modules using strong encryption use the Crypto API (where applicable).

To this end, this HOWTO will eventually include a discussion on the ``API of the Crypto API'', so developers trying to use this library are no longer forced to read the source to find the appropriate functions.

Developers who want to earn their merits will find here a great opportunity to play. Help to implement new ciphers and hashes and put them under the GPL. Help to convert existing ciphers already contained in the international kernel to use the crypto API. Help to enhance the performance of ciphers by implementing them in native assembler code for different platforms! You don't need to be a kernel hacker to support this project, as the modules involved are rather small and similar to each other.

Late International Kernel Patches (from 2.2.12.2 on) extend the concept of the Crypto API from plain cipher modules to digest (i.e. cryptographic hash) modules. Currently MD5 and SHA1 are supported, where MD5 was contributed by Alan Smithee and SHA1 was ported from "public domain code by Steve Reid" by Andrew McDonald. RIPE-MD is in the works from me.


Next Previous Contents