Implement profiler

This commit is contained in:
2019-05-14 15:03:14 +02:00
parent 3887b041f6
commit 702c37656f
5 changed files with 37 additions and 51 deletions

21
aes.hpp
View File

@@ -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