Implement profiler
This commit is contained in:
21
aes.hpp
21
aes.hpp
@@ -3,29 +3,13 @@
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
class FiniteFieldCalculator
|
||||
{
|
||||
private:
|
||||
uint16_t irreducible_polynomial;
|
||||
public:
|
||||
FiniteFieldCalculator(uint16_t irreducible_polynomial);
|
||||
template <typename T>
|
||||
T add(T a, T b) const {
|
||||
return a ^ b;
|
||||
}
|
||||
uint8_t mult2(uint8_t value) const;
|
||||
uint8_t mult3(uint8_t value) const;
|
||||
uint8_t reduce(uint16_t value) const;
|
||||
uint16_t get_irreducible_polynomial() const;
|
||||
};
|
||||
|
||||
class AES
|
||||
{
|
||||
private:
|
||||
static const uint8_t sbox[256];
|
||||
static const uint8_t rsbox[256];
|
||||
static const uint8_t rc[10];
|
||||
static const FiniteFieldCalculator ffcalc;
|
||||
static const uint8_t irreducible_polynomial;
|
||||
public:
|
||||
AES();
|
||||
static void encrypt_ecb(uint8_t data[16], const uint8_t key[16]);
|
||||
@@ -36,6 +20,9 @@ public:
|
||||
static void sub_bytes(uint8_t data[16]);
|
||||
static void mix_columns(uint8_t data[16]);
|
||||
static void print_data(uint8_t data[16]);
|
||||
static uint8_t gf_mult2(uint8_t value);
|
||||
static uint8_t gf_mult3(uint8_t value);
|
||||
static uint8_t gf_reduce(uint8_t value);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user