Added a FeistelManager to en/decipher arbitrarily long messages using cipher block chaining

This commit is contained in:
Leonetienne
2021-12-06 00:39:58 +01:00
parent 61a74f89a5
commit 4855869e54
8 changed files with 202 additions and 10 deletions

View File

@@ -1,10 +1,27 @@
#pragma once
#include <iostream>
#include "Util.h"
#include "Feistel.h"
#include "FeistelMan.h"
int main()
{
FeistelMan feistel("Password yo");
const std::string message = "I am a veeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeery long message!";
std::cout << "Cleartext: " << message << std::endl;
// Encrypt
const Flexblock ciphertext = feistel.Encipher(StringToBits(message));
const std::string cipherHex = BitsToHexstring(ciphertext);
std::cout << "Ciphertext: " << cipherHex << std::endl;
// Decrypt
const Flexblock cleartextBits = feistel.Decipher(HexstringToBits(cipherHex));
std::cout << "Decrypted: " << BitsToString(cleartextBits) << std::endl;
return 0;
}