Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка концепции безопасности безопасная транспортная ссылка

Опции
Развертывание Target:

На этой странице

Безопасная транспортная ссылка

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Не применимый

Objective C

@import Security;

Этот документ описывает общедоступный API для реализации протоколов версия 3.0 Уровня защищенных сокетов и версия 1.0 Безопасности Транспортного уровня.

В этой библиотеке нет никаких зависимостей от транспортного уровня; это может использоваться с Сокетами BSD и Открыть Transport среди других протоколов. Для пользований этой библиотекой необходимо обеспечить функции обратного вызова для выполнения фактического I/O на соединениях базовой сети. Вы также ответственны за установку необработанных сетевых соединений; Вы передаете в непрозрачной ссылке на базовый (связанный) объект в начале сеанса SSL в форме SSLConnectionRef объект.

Следующие термины используются в этом документе:

  • Клиент является инициатором сеанса SSL. Каноническим примером клиента является веб-браузер, связывающийся с HTTPS URL.

  • Сервер является объектом, принимающим запросы на сеансы SSL, сделанные клиентами. Примером является безопасный веб-сервер.

  • Сеанс SSL ограничен вызовами к функциям SSLHandshake и SSLClose. Активный сеанс находится в некотором состоянии между этими двумя вызовами, включительно.

  • Контекст сеанса SSL, или SSLContextRef, непрозрачная ссылка на состояние, связанное с одним сеансом. Контекст сеанса не может быть снова использован для многократных сеансов.

Для большинства приложений нужны только несколько функций в этом API, который обычно вызывают в следующей последовательности:

  1. Подготовка к сеансу

    1. Вызвать SSLNewContext (в OS X) или SSLCreateContext (в iOS и OS X) для создания нового контекста сеанса SSL.

    2. Запишите SSLWrite иSSLRead Функции I/O и вызов SSLSetIOFuncs передать их для Обеспечения Транспорта.

    3. Установите соединение с помощью CFNetwork, Сокетов BSD, или Откройте Transport. Тогда вызовите SSLSetConnection указать соединение, к которому применяется контекст сеанса SSL.

    4. Вызвать SSLSetPeerDomainName указать полностью определенное доменное имя коллеги, с которой Вы хотите соединиться (дополнительный, но наиболее рекомендуемый).

    5. Вызвать SSLSetCertificate указать сертификат, который будет использоваться в аутентификации (требуемый для серверной стороны, дополнительной для клиента).

  2. Запуск сеанса

    • Вызвать SSLHandshake выполнить квитирование SSL и установить безопасный сеанс.

  3. Поддержание сеанса

    • Для передачи данных по безопасному сеансу Безопасный Транспорт вызывает Ваш SSLWrite иSSLRead функции по мере необходимости (см. шаг 1b).

  4. Окончание сеанса

    1. Вызвать SSLClose закрыть безопасный сеанс.

    2. Закройте соединение и избавьтесь от ссылки соединения (SSLConnectionRef).

    3. Если Вы создали контекст путем вызова SSLNewContext, вызвать SSLDisposeContext избавляться от контекста сеанса SSL.

      Если Вы создали контекст путем вызова SSLCreateContext, выпустите контекст сеанса SSL путем вызова CFRelease.

    4. Если Вы вызвали SSLGetPeerCertificates для получения любых сертификатов вызвать CFRelease выпускать ссылочные объекты сертификата.

Во многих случаях проще использовать API CFNetwork, чем Безопасный Транспорт для реализации простого соединения с безопасным (HTTPS) URL. См. Руководство по программированию CFNetwork для документации API CFNetwork и примера кода CFNetworkHTTPDownload для примера кода, загружающего данные с URL. При указании HTTPS URL эта подпрограмма автоматически использует Безопасный Транспорт для шифрования потока данных.

Для функций, чтобы управлять и оценить сертификаты, см. Сертификат, Ключ, и Ссылку Trust Services и Сертификат, Ключ и Руководство по программированию Trust Services.

Функции

  • Указывает соединение I/O для определенного сеанса.

    Объявление

    Objective C

    OSStatus SSLSetConnection ( SSLContextRef context, SSLConnectionRef connection );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    connection

    Ссылка соединения на время сеанса SSL. Данные о соединении непрозрачны для Обеспечения Транспорта; можно установить его в любое значение, которое приложение может использовать для однозначного определения соединения в функциях обратного вызова SSLReadFunc и SSLWriteFunc.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Необходимо установить соединение прежде, чем создать безопасный сеанс. После вызова SSLNewContext функция для создания контекста сеанса SSL Вы вызываете SSLSetConnection функция для указания соединения, к которому применяется контекст. Вы указываете значение в connection параметр, который Ваши подпрограммы обратного вызова могут использовать для идентификации соединения. Это значение могло бы быть указателем на сокет (если Вы используете Сокеты API), или конечная точка (если Вы используете, Открывают Transport). Например, Вы могли бы создать сокет, запустить соединение на нем, создать ссылку контекста, бросить сокет к SSLConnectionRef, и затем передайте и ссылку контекста и ссылку соединения на SSLSetConnection функция.

    Обратите внимание на то, что Сокеты API являются предпочтительным сетевым интерфейсом для новой разработки.

    На клиентской стороне предполагается, что коммуникация была установлена с желаемым сервером на этом соединении. На серверной стороне предполагается, что соединение было установлено в ответ на входящий клиентский запрос.

    Эта функция должна быть вызвана до SSLHandshake функция; следовательно, эта функция может быть вызвана только, когда никакой сеанс не активен.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает соединение I/O — такое как сокет или конечная точка — для определенного сеанса.

    Объявление

    Objective C

    OSStatus SSLGetConnection ( SSLContextRef context, SSLConnectionRef *connection );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    connection

    По возврату, указателю на ссылку соединения на время сеанса. Если никакое соединение не было установлено с помощью SSLSetConnection функция, тогда этот параметр NULL по возврату.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Можно использовать эту функцию или на клиенте или на сервере для получения соединения, связанного с безопасным сеансом.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает опцию для определенного сеанса.

    Объявление

    Objective C

    OSStatus SSLSetSessionOption ( SSLContextRef context, SSLSessionOption option, Boolean value );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    option

    Опция сеанса SSL. Возможные значения перечислены в Опциях Сеанса SSL.

    value

    Набор к true включить опцию, или false отключить его.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Эта функция должна быть вызвана до SSLHandshake функция; следовательно, эта функция может быть вызвана только, когда никакой сеанс не активен.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

    См. также

    SSLGetSessionOption

  • Указывает текущую установку опции сеанса SSL.

    Объявление

    Objective C

    OSStatus SSLGetSessionOption ( SSLContextRef context, SSLSessionOption option, Boolean *value );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    option

    Опция сеанса SSL. Возможные значения перечислены в Опциях Сеанса SSL.

    value

    По возврату, true если опция включена, или false иначе.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

    См. также

    SSLSetSessionOption

  • Указывает функции обратного вызова, выполняющие операции сети I/O.

    Объявление

    Objective C

    OSStatus SSLSetIOFuncs ( SSLContextRef context, SSLReadFunc readFunc, SSLWriteFunc writeFunc );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    read

    Указатель на Вашу функцию обратного вызова чтения. Посмотрите SSLReadFunc для получения информации об определении этой функции.

    write

    Указатель на Вашу функцию обратного вызова записи. Посмотрите SSLWriteFunc для получения информации об определении этой функции.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Безопасный Транспорт вызывает Ваше чтение и функции обратного вызова записи для выполнения сети I/O. Необходимо определить эти функции перед вызовом SSLSetIOFuncs.

    Необходимо вызвать SSLSetIOFuncs до вызова SSLHandshake функция. SSLSetIOFuncs в то время как сеанс активен, не может быть вызван.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает требования для аутентификации клиентской стороны.

    Объявление

    Objective C

    OSStatus SSLSetClientSideAuthenticate ( SSLContextRef context, SSLAuthenticate auth );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    auth

    Флаг, устанавливающий требования для аутентификации клиентской стороны. Посмотрите Константы аутентификации SSL для возможных значений.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Эта функция может быть вызвана только серверами. Использование этой функции является дополнительным. Требование аутентификации по умолчанию kNeverAuthenticate. Эта функция может быть вызвана только, когда никакой сеанс не активен.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Выполняет квитирование SSL.

    Объявление

    Objective C

    OSStatus SSLHandshake ( SSLContextRef context );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    По успешному возврату сеанс готов к нормальной безопасной коммуникации с помощью функций SSLRead и SSLWrite.

    Если это находит какие-либо проблемы с цепочкой сертификата коллеги, Безопасный Транспорт прерывает квитирование. Можно использовать SSLCopyPeerCertificates функция для наблюдения цепочки сертификата коллеги. Эта функция может возвратить большое разнообразие кодов результата, включая следующее:

    • errSSLUnknownRootCert— У коллеги есть допустимая цепочка сертификата, но корень цепочки не является известным сертификатом привязки.

    • errSSLNoRootCert— Цепочка сертификата коллеги не была поддающейся проверке к корневому сертификату.

    • errSSLCertExpired— Цепочка сертификата коллеги имеет один или сертификаты более с истекшим сроком.

    • errSSLXCertChainInvalid— У коллеги есть недопустимая цепочка сертификата; например, верификация подписи в цепочке перестала работать, или никакие сертификаты не были найдены.

    • errSSLClientCertRequested— Сервер запросил клиентский сертификат. Этот результат возвращается, только если Вы вызвали SSLSetSessionOption функционируйте для установки kSSLSessionOptionBreakOnCertRequested опция. После получения этого результата необходимо вызвать SSLSetCertificate функционируйте, чтобы возвратить клиентский сертификат, и затем вызвать SSLHandshake снова возобновлять квитирование. Используйте SSLCopyDistinguishedNames функция для получения списка сертификатов, приемлемых для сервера.

    • errSSLServerAuthCompleted— Часть аутентификации сервера квитирования завершена. Этот результат возвращается, только если Вы вызвали SSLSetSessionOption функционируйте для установки kSSLSessionOptionBreakOnServerAuth опция, и предоставляет возможность для выполнения специализированной проверки сервера перед вызовом SSLHandshake снова продолжаться.

      Обратите внимание на то, что в OS X до версии 10.8, необходимо также явно вызвать SSLSetEnableCertVerify отключить проверку.

    Возвращаемое значение errSSLWouldBlock указывает что SSLHandshake функция должна быть вызвана снова, пока различный код результата не возвращается.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает состояние сеанса SSL.

    Объявление

    Objective C

    OSStatus SSLGetSessionState ( SSLContextRef context, SSLSessionState *state );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    state

    По возврату, точкам к константе, указывающей состояние сеанса SSL. Посмотрите Константы Состояния сеанса SSL для возможных значений.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает согласованную версию протокола активного сеанса.

    Объявление

    Objective C

    OSStatus SSLGetNegotiatedProtocolVersion ( SSLContextRef context, SSLProtocol *protocol );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    protocol

    По возврату, точкам к согласованной версии протокола активного сеанса.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата. Эта функция возвраты kSSLProtocolUnknown если никакой сеанс SSL не происходит.

    Обсуждение

    Эта функция получает версию SSL или протокола TLS, согласованного относительно сеанса. Обратите внимание на то, что согласованный протокол может не совпасть с Вашим предпочтительным протоколом, в зависимости от которых версий протокола Вы включили с SSLSetProtocolVersionEnabled функция. Эта функция может возвратить любое из следующих значений:

    • kSSLProtocol2

    • kSSLProtocol3

    • kTLSProtocol1

    • kSSLProtocolUnknown

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает данные, которые достаточны для однозначного определения коллеги текущего сеанса.

    Объявление

    Objective C

    OSStatus SSLSetPeerID ( SSLContextRef context, const void *peerID, size_t peerIDLen );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    peerID

    Указатель на буфер, содержащий коллегу данные ID для установки.

    peerIDLen

    Длина коллеги буфер данных ID.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Безопасный Транспорт использует коллегу ID, чтобы соответствовать коллеге сеанса SSL с коллегой предыдущего сеанса для возобновления прерванного сеанса. Если коллега соответствие IDs, Безопасный Транспорт пытается возобновить сеанс с теми же параметрами, как используется в предыдущем сеансе с той же коллегой.

    Данные, которые Вы предоставляете этой функции, обрабатываются как непрозрачный блоб Безопасным Транспортом, но являются сравненным байтом для байта с предыдущей коллегой значения данных ID, установленные текущим приложением. Примером коллеги данные ID является IP-адрес и порт, сохраненный некоторым частным на вызывающую сторону способом. Вызывание этой функции является дополнительным, но требуется, если Вы хотите, чтобы сеанс был resumable. Если Вы действительно вызываете эту функцию, необходимо вызвать ее до квитирования для текущего сеанса.

    Можно использовать SSLGetPeerID функция для получения коллеги данные ID для текущего сеанса.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает текущую коллегу данные ID.

    Объявление

    Objective C

    OSStatus SSLGetPeerID ( SSLContextRef context, const void **peerID, size_t *peerIDLen );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    peerID

    По возврату, точкам к буферу, содержащему коллегу данные ID.

    peerIDLen

    По возврату, длине коллеги буфер данных ID.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Если коллега данные ID для этого контекста не была установлена путем вызова SSLSetPeerID функция, эта функция возвращает a NULL указатель в peerID параметр, и 0 в peerIDLen параметр.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Определяет, сколько данных доступно, чтобы быть считанными.

    Объявление

    Objective C

    OSStatus SSLGetBufferedReadSize ( SSLContextRef context, size_t *bufSize );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    bufSize

    По возврату, размеру данных, которые будут считаны.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Эта функция определяет, сколько данных, как можно гарантировать, получите в вызове к SSLRead функция. Эта функция не блокирует или заставляет любые низкоуровневые операции чтения происходить.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Выполняет нормальную операцию чтения прикладного уровня.

    Объявление

    Objective C

    OSStatus SSLRead ( SSLContextRef context, void *data, size_t dataLength, size_t *processed );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    data

    По возврату, точкам к чтению данных. Необходимо выделить этот буфер прежде, чем вызвать функцию. Размер этого буфера должен быть равным или больше, чем значение в dataLength параметр.

    dataLength

    Объем данных требуется читать.

    processed

    По возврату, точкам к числу байтов фактически чтение.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    SSLRead функция могла бы вызвать SSLReadFunc функция, которую Вы обеспечиваете (см. SSLSetIOFuncs. Поскольку можно сконфигурировать базовое соединение для работы способом неблокирования, операция чтения могла бы возвратиться errSSLWouldBlock, указание, что было фактически передано меньше данных, чем требуемый. В этом случае необходимо повторить вызов к SSLRead пока не возвращается некоторый другой результат.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Выполняет нормальную операцию записи прикладного уровня.

    Объявление

    Objective C

    OSStatus SSLWrite ( SSLContextRef context, const void *data, size_t dataLength, size_t *processed );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    data

    Указатель на буфер данных для записи.

    dataLength

    Сумма, в байтах, данных для записи.

    processed

    По возврату, длине, в байтах, данных, фактически записанных.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    SSLWrite функция могла бы вызвать SSLWriteFunc функция, которую Вы обеспечиваете (см. SSLSetIOFuncs). Поскольку можно сконфигурировать базовое соединение для работы способом без блокирования, операция записи могла бы возвратиться errSSLWouldBlock, указание, что было фактически передано меньше данных, чем требуемый. В этом случае необходимо повторить вызов к SSLWrite пока не возвращается некоторый другой результат.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Завершает текущий сеанс SSL.

    Объявление

    Objective C

    OSStatus SSLClose ( SSLContextRef context );

    Параметры

    context

    Ссылка контекста сеанса SSL сеанса Вы хотите завершиться.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Определяет число поддерживаемых наборов шифров.

    Объявление

    Objective C

    OSStatus SSLGetNumberSupportedCiphers ( SSLContextRef context, size_t *numCiphers );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    numCiphers

    По возврату, точкам к числу поддерживаемых наборов шифров.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Когда Вы вызываете, Вы используете число включенных наборов шифров, возвращенных этой функцией SSLGetNumberSupportedCiphers функция для получения списка в настоящее время включаемых наборов шифров.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Определяет значения поддерживаемых наборов шифров.

    Объявление

    Objective C

    OSStatus SSLGetSupportedCiphers ( SSLContextRef context, SSLCipherSuite *ciphers, size_t *numCiphers );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    ciphers

    По возврату, точкам к значениям поддерживаемых наборов шифров. Перед вызовом необходимо выделить этот буфер с помощью числа поддерживаемых наборов шифров, полученных от вызова до SSLGetNumberSupportedCiphers функция.

    numCiphers

    Точки к числу поддерживаемых наборов шифров, которые Вы хотите, возвратились. Перед вызовом получите это значение путем вызова SSLGetNumberSupportedCiphers функция.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата. Если предоставленный буфер является слишком маленьким, errSSLBufferOverflow возвращается.

    Обсуждение

    Все поддерживаемые наборы шифров включены по умолчанию. Используйте SSLSetEnabledCiphers функция для включения подмножества поддерживаемых наборов шифров. Используйте SSLGetEnabledCiphers функция для определения, какие наборы шифров в настоящее время включаются.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает ограниченный набор наборов шифров SSL, которые будут включены текущим контекстом сеанса SSL.

    Объявление

    Objective C

    OSStatus SSLSetEnabledCiphers ( SSLContextRef context, const SSLCipherSuite *ciphers, size_t numCiphers );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    ciphers

    Указатель на наборы шифров для включения.

    numCiphers

    Число наборов шифров для включения.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Можно вызвать эту функцию, например, для ограничения наборов шифров теми, которые используют экспортные размеры ключа или для поддерживаемых определенной версией протокола.

    Эта функция может быть вызвана только, когда никакой сеанс не активен. Набор по умолчанию включенных наборов шифров является полным набором поддерживаемых наборов шифров, полученных путем вызова SSLGetSupportedCiphers функция.

    Вызовите SSLGetEnabledCiphers функция для определения, какие наборы шифров SSL в настоящее время включаются.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Решает, что число наборов шифров в настоящее время включало.

    Объявление

    Objective C

    OSStatus SSLGetNumberEnabledCiphers ( SSLContextRef context, size_t *numCiphers );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    numCiphers

    По возврату, точкам к числу включенных наборов шифров.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Когда Вы вызываете, Вы используете число включенных наборов шифров, возвращенных этой функцией SSLGetEnabledCiphers функция для получения списка в настоящее время включаемых наборов шифров.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Определяет, какие наборы шифров SSL в настоящее время включаются.

    Объявление

    Objective C

    OSStatus SSLGetEnabledCiphers ( SSLContextRef context, SSLCipherSuite *ciphers, size_t *numCiphers );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    ciphers

    По возврату, точкам к включенным наборам шифров. Перед вызовом необходимо выделить этот буфер с помощью числа включенных наборов шифров, полученных от вызова до SSLGetNumberEnabledCiphers функция.

    numCiphers

    Указатель на число включенных наборов шифров. Перед вызовом получите это значение путем вызова SSLGetNumberEnabledCiphers функция.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата. Если предоставленный буфер является слишком маленьким, errSSLBufferOverflow возвращается.

    Обсуждение

    Вызовите SSLSetEnabledCiphers функция для указания, какие наборы шифров SSL включены.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает набор шифров, согласованный относительно этого сеанса.

    Объявление

    Objective C

    OSStatus SSLGetNegotiatedCipher ( SSLContextRef context, SSLCipherSuite *cipherSuite );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    cipherSuite

    По возврату, точкам к набору шифров, согласованному относительно этого сеанса.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Необходимо вызвать эту функцию только, когда сеанс активен.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Неподдерживаемый.

    Объявление

    Objective C

    OSStatus SSLAddDistinguishedName ( SSLContextRef context, const void *derDN, size_t derDNLen );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    derDN

    Указатель на буфер, содержащий закодированное DER отличительное имя.

    derDNLen

    Значение типа size_t на представление размера буфера указывает параметр derDN.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Эта функция не была реализована и не поддерживается в это время.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Неподдерживаемый.

  • Получает отличительные имена приемлемых центров сертификации.

    Объявление

    Objective C

    OSStatus SSLCopyDistinguishedNames ( SSLContextRef context, CFArrayRef *names );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    names

    По возврату, массиву CFDataRef объекты, каждый представляющий одно закодированное DER относительное отличительное имя приемлемого центра сертификации. Необходимо вызвать CFRelease функционируйте для выпуска этого массива, когда Вы будете закончены с ним.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Если ссылка контекста представляет клиент, список отличительных имен предоставлен сервером; если ссылка контекста представляет сервер, список отличительных имен указан с SSLSetCertificateAuthorities функция.

    Массив, полученный этой функцией, подходит для использования в нахождении клиентских идентификационных данных (т.е. сертификат и связанный закрытый ключ), который соответствует требования сервера.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает сертификат или сертификаты этого соединения.

    Объявление

    Objective C

    OSStatus SSLSetCertificate ( SSLContextRef context, CFArrayRef certRefs );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    certRefs

    Сертификаты установленному. Этот массив содержит элементы типа SecCertificateRef, за исключением certRefs[0], который имеет тип SecIdentityRef.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Установка сертификата или сертификатов является обязательной для серверных соединений, но является дополнительной для клиентов. Указание сертификата для клиента включает аутентификацию клиентской стороны SSL. Необходимо поместить в certRefs[0] a SecIdentityRef объект, идентифицирующий листовой сертификат и его соответствующий закрытый ключ. Указание корневого сертификата является дополнительным; если это не указано, проверяющий корневой сертификат, цепочка сертификата, указанная здесь, должна присутствовать в наборе в масштабе всей системы доверяемых сертификатов привязки.

    Эта функция должна быть вызвана перед вызовом SSLHandshake, или сразу после SSLHandshake возвратился errSSLClientCertRequested (т.е. прежде чем квитирование возобновляется путем вызова SSLHandshake снова).

    Безопасный Транспорт принимает следующее:

    • Ссылки сертификата остаются допустимыми для времени жизни сеанса.

    • Идентификационные данные, указанные в certRefs[0] способно к подписанию.

    Требуемые возможности идентификационных данных, указанных в certRefs[0]— и дополнительного сертификата, указанного в SSLSetEncryptionCertificate функция — очень зависит от приложения. Например, для работы сервером с клиентами Netscape идентификационные данные, указанные здесь, должны быть способны и к подписанию и к шифрованию. Используйте SSLCopyDistinguishedNames функция для получения списка сертификатов, приемлемых для сервера.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает обменное состояние клиентского сертификата.

    Объявление

    Objective C

    OSStatus SSLGetClientCertificateState ( SSLContextRef context, SSLClientCertificateState *clientState );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    clientState

    По возврату, указателю на значение, указывающее состояние клиентского обмена сертификата. Посмотрите “SSL Client Certificate State Constants” для списка возможных значений.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Значение возвратилось, отражает последнее изменение в состоянии клиентского обмена сертификата. Если любая коллега инициирует попытку пересмотра, Безопасный Транспорт сбрасывает состояние к kSSLClientCertNone.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает сертификаты шифрования, используемые для этого соединения.

    Объявление

    Objective C

    OSStatus SSLSetEncryptionCertificate ( SSLContextRef context, CFArrayRef certRefs );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    certRefs

    Значение типа CFArrayRef обращение к массиву ссылок сертификата. Ссылки являются типом SecCertificateRef, за исключением certRefs[0], который имеет тип SecIdentityRef.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Используйте эту функцию в одном из следующих случаев:

    • Листовой сертификат, указанный в SSLSetCertificate функция не способна к шифрованию.

    • Листовой сертификат, указанный в SSLSetCertificate функция содержит ключ, который является слишком большим или сильным для юридического шифрования в этом сеансе. В этом случае более слабый сертификат указан здесь и используется для инициируемого в сервер ключевого обмена.

    Следующие предположения сделаны:

    • certRefs ссылки параметра остаются допустимыми для времени жизни соединения.

    • Указанное certRefs[0] значение способно к шифрованию.

    Эта функция может быть вызвана только, когда никакой сеанс не активен.

    Серверы SSL, осуществляющие SSL3 или спецификацию TLS1 к букве, не принимают сертификаты шифрования с размерами ключа, больше, чем 512 битов для экспортных шифров (т.е. для сеансов SSL с 40-разрядными сеансовыми ключами). Поэтому, если Вы хотите поддерживать экспортные шифры, и Ваш сертификат имеет ключ, больше, чем 512 битов, необходимо указать отдельный сертификат шифрования.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает доверительный объект управления для сертификата, используемого сеансом.

    Объявление

    Objective C

    OSStatus SSLCopyPeerTrust ( SSLContextRef context, SecTrustRef *trust );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    trust

    По возврату доверительный объект управления можно использовать для оценки доверия для сертификата, используемого сеансом. Доверительный объект управления включает сертификат, который будет проверен плюс политика или политики, которые будут использоваться в оценке доверия. См. Сертификат, Ключ и Ссылку Trust Services для функций, чтобы создать и оценить доверительные объекты управления. Необходимо вызвать CFRelease функция для этого объекта, когда Вы закончены с ним.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Эта функция допустима любое время после попытки квитирования.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает полностью определенное доменное имя коллеги.

    Объявление

    Objective C

    OSStatus SSLSetPeerDomainName ( SSLContextRef context, const char *peerName, size_t peerNameLen );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    peerName

    Полностью определенное доменное имя коллеги — например, store.apple.com. Имя находится в форме струны до, за исключением того, что NULL завершение является дополнительным.

    peerNameLen

    Число байтов передало в peerName параметр.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Можно использовать эту функцию для проверки поля общего названия в сертификате коллеги. Если Вы вызываете эту функцию, и общее название в сертификате не соответствует значение, которое Вы указываете в peerName параметр, затем квитируйте сбои и возвраты errSSLXCertChainInvalid. Использование этой функции является дополнительным.

    Эта функция может быть вызвана только, когда никакой сеанс не активен.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Определяет длину ранее равноправное доменное имя набора.

    Объявление

    Objective C

    OSStatus SSLGetPeerDomainNameLength ( SSLContextRef context, size_t *peerNameLen );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    peerNameLen

    По возврату, точкам к длине равноправного доменного имени.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Если Вы ранее вызвали SSLSetPeerDomainName функция для указания полностью определенного доменного имени для равноправного сертификата можно использовать SSLGetPeerDomainName функция для получения равноправного доменного имени. Прежде, чем сделать так, необходимо вызвать SSLGetPeerDomainNameLength функция для получения размера буфера, необходимого для доменного имени.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает равноправное доменное имя, указанное ранее.

    Объявление

    Objective C

    OSStatus SSLGetPeerDomainName ( SSLContextRef context, char *peerName, size_t *peerNameLen );

    Параметры

    context

    Ссылка контекста сеанса SSL.

    peerName

    По возврату, точкам к равноправному доменному имени.

    peerNameLen

    Указатель на длину равноправного доменного имени. Прежде, чем вызвать эту функцию, получите равноправную длину доменного имени путем вызывания функции SSLGetPeerDomainNameLength.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Если Вы ранее вызвали SSLSetPeerDomainName функция для указания полностью определенного доменного имени для равноправного сертификата можно использовать SSLGetPeerDomainName функция для получения доменного имени.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Возвраты CFTypeID для SSLContext объекты

    Объявление

    Objective C

    CFTypeID SSLContextGetTypeID ( void );

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Выделяет и возвращает новое SSLContextRef объект.

    Объявление

    Objective C

    SSLContextRef SSLCreateContext ( CFAllocatorRef alloc, SSLProtocolSide protocolSide, SSLConnectionType connectionType );

    Параметры

    alloc

    Средство выделения для использования. Передача NULL или kCFAllocatorDefault использовать средство выделения по умолчанию.

    protocolSide

    Также kSSLServerSide или kSSLClientSide.

    connectionType

    Также kSSLStreamType или kSSLDatagramType.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Обеспечивает самый большой пакет, что OS гарантирует, что может отправить без фрагментации.

    Объявление

    Objective C

    OSStatus SSLGetDatagramWriteSize ( SSLContextRef dtlsContext, size_t *bufSize );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    bufSize

    Адрес a size_t целое число для хранения длины.

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Обсуждение

    Несмотря на то, что любой пакет ниже этого порогового размера не будет фрагментирован OS, когда отправлено с помощью SSLWrite, эта функция не предоставляет гарантий о том, будет ли пакет фрагментирован маршрутизаторами в пути. Это значение размера равно максимальному размеру Записи Дейтаграммы (установленный путем вызова SSLSetMaxDatagramRecordSize) минус размер заголовка Записи DTLS.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает максимальный размер записи дейтаграммы (включая всю Дейтаграмму заголовки записи TLS) позволенный приложением для данного контекста SSL.

    Объявление

    Objective C

    OSStatus SSLGetMaxDatagramRecordSize ( SSLContextRef dtlsContext, size_t *maxSize );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    bufSize

    Адрес a size_t целое число для хранения длины.

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Обсуждение

    Приложение может указать новое значение путем вызова SSLSetMaxDatagramRecordSize, до максимального размера пакета UDP (который, в свою очередь, основывается на базовом протоколе IP).

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Позволили максимальную версию протокола приложением для данного контекста SSL.

    Объявление

    Objective C

    OSStatus SSLGetProtocolVersionMax ( SSLContextRef context, SSLProtocol *maxVersion );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    maxVersion

    Адрес SSLProtocol целое число, где должна быть сохранена максимальная версия. Посмотрите Константы Протокола SSL для списка возможных значений.

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Позволили минимальную версию протокола приложением для данного контекста SSL.

    Объявление

    Objective C

    OSStatus SSLGetProtocolVersionMin ( SSLContextRef context, SSLProtocol *minVersion );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    minVersion

    Адрес SSLProtocol целое число, где должна быть сохранена минимальная версия. Посмотрите Константы Протокола SSL для списка возможных значений.

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Устанавливает значение cookie, используемое в Дейтаграмме приветственное сообщение TLS.

    Объявление

    Objective C

    OSStatus SSLSetDatagramHelloCookie ( SSLContextRef dtlsContext, const void *cookie, size_t cookieLen );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    cookie

    Значение cookie.

    cookieLen

    Длина cookie (до 32 байтов).

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Обсуждение

    Эта функция должна быть вызвана только на серверной стороне и дополнительная. Cookie по умолчанию является cookie нулевой длины.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Получает максимальный размер записи дейтаграммы (включая всю Дейтаграмму заголовки записи TLS) позволенный приложением для данного контекста SSL.

    Объявление

    Objective C

    OSStatus SSLSetMaxDatagramRecordSize ( SSLContextRef dtlsContext, size_t maxSize );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    bufSize

    Значение длины.

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Обсуждение

    Приложение может указать новое значение до максимального размера пакета UDP (который, в свою очередь, основывается на базовом протоколе IP).

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Устанавливает максимальную версию протокола, позволенную приложением для данного контекста SSL.

    Объявление

    Objective C

    OSStatus SSLSetProtocolVersionMax ( SSLContextRef context, SSLProtocol maxVersion );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    maxVersion

    Новая максимальная версия (kTLSProtocol1, например). Посмотрите Константы Протокола SSL для полного списка.

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Устанавливает минимальную версию протокола, позволенную приложением для данного контекста SSL.

    Объявление

    Objective C

    OSStatus SSLSetProtocolVersionMin ( SSLContextRef context, SSLProtocol minVersion );

    Параметры

    dtlsContext

    Контекст SSL связался с соединением.

    minVersion

    Новая минимальная версия (kTLSProtocol1, например). Посмотрите Константы Протокола SSL для полного списка.

    Возвращаемое значение

    Возвраты 0 на успехе или коде ошибки от MacErrors.h.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

Обратные вызовы

  • Определяет указатель на специализированную функцию чтения, которые Защищают Транспортные вызовы для чтения данных из соединения.

    Объявление

    Objective C

    typedef OSStatus (*SSLReadFunc) ( SSLConnectionRef connection, void *data, size_t *dataLength );

    Параметры

    connection

    Ссылка соединения.

    data

    По возврату Ваш обратный вызов должен перезаписать память в этом расположении с данными, считанными из соединения.

    dataLength

    На вводе, указателе на целое число, представляющее длину данных в байтах. По возврату Ваш обратный вызов должен перезаписать то целое число с числом байтов, фактически переданных.

    Возвращаемое значение

    Ваш обратный вызов должен возвратить надлежащий код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Перед использованием Безопасного Транспортного API необходимо создать функцию чтения (соответствующий SSLReadFunc прототип) и функция записи (соответствующий SSLWriteFunc прототип), и предоставляют их библиотеке путем вызова SSLSetIOFuncs функция.

    Можно сконфигурировать базовое соединение для работы способом неблокирования; в этом случае операция чтения может возвратиться errSSLWouldBlock, указание меньшего количества данных, чем требуемый было передано, и ничто не неправильно за исключением того, что не завершился требуемый I/O. Этот результат возвращается к вызывающей стороне от функций SSLRead, SSLWrite, или SSLHandshake.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

    См. также

    SSLSetIOFuncs
    SSLWriteFunc

  • Определяет указатель на специализированную функцию записи, которые Защищают Транспортные вызовы для записи данных в соединение.

    Объявление

    Objective C

    typedef OSStatus (*SSLWriteFunc) ( SSLConnectionRef connection, const void *data, size_t *dataLength );

    Параметры

    connection

    Ссылка соединения на время сеанса SSL.

    data

    Указатель на данные для записи в соединение. Необходимо выделить эту память прежде, чем вызвать эту функцию.

    dataLength

    Перед вызовом, целое число, представляющее длину данных в байтах. По возврату это - число байтов, фактически переданных.

    Возвращаемое значение

    Код результата. Посмотрите Безопасные Транспортные Коды Результата.

    Обсуждение

    Перед использованием Безопасного Транспортного API необходимо записать функции SSLReadFunc и SSLWriteFunc и предоставляют их библиотеке путем вызова SSLSetIOFuncs функция.

    Можно сконфигурировать базовое соединение для работы способом неблокирования. В этом случае операция записи может возвратиться errSSLWouldBlock, указание меньшего количества данных, чем требуемый было передано, и ничто не неправильно за исключением того, что не завершился требуемый I/O. Этот результат возвращается к вызывающей стороне от функций SSLRead, SSLWrite, или SSLHandshake.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

    См. также

    SSLSetIOFuncs
    SSLReadFunc

Типы данных

  • Представляет указатель на непрозрачный объект соединения I/O.

    Объявление

    Objective C

    typedef const void *SSLConnectionRef;

    Обсуждение

    Объект соединения I/O относится к данным, идентифицирующим соединение. Данные о соединении непрозрачны для Обеспечения Транспорта; можно установить его в любое значение, которое приложение может использовать в функциях обратного вызова SSLReadFunc и SSLWriteFunc однозначно определять соединение, такое как сокет или конечная точка. Используйте SSLSetConnection функция для присвоения значения объекту соединения.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Представляет указатель на непрозрачный объект контекста сеанса SSL.

    Объявление

    Objective C

    struct SSLContext; typedef struct SSLContext *SSLContextRef;

    Обсуждение

    Объект контекста сеанса SSL ссылается на состояние, связанное с сеансом. Вы не можете снова использовать контекст сеанса SSL в многократных сеансах.

    Доступность

    Доступный в iOS 5.0 и позже.

Константы

  • Представляет требования для аутентификации клиентской стороны.

    Объявление

    Objective C

    typedef enum { kNeverAuthenticate, kAlwaysAuthenticate, kTryAuthenticate } SSLAuthenticate;

    Константы

    • kNeverAuthenticate

      Указывает, что не требуется аутентификация клиентской стороны. (Значение по умолчанию).

      Доступный в iOS 5.0 и позже.

    • kAlwaysAuthenticate

      Указывает, что требуется аутентификация клиентской стороны.

      Доступный в iOS 5.0 и позже.

    • kTryAuthenticate

      Указывает, что должна быть опробована аутентификация клиентской стороны. Если у клиента нет сертификата, нет никакой ошибки.

      Доступный в iOS 5.0 и позже.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Представляет доступные наборы шифров.

    Объявление

    Objective C

    typedef UInt32 SSLCipherSuite; enum { SSL_NULL_WITH_NULL_NULL = 0x0000, SSL_RSA_WITH_NULL_MD5 = 0x0001, SSL_RSA_WITH_NULL_SHA = 0x0002, SSL_RSA_EXPORT_WITH_RC4_40_MD5 = 0x0003, SSL_RSA_WITH_RC4_128_MD5 = 0x0004, SSL_RSA_WITH_RC4_128_SHA = 0x0005, SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 0x0006, SSL_RSA_WITH_IDEA_CBC_SHA = 0x0007, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x0008, SSL_RSA_WITH_DES_CBC_SHA = 0x0009, SSL_RSA_WITH_3DES_EDE_CBC_SHA = 0x000A, SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 0x000B, SSL_DH_DSS_WITH_DES_CBC_SHA = 0x000C, SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA = 0x000D, SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x000E, SSL_DH_RSA_WITH_DES_CBC_SHA = 0x000F, SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA = 0x0010, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 0x0011, SSL_DHE_DSS_WITH_DES_CBC_SHA = 0x0012, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 0x0013, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x0014, SSL_DHE_RSA_WITH_DES_CBC_SHA = 0x0015, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 0x0016, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 = 0x0017, SSL_DH_anon_WITH_RC4_128_MD5 = 0x0018, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA = 0x0019, SSL_DH_anon_WITH_DES_CBC_SHA = 0x001A, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA = 0x001B, SSL_FORTEZZA_DMS_WITH_NULL_SHA = 0x001C, SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA =0x001D, /* TLS addenda using AES, per RFC 3268 */ TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F, TLS_DH_DSS_WITH_AES_128_CBC_SHA = 0x0030, TLS_DH_RSA_WITH_AES_128_CBC_SHA = 0x0031, TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x0032, TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033, TLS_DH_anon_WITH_AES_128_CBC_SHA = 0x0034, TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035, TLS_DH_DSS_WITH_AES_256_CBC_SHA = 0x0036, TLS_DH_RSA_WITH_AES_256_CBC_SHA = 0x0037, TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x0038, TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039, TLS_DH_anon_WITH_AES_256_CBC_SHA = 0x003A, /* ECDSA addenda, RFC 4492 */ TLS_ECDH_ECDSA_WITH_NULL_SHA = 0xC001, TLS_ECDH_ECDSA_WITH_RC4_128_SHA = 0xC002, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = 0xC003, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 0xC004, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 0xC005, TLS_ECDHE_ECDSA_WITH_NULL_SHA = 0xC006, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 0xC007, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 0xC008, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xC009, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xC00A, TLS_ECDH_RSA_WITH_NULL_SHA = 0xC00B, TLS_ECDH_RSA_WITH_RC4_128_SHA = 0xC00C, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = 0xC00D, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = 0xC00E, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = 0xC00F, TLS_ECDHE_RSA_WITH_NULL_SHA = 0xC010, TLS_ECDHE_RSA_WITH_RC4_128_SHA = 0xC011, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 0xC012, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xC013, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xC014, TLS_ECDH_anon_WITH_NULL_SHA = 0xC015, TLS_ECDH_anon_WITH_RC4_128_SHA = 0xC016, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA = 0xC017, TLS_ECDH_anon_WITH_AES_128_CBC_SHA = 0xC018, TLS_ECDH_anon_WITH_AES_256_CBC_SHA = 0xC019, /* TLS 1.2 addenda, RFC 5246 */ /* Initial state. */ TLS_NULL_WITH_NULL_NULL = 0x0000, /* Server provided RSA certificate for key exchange. */ TLS_RSA_WITH_NULL_MD5 = 0x0001, TLS_RSA_WITH_NULL_SHA = 0x0002, TLS_RSA_WITH_RC4_128_MD5 = 0x0004, TLS_RSA_WITH_RC4_128_SHA = 0x0005, TLS_RSA_WITH_3DES_EDE_CBC_SHA = 0x000A, TLS_RSA_WITH_NULL_SHA256 = 0x003B, TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003C, TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003D, /* Server-authenticated (and optionally client-authenticated ) Diffie-Hellman. */ TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 0x000D, TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 0x0010, TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 0x0013, TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 0x0016, TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = 0x003E, TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = 0x003F, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x0040, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x0067, TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = 0x0068, TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = 0x0069, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 0x006A, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x006B, /* Completely anonymous Diffie-Hellman */ TLS_DH_anon_WITH_RC4_128_MD5 = 0x0018, TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = 0x001B, TLS_DH_anon_WITH_AES_128_CBC_SHA256 = 0x006C, TLS_DH_anon_WITH_AES_256_CBC_SHA256 = 0x006D, /* Addendum from RFC 4279, TLS PSK */ TLS_PSK_WITH_RC4_128_SHA = 0x008A, TLS_PSK_WITH_3DES_EDE_CBC_SHA = 0x008B, TLS_PSK_WITH_AES_128_CBC_SHA = 0x008C, TLS_PSK_WITH_AES_256_CBC_SHA = 0x008D, TLS_DHE_PSK_WITH_RC4_128_SHA = 0x008E, TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = 0x008F, TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 0x0090, TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 0x0091, TLS_RSA_PSK_WITH_RC4_128_SHA = 0x0092, TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = 0x0093, TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 0x0094, TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 0x0095, /* RFC 4785 - Pre-Shared Key (PSK ) Ciphersuites with NULL Encryption */ TLS_PSK_WITH_NULL_SHA = 0x002C, TLS_DHE_PSK_WITH_NULL_SHA = 0x002D, TLS_RSA_PSK_WITH_NULL_SHA = 0x002E, /* Addenda from rfc 5288 AES Galois Counter Mode (GCM ) Cipher Suites for TLS. */ TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C, TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009E, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009F, TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = 0x00A0, TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = 0x00A1, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3, TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = 0x00A4, TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = 0x00A5, TLS_DH_anon_WITH_AES_128_GCM_SHA256 = 0x00A6, TLS_DH_anon_WITH_AES_256_GCM_SHA384 = 0x00A7, /* RFC 5487 - PSK with SHA-256/384 and AES GCM */ TLS_PSK_WITH_AES_128_GCM_SHA256 = 0x00A8, TLS_PSK_WITH_AES_256_GCM_SHA384 = 0x00A9, TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = 0x00AA, TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = 0x00AB, TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = 0x00AC, TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = 0x00AD, TLS_PSK_WITH_AES_128_CBC_SHA256 = 0x00AE, TLS_PSK_WITH_AES_256_CBC_SHA384 = 0x00AF, TLS_PSK_WITH_NULL_SHA256 = 0x00B0, TLS_PSK_WITH_NULL_SHA384 = 0x00B1, TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = 0x00B2, TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = 0x00B3, TLS_DHE_PSK_WITH_NULL_SHA256 = 0x00B4, TLS_DHE_PSK_WITH_NULL_SHA384 = 0x00B5, TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = 0x00B6, TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = 0x00B7, TLS_RSA_PSK_WITH_NULL_SHA256 = 0x00B8, TLS_RSA_PSK_WITH_NULL_SHA384 = 0x00B9, /* Addenda from rfc 5289 Elliptic Curve Cipher Suites with HMAC SHA-256/384. */ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC023, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC024, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC025, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC026, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 0xC027, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 0xC028, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 = 0xC029, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 = 0xC02A, /* Addenda from rfc 5289 Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois Counter Mode (GCM ) */ TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02D, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02E, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 = 0xC031, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 = 0xC032, /* RFC 5746 - Secure Renegotiation */ TLS_EMPTY_RENEGOTIATION_INFO_SCSV = 0x00FF, /* * Tags for SSL 2 cipher kinds that are not specified * for SSL 3. */ SSL_RSA_WITH_RC2_CBC_MD5 = 0xFF80, SSL_RSA_WITH_IDEA_CBC_MD5 = 0xFF81, SSL_RSA_WITH_DES_CBC_MD5 = 0xFF82, SSL_RSA_WITH_3DES_EDE_CBC_MD5 = 0xFF83, SSL_NO_SUCH_CIPHERSUITE = 0xFFFF };

    Константы

    • SSL_RSA_EXPORT_WITH_RC4_40_MD5

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_RSA_EXPORT_WITH_DES40_CBC_SHA

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_DH_anon_EXPORT_WITH_RC4_40_MD5

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA

      Размер сеансового ключа соответствует пред1998 ограничениям экспорта США.

      Доступный в iOS 5.0 и позже.

    • SSL_RSA_WITH_RC2_CBC_MD5

      Это значение может быть указано для SSL 2, но не SSL 3.

      Доступный в iOS 5.0 и позже.

    • SSL_RSA_WITH_IDEA_CBC_MD5

      Это значение может быть указано для SSL 2, но не SSL 3.

      Доступный в iOS 5.0 и позже.

    • SSL_RSA_WITH_DES_CBC_MD5

      Это значение может быть указано для SSL 2, но не SSL 3.

      Доступный в iOS 5.0 и позже.

    • SSL_RSA_WITH_3DES_EDE_CBC_MD5

      Это значение может быть указано для SSL 2, но не SSL 3.

      Доступный в iOS 5.0 и позже.

    Обсуждение

    Эти константы набора шифров являются частью спецификации TLS. Для получения дополнительной информации посмотрите RFC 5246.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Представляет состояние клиентского обмена сертификата.

    Объявление

    Objective C

    typedef enum { kSSLClientCertNone, kSSLClientCertRequested, kSSLClientCertSent, kSSLClientCertRejected } SSLClientCertificateState;

    Константы

    • kSSLClientCertNone

      Указывает, что сервер не попросил сертификат и что клиент не отправил тот.

      Доступный в iOS 5.0 и позже.

    • kSSLClientCertRequested

      Указывает, что сервер попросил сертификат, но клиент не отправил его.

      Доступный в iOS 5.0 и позже.

    • kSSLClientCertSent

      Указывает, что сервер попросил сертификат, клиент отправил один, и сервер проверил его. Приложение может проверить сертификат с помощью функции SSLGetPeerCertificates.

      Доступный в iOS 5.0 и позже.

    • kSSLClientCertRejected

      Указывает, что клиент отправил сертификат, но сертификат привел проверку к сбою. Это значение замечено только на серверной стороне. Серверное приложение может проверить сертификат с помощью функции SSLGetPeerCertificates.

      Доступный в iOS 5.0 и позже.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Представляет версию протокола SSL.

    Объявление

    Objective C

    typedef enum { kSSLProtocolUnknown = 0, kSSLProtocol3 = 2, kTLSProtocol1 = 4, kTLSProtocol11 = 7, kTLSProtocol12 = 8, kDTLSProtocol1 = 9, /* DEPRECATED on iOS */ kSSLProtocol2 = 1, kSSLProtocol3Only = 3, kTLSProtocol1Only = 5, kSSLProtocolAll = 6, } SSLProtocol;

    Константы

    • kSSLProtocolUnknown

      Указывает, что никакой протокол не был или должен быть согласован или указан; используйте значение по умолчанию.

      Доступный в iOS 5.0 и позже.

    • kSSLProtocol3

      Указывает, что предпочтен протокол SSL 3.0; если коллега не может использовать протокол SSL 3.0, протокол SSL 2.0 может быть согласован.

      Доступный в iOS 5.0 и позже.

    • kTLSProtocol1

      Указывает, что протокол TLS 1.0 предпочтен, но могут быть согласованы более низкие версии.

      Доступный в iOS 5.0 и позже.

    • kTLSProtocol11

      Указывает, что протокол TLS 1.1 предпочтен, но могут быть согласованы более низкие версии.

      Доступный в iOS 5.0 и позже.

    • kTLSProtocol12

      Указывает, что протокол TLS 1.2 предпочтен, но могут быть согласованы более низкие версии.

      Доступный в iOS 5.0 и позже.

    • kSSLProtocol2

      Указывает, что только может быть согласован протокол SSL 2.0. Осуждаемый в iOS.

      Доступный в iOS 5.0 и позже.

    • kSSLProtocol3Only

      Указывает, что только может быть согласован протокол SSL 3.0; сбои, если коллега пытается согласовать протокол SSL 2.0. Осуждаемый в iOS.

      Доступный в iOS 5.0 и позже.

    • kTLSProtocol1Only

      Указывает, что только может быть согласован протокол TLS 1.0. Осуждаемый в iOS.

      Доступный в iOS 5.0 и позже.

    • kSSLProtocolAll

      Указывает все поддерживаемые версии. Осуждаемый в iOS.

      Доступный в iOS 5.0 и позже.

    Обсуждение

    Описания, данные здесь, применяются к функциям SSLSetProtocolVersion и SSLGetProtocolVersion. Для функций SSLSetProtocolVersionEnabled и SSLGetProtocolVersionEnabled, только следующие значения используются. Для этих функций, каждой константы кроме kSSLProtocolAll указывает версию отдельного протокола.

    • kSSLProtocol2

    • kSSLProtocol3

    • kTLSProtocol1

    • kSSLProtocolAll

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Представляет состояние сеанса SSL.

    Объявление

    Objective C

    typedef enum { kSSLIdle, kSSLHandshake, kSSLConnected, kSSLClosed, kSSLAborted } SSLSessionState;

    Константы

    • kSSLIdle

      Никакой I/O еще не был выполнен.

      Доступный в iOS 5.0 и позже.

    • kSSLHandshake

      Квитирование SSL происходит.

      Доступный в iOS 5.0 и позже.

    • kSSLConnected

      Квитирование SSL завершено; соединение готово к нормальному I/O.

      Доступный в iOS 5.0 и позже.

    • kSSLClosed

      Соединение обычно закрывалось.

      Доступный в iOS 5.0 и позже.

    • kSSLAborted

      Соединение прервалось.

      Доступный в iOS 5.0 и позже.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Опции, которые могут быть установлены для сеанса SSL с SSLSetSessionOption функция.

    Объявление

    Objective C

    typedef enum { kSSLSessionOptionBreakOnServerAuth, kSSLSessionOptionBreakOnCertRequested, kSSLSessionOptionBreakOnClientAuth, kSSLSessionOptionFalseStart, kSSLSessionOptionSendOneByteRecord } SSLSessionOption;

    Константы

    • kSSLSessionOptionBreakOnServerAuth

      Позволяет возвратиться из SSLHandshake (с результатом errSSLServerAuthCompleted) когда часть аутентификации сервера квитирования завершена, чтобы позволить Вашему приложению выполнять свою собственную проверку сертификата.

      Обратите внимание на то, что в iOS (все версии) и OS X 10.8 и позже, устанавливая эту опцию отключает автоматическую проверку Безопасного Транспорта сертификатов сервера.

      При установке этой опции приложение должно выполнить свою собственную проверку сертификата когда errSSLServerAuthCompleted возвращается прежде, чем продолжить квитирование.

      Доступный в iOS 5.0 и позже.

    • kSSLSessionOptionBreakOnCertRequested

      Позволяет возвратиться из SSLHandshake (с результатом errSSLClientCertRequested) когда запросы к серверу клиентский сертификат.

      Доступный в iOS 5.0 и позже.

    • kSSLSessionOptionBreakOnClientAuth

      Позволяет возвратиться из SSLHandshake (с результатом errSSLClientAuthCompleted) когда часть аутентификации клиента квитирования завершена, чтобы позволить Вашему приложению выполнять свою собственную проверку сертификата.

      Обратите внимание на то, что в iOS (все версии) и OS X 10.8 и позже, устанавливая эту опцию отключает автоматическую проверку Безопасного Транспорта клиентских сертификатов.

      При установке этой опции приложение должно выполнить свою собственную проверку сертификата когда errSSLClientAuthCompleted возвращается прежде, чем продолжить квитирование.

      Доступный в iOS 5.0 и позже.

    • kSSLSessionOptionFalseStart

      Когда включено, если соответствующий набор шифров согласовывается, Неудачное начало TLS используется.

      Доступный в iOS 7.0 и позже.

    • kSSLSessionOptionSendOneByteRecord

      Включает 1/n-1 рекордное разделение для BEAST атакует смягчение. Когда включено, рекордное разделение выполняется только для соединений TLS 1.0 на основе блочного шифра.

      Доступный в iOS 7.0 и позже.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает ли новый контекст SSL, создаваемый SSLCreateContext должен описать серверную сторону или клиентскую сторону соединения.

    Объявление

    Objective C

    typedef enum { kSSLServerSide, kSSLClientSide } SSLProtocolSide;

    Константы

    • kSSLServerSide

      Серверная сторона.

      Доступный в iOS 5.0 и позже.

    • kSSLClientSide

      Клиентская сторона.

      Доступный в iOS 5.0 и позже.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

  • Указывает ли новый контекст SSL, создаваемый SSLCreateContext предназначается для использования в или основанной на дейтаграмме коммуникации на основе потоков.

    Объявление

    Objective C

    typedef enum { kSSLStreamType, kSSLDatagramType } SSLConnectionType;

    Константы

    • kSSLStreamType

      Коммуникация на основе потоков (TCP).

      Доступный в iOS 5.0 и позже.

    • kSSLDatagramType

      Основанная на дейтаграмме коммуникация (UDP).

      Доступный в iOS 5.0 и позже.

    Оператор импорта

    Objective C

    @import Security;

    Доступность

    Доступный в iOS 5.0 и позже.

Коды результата

Наиболее распространенные коды результата, возвращенные Безопасными Транспортными функциями, перечислены в таблице ниже.

Ошибки в диапазоне от –9819 до –9840 являются фатальными ошибками, обнаруживающимися коллегой.

  • Ошибка протокола SSL.

    Значение

    – 9800

    Описание

    Ошибка протокола SSL.

    Доступный в iOS 5.0 и позже.

  • Согласование набора шифров перестало работать.

    Значение

    – 9801

    Описание

    Согласование набора шифров перестало работать.

    Доступный в iOS 5.0 и позже.

  • Встретились с фатальным предупреждением.

    Значение

    – 9802

    Описание

    Встретились с фатальным предупреждением.

    Доступный в iOS 5.0 и позже.

  • Функция блокируется; ожидание I/O. Это не является фатальным.

    Значение

    – 9803

    Описание

    Функция блокируется; ожидание I/O. Это не является фатальным.

    Доступный в iOS 5.0 и позже.

  • Попытка восстановить неизвестный сеанс перестала работать.

    Значение

    – 9804

    Описание

    Попытка восстановить неизвестный сеанс перестала работать.

    Доступный в iOS 5.0 и позже.

  • Соединение закрылось корректно.

    Значение

    – 9805

    Описание

    Соединение закрылось корректно.

    Доступный в iOS 5.0 и позже.

  • Соединение закрылось вследствие ошибки.

    Значение

    – 9806

    Описание

    Соединение закрылось вследствие ошибки.

    Доступный в iOS 5.0 и позже.

  • Недопустимая цепочка сертификата.

    Значение

    – 9807

    Описание

    Недопустимая цепочка сертификата.

    Доступный в iOS 5.0 и позже.

  • Плохой формат сертификата.

    Значение

    – 9808

    Описание

    Плохой формат сертификата.

    Доступный в iOS 5.0 и позже.

  • Встретились с базовой криптографической ошибкой.

    Значение

    – 9809

    Описание

    Встретились с базовой криптографической ошибкой.

    Доступный в iOS 5.0 и позже.

  • Внутренняя ошибка.

    Значение

    – 9810

    Описание

    Внутренняя ошибка.

    Доступный в iOS 5.0 и позже.

  • Отказ присоединения модуля.

    Значение

    – 9811

    Описание

    Отказ присоединения модуля.

    Доступный в iOS 5.0 и позже.

  • Цепочка сертификата допустима, но корневой не доверяется.

    Значение

    – 9812

    Описание

    Цепочка сертификата допустима, но корневой не доверяется.

    Доступный в iOS 5.0 и позже.

  • Никакой корневой сертификат для цепочки сертификата.

    Значение

    – 9813

    Описание

    Никакой корневой сертификат для цепочки сертификата.

    Доступный в iOS 5.0 и позже.

  • Цепочка сертификата имела сертификат с истекшим сроком.

    Значение

    – 9814

    Описание

    Цепочка сертификата имела сертификат с истекшим сроком.

    Доступный в iOS 5.0 и позже.

  • Цепочка сертификата имела сертификат, который еще не допустим.

    Значение

    – 9815

    Описание

    Цепочка сертификата имела сертификат, который еще не допустим.

    Доступный в iOS 5.0 и позже.

  • Сервер закрыл сеанс без уведомления.

    Значение

    – 9816

    Описание

    Сервер закрыл сеанс без уведомления.

    Доступный в iOS 5.0 и позже.

  • Был предоставлен недостаточный буфер.

    Значение

    – 9817

    Описание

    Был предоставлен недостаточный буфер.

    Доступный в iOS 5.0 и позже.

  • Встретились с плохим набором шифров SSL.

    Значение

    – 9818

    Описание

    Встретились с плохим набором шифров SSL.

    Доступный в iOS 5.0 и позже.

  • Было получено неожиданное сообщение.

    Значение

    – 9819

    Описание

    Было получено неожиданное сообщение.

    Доступный в iOS 5.0 и позже.

  • С записью с плохим кодом аутентификации сообщений (MAC) встретились.

    Значение

    – 9820

    Описание

    С записью с плохим кодом аутентификации сообщений (MAC) встретились.

    Доступный в iOS 5.0 и позже.

  • Дешифрование перестало работать.

    Значение

    – 9821

    Описание

    Дешифрование перестало работать.

    Доступный в iOS 5.0 и позже.

  • Произошло рекордное переполнение.

    Значение

    – 9822

    Описание

    Произошло рекордное переполнение.

    Доступный в iOS 5.0 и позже.

  • Распаковка перестала работать.

    Значение

    – 9823

    Описание

    Распаковка перестала работать.

    Доступный в iOS 5.0 и позже.

  • Квитирование перестало работать.

    Значение

    – 9824

    Описание

    Квитирование перестало работать.

    Доступный в iOS 5.0 и позже.

  • Встретились с плохим сертификатом.

    Значение

    – 9825

    Описание

    Встретились с плохим сертификатом.

    Доступный в iOS 5.0 и позже.

  • С неподдерживаемым форматом сертификата встретились.

    Значение

    – 9826

    Описание

    С неподдерживаемым форматом сертификата встретились.

    Доступный в iOS 5.0 и позже.

  • Сертификат отменялся.

    Значение

    – 9827

    Описание

    Сертификат отменялся.

    Доступный в iOS 5.0 и позже.

  • Сертификат истек.

    Значение

    – 9828

    Описание

    Сертификат истек.

    Доступный в iOS 5.0 и позже.

  • Сертификат неизвестен.

    Значение

    – 9829

    Описание

    Сертификат неизвестен.

    Доступный в iOS 5.0 и позже.

  • Встретились с недопустимым параметром.

    Значение

    – 9830

    Описание

    Встретились с недопустимым параметром.

    Доступный в iOS 5.0 и позже.

  • Встретились с неизвестным центром сертификации.

    Значение

    – 9831

    Описание

    Встретились с неизвестным центром сертификации.

    Доступный в iOS 5.0 и позже.

  • Доступ был запрещен.

    Значение

    – 9832

    Описание

    Доступ был запрещен.

    Доступный в iOS 5.0 и позже.

  • Ошибка декодирования произошла.

    Значение

    – 9833

    Описание

    Ошибка декодирования произошла.

    Доступный в iOS 5.0 и позже.

  • Ошибка дешифрования произошла.

    Значение

    – 9834

    Описание

    Ошибка дешифрования произошла.

    Доступный в iOS 5.0 и позже.

  • Ограничение экспорта произошло.

    Значение

    – 9835

    Описание

    Ограничение экспорта произошло.

    Доступный в iOS 5.0 и позже.

  • Встретились с плохой версией протокола.

    Значение

    – 9836

    Описание

    Встретились с плохой версией протокола.

    Доступный в iOS 5.0 и позже.

  • Существует недостаточная безопасность для этой работы.

    Значение

    – 9837

    Описание

    Существует недостаточная безопасность для этой работы.

    Доступный в iOS 5.0 и позже.

  • Произошла внутренняя ошибка.

    Значение

    – 9838

    Описание

    Произошла внутренняя ошибка.

    Доступный в iOS 5.0 и позже.

  • Пользователь отменил работу.

    Значение

    – 9839

    Описание

    Пользователь отменил работу.

    Доступный в iOS 5.0 и позже.

  • Никакой пересмотр не позволяется.

    Значение

    – 9840

    Описание

    Никакой пересмотр не позволяется.

    Доступный в iOS 5.0 и позже.

  • Если проверка отключена, сертификат сервера или допустим или был проигнорирован.

    Значение

    - 9841

    Описание

    Если проверка отключена, сертификат сервера или допустим или был проигнорирован.

    Доступный в iOS 5.0 через iOS 6.1.

  • Сервер запросил клиентский сертификат.

    Значение

    - 9842

    Описание

    Сервер запросил клиентский сертификат.

    Доступный в iOS 5.0 и позже.

  • Имя хоста, с которым Вы соединились, не соответствует ни одного из имен хоста, позволенных сертификатом. Это обычно вызывается неправильным значением для kCFStreamSSLPeerName свойство в словаре связалось с потоком kCFStreamPropertySSLSettings ключ.

    Значение

    - 9843

    Описание

    Имя хоста, с которым Вы соединились, не соответствует ни одного из имен хоста, позволенных сертификатом. Это обычно вызывается неправильным значением для kCFStreamSSLPeerName свойство в словаре связалось с потоком kCFStreamPropertySSLSettings ключ.

    Доступный в iOS 5.0 и позже.

  • Коллега отбросила соединение перед ответом.

    Значение

    – 9844

    Описание

    Коллега отбросила соединение перед ответом.

    Доступный в iOS 5.0 и позже.

  • Дешифрование перестало работать. Среди других причин это может быть вызвано недопустимыми данными, прибывающими из удаленного узла, поврежденного crypto ключа или недостаточного разрешения использовать ключ, который сохранен в цепочке для ключей.

    Значение

    – 9845

    Описание

    Дешифрование перестало работать. Среди других причин это может быть вызвано недопустимыми данными, прибывающими из удаленного узла, поврежденного crypto ключа или недостаточного разрешения использовать ключ, который сохранен в цепочке для ключей.

    Доступный в iOS 5.0 и позже.

  • С записью с плохим кодом аутентификации сообщений (MAC) встретились.

    Значение

    – 9846

    Описание

    С записью с плохим кодом аутентификации сообщений (MAC) встретились.

    Доступный в iOS 5.0 и позже.

  • Произошло рекордное переполнение.

    Значение

    – 9847

    Описание

    Произошло рекордное переполнение.

    Доступный в iOS 5.0 и позже.

  • Ошибка конфигурации произошла.

    Значение

    – 9848

    Описание

    Ошибка конфигурации произошла.

    Доступный в iOS 5.0 и позже.