ZHDA333 September   2026 AM62L

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
    1. 1.1 平台
  5. 2Yocto 集成 (TI SDK Wrynose)
    1. 2.1 层栈
    2. 2.2 OpenSSL 3.5 原生 PQC:无需额外步骤
    3. 2.3 liboqs/oqs-provider 集成
    4. 2.4 从构建错误中恢复
    5. 2.5 wolfSSL 集成
      1. 2.5.1 选择路径
      2. 2.5.2 步骤 A1 — 选项 A:meta-wolfssl
      3. 2.5.3 步骤 A2 — 选项 B:meta-oe wolfssl(仅库)
    6. 2.6 步骤 B — 构建
    7. 2.7 步骤 C — OpenSSL 提供程序配置
  6. 3性能基准测试
    1. 3.1 ML-KEM — 所有实现
    2. 3.2 ML-DSA — 所有实现
    3. 3.3 FrodoKEM(仅 liboqs)
    4. 3.4 混合 KEM — TLS 开销
    5. 3.5 armasm 对 wolfSSL 性能的影响
  7. 4NEON 与硬件加速分析
    1. 4.1 各实现的加速状态
    2. 4.2 按算法给出的建议
  8. 5算法可用性摘要
  9. 6参考资料

liboqs/oqs-provider 集成

该路径通过 oqs-provider 使用 liboqs 的混合 KEM、FrodoKEM 和 BIKE 来扩展 OpenSSL。两个步骤:

步骤 Y1 — 克隆 meta

cd tisdk/sources
git clone https://github.com/embetrix/meta-oqs.git -b wrynose

步骤 Y2 — 在 local.conf 中启用 OQS

DISTRO_FEATURES:append = " oqs"
IMAGE_INSTALL:append = " liboqs liboqs-tests oqs-provider"

DISTRO_FEATURES:append = " oqs" 是必需的,它控制 OQS OpenSSL 提供程序配置安装、oqs-provider RDEPEND,以及 meta-pqc 中的 PQC 感知型 openssh/ca-certificates bbappend。

警告:

liboqs 会引入 clang-native/libcxx-native

meta-oqs 的 liboqs_0.15.0.bb(和 liboqs-rust_0.10.1.bb)设置 TOOLCHAIN = "clang"。这通常是原版 TI SDK 构建中第一个按配方请求 clang 工具链的环节 — 这样做会引入 oe-core 的 clang-native.bbclass,后者依赖 clang-native、compiler-rt-native 和 libcxx-native (LLVM 自身的 libc++/libc++abi 自举程序),这往往是整个构建过程中首次引入。

如果构建的沙盒 hosttools 环境在 libcxx-native 自身的原生编译器 ABI 检查期间无法解析 -lstdc++,则 libcxx-native 的 do_configure 会失败,提示无法找到 -lstdc++:没有该文件或目录,并且 liboqs 永远无法构建。liboqs 本身没有 clang 特定要求 — 它的 SIMD 调优选项(OQS_USE_AVX2_INSTRUCTIONS、OQS_USE_ARM_NEON_INSTRUCTIONS 等)是普通的 -m<isa> 风格标志,GCC 处理方式完全相同。修复方法是使用控制层(例如 meta-tisdk)中的 bbappend 强制其恢复为发行版默认工具链:

# meta-tisdk/meta-ti-foundational/recipes-crypto/liboqs/liboqs_%.bbappend

TOOLCHAIN = "gcc"