Crypto++ DefaultEncryptor/DefaultDecryptor scheme

Crypto++ DefaultEncryptor/DefaultDecryptor scheme

本文关键字:scheme DefaultDecryptor DefaultEncryptor Crypto++      更新时间:2023-10-16

我正在尝试使用带有加密 的AES加密文件。我可以看到使用crypto 中的test.cpp的defaultencryptorwithmac/defaultDecryptorWithMac的函数EncryptFile和decryptfile。

void EncryptFile(const char *in, const char *out, const char *passPhrase)
{   
    FileSource f(in, true, new DefaultEncryptorWithMAC(passPhrase, new FileSink(out)));
}
void DecryptFile(const char *in, const char *out, const char *passPhrase)
{
   FileSource f(in, true, new DefaultDecryptorWithMAC(passPhrase, new FileSink(out)));
}

但是,我想使用AES,据我了解,默认加密方案是DES_EDE2。是否有可以处理此操作的构建?

我不需要Mac,所以类似于Defaultencryptor/defaultDecryptor类的类似方法就足够了。

我也将使用随机的secbyteblock而不是用封印为以下

// Generate a random key
SecByteBlock key(0x00, AES::DEFAULT_KEYLENGTH);
rnd.GenerateBlock( key, key.size() );

但是,我想使用AES,据我了解,默认加密方案是DES_EDE2。是否有可以处理此操作的构建?

项目更改了默认值。感兴趣的承诺是bfbcfeec7ca7,利益问题是第345页。它将在加密 5.7中提供。对于需要旧算法的人,他们可以使用LegacyEncryptorLegacyDecryptorLegacyEncryptorWithMACLegacyDecryptorWithMAC

保留了Mash功能,以使事情变得不那么复杂。如果这些是新类,他们将使用HKDF提取和扩展熵。并使用PBKDF磨损派生的键。由于旧和新需要支持,我们选择了单源解决方案。据我所知,MASH功能符合安全目标。

如果您不是使用主人,则还可以更改default.h中的以下键入以适合您的口味。但是,之后您需要重新编译库:

  • typedef DES_EDE2 DefaultBlockCipher;
  • typedef SHA DefaultHashModule;
  • typedef HMAC<DefaultHashModule> DefaultMAC;