1. Crypto Device Supported Functionality Matrices

1.1. Supported Feature Flags

Table 1.5 Features availability in crypto drivers

Feature

a e s n i _ g c m

a e s n i _ m b

a r m v 8

b c m f s

c a a m _ j r

c c p

c h a c h a 2 0 _ p o l y 1 3 0 5

c n 1 0 k

c n 9 k

d p a a 2 _ s e c

d p a a _ s e c

k a s u m i

m l x 5

m v s a m

n i t r o x

n u l l

o c t e o n t x

o p e n s s l

q a t

s n o w 3 g

u a d k

v i r t i o

z u c

Symmetric crypto

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Asymmetric crypto

Y

Y

Y

Y

Sym operation chaining

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

HW Accelerated

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Protocol offload

Y

Y

Y

Y

Y

Y

Y

Y

Y

CPU SSE

Y

Y

CPU AVX

Y

Y

CPU AVX2

Y

Y

CPU AVX512

Y

Y

CPU AESNI

Y

Y

CPU NEON

Y

CPU ARM CE

Y

In Place SGL

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

OOP SGL In SGL Out

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

OOP SGL In LB Out

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

OOP LB In SGL Out

Y

Y

Y

Y

Y

Y

Y

OOP LB In LB Out

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

RSA PRIV OP KEY EXP

Y

Y

Y

Y

RSA PRIV OP KEY QT

Y

Y

Y

Y

Y

Digest encrypted

Y

Y

Y

Y

Y

Y

Asymmetric sessionless

Y

CPU crypto

Y

Y

Y

Symmetric sessionless

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Non-Byte aligned data

Y

Y

Y

Y

Y

Sym raw data path API

Y

Y

Cipher multiple data units

Y

Cipher wrapped key

Y

Inner checksum

Y

Rx inject

Note

  • “In Place SGL” feature flag stands for “In place Scatter-gather list”, which means that an input buffer can consist of multiple segments, being the operation in-place (input address = output address).

  • “OOP SGL In SGL Out” feature flag stands for “Out-of-place Scatter-gather list Input, Scatter-gather list Output”, which means PMD supports different scatter-gather styled input and output buffers (i.e. both can consist of multiple segments).

  • “OOP SGL In LB Out” feature flag stands for “Out-of-place Scatter-gather list Input, Linear Buffers Output”, which means PMD supports input from scatter-gather styled buffers, outputting linear buffers (i.e. single segment).

  • “OOP LB In SGL Out” feature flag stands for “Out-of-place Linear Buffers Input, Scatter-gather list Output”, which means PMD supports input from linear buffer, outputting scatter-gather styled buffers.

  • “OOP LB In LB Out” feature flag stands for “Out-of-place Linear Buffers Input, Linear Buffers Output”, which means that Out-of-place operation is supported, with linear input and output buffers.

  • “RSA PRIV OP KEY EXP” feature flag means PMD support RSA private key operation (Sign and Decrypt) using exponent key type only.

  • “RSA PRIV OP KEY QT” feature flag means PMD support RSA private key operation (Sign and Decrypt) using quintuple (crt) type key only.

  • “Digest encrypted” feature flag means PMD support hash-cipher cases, where generated digest is appended to and encrypted with the data.

  • “CIPHER_MULTIPLE_DATA_UNITS” feature flag means PMD support operations

    on multiple data-units message.

  • “CIPHER_WRAPPED_KEY” feature flag means PMD support wrapped key in cipher

    xform.

1.2. Supported Cipher Algorithms

Table 1.6 Cipher algorithms in crypto drivers

Cipher algorithm

a e s n i _ g c m

a e s n i _ m b

a r m v 8

b c m f s

c a a m _ j r

c c p

c h a c h a 2 0 _ p o l y 1 3 0 5

c n 1 0 k

c n 9 k

d p a a 2 _ s e c

d p a a _ s e c

k a s u m i

m l x 5

m v s a m

n i t r o x

n u l l

o c t e o n t x

o p e n s s l

q a t

s n o w 3 g

u a d k

v i r t i o

z u c

NULL

Y

Y

Y

Y

Y

Y

AES CBC (128)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES CBC (192)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES CBC (256)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES ECB (128)

Y

Y

Y

Y

AES ECB (192)

Y

Y

Y

Y

AES ECB (256)

Y

Y

Y

Y

AES CTR (128)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES CTR (192)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES CTR (256)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES XTS (128)

Y

Y

Y

Y

Y

Y

Y

AES XTS (192)

AES XTS (256)

Y

Y

Y

Y

Y

Y

Y

AES DOCSIS BPI

Y

Y

Y

3DES CBC

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

3DES CTR

Y

Y

Y

3DES ECB

Y

Y

Y

DES CBC

Y

Y

Y

Y

Y

Y

Y

Y

Y

DES DOCSIS BPI

Y

Y

Y

Y

SNOW3G UEA2

Y

Y

Y

Y

Y

Y

Y

Y

KASUMI F8

Y

Y

Y

Y

Y

Y

ZUC EEA3

Y

Y

Y

Y

Y

Y

Y

Y

SM4 ECB

Y

Y

SM4 CBC

Y

Y

SM4 CTR

Y

Y

SM4 CFB

Y

SM4 OFB

Y

1.3. Supported Authentication Algorithms

Table 1.7 Authentication algorithms in crypto drivers

Authentication algorithm

a e s n i _ g c m

a e s n i _ m b

a r m v 8

b c m f s

c a a m _ j r

c c p

c h a c h a 2 0 _ p o l y 1 3 0 5

c n 1 0 k

c n 9 k

d p a a 2 _ s e c

d p a a _ s e c

k a s u m i

m l x 5

m v s a m

n i t r o x

n u l l

o c t e o n t x

o p e n s s l

q a t

s n o w 3 g

u a d k

v i r t i o

z u c

NULL

Y

Y

Y

Y

Y

Y

MD5

Y

Y

Y

Y

Y

Y

Y

Y

MD5 HMAC

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA1

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA1 HMAC

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA224

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA224 HMAC

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA256

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA256 HMAC

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA384

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA384 HMAC

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA512

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

SHA512 HMAC

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES XCBC MAC

Y

Y

Y

Y

Y

AES GMAC

Y

Y

Y

Y

Y

Y

Y

Y

Y

SNOW3G UIA2

Y

Y

Y

Y

Y

Y

Y

Y

KASUMI F9

Y

Y

Y

Y

Y

Y

ZUC EIA3

Y

Y

Y

Y

Y

Y

Y

Y

AES CMAC (128)

Y

Y

Y

Y

Y

Y

Y

Y

AES CMAC (192)

Y

Y

Y

AES CMAC (256)

Y

Y

Y

SHA3_224

Y

Y

Y

Y

SHA3_224 HMAC

Y

Y

Y

SHA3_256

Y

Y

Y

Y

SHA3_256 HMAC

Y

Y

Y

SHA3_384

Y

Y

Y

Y

SHA3_384 HMAC

Y

Y

Y

SHA3_512

Y

Y

Y

Y

SHA3_512 HMAC

Y

Y

Y

SM3

Y

Y

SM3 HMAC

Y

SHAKE_128

Y

Y

SHAKE_256

Y

Y

1.4. Supported AEAD Algorithms

Table 1.8 AEAD algorithms in crypto drivers

AEAD algorithm

a e s n i _ g c m

a e s n i _ m b

a r m v 8

b c m f s

c a a m _ j r

c c p

c h a c h a 2 0 _ p o l y 1 3 0 5

c n 1 0 k

c n 9 k

d p a a 2 _ s e c

d p a a _ s e c

k a s u m i

m l x 5

m v s a m

n i t r o x

n u l l

o c t e o n t x

o p e n s s l

q a t

s n o w 3 g

u a d k

v i r t i o

z u c

AES GCM (128)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES GCM (192)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES GCM (256)

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

AES CCM (128)

Y

Y

Y

Y

Y

Y

Y

AES CCM (192)

Y

Y

Y

Y

Y

Y

AES CCM (256)

Y

Y

Y

Y

Y

Y

Y

CHACHA20-POLY1305

Y

Y

Y

Y

Y

1.5. Supported Asymmetric Algorithms

Table 1.9 Asymmetric algorithms in crypto drivers

Asymmetric algorithm

a e s n i _ g c m

a e s n i _ m b

a r m v 8

b c m f s

c a a m _ j r

c c p

c h a c h a 2 0 _ p o l y 1 3 0 5

c n 1 0 k

c n 9 k

d p a a 2 _ s e c

d p a a _ s e c

k a s u m i

m l x 5

m v s a m

n i t r o x

n u l l

o c t e o n t x

o p e n s s l

q a t

s n o w 3 g

u a d k

v i r t i o

z u c

RSA

Y

Y

Y

Y

Y

DSA

Y

Modular Exponentiation

Y

Y

Y

Y

Y

Modular Inversion

Y

Y

Diffie-hellman

Y

ECDSA

Y

Y

Y

Y

ECPM

Y

Y

Y

Y

ECDH

Y

Y

Y

SM2

Y

Y

Y

1.6. Supported Operating Systems

Table 1.10 Operating systems support for crypto drivers

Operating system

a e s n i _ g c m

a e s n i _ m b

a r m v 8

b c m f s

c a a m _ j r

c c p

c h a c h a 2 0 _ p o l y 1 3 0 5

c n 1 0 k

c n 9 k

d p a a 2 _ s e c

d p a a _ s e c

k a s u m i

m l x 5

m v s a m

n i t r o x

n u l l

o c t e o n t x

o p e n s s l

q a t

s n o w 3 g

u a d k

v i r t i o

z u c

Linux

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

FreeBSD

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

Windows

Y