[go: up one dir, main page]

Crypto: Initial ML-DSA-44 library with libcrux bindings

What

This MR introduces OCaml bindings for the ML-DSA-44 signature scheme from the libcrux_ml_dsa Rust crate and integrates them in the monorepo under the octez-libcrux-ml-dsa library. It also introduces the octez-ml-dsa library, which is a placeholder for a higher-level OCaml API for ML-DSA-44, but which currently only re-exports the octez-libcrux-ml-dsa bindings. octez-ml-dsa is added as a dependency of lib_crypto.

Why

To provide the underlying cryptographic functionality to support ML-DSA-44-based addresses.

How

The OCaml bindings used to build octez-libcrux-ml-dsa are generated by a Rust crate in src/rust_libcrux. The build for this library is relatively minimal compared to the way Rust dependencies have historically been integrated in the monorepo and follows quite closely the guidelines from ocaml-rs.

Manually testing the MR

dune b @src/rust_libcrux/test/runtest

Checklist

  • Document the interface of any function added or modified (see the coding guidelines)
  • Document any change to the user interface, including configuration parameters (see node configuration)
  • Provide automatic testing (see the testing guide).
  • For new features and bug fixes, add an item in the appropriate changelog (docs/protocols/alpha.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by Victor Dumitrescu

Merge request reports

Loading