#crypto #libhydrogen #curve25519 #gimli

sys libhydrogen-sys

Low-level bindings for the Hydrogen cryptography library

17 unstable releases

0.9.1 Oct 11, 2022
0.9.0 Jun 14, 2020
0.8.2 Apr 3, 2020
0.8.1 Mar 10, 2020
0.3.0 Dec 31, 2017

#371 in Cryptography

Download history 40/week @ 2022-08-09 15/week @ 2022-08-16 45/week @ 2022-08-23 19/week @ 2022-08-30 44/week @ 2022-09-06 37/week @ 2022-09-13 16/week @ 2022-09-20 29/week @ 2022-09-27 45/week @ 2022-10-04 36/week @ 2022-10-11 10/week @ 2022-10-18 35/week @ 2022-10-25 40/week @ 2022-11-01 34/week @ 2022-11-08 32/week @ 2022-11-15 16/week @ 2022-11-22

129 downloads per month
Used in 2 crates (via libhydrogen)

ISC license

45KB
499 lines

dependency status

libhydrogen-sys

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–1.7MB
~34K SLoC