Skip to content

This is a introduction project showcasing how to use the OpenSSL EVP API (openssl/evp.h) for implementing various cryptographic techniques using C++.

Notifications You must be signed in to change notification settings

Laxical/openssl-evp-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenSSL-EVP-C++

This project demonstrates how to use the OpenSSL EVP API (openssl/evp.h) in C++ to implement various cryptographic techniques. It serves as an introductory guide to the powerful features provided by OpenSSL's EVP API, covering the following areas:

  • Hashing: Securely hash data using various algorithms.
  • Key Generation: Create cryptographic keys for signing, encryption, and decryption tasks.
  • Signing: Use private keys to sign data for authentication purposes.
  • Verifying: Verify signatures to ensure data integrity and authenticity.

Features

  • Comprehensive examples of hashing, signing, and verifying.
  • Demonstrates how to handle cryptographic key generation.
  • A clean and structured approach to using the EVP API in C++.

Prerequisites

Ensure the following dependencies are installed:

OpenSSL Installation

On Ubuntu/Debian-based Systems:

sudo apt-get install openssl

On Arch-based Systems:

sudo pacman -S openssl

Development Tools

  • GCC or Clang compiler
  • make utility

Getting Started

Building the Program

  1. Clean Previous Builds Remove any existing compiled files:

    make clean
  2. Compile the Program Build the main executable:

    make main
  3. Run the Program Execute the compiled program using:

    ./object/main

    Alternatively, you can use the following command:

    make exec

Example Usage

Demonstrate cryptographic techniques like:

  • Hashing a message
  • Generating and saving cryptographic keys
  • Signing a message with a private key
  • Verifying the signature with a public key

Refer to the source code for detailed examples.


License

This project is licensed under both the OpenSSL License and the Apache License 2.0. For more details, refer to the LICENSE file or the links below:


Acknowledgments

This project utilizes the OpenSSL library, an industry-standard tool for secure communication and cryptographic operations.

About

This is a introduction project showcasing how to use the OpenSSL EVP API (openssl/evp.h) for implementing various cryptographic techniques using C++.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published