0c83c9ab | 25-Jun-2021 |
Tejasree Kondoj <ktejasree@marvell.com> |
crypto/cnxk: add ZUC and SNOW3G decryption
Add PDCP opcode which handles ZUC and SNOW3G.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Signed-off-by: Anoob Joseph <anoobj@marvell.com> Signed-
crypto/cnxk: add ZUC and SNOW3G decryption
Add PDCP opcode which handles ZUC and SNOW3G.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Signed-off-by: Anoob Joseph <anoobj@marvell.com> Signed-off-by: Archana Muniganti <marchana@marvell.com> Signed-off-by: Tejasree Kondoj <ktejasree@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
07b0b753 | 13-Apr-2021 |
Matan Azrad <matan@nvidia.com> |
cryptodev: formalize key wrap method in API
The Key Wrap approach is used by applications in order to protect keys located in untrusted storage or transmitted over untrusted communications networks.
cryptodev: formalize key wrap method in API
The Key Wrap approach is used by applications in order to protect keys located in untrusted storage or transmitted over untrusted communications networks. The constructions are typically built from standard primitives such as block ciphers and cryptographic hash functions.
The Key Wrap method and its parameters are a secret between the keys provider and the device, means that the device is preconfigured for this method using very secured way.
The key wrap method may change the key length and layout.
Add a description for the cipher transformation key to allow wrapped key to be forwarded by the same API.
Add a new feature flag RTE_CRYPTODEV_FF_CIPHER_WRAPPED_KEY to be enabled by PMDs support wrapped key in cipher trasformation.
Signed-off-by: Matan Azrad <matan@nvidia.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
d014dddb | 14-Apr-2021 |
Matan Azrad <matan@nvidia.com> |
cryptodev: support multiple cipher data-units
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called blocks.
A block cipher consists of two pa
cryptodev: support multiple cipher data-units
In cryptography, a block cipher is a deterministic algorithm operating on fixed-length groups of bits, called blocks.
A block cipher consists of two paired algorithms, one for encryption and the other for decryption. Both algorithms accept two inputs: an input block of size n bits and a key of size k bits; and both yield an n-bit output block. The decryption algorithm is defined to be the inverse function of the encryption.
For AES standard the block size is 16 bytes. For AES in XTS mode, the data to be encrypted\decrypted does not have to be multiple of 16B size, the unit of data is called data-unit. The data-unit size can be any size in range [16B, 2^24B], so, in this case, a data stream is divided into N amount of equal data-units and must be encrypted\decrypted in the same data-unit resolution.
For ABI compatibility reason, the size is limited to 64K (16-bit field). The new field dataunit_len is inserted in a struct padding hole, which is only 2 bytes long in 32-bit build. It could be moved and extended later during an ABI-breakage window.
The current cryptodev API doesn't allow the user to select a specific data-unit length supported by the devices. In addition, there is no definition how the IV is detected per data-unit when single operation includes more than one data-unit.
That causes applications to use single operation per data-unit even though all the data is continuous in memory what reduces datapath performance.
Add a new feature flag to support multiple data-unit sizes, called RTE_CRYPTODEV_FF_CIPHER_MULTIPLE_DATA_UNITS. Add a new field in cipher capability, called dataunit_set, where the devices can report the range of the supported data-unit sizes. Add a new cipher transformation field, called dataunit_len, where the user can select the data-unit length for all the operations.
All the new fields do not change the size of their structures, by filling some struct padding holes. They are added as exceptions in the ABI check file libabigail.abignore.
Using a bitmap to report the supported data-unit sizes capability allows the devices to report a range simply as same as the user to read it simply. also, thus sizes are usually common and probably will be shared among different devices.
Signed-off-by: Matan Azrad <matan@nvidia.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
8bd1040a | 27-Oct-2020 |
Didier Pallard <didier.pallard@6wind.com> |
crypto/octeontx2: fix out-of-place support
Out of place with linear buffers is supported by octeontx2 while not advertised.
Fixes: 6aa9ceaddf1d ("crypto/octeontx2: add symmetric capabilities") Cc:
crypto/octeontx2: fix out-of-place support
Out of place with linear buffers is supported by octeontx2 while not advertised.
Fixes: 6aa9ceaddf1d ("crypto/octeontx2: add symmetric capabilities") Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com> Acked-by: Ankur Dwivedi <adwivedi@marvell.com>
show more ...
|