Files
AES/AES_HPP.hpp
samsonjaw faaa11b3b5 Add files via upload
add pkcs7 and ECB
2024-03-17 15:12:46 +08:00

49 lines
1.3 KiB
C++

#ifndef AES_HPP
#define AES_HPP
#include<iostream>
#include<cstring>
#include<string>
#include<iomanip>
using namespace std;
extern unsigned char S_BOX[256];
extern unsigned char INV_S_BOX[256];
extern unsigned char RCON[11];
extern unsigned char Mix[4][4];
extern unsigned char InvMix[4][4];
void KeyExpansion(const unsigned char* key, unsigned char* ExpandKey);
void KeyScheduleCore(unsigned char roundNumber, const unsigned char keyIn[4], unsigned char keyOut[4]);
void AddRoundKey(unsigned char state[4][4], const unsigned char RoundKey[4][4]);
void SubBytes(unsigned char state[4][4]);
void ShiftRows(unsigned char state[4][4]);
void MixColumns(unsigned char state[4][4]);
void InvSubBytes(unsigned char state[4][4]);
void InvShiftRows(unsigned char state[4][4]);
void InvMixColumns(unsigned char state[4][4]);
unsigned char G_Multi(unsigned char a, unsigned char b);
void encrypt(unsigned char* plaintext, unsigned char* key, unsigned char* output);
void decrypt(unsigned char* ciphertext, unsigned char* key, unsigned char* output);
void encryptECB(int textLength, unsigned char* plaintext, unsigned char* key, unsigned char* output);
void decryptECB(int textLength, unsigned char* plaintext, unsigned char* key, unsigned char* output);
#endif // AES_HPP