Safe cryptography requires getting a lot of layers right, from an easy-to-use-correctly high-level API, down to the lowest-level manipulation of bits in constant time. With a projected number of over 30 billion active IoT devices for 2020, Rust needs a solid native cryptography story to compete.
Missing so far is public key cryptography on microcontrollers, which at the lowest level depends strongly on the platform's instruction set.
Using our Ed25519 signature library for illustration, this talk
- argues for Arm Cortex-M4 as a mean viable platform, and
- exemplifies how Rust and Assembly combine to a winning combination of high-level design with low-level precision.
Along the way, we'll learn a little bit about multiplying numbers with the obscure UMAAL instruction!