UltrafastSecp256k1/audit/platform-reports/PLATFORM_AUDIT.md
Vano Chkheidze 7668767aac
v3.16.1: cross-platform bench/audit campaign + docs (#78)
* docs: add cross-platform audit reports (5 configs, all AUDIT-READY)

- audit/platform-reports/: 5 platform audit reports (txt + json)
  - Windows x86-64 Clang 21.1.0 (local, v3.16.0): 48/49 PASS
  - Linux x86-64 GCC 13.3.0 (Docker CI, v3.16.0): 48/49 PASS
  - Linux x86-64 Clang 17.0.6 (GitHub CI, v3.15.2): 46/46 PASS
  - Linux x86-64 GCC 13.3.0 (GitHub CI, v3.15.2): 46/46 PASS
  - Windows x86-64 MSVC 1944 (GitHub CI, v3.15.2): 45/45 PASS
- PLATFORM_AUDIT.md: summary table + section-by-section breakdown
- README.md: added Cross-Platform Audit Results subsection

Verify: review audit/platform-reports/PLATFORM_AUDIT.md

* v3.16.1: cross-platform bench/audit campaign + docs

4-platform bench_hornet (x86/ARM64/RISC-V/ESP32) vs libsecp256k1 + CT-vs-CT

7-config audit campaign: all AUDIT-READY (48/49 or 40/40)

RISC-V audit on Milk-V Mars (48/49 PASS), ESP32-S3 audit (40/40 PASS)

BENCHMARKING.md + AUDIT_GUIDE.md guides, examples stability markers

bench_hornet conditional build when libsecp source unavailable

Verify: docker/local_ci.ps1 -Job quick (PASSED 2, FAILED 0)
2026-03-02 02:43:33 +04:00

5.9 KiB

Cross-Platform Audit Report

Generated: 2026-03-01 | Library: UltrafastSecp256k1 v3.16.0 Audit Framework: v2.0.0

Summary

# Platform OS Arch Compiler Build Modules Verdict Time
1 Windows (local) Windows x86-64 Clang 21.1.0 Release 48/49 AUDIT-READY 39.3 s
2 Linux Docker (local) Linux x86-64 GCC 13.3.0 Release 48/49 AUDIT-READY 46.0 s
3 Linux CI Linux x86-64 Clang 17.0.6 Release 46/46 AUDIT-READY 44.3 s
4 Linux CI Linux x86-64 GCC 13.3.0 Release 46/46 AUDIT-READY 48.4 s
5 Windows CI Windows x86-64 MSVC 1944 Release 45/45 AUDIT-READY 139.1 s
6 ESP32-S3 (real HW) FreeRTOS Xtensa GCC 14.2.0 Release 40/40 AUDIT-READY 583 s
7 Milk-V Mars (real HW) Linux RISC-V 64 GCC 13.3.0 Release 48/49 AUDIT-READY 250 s

All 7 platform configurations: AUDIT-READY

Notes

  • Rows 1-2 run against v3.16.0 (commit 28a40d0a) with 49 modules (includes BIP-340 strict, MuSig2 BIP-327 vectors, FFI round-trip, RFC 9591 invariants/3-of-5)
  • Rows 3-5 run against v3.15.2 (commit 03b1661a) with 45-46 modules (before BIP-340 strict + FROST RFC 9591 modules were added)
  • Row 6: ESP32-S3 real hardware (Xtensa LX7 240 MHz), 8 modules skipped (platform-incompatible: __int128, AVX2, SHA-NI, exhaustive, comprehensive, FFI, desktop fuzz)
  • Row 7: Milk-V Mars real hardware (SiFive U74-MC rv64gc_zba_zbb @ 1.5 GHz), all 49 modules run, cross-compiled from x86-64
  • Module count difference: v3.16.0 added 3 new modules (BIP-340 strict, MuSig2 BIP-327, FFI round-trip)
  • "48/49" means 1 advisory warning: Side-channel dudect smoke test (probabilistic timing; flakes under shared-runner / hypervisor noise)
  • FieldElement52 (5x52) test skipped on MSVC (no __uint128_t), hence 45 vs 46 on CI

Section-by-Section Breakdown (v3.16.0, Windows Clang 21.1.0)

Section 1: Mathematical Invariants (Fp, Zn, Group Laws) -- 13/13 PASS

Module Result Time
Field Fp deep audit (add/mul/inv/sqrt/batch) PASS 360 ms
Scalar Zn deep audit (mod/GLV/edge/inv) PASS 65 ms
Point ops deep audit (Jac/affine/sigs) PASS 1416 ms
Field & scalar arithmetic PASS 3 ms
Arithmetic correctness PASS 18 ms
Scalar multiplication PASS 245 ms
Exhaustive algebraic verification PASS 25 ms
Comprehensive 500+ suite PASS 44 ms
ECC property-based invariants PASS 92 ms
Affine batch addition PASS 269 ms
Carry chain stress (limb boundary) PASS 2 ms
FieldElement52 (5x52) vs 4x64 PASS 4 ms
FieldElement26 (10x26) vs 4x64 PASS 4 ms

Section 2: Constant-Time & Side-Channel Analysis -- 4/5 PASS (1 advisory)

Module Result Time
CT deep audit (masks/cmov/cswap/timing) PASS 139 ms
Constant-time layer PASS 10 ms
FAST == CT equivalence PASS 15 ms
Side-channel dudect (smoke) WARN 78 ms
CT scalar_mul vs fast (diagnostic) PASS 5 ms

Section 3: Differential & Cross-Library Testing -- 3/3 PASS

Module Result Time
Differential correctness PASS 299 ms
Fiat-Crypto reference vectors PASS 3 ms
Cross-platform KAT PASS 2 ms

Section 4: Standard Test Vectors (BIP-340, RFC-6979, BIP-32) -- 6/6 PASS

Module Result Time
BIP-340 official vectors PASS 24 ms
BIP-340 strict encoding (non-canonical) PASS 28 ms
BIP-32 official vectors TV1-5 PASS 83 ms
RFC 6979 ECDSA vectors PASS 33 ms
FROST reference KAT vectors PASS 17 ms
MuSig2 BIP-327 reference vectors PASS 17 ms

Section 5: Fuzzing & Adversarial Attack Resilience -- 4/4 PASS

Module Result Time
Adversarial fuzz (malform/edge) PASS 303 ms
Parser fuzz (DER/Schnorr/Pubkey) PASS 8316 ms
Address/BIP32/FFI boundary fuzz PASS 2361 ms
Fault injection simulation PASS 110 ms

Section 6: Protocol Security (ECDSA, Schnorr, MuSig2, FROST) -- 9/9 PASS

Module Result Time
ECDSA + Schnorr PASS 24 ms
BIP-32 HD derivation PASS 26 ms
MuSig2 PASS 20 ms
ECDH + recovery + taproot PASS 5 ms
v4 (Pedersen/FROST/etc) PASS 76 ms
Coins layer PASS 52 ms
MuSig2 + FROST protocol suite PASS 172 ms
MuSig2 + FROST advanced/adversar PASS 83 ms
Integration (ECDH/batch/cross-proto) PASS 1037 ms

Section 7: ABI & Memory Safety (zeroization, hardening) -- 4/4 PASS

Module Result Time
Security hardening (zero/bitflip/nonce) PASS 21837 ms
Debug invariant assertions PASS 3 ms
ABI version gate (compile-time) PASS 1 ms
Cross-ABI/FFI round-trip (ufsecp C API) PASS 10 ms

Section 8: Performance Validation & Regression -- 4/4 PASS

Module Result Time
Accelerated hashing PASS 656 ms
SIMD batch operations PASS 4 ms
Multi-scalar & batch verify PASS 21 ms
Performance smoke (sign/verify roundtrip) PASS 0 ms

Raw Report Files

Individual reports are stored as text and JSON in this directory:

  • windows-x86_64-clang21.txt / .json -- Windows local (v3.16.0)
  • linux-x86_64-gcc13-docker.txt / .json -- Linux Docker CI (v3.16.0)
  • linux-x86_64-clang17-ci.txt / .json -- Linux GitHub CI (v3.15.2)
  • linux-x86_64-gcc13-ci.txt / .json -- Linux GitHub CI (v3.15.2)
  • windows-x86_64-msvc-ci.txt / .json -- Windows GitHub CI (v3.15.2)
  • esp32s3-xtensa-idf551.txt / .json -- ESP32-S3 real hardware (v3.16.0)
  • riscv64-gcc13-hw.txt / .json -- Milk-V Mars RISC-V real hardware (v3.16.0)