DPDK patches and discussions
 help / color / mirror / Atom feed
From: Umesh Kartha <Umesh.Kartha@caviumnetworks.com>
To: dev@dpdk.org
Cc: Jerin Jacob <Jerin.JacobKollanukkaran@cavium.com>,
	Balasubramanian Manoharan <Balasubramanian.Manoharan@cavium.com>,
	Ram Kumar <Ram.Kumar@cavium.com>,
	Murthy Nidadavolu <Nidadavolu.Murthy@cavium.com>,
	declan.doherty@intel.com, pablo.de.lara.guarch@intel.com,
	Fiona Trahe <fiona.trahe@intel.com>
Subject: [dpdk-dev] [RFC PATCH v2 0/3] specifications for asymmetric crypto algorithms
Date: Thu, 11 May 2017 18:05:29 +0530	[thread overview]
Message-ID: <1494506132-23107-1-git-send-email-Umesh.Kartha@caviumnetworks.com> (raw)
In-Reply-To: <1490177802-13398-1-git-send-email-Umesh.Kartha@caviumnetworks.com>

This RFC contains specifications for asymmetric crypto algorithms.
Asymmetric crypto algorithms are essential part of protocols such as
SSL/TLS. As the current DPDK crypto library lacks support for asymmetric
crypto algorithms, this RFC is an attempt to address it.

Cavium offers  PCI hardware accelerators that supports symmetric and
asymmetric crypto algorithms, of which a few are  addressed in this RFC.
Once specifications are agreed upon, I can submit a patch for the same.
We will develop a poll mode driver which can offload to OpenSSL crypto
library and to Cavium crypto accelerator.

The asymmetric crypto algorithms supported in this version are:

1 RSA
  - RSA Sign
  - RSA Verify
  - RSA Public Encrypt
  - RSA Private Decrypt

  Padding schemes supported for RSA operations are
    * RSA PKCS#1 BT1
    * RSA PKCS#1 BT2
    * RSA PKCS#1 OAEP
    * RSA PKCS#1 PSS

2 DH
  - DH generate key
  - DH compute key

3 ECDH
  - ECDH generate key
  - ECDH check key
  - ECDH compute key

4 DSA
  - DSA Sign
  - DSA Verify

5  ECDSA
  - ECDSA Sign
  - ECDSA Verify

6  MODEXP

7  FUNDAMENTAL ECC
  - Point Addition
  - Point Multiplication
  - Point Doubling

8 MODULAR INVERSE


 Asymmetric crypto transform operations support both session oriented
mode  and session less mode. If the operation is sessionless, an
asymmetric crypto transform structure, containing immutable parameters,
is passed along with per-operation mutable parameters in the structure.
Specific structures were written to contain immutable parameters
depending on algorithm used for crypto transform operation. The
parameters and type of transform is distinguished by the algorithm for
which the transform structure is filled. For a particular asymmetric
algorithm, not all parameters will be used and hence not required to be
filled.

Changes from RFC v1:

Added additional algorithms : DH/ECDH/MODINVERSE/DSA
Added additional curves for ECC operations: All cuves supported by libcrypto.
As per the comments received for RFC v1:
 - removed mbufs from asymmetric crypto operation structure.
 - added separate queue pair in device structure to handle asymmetric crypto
   operations.
 - added APIs to start/stop/initialize queue pairs to handle asymmetric crypto
   operations.
 - added asymmetric session structure and related APIs to handle session
   operations (initialize/allocate/free) etc.

RFC v1: http://dpdk.org/ml/archives/dev/2017-March/060869.html

Umesh Kartha (3):
  cryptodev: added asymmetric algorithms
  cryptodev: asymmetric algorithm capability definitions
  cryptodev: added asym queue pair, session apis

 lib/librte_cryptodev/rte_crypto.h        |  135 +++-
 lib/librte_cryptodev/rte_crypto_asym.h   | 1124 ++++++++++++++++++++++++++++++
 lib/librte_cryptodev/rte_cryptodev.c     |  782 ++++++++++++++++++++-
 lib/librte_cryptodev/rte_cryptodev.h     |  414 +++++++++++
 lib/librte_cryptodev/rte_cryptodev_pmd.h |  113 +++
 5 files changed, 2564 insertions(+), 4 deletions(-)
 create mode 100644 lib/librte_cryptodev/rte_crypto_asym.h

-- 
1.8.3.1

  parent reply	other threads:[~2017-05-11 12:36 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22 10:16 [dpdk-dev] [RFC] " Umesh Kartha
2017-03-27 12:58 ` Declan Doherty
     [not found] ` <348A99DA5F5B7549AA880327E580B435891DBCED@IRSMSX101.ger.corp.intel.com>
2017-04-06 11:39   ` Trahe, Fiona
2017-04-27  7:26     ` Umesh Kartha
2017-05-11 12:35 ` Umesh Kartha [this message]
2017-05-11 12:35   ` [dpdk-dev] [RFC PATCH v2 1/3] cryptodev: added asymmetric algorithms Umesh Kartha
2017-05-25 16:00     ` Trahe, Fiona
2017-05-26  7:18       ` Umesh Kartha
2017-05-29 14:51         ` Trahe, Fiona
2017-06-02 11:01           ` Umesh Kartha
2017-05-11 12:35   ` [dpdk-dev] [RFC PATCH v2 2/3] cryptodev: asymmetric algorithm capability definitions Umesh Kartha
2017-05-11 12:35   ` [dpdk-dev] [RFC PATCH v2 3/3] cryptodev: added asym queue pair and session apis Umesh Kartha
2017-05-24 11:48     ` Trahe, Fiona
2017-05-12 12:15   ` [dpdk-dev] [RFC PATCH v2 0/3] specifications for asymmetric crypto algorithms Neil Horman
2017-05-12 14:35     ` Umesh Kartha

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=1494506132-23107-1-git-send-email-Umesh.Kartha@caviumnetworks.com \
    --to=umesh.kartha@caviumnetworks.com \
    --cc=Balasubramanian.Manoharan@cavium.com \
    --cc=Jerin.JacobKollanukkaran@cavium.com \
    --cc=Nidadavolu.Murthy@cavium.com \
    --cc=Ram.Kumar@cavium.com \
    --cc=declan.doherty@intel.com \
    --cc=dev@dpdk.org \
    --cc=fiona.trahe@intel.com \
    --cc=pablo.de.lara.guarch@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).