rijndael.hpp
来自「7Zip软件实现: 七种编码格式的压缩与解压缩功能。」· HPP 代码 · 共 38 行
HPP
38 行
#ifndef _RIJNDAEL_H_#define _RIJNDAEL_H_/************************************************************************** * This code is based on Szymon Stefanek AES implementation: * * http://www.esat.kuleuven.ac.be/~rijmen/rijndael/rijndael-cpplib.tar.gz * * * * Dynamic tables generation is based on the Brian Gladman's work: * * http://fp.gladman.plus.com/cryptography_technology/rijndael * **************************************************************************/#define _MAX_KEY_COLUMNS (256/32)#define _MAX_ROUNDS 14#define MAX_IV_SIZE 16class Rijndael{ public: enum Direction { Encrypt , Decrypt }; private: void keySched(byte key[_MAX_KEY_COLUMNS][4]); void keyEncToDec(); void encrypt(const byte a[16], byte b[16]); void decrypt(const byte a[16], byte b[16]); void GenerateTables(); Direction m_direction; byte m_initVector[MAX_IV_SIZE]; byte m_expandedKey[_MAX_ROUNDS+1][4][4]; public: Rijndael(); void init(Direction dir,const byte *key,byte *initVector); int blockEncrypt(const byte *input, int inputLen, byte *outBuffer); int blockDecrypt(const byte *input, int inputLen, byte *outBuffer);}; #endif // _RIJNDAEL_H_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?