Я разрабатываю приложение для iPhone, где я подключаюсь к веб-сервису. Чтобы отправить пароль пользователя, я хочу его зашифровать. Для этого я создал пару открытых / закрытых ключей, закрытый ключ находится на сервере для расшифровки пароля, а открытый - в приложении iPhone, где я шифрую пароль. Я создал пару с:
$ openssl genrsa -out private.pem 1024
$ openssl rsa -in private.pem -out public.pem -outform PEM -pubout
Когда я шифрую сообщение, я использую этот код для создания SecCertificateRef:
NSData *certData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"wspublickey" ofType:@"pem"]];
SecCertificateRef cert = SecCertificateCreateWithData(kCFAllocatorDefault, (__bridge CFDataRef)certData);
После этой инструкции cert == nil я провожу много времени, пытаясь понять пост об этом (я понимаю слезу асимметричных ключей, но я совершенно неопытен в ее реализации). Мои выводы заключаются в том, что мой сертификат не заслуживает доверия, и поэтому SecCertificateCreateWithData возвращает ноль. У меня вопрос, как я должен зашифровать свои данные, если я не хочу платить доверенный сертификат? Извините за плохое понимание реализации шифрования данных с помощью сертификата открытого ключа RЯ, но я потерялся и не знаю, как мне решить эту проблему. Спасибо за вашу помощь. Сообщение прочитано:
«сертификат недоверенного сервера» на iPhone
http://omegadelta.net/2011/01/17/ios-untrusted-server-certificate/
http://lists.apple.com/archives/apple-cdsa/2009/Jun/msg00012.html
Все, что я хочу, это сделать эквивалент команды:
$ openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl