wolfssl/examples/async
effbiae 0e3f877326 WOLFSSL_ASYNC_WHILE_PENDING refactor 2025-08-14 12:03:13 +10:00
..
README.md
async_client.c WOLFSSL_ASYNC_WHILE_PENDING refactor 2025-08-14 12:03:13 +10:00
async_server.c WOLFSSL_ASYNC_WHILE_PENDING refactor 2025-08-14 12:03:13 +10:00
async_tls.c updating license from GPLv2 to GPLv3 2025-07-10 16:11:36 -06:00
async_tls.h updating license from GPLv2 to GPLv3 2025-07-10 16:11:36 -06:00
include.am Improvements to RSA padding. Expose API's to support external pad/unpad. 2024-06-03 12:23:31 -07:00

README.md

wolfSSL Asynchronous Cryptography support

Supported with:

  • Intel QuickAssist
  • Marvell (Cavium) Nitrox
  • Crypto Callbacks (--enable-cryptocb)
  • PK Callbacks (--enable-pkcallbacks)

Requires files from https://github.com/wolfSSL/wolfAsyncCrypt See async-check.sh for how to setup.

Tested with:

  • ./configure --enable-asynccrypt --enable-rsa --disable-ecc
  • ./configure --enable-asynccrypt --disable-rsa --enable-ecc
  • ./configure --enable-asynccrypt --enable-cryptocb --enable-rsa --disable-ecc
  • ./configure --enable-asynccrypt --enable-cryptocb --disable-rsa --enable-ecc
  • ./configure --enable-asynccrypt --enable-pkcallbacks --enable-rsa --disable-ecc
  • ./configure --enable-asynccrypt --enable-pkcallbacks --disable-rsa --enable-ecc
make
./examples/async/async_server
./examples/async/async_client 127.0.0.1

Asynchronous Cryptography Design

When a cryptogaphic call is handed off to hardware it return WC_PENDING_E up to caller. Then it can keep calling until the operation completes. For some platforms it is required to call wolfSSL_AsyncPoll. At the TLS layer a "devId" (Device ID) must be set using wolfSSL_CTX_SetDevId to indicate desire to offload cryptography.

For further design details please see: https://github.com/wolfSSL/wolfAsyncCrypt#design

Support

For questions please email support@wolfssl.com