Sen descrición

wuhanstudio c4026f56e9 random: log error rather than abort in the main thread %!s(int64=3) %!d(string=hai) anos
.github 29349296f5 SARIF uploads don't work with ShiftLeft %!s(int64=5) %!d(string=hai) anos
cmake c879a1d572 WASI: move the stack before globals %!s(int64=5) %!d(string=hai) anos
examples d0371ed2c7 Add RT-Thread examples %!s(int64=3) %!d(string=hai) anos
impl c4026f56e9 random: log error rather than abort in the main thread %!s(int64=3) %!d(string=hai) anos
tests 4a477649e6 Reindent %!s(int64=4) %!d(string=hai) anos
tis-ci c96e6d2cec Initial TrustInSoft CI configuration %!s(int64=5) %!d(string=hai) anos
.clang-format 4a477649e6 Reindent %!s(int64=4) %!d(string=hai) anos
.cmake-format.json e21d8c6a97 cmake: Expand Arduino toolchain and tidy up flags %!s(int64=6) %!d(string=hai) anos
.gitignore da795dafb7 cmake: Add Arduino cross-compiling and package gen %!s(int64=6) %!d(string=hai) anos
.travis.yml 0b7870d512 Travis: use Bionic %!s(int64=6) %!d(string=hai) anos
CMakeLists.txt baa6ec7cdc updated CMakeLists to enable configuration with cmake 3.1+ %!s(int64=5) %!d(string=hai) anos
LICENSE e66f27ab85 2022 %!s(int64=4) %!d(string=hai) anos
Makefile 7bd39c471d -march -> -mcpu %!s(int64=3) %!d(string=hai) anos
Makefile.arduino f26b0e1b96 Update Makefile.arduino %!s(int64=4) %!d(string=hai) anos
Makefile.particle de3f2cfabd Add basic support for Particle targets %!s(int64=6) %!d(string=hai) anos
README.md 702f94f492 Add TIS CI badge to README.md %!s(int64=5) %!d(string=hai) anos
SConscript d0371ed2c7 Add RT-Thread examples %!s(int64=3) %!d(string=hai) anos
build.zig 01c32862f6 Add Zig build file %!s(int64=4) %!d(string=hai) anos
hydrogen.c 4a477649e6 Reindent %!s(int64=4) %!d(string=hai) anos
hydrogen.h 4a477649e6 Reindent %!s(int64=4) %!d(string=hai) anos
library.properties b32a298622 Update library.properties %!s(int64=4) %!d(string=hai) anos
logo.png 00aa116d9b Recompress logo %!s(int64=6) %!d(string=hai) anos
tis.config c96e6d2cec Initial TrustInSoft CI configuration %!s(int64=5) %!d(string=hai) anos

README.md

Build status CodeQL scan Financial Contributors on Open Collective Coverity Scan Build Status TrustInSoft CI

libhydrogen

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.

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, and a STROBE-based transport API will be implemented.
  • Interoperability with other libraries.
  • Replacing libsodium. Libhydrogen tries to keep the number of APIs and the code size down to a minimum.

Libhydrogen documentation

The documentation is maintained in the libhydrogen wiki.

The legacy libhydrogen code (leveraging XChaCha20, SipHashX, BLAKE2SX, Curve25519) remains available in the v0 branch.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].