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: written in standard C99. 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.
22 lines
1.1 KiB
Plaintext
22 lines
1.1 KiB
Plaintext
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: written in standard C99. 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.
|