You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Changes from 23.02.0 to 23.08.0:
* Removal of following insecure algorithms: Diffie-Hellman
and Elliptic curves less than 256-bits.
* Additional configuration profiles, including sym which
facilitates improved symmetric crypto performance.
* DC Chaining (Hash then compress).
* Bug Fixes. See Resolved section in README.md
Signed-off-by: Fiona Trahe <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+42-15Lines changed: 42 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,7 @@
26
26
27
27
| Date | Doc Revision | Version | Details |
28
28
|----------|:-------------:|------:|:------|
29
+
| August 2023 | 010 | 23.08 | <br> - Removal of following insecure algorithms: Diffie-Hellman and Elliptic curves less than 256-bits. <br> - Additional configuration profiles, including sym which facilitates improved symmetric crypto performance. <br> - DC Chaining (Hash then compress) <br> - Bug Fixes. |
29
30
| February 2023 | 009 | 23.02 | - Added configuration option --enable-legacy-algorithms to use these insecure crypto algorithms and disabled them by default (AES-ECB, SHA-1, SHA2-224, SHA3-224, RSA512/1024/1536, DSA)<br>- Refactored code in quickassist/utilities/libusdm_drv<br>- Bugfixes<br>- Updated documentation with configuration and tuning information |
30
31
| November 2022 | 008 | 22.07.2 | - Changed from yasm to nasm for assembly compilation<br> - Added configuration option to use C implementation of soft CRC implementation instead of asm<br>- Added support for pkg-config<br>- Added missing lock around accesses to some global data in qatmgr |
31
32
| October 2022 | 007 | 22.07.1 | - Fix for QATE-86605 |
@@ -70,7 +71,7 @@ The following services are available in qatlib via the QuickAssist API:
70
71
* MGF1
71
72
* Asymmetric (Public Key) Cryptography
72
73
* Modular exponentiation and modular inversion up to 8192 bits
73
-
* Diffie-Hellman (DH) key generation phase 1 and 2 up to 8192 bits
74
+
*[Diffie-Hellman (DH)](#insecure-algorithms) key generation phase 1 and 2 up to 8192 bits
74
75
*[RSA](#insecure-algorithms) key generation, encryption/decryption and digital signature
75
76
generation/verification up to 8192 bits
76
77
*[DSA](#insecure-algorithms) parameter generation and digital signature generation/verification
@@ -82,6 +83,8 @@ The following services are available in qatlib via the QuickAssist API:
82
83
* Compress and Verify (CnV)
83
84
* Compress and Verify and Recover (CnVnR)
84
85
* End-to-end (E2E) integrity check
86
+
* Compression Chaining (Deflate only)
87
+
* Hash then compress
85
88
86
89
This package includes:
87
90
* libqat: user space library for QAT devices exposed via the vfio kernel driver
@@ -97,6 +100,8 @@ The following algorithms are considered insecure and are disabled by default.
97
100
* SHA3-224
98
101
* RSA512/1024/1536
99
102
* DSA
103
+
* Diffie-Helman
104
+
* Elliptic Curve Cryptography algorithms with less 256 bits
100
105
101
106
To enable these algorithms, use the following configuration option:
102
107
*`--enable-legacy-algorithms`
@@ -122,25 +127,25 @@ The following features are not currently supported:
122
127
* Dynamic instances
123
128
* Intel® Key Protection Technology (KPT)
124
129
* Event driven polling
125
-
* More than 16 processes per end point
130
+
* More than 16 processes per end point (16 is the maximum)
126
131
* accumulateXXHash when combined with autoSelectBestHuffmanTree
127
132
* accumulateXXHash in Decompression or Combined sessions
128
133
* integrityCrcCheck for Compression direction requests
129
134
130
-
131
135
## Environmental Assumptions
132
136
133
137
The following assumptions are made concerning the deployment environment:
134
-
* Users within the same processing domain must be trusted.
135
-
* The Intel® QAT device should not be exposed (via the "user space direct"
136
-
deployment model) to untrusted users.
138
+
* Users within the same processing domain must be trusted, i.e.: on the same
139
+
host or within the same virtual machine, users must trust each other.
140
+
* The library can be used by unprivileged users if those users are included in
141
+
the 'qat' group.
137
142
* DRAM is considered to be inside the trust boundary. The typical memory
138
143
protection schemes provided by the Intel architecture processor and memory
139
144
controller, and by the operating system, prevent unauthorized access to these
140
145
memory regions.
141
146
* A QuickAssist kernel driver for the supported device is installed, which has
142
-
discovered and initialised the device, exposing the VFs. This driver is
143
-
included in the Linux kernel, see [INSTALL](INSTALL) for information about which kernel
147
+
discovered and initialized the device, exposing the VFs. This driver is
148
+
included in the Linux kernel, see [INSTALL](INSTALL) for information about which kernel
144
149
to use.
145
150
* The library can be used by unprivileged users if that user is included in
146
151
the 'qat' group.
@@ -174,7 +179,9 @@ where: \<Component\> is one of the following:
174
179
| QATE-3241 |[CY - cpaCySymPerformOp when used with parameter checking may reveal the amount of padding.](#qate-3241)|
175
180
| QATE-41707 |[CY - Incorrect digest returned when performing a plain hash operation on input data of size 4GB or larger.](#qate-41707)|
176
181
| QATE-76073 |[GEN - If PF device configuration is modified without restarting qatmgr, undefined behavior may occur.](#qate-76073)|
177
-
| QATE-76698 |[GEN- Multi-process applications running in guest will fail when running with default Policy settings.](#qate-76698)|
182
+
| QATE-76698 |[GEN - Multi-process applications running in guest will fail when running with default Policy settings.](#qate-76698)|
183
+
| QATE-94286 |[CY - Compression services not detected when crypto-capable VFs are added to VM.](#qate-94286)|
184
+
| QATE-94369 |[GEN - SELinux Preventing QAT Service Startup](#qate-94369)|
178
185
179
186
## QATE-3241
180
187
| Title | CY - cpaCySymPerformOp when used with parameter checking may reveal the amount of padding. |
@@ -211,28 +218,48 @@ where: \<Component\> is one of the following:
211
218
| Title | GEN - Multi-process applications running in guest will fail when running with default Policy settings. |
212
219
|----------|:-------------
213
220
| Reference # | QATE-76698 |
214
-
| Description | The default Policy setting results in process receiving all available VFs allocated to guest operating system. In the case of a multi-process application, failures will be observed as all available QAT resources are consumed by the first process.|
221
+
| Description | The default Policy setting results in process receiving all available VFs allocated to guest operating system. In the case of a multi-process application, failures will be observed as all available QAT resources are consumed by the first process.|
215
222
| Implication | Multi-process applications running in guest OS will fail with default Policy settings. |
216
-
| Resolution |When passing VFs to a guest, the libvirt XML file should specify that all VFs from a given PF (i.e. with the same host domain + bus) are assigned to a common bus on the guest. The first VF, mapped to function='0x0', should also set `multifunction='on'`. Also, if n processes are needed in the guest, then n VFs from each PF should be passed to the guest, to ensure all guest processes have both compression and crypto instances. In addition, on either host or guest, don’t use POLICY=1 as it will only allocate 1 instance. At least 2 instances are needed so a process has both CY and DC instances. Set either POLICY=0 or POLICY=2 (or 4, 6, ...) in `/etc/sysconfig/qat` and restart qatmgr. |
223
+
| Resolution |If more than 1 process is needed in a guest OS, set POLICY=n (where n>0) in /etc/sysconfig/qat and restart qatmgr. The process will then receive n VFs. See RUNNING IN A VIRTUAL MACHINE / GUEST section of INSTALL for details. |
217
224
| Affected OS | Linux |
218
225
| Driver/Module | CPM-IA - General |
219
226
227
+
## QATE-94286
228
+
| Title | GEN - Compression services not detected when crypto-capable VFs are also added to VM. |
229
+
|----------|:-------------
230
+
| Reference # | QATE-94286 |
231
+
| Description | When configuring a system with different services on different QAT end-points, e.g. asym;sym on one and dc on another, and exposing only one of those Virtual Function (VF) types to the Virtual Machine (VM), the application works as expected. However, when VFs of more than one type are passed to the same VM, the application may only recognize one service-type, e.g. it may detect crypto instances, but not compression instances. There is an assumption that all VFs provide the same services if they come from the same PF. However, detecting which PF they come from is based on domain+bus, which is not always a valid assumption on a VM. |
232
+
| Implication | This issue prevents the detection of compression services in a virtualized environment when the default kernel configuration is used, and crypto and dc VFs are passed to the VM, potentially impacting the proper functioning of the system. |
233
+
| Resolution | When passing VFs to a guest, the BDFs on the guest should facilitate qatlib recognizing whether VFs are from the same PF or not. See RUNNING IN A VIRTUAL MACHINE / GUEST section of INSTALL for details. |
234
+
| Affected OS | Linux |
235
+
| Driver/Module | CPM-IA - General |
236
+
237
+
## QATE-94369
238
+
| Title | GEN - SELinux Preventing QAT Service Startup |
239
+
|----------|:-------------
240
+
| Reference # | QATE-94286 |
241
+
| Description | The qat service fails to start due to SELinux preventing the qat_init.sh script and qatmgr from accessing resources. The issue occurs when the system is running with SELinux enabled, causing insufficient permissions for the qat_init.sh script and qatmgr to function correctly. |
242
+
| Implication | This issue affects the proper functioning of the qat service on systems with SELinux enabled, potentially preventing QAT virtual functions (VFs) from functioning. |
243
+
| Resolution | None available. |
244
+
| Affected OS | Linux |
245
+
| Driver/Module | QAT Linux Upstream - User |
246
+
220
247
## Resolved Issues
221
248
Resolved issues relating to the Intel® QAT software are described
222
249
in this section.
223
250
224
251
| Issue ID | Description |
225
252
|-------------|------------|
226
-
| QATE-76846 |[GEN - Forking and re-initialising use-cases do not work](#qate-76846)|
253
+
| QATE-76846 |[GEN - Forking and re-initializing use-cases do not work](#qate-76846)|
227
254
| QATE-78459 |[DC - cpaDcDeflateCompressBound API returns incorrect output buffer size when input size exceeds 477218588 bytes.](#qate-74786)|
228
255
| QATE-12241 |[CY - TLS1.2 with secret key lengths greater than 64 are not supported.](#qate-12241)|
229
256
230
257
## QATE-76846
231
-
| Title | GEN - Forking and re-initialising use-cases do not work |
258
+
| Title | GEN - Forking and re-initializing use-cases do not work |
232
259
|----------|:-------------
233
260
| Reference # | QATE-76846 |
234
-
| Description | Forking and re-initialising use-cases do not work:<br>-icp_sal_userStart()/icp_sal_userStop()/icp_sal_userStart() in single process<br>-icp_sal_userStart()/fork()/icp_sal_userStart() in child.<br> This is the usecase in openssh + QAT_Engine. |
235
-
| Implication | The process will have undefined behaviour in these use-cases. |
261
+
| Description | Forking and re-initializing use-cases do not work:<br>-icp_sal_userStart()/icp_sal_userStop()/icp_sal_userStart() in single process<br>-icp_sal_userStart()/fork()/icp_sal_userStart() in child.<br> This is the use case in openssh + QAT_Engine. |
262
+
| Implication | The process will have undefined behavior in these use-cases. |
236
263
| Resolution | This issue is resolved with the 21.08 release. If using release prior to this release and using these flows, call qaeMemDestroy() immediately after icp_sal_userStop() to prevent this issue. |
0 commit comments