Skip to content

Commit 7a0e8dd

Browse files
committed
README.md: release notes for QATlib 20.08.0
Add README.md file containing the release notes for QATlib 20.08.0. Signed-off-by: Marcin Malinowski <[email protected]> Signed-off-by: Joel D Schuetze <[email protected]> Signed-off-by: Fiona Trahe <[email protected]> Signed-off-by: Giovanni Cabiddu <[email protected]>
1 parent 851cc19 commit 7a0e8dd

File tree

1 file changed

+184
-0
lines changed

1 file changed

+184
-0
lines changed

README.md

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
# Intel&reg; QuickAssist Technology Library (QATlib)
2+
3+
## Table of Contents
4+
5+
- [Revision History](#revision-history)
6+
- [Overview](#overview)
7+
- [Features](#features)
8+
- [Supported Devices](#supported-devices)
9+
- [Limitations](#limitations)
10+
- [Environmental Assumptions](#environmental-assumptions)
11+
- [Open Issues](#open-issues)
12+
- [Licensing](#licensing)
13+
- [Legal](#legal)
14+
- [Terminology](#terminology)
15+
16+
## Revision History
17+
18+
| Date | Revision | Description |
19+
|----------|:-------------:|------:|
20+
| August 2020 | 001 | 2008 Product Release |
21+
22+
## Overview
23+
Intel(R) QuickAssist Technology (Intel(R) QAT) provides
24+
hardware acceleration for offloading security, authentication and
25+
compression services from the CPU, thus significantly increasing
26+
the performance and efficiency of standard platform solutions.
27+
28+
Its services include symmetric encryption and authentication,
29+
asymmetric encryption, digital signatures, RSA, DH and ECC, and
30+
lossless data compression.
31+
32+
This package provides user space libraries that allow access to
33+
Intel(R) QuickAssist devices and expose the Intel(R) QuickAssist APIs and
34+
sample codes.
35+
36+
## Features
37+
38+
The following services are available in qatlib via the QuickAssist API:
39+
* Symmetric (Bulk) Cryptography
40+
* Ciphers (AES-ECB, AES-CBC, AES-CTR (no partials support),
41+
AES-XTS (no partials support), AES-GCM
42+
* Message digest/hash (SHA1, SHA2 (224/256/384/512),
43+
SHA3-256 (no partials support) and authentication (AES-CBC-MAC, AES-XCBC-MAC)
44+
* Algorithm chaining (one cipher and one hash in a single operation)
45+
* Authenticated encryption (CCM-128 (no partials support),
46+
GCM (128/192/256) (no partials support), GMAC (no partials support))
47+
* KeyGen
48+
* TLS1.2
49+
* TLS1.3
50+
* HKDF
51+
* MGF1
52+
* Asymmetric (Public Key) Cryptography
53+
* Modular exponentiation for Diffie-Hellman (DH)
54+
* RSA key generation, encryption/decryption and digital signature
55+
generation/verification
56+
* DSA parameter generation and digital signature generation/verification
57+
* Elliptic Curve Cryptography: ECDSA, ECDHE, Edwards Montgomery curves
58+
59+
This package includes:
60+
* libqat: user space library for QAT devices exposed via the vfio kernel driver
61+
* libusdm: user space library for memory management
62+
* qatmgr: user space daemon for device management
63+
* Sample codes: applications to demo usage of the libs
64+
65+
## Supported Devices
66+
* 4xxx (QAT gen 4 devices)
67+
68+
Earlier generations of QAT devices (e.g. c62x, dh895xxcc, etc.) are not
69+
supported.
70+
71+
## Limitations
72+
* The library assumes a default configuration of sym and asym services on the
73+
device. This will not always be true as it depends on kernel driver
74+
configuration. If this library is used on a platform with different
75+
configuration, the capabilities will not be reported correctly and some
76+
operations will fail.
77+
78+
* If an error occurs on the host driver (Heartbeat, Uncorrectable error) it
79+
will not be communicated to the library.
80+
81+
The following features are not currently supported:
82+
* Data Compression Services
83+
* Dynamic instances
84+
* Intel® Key Protection Technology (KPT)
85+
* Event driven polling
86+
* Maximum 16 processes per end point
87+
88+
89+
## Environmental Assumptions
90+
91+
The following assumptions are made concerning the deployment environment:
92+
* Users within the same processing domain must be trusted.
93+
* The Intel® QAT device should not be exposed (via the "user space direct"
94+
deployment model) to untrusted users.
95+
* DRAM is considered to be inside the trust boundary. The typical memory
96+
protection schemes provided by the Intel architecture processor and memory
97+
controller, and by the operating system, prevent unauthorized access to these
98+
memory regions.
99+
* A QuickAssist kernel driver for the supported device is installed, which has
100+
discovered and initialised the device, exposing the VFs. Note, this driver
101+
will be included in a future linux kernel.
102+
* The library can be used by unprivilaged users if that user is included in
103+
the 'qat' group.
104+
105+
## Open Issues
106+
Known and resolved issues relating to the Intel® QAT software are described
107+
in this section.
108+
109+
Issue titles follow the pattern:
110+
111+
<Component> [Stepping] - Description of issue
112+
where: \<Component\> is one of the following:
113+
* CY - Cryptographic
114+
* DC - Compression
115+
* EP - Endpoint
116+
* GEN - General
117+
* SYM DP - Symmetric Cryptography on Data Plane
118+
* SR-IOV - Single Root I/O Virtualization
119+
* FW - Firmware
120+
* PERF - Performance
121+
122+
[Stepping] is an optional qualifier that identifies if the errata applies to a specific device stepping
123+
124+
| Issue ID | Description |
125+
|-------------|------------|
126+
| QATE-3241 | [CY - cpaCySymPerformOp when used with parameter checking may reveal the amount of padding.](#qate-3241) |
127+
| QATE-41707 | [CY - Incorrect digest returned when performing a plain hash operation on input data of size 4GB or larger. ](#qate-41707)
128+
129+
130+
## QATE-3241
131+
| Title | CY - cpaCySymPerformOp when used with parameter checking may reveal the amount of padding. |
132+
|----------|:-------------
133+
| Reference # | QATE-3241 |
134+
| Description | When Performing a CBC Decryption as a chained request using cpaCySymPerformOp it is necessary to pass a length of the data to MAC (messageLenToHashInBytes). With ICP_PARAM_CHECK enabled, this checks the length of data to MAC is valid and, if not, it aborts the whole operation and outputs an error on stderr. |
135+
| Implication | The length of the data to MAC is based on the amount of padding. This should remain private and not be revealed. The issue is not observed when the length is checked in constant time before passing the value to the API. This is done by OpenSSL. |
136+
| Resolution | 1. Build without ICP_PARAM_CHECK, but this opens the risk of buffer overrun. <BR> 2. Validate the length before using the API. |
137+
| Affected OS | Linux |
138+
| Driver/Module | CPM-IA - Crypto |
139+
140+
## QATE-41707
141+
142+
| Title | CY - Incorrect digest returned when performing a plain hash operation on input data of size 4GB or larger. |
143+
|----------|:-------------
144+
| Reference # | QATE-41707 |
145+
| Description | When performing a plain hash operation on input data size of 4GB or larger, incorrect digest is returned. |
146+
| Implication | Incorrect digest is returned from a plane hash operation. |
147+
| Resolution | There is no fix available. |
148+
| Affected OS | Linux |
149+
| Driver/Module | CPM-IA - Crypto |
150+
151+
## Licensing
152+
* This product is released under the BSD-3-Clause.
153+
* This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)
154+
155+
156+
## Legal
157+
158+
Intel, Intel Atom, and Xeon are trademarks of
159+
Intel Corporation in the U.S. and/or other countries.
160+
161+
\*Other names and brands may be claimed as the property of others.
162+
163+
Copyright &copy; 2016-2020, Intel Corporation. All rights reserved.
164+
165+
## Terminology
166+
167+
| Term | Description |
168+
|----------|:-------------:|
169+
| API | Application Programming Interface |
170+
| BIOS | Basic Input/Output System |
171+
| BSD | Berkeley Standard Distribution |
172+
| CY | Cryptographic |
173+
| DC | Compression |
174+
| DMA | Direct Memory Access |
175+
| EFI | Extensible Firmware Interface |
176+
| FW | Firmware |
177+
| GPL | General Public License |
178+
| HKDF | HMAC-based Extract-and-Expand Key Derivation Function |
179+
| Intel® QAT | Intel® QuickAssist Technology |
180+
| OS | Operating System |
181+
| SR-IOV | Single-root Input/Output Virtualization |
182+
| TLS | Transport Layer Security |
183+
| VFs | Virtual Functions |
184+

0 commit comments

Comments
 (0)