crypto: kpp - Key-agreement Protocol Primitives API (KPP)
authorSalvatore Benedetto <salvatore.benedetto@intel.com>
Wed, 22 Jun 2016 16:49:13 +0000 (17:49 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 23 Jun 2016 10:29:56 +0000 (18:29 +0800)
commit4e5f2c400765e3a3ce512dc1ae890bac53401798
tree0344680229c01f9e9f148de8935b40e58d9b6d3b
parent331bf739c4f9992a73547d20bd8f2378b97d386a
crypto: kpp - Key-agreement Protocol Primitives API (KPP)

Add key-agreement protocol primitives (kpp) API which allows to
implement primitives required by protocols such as DH and ECDH.
The API is composed mainly by the following functions
 * set_secret() - It allows the user to set his secret, also
   referred to as his private key, along with the parameters
   known to both parties involved in the key-agreement session.
 * generate_public_key() - It generates the public key to be sent to
   the other counterpart involved in the key-agreement session. The
   function has to be called after set_params() and set_secret()
 * generate_secret() - It generates the shared secret for the session

Other functions such as init() and exit() are provided for allowing
cryptographic hardware to be inizialized properly before use

Signed-off-by: Salvatore Benedetto <salvatore.benedetto@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/Kconfig
crypto/Makefile
crypto/crypto_user.c
crypto/kpp.c [new file with mode: 0644]
include/crypto/internal/kpp.h [new file with mode: 0644]
include/crypto/kpp.h [new file with mode: 0644]
include/linux/crypto.h
include/uapi/linux/cryptouser.h