This project is a C++ library that contains a set of classes that implement, using openssl
under the hood, the following cryptographic functions :
- AES 256 GCM :
- Key generation, encryption and decryption
- RSA :
- Key generation, encryption, decryption, message digest (with SHA256) sing and verify
- SHA256 :
- Hashing of arbitrary strings
- UTILITIES :
- String padding
- Random string generation
- Read/write/delete files
- Base 64 encoding of
std::vector<unsigned char>
- Base 64 decoding of strings
This project was developed on Ubuntu 20.04.6 LTS
cmake :
$ sudo apt install cmake
openssl :
$ sudo apt install libssl-dev
doxygen :
$ sudo apt install doxygen
graphviz :
$ sudo apt install graphviz
Download the repository
$ git clone https://github.com/andresOchoaHernandez/EncryptedCommunication
Enter the repo, create a build folder and compile :
$ cd EncryptedCommunication
$ mkdir build
$ cd build
# Configure CMake
$ cmake ..
# Build
$ make
# Run all the tests
$ make test
Some tests are very long, so if you want to run a specific test do :
# List all available tests
$ ctest -N
# Execute one test
$ ctest -R <test_name>