Skip to content

Commit c3e319b

Browse files
Bug fix, README & v0.6.18 Version update.
- Fix Chachapoly TLS1.2 Keep alive issue. Signed-off-by: Yogaraj Alamenda <yogarajx.alamenda@intel.com>
1 parent ea2f554 commit c3e319b

File tree

9 files changed

+75
-52
lines changed

9 files changed

+75
-52
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ section.
3030
## Features
3131
Features of the QAT_Engine are described [here](docs/features.md).
3232

33-
## Limitations
34-
Limitations for the QAT_Engine are described [here](docs/limitations.md).
33+
## Limitations and Known Issues
34+
Limitations and known issues for the QAT_Engine are described [here](docs/limitations.md).
3535

3636
## Requirements
3737
- [Hardware Requirements](docs/hardware_requirements.md)

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Process this file with autoconf to produce a configure script.
33

44
AC_PREREQ([2.68])
5-
AC_INIT([qatengine], [0.6.17], [])
5+
AC_INIT([qatengine], [0.6.18], [])
66
AC_CONFIG_SRCDIR([config.h.in])
77
AC_CONFIG_HEADERS([config.h])
88
AC_CONFIG_AUX_DIR([.])

docs/limitations.md

Lines changed: 54 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,77 @@
11
## Limitations
22

3-
* When forking within an application it is not valid for a cryptographic
3+
* When **forking** within an application it is not valid for a cryptographic
44
operation to be started in the parent process, and completed in the child
55
process.
6-
* Only one level of forking is permitted, if a child process forks again then
6+
* Only **one level of forking is permitted**, if a child process forks again then
77
the Intel&reg; QAT OpenSSL\* Engine will not be available in that forked
88
process.
9-
* Event driven mode of polling operation is not supported in the FreeBSD
9+
* **Event driven mode** of polling operation is not supported in the FreeBSD
1010
Operating system or in the qatlib RPM.
11-
* qat_contig_mem memory driver is not supported when running under FreeBSD
11+
* **qat_contig_mem** memory driver is not supported when running under FreeBSD
1212
Operating system or in the qatlib RPM. The default is to use the USDM memory
1313
driver supplied as part of the Intel&reg; QAT Driver.
14+
* **SM2, SM3 & SM4** application testing is done using BabaSSL only since OpenSSL
15+
doesn't support SMx cipher suites.
16+
* QAT Engine doesn't support **ENCRYPT_THEN_MAC**(default) mode of operation meaning
17+
when Encrypt then MAC is negotiated for symmetric ciphers say AES-CBC, the requests will not
18+
get offloaded via QAT_HW, instead uses OpenSSL SW. Disable ENCRYPT_THEN_MAC with the flag
19+
`SSL_OP_NO_ENCRYPT_THEN_MAC` programmatically using SSL_CTX_set_options() to offload
20+
symmetric chained ciphers via QAT_HW. Please note disabling ENCRYPT_THEN_MAC has security
21+
implications.
1422
* Support for cipher AES-128-CBC-HMAC-SHA1 and its related ciphers was broken
1523
in release OpenSSL\* 1.1.1d. This was later fixed in OpenSSL\* 1.1.1e release.
16-
* X25519/X448 support is available only from version 4.9 of the Intel&reg; QAT
24+
* OpenSSL 1.1.1n introduced misleading error message(undefined symbol: **EVP_PKEY_get_base_id**)
25+
during engine load which can be ignored as it is not a real failure. This is later fixed in
26+
OpenSSL\* 1.1.1o release.
27+
* X25519/X448 support is available only from **version 4.9** of the Intel&reg; QAT
1728
driver for Linux. Use `--disable-qat_hw_ecx` in the Intel&reg; QAT OpenSSL\* Engine
1829
configure when building against earlier versions of the Linux driver.
19-
* Support for qaeMemFreeNonZeroNUMA() USDM API is available only from version 4.10
30+
* Support for qaeMemFreeNonZeroNUMA() USDM API is available only from **version 4.10**
2031
of the Intel&reg; QAT driver for Linux. Use `--with-cc-opt="-DQAT_HW_DISABLE_NONZERO_MEMFREE"`
2132
in the Intel&reg; QAT OpenSSL\* Engine configuration when building against earlier
2233
versions of the Linux driver.
23-
* Support for QAT HW ECX, QAT SW ECX, QAT SW SM2 ECDSA, QAT HW PRF and QAT HW HKDF is disabled
34+
* From **version 4.19** of Intel&reg; QAT driver for Linux, legacy or insecure algorithms such as DES,
35+
3DES, MD5, SHA1, RC4 are disabled by default so there will be failures observed in the relevant
36+
ciphers. Driver needs to be built with flag "--enable-legacy-algorithms" to enable those algorithms
37+
support.
38+
* QAT Engine built for OpenSSL3.0 is only compatible with dependant libraries also linked with OpenSSL3.0
39+
libraries due to [OpenSSL#17112][1]. Same applies for OpenSSL 1.1.1.
40+
41+
## Known Issues
42+
43+
### Functional
44+
* Known issue with OpenSSL 3.0 s_server using qatengine with cipher **"DHE-RSA-CHACHA20-POLY1305"** which
45+
works fine with Nginx. The issue is due to failure at EVP_PKEY_copy_parameter() in OpenSSL.
46+
* AES-CBC-HMAC-SHA chained ciphers does not support **pipeline feature** when built with
47+
OpenSSL 3.0 as the corresponding support is not available in OpenSSL 3.0 - [OpenSSL#18298][2]
48+
* Support for **QAT HW ECX, QAT SW ECX, QAT SW SM2 ECDSA, QAT HW PRF and QAT HW HKDF** is disabled
2449
when built against OpenSSL 3.0 engine interface since OpenSSL doesn't have default implementation
2550
methods accessible from OpenSSL3.0 engine interface, instead it uses non-accelerated
26-
implementation from OpenSSL default provider.
27-
* There is known performance scaling issue (performance drop with threads >32)
28-
with ECDSA Ciphers in the QAT Software acceleration using multithread mode
29-
in the Haproxy application. This issue is not observed when using RSA ciphers
30-
or in multi-process mode.
31-
* There is an issue in sshd daemon application when using the QAT for default openssl.
51+
implementation from OpenSSL default provider - [OpenSSL#19047][3]
52+
* There is an issue in **sshd** daemon application when using the QAT for default openssl.
3253
sshd looks to be closing the file descriptors associated with QAT engine and driver after
3354
initialising openssl. Similar issue was present which prevents the ability to ssh out of
3455
the system using the QAT engine in versions of the ssh application before OpenSSH 8.7.
35-
The issue has been fixed with this commit [c9f7bba][1] . This update can be applied to
56+
The issue has been fixed with this commit [c9f7bba][4] . This update can be applied to
3657
sshd to work-around the issue.
37-
* SM2 ECDH and ECDSA application testing is done using BabaSSL only since OpenSSL
38-
doesn't support SMx cipher suites.
39-
* SM3 is disabled by default due to performance drop observed in mulithread scenario
40-
for all ciphers suites due to the locks at engine_table_select in OpenSSL.
41-
* OpenSSL 1.1.1n introduced misleading error message(undefined symbol: EVP_PKEY_get_base_id)
42-
during engine load which can be ignored as it is not a real failure. This is later fixed in
43-
OpenSSL\* 1.1.1o release.
44-
* AES-CBC-HMAC-SHA chained ciphers does not support pipeline feature when built with
45-
OpenSSL 3.0 as the corresponding support is not available in OpenSSL 3.0.
46-
* QAT Engine doesn't support ENCRYPT_THEN_MAC(default) mode of operation meaning
47-
when Encrypt then MAC is negotiated for symmetric ciphers say AES-CBC, the requests will not
48-
get offloaded via QAT_HW, instead uses OpenSSL SW. Disable ENCRYPT_THEN_MAC with the flag
49-
`SSL_OP_NO_ENCRYPT_THEN_MAC` programmatically using SSL_CTX_set_options() to offload
50-
symmetric chained ciphers via QAT_HW. Please note disabling ENCRYPT_THEN_MAC has security
51-
implications.
52-
* Known issue with OpenSSL 3.0 s_server using qatengine with cipher "DHE-RSA-CHACHA20-POLY1305" which
53-
works fine with Nginx. The issue is due to failure at EVP_PKEY_copy_parameter() in OpenSSL which is
54-
yet to be root caused.
55-
* From version 4.19 of Intel&reg; QAT driver for Linux, legacy or insecure algorithms such as DES,
56-
3DES, MD5, SHA1, RC4 are disabled by default so there will be failures observed in the relevant
57-
ciphers. Driver needs to be built with flag "--enable-legacy-algorithms" to enable those algorithms
58-
support.
58+
* Failures with QAT_HW SHA3 for 0 bytes file, Big file with multiple SHA3 update and
59+
HMAC with SHA3.
60+
* Known issue with QAT_SW SM2 in ntls mode since QAT_SW SM2 doesn't have plain sign and
61+
verify operation support in engine. Disable QAT_SW SM2 to workaround the issue with ntls.
62+
No issues with TLS mode since it uses digestsign and digestverify which is supported.
63+
64+
### Performance
65+
* There is known performance scaling issue (performance drop with threads >32)
66+
with ECDSA Ciphers in the QAT Software acceleration using multithread mode
67+
in the Haproxy application. This issue is not observed when using RSA ciphers
68+
or in multi-process mode.
69+
* SM3 is disabled by default due to performance drop observed in **mulithread scenario**
70+
for all ciphers suites due to the additional locks at engine_table_select introduced by
71+
engine digest registration in OpenSSL - [OpenSSL#18509][5]
5972

60-
[1]:https://github.com/openssh/openssh-portable/commit/c9f7bba2e6f70b7ac1f5ea190d890cb5162ce127
73+
[1]:https://github.com/openssl/openssl/pull/17112
74+
[2]:https://github.com/openssl/openssl/issues/18298
75+
[3]:https://github.com/openssl/openssl/issues/19047
76+
[4]:https://github.com/openssh/openssh-portable/commit/c9f7bba2e6f70b7ac1f5ea190d890cb5162ce127
77+
[5]:https://github.com/openssl/openssl/issues/18509

docs/software_requirements.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Driver for FreeBSD. This release was validated on the following:
99
* Operating system: CentOS* 8.4, Ubuntu\* 20.04.2 LTS & FreeBSD\* 12.3
1010
* Intel&reg; Communications Chipset C62X Series Software for Linux\*, version **4.19**
1111
* Intel&reg; Communications Chipset C62X Series Software for FreeBSD\*, version **3.12**
12-
* OpenSSL\* 1.1.1q & 3.0.5
12+
* OpenSSL\* 1.1.1s & 3.0.7
1313
* BoringSSL\* commit - [15596efa5f][1]
1414
* BabaSSL - 8.3.1
1515

@@ -30,8 +30,8 @@ This release was validated on the following:
3030
* Operating system: Ubuntu\* 20.04.2 LTS
3131
* Intel&reg; Crypto Multi-buffer library from the [ipp-crypto][2] release
3232
version **IPP Crypto 2021.6**
33-
* Intel&reg; Multi-Buffer crypto for IPsec Library release version **v1.2**
34-
* OpenSSL\* 1.1.1q & 3.0.5
33+
* Intel&reg; Multi-Buffer crypto for IPsec Library release version **v1.3**
34+
* OpenSSL\* 1.1.1s & 3.0.7
3535
* BoringSSL\* commit - [15596efa5f][1]
3636
* BabaSSL - 8.3.1
3737

e_qat.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,13 @@
148148
const char *engine_qat_id = STR(QAT_ENGINE_ID);
149149
#if defined(QAT_HW) && defined(QAT_SW)
150150
const char *engine_qat_name =
151-
"Reference implementation of QAT crypto engine(qat_hw & qat_sw) v0.6.17";
151+
"Reference implementation of QAT crypto engine(qat_hw & qat_sw) v0.6.18";
152152
#elif QAT_HW
153153
const char *engine_qat_name =
154-
"Reference implementation of QAT crypto engine(qat_hw) v0.6.17";
154+
"Reference implementation of QAT crypto engine(qat_hw) v0.6.18";
155155
#else
156156
const char *engine_qat_name =
157-
"Reference implementation of QAT crypto engine(qat_sw) v0.6.17";
157+
"Reference implementation of QAT crypto engine(qat_sw) v0.6.18";
158158
#endif
159159
unsigned int engine_inited = 0;
160160

qat_hw_chachapoly.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1681,8 +1681,8 @@ static int qat_chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,
16811681
cp_ctx->mac_key_set = 0;
16821682

16831683
# if !defined(ENABLE_QAT_HW_SMALL_PKT_OFFLOAD) && !defined(QAT_OPENSSL_PROVIDER)
1684-
if (cp_ctx->packet_size <= qat_pkt_threshold_table_get_threshold(
1685-
EVP_CIPHER_CTX_nid(ctx))) {
1684+
if (len <= qat_pkt_threshold_table_get_threshold(
1685+
EVP_CIPHER_CTX_nid(ctx))) {
16861686
goto sw_ctrl;
16871687
}
16881688
# endif

qat_provider.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151
# include <openssl/bio.h>
5252
# include <openssl/core_dispatch.h>
5353

54-
# define QAT_PROVIDER_VERSION_STR "v0.6.17"
55-
# define QAT_PROVIDER_FULL_VERSION_STR "QAT Provider v0.6.17"
54+
# define QAT_PROVIDER_VERSION_STR "v0.6.18"
55+
# define QAT_PROVIDER_FULL_VERSION_STR "QAT Provider v0.6.18"
5656

5757
# if defined(QAT_HW) && defined(QAT_SW)
5858
# define QAT_PROVIDER_NAME_STR "QAT Provider for QAT_HW and QAT_SW"

qatengine-sw.spec

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
%global enginesdir %(pkg-config --variable=enginesdir libcrypto)
55

66
Name: qatengine-sw
7-
Version: 0.6.17
7+
Version: 0.6.18
88
Release: 1%{?dist}
99
Summary: Intel QuickAssist Technology (QAT) OpenSSL Engine
1010
# Most of the source code is BSD, with the following exceptions:
@@ -49,6 +49,9 @@ autoreconf -ivf
4949
%exclude %{enginesdir}/qatengine.la
5050

5151
%changelog
52+
* Thu Dec 08 2022 Yogaraj Alamenda <yogarajx.alamenda@intel.com> - 0.6.18-1
53+
- Update to qatengine v0.6.18
54+
5255
* Wed Nov 02 2022 Yogaraj Alamenda <yogarajx.alamenda@intel.com> - 0.6.17-1
5356
- Update to qatengine v0.6.17
5457

qatengine.spec

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
%global enginesdir %(pkg-config --variable=enginesdir libcrypto)
55

66
Name: qatengine
7-
Version: 0.6.17
7+
Version: 0.6.18
88
Release: 1%{?dist}
99
Summary: Intel QuickAssist Technology (QAT) OpenSSL Engine
1010
# Most of the source code is BSD, with the following exceptions:
@@ -46,6 +46,9 @@ autoreconf -ivf
4646
%exclude %{enginesdir}/qatengine.la
4747

4848
%changelog
49+
* Thu Dec 08 2022 Yogaraj Alamenda <yogarajx.alamenda@intel.com> - 0.6.18-1
50+
- Update to qatengine v0.6.18
51+
4952
* Wed Nov 02 2022 Yogaraj Alamenda <yogarajx.alamenda@intel.com> - 0.6.17-1
5053
- Update to qatengine v0.6.17
5154

0 commit comments

Comments
 (0)