支持GCM的AES 256不可能在iOS?
目前AES 256 is CBC
支持的encryption模式AES 256 is CBC
。 但是我想使用GCM
模式的AES 256 encryption
和PKCS5Padding / PKCS7Padding
。
请让我知道如何做到这一点?
Common Crypto不支持GCM。 但在Security.framework中有一个AES GCM的实现,您可以添加自己的头文件来使用它。 但是关联的数据(AEAD)不起作用。
从SO回答 soyer:
CCCryptorStatus CCCryptorGCM( CCOperation op, // kCCEncrypt, kCCDecrypt CCAlgorithm kCCAlgorithmAES, const void *key, size_t keyLength, const void *iv, size_t ivLen, const void *aData, size_t aDataLen, // does not work const void *dataIn, size_t dataInLength, void *dataOut, const void *tag, size_t *tagLength);
在github上有一个实现AES GCM ,与Common Crypto相比似乎合理。 使用风险自负。