Skip to content

A C++17 wrapper for the AES and RSA encryption systems

License

Notifications You must be signed in to change notification settings

Muller-Castro/Cipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cipher

A C++17 wrapper for the AES-128/192/256 (all CBC) and RSA encryption systems

The Cipher class is intended to be a secure and very easy-to-use interface:

AES

using namespace encryption;

const std::string text("Sensitive information");

const std::string key("3994160DCB240A39BA7B8B479B534DF551716BC21A66285937965C14FD7565B5"),
		  iv ("735DA18098E045F012E59B9BBA63DA69");

auto e_text = Cipher::encrypt(text, key, iv, Cipher::KeyLength::H_256);

assert(Cipher::decrypt(e_text) == text);

RSA

using namespace encryption;

const std::string text("Sensitive information");

srand(time(nullptr));

auto e_text = Cipher::encrypt(text);
	   // Cipher::encrypt(text, seed); can be used to call 'srand(seed)' if 'seed != 1'

auto[e, n]    = e_text.get_public_keys();
auto[d, p, q] = e_text.get_private_keys();

assert(Cipher::decrypt(e_text) == text);

Please see the Main.cpp file for more details.

About

A C++17 wrapper for the AES and RSA encryption systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published