Page
Library
Module
Module type
Parameter
Class
Class type
Source
Use a 64-bit OCaml 4.14 or newer switch. To make a local switch:
opam switch create . 4.14.2 --no-install
opam install . --deps-only --with-test --with-docIf you already have a suitable switch, just run the dependency installation command. Use opam exec -- so commands use that switch's compiler and tools. The installed package only needs mirage-crypto-rng at runtime; the other dependencies support tests and documentation.
opam exec -- dune build @all @doc
opam exec -- dune runtest
opam lint --strict curve448.opam
python3 tools/check_doc_links.pyThe normal test run covers both backends, the C bytecode bindings, the examples, RFC and Wycheproof vectors, properties and an independent reference model. OCaml 5 also runs the domain tests. See testing for fuzzing, generated sources, sanitizers and the slower security checks.
opam install ocamlformat.0.29.0
opam exec -- dune fmtopam exec -- dune build @fmt checks formatting without promoting changes. Edit dune-project and curve448.opam.template, then run opam exec -- dune build curve448.opam to regenerate package metadata. Do not edit curve448.opam directly. It is committed so opam can read it before building Dune.
Generated arithmetic and tables are excluded from ocamlformat. Edit their generators and run the regeneration checks. When changing dependencies, update and run the lower-bound test.
Keep API changes documented in lib/curve448.mli and CHANGES.md. Add tests for changed behaviour, and preserve the shared tests across both backends. Use the issue tracker for bugs; follow SECURITY.md for suspected vulnerabilities.
The release guide covers package checks and submission to opam-repository.