Files
firmware/variants
bce6f4fb4d nRF52840: run X25519 and Ed25519 verify on the CC310 (#12098)
CryptoEngine gains two virtual hooks, x25519 (Curve25519::eval semantics)
and ed25519Verify, which setDHPublicKey, regeneratePublicKey and
xeddsa_verify now call. setDHPublicKey keeps dh2's weak-point checks around
the hook. Other platforms are unchanged.

NRF52CryptoEngine overrides both with the CryptoCell CC310 through
nRFCrypto_X25519 / nRFCrypto_Ed25519. Only clamped scalars go to the
hardware, since the CC310 clamps and eval does not; non-canonical peer keys
return false as eval does. A verify result is final only when the CC310
accepts or rejects; any other CC310 error falls back to software.

nRFCrypto is bumped to Kongduino/Adafruit_nRFCrypto@6d4d369, whose wrappers
survive the firmware's per-call nRFCrypto.begin()/end() and follow RFC 7748.

On a RAK4631: X25519 11.7 ms vs 62.3 ms, Ed25519 verify 17.9 ms vs 173.6 ms.

Co-authored-by: Kongduino <Kongduino@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 11:42:11 +00:00
..
2026-09-24 22:41:37 +00:00