Cuberite
A lightweight, fast and extensible game server for Minecraft
AesCfb128Encryptor.h
Go to the documentation of this file.
1 
2 // AesCfb128Encryptor.h
3 
4 // Declares the cAesCfb128Encryptor class encrypting data using AES CFB-128
5 
6 
7 
8 
9 
10 #pragma once
11 
12 #include "mbedtls/aes.h"
13 
14 
15 
16 
17 
20 {
21 public:
22  cAesCfb128Encryptor(void);
24 
26  void Init(const Byte a_Key[16], const Byte a_IV[16]);
27 
29  void ProcessData(Byte * a_EncryptedOut, const Byte * a_PlainIn, size_t a_Length);
30 
32  bool IsValid(void) const { return m_IsValid; }
33 
34 protected:
35  mbedtls_aes_context m_Aes;
36 
38  Byte m_IV[16];
39 
41  bool m_IsValid;
42 } ;
43 
44 
45 
46 
47 
void Init(const Byte a_Key[16], const Byte a_IV[16])
Initializes the decryptor with the specified Key / IV.
Byte m_IV[16]
The InitialVector, used by the CFB mode encryption.
void ProcessData(Byte *a_EncryptedOut, const Byte *a_PlainIn, size_t a_Length)
Encrypts a_Length bytes of the plain data; produces a_Length output bytes.
bool m_IsValid
Indicates whether the object has been initialized with the Key / IV.
Encrypts data using the AES / CFB (128) algorithm.
bool IsValid(void) const
Returns true if the object has been initialized with the Key / IV.
unsigned char Byte
Definition: Globals.h:117
mbedtls_aes_context m_Aes