В настоящее время режим шифрования поддерживается AES 256 is CBC
. Но я хочу использовать AES 256 encryption
с режимом GCM
вместе с PKCS5Padding / PKCS7Padding
.
Дайте мне знать, как это можно сделать?
В настоящее время режим шифрования поддерживается AES 256 is CBC
. Но я хочу использовать AES 256 encryption
с режимом GCM
вместе с PKCS5Padding / PKCS7Padding
.
Дайте мне знать, как это можно сделать?
Common Crypto не поддерживает GCM. Но есть реализация AES GCM в Security.framework, и вы можете добавить свой собственный файл заголовка, чтобы использовать его. Однако связанные данные (AEAD) не работают.
Из SO Ответ Сойера:
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. Используйте на свой риск.