Doxygen adjustment, and better directory name for GCryptLib

This commit is contained in:
Leonetienne
2022-05-16 22:19:20 +02:00
parent acf9dea387
commit 7c556e5b3d
26 changed files with 4 additions and 2 deletions

View File

@@ -0,0 +1,39 @@
#pragma once
#include "Feistel.h"
#include "Flexblock.h"
namespace Leonetienne::GCrypt {
/** Class to apply a block cipher to messages of arbitrary length in a distributed manner
*/
class Cipher {
public:
explicit Cipher(const Block& key);
explicit Cipher(const std::string& password);
Cipher(const Cipher& other) = delete;
Cipher(Cipher&& other) noexcept = delete;
~Cipher();
//! Will set the key
void SetKey(const Block& key);
//! Will set the key from a password
void SetPassword(const std::string& password);
//! Will encipher a flexblock of data
Flexblock Encipher(const Flexblock& data, bool printProgress = false) const;
//! Will decipher a flexblock of data
Flexblock Decipher(const Flexblock& data, bool printProgress = false) const;
private:
Block key;
//! Will zero the memory used by the key
void ZeroKeyMemory();
// Initial value for cipher block chaining
Block initializationVector;
};
}