一次性加密方法CCCrypt
的签名是这样的(从CommonCryptor.h
):参数的如何让CCCrypt在另一种模式下计算AES?
CCCryptorStatus CCCrypt(
CCOperation op, /* kCCEncrypt, etc. */
CCAlgorithm alg, /* kCCAlgorithmAES128, etc. */
CCOptions options, /* kCCOptionPKCS7Padding, etc. */
const void *key,
size_t keyLength,
const void *iv, /* optional initialization vector */
const void *dataIn, /* optional per op and alg */
size_t dataInLength,
void *dataOut, /* data RETURNED here */
size_t dataOutAvailable,
size_t *dataOutMoved)
没有一个似乎接受CCMode
值(也许鬼祟,因为所有的枚举是整数?)。我曾尝试将它与CCOptions
参数结合使用,但无济于事。这两个枚举不是选项,也不能毫不含糊地结合在一起。
它没有明确记录在那里,但我从我在网上发现的与kCCAlgorithmAES
使用的模式是CBC的东西中猜测。
如何更改AES模式CCCrypt
的用途?
如果您有权访问ECB或CBC,实现其他模式非常容易。唯一的挑战是正确实现每块加密的计数器。 –
@ArtjomB。是的,不,我不会自己去执行加密方法。这样只有厄运和疯狂的谎言。 – Raphael
@zaph - 我希望看到你回答这个问题。你没有基于Apple Common Crypto的加密库吗? – jww