Go to file
Lucas Gabriel Vuotto cef67c9f09 Merge most of internal headers into internal.h
Fix the includes accordingly and get rid of some unused ones.
2024-06-17 21:52:07 +00:00
lib initial import 2024-05-31 10:59:58 +00:00
wycheproof hash/sha512: add SHA-512/224 and SHA-512/256 variants 2024-06-17 14:41:20 +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 hash: implement SHA-{224,256} 2024-06-07 03:14:21 +00:00
README README: add hexdump to utils 2024-06-17 14:41:38 +00:00
aead.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
aead_chacha20_poly1305.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
auth.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
auth_hmac.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
auth_poly1305.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
cipher.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
cipher_chacha20.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
ct.c ct/cmp: save the final shift by switching the direction of shifts 2024-06-11 02:29:00 +00:00
hash.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
hash_sha224_sha256.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
hash_sha384_sha512.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
impl_chacha20.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
impl_poly1305.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
impl_sha256.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
impl_sha512.c Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
internal.h Merge most of internal headers into internal.h 2024-06-17 21:52:07 +00:00
lilcrypto.h hash/sha512: add SHA-512/224 and SHA-512/256 variants 2024-06-17 14:41:20 +00:00
util.c Zap dangling whitespaces 2024-06-10 17:44:20 +00:00
util.h Add hash interface and SHA-{384,512} implementations 2024-06-06 12:40:38 +00:00
wycheproof_aead.c Make params struct non-const 2024-06-09 15:09:15 +00:00
wycheproof_mac.c hash/sha512: add SHA-512/224 and SHA-512/256 variants 2024-06-17 14:41:20 +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
- Hexdump

Hash
----

- [x] SHA-224
- [x] SHA-256
- [x] SHA-384
- [x] SHA-512
- [x] SHA-512/224 & SHA-512/256

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

- [x] HMAC
- [x] Poly1305

Ciphers
-------

- [x] ChaCha20
- [x] XChaCha20

AEAD
----

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

ECC
---

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

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

Utilities
---------

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

Hash
----

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