crypto: algif_skcipher - User-space interface for skcipher operations
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 19 Oct 2010 13:31:55 +0000 (21:31 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 26 Nov 2010 12:53:59 +0000 (20:53 +0800)
commit8ff590903d5fc7f5a0a988c38267a3d08e6393a2
tree2e73472f71848945136661c82f50176d6a3db388
parentfe869cdb89c95d060c77eea20204d6c91f233b53
crypto: algif_skcipher - User-space interface for skcipher operations

This patch adds the af_alg plugin for symmetric key ciphers,
corresponding to the ablkcipher kernel operation type.

Keys can optionally be set through the setsockopt interface.

Once a sendmsg call occurs without MSG_MORE no further writes
may be made to the socket until all previous data has been read.

IVs and and whether encryption/decryption is performed can be
set through the setsockopt interface or as a control message
to sendmsg.

The interface is completely synchronous, all operations are
carried out in recvmsg(2) and will complete prior to the system
call returning.

The splice(2) interface support reading the user-space data directly
without copying (except that the Crypto API itself may copy the data
if alignment is off).

The recvmsg(2) interface supports directly writing to user-space
without additional copying, i.e., the kernel crypto interface will
receive the user-space address as its output SG list.

Thakns to Miloslav Trmac for reviewing this and contributing
fixes and improvements.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: David S. Miller <davem@davemloft.net>
crypto/Kconfig
crypto/Makefile
crypto/algif_skcipher.c [new file with mode: 0644]