SDAA498 September   2026 AM62L

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Platform
  5. 2Yocto Integration (TI SDK Wrynose)
    1. 2.1 Layer Stack
    2. 2.2 OpenSSL 3.5 Native PQC: No Extra Steps Required
    3. 2.3 liboqs / oqs-provider Integration
    4. 2.4 Recovering From Build Errors
    5. 2.5 wolfSSL Integration
      1. 2.5.1 Choosing a Path
      2. 2.5.2 Step A1 — Option A: meta-wolfssl
      3. 2.5.3 Step A2 — Option B: meta-oe wolfssl (Library Only)
    6. 2.6 Step B — Build
    7. 2.7 Step C — OpenSSL Provider Configuration
  6. 3Performance Benchmarks
    1. 3.1 ML-KEM — All implementations
    2. 3.2 ML-DSA — All implementations
    3. 3.3 FrodoKEM (liboqs only)
    4. 3.4 Hybrid KEM — TLS overhead
    5. 3.5 armasm Impact on wolfSSL Performance
  7. 4NEON and HW Acceleration Analysis
    1. 4.1 Acceleration Status per Implementation
    2. 4.2 Recommendation by Algorithm
  8. 5Algorithm Availability Summary
  9. 6References

ML-KEM — All implementations

# OpenSSL native (through EVP provider dispatch)
openssl speed -seconds 3 -kem-algorithms ML-KEM-512 ML-KEM-768 ML-KEM-1024 X25519MLKEM768
# liboqs direct (bypasses OpenSSL EVP)
oqs_speed_kem -d 3 ML-KEM-512
oqs_speed_kem -d 3 ML-KEM-768
oqs_speed_kem -d 3 ML-KEM-1024

# wolfSSL native (--enable-armasm build)
wolfcryptbenchmark -ml-kem-512 -ml-kem-768 -ml-kem-1024
Algorithm OpenSSL native keygen/s liboqs (NEON) keygen/s wolfSSL keygen/s (+armasm) OpenSSL encaps/s liboqs encaps/s wolfSSL encaps/s (+armasm) OpenSSL decaps/s liboqs decaps/s wolfSSL decaps/s (+armasm)
ML-KEM-5124,90612,829 18,8975,74311,026 18,3553,78310,007 12,876
ML-KEM-7683,1307,886 11,8813,9637,299 11,7272,6686,482 8,521
ML-KEM-10242,1455,394 7,8202,8824,963 6,4231,9944,405 5,572
Note: Why wolfSSL (+armasm) beats liboqs NEON on ML-KEM:

With --enable-armasm, wolfSSL enables aarch64 assembly for all crypto primitives — including SHAKE/Keccak (sha3_asm.S). ML-KEM performance is dominated by SHAKE-128/256 (Keccak), so the NEON Keccak assembly gives wolfSSL a 60–100% improvement over its pure-C baseline and surpasses liboqs by +47% keygen and +67% encaps on ML-KEM-512.

The liboqs NEON NTT path optimises the polynomial arithmetic, but wolfSSL's NEON Keccak speed advantage more than compensates. Without --enable-armasm, wolfSSL ML-KEM runs pure-C Keccak and trails liboqs. See Section 3.5 for the before and after comparison.