mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-18 08:11:54 -06:00
3.13
This commit is contained in:
48
7zip/Crypto/AES/AES_CBC.h
Executable file
48
7zip/Crypto/AES/AES_CBC.h
Executable file
@@ -0,0 +1,48 @@
|
||||
// AES_CBC.h
|
||||
|
||||
#ifndef __AES_CBC_H
|
||||
#define __AES_CBC_H
|
||||
|
||||
#include "aescpp.h"
|
||||
|
||||
class CAES_CBCEncoder: public AESclass
|
||||
{
|
||||
BYTE _prevBlock[16];
|
||||
public:
|
||||
void Init(const BYTE *iv)
|
||||
{
|
||||
for (int i = 0; i < 16; i++)
|
||||
_prevBlock[i] = iv[i];
|
||||
}
|
||||
void ProcessData(BYTE *outBlock, const BYTE *inBlock)
|
||||
{
|
||||
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];
|
||||
}
|
||||
};
|
||||
|
||||
class CAES_CBCCBCDecoder: public AESclass
|
||||
{
|
||||
BYTE _prevBlock[16];
|
||||
public:
|
||||
void Init(const BYTE *iv)
|
||||
{
|
||||
for (int i = 0; i < 16; i++)
|
||||
_prevBlock[i] = iv[i];
|
||||
}
|
||||
void ProcessData(BYTE *outBlock, const BYTE *inBlock)
|
||||
{
|
||||
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
|
||||
Reference in New Issue
Block a user