Нет описания

Frank Denis b3be73e470 Backport hydro_sign from v1 8 лет назад
impl b3be73e470 Backport hydro_sign from v1 8 лет назад
tests 7e52f1c008 Update test vectors after 3ed17947e8ebfc6ab25500e28ff956db1db5d03c 8 лет назад
.clang-format b19dc672b9 Update .clang-format 9 лет назад
.gitignore 751d5da7f2 Update .gitignore 9 лет назад
.travis.yml bb4450eeba Travis: drop OSX CI builds 9 лет назад
LICENSE 9d902424e7 Doc update, logo, Travis badge 9 лет назад
Makefile 804f24469e Add a key exchange API 9 лет назад
Makefile.arduino 804f24469e Add a key exchange API 9 лет назад
README.md 0994dcf685 Use. 8 лет назад
hydrogen.c 804f24469e Add a key exchange API 9 лет назад
hydrogen.h b3be73e470 Backport hydro_sign from v1 8 лет назад
logo.png 9d902424e7 Doc update, logo, Travis badge 9 лет назад

README.md

Build Status

libhydrogen

The Hydrogen library is a small, easy-to-use, hard-to-misuse cryptographic library for constrained environments.

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.
  • Under the hood, it uses modern cryptographic primitives (BLAKE2X, SipHash, XChaCha20, X25519) and follows the current best practices.
  • 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. 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.

Non-goals:

  • Having multiple primitives serving the same purpose, even to provide compatibility with other libraries.
  • Networking -- but a simple key exchange API based on the Noise protocol is available.
  • Replacing libsodium. Libhydrogen focuses on being small and is for environments where libsodium cannot be used.

Libhydrogen documentation

The documentation is maintained in the libhydrogen wiki.

Warning

This is a work in progress.