curve25519-dalek
algebra
Our great sponsors
curve25519-dalek | algebra | |
---|---|---|
5 | 4 | |
827 | 538 | |
2.4% | 2.2% | |
8.2 | 8.6 | |
1 day ago | 19 days ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
curve25519-dalek
- Elliptic Curves: The Great Mystery
-
Looking for good (low level?) Elliptic Curve library
Much of what you'll find highly visibly will be high-level libraries, but look at their dependencies. For example, from the ed25519 library you may find ed25519-dalek, and from there you could find curve25519-dalek which deals in point encodings and that like. (I don't know these particular libraries; they might help or just serve as an example of a viable exploration path).
-
Identity element in ECC
What lib are you using? I would probably suggest to use the Ristretto Group abstraction for safety. The curve25519-dalek crate has that.
-
How mathematically intense can theoretical cryptography get?
Grabbing an abstraction like the Ristretto Group with implementations available curve25519-dalek, can get you very far. You can build stuff like ECIES, Diffie-Hellman, Schnorr Signatures, Aggregated Signatures, etc, without requiring entering the details of EC math.
-
Biscuit authentication/authorization tokens are released in v1.0
curve25519-dalek for the cryptographic implementation of Ristretto
algebra
-
Müsli - An experimental binary serialization framework with more choice
Love seeing the work on modes! There's definitely a use for this in cryptography, where you might want to serialize things containing elliptic curve points, which can be serialized in both "compressed" form and "uncompressed" form. We make extensive use of this in our serialization framework in arkworks: https://github.com/arkworks-rs/algebra/tree/master/serialize
-
What application will make Rust its prime ?
Rust takes the cake in the blockchain space: Substrate, Cosmos (CosmWasm), and Solana. All of the zero knowledge cryptography libraries used for layer 2 solutions are written in Rust, compiling to Wasm (see arkworks, Risc0). Ethereum's next version of smart contracts will even use a restricted subset of Wasm ("Ewasm") instead of EVM.
-
Example of how of `disallowed_method` Clippy lint in Rust 1.54 can be quite handy
Is ark a prefix Embark is using for all their Rust crates, or is it a one-off name for your future crate? If so, it might collide with our naming convention in the arkworks ecosystem: arkworks.rs
-
Best way to enforce correctness of modular arithmetic?
You can take a look at our approach in the arkworks library: https://github.com/arkworks-rs/algebra/blob/920070c60d481a29fb3c262ef9579f34cbb053a6/ff/src/fields/macros.rs#L103
What are some alternatives?
rust-crypto - A (mostly) pure-Rust implementation of various cryptographic algorithms.
mathjs - An extensive math library for JavaScript and Node.js
ed25519-dalek - Fast and efficient ed25519 signing and verification in Rust.
gridiron - Rust finite field library with fixed size multi-word values
rust-openssl - OpenSSL bindings for Rust
rust - Empowering everyone to build reliable and efficient software.
octavo - Highly modular & configurable hash & crypto library
borrowme - The missing compound borrowing for Rust.
suruga - [INACTIVE] TLS 1.2 implementation in Rust
Git - Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitgadget.github.io/). Please follow Documentation/SubmittingPatches procedure for any of your improvements.
rustls - A modern TLS library in Rust
parking_lot - Compact and efficient synchronization primitives for Rust. Also provides an API for creating custom synchronization primitives.