mirror of
https://github.com/Relintai/pandemonium_engine_minimal.git
synced 2025-01-04 20:59:36 +01:00
42 lines
764 B
C++
42 lines
764 B
C++
#ifndef AES_CONTEXT_H
|
|
#define AES_CONTEXT_H
|
|
|
|
/* aes_context.h */
|
|
|
|
|
|
#include "core/crypto/crypto_core.h"
|
|
#include "core/object/reference.h"
|
|
|
|
class AESContext : public Reference {
|
|
GDCLASS(AESContext, Reference);
|
|
|
|
public:
|
|
enum Mode {
|
|
MODE_ECB_ENCRYPT,
|
|
MODE_ECB_DECRYPT,
|
|
MODE_CBC_ENCRYPT,
|
|
MODE_CBC_DECRYPT,
|
|
MODE_MAX
|
|
};
|
|
|
|
private:
|
|
Mode mode;
|
|
CryptoCore::AESContext ctx;
|
|
PoolByteArray iv;
|
|
|
|
protected:
|
|
static void _bind_methods();
|
|
|
|
public:
|
|
Error start(Mode p_mode, PoolByteArray p_key, PoolByteArray p_iv = PoolByteArray());
|
|
PoolByteArray update(PoolByteArray p_src);
|
|
PoolByteArray get_iv_state();
|
|
void finish();
|
|
|
|
AESContext();
|
|
};
|
|
|
|
VARIANT_ENUM_CAST(AESContext::Mode);
|
|
|
|
#endif // AES_CONTEXT_H
|