Perpustakaan Hidrogen adalah perpustakaan kriptografi yang kecil, mudah digunakan, sulit untuk diucapkan.
Fitur:
- API tingkat tinggi yang konsisten, terinspirasi oleh libsodium. Alih-alih primitif tingkat rendah, ia memaparkan fungsi sederhana untuk menyelesaikan masalah umum yang dapat dipecahkan oleh kriptografi.
- 100% dibangun hanya menggunakan dua blok bangunan kriptografi: kurva kurva Curve25519, dan permutasi Gimli.
- Kecil dan mudah diaudit. Diimplementasikan sebagai satu file kecil untuk setiap set operasi, dan menambahkan satu file
.c ke proyek Anda adalah semua yang diperlukan untuk menggunakan libhydrogen dalam proyek Anda. - Seluruh kode dirilis di bawah lisensi tunggal, sangat liberal (ISC).
- Alokasi memori nol dinamis dan persyaratan tumpukan rendah (median: 32 byte, maks: 128 byte). Ini membuatnya dapat digunakan dalam lingkungan yang terbatas seperti mikrokontroler.
- Portabel: Ditulis dalam standar C99. Mendukung Linux, *BSD, MacOS, Windows, dan IDE Arduino di luar kotak.
- Dapat menghasilkan angka acak yang aman secara kriptografis, bahkan di papan Arduino.
- Upaya untuk mengurangi implikasi dari penyalahgunaan yang tidak disengaja, bahkan pada sistem dengan PRG dan/atau tanpa jam yang tidak dapat diandalkan.
Non-Goals:
- Memiliki banyak primitif melayani tujuan yang sama, bahkan untuk memberikan kompatibilitas dengan perpustakaan lain.
- Jaringan-tetapi API pertukaran kunci sederhana berdasarkan protokol kebisingan tersedia, dan API transportasi berbasis strobe akan diimplementasikan.
- Interoperabilitas dengan perpustakaan lain.
- Mengganti Libsodium. Libhydrogen mencoba menjaga jumlah API dan ukuran kode hingga minimum.
Dokumentasi libhydrogen
Dokumentasi dipertahankan dalam wiki libhydrogen.
Kode libhydrogen lama (memanfaatkan Xchacha20, Siphashx, Blake2SX, Curve25519) tetap tersedia di cabang V0.
Kontributor
Kontributor Kode
Proyek ini ada berkat semua orang yang berkontribusi. [Menyumbang].