// -*- mode: rust; -*-
//
// This file is part of curve25519-dalek.
// Copyright (c) 2016-2018 Isis Lovecruft, Henry de Valence
// See LICENSE for licensing information.
//
// Authors:
// - Isis Agora Lovecruft <isis@patternsinthevoid.net>
// - Henry de Valence <hdevalence@hdevalence.ca>
// Refuse to compile if documentation is missing, but only on nightly.
//
// This means that missing docs will still fail CI, but means we can use
// README.md as the crate documentation.
//! Note that docs will only build on nightly Rust until
//! [RFC 1990 stabilizes](https://github.com/rust-lang/rust/issues/44732).
//------------------------------------------------------------------------
// External dependencies:
//------------------------------------------------------------------------
extern crate alloc;
extern crate std;
extern crate packed_simd;
extern crate rand;
extern crate clear_on_drop;
extern crate byteorder;
// The `Digest` trait is implemented using `generic_array`, so we need it
// too. Hopefully we can eliminate `generic_array` from `Digest` once const
// generics land.
extern crate digest;
extern crate generic_array;
// Used for traits related to constant-time code.
extern crate subtle;
extern crate serde;
extern crate serde_cbor;
// Internal macros. Must come first!
pub
//------------------------------------------------------------------------
// curve25519-dalek public modules
//------------------------------------------------------------------------
// Scalar arithmetic mod l = 2^252 + ..., the order of the Ristretto group
// Point operations on the Montgomery form of Curve25519
// Point operations on the Edwards form of Curve25519
// Group operations on the Ristretto group
// Useful constants, like the Ed25519 basepoint
// External (and internal) traits.
//------------------------------------------------------------------------
// curve25519-dalek internal modules
//------------------------------------------------------------------------
// Finite field arithmetic mod p = 2^255 - 19
pub
// Arithmetic backends (using u32, u64, etc) live here
pub
// Internal curve models which are not part of the public API.
pub
// Crate-local prelude (for alloc-dependent features like `Vec`)
pub
// Implementations of scalar mul algorithms live here
pub