[CRYPTO] Allow multiple implementations of the same algorithm
authorHerbert Xu <herbert@gondor.apana.org.au>
Sat, 5 Nov 2005 05:58:14 +0000 (16:58 +1100)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 9 Jan 2006 22:15:37 +0000 (14:15 -0800)
commit5cb1454b862ab3040b78364d58330262fea1ddba
tree7e62126fa1f1398bb6a6b7f9e136aece32b0e112
parent06ace7a9bafeb9047352707eb79e8eaa0dfdf5f2
[CRYPTO] Allow multiple implementations of the same algorithm

This is the first step on the road towards asynchronous support in
the Crypto API.  It adds support for having multiple crypto_alg objects
for the same algorithm registered in the system.

For example, each device driver would register a crypto_alg object
for each algorithm that it supports.  While at the same time the
user may load software implementations of those same algorithms.

Users of the Crypto API may then select a specific implementation
by name, or choose any implementation for a given algorithm with
the highest priority.

The priority field is a 32-bit signed integer.  In future it will be
possible to modify it from user-space.

This also provides a solution to the problem of selecting amongst
various AES implementations, that is, aes vs. aes-i586 vs. aes-padlock.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/api.c
crypto/internal.h
crypto/proc.c
include/linux/crypto.h