You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add riscv-bare-metal feature for Caliptra firmware targets
Adds support for building wolfCrypt targeting riscv32imc-unknown-none-elf
(Caliptra firmware). New files in wolfssl-src:
user_settings_riscv.h — minimal wolfSSL config: single-threaded,
no filesystem, custom RNG seeded from caliptra_generate_seed(),
STRING_USER with __builtin_mem* instead of libc
riscv_bare_metal_helpers.c — bare-metal strncat/strnstr/strcasecmp
implemented with __builtin_memcpy/memcmp only, no libc
The riscv-bare-metal feature is wired through the full dependency chain:
wolfssl-src → wolfcrypt-sys → wolfcrypt-rs → wolfcrypt → wolfcrypt-dpe.
wolfssl-src selects user_settings_riscv.h over user_settings.h when the
feature is active, copies it to OUT_DIR as user_settings.h so it shadows
the default, and compiles only ssl.c (which includes the remaining
translation units as a unity build on this target).
wolfcrypt-sys/build.rs threads the RISC-V settings dir into bindgen and
drops the ../../wolfssl adjacent-repo fallback that was only useful in
a specific local checkout layout.
wolfcrypt-rs now parses LIBWOLFSSL_VERSION_STRING from wolfssl/version.h
at build time and exposes it as pub const WOLFSSL_VERSION: &str for
runtime diagnostics.
wolfcrypt-dpe is now unconditionally #![no_std] (the std feature gate
was the only thing keeping it conditional) and bumps caliptra-dpe to
fw-2.1.0 (rev cfc9a713), which renamed its workspace packages from
caliptra-dpe-crypto/caliptra-dpe/caliptra-dpe-platform to
crypto/dpe/platform.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments