Table of Contents
A miniature implementation of openssl implementing several encryption and hashing algorithms, namely:
- md5
- sha-256
- base64
- des-ecb
- des-cbC
- des-pcbc
- des3-ecb
- des3-cbc
- des3-pcbc
- scrypt
ft_ssl
is developed in C using gcc
, with no outside dependencies.
No outside dependencies are required, outside of a C compiler and Make.
- Clone the repo
git clone https://github.com/travmatth/ft_ssl.git
- Compile
ft_ssl
make
export DES_KEY="C0FFEE69DEADBEEF"
export DES_IV=0011223344556677
echo "We can encode base64" | ./ft_ssl base64
echo "And decode it" | ./ft_ssl base64 | ./ft_ssl base64 -d
echo "We can encrypt with DES3" | ./ft_ssl des3 -a -k "$DES_KEY" -v "$DES_IV" -o out.txt
# and decrypt it
./ft_ssl des3 -a -k "$DES_KEY" -v "$DES_IV" -i out.txt -d
./ft_ssl des3 -p "we can also generate secure keys using scrypt"
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Travis Matthews
Project Link: https://github.com/travmatth/ft_ssl
This project was created for educational use ONLY, and is NOT intended for use in secure commincations or production systems.
- http://page.math.tu-berlin.de/~kant/teaching/hess/krypto-ws2006/des.htm
- https://csrc.nist.gov/csrc/media/publications/fips/81/archive/1980-12-02/documents/fips81.pdf
- https://csrc.nist.gov/csrc/media/publications/fips/46/3/archive/1999-10-25/documents/fips46-3.pdf
- https://crypto.stackexchange.com/questions/9674/how-does-des-decryption-work-is-it-the-same-as-encryption-or-the-reverse
- https://en.wikipedia.org/wiki/DES_supplementary_material
- https://en.wikipedia.org/wiki/S-box
- https://www.di-mgt.com.au/cryptopad.html