2018-10-06 20:39:24 -07:00
|
|
|
#pragma once
|
2015-06-28 22:35:25 -07:00
|
|
|
|
2017-12-28 23:57:54 -08:00
|
|
|
#include <cstdint>
|
|
|
|
#include <cstdlib>
|
2015-06-28 22:35:25 -07:00
|
|
|
#include <memory>
|
|
|
|
|
2018-12-07 21:21:47 -08:00
|
|
|
namespace nod {
|
2015-06-28 22:35:25 -07:00
|
|
|
|
2018-12-07 21:21:47 -08:00
|
|
|
class IAES {
|
2015-06-28 22:35:25 -07:00
|
|
|
public:
|
2018-12-07 21:21:47 -08:00
|
|
|
virtual ~IAES() = default;
|
|
|
|
virtual void encrypt(const uint8_t* iv, const uint8_t* inbuf, uint8_t* outbuf, size_t len) = 0;
|
|
|
|
virtual void decrypt(const uint8_t* iv, const uint8_t* inbuf, uint8_t* outbuf, size_t len) = 0;
|
|
|
|
virtual void setKey(const uint8_t* key) = 0;
|
2015-06-28 22:35:25 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
std::unique_ptr<IAES> NewAES();
|
|
|
|
|
2018-12-07 21:21:47 -08:00
|
|
|
} // namespace nod
|