Шифрование 3des в проблеме заполнения iPhone

У меня проблема с использованием шифрования 3DES в приложении для iPhone. У меня есть 9-байтовое сообщение, которое нужно зашифровать. Когда я использую kCCOptionECBMode, первый 8-байтовый блок зашифрован правильно (у меня есть образец результата, созданный сервером). Как я могу зашифровать последний байт? Когда я использую kCCOptionPKCS7Padding или kCCOptionECBMode| kCCOptionPKCS7Padding, он дает неправильный результат со статусом kCCBufferTooSmall. Я просмотрел несколько сообщений, связанных с шифрованием 3DES на SO, но мне это не помогло.

 ccStatus = CCCrypt(kCCEncrypt,
                       kCCAlgorithm3DES,
                       kCCOptionECBMode,
                       vkey, 
                       kCCKeySize3DES,
                       vinitVec,
                       vplainText,
                       plainTextBufferSize,
                       (void *)bufferPtr,
                       [data length],
                       &movedBytes);

person Arun    schedule 07.08.2013    source источник


Ответы (1)


Проблема была с параметром длины данных. Я должен рассчитать длину данных после заполнения и передать их функции.

person Arun    schedule 07.08.2013