All of lore.kernel.org
 help / color / mirror / Atom feed
From: Salvatore Benedetto <salvatore.benedetto@intel.com>
To: herbert@gondor.apana.org.au
Cc: salvatore.benedetto@intel.com, linux-crypto@vger.kernel.org
Subject: [PATCH v7 0/3] Key-agreement Protocol Primitives (KPP) API
Date: Tue, 31 May 2016 16:36:20 +0100	[thread overview]
Message-ID: <1464708983-61664-1-git-send-email-salvatore.benedetto@intel.com> (raw)

Hi Herb,

the following patchset introduces a new API for abstracting key-agreement
protocols such as DH and ECDH. It provides the primitives required for implementing
the protocol, thus the name KPP (Key-agreement Protocol Primitives).

Regards,
Salvatore

Changes from v6:
* Remove len parameter from crypto_kpp_set_params. Adjust rest of code
  accordingly
* Remove the while loop in ecdh_make_pub_key as the private key is fixed and
  iterating is pointless. EAGAIN is now to returned to make the user aware
  that he needs to regenerate/reset the private key

Changes from v5:
* Fix ecdh loading in fips mode.

Changes from v4:
* If fips_enabled is set allow only P256 (or higher) as Stephan suggested
* Pass ndigits as argument to ecdh_make_pub_key and ecdh_shared_secret
  so that VLA can be used like in the rest of the module

Changes from v3:
* Move curve ID definition to public header ecdh.h as users need to
  have access to those ids when selecting the curve

Changes from v2:
* Add support for ECDH (curve P192 and P256). I reused the ecc module
  already present in net/bluetooth and extended it in order to select
  different curves at runtime. Code for P192 was taken from tinycrypt.

Changes from v1:
* Change check in dh_check_params_length based on Stephan review


Salvatore Benedetto (3):
  crypto: Key-agreement Protocol Primitives API (KPP)
  crypto: kpp - Add DH software implementation
  crypto: kpp - Add ECDH software support

 crypto/Kconfig                  |   23 +
 crypto/Makefile                 |    6 +
 crypto/crypto_user.c            |   20 +
 crypto/dh.c                     |  223 +++++++++
 crypto/ecc.c                    | 1011 +++++++++++++++++++++++++++++++++++++++
 crypto/ecc.h                    |   70 +++
 crypto/ecc_curve_defs.h         |   57 +++
 crypto/ecdh.c                   |  170 +++++++
 crypto/kpp.c                    |  123 +++++
 crypto/testmgr.c                |  275 +++++++++++
 crypto/testmgr.h                |  286 +++++++++++
 include/crypto/dh.h             |   23 +
 include/crypto/ecdh.h           |   24 +
 include/crypto/internal/kpp.h   |   64 +++
 include/crypto/kpp.h            |  331 +++++++++++++
 include/linux/crypto.h          |    1 +
 include/uapi/linux/cryptouser.h |    5 +
 17 files changed, 2712 insertions(+)
 create mode 100644 crypto/dh.c
 create mode 100644 crypto/ecc.c
 create mode 100644 crypto/ecc.h
 create mode 100644 crypto/ecc_curve_defs.h
 create mode 100644 crypto/ecdh.c
 create mode 100644 crypto/kpp.c
 create mode 100644 include/crypto/dh.h
 create mode 100644 include/crypto/ecdh.h
 create mode 100644 include/crypto/internal/kpp.h
 create mode 100644 include/crypto/kpp.h

-- 
2.7.4

             reply	other threads:[~2016-05-31 15:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-31 15:36 Salvatore Benedetto [this message]
2016-05-31 15:36 ` [PATCH v7 1/3] crypto: Key-agreement Protocol Primitives API (KPP) Salvatore Benedetto
2016-06-02  9:44   ` Herbert Xu
2016-05-31 15:36 ` [PATCH v7 2/3] crypto: kpp - Add DH software implementation Salvatore Benedetto
2016-05-31 15:36 ` [PATCH v7 3/3] crypto: kpp - Add ECDH software support Salvatore Benedetto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1464708983-61664-1-git-send-email-salvatore.benedetto@intel.com \
    --to=salvatore.benedetto@intel.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.