Apple SSL Secure Transport
Я только начал работать с OS X и не имею никакого опыта с ним вообще. Но все, что я хочу сейчас сделать, это заменить старый код OpenSSL на Apple Security API. Я использую безопасный транспорт, и меня немного смущают эти функции: SSLSetIOFuncs
, SSLWrite
, а также SSLRead
,
Так SSLSetIOFuncs
устанавливает обратные вызовы, которые выполняют операции записи / чтения (которые я должен реализовать). И тут возникает много вопросов:
- Во-первых, я просто не понимаю, почему я должен это реализовывать (в OpenSSL это уже реализовано). Но хорошо, я просто должен.
- Должна ли эта реализация быть зашифрована? Я думаю, нет.
Также есть следующие 2 функции:
OSStatus
SSLWrite (SSLContextRef context,
const void * __nullable data,
size_t dataLength,
size_t *processed);
OSStatus
SSLRead (SSLContextRef context,
void * data,
size_t dataLength,
size_t *processed);
И они "Нормальное чтение / запись на уровне приложения". согласно комментариям кода. Так почему же мне нужно определить эти 2 обратных вызова для чтения и записи? И если первые двое являются обратными вызовами, какие функции мне следует вызывать для чтения / записи в моем коде (когда мне действительно нужно прочитать некоторые данные с сервера)?
Там нет хорошей документации, и я застрял со всем этим. Может быть, я просто слишком свалена, но небольшая помощь была бы просто идеальной в любом случае. Пожалуйста помоги!
1 ответ
SecureTransport основан на обратном вызове, в отличие от OpenSSL SSL_read()
а также SSL_write()
функции. Это может потребовать больших изменений в вашем коде. Если вы хотите read
/write
в стиле API, который может использовать SecureTransport для шифрования, посмотреть на CFNetwork и, в частности, CFStream