Go to file
Lucas Gabriel Vuotto b793cb5b69 cipher/chacha20: rename chacha20_x to chacha20_common 2024-06-07 00:29:25 +00:00
lib initial import 2024-05-31 10:59:58 +00:00
wycheproof wycheproof: add a failfast mode 2024-06-06 17:12:41 +00:00
.gitignore Make .gitignore ignore all the obj/ directories 2024-05-31 11:48:43 +00:00
Makefile initial import 2024-05-31 10:59:58 +00:00
Makefile.inc auth: add HMAC implementation 2024-06-06 12:41:44 +00:00
README ct/lc_ct_cmp: improve interface 2024-06-06 13:49:25 +00:00
aead.c initial import 2024-05-31 10:59:58 +00:00
aead.h initial import 2024-05-31 10:59:58 +00:00
aead_chacha20_poly1305.c cipher/chacha20: rename chacha20_x to chacha20_common 2024-06-07 00:29:25 +00:00
auth.c Fix *_ctx_new and *_ctx_free implementations 2024-06-06 11:45:30 +00:00
auth.h Fix *_ctx_new and *_ctx_free implementations 2024-06-06 11:45:30 +00:00
auth_hmac.c auth/hmac: 0-pad the hashed key in longer-than-blocksize case 2024-06-06 17:14:30 +00:00
auth_hmac.h auth: add HMAC implementation 2024-06-06 12:41:44 +00:00
auth_poly1305.c Fix *_ctx_new and *_ctx_free implementations 2024-06-06 11:45:30 +00:00
auth_poly1305.h initial import 2024-05-31 10:59:58 +00:00
cipher.c Fix *_ctx_new and *_ctx_free implementations 2024-06-06 11:45:30 +00:00
cipher.h Fix *_ctx_new and *_ctx_free implementations 2024-06-06 11:45:30 +00:00
cipher_chacha20.c cipher/chacha20: rename chacha20_x to chacha20_common 2024-06-07 00:29:25 +00:00
cipher_chacha20.h cipher/chacha20: rename chacha20_x to chacha20_common 2024-06-07 00:29:25 +00:00
ct.c ct/lc_ct_cmp: improve interface 2024-06-06 13:49:25 +00:00
hash.c Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
hash.h Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
hash_sha384_sha512.c Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
hash_sha384_sha512.h Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
impl_chacha20.c initial import 2024-05-31 10:59:58 +00:00
impl_chacha20.h cipher/chacha20: buffer the full input block 2024-06-07 00:29:17 +00:00
impl_hmac.h auth: add HMAC implementation 2024-06-06 12:41:44 +00:00
impl_poly1305.c initial import 2024-05-31 10:59:58 +00:00
impl_poly1305.h initial import 2024-05-31 10:59:58 +00:00
impl_sha512.c Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
impl_sha512.h Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
lilcrypto.h auth: add HMAC implementation 2024-06-06 12:41:44 +00:00
util.c util/hexdump_line: fix space padding 2024-06-06 00:56:20 +00:00
util.h Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
wycheproof_aead.c ct/lc_ct_cmp: improve interface 2024-06-06 13:49:25 +00:00
wycheproof_mac.c ct/lc_ct_cmp: improve interface 2024-06-06 13:49:25 +00:00

README

lilcrypto
=========

> They see me rollin', they hatin'.

Experiment on rolling my own crypto. Kinda. I'm not creating any new
protocol, but implementing known algorithms and constructions. The main
focus is to understand how to implement the math behind the algorithms,
and to get to know the constructions better.

Algorithms
==========

Utilities
---------

- Constant-time operations
  - [x] compare

Hash
----

- [x] SHA-384
- [x] SHA-512 (needed for Ed25519)

Authentication
--------------

- [x] HMAC
- [x] Poly1305

Ciphers
-------

- [x] ChaCha20
- [ ] XChaCha20

AEAD
----

- [x] ChaCha20-Poly1305
- [ ] XChaCha20-Poly1305

ECC
---

- Curve25519
  - [ ] Ed25519 (EdDSA)
  - [ ] X25519 (ECDH)

Nice-to-haves
=============

Utilities
---------

- [ ] Portable Makefile
- [ ] NaCl interface
- [ ] signify interface

Hash
----

- [ ] SHA-256 & SHA-224 (the latter is a truncated form of the former)
- [ ] SHA-512/224 & SHA-512/256 (most of the work done)

Authentication
--------------

- [ ] GMAC

Ciphers
-------

- [ ] AES
- [ ] Camellia
- [ ] Salsa20 (no Wycheproof test vector suite)
- [ ] XSalsa20 (no Wycheproof test vector suite)

AEAD
----

- [ ] AES-GCM
- [ ] Camellia-GCM
- [ ] Salsa20-Poly1305 (no Wycherproof test vector suite)
- [ ] XSalsa20-Poly1305 (no Wycherproof test vector suite)

KDF
---

- [ ] HKDF