aes_cbc.h

来自「压缩软件源码」· C头文件 代码 · 共 40 行

H
40
字号
// AES_CBC.h

#ifndef __AES_CBC_H
#define __AES_CBC_H

#include "aescpp.h"

class CAES_CBC: public AESclass
{
protected:
  Byte _prevBlock[16];
public:
  void Init(const Byte *iv)
  {
    for (int i = 0; i < 16; i++)
      _prevBlock[i] = iv[i];
  }
  void Encode(const Byte *inBlock, Byte *outBlock)
  {
    int i;
    for (i = 0; i < 16; i++)
      _prevBlock[i] ^= inBlock[i];
    enc_blk(_prevBlock, outBlock);
    for (i = 0; i < 16; i++)
      _prevBlock[i] = outBlock[i];
  }

  void Decode(const Byte *inBlock, Byte *outBlock)
  {
    dec_blk(inBlock, outBlock);
    int i;
    for (i = 0; i < 16; i++)
      outBlock[i] ^= _prevBlock[i];
    for (i = 0; i < 16; i++)
      _prevBlock[i] = inBlock[i];
  }
};

#endif

⌨️ 快捷键说明

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