19 releases
0.9.3 | Nov 30, 2023 |
---|---|
0.9.1 | Oct 11, 2022 |
0.9.0 | Jun 14, 2020 |
0.8.1 | Mar 10, 2020 |
0.3.0 | Dec 31, 2017 |
#2305 in Cryptography
Used in 2 crates
(via libhydrogen)
45KB
502 lines
The Hydrogen library is a small, easy-to-use, hard-to-misuse cryptographic library.
Features:
- Consistent high-level API, inspired by libsodium. Instead of low-level primitives, it exposes simple functions to solve common problems that cryptography can solve.
- 100% built using just two cryptographic building blocks: the Curve25519 elliptic curve, and the Gimli permutation.
- Small and easy to audit. Implemented as one tiny file for every set of operation, and adding a single
.c
file to your project is all it takes to use libhydrogen in your project. - The whole code is released under a single, very liberal license (ISC).
- Zero dynamic memory allocations and low stack requirements (median: 32 bytes, max: 128 bytes). This makes it usable in constrained environments such as microcontrollers.
- Portable. Supports Linux, *BSD, MacOS, Windows, and the Arduino IDE out of the box.
- Can generate cryptographically-secure random numbers, even on Arduino boards.
- Attempts to mitigate the implications of accidental misuse, even on systems with an unreliable PRG and/or no clock.
This crate implement low-level Rust bindings, that don't require any external dependencies.
The libhydrogen crate provides a high-level idiomatic interface.
Libhydrogen documentation
No runtime deps
~0–2.1MB
~43K SLoC