[dpdk-dev] [RFC] specifications for asymmetric crypto algorithms
Declan Doherty
declan.doherty at intel.com
Mon Mar 27 14:58:58 CEST 2017
On 22/03/2017 10:16 AM, Umesh Kartha wrote:
>
> 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 ECDSA
> - ECDSA Sign
> - ECDSA Verify
>
> Curves supported for ECDSA operations are
> * Prime192v1
> * Secp224k1
> * Prime256v1
> * Secp384r1
> * Secp521r1
>
> 3 MODEXP
>
> 4 FUNDAMENTAL ECC
> - Point Addition
> - Point Multiplication
> - Point Doubling
>
> Curves supported for fundamental ECC operations are same as that of
> ECDSA operations.
>
> Asymmetric crypto transform operations support both session oriented
> mode (WIP) 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.
>
> Unlike symmetric operations, asymmetric operations can have more than
> one resultant component for a single transform. Hence, only for select
> operation types do we use destination mbuf structure passed along with
> other operation parameters. The lengths of input and output parameters
> are fixed and short. Depending on the algorithm, the number of inputs to
> crypto transform operation, both mutable and immutable parameters,
> vary. Depending on the algorithm, the type of data expected at source
> mbuf varies and has been described.
>
> ---
...
>
Hey Umesh,
it's great to see this RFC and the expansion to the cryptodev framework
functionality. I'm currently working my way through the proposal and
drafting in some help from colleagues within Intel with asymmetric
crypto expertise. Hopefully I'll be able to come back to the list with
detailed comments as soon as possible.
Thanks
Declan
More information about the dev
mailing list