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

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

Разработчик

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

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

На этой странице
Язык:

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

Этот документ описывает общедоступный 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.

Функции

  • Создает новый контекст сеанса SSL.

    Объявление

    Objective C

    OSStatus SSLNewContext ( Boolean isServer, SSLContextRef *contextPtr );

    Параметры

    isServer

    Набор true если обработка вызовов является сервером.

    contextPtr

    По возврату, точкам к новой ссылке контекста сеанса SSL.

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

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

    Обсуждение

    Контекст сеанса SSL является непрозрачной структурой данных, идентифицирующей сеанс и хранящей информацию сеанса. Необходимо передать этот объект любой функции в Безопасном Транспортном API.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

  • Избавляется от контекста сеанса SSL.

    Объявление

    Objective C

    OSStatus SSLDisposeContext ( SSLContextRef context );

    Параметры

    context

    Ссылка на контекст сеанса SSL для расположения.

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

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

    Обсуждение

    Когда Вы полностью закончены с безопасным сеансом, необходимо избавиться от контекста сеанса SSL для выпуска памяти, связанной с сеансом.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Swift

    func SSLSetConnection(_ context: SSLContext!, _ connection: SSLConnectionRef) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetConnection(_ context: SSLContext!, _ connection: UnsafeMutablePointer<SSLConnectionRef>) -> OSStatus

    Objective C

    OSStatus SSLGetConnection ( SSLContextRef context, SSLConnectionRef *connection );

    Параметры

    context

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

    connection

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLSetSessionOption(_ context: SSLContext!, _ option: SSLSessionOption, _ value: Boolean) -> OSStatus

    Objective C

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

    Параметры

    context

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

    option

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

    value

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.6 и позже.

    См. также

    SSLGetSessionOption

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

    Объявление

    Swift

    func SSLGetSessionOption(_ context: SSLContext!, _ option: SSLSessionOption, _ value: UnsafeMutablePointer<Boolean>) -> OSStatus

    Objective C

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

    Параметры

    context

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

    option

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

    value

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.6 и позже.

    См. также

    SSLSetSessionOption

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

    Объявление

    Swift

    func SSLSetIOFuncs(_ context: SSLContext!, _ read: SSLReadFunc, _ write: SSLWriteFunc) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

  • Устанавливает позволенные версии протокола SSL.

    Объявление

    Objective C

    OSStatus SSLSetProtocolVersionEnabled ( SSLContextRef context, SSLProtocol protocol, Boolean enable );

    Параметры

    context

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

    protocol

    Версия протокола SSL для включения. Передача kSSLProtocolAll включить все протоколы.

    enable

    Булево значение, указывающее, разрешить ли или отключить указанный протокол. Указать true включить протокол.

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

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

    Обсуждение

    Вызывание этой функции является дополнительным. Значение по умолчанию - то, что включены все поддерживаемые протоколы. Когда Вы вызываете эту функцию, только указанный протокол затронут. Поэтому, если Вы вызываете его один раз для отключения версии 2 SSL (например), другие протоколы, все остаются включенными. Можно вызвать эту функцию так много раз, как Вы хотите включить и отключить определенные протоколы. Можно указать одно из следующих значений для protocol параметр:

    • kSSLProtocol2

    • kSSLProtocol3

    • kTLSProtocol1

    • kSSLProtocolAll

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

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Objective C

    OSStatus SSLGetProtocolVersionEnabled ( SSLContextRef context, SSLProtocol protocol, Boolean *enable );

    Параметры

    context

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

    protocol

    Значение типа SSLProtocol представление версии протокола SSL.

    enable

    По возврату, точкам к булеву значению, указывающему, включена ли указанная версия протокола. Если это значение true, протокол включен.

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

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

    Обсуждение

    Можно указать любое из следующих значений для protocol параметр:

    • kSSLProtocol2

    • kSSLProtocol3

    • kTLSProtocol1

    • kSSLProtocolAll Укажите это значение, чтобы определить, включены ли все протоколы.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Swift

    func SSLSetClientSideAuthenticate(_ context: SSLContext!, _ auth: SSLAuthenticate) -> OSStatus

    Objective C

    OSStatus SSLSetClientSideAuthenticate ( SSLContextRef context, SSLAuthenticate auth );

    Параметры

    context

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

    auth

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

  • Включает или отключает ослепление RSA.

    Объявление

    Objective C

    OSStatus SSLSetRsaBlinding ( SSLContextRef context, Boolean blinding );

    Параметры

    context

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

    blinding

    Булево значение, указывающее, разрешить ли ослепление RSA. Передача true включить ослепление RSA.

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

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

    Обсуждение

    Эта функция используется только на серверной стороне соединения.

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

    Ослепление RSA включено по умолчанию. Используйте SSLGetRsaBlinding функция для определения текущей установки.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

  • Получает значение, указывающее, включено ли ослепление RSA.

    Объявление

    Objective C

    OSStatus SSLGetRsaBlinding ( SSLContextRef context, Boolean *blinding );

    Параметры

    context

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

    blinding

    По возврату, указателю на булево значение, указывающее, включено ли ослепление RSA.

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

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

    Обсуждение

    Эта функция используется только на серверной стороне соединения.

    Вызовите SSLSetRsaBlinding функция, чтобы включить или отключить ослепление RSA.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Swift

    func SSLHandshake(_ context: SSLContext!) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetSessionState(_ context: SSLContext!, _ state: UnsafeMutablePointer<SSLSessionState>) -> OSStatus

    Objective C

    OSStatus SSLGetSessionState ( SSLContextRef context, SSLSessionState *state );

    Параметры

    context

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

    state

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetNegotiatedProtocolVersion(_ context: SSLContext!, _ `protocol`: UnsafeMutablePointer<SSLProtocol>) -> OSStatus

    Objective C

    OSStatus SSLGetNegotiatedProtocolVersion ( SSLContextRef context, SSLProtocol *protocol );

    Параметры

    context

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

    protocol

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

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

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

    Обсуждение

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

    • kSSLProtocol2

    • kSSLProtocol3

    • kTLSProtocol1

    • kSSLProtocolUnknown

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLSetPeerID(_ context: SSLContext!, _ peerID: UnsafePointer<Void>, _ peerIDLen: UInt) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetPeerID(_ context: SSLContext!, _ peerID: UnsafeMutablePointer<UnsafePointer<Void>>, _ peerIDLen: UnsafeMutablePointer<UInt>) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetBufferedReadSize(_ context: SSLContext!, _ bufSize: UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

    OSStatus SSLGetBufferedReadSize ( SSLContextRef context, size_t *bufSize );

    Параметры

    context

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

    bufSize

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLRead(_ context: SSLContext!, _ data: UnsafeMutablePointer<Void>, _ dataLength: UInt, _ processed: UnsafeMutablePointer<UInt>) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLWrite(_ context: SSLContext!, _ data: UnsafePointer<Void>, _ dataLength: UInt, _ processed: UnsafeMutablePointer<UInt>) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLClose(_ context: SSLContext!) -> OSStatus

    Objective C

    OSStatus SSLClose ( SSLContextRef context );

    Параметры

    context

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetNumberSupportedCiphers(_ context: SSLContext!, _ numCiphers: UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

    OSStatus SSLGetNumberSupportedCiphers ( SSLContextRef context, size_t *numCiphers );

    Параметры

    context

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

    numCiphers

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetSupportedCiphers(_ context: SSLContext!, _ ciphers: UnsafeMutablePointer<SSLCipherSuite>, _ numCiphers: UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

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

    Параметры

    context

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

    ciphers

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

    numCiphers

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLSetEnabledCiphers(_ context: SSLContext!, _ ciphers: UnsafePointer<SSLCipherSuite>, _ numCiphers: UInt) -> OSStatus

    Objective C

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

    Параметры

    context

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

    ciphers

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

    numCiphers

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

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

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

    Обсуждение

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetNumberEnabledCiphers(_ context: SSLContext!, _ numCiphers: UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

    OSStatus SSLGetNumberEnabledCiphers ( SSLContextRef context, size_t *numCiphers );

    Параметры

    context

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

    numCiphers

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetEnabledCiphers(_ context: SSLContext!, _ ciphers: UnsafeMutablePointer<SSLCipherSuite>, _ numCiphers: UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

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

    Параметры

    context

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

    ciphers

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

    numCiphers

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetNegotiatedCipher(_ context: SSLContext!, _ cipherSuite: UnsafeMutablePointer<SSLCipherSuite>) -> OSStatus

    Objective C

    OSStatus SSLGetNegotiatedCipher ( SSLContextRef context, SSLCipherSuite *cipherSuite );

    Параметры

    context

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

    cipherSuite

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

  • Указывает параметры Diffie-Hellman.

    Объявление

    Swift

    func SSLSetDiffieHellmanParams(_ context: SSLContext!, _ dhParams: UnsafePointer<Void>, _ dhParamsLen: UInt) -> OSStatus

    Objective C

    OSStatus SSLSetDiffieHellmanParams ( SSLContextRef context, const void *dhParams, size_t dhParamsLen );

    Параметры

    context

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

    dhParams

    Указатель на буфер, содержащий параметры Diffie-Hellman в, Открывает формат SSL DER.

    dhParamsLen

    Значение, представляющее размер буфера, на который указывают dhParams параметр.

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

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

    Обсуждение

    Можно использовать эту функцию для указания ряда параметров Diffie-Hellman, которые будут использоваться Безопасным Транспортом для определенного сеанса. Использование этой функции является дополнительным. Если шифры Diffie-Hellman позволяются, сервер и клиент согласовывают шифр Diffie-Hellman, и эта функция не была вызвана, то Безопасный Транспорт вычисляет ряд процесса широкие параметры. Однако тот процесс может занять целых 30 секунд. Шифры Diffie-Hellman включены по умолчанию; посмотрите SSLSetEnabledCiphers.

    В SSL/TLS параметры Diffie-Hellman всегда указываются сервером. Поэтому эта функция может быть вызвана только серверной стороной соединения.

    Можно использовать SSLGetDiffieHellmanParams функция для получения параметров Diffie-Hellman, указанных в более раннем вызове к SSLSetDiffieHellmanParams.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

  • Получает параметры Diffie-Hellman, указанные ранее.

    Объявление

    Swift

    func SSLGetDiffieHellmanParams(_ context: SSLContext!, _ dhParams: UnsafeMutablePointer<UnsafePointer<Void>>, _ dhParamsLen: UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

    OSStatus SSLGetDiffieHellmanParams ( SSLContextRef context, const void **dhParams, size_t *dhParamsLen );

    Параметры

    context

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

    dhParams

    По возврату точки к буферу, содержащему блок параметра Diffie-Hellman в, Открывают формат SSL DER. Возвращенные данные не копируются и принадлежат ссылке контекста сеанса SSL; поэтому, Вы не можете изменить данные, и они выпущены автоматически при избавлении от контекста.

    dhParamsLen

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

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

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

    Обсуждение

    Эта функция возвращает блок параметра, указанный в более раннем вызове к функции SSLSetDiffieHellmanParams. Если SSLSetDiffieHellmanParams никогда не вызывался, dhParams возвраты параметра NULL и dhParamsLen возвраты параметра 0.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Objective C

    OSStatus SSLSetAllowsAnyRoot ( SSLContextRef context, Boolean anyRoot );

    Параметры

    context

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

    anyRoot

    Булев флаг, указывающий, позволяются ли корневые сертификаты от нераспознанных центров сертификации (CAs). Значение по умолчанию для этого флага false, указание, базирующееся от нераспознанного CAs, не позволяется.

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

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

    Обсуждение

    Система поддерживает ряд корневых сертификатов, подписанных известным, корневым CAs, которому доверяют. Когда anyRoot флаг true, Если одно из следующих двух условий происходит, безопасный Транспорт не возвращает ошибку:

    • Коллега возвращает цепочку сертификата с корневым сертификатом, и цепочка проверяет к тому корню, но CA для корневого сертификата не является одним из известного, корневого CAs, которому доверяют. Это приводит к errSSLUnknownRootCert закончитесь код когда anyRoot флаг false.

    • Коллега возвращает цепочку сертификата, не содержащую корневой сертификат, и сервер не может проверить цепочку к одному из доверяемых корневых сертификатов. Это приводит к errSSLNoRootCert закончитесь код когда anyRoot флаг false.

    Оба из этих состояний ошибки проигнорированы когда anyRoot флаг true, разрешение соединения с коллегой, для которой не могли быть установлены доверительные отношения.

    Если Вы используете эту функцию, чтобы позволить недоверяемому корню использоваться для проверки сертификата — например, после запроса пользователя для разрешения сделать так — не забывают устанавливать anyRoot Булево значение назад к false. Если Вы не делаете, любой случайный корневой сертификат может использоваться для подписания цепочки сертификата. Для добавления сертификата списку доверяемых корней используйте SecTrustSetAnchorCertificates функция.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

  • Получает значение, указывающее, позволяется ли неизвестный корень.

    Объявление

    Objective C

    OSStatus SSLGetAllowsAnyRoot ( SSLContextRef context, Boolean *anyRoot );

    Параметры

    context

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

    anyRoot

    По возврату, булевская переменная, указывающая текущую установку anyRoot флаг.

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

  • Указывает, позволяются ли корневые сертификаты с истекшим сроком.

    Объявление

    Objective C

    OSStatus SSLSetAllowsExpiredRoots ( SSLContextRef context, Boolean allowsExpired );

    Параметры

    context

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

    allowsExpired

    Булево значение, указывающее, позволить ли корневые сертификаты с истекшим сроком. Передача true позволить истекшие корни.

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

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

    Обсуждение

    Значение по умолчанию для allowsExpired флаг false. Когда этот флаг false, Безопасный Транспорт возвращается errSSLCertExpired закончитесь код во время квитирования, если истекает корневой сертификат.

    Можно использовать SSLGetAllowsExpiredRoots функция для определения текущей установки allowsExpired флаг.

    Используйте SSLSetAllowsExpiredCerts функционируйте для установки значения, определяющего, позволяются ли некорневые сертификаты с истекшим сроком.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

  • Получает значение, указывающее, позволяются ли корни с истекшим сроком.

    Объявление

    Objective C

    OSStatus SSLGetAllowsExpiredRoots ( SSLContextRef context, Boolean *allowsExpired );

    Параметры

    context

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

    allowsExpired

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

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

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

    Обсуждение

    Используйте SSLSetAllowsExpiredRoots функция для изменения настроек allowsExpired флаг.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Objective C

    OSStatus SSLSetTrustedRoots ( SSLContextRef context, CFArrayRef trustedRoots, Boolean replaceExisting );

    Параметры

    context

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

    trustedRoots

    Ссылка на массив доверяемых корневых сертификатов о типе SecCertificateRef.

    replaceExisting

    Булево значение, указывающее, заменить ли или добавить текущий доверяемый корневой набор сертификата. Если это значение true, указанные корневые сертификаты становятся единственными корнями, которым доверяют во время этого сеанса. Если это значение false, указанные корневые сертификаты добавляются к текущему набору доверяемых корневых сертификатов.

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

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

    Обсуждение

    Каждый последовательный вызов к этой функции с replaceExisting набор параметра к false результаты в накоплении дополнительных корневых сертификатов. Для наблюдения текущего набора доверяемых корневых сертификатов вызовите SSLCopyTrustedRoots функция.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

  • SSLGetTrustedRoots SSLGetTrustedRoots Доступный в OS X v10.2 через OS X v10.7

    Получает текущий список доверяемых корневых сертификатов.

    Оператор осуждения

    Использовать SSLCopyTrustedRoots вместо этого.

    Объявление

    Objective C

    OSStatus SSLGetTrustedRoots ( SSLContextRef context, CFArrayRef *trustedRoots );

    Параметры

    context

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

    trustedRoots

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

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

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

    Обсуждение

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

    Специальные замечания

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

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 через OS X v10.7.

    Осуждаемый в OS X v10.5.

  • Получает текущий список доверяемых корневых сертификатов.

    Объявление

    Objective C

    OSStatus SSLCopyTrustedRoots ( SSLContextRef context, CFArrayRef *trustedRoots );

    Параметры

    context

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

    trustedRoots

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.5 и позже.

    Осуждаемый в OS X v10.9.

  • Добавляют один или несколько сертификатов списку сервера центров сертификации (CAs), приемлемый для аутентификации клиента.

    Объявление

    Swift

    func SSLSetCertificateAuthorities(_ context: SSLContext!, _ certificateOrArray: AnyObject!, _ replaceExisting: Boolean) -> OSStatus

    Objective C

    OSStatus SSLSetCertificateAuthorities ( SSLContextRef context, CFTypeRef certificateOrArray, Boolean replaceExisting );

    Параметры

    context

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

    certificateOrArray

    Значение типа SecCertificateRef, или значение типа CFArray содержа массив SecCertificateRef значения, представляя один или несколько сертификатов, которые будут добавлены к списку сервера приемлемых центров сертификации (CAs).

    replaceExisting

    Булево значение, указывающее, заменить ли или добавить текущий набор центров сертификации. Если это значение true, указанные сертификаты заменяют существующий список приемлемого CAs, если таковые имеются. Если false, указанные сертификаты добавляются к существующему списку.

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

    Код результата. Посмотрите Безопасные Транспортные Коды Результата. Возвраты paramErr если эта функция вызвана для сеанса, сконфигурированного как клиент, или когда сеанс активен.

    Обсуждение

    Каждый последовательный вызов к этой функции с replaceExisting набор параметра к false результаты в накоплении дополнительных центров сертификации. Для наблюдения текущего набора центров сертификации вызовите SSLCopyCertificateAuthorities функция.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.5 и позже.

  • Получает текущий список центров сертификации.

    Объявление

    Swift

    func SSLCopyCertificateAuthorities(_ context: SSLContext!, _ trustedRoots: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatus

    Objective C

    OSStatus SSLCopyCertificateAuthorities ( SSLContextRef context, CFArrayRef *certificates );

    Параметры

    context

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

    trustedRoots

    По возврату, указателю на значение типа CFArrayRef. Этот массив содержит значения типа SecCertificateRef представление текущего набора центров сертификации (указанный с SSLSetCertificateAuthorities функция). Возвраты a NULL массив, если SSLSetCertificateAuthorities не был вызван. Необходимо вызвать CFRelease функционируйте для выпуска этого массива, когда Вы будете закончены с ним.

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.5 и позже.

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

    Объявление

    Swift

    func SSLAddDistinguishedName(_ context: SSLContext!, _ derDN : UnsafePointer<Void>, _ derDNLen: UInt) -> OSStatus

    Objective C

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

    Параметры

    context

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

    derDN

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

    derDNLen

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

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

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

    Объявление

    Swift

    func SSLCopyDistinguishedNames(_ context: SSLContext!, _ names: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatus

    Objective C

    OSStatus SSLCopyDistinguishedNames ( SSLContextRef context, CFArrayRef *names );

    Параметры

    context

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

    names

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

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

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

    Обсуждение

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.5 и позже.

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

    Объявление

    Objective C

    OSStatus SSLSetAllowsExpiredCerts ( SSLContextRef context, Boolean allowsExpired );

    Параметры

    context

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

    allowsExpired

    Представление булева флага, проигнорированы ли времена истечения срока сертификата. Значение по умолчанию для этого флага false, значение истекло результат сертификатов в errSSLCertExpired код результата.

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

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

    Обсуждение

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

    Используйте SSLSetAllowsExpiredRoots функционируйте для установки флага, указывающего, позволяются ли корневые сертификаты с истекшим сроком.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

  • Получает значение, указывающее, позволяются ли сертификаты с истекшим сроком.

    Объявление

    Objective C

    OSStatus SSLGetAllowsExpiredCerts ( SSLContextRef context, Boolean *allowsExpired );

    Параметры

    context

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

    allowsExpired

    По возврату этот флаг установлен в значение булева флага, указывающего, проигнорированы ли сертификаты с истекшим сроком. Если это значение true, если какие-либо сертификаты в цепочке сертификата истекают, тогда Безопасный Транспорт не возвращает ошибку.

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Swift

    func SSLSetCertificate(_ context: SSLContext!, _ certRefs: CFArray!) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetClientCertificateState(_ context: SSLContext!, _ clientState: UnsafeMutablePointer<SSLClientCertificateState>) -> OSStatus

    Objective C

    OSStatus SSLGetClientCertificateState ( SSLContextRef context, SSLClientCertificateState *clientState );

    Параметры

    context

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

    clientState

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.3 и позже.

  • Включает или отключает равноправную проверку цепочки сертификата.

    Объявление

    Objective C

    OSStatus SSLSetEnableCertVerify ( SSLContextRef context, Boolean enableVerify );

    Параметры

    context

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

    enableVerify

    Булево значение, указывающее, включена ли равноправная проверка цепочки сертификата. Проверка цепочки сертификата включена по умолчанию. Указать false отключить проверку.

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

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

    Обсуждение

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

    Можно использовать SSLGetEnableCertVerify функция для определения текущей установки enableVerify флаг.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Objective C

    OSStatus SSLGetEnableCertVerify ( SSLContextRef context, Boolean *enableVerify );

    Параметры

    context

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

    enableVerify

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

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

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

    Обсуждение

    Используйте SSLSetEnableCertVerify функционируйте для установки значения enableVerify флаг.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Swift

    func SSLSetEncryptionCertificate(_ context: SSLContext!, _ certRefs: CFArray!) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

  • SSLGetPeerCertificates SSLGetPeerCertificates Доступный в OS X v10.2 через OS X v10.7

    Получает равноправный сертификат.

    Оператор осуждения

    Использовать SSLCopyPeerCertificates вместо этого.

    Объявление

    Objective C

    OSStatus SSLGetPeerCertificates ( SSLContextRef context, CFArrayRef *certs );

    Параметры

    context

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

    certs

    По возврату, указателю на массив значений типа SecCertificateRef представление равноправного сертификата и цепочки сертификата раньше проверяло его. Сертификат в индексе 0 возвращенного массива является равноправным сертификатом (предмет вызова функции — сертификат конца в цепочке); корневой сертификат (или самый близкий сертификат ему) в конце возвращенного массива. Целый массив создается библиотекой Secure Transport; необходимо вызвать CFRelease функция для этого массива и для каждого SecCertificateRef значение в массиве, когда Вы закончены с ними.

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

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

    Обсуждение

    Эта функция допустима любое время после попытки квитирования. Можно использовать его, чтобы исследовать равноправный сертификат, исследовать цепочку сертификата для определения, почему попытка квитирования перестала работать, или получать цепочку сертификата для проверки сертификата сами. (Для отключения проверки так, чтобы можно было проверить сертификат сами используйте SSLSetSessionOption функционируйте для установки сеанса kSSLSessionOptionBreakOnServerAuth флаг.)

    Специальные замечания

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

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 через OS X v10.7.

    Осуждаемый в OS X v10.5.

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

    Объявление

    Objective C

    OSStatus SSLCopyPeerCertificates ( SSLContextRef context, CFArrayRef *certs );

    Параметры

    context

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

    certs

    По возврату, указателю на массив значений типа SecCertificateRef представление равноправного сертификата и цепочки сертификата раньше проверяло его. Сертификат в индексе 0 возвращенного массива является равноправным сертификатом (предмет вызова функции — сертификат конца в цепочке); корневой сертификат (или самый близкий сертификат ему) в конце возвращенного массива. Целый массив создается библиотекой Secure Transport; необходимо вызвать CFRelease функция для этого массива, когда Вы закончены с ним.

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

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

    Обсуждение

    Эта функция допустима любое время после попытки квитирования. Можно использовать его, чтобы исследовать равноправный сертификат, исследовать цепочку сертификата для определения, почему попытка квитирования перестала работать, или получать цепочку сертификата для проверки сертификата сами. (Для отключения проверки так, чтобы можно было проверить сертификат сами используйте SSLSetSessionOption функционируйте для установки сеанса kSSLSessionOptionBreakOnServerAuth флаг.)

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.5 и позже.

    Осуждаемый в OS X v10.9.

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

    Объявление

    Swift

    func SSLCopyPeerTrust(_ context: SSLContext!, _ trust: UnsafeMutablePointer<Unmanaged<SecTrust>?>) -> OSStatus

    Objective C

    OSStatus SSLCopyPeerTrust ( SSLContextRef context, SecTrustRef *trust );

    Параметры

    context

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

    trust

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.6 и позже.

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

    Объявление

    Swift

    func SSLSetPeerDomainName(_ context: SSLContext!, _ peerName: UnsafePointer<Int8>, _ peerNameLen: UInt) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetPeerDomainNameLength(_ context: SSLContext!, _ peerNameLen: UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

    OSStatus SSLGetPeerDomainNameLength ( SSLContextRef context, size_t *peerNameLen );

    Параметры

    context

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

    peerNameLen

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    func SSLGetPeerDomainName(_ context: SSLContext!, _ peerName: UnsafeMutablePointer<Int8>, _ peerNameLen : UnsafeMutablePointer<UInt>) -> OSStatus

    Objective C

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

    Параметры

    context

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

    peerName

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

    peerNameLen

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

  • Устанавливает версию протокола SSL. Эта функция осуждается.

    Объявление

    Objective C

    OSStatus SSLSetProtocolVersion ( SSLContextRef context, SSLProtocol version );

    Параметры

    context

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

    version

    Версия протокола SSL для согласования.

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

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

    Обсуждение

    Используйте SSLSetProtocolVersionEnabled функция вместо этого.

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

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.8.

  • Получает версию протокола SSL. Эта функция осуждается.

    Объявление

    Objective C

    OSStatus SSLGetProtocolVersion ( SSLContextRef context, SSLProtocol *protocol );

    Параметры

    context

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

    protocol

    По возврату, указателю на версию протокола SSL.

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

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

    Обсуждение

    Используйте SSLGetProtocolVersionEnabled функция вместо этого.

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

    Objective C

    @import Security;

    Доступность

    Доступный в OS X v10.2 и позже.

    Осуждаемый в OS X v10.8.

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

    Объявление

    Swift

    func SSLContextGetTypeID() -> CFTypeID

    Objective C

    CFTypeID SSLContextGetTypeID ( void );

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLCreateContext(_ alloc: CFAllocator!, _ protocolSide: SSLProtocolSide, _ connectionType: SSLConnectionType) -> Unmanaged<SSLContext>!

    Objective C

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

    Параметры

    alloc

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

    protocolSide

    Также kSSLServerSide или kSSLClientSide.

    connectionType

    Также kSSLStreamType или kSSLDatagramType.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLGetDatagramWriteSize(_ dtlsContext: SSLContext!, _ bufSize: UnsafeMutablePointer<UInt>) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLGetMaxDatagramRecordSize(_ dtlsContext: SSLContext!, _ bufSize: UnsafeMutablePointer<UInt>) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLGetProtocolVersionMax(_ dtlsContext: SSLContext!, _ maxVersion: UnsafeMutablePointer<SSLProtocol>) -> OSStatus

    Objective C

    OSStatus SSLGetProtocolVersionMax ( SSLContextRef context, SSLProtocol *maxVersion );

    Параметры

    dtlsContext

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

    maxVersion

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLGetProtocolVersionMin(_ dtlsContext: SSLContext!, _ minVersion: UnsafeMutablePointer<SSLProtocol>) -> OSStatus

    Objective C

    OSStatus SSLGetProtocolVersionMin ( SSLContextRef context, SSLProtocol *minVersion );

    Параметры

    dtlsContext

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

    minVersion

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLSetDatagramHelloCookie(_ dtlsContext: SSLContext!, _ cookie: UnsafePointer<Void>, _ cookieLen: UInt) -> OSStatus

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLSetMaxDatagramRecordSize(_ dtlsContext: SSLContext!, _ bufSize: UInt) -> OSStatus

    Objective C

    OSStatus SSLSetMaxDatagramRecordSize ( SSLContextRef dtlsContext, size_t maxSize );

    Параметры

    dtlsContext

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

    bufSize

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

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

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

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLSetProtocolVersionMax(_ dtlsContext: SSLContext!, _ maxVersion: SSLProtocol) -> OSStatus

    Objective C

    OSStatus SSLSetProtocolVersionMax ( SSLContextRef context, SSLProtocol maxVersion );

    Параметры

    dtlsContext

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

    maxVersion

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    func SSLSetProtocolVersionMin(_ dtlsContext: SSLContext!, _ minVersion: SSLProtocol) -> OSStatus

    Objective C

    OSStatus SSLSetProtocolVersionMin ( SSLContextRef context, SSLProtocol minVersion );

    Параметры

    dtlsContext

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

    minVersion

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

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

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

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

    Объявление

    Swift

    typealias SSLReadFunc = CFunctionPointer<((SSLConnectionRef, UnsafeMutablePointer<Void>, UnsafeMutablePointer<UInt>) -> OSStatus)>

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

    См. также

    SSLSetIOFuncs
    SSLWriteFunc

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

    Объявление

    Swift

    typealias SSLWriteFunc = CFunctionPointer<((SSLConnectionRef, UnsafePointer<Void>, UnsafeMutablePointer<UInt>) -> OSStatus)>

    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;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

    См. также

    SSLSetIOFuncs
    SSLReadFunc

Типы данных

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

    Объявление

    Swift

    typealias SSLConnectionRef = UnsafePointer<Void>

    Objective C

    typedef const void *SSLConnectionRef;

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    typealias SSLContextRef = SSLContext

    Objective C

    struct SSLContext; typedef struct SSLContext *SSLContextRef;

    Обсуждение

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

    Доступность

    Доступный в OS X v10.2 и позже.

Константы

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

    Объявление

    Swift

    struct SSLAuthenticate { init(_ value: UInt32) var value: UInt32 }

    Objective C

    typedef enum { kNeverAuthenticate, kAlwaysAuthenticate, kTryAuthenticate } SSLAuthenticate;

    Константы

    • kNeverAuthenticate

      kNeverAuthenticate

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

      Доступный в OS X v10.2 и позже.

    • kAlwaysAuthenticate

      kAlwaysAuthenticate

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

      Доступный в OS X v10.2 и позже.

    • kTryAuthenticate

      kTryAuthenticate

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

      Доступный в OS X v10.2 и позже.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    typealias SSLCipherSuite = UInt32

    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

      SSL_RSA_EXPORT_WITH_RC4_40_MD5

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

      Доступный в OS X v10.2 и позже.

    • SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5

      SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5

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

      Доступный в OS X v10.2 и позже.

    • SSL_RSA_EXPORT_WITH_DES40_CBC_SHA

      SSL_RSA_EXPORT_WITH_DES40_CBC_SHA

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

      Доступный в OS X v10.2 и позже.

    • SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA

      SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA

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

      Доступный в OS X v10.2 и позже.

    • SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA

      SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA

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

      Доступный в OS X v10.2 и позже.

    • SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA

      SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA

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

      Доступный в OS X v10.2 и позже.

    • SSL_DH_anon_EXPORT_WITH_RC4_40_MD5

      SSL_DH_anon_EXPORT_WITH_RC4_40_MD5

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

      Доступный в OS X v10.2 и позже.

    • SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA

      SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA

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

      Доступный в OS X v10.2 и позже.

    • SSL_RSA_WITH_RC2_CBC_MD5

      SSL_RSA_WITH_RC2_CBC_MD5

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

      Доступный в OS X v10.2 и позже.

    • SSL_RSA_WITH_IDEA_CBC_MD5

      SSL_RSA_WITH_IDEA_CBC_MD5

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

      Доступный в OS X v10.2 и позже.

    • SSL_RSA_WITH_DES_CBC_MD5

      SSL_RSA_WITH_DES_CBC_MD5

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

      Доступный в OS X v10.2 и позже.

    • SSL_RSA_WITH_3DES_EDE_CBC_MD5

      SSL_RSA_WITH_3DES_EDE_CBC_MD5

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

      Доступный в OS X v10.2 и позже.

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    struct SSLClientCertificateState { init(_ value: UInt32) var value: UInt32 }

    Objective C

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

    Константы

    • kSSLClientCertNone

      kSSLClientCertNone

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

      Доступный в OS X v10.2 и позже.

    • kSSLClientCertRequested

      kSSLClientCertRequested

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

      Доступный в OS X v10.2 и позже.

    • kSSLClientCertSent

      kSSLClientCertSent

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

      Доступный в OS X v10.2 и позже.

    • kSSLClientCertRejected

      kSSLClientCertRejected

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

      Доступный в OS X v10.2 и позже.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    struct SSLProtocol { init(_ value: UInt32) var value: UInt32 }

    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

      kSSLProtocolUnknown

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

      Доступный в OS X v10.2 и позже.

    • kSSLProtocol3

      kSSLProtocol3

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

      Доступный в OS X v10.2 и позже.

    • kTLSProtocol1

      kTLSProtocol1

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

      Доступный в OS X v10.2 и позже.

    • kTLSProtocol11

      kTLSProtocol11

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

      Доступный в OS X v10.8 и позже.

    • kTLSProtocol12

      kTLSProtocol12

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

      Доступный в OS X v10.8 и позже.

    • kSSLProtocol2

      kSSLProtocol2

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

      Доступный в OS X v10.2 и позже.

    • kSSLProtocol3Only

      kSSLProtocol3Only

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

      Доступный в OS X v10.2 и позже.

    • kTLSProtocol1Only

      kTLSProtocol1Only

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

      Доступный в OS X v10.2 и позже.

    • kSSLProtocolAll

      kSSLProtocolAll

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

      Доступный в OS X v10.3 и позже.

    Обсуждение

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

    • kSSLProtocol2

    • kSSLProtocol3

    • kTLSProtocol1

    • kSSLProtocolAll

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    struct SSLSessionState { init(_ value: UInt32) var value: UInt32 }

    Objective C

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

    Константы

    • kSSLIdle

      kSSLIdle

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

      Доступный в OS X v10.2 и позже.

    • kSSLHandshake

      kSSLHandshake

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

      Доступный в OS X v10.2 и позже.

    • kSSLConnected

      kSSLConnected

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

      Доступный в OS X v10.2 и позже.

    • kSSLClosed

      kSSLClosed

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

      Доступный в OS X v10.2 и позже.

    • kSSLAborted

      kSSLAborted

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

      Доступный в OS X v10.2 и позже.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.2 и позже.

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

    Объявление

    Swift

    struct SSLSessionOption { init(_ value: UInt32) var value: UInt32 }

    Objective C

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

    Константы

    • kSSLSessionOptionBreakOnServerAuth

      kSSLSessionOptionBreakOnServerAuth

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

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

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

      Доступный в OS X v10.6 и позже.

    • kSSLSessionOptionBreakOnCertRequested

      kSSLSessionOptionBreakOnCertRequested

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

      Доступный в OS X v10.6 и позже.

    • kSSLSessionOptionBreakOnClientAuth

      kSSLSessionOptionBreakOnClientAuth

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

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

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

      Доступный в OS X v10.8 и позже.

    • kSSLSessionOptionFalseStart

      kSSLSessionOptionFalseStart

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

      Доступный в OS X v10.9 и позже.

    • kSSLSessionOptionSendOneByteRecord

      kSSLSessionOptionSendOneByteRecord

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

      Доступный в OS X v10.9 и позже.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.6 и позже.

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

    Объявление

    Swift

    struct SSLProtocolSide { init(_ value: UInt32) var value: UInt32 }

    Objective C

    typedef enum { kSSLServerSide, kSSLClientSide } SSLProtocolSide;

    Константы

    • kSSLServerSide

      kSSLServerSide

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

      Доступный в OS X v10.8 и позже.

    • kSSLClientSide

      kSSLClientSide

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

      Доступный в OS X v10.8 и позже.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

    Объявление

    Swift

    struct SSLConnectionType { init(_ value: UInt32) var value: UInt32 }

    Objective C

    typedef enum { kSSLStreamType, kSSLDatagramType } SSLConnectionType;

    Константы

    • kSSLStreamType

      kSSLStreamType

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

      Доступный в OS X v10.8 и позже.

    • kSSLDatagramType

      kSSLDatagramType

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

      Доступный в OS X v10.8 и позже.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в OS X v10.8 и позже.

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

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

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

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

    Значение

    – 9800

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9801

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9802

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9803

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9804

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9805

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9806

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9807

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9808

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9809

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9810

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9811

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9812

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9813

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9814

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9815

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9816

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9817

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9818

    Описание

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

    Доступный в OS X v10.2 и позже.

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

    Значение

    – 9819

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9820

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9821

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9822

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9823

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9824

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9825

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9826

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9827

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9828

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9829

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9830

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9831

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9832

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9833

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9834

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9835

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9836

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9837

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9838

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9839

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9840

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    - 9841

    Описание

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

    Доступный в OS X v10.6 через OS X v10.7.

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

    Значение

    - 9842

    Описание

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

    Доступный в OS X v10.6 и позже.

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

    Значение

    - 9843

    Описание

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

    Доступный в OS X v10.4 и позже.

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

    Значение

    – 9844

    Описание

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

    Доступный в OS X v10.4 и позже.

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

    Значение

    – 9845

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9846

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9847

    Описание

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

    Доступный в OS X v10.3 и позже.

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

    Значение

    – 9848

    Описание

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

    Доступный в OS X v10.3 и позже.