Available on curve25519_dalek_bits="32" only.
Expand description

The u32 backend uses u32s and a (u32, u32) -> u64 multiplier.

This code is intended to be portable, but it requires that multiplication of two \(32\)-bit values to a \(64\)-bit result is constant-time on the target platform.

Modules

  • This module contains various constants (such as curve parameters and useful field elements like sqrt(-1)), as well as lookup tables of pre-computed points.
  • Field arithmetic modulo \(p = 2^{255} - 19\), using \(32\)-bit limbs with \(64\)-bit products.
  • Arithmetic mod 2^252 + 27742317777372353535851937790883648493 with 9 29-bit unsigned limbs