Безопасная транспортная ссылка
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
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, который обычно вызывают в следующей последовательности:
Подготовка к сеансу
Вызвать
SSLNewContext
(в OS X) илиSSLCreateContext
(в iOS и OS X) для создания нового контекста сеанса SSL.Запишите
SSLWrite
иSSLRead
Функции I/O и вызовSSLSetIOFuncs
передать их для Обеспечения Транспорта.Установите соединение с помощью CFNetwork, Сокетов BSD, или Откройте Transport. Тогда вызовите
SSLSetConnection
указать соединение, к которому применяется контекст сеанса SSL.Вызвать
SSLSetPeerDomainName
указать полностью определенное доменное имя коллеги, с которой Вы хотите соединиться (дополнительный, но наиболее рекомендуемый).Вызвать
SSLSetCertificate
указать сертификат, который будет использоваться в аутентификации (требуемый для серверной стороны, дополнительной для клиента).
Запуск сеанса
Вызвать
SSLHandshake
выполнить квитирование SSL и установить безопасный сеанс.
Поддержание сеанса
Окончание сеанса
Вызвать
SSLClose
закрыть безопасный сеанс.Закройте соединение и избавьтесь от ссылки соединения (
SSLConnectionRef
).Если Вы создали контекст путем вызова
SSLNewContext
, вызватьSSLDisposeContext
избавляться от контекста сеанса SSL.Если Вы создали контекст путем вызова
SSLCreateContext
, выпустите контекст сеанса SSL путем вызоваCFRelease
.Если Вы вызвали
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 и позже.
См. также
-
Указывает текущую установку опции сеанса 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 и позже.
См. также
-
Указывает функции обратного вызова, выполняющие операции сети 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
функция, эта функция возвращает aNULL
указатель в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]
aSecIdentityRef
объект, идентифицирующий листовой сертификат и его соответствующий закрытый ключ. Указание корневого сертификата является дополнительным; если это не указано, проверяющий корневой сертификат, цепочка сертификата, указанная здесь, должна присутствовать в наборе в масштабе всей системы доверяемых сертификатов привязки.Эта функция должна быть вызвана перед вызовом
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 и позже.
См. также
-
Определяет указатель на специализированную функцию записи, которые Защищают Транспортные вызовы для записи данных в соединение.
Объявление
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 и позже.
См. также
-
Представляет указатель на непрозрачный объект соединения 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 и позже.