24,855
社区成员
发帖
与我相关
我的任务
分享
void DES_Process(const char *keyString, byte *block, size_t length, CryptoPP::CipherDir direction){
using namespace CryptoPP;
byte key[DES_EDE3::KEYLENGTH];
memset(key, 0, DES_EDE3::KEYLENGTH);
memcpy(key, keyString, DES_EDE3::KEYLENGTH);
BlockTransformation *t = NULL;
if(direction == ENCRYPTION) {
t = new DES_EDE3_Encryption(key, DES_EDE3::KEYLENGTH);
}else {
t = new DES_EDE3_Decryption(key, DES_EDE3::KEYLENGTH);
}
int steps = length / t->BlockSize();
int offset;
for(int i=0; i<steps; i++){
offset = i * t->BlockSize();
t->ProcessBlock(block + offset);
}
delete t;
}