mirror of
https://github.com/saymrwulf/betrusted-curve25519-dalek-source.git
synced 2026-09-04 20:24:07 +00:00
This change required some work, because the to-be-stabilized SIMD functions don't allow non-constant `imm8`s. Previously, the `stdsimd` functions had a constifying macro that ensured that the immediates were known. The dalek code used this to build helper functions which would be inlined into different places where the immediates were known. Unfortunately, since constexprs aren't fully supported in Rust yet, this is done by a hidden compiler attribute, and there's no way to propagate "constness". To deal with this, some of the functions are specialized (e.g., `square_and_negate_D` instead of taking a mask), and others use an enum.
71 lines
2.4 KiB
TOML
71 lines
2.4 KiB
TOML
[package]
|
|
name = "curve25519-dalek"
|
|
version = "0.16.0"
|
|
authors = ["Isis Lovecruft <isis@patternsinthevoid.net>",
|
|
"Henry de Valence <hdevalence@hdevalence.ca>"]
|
|
readme = "README.md"
|
|
license = "BSD-3-Clause"
|
|
repository = "https://github.com/dalek-cryptography/curve25519-dalek"
|
|
homepage = "https://dalek.rs/curve25519-dalek"
|
|
documentation = "https://docs.rs/curve25519-dalek"
|
|
categories = ["cryptography", "no-std"]
|
|
keywords = ["cryptography", "ristretto", "curve25519", "ECC"]
|
|
description = "A pure-Rust implementation of group operations on Ristretto and Curve25519"
|
|
exclude = [
|
|
"**/.gitignore",
|
|
".gitignore",
|
|
".travis.yml",
|
|
]
|
|
build = "build.rs"
|
|
|
|
[package.metadata.docs.rs]
|
|
rustdoc-args = ["--html-in-header", ".cargo/registry/src/github.com-1ecc6299db9ec823/curve25519-dalek-0.13.2/rustdoc-include-katex-header.html"]
|
|
features = ["nightly"]
|
|
|
|
[badges]
|
|
travis-ci = { repository = "dalek-cryptography/curve25519-dalek", branch = "master"}
|
|
|
|
[dev-dependencies]
|
|
sha2 = "0.7"
|
|
serde_cbor = "0.6"
|
|
criterion = "0.2"
|
|
|
|
[[bench]]
|
|
name = "dalek_benchmarks"
|
|
harness = false
|
|
|
|
# Note: we generate precomputed tables by building the crate twice: once as
|
|
# part of build.rs, and then once "for real".
|
|
#
|
|
# This means that the [dependencies] and [build-dependencies] sections must
|
|
# match exactly, since the build.rs uses the crate itself as a library.
|
|
|
|
[dependencies]
|
|
digest = "0.7"
|
|
generic-array = "0.9"
|
|
clear_on_drop = "=0.2.3"
|
|
subtle = { version = "0.6", features = ["generic-impls"], default-features = false }
|
|
serde = { version = "1.0", optional = true }
|
|
rand = { version = "0.4", optional = true }
|
|
|
|
[build-dependencies]
|
|
digest = "0.7"
|
|
generic-array = "0.9"
|
|
clear_on_drop = "=0.2.3"
|
|
subtle = { version = "0.6", features = ["generic-impls"], default-features = false }
|
|
serde = { version = "1.0", optional = true }
|
|
# Allowing rand to be optional during builds causes a build failure when compiling for no_std targets
|
|
rand = { version = "0.4", optional = false }
|
|
|
|
[features]
|
|
nightly = ["radix_51", "subtle/nightly", "clear_on_drop/nightly"]
|
|
default = ["std"]
|
|
std = ["rand", "subtle/std"]
|
|
alloc = []
|
|
yolocrypto = ["avx2_backend"]
|
|
# Radix-51 arithmetic using u128
|
|
radix_51 = []
|
|
# Include precomputed basepoint tables. This is off by default so that build.rs can generate the tables, and then re-enabled by build.rs in the main-stage compilation.
|
|
precomputed_tables = []
|
|
# experimental avx2 support
|
|
avx2_backend = ["nightly"]
|