Ответ 1
Я не специалист по шифрованию, но у меня такая же проблема, и я подумал об обходном пути, возможно, все будет хорошо, пока некоторые не найдут реальное решение.
все, что я сделал, - это указать, какой iOS запущен, а для 6+ я меняю вызов CCCrypt на отсутствие прокладки (0 - без заполнения, 1 - перечисление для kCCOptionPKCS7Padding)
float version = [[UIDevice currentDevice].systemVersion floatValue];
if (version >= 6)
{
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, 0,
keyPtr, kCCKeySizeAES128,
ivPtr,
[self bytes], dataLength,
buffer, bufferSize,
&numBytesDecrypted );
if( cryptStatus == kCCSuccess )
{
return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];
}
free( buffer );
return nil;
}
else
{
CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, 1,
keyPtr, kCCKeySizeAES128,
ivPtr,
[self bytes], dataLength,
buffer, bufferSize,
&numBytesDecrypted );
if( cryptStatus == kCCSuccess )
{
return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];
}
free( buffer );
return nil;
}