The curve25519 module implements the x25519 function which performs scalar
multiplication on the elliptic curve known as Curve25519. See RFC 7748.

The implementation is based on the paper "Implementing Curve25519/X25519: A
Tutorial on Elliptic Curve Cryptography" by Martin Kleppmann.

This is a low-level module which implements cryptographic primitives. Direct use
of cryptographic primitives is not recommended for non-experts, as incorrect use
of these primitives can easily lead to the introduction of security
vulnerabilities. Non-experts are advised to use the high-level operations
available in the top-level [[crypto::]] module.

Be advised that Hare's cryptography implementations have not been audited.
