134 lines
2.5 KiB
INI
Raw Permalink Normal View History

;
; Features of a default crypto driver.
;
; This file defines the features that are valid for inclusion in
; the other driver files and also the order that they appear in
; the features table in the documentation.
;
[Features]
Symmetric crypto =
Asymmetric crypto =
Sym operation chaining =
HW Accelerated =
Protocol offload =
CPU SSE =
CPU AVX =
CPU AVX2 =
CPU AVX512 =
CPU AESNI =
CPU NEON =
CPU ARM CE =
In Place SGL =
OOP SGL In SGL Out =
OOP SGL In LB Out =
OOP LB In SGL Out =
OOP LB In LB Out =
RSA PRIV OP KEY EXP =
RSA PRIV OP KEY QT =
Digest encrypted =
Asymmetric sessionless =
CPU crypto =
Symmetric sessionless =
Non-Byte aligned data =
Sym raw data path API =
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>
2021-04-14 22:21:58 +02:00
Cipher multiple data units =
Cipher wrapped key =
Inner checksum =
;
; Supported crypto algorithms of a default crypto driver.
;
[Cipher]
NULL =
AES CBC (128) =
AES CBC (192) =
AES CBC (256) =
AES ECB (128) =
AES ECB (192) =
AES ECB (256) =
AES CTR (128) =
AES CTR (192) =
AES CTR (256) =
AES XTS (128) =
AES XTS (192) =
AES XTS (256) =
AES DOCSIS BPI =
3DES CBC =
3DES CTR =
3DES ECB =
DES CBC =
DES DOCSIS BPI =
SNOW3G UEA2 =
KASUMI F8 =
ZUC EEA3 =
SM4 ECB =
SM4 CBC =
SM4 CTR =
;
; Supported authentication algorithms of a default crypto driver.
;
[Auth]
NULL =
MD5 =
MD5 HMAC =
SHA1 =
SHA1 HMAC =
SHA224 =
SHA224 HMAC =
SHA256 =
SHA256 HMAC =
SHA384 =
SHA384 HMAC =
SHA512 =
SHA512 HMAC =
AES XCBC MAC =
AES GMAC =
SNOW3G UIA2 =
KASUMI F9 =
ZUC EIA3 =
AES CMAC (128) =
AES CMAC (192) =
AES CMAC (256) =
SHA3_224 =
SHA3_224 HMAC =
SHA3_256 =
SHA3_256 HMAC =
SHA3_384 =
SHA3_384 HMAC =
SHA3_512 =
SHA3_512 HMAC =
SM3 =
;
; Supported AEAD algorithms of a default crypto driver.
;
[AEAD]
AES GCM (128) =
AES GCM (192) =
AES GCM (256) =
AES CCM (128) =
AES CCM (192) =
AES CCM (256) =
CHACHA20-POLY1305 =
;
; Supported Asymmetric algorithms of a default crypto driver.
;
[Asymmetric]
RSA =
DSA =
Modular Exponentiation =
Modular Inversion =
Diffie-hellman =
ECDSA =
ECPM =
ECDH =
;
; Supported Operating systems of a default crypto driver.
;
[OS]
Linux =
FreeBSD =
Windows =