Use virtual destructors

This commit is contained in:
Michele Rodolfi 2020-12-13 20:25:52 +01:00
parent fb4519eea5
commit aa6f287a19
2 changed files with 12 additions and 5 deletions

View File

@ -11,7 +11,7 @@ namespace horcrux {
enum class Mode { kEncrypt, kDecrypt };
class Cipher {
protected:
public:
Cipher() = delete;
explicit Cipher(Mode m) : mode(m) { }
Cipher(Mode m, const std::vector<unsigned char>& key) :
@ -20,6 +20,9 @@ protected:
Cipher(Mode m, std::vector<unsigned char>&& key) :
mode(m), encryption_key(key) {}
virtual ~Cipher() = default;
protected:
std::vector<unsigned char> encryption_key;
public:
@ -58,6 +61,8 @@ public:
throw std::invalid_argument("Invalid key size");
}
virtual ~AES256_CBC() = default;
std::vector<unsigned char> process(
const std::vector<unsigned char>& inputdata) override;
std::vector<unsigned char> encrypt(

View File

@ -10,16 +10,14 @@ namespace horcrux {
class Input {
public:
virtual ~Input() = default;
virtual std::vector<unsigned char> read() = 0;
};
class Output {
public:
virtual ~Output() = default;
virtual size_t write(const std::vector<unsigned char>& data) = 0;
};
class PlainInput : public Input {};
class CryptoInput : public Input {};
class PlainOutput : public Output {};
class CryptoOutput : public Output {};
class FsPlainInput : public Input {
std::filesystem::path file_path;
@ -29,6 +27,7 @@ class FsPlainInput : public Input {
public:
explicit FsPlainInput(const std::string& path);
virtual ~FsPlainInput() = default;
std::vector<unsigned char> read() override;
};
@ -39,6 +38,7 @@ class FsCryptoInput : public Input{
public:
explicit FsCryptoInput(const std::vector<std::string>& filenames);
virtual ~FsCryptoInput() = default;
std::vector<unsigned char> read() override;
};
@ -48,6 +48,7 @@ class FsPlainOutput : public Output {
public:
explicit FsPlainOutput(const std::string& filename);
virtual ~FsPlainOutput() = default;
size_t write(const std::vector<unsigned char>& to_write) override;
};
@ -64,6 +65,7 @@ public:
FsCryptoOutput(const std::string& folder, const int horcrux_num,
const std::string& filename = "horcrux",
const size_t horcrux_size = 0);
virtual ~FsCryptoOutput() = default;
size_t write(const std::vector<unsigned char>& to_write) override;
};
}; // namespace horcrux