⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myaes.cpp_without_extern_c

📁 由7-zip提供的压缩、解压缩程序
💻 CPP_WITHOUT_EXTERN_C
字号:
// Crypto/AES/MyAES.cpp#include "StdAfx.h"#include "windows.h"#include "MyAES.h"#include "Windows/Defs.h"#include "AES_CBC.h"static const int kAESBlockSize = 16;#include "aesopt.h" class CTabInit{public:  CTabInit() { gen_tabs();}} g_TabInit;STDMETHODIMP CAESFilter::Init(){  return S_OK;}STDMETHODIMP_(UInt32) CAESFilter::Filter(Byte *data, UInt32 size){  if (size > 0 && size < kAESBlockSize)    return kAESBlockSize;  UInt32 i;  for (i = 0; i + kAESBlockSize <= size; i += kAESBlockSize)  {    Byte outBlock[kAESBlockSize];    SubFilter(data + i, outBlock);    for (int j = 0; j < kAESBlockSize; j++)      data[i + j] = outBlock[j];  }  return i;}STDMETHODIMP CAESFilter::SetInitVector(const Byte *data, UInt32 size){  if (size != 16)    return E_INVALIDARG;  AES.Init(data);  return S_OK;}STDMETHODIMP CAESEncoder::SetKey(const Byte *data, UInt32 size){  if (AES.enc_key(data, size) != aes_good)    return E_FAIL;  return S_OK;}void CAESEncoder::SubFilter(const Byte *inBlock, Byte *outBlock){  AES.Encode(inBlock, outBlock);}STDMETHODIMP CAESDecoder::SetKey(const Byte *data, UInt32 size){  if (AES.dec_key(data, size) != aes_good)    return E_FAIL;  return S_OK;}void CAESDecoder::SubFilter(const Byte *inBlock, Byte *outBlock){  AES.Decode(inBlock, outBlock);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -