#ifndef AESBASE_CPP_ #define AESBASE_CPP_ #include #include namespace aes_base{ std::vector encrypt(std::vector PlainMatrix, std::vector & RoundKeyMatrix); std::vector decrypt(std::vector CipherMatrix, std::vector & RoundKeyMatrix); void _byte_sub(std::vector & Matrix, bool Inverse); void _shift_row(std::vector & Matrix, bool Inverse); void _mix_columns(std::vector & Matrix, bool Inverse); void _add_round_key(std::vector & Matrix, std::vector::iterator MatBegin); unsigned char _g_mul(unsigned char Value, unsigned char Factor); extern const std::vector< std::vector > _SBox; extern const std::vector< std::vector > _SBoxInv; extern const unsigned _MatDim; extern const unsigned _ByteSize; extern const unsigned _RoundNumber; extern const unsigned _BlockSize; }; #endif