Algorithms and Protocols Implemented in the Project (OOP C++ and C):
1- ECC (Elliptic Curve Math, ECC, Domain Parameters, Standard Curves, Key Pair Generation)
2- ECDH(E) (Elliptic Curve Diffie-Hellman [Ephemeral], Shared Secret Generation)
3- ECDSA (Elliptic Curve Digital Signature Algorithm with Arbitrary Hash Function. e.g. BLAKE2b)
4- EC ElGamal (EC ElGamal Encryption and EC ElGamal Signature)
5- ECIES (Elliptic Curve Integrated Encryption Scheme, Key Derivation Function [KDF] based on Argon2id, MAC, Twofish Symmetric Encryption)
6- HMAC (BLAKE2b, SHA-3 Family, SHA-2 Family)
Libraries and Codes Used in the Project:
1- GMP
2- Givaro
3- OpenSSL (Only Hash Functions e.g. SHA) (BLAKE2 and Argon2 are computed independently)
4- Argon2
5- BLAKE2
6- Twofish Encryption (Neil Ferguson’s Twofish C library)
Tested on Ubuntu 22.04.4 LTS
Compiled using GCC 11.4.0 x86_64-linux-gnu
If you find any bugs or improvements, please let me know.
Terms of Use & Disclaimer:
This project is developed for educational purposes. Use it at your own risk!
With inspiration and help from projects:
https://github.com/poojagarg/ECC
and