La bibliothèque d'hydrogène est une petite bibliothèque cryptographique difficile à utiliser et dure à l'emploi.
Caractéristiques:
- API de haut niveau cohérente, inspirée de la libsodium. Au lieu de primitives de bas niveau, il expose des fonctions simples pour résoudre des problèmes communs que la cryptographie peut résoudre.
- 100% construit à l'aide de deux blocs de construction cryptographiques: la courbe elliptique Curve25519 et la permutation Gimli.
- Petit et facile à auditer. Implémenté comme un minuscule fichier pour chaque ensemble de fonctionnement, et l'ajout d'un seul fichier
.c à votre projet est tout ce qu'il faut pour utiliser le libhydrogène dans votre projet. - L'ensemble du code est publié sous une seule licence très libérale (ISC).
- Attributions de mémoire dynamique zéro et exigences de pile faibles (médiane: 32 octets, max: 128 octets). Cela le rend utilisable dans des environnements limités tels que les microcontrôleurs.
- Portable: écrit en standard C99. Prend en charge Linux, * BSD, MacOS, Windows et l'ide Arduino hors de la boîte.
- Peut générer des nombres aléatoires cryptographiquement-sécurisés, même sur les planches Arduino.
- Tente d'atténuer les implications d'une utilisation abusive accidentelle, même sur des systèmes avec un PRG et / ou pas d'horloge peu fiable.
Non-Goals:
- Avoir plusieurs primitives servant le même objectif, même pour assurer la compatibilité avec d'autres bibliothèques.
- Réseautage - Mais une simple API d'échange de clés basée sur le protocole de bruit est disponible, et une API de transport basée sur Strobe sera mise en œuvre.
- Interopérabilité avec d'autres bibliothèques.
- Remplacement de la libsodium. Le libhydrogène essaie de maintenir le nombre d'API et la taille du code au minimum.
Documentation en libhydrogène
La documentation est maintenue dans le wiki libhydrogène.
Le code libhydrogène hérité (tirant parti de Xchacha20, Siphashx, Blake2Sx, Curve25519) reste disponible dans la branche V0.
Contributeurs
Contributeurs de code
Ce projet existe grâce à toutes les personnes qui contribuent. [Contribuer].