Мне нужно зашифровать строку на iPhone и отправить ее на веб-службу .Net для дешифрования. Я могу зашифровать/расшифровать на iPhone и с .Net, но зашифрованные строки с iPhone не могут быть расшифрованы .Net. Ошибка, которую я получаю, - "Заполнение недопустима и не может быть удалено".
Код .Net: http://blog.realcoderscoding.com/index.php/2008/07/dot-net-encryption-simple-aes-wrapper/
Код iPhone использует пример кода: http://nootech.wordpress.com/2009/01/17/symmetric-encryption-with-the-iphone-sdk/
AFAIK мои настройки клавиш одинаковы:
result.BlockSize = 128; // iPhone: kCCBlockSizeAES128
result.KeySize = 128; // kCCBlockSizeAES128
result.Mode = CipherMode.CBC;
result.Padding = PaddingMode.PKCS7; // kCCOptionPKCS7Padding
Я пробовал разные способы генерации зашифрованного текста. hello/hello:
e0PnmbTg/3cT3W + 92CDw1Q == в .Net
yrKe5Z7p7MNqx9 + CbBvNqQ == на iPhone
и "openssl enc -aes-128-cbc -nosalt -a -in hello.txt -pass pass: hello" генерирует: QA + Ul + r6Zmr7yHipMcHSbQ ==
Обновление: Я разместил здесь рабочий код.