libcrux icon indicating copy to clipboard operation
libcrux copied to clipboard

Restructure repo

Open franziskuskiefer opened this issue 3 months ago • 2 comments

Move crates around.

franziskuskiefer avatar Sep 22 '25 07:09 franziskuskiefer

@keks What is needed to get this done?

franziskuskiefer avatar Nov 17 '25 08:11 franziskuskiefer

The PR is probably pretty much out of date. One issue there was that it tries to do the entire repo at once, which makes merge conflicts likely. Let's instead make a list of crates and see what makes sense. In the parentheses we have the name of the subdirectory of the crates folder that the crate should go into.

  • [x] libcrux-aead
  • [x] libcrux-aesgcm
  • [x] libcrux-ml-dsa
  • [x] libcrux-ml-kem
  • [x] libcrux-hkdf
  • [x] libcrux-digest
  • [x] libcrux-secrets
  • [x] libcrux-traits
  • [x] libcrux-kats
  • [x] libcrux-hacl (sys)
  • [x] libcrux-platform (sys)
  • [x] libjade-sys (sys)
  • [x] libcrux-pqclean (sys)
  • [x] lib25519 (sys)
  • [x] libcrux-blake2 (algorithms)
  • [x] libcrux-poly1305 (algorithms)
  • [x] libcrux-chacha20poly1305 (algorithms)
  • [x] libcrux-curve25519 (algorithms)
  • [x] libcrux-p256 (algorithms)
  • [x] libcrux-sha2 (algorithms)
  • [x] libcrux-ed25519 (algorithms)
  • [x] libcrux-hmac (algorithms)
  • [x] libcrux-rsa (algorithms)
  • [x] libcrux-ecdsa (algorithms)
  • [x] libcrux-sha3 (algorithms)
  • [x] libcrux-hacl-rs (utils)
  • [x] libcrux-macros (utils)
  • [x] libcrux-intrinsics (utils)
  • [x] core-models (utils)
  • [x] libcrux-test-utils (utils)
  • [ ] libcrux (lets put this directly into crates/libcrux)
  • [ ] libcrux-ecdh (algorithms)
  • [ ] libcrux-psq (protocols)
  • [ ] libcrux-kem (primitives)
  • [ ] benchmarks (testing)
  • [ ] cavp (testing)
  • [ ] libcrux-fuzz (testing)
  • [ ] libcrux-ml-kem-fuzz (testing)
  • [ ] libcrux-aesgcm-fuzz (testing)

Thoughts on order:

  • The sys crates are not changing at all
  • Most of the extracted hacl-rs crates and the primitive crates are pretty static, except the signatures one
  • Not entirely sure about the testing ones, I can imagine this is pretty much across the board.

Let's do a PR with the sys and utils crates and the poly1305, chacha20poly1305, hmac, sha2, sha3, blake2, algorithms. Once that is merged, let's see what makes sense to tackle next, based on what is in flight then.

keks avatar Nov 17 '25 13:11 keks

Updated the list to reflect the changes from #1243.

keks avatar Dec 02 '25 07:12 keks