Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (125 commits) [CRYPTO] twofish: Merge common glue code [CRYPTO] hifn_795x: Fixup container_of() usage [CRYPTO] cast6: inline bloat-- [CRYPTO] api: Set default CRYPTO_MINALIGN to unsigned long long [CRYPTO] tcrypt: Make xcbc available as a standalone test [CRYPTO] xcbc: Remove bogus hash/cipher test [CRYPTO] xcbc: Fix algorithm leak when block size check fails [CRYPTO] tcrypt: Zero axbuf in the right function [CRYPTO] padlock: Only reset the key once for each CBC and ECB operation [CRYPTO] api: Include sched.h for cond_resched in scatterwalk.h [CRYPTO] salsa20-asm: Remove unnecessary dependency on CRYPTO_SALSA20 [CRYPTO] tcrypt: Add select of AEAD [CRYPTO] salsa20: Add x86-64 assembly version [CRYPTO] salsa20_i586: Salsa20 stream cipher algorithm (i586 version) [CRYPTO] gcm: Introduce rfc4106 [CRYPTO] api: Show async type [CRYPTO] chainiv: Avoid lock spinning where possible [CRYPTO] seqiv: Add select AEAD in Kconfig [CRYPTO] scatterwalk: Handle zero nbytes in scatterwalk_map_and_copy [CRYPTO] null: Allow setkey on digest_null ...
This commit is contained in:
@@ -33,9 +33,16 @@ The idea is to make the user interface and algorithm registration API
|
||||
very simple, while hiding the core logic from both. Many good ideas
|
||||
from existing APIs such as Cryptoapi and Nettle have been adapted for this.
|
||||
|
||||
The API currently supports three types of transforms: Ciphers, Digests and
|
||||
Compressors. The compression algorithms especially seem to be performing
|
||||
very well so far.
|
||||
The API currently supports five main types of transforms: AEAD (Authenticated
|
||||
Encryption with Associated Data), Block Ciphers, Ciphers, Compressors and
|
||||
Hashes.
|
||||
|
||||
Please note that Block Ciphers is somewhat of a misnomer. It is in fact
|
||||
meant to support all ciphers including stream ciphers. The difference
|
||||
between Block Ciphers and Ciphers is that the latter operates on exactly
|
||||
one block while the former can operate on an arbitrary amount of data,
|
||||
subject to block size requirements (i.e., non-stream ciphers can only
|
||||
process multiples of blocks).
|
||||
|
||||
Support for hardware crypto devices via an asynchronous interface is
|
||||
under development.
|
||||
@@ -69,29 +76,12 @@ Here's an example of how to use the API:
|
||||
Many real examples are available in the regression test module (tcrypt.c).
|
||||
|
||||
|
||||
CONFIGURATION NOTES
|
||||
|
||||
As Triple DES is part of the DES module, for those using modular builds,
|
||||
add the following line to /etc/modprobe.conf:
|
||||
|
||||
alias des3_ede des
|
||||
|
||||
The Null algorithms reside in the crypto_null module, so these lines
|
||||
should also be added:
|
||||
|
||||
alias cipher_null crypto_null
|
||||
alias digest_null crypto_null
|
||||
alias compress_null crypto_null
|
||||
|
||||
The SHA384 algorithm shares code within the SHA512 module, so you'll
|
||||
also need:
|
||||
alias sha384 sha512
|
||||
|
||||
|
||||
DEVELOPER NOTES
|
||||
|
||||
Transforms may only be allocated in user context, and cryptographic
|
||||
methods may only be called from softirq and user contexts.
|
||||
methods may only be called from softirq and user contexts. For
|
||||
transforms with a setkey method it too should only be called from
|
||||
user context.
|
||||
|
||||
When using the API for ciphers, performance will be optimal if each
|
||||
scatterlist contains data which is a multiple of the cipher's block
|
||||
@@ -130,8 +120,9 @@ might already be working on.
|
||||
BUGS
|
||||
|
||||
Send bug reports to:
|
||||
Herbert Xu <herbert@gondor.apana.org.au>
|
||||
Cc: David S. Miller <davem@redhat.com>
|
||||
linux-crypto@vger.kernel.org
|
||||
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
|
||||
David S. Miller <davem@redhat.com>
|
||||
|
||||
|
||||
FURTHER INFORMATION
|
||||
|
Viittaa uudesa ongelmassa
Block a user