Crypto++ DefaultEncryptor/DefaultDecryptor scheme
Crypto++ DefaultEncryptor/DefaultDecryptor scheme
我正在尝试使用带有加密 的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中提供。对于需要旧算法的人,他们可以使用LegacyEncryptor
,LegacyDecryptor
,LegacyEncryptorWithMAC
和LegacyDecryptorWithMAC
。
保留了Mash
功能,以使事情变得不那么复杂。如果这些是新类,他们将使用HKDF
提取和扩展熵。并使用PBKDF磨损派生的键。由于旧和新需要支持,我们选择了单源解决方案。据我所知,MASH功能符合安全目标。
如果您不是使用主人,则还可以更改default.h
中的以下键入以适合您的口味。但是,之后您需要重新编译库:
-
typedef DES_EDE2 DefaultBlockCipher;
-
typedef SHA DefaultHashModule;
-
typedef HMAC<DefaultHashModule> DefaultMAC;