[dpdk-dev] [RFC PATCH v2 0/3] specifications for asymmetric crypto algorithms
Umesh Kartha
Umesh.Kartha at caviumnetworks.com
Thu May 11 14:35:29 CEST 2017
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
More information about the dev
mailing list