contrib: add QAT private key provider.#21984
Conversation
Next generation Intel® QAT support with Intel® Xeon® Scalable processors will feature an Intel® QAT cryptography and compression acceleration engine. QAT private key provider extension will use qatlib library (https://github.com/intel/qatlib) to accelerate RSA operations in handshakes. The extension will look a bit like the existing cryptomb private key provider. The use case is to move the expensive cryptographic operations away from the CPU to the accelerator device, leaving CPU cycles for other use. Support for Intel® QAT is already present in the mainline Linux kernel and in Kubernetes device plugins (to expose the device files to containers). There are previous generations of Intel QAT® hardware devices, but they are not supported by this extension. Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
|
CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to |
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
| // The private key provider provides RSA sign and decrypt operation | ||
| // hardware acceleration. | ||
|
|
||
| // [#extension-category: envoy.tls.key_providers] |
There was a problem hiding this comment.
Please remove this line as we do need one envoy.tls.key_providers category.
There was a problem hiding this comment.
Ping @daixiang0 if you are able to re-review and stamp
Looks like autoconf can't parse the -fuse-ld=lld flag, which leads to wrong linker being used, which in turn leads to unrecognized linker command line options. An alternative would be to set the LD env variable in the BUILD file for clang-based builds. Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
|
/assign-from @envoyproxy/senior-maintainers for new contrib component review |
|
@envoyproxy/senior-maintainers assignee is @ggreenway |
|
@moderation how does this look for dependencies? |
|
Not great but this is contrib and follows prior Intel contributions. Lack of code review, contributors and maintenance noted. scorecard --repo=https://github.com/intel/qatlib |
|
/lgtm deps |
|
@ggreenway would you mind looking over this one again /wait-any |
|
@ipuustin this seems to have introduced a flake in CI: |
Thanks for the heads up. I'll take a look at |
Next generation Intel® QAT support with Intel® Xeon® Scalable processors will feature an Intel® QAT cryptography and compression acceleration engine. QAT private key provider extension will use qatlib library (https://github.com/intel/qatlib) to accelerate RSA operations in handshakes. The extension will look a bit like the existing cryptomb private key provider. The use case is to move the expensive cryptographic operations away from the CPU to the accelerator device, leaving CPU cycles for other use. Support for Intel® QAT is already present in the mainline Linux kernel and in Kubernetes device plugins (to expose the device files to containers). There are previous generations of Intel QAT® hardware devices, but they are not supported by this extension. Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
Commit Message:
contrib: add QAT private key provider for RSA handshake acceleration.
Next generation Intel® QAT support with Intel® Xeon® Scalable processors will feature an Intel® QAT cryptography and compression acceleration engine.
QAT private key provider extension will use qatlib library (https://github.com/intel/qatlib) to accelerate RSA operations in handshakes. The extension will look a bit like the existing cryptomb private key provider. The use case is to move the expensive cryptographic operations away from the CPU to the accelerator device, leaving CPU cycles for other use.
Additional Description:
Support for Intel® QAT is already present in the mainline Linux kernel and in Kubernetes device plugins (to expose the device files to containers). There are previous generations of Intel QAT® hardware devices, but they are not supported by this extension.
Two patches to libqat are present, but they should be included into the next qatlib release.
Risk Level: medium (contrib extension, no HW available yet, crypto-related code)
Testing: unit tests
Docs Changes: Protobuf comments
Release Notes: N/A
Platform Specific Features: Requires a future Intel Xeon Scalable processor.
Fixes #21531 (partly, QATzip extension will be a later PR)