Сертификат, ключ и доверительная ссылка служб
Сертификат, Ключ и Trust Services обеспечивают API C для управления сертификатами, открытыми и закрытыми ключами и доверительными политиками. Можно использовать эти службы в приложении к:
Определите идентификационные данные путем соответствия сертификата закрытому ключу
Создайте и запросите объекты сертификата
Сертификаты импорта, ключи и идентификационные данные
Создайте пар общедоступных с закрытым ключом
Представляйте доверительные политики
Соображения параллелизма
На iOS все функции в этом API ориентированы на многопотоковое исполнение и повторно используемы.
На OS X v10.6, некоторые функции могут блокировать при ожидании ввода от пользователя (например, когда пользователя просят разблокировать цепочку для ключей или дать разрешение изменить доверительные настройки). В целом безопасно использовать функции в этом API от потоков кроме Вашего основного потока, но необходимо избежать вызывать функцию от многократных операций, рабочих списков или потоков одновременно. Вместо этого вызовы функции должны быть сериализированы (или ограничены единственным потоком) предотвратить любые потенциальные проблемы. Исключения отмечены в обсуждениях соответствующих функций.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecCertificate
объект принадлежит.Объявление
Swift
func SecCertificateGetTypeID() -> CFTypeID
Objective C
CFTypeID SecCertificateGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecCertificateRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecCertificateRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecIdentity
объект принадлежит.Объявление
Swift
func SecIdentityGetTypeID() -> CFTypeID
Objective C
CFTypeID SecIdentityGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecIdentityRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecIdentityRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
SecIdentitySearchGetTypeID SecIdentitySearchGetTypeID
(OS X v10.7)Возвращает уникальный идентификатор непрозрачного типа к который a
SecIdentitySearch
объект принадлежит.Объявление
Objective C
CFTypeID SecIdentitySearchGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecIdentitySearchRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecIdentitySearchRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecKey
объект принадлежит.Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecKeyRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecKeyRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecPolicy
объект принадлежит.Объявление
Swift
func SecPolicyGetTypeID() -> CFTypeID
Objective C
CFTypeID SecPolicyGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecPolicyRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecPolicyRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
SecPolicySearchGetTypeID SecPolicySearchGetTypeID
(OS X v10.7)Возвращает уникальный идентификатор непрозрачного типа к который a
SecPolicySearch
объект принадлежит.Объявление
Objective C
CFTypeID SecPolicySearchGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecPolicySearchRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecPolicySearchRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecTrust
объект принадлежит.Объявление
Swift
func SecTrustGetTypeID() -> CFTypeID
Objective C
CFTypeID SecTrustGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecTrustRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecTrustRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Добавляет сертификат цепочке для ключей.
Объявление
Swift
func SecCertificateAddToKeychain(_
certificate
: SecCertificate!, _keychain
: SecKeychain!) -> OSStatusObjective C
OSStatus SecCertificateAddToKeychain ( SecCertificateRef certificate, SecKeychainRef keychain );
Параметры
certificate
Объект сертификата для сертификата для добавления к цепочке для ключей.
keychain
Объект цепочки для ключей для цепочки для ключей, к которой Вы хотите добавить сертификат. Передача
NULL
добавить сертификат цепочке для ключей по умолчанию.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция требует объекта сертификата, который может, например, быть создан с
SecCertificateCreateFromData
функционируйте или полученный по сети (см. Безопасную Транспортную Ссылку). Если сертификат был уже добавлен к указанной цепочке для ключей, функциональным возвратамerrSecDuplicateItem
и не добавляет другую копию к цепочке для ключей. Функция смотрит на данные сертификата, не в объекте сертификата, чтобы определить, является ли сертификат копией. Это полагает, что два сертификата копии, если у них есть те же атрибуты первичного ключа.Специальные замечания
Если цепочка для ключей заблокирована, система просит, чтобы пользователь пароль или другой маркер разблокировал ее. Эта функция может поэтому блокировать при ожидании ввода данных пользователем.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
SecCertificateCreateFromData SecCertificateCreateFromData
(OS X v10.7)Создает сертификат, основанный на объектах на указанных данных, введите, и кодирование.
Объявление
Objective C
OSStatus SecCertificateCreateFromData ( const CSSM_DATA *data, CSSM_CERT_TYPE type, CSSM_CERT_ENCODING encoding, SecCertificateRef *certificate );
Параметры
data
Указатель на данные сертификата. Данные должны быть сертификатом X509 в двоичном формате.
type
Тип сертификата, как определено в
Security.framework/cssmtype.h
. Допустимые значенияCSSM_CERT_X_509v1
,CSSM_CERT_X_509v2
, иCSSM_CERT_X_509v3
. Если Вы не уверены в типе сертификата, использоватьCSSM_CERT_X_509v3
.encoding
Сертификат, кодирующий, как определено в
Security.framework/cssmtype.h
. Допустимые значенияCSSM_CERT_ENCODING_BER
иCSSM_CERT_ENCODING_DER
. Если Вы не уверены в кодировании, использоватьCSSM_CERT_ENCODING_BER
.certificate
По возврату, точкам к недавно создаваемому объекту сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Объект сертификата, возвращенный этой функцией, используется в качестве ввода к нескольким другим функциям в API.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
Создает объект сертификата из представления DER сертификата.
Объявление
Swift
func SecCertificateCreateWithData(_
allocator
: CFAllocator!, _data
: CFData!) -> Unmanaged<SecCertificate>!Objective C
SecCertificateRef SecCertificateCreateWithData ( CFAllocatorRef allocator, CFDataRef data );
Параметры
allocator
CFAllocator
возразите, что Вы хотите использовать для выделения объекта сертификата. ПередачаNULL
использовать средство выделения по умолчанию.data
DER (Выдающиеся Правила кодирования) представление сертификата X.509.
Возвращаемое значение
Недавно создаваемый объект сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним. ВозвратыNULL
если данные передали вdata
параметр не является допустимым закодированным DER сертификатом X.509.Обсуждение
Объект сертификата, возвращенный этой функцией, используется в качестве ввода к другим функциям в API.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Возвращает представление DER сертификата, данного объект сертификата.
Объявление
Swift
func SecCertificateCopyData(_
certificate
: SecCertificate!) -> Unmanaged<CFData>!Objective C
CFDataRef SecCertificateCopyData ( SecCertificateRef certificate );
Параметры
certificate
Объект сертификата, для которого Вы хотите возвратить DER (Выдающиеся Правила кодирования) представление сертификата X.509.
Возвращаемое значение
Представление DER сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним. ВозвратыNULL
если данные передали вcertificate
параметр не является допустимым объектом сертификата.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Получает общее название предмета сертификата.
Объявление
Swift
func SecCertificateCopyCommonName(_
certificate
: SecCertificate!, _commonName
: UnsafeMutablePointer<Unmanaged<CFString>?>) -> OSStatusObjective C
OSStatus SecCertificateCopyCommonName ( SecCertificateRef certificate, CFStringRef *commonName );
Параметры
certificate
Объект сертификата, от которого можно получить общее название.
commonName
По возврату, точкам к общему названию. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Получает адреса электронной почты для предмета сертификата.
Объявление
Swift
func SecCertificateCopyEmailAddresses(_
certificate
: SecCertificate!, _emailAddresses
: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatusObjective C
OSStatus SecCertificateCopyEmailAddresses ( SecCertificateRef certificate, CFArrayRef *emailAddresses );
Параметры
certificate
Объект сертификата, от которого можно получить адреса электронной почты.
emailAddresses
По возврату, массиву нуля или больше
CFStringRef
элементы, каждый содержащий один адрес электронной почты найден в предмете сертификата. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Не каждый предмет сертификата включает адрес электронной почты. Если функция не находит адресов электронной почты, она возвращает a
CFArrayRef
объект с нулевыми элементами в массиве.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает копию длинного описания сертификата.
Объявление
Swift
func SecCertificateCopyLongDescription(_
alloc
: CFAllocator!, _certificate
: SecCertificate!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<CFString>!Objective C
CFStringRef SecCertificateCopyLongDescription ( CFAllocatorRef alloc, SecCertificateRef certificate, CFErrorRef *error );
Параметры
alloc
Средство выделения, которое должно использоваться. Передача
NULL
илиkCFAllocatorDefault
использовать средство выделения по умолчанию.certificate
Сертификат, с которого должно быть скопировано длинное описание.
error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвраты a
CFStringRef
объект, содержащий длинное описание, илиNULL
если произошла ошибка.Обсуждение
Формат этой строки, как гарантируют, не будет непротиворечивым через различные операционные системы или версии. Не пытайтесь проанализировать его программно.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает нормализованную копию отличительного имени (DN) эмитента сертификата.
Объявление
Swift
func SecCertificateCopyNormalizedIssuerContent(_
certificate
: SecCertificate!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<CFData>!Objective C
CFDataRef SecCertificateCopyNormalizedIssuerContent ( SecCertificateRef certificate, CFErrorRef *error );
Параметры
certificate
Сертификат, с которого должно быть скопировано отличительное имя эмитента.
error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвраты a
CFDataRef
объект, содержащий закодированное DER отличительное имя X.509, подходящее для использования сSecItemCopyMatching
. ВозвратыNULL
если произошла ошибка.Обсуждение
Для получения копии отличительного имени эмитента в формате, подходящем в целях дисплея, вызвать
SecCertificateCopyValues
вместо этого.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает нормализованную копию отличительного имени (DN) предмета сертификата.
Объявление
Swift
func SecCertificateCopyNormalizedSubjectContent(_
certificate
: SecCertificate!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<CFData>!Objective C
CFDataRef SecCertificateCopyNormalizedSubjectContent ( SecCertificateRef certificate, CFErrorRef *error );
Параметры
certificate
Сертификат, с которого должно быть скопировано отличительное имя предмета.
error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвраты a
CFDataRef
объект, содержащий закодированное DER отличительное имя X.509, подходящее для использования сSecItemCopyMatching
. ВозвратыNULL
если произошла ошибка.Обсуждение
Для получения копии отличительного имени предмета в формате, подходящем в целях дисплея, вызвать
SecCertificateCopyValues
вместо этого.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecCertificateCopyPreference SecCertificateCopyPreference
(OS X v10.7)Получает предпочтительный сертификат для указанного имени и ключевого использования.
Объявление
Objective C
OSStatus SecCertificateCopyPreference ( CFStringRef name, uint32 keyUsage, SecCertificateRef *certificate );
Параметры
name
Строка, содержащая адрес электронной почты (RFC822) или другое имя, на которое требуют предпочтительный сертификат.
keyUsage
Ключевое значение использования, как определено в
Security.framework/cssmtype.h
. Передача0
проигнорировать этот параметр.certificate
По возврату, ссылке на предпочтительный сертификат, или
NULL
если ни один не был найден. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция обычно используется для получения предпочтительного сертификата шифрования для почтового получателя.
Специальные замечания
Использовать
SecCertificateCopyPreferred
для новой разработки вместо этого.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
См. также
-
Возвращает предпочтительный сертификат для указанного имени и ключевого использования.
Объявление
Swift
func SecCertificateCopyPreferred(_
name
: CFString!, _keyUsage
: CFArray!) -> Unmanaged<SecCertificate>!Objective C
SecCertificateRef SecCertificateCopyPreferred ( CFStringRef name, CFArrayRef keyUsage );
Параметры
name
Строка, содержащая адрес электронной почты (RFC 822) или другое имя, на которое требуют предпочтительный сертификат.
keyUsage
Массив, содержащий список атрибутов использования (
kSecAttrCanEncrypt
, например), илиNULL
если Вы не хотите запрашивать сертификат на основе определенного использования. ПосмотритеAttribute Item Keys
для полного списка возможных атрибутов использования.Возвращаемое значение
Возвращает предпочтительный сертификат для указанного имени и ключевого использования, или
NULL
если не существует соответствующий сертификат. Этот сертификат должен быть выпущен вызывающей стороной.Обсуждение
Эта функция обычно используется для получения предпочтительного сертификата шифрования для почтового получателя. Если предпочтительный сертификат не был установлен для предоставленного имени, эта функция возвраты
NULL
. Ваш код должен тогда выполнить поиск возможных сертификатов путем вызоваSecItemCopyMatching
.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Получает открытый ключ из сертификата.
Объявление
Swift
func SecCertificateCopyPublicKey(_
certificate
: SecCertificate!, _key
: UnsafeMutablePointer<Unmanaged<SecKey>?>) -> OSStatusObjective C
OSStatus SecCertificateCopyPublicKey ( SecCertificateRef certificate, SecKeyRef *key );
Параметры
certificate
Объект сертификата, от которого можно получить открытый ключ.
key
По возврату, точкам к открытому ключу для указанного сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает копию порядкового номера сертификата.
Объявление
Swift
func SecCertificateCopySerialNumber(_
certificate
: SecCertificate!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<CFData>!Objective C
CFDataRef SecCertificateCopySerialNumber ( SecCertificateRef certificate, CFErrorRef *error );
Параметры
certificate
Сертификат, с которого должен быть скопирован порядковый номер.
error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвраты a
CFDataRef
объект, содержащий закодированное DER целое число для порядкового номера сертификата (без тега и полей длины). ВозвратыNULL
если произошла ошибка. Вызывающая сторона ответственна за выпуск этого объекта.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает копию краткого описания сертификата.
Объявление
Swift
func SecCertificateCopyShortDescription(_
alloc
: CFAllocator!, _certificate
: SecCertificate!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<CFString>!Objective C
CFStringRef SecCertificateCopyShortDescription ( CFAllocatorRef alloc, SecCertificateRef certificate, CFErrorRef *error );
Параметры
alloc
Средство выделения, которое должно использоваться. Передача
NULL
илиkCFAllocatorDefault
использовать средство выделения по умолчанию.certificate
Сертификат, с которого должно быть скопировано краткое описание.
error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвраты a
CFStringRef
объект, содержащий краткое описание, илиNULL
если произошла ошибка.Обсуждение
Формат этой строки, как гарантируют, не будет непротиворечивым через различные операционные системы или версии. Не пытайтесь проанализировать его программно.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает человекочитаемую сводку сертификата.
Объявление
Swift
func SecCertificateCopySubjectSummary(_
certificate
: SecCertificate!) -> Unmanaged<CFString>!Objective C
CFStringRef SecCertificateCopySubjectSummary ( SecCertificateRef certificate );
Параметры
certificate
Объект сертификата, для которого Вы хотите возвратить сводную строку.
Возвращаемое значение
Строка, содержащая человекочитаемую сводку содержания сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним. ВозвратыNULL
если данные передали вcertificate
параметр не является допустимым объектом сертификата.Обсуждение
Поскольку все данные в строке прибывают из сертификата, строка находится на любом языке, используется в сертификате.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Создает словарь, представляющий содержание сертификата.
Объявление
Swift
func SecCertificateCopyValues(_
certificate
: SecCertificate!, _keys
: CFArray!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<CFDictionary>!Objective C
CFDictionaryRef SecCertificateCopyValues ( SecCertificateRef certificate, CFArrayRef keys, CFErrorRef *error );
Параметры
certificate
Сертификат, с которого должны быть скопированы значения.
keys
Массив строки значения OID, или
NULL
. Если не -NULL
, эти значения OID определяют который значения от сертификата до возврата. ЕслиNULL
, все значения возвращаются.Только OIDs, представляющие верхний уровень, вводят возвращенный словарь, может быть указан. Проигнорированы неизвестные OIDs. Для списка общего OIDs посмотрите
SecCertificateOIDs.h
заголовочный файл.error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвращает словарь, содержащий указанные значения из сертификата или
NULL
если происходит ошибка.Каждая запись в этом словаре является самостоятельно словарем с ключами, описанными в Ключах Свойства SecCertificateCopyValues (
kSecPropertyKeyType
, например).Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecCertificateGetAlgorithmID SecCertificateGetAlgorithmID
(OS X v10.7)Получает идентификатор алгоритма для сертификата.
Объявление
Objective C
OSStatus SecCertificateGetAlgorithmID ( SecCertificateRef certificate, const CSSM_X509_ALGORITHM_IDENTIFIER **algid );
Параметры
certificate
Объект сертификата, от которого можно получить идентификатор алгоритма.
algid
По возврату, точкам к структуре, идентифицирующей алгоритм для этого сертификата. Этот указатель остается допустимым, пока не выпущена ссылка сертификата. Не пытайтесь освободить этот указатель.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
CSSM_X509_ALGORITHM_IDENTIFIER
структура определяется вSecurity.framework/x509defs.h
и обсудил в Коллективной безопасности: CDSA и CSSM, версия 2 (с исправлениями) от Open Group (http://www .opengroup.org/security/cdsa.htm). Возможные алгоритмы перечисляются вSecurity.framework/oidsalg.h
.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecCertificateGetCLHandle SecCertificateGetCLHandle
(OS X v10.7)Получает дескриптор библиотеки сертификата от объекта сертификата.
Объявление
Objective C
OSStatus SecCertificateGetCLHandle ( SecCertificateRef certificate, CSSM_CL_HANDLE *clHandle );
Параметры
certificate
Объект сертификата, из которого можно получить дескриптор библиотеки сертификата.
clHandle
По возврату, точкам к дескриптору библиотеки сертификата указанного сертификата. Этот дескриптор остается допустимым, пока не выпущен объект сертификата.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Дескриптор библиотеки сертификата является идентификатором CSSM модуля библиотеки сертификата, управляющего сертификатом. Дескриптор библиотеки сертификата используется в качестве ввода ко многим функциям CSSM.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecCertificateGetData SecCertificateGetData
(OS X v10.7)Получает данные для сертификата.
Объявление
Objective C
OSStatus SecCertificateGetData ( SecCertificateRef certificate, CSSM_DATA_PTR data );
Параметры
certificate
Объект сертификата для сертификата, из которого можно получить данные.
data
По возврату, точкам к данным для указанного сертификата. Необходимо выделить площадь для a
CSSM_DATA
структура прежде, чем вызвать эту функцию. Этот указатель данных, как только гарантируют, останется допустимым, пока сертификат остается неизменным и допустимым.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция требует объекта сертификата, который может, например, быть создан с
SecCertificateCreateFromData
функция, полученная из идентификационных данных сSecIdentityCopyCertificate
функция, или полученный по сети (см. Безопасную Транспортную Ссылку).Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecCertificateGetIssuer SecCertificateGetIssuer
(OS X v10.7)Неподдерживаемый.
Объявление
Objective C
OSStatus SecCertificateGetIssuer ( SecCertificateRef certificate, const CSSM_X509_NAME **issuer );
Оператор импорта
Objective C
@import Security;
Доступность
Неподдерживаемый.
Осуждаемый в OS X v10.7.
-
Неподдерживаемый.
Объявление
Objective C
OSStatus SecCertificateGetItem ( SecCertificateRef certificate, SecKeychainItemRef *item );
Оператор импорта
Objective C
@import Security;
Доступность
Неподдерживаемый.
Не доступный 64-разрядным приложениям.
-
SecCertificateGetSubject SecCertificateGetSubject
(OS X v10.7)Неподдерживаемый.
Объявление
Objective C
OSStatus SecCertificateGetSubject ( SecCertificateRef certificate, const CSSM_X509_NAME **subject );
Оператор импорта
Objective C
@import Security;
Доступность
Неподдерживаемый.
Осуждаемый в OS X v10.7.
-
SecCertificateGetType SecCertificateGetType
(OS X v10.7)Получает тип указанного сертификата.
Объявление
Objective C
OSStatus SecCertificateGetType ( SecCertificateRef certificate, CSSM_CERT_TYPE *certificateType );
Параметры
certificate
Объект сертификата для сертификата, для которого можно получить тип.
certificateType
По возврату, точкам к типу указанного сертификата. Типы сертификата определяются в
Security.framework/cssmtype.h
. Необходимо выделить площадь для aCSSM_CERT_TYPE
структура прежде, чем вызвать эту функцию.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
Устанавливает предпочтительный сертификат для указанного имени, ключевого использования и даты.
Объявление
Swift
func SecCertificateSetPreference(_
certificate
: SecCertificate!, _name
: CFString!, _keyUsage
: uint32, _date
: CFDate!) -> OSStatusObjective C
OSStatus SecCertificateSetPreference ( SecCertificateRef certificate, CFStringRef name, uint32 keyUsage, CFDateRef date );
Параметры
certificate
Объект сертификата идентификация предпочтительного сертификата.
name
Строка, содержащая адрес электронной почты (RFC822) или другое имя, с которым должен быть связан предпочтительный сертификат.
keyUsage
Ключевое значение использования, как определено в
Security.framework/cssmtype.h
. Передача0
если Вы не хотите указывать определенное ключевое использование.date
Дата, после которой это предпочтение больше не действительно. Если предоставлено, предпочтительный сертификат изменяется, только если эта дата позже, чем в настоящее время сохраняемая настройка. Передача
NULL
если это предпочтение не должно быть ограничено по дате.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция обычно используется для установки предпочтительного сертификата шифрования для почтового получателя, любой вручную (при шифровании электронной почты получателю) или автоматически по получении зашифрованной электронной почты.
Специальные замечания
Использовать
SecCertificateSetPreferred
для новой разработки вместо этого.Поскольку это предпочтение сохранено в цепочке для ключей по умолчанию, если цепочка для ключей заблокирована, система просит, чтобы пользователь пароль или другой маркер разблокировал его. Эта функция может поэтому блокировать при ожидании ввода данных пользователем.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Устанавливает сертификат, который должен быть предпочтен для указанного имени и ключевого использования.
Объявление
Swift
func SecCertificateSetPreferred(_
certificate
: SecCertificate!, _name
: CFString!, _keyUsage
: CFArray!) -> OSStatusObjective C
OSStatus SecCertificateSetPreferred ( SecCertificateRef certificate, CFStringRef name, CFArrayRef keyUsage );
Параметры
certificate
Ключ для использования в качестве предпочтительного сертификата для указанного имени и ключевого использования.
name
Строка, содержащая адрес электронной почты (RFC 822) или другое имя, на которое требуют предпочтительный сертификат.
keyUsage
Массив, содержащий список атрибутов использования (
kSecAttrCanEncrypt
, например), илиNULL
если Вы хотите, чтобы этот сертификат был предпочтен для какого-либо использования. ПосмотритеAttribute Item Keys
для полного списка возможных атрибутов использования.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Получает сертификат, связанный с идентификационными данными.
Объявление
Swift
func SecIdentityCopyCertificate(_
identityRef
: SecIdentity!, _certificateRef
: UnsafeMutablePointer<Unmanaged<SecCertificate>?>) -> OSStatusObjective C
OSStatus SecIdentityCopyCertificate ( SecIdentityRef identityRef, SecCertificateRef *certificateRef );
Параметры
identityRef
Объект идентификационных данных для идентификационных данных, сертификат которых Вы хотите получить.
certificateRef
По возврату, точкам к объекту сертификата, связанному с указанными идентификационными данными. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Идентификационные данные являются цифровым сертификатом вместе с его связанным закрытым ключом.
Для сертификата в цепочке для ключей можно бросить
SecCertificateRef
тип данных к aSecKeychainItemRef
для использования с функциями Keychain Services.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
SecIdentityCopyPreference SecIdentityCopyPreference
(OS X v10.7)Возвращает предпочтительные идентификационные данные для указанного имени и ключевого использования.
Объявление
Objective C
OSStatus SecIdentityCopyPreference ( CFStringRef name, CSSM_KEYUSE keyUsage, CFArrayRef validIssuers, SecIdentityRef *identity );
Параметры
name
Строка, содержащая URI, адрес электронной почты RFC822, имя хоста DNS или другое имя, однозначно определяющее службу, требующую идентификационных данных.
keyUsage
Ключевое значение использования, как определено в
Security.framework/cssmtype.h
. Передача0
если Вы не хотите указывать определенное ключевое использование.validIssuers
Массив
CFDataRef
экземпляры, содержание которых является подчиненными именами допустимых эмитентов, как возвращено вызовом кSSLCopyDistinguishedNames
(Security.framework/SecureTransport.h
). ПередачаNULL
если Вы не хотите ограничивать поиск определенными эмитентами.identity
По возврату, ссылке на предпочтительные идентификационные данные, или
NULL
если ни один не был найден. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Если предпочтительные идентификационные данные не были установлены для указанного имени, возвращенная ссылка идентификационных данных
NULL
. Необходимо тогда обычно выполнять поиск возможных идентификационных данных, с помощьюSecIdentitySearchCreate
иSecIdentitySearchCopyNext
, разрешение пользователю выбрать из списка, если больше чем один найден.Специальные замечания
Использовать
SecIdentityCopyPreferred
для новой разработки вместо этого.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
См. также
-
Получает предпочтительные идентификационные данные для указанного имени и ключевого использования.
Объявление
Swift
func SecIdentityCopyPreferred(_
name
: CFString!, _keyUsage
: CFArray!, _validIssuers
: CFArray!) -> Unmanaged<SecIdentity>!Objective C
SecIdentityRef SecIdentityCopyPreferred ( CFStringRef name, CFArrayRef keyUsage, CFArrayRef validIssuers );
Параметры
name
Строка, содержащая адрес электронной почты (RFC 822) или другое имя, на которое требуют предпочтительные идентификационные данные.
keyUsage
Массив, содержащий список атрибутов использования (
kSecAttrCanEncrypt
, например), илиNULL
если Вы не хотите запрашивать идентификационные данные на определенное использование. ПосмотритеAttribute Item Keys
для полного списка возможных атрибутов использования.validIssuers
Массив
CFDataRef
объекты, содержание которых является подчиненными именами допустимых эмитентов, как возвращено вызовом кSSLCopyDistinguishedNames
. ПередачаNULL
позволить любому эмитенту.Возвращаемое значение
Возвращает идентификационные данные, или
NULL
если никакие идентификационные данные от одного из указанных эмитентов не были установлены как предпочтительные идентификационные данные для указанного имени и использования.Обсуждение
Если предпочтительные идентификационные данные не были установлены для предоставленного имени, эта функция возвраты
NULL
. Ваш код должен тогда выполнить поиск возможных идентификационных данных путем вызоваSecItemCopyMatching
.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Получает закрытый ключ, связанный с идентификационными данными.
Объявление
Swift
func SecIdentityCopyPrivateKey(_
identityRef
: SecIdentity!, _privateKeyRef
: UnsafeMutablePointer<Unmanaged<SecKey>?>) -> OSStatusObjective C
OSStatus SecIdentityCopyPrivateKey ( SecIdentityRef identityRef, SecKeyRef *privateKeyRef );
Параметры
identityRef
Объект идентификационных данных для идентификационных данных, закрытый ключ которых Вы хотите получить.
privateKeyRef
По возврату, точкам к объекту с закрытым ключом для указанных идентификационных данных. Закрытый ключ должен иметь тип класса
kSecPrivateKeyItemClass
. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Идентификационные данные являются цифровым сертификатом вместе с его связанным закрытым ключом.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Получает идентификационные данные в масштабе всей системы, связанные с указанным доменом.
Объявление
Swift
func SecIdentityCopySystemIdentity(_
domain
: CFString!, _idRef
: UnsafeMutablePointer<Unmanaged<SecIdentity>?>, _actualDomain
: UnsafeMutablePointer<Unmanaged<CFString>?>) -> OSStatusObjective C
OSStatus SecIdentityCopySystemIdentity ( CFStringRef domain, SecIdentityRef *idRef, CFStringRef *actualDomain );
Параметры
domain
Домен, для которого Вы хотите найти идентификационные данные, обычно в обратной нотации DNS, такой как
com.apple.security
. Можно также передать значения, определенные в Системных Доменах Идентификационных данных.idRef
По возврату объект идентификационных данных идентификационных данных в масштабе всей системы связался с указанным доменом. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.actualDomain
По возврату фактическое доменное имя возвращенного объекта идентификационных данных возвращается сюда. Это может отличаться от требуемого домена. Передача
NULL
если Вы не хотите эту информацию.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Если никакие идентификационные данные в масштабе всей системы не существуют для указанного домена, проблемно-ориентированная альтернатива может быть возвращена вместо этого, обычно (но не исключительно) идентификационные данные по умолчанию в масштабе всей системы (
kSecIdentityDomainDefault
).Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Создает новые идентификационные данные для сертификата и его связанного закрытого ключа.
Объявление
Swift
func SecIdentityCreateWithCertificate(_
keychainOrArray
: AnyObject!, _certificateRef
: SecCertificate!, _identityRef
: UnsafeMutablePointer<Unmanaged<SecIdentity>?>) -> OSStatusObjective C
OSStatus SecIdentityCreateWithCertificate ( CFTypeRef keychainOrArray, SecCertificateRef certificateRef, SecIdentityRef *identityRef );
Параметры
keychainOrArray
Ссылка на цепочку для ключей или массив цепочек для ключей для поиска связанного закрытого ключа. Указать
NULL
для поиска цепочки для ключей пользователя по умолчанию ищут список.certificateRef
Сертификат, для которого Вы хотите создать идентификационные данные.
identityRef
По возврату идентификационные данные возражают для сертификата и его связанного закрытого ключа. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Если связанный закрытый ключ не найден в одной из указанных цепочек для ключей, эта функция сбои с надлежащим кодом ошибки (обычно
errSecItemNotFound
), и ничего не возвращает вidentityRef
параметр.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
SecIdentitySearchCopyNext SecIdentitySearchCopyNext
(OS X v10.7)Находит следующие идентификационные данные, соответствующие указанные критерии поиска
Объявление
Objective C
OSStatus SecIdentitySearchCopyNext ( SecIdentitySearchRef searchRef, SecIdentityRef *identity );
Параметры
searchRef
Объект поиска идентификационных данных, указывающий критерии поиска для этого поиска. Вы создаете объект поиска идентификационных данных путем вызова
SecIdentitySearchCreate
функция.identity
По возврату, точкам к объекту идентификационных данных следующих идентификационных данных соответствия (если таковые имеются). Вызовите
CFRelease
функционируйте для выпуска этого объекта по окончании с ним.Возвращаемое значение
Код результата. Когда больше нет идентификационных данных, соответствующих параметры, указанные к
SecIdentitySearchCreate
,errSecItemNotFound
возвращается. См. Сертификат, Ключ и Коды Результата Trust Services.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecIdentitySearchCreate SecIdentitySearchCreate
(OS X v10.7)Создает поисковый объект для нахождения идентификационных данных.
Объявление
Objective C
OSStatus SecIdentitySearchCreate ( CFTypeRef keychainOrArray, CSSM_KEYUSE keyUsage, SecIdentitySearchRef *searchRef );
Параметры
keychainOrArray
Объект цепочки для ключей для единственной цепочки для ключей для поиска массив цепочки для ключей возражает для ряда цепочек для ключей для поиска, или
NULL
для поиска цепочки для ключей пользователя по умолчанию ищут список.keyUsage
Ключ CSSM использует значение, как определено в
Security.framework/cssmtype.h
. (Обратите внимание на то, что, потому что ключевое восстановление не реализовано,SIGN_RECOVER
иVERIFY_RECOVER
константы не поддерживаются.) Используют этот параметр для фильтрации поиска путем указания ключевого использования для идентификационных данных. Передача0
если Вы хотите все идентификационные данные, возвращенные этим поиском. ПередачаCSSM_KEYUSE_ANY
ограничить идентификационные данные возвратилось к тем, которые могут использоваться для каждой работы.searchRef
По возврату, точкам к объекту поиска идентификационных данных. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете сделаны с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Вы можете OR
CSSM_KEYUSE
значения вместе для установки больше чем одного значения для ключевого использования. Используйте возвращенный поисковый объект в вызовах кSecIdentitySearchCopyNext
функция для получения идентификационных данных, соответствующих критерии поиска.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecIdentitySetPreference SecIdentitySetPreference
(OS X v10.7)Устанавливает предпочтительные идентификационные данные для указанного имени и ключевого использования.
Объявление
Objective C
OSStatus SecIdentitySetPreference ( SecIdentityRef identity, CFStringRef name, CSSM_KEYUSE keyUsage );
Параметры
identity
Ссылка на предпочтительные идентификационные данные.
name
Строка, содержащая URI, адрес электронной почты RFC822, имя хоста DNS или другое имя, однозначно определяющее службу, требующую этих идентификационных данных.
keyUsage
Ключевое значение использования, как определено в
Security.framework/cssmtype.h
. Передача0
если Вы не хотите указывать определенное ключевое использование.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Специальные замечания
Использовать
SecIdentitySetPreferred
для новой разработки вместо этого.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
См. также
-
Устанавливает идентификационные данные, которые должны быть предпочтены для указанного имени и ключевого использования.
Объявление
Swift
func SecIdentitySetPreferred(_
identity
: SecIdentity!, _name
: CFString!, _keyUsage
: CFArray!) -> OSStatusObjective C
OSStatus SecIdentitySetPreferred ( SecIdentityRef identity, CFStringRef name, CFArrayRef keyUsage );
Параметры
identity
Идентификационные данные для установки, как предпочтено для указанного имени и ключевого использования.
name
Строка, содержащая адрес электронной почты (RFC 822) или другое имя, на которое требуют предпочтительный сертификат.
keyUsage
Массив, содержащий список атрибутов использования (
kSecAttrCanEncrypt
, например), илиNULL
если Вы хотите, чтобы эти идентификационные данные были предпочтены для какого-либо использования. ПосмотритеAttribute Item Keys
для полного списка возможных атрибутов использования.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
См. также
-
Присваивает идентификационные данные в масштабе всей системы, которые будут связаны с указанным доменом.
Объявление
Swift
func SecIdentitySetSystemIdentity(_
domain
: CFString!, _idRef
: SecIdentity!) -> OSStatusObjective C
OSStatus SecIdentitySetSystemIdentity ( CFStringRef domain, SecIdentityRef idRef );
Параметры
domain
Домен, которому указанные идентификационные данные будут присвоены, обычно в обратной нотации DNS, такой как
com.apple.security
. Можно также передать значения, определенные в Системных Доменах Идентификационных данных.idRef
Идентификационные данные, которые будут присвоены указанному домену. Передача
NULL
удалить любые присвоенные в настоящее время идентификационные данные для указанного домена; в этом случае, если никакие идентификационные данные не существуют для указанного домена, это не ошибка.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Вызывающая сторона должна работать как корень.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Возвращает идентификационные данные и сертификаты в PKCS # 12 отформатированный блоб.
Объявление
Swift
func SecPKCS12Import(_
pkcs12_data
: CFData!, _options
: CFDictionary!, _items
: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatusObjective C
OSStatus SecPKCS12Import ( CFDataRef pkcs12_data, CFDictionaryRef options, CFArrayRef *items );
Параметры
pkcs12_data
Данные № 12 PKCS Вы хотите декодировать.
options
Словарь пар ключ/значение, указывающих опции для функции.
items
По возврату, массиву
CFDictionary
словари значения ключа. Функция возвращает один словарь для каждого элемента (идентификационные данные или сертификат) в блобе № 12 PKCS. Для списка ключей словаря см. Ключи Элемента Импорта № 12 PKCS.Возвращаемое значение
Код результата. Функциональные возвраты
errSecSuccess
если не было никаких ошибок,errSecDecode
если блоб не может быть считан или уродлив, иerrSecAuthFailed
если пароль не был корректен, или данные в блобе были повреждены. См. Сертификат, Ключ и Коды Результата Trust Services.Обсуждение
Ваше приложение может импортировать PKCS # 12 отформатированный блоб (файл с расширением
.p12
) содержа сертификаты и идентификационные данные, где идентификационные данные являются цифровым сертификатом вместе с его связанным закрытым ключом. Можно использоватьSecPKCS12Import
функция для полученияSecIdentityRef
объекты (включаяSecCertificateRef
иSecKeyRef
объекты) для идентификационных данных в блобе, вместе сSecCertificateRef
объекты для сертификатов в блобе должны были проверить идентификационные данные, иSecTrustRef
доверительные объекты управления должны были оценить доверие для идентификационных данных. Можно тогда использовать Keychain Services API (см. Ссылку Keychain Services) помещать идентификационные данные и связанные сертификаты в цепочке для ключей.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
-
SecKeyCreatePair SecKeyCreatePair
(OS X v10.7)Создает асимметричную пару ключей и хранит его в цепочке для ключей.
Объявление
Objective C
OSStatus SecKeyCreatePair ( SecKeychainRef keychainRef, CSSM_ALGORITHMS algorithm, uint32 keySizeInBits, CSSM_CC_HANDLE contextHandle, CSSM_KEYUSE publicKeyUsage, uint32 publicKeyAttr, CSSM_KEYUSE privateKeyUsage, uint32 privateKeyAttr, SecAccessRef initialAccess, SecKeyRef *publicKey, SecKeyRef *privateKey );
Параметры
keychainRef
Объект цепочки для ключей для цепочки для ключей, в которой можно сохранить элементы с открытым ключом и с закрытым ключом. Указать
NULL
для цепочки для ключей по умолчанию.algorithm
Алгоритм для использования для генерации пары ключей. Возможные значения определяются в
Security.framework/cssmtype.h
. Алгоритмы, поддерживаемые модулем AppleCSP, перечислены в Функциональной спецификации Провайдера криптографических служб Apple. Этот параметр проигнорирован еслиcontextHandle
параметр не0
.keySizeInBits
Размер ключа для пары ключей. См. Функциональную спецификацию Провайдера криптографических служб Apple для допустимых размеров ключа для каждого алгоритма, поддерживаемого модулем AppleCSP.
contextHandle
CSSM CSP дескриптор, или
0
. Если этот параметр не0
,algorithm
иkeySizeInBits
параметры проигнорированы.publicKeyUsage
Немного маски, указывающей все разрешенное использование для нового открытого ключа. Возможные значения для
CSSM_KEYUSE
тип данных определяется вSecurity.framework/cssmtype.h
.publicKeyAttr
Маленькие значения атрибута определения маски для нового открытого ключа. Значения битовой маски эквивалентны определенным для
CSSM_KEYATTR_FLAGS
вSecurity.framework/cssmtype.h
.privateKeyUsage
Немного маски, указывающей все разрешенное использование для нового закрытого ключа. Возможные значения для
CSSM_KEYUSE
тип данных определяется вSecurity.framework/cssmtype.h
.privateKeyAttr
Маленькие значения атрибута определения маски для нового закрытого ключа. Значения битовой маски определяются в
CSSM_KEYATTR_FLAGS
вSecurity.framework/cssmtype.h
. Поддерживаемые значенияCSSM_KETATTR_EXTRACTABLE
(ключ может быть вынут из цепочки для ключей), иCSSM_KEYATTR_SENSITIVE
(извлекаемый ключ может быть вынут из цепочки для ключей только в обернутой форме — т.е. зашифрован). (Обратите внимание на то, что необходимо установить оба из этих битов, если Вы хотите, чтобы ключ был извлекаемым в обернутой форме.) Для любого другого значения этого атрибута ключ не может быть вынут из цепочки для ключей ни при каких обстоятельствах.initialAccess
Объект доступа, устанавливающий первоначальный список управления доступом для каждого из ключей, возвратился. Посмотрите Создание Объекта Доступа в Ссылке Keychain Services для функций, создающих объект доступа. Для доступа по умолчанию указать
NULL
. Значение по умолчанию является свободным доступом к инструменту или приложению, вызывающему эту функцию с опробованным доступом к уязвимой информации любым другим приложением, заставляющим диалоговое окно подтверждения быть выведенным на экран.publicKey
По возврату, точкам к объекту элемента цепочки для ключей нового открытого ключа. Используйте этот объект в качестве ввода к
SecKeyGetCSSMKey
функция для полученияCSSM_KEY
структура, содержащая ключ. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.privateKey
По возврату, точкам к объекту элемента цепочки для ключей нового закрытого ключа. Используйте этот объект в качестве ввода к
SecKeyGetCSSMKey
функция для полученияCSSM_KEY
структура, содержащая ключ. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция использует значения по умолчанию для любых атрибутов, требуемых определенными алгоритмами генерации ключей. Алгоритмы, поддерживаемые модулем AppleCSP, перечислены в Функциональной спецификации Провайдера криптографических служб Apple. Для получения дополнительной информации об алгоритмах и значениях по умолчанию для параметров генерации ключей, загрузите концепцию безопасности CDSA с веб-сайта Apple С открытым исходным кодом в http://opensource .apple.com/и считайте файл
Supported_CSP_Algorithms.doc
в папке Documentation.Если Вам нужны дополнительные параметры для генерации ключа — как требуется некоторыми алгоритмами — вызов
SecKeychainGetCSPHandle
получить CSSM CSP дескриптор и затем вызватьCSSM_CSP_CreateKeyGenContext
создать контекст. С этим контекстом использоватьCSSM_UpdateContextAttributes
добавить дополнительные параметры. Наконец, вызватьCSSM_DeleteContext
избавляться от контекста после вызывания этой функции.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
См. также
-
Создает объект SecKeyRef для симметричного ключа.
Объявление
Swift
func SecKeyCreateFromData(_
parameters
: CFDictionary!, _keyData
: CFData!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<SecKey>!Objective C
SecKeyRef SecKeyCreateFromData ( CFDictionaryRef parameters, CFDataRef keyData, CFErrorRef *error );
Параметры
parameters
Словарь параметра, описывающий ключ. Посмотрите обсуждение для подробных данных.
keyData
A
CFDataRef
объект, содержащий необработанные ключевые данные.error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвраты a
SecKeyRef
объект, содержащий симметричный ключ.Обсуждение
Словарь параметров должен содержать (в минимуме) запись для
kSecAttrKeyType
ключ со значениемkSecAttrKeyTypeAES
или любой другой ключевой тип, определенный вKey Type Value
.Ключи ниже могут быть дополнительно установлены в словаре параметров (с a
CFBooleanRef
значение) для переопределения ключевых значений использования по умолчанию:Эти значения значение по умолчанию к
true
если не указано никакое значение.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает ключевой объект, в котором ключевые данные получены из пароля.
Объявление
Swift
func SecKeyDeriveFromPassword(_
password
: CFString!, _parameters
: CFDictionary!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<SecKey>!Objective C
SecKeyRef SecKeyDeriveFromPassword ( CFStringRef password, CFDictionaryRef parameters, CFErrorRef *error );
Параметры
password
Пароль, из которого должен быть получен ключ.
parameters
Ряд параметров для получения пароля.
error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвращает полученный
SecKeyRef
объект, илиNULL
на ошибке.Обсуждение
Словарь параметров должен содержать, по крайней мере, следующие ключи:
kSecKeyKeyType
— тип симметричного ключа для генерации.kSecAttrSalt
— aCFDataRef
объект, содержащий соленое значение, смешанное в псевдослучайные раунды.
Словарь параметров может содержать следующие дополнительные ключи:
kSecAttrPRF
- алгоритм для использования для псевдослучайной функции.Если нуль, это принимает значение по умолчанию к
kSecAttrPRFHmacAlgSHA1
. Для списка возможных значений см. Константы Значения kSecAttrPRF.kSecAttrRounds
— число раз для вызывания псевдослучайной функции. Если нуль, количество вычислено так, чтобы вычисление взяло 1/10 секунды (в среднем).kSecAttrKeySizeInBits
— aCFNumberRef
значение, содержащее требуемый размер ключа в битах. Размер ключа должен быть допустимым для ключевого типа. Значения по умолчанию к 128, если не предоставленный.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecKeyGenerate SecKeyGenerate
(OS X v10.7)Создает симметричный ключ и дополнительно хранит его в цепочке для ключей.
Объявление
Objective C
OSStatus SecKeyGenerate ( SecKeychainRef keychainRef, CSSM_ALGORITHMS algorithm, uint32 keySizeInBits, CSSM_CC_HANDLE contextHandle, CSSM_KEYUSE keyUsage, uint32 keyAttr, SecAccessRef initialAccess, SecKeyRef *keyRef );
Параметры
keychainRef
Цепочка для ключей, в которой можно сохранить сгенерированный ключ. Указать
NULL
генерировать переходный ключ.algorithm
Алгоритм для использования в генерации симметричного ключа. Возможные значения определяются в
cssmtype.h
. Алгоритмы, поддерживаемые модулем AppleCSP, перечислены в Функциональной спецификации Провайдера криптографических служб Apple. Этот параметр проигнорирован еслиcontextHandle
параметр не0
.keySizeInBits
Размер ключа для пары ключей. Этот параметр проигнорирован если
contextHandle
параметр не0
.contextHandle
CSSM CSP дескриптор, или
0
. Если этот параметр не0
,algorithm
иkeySizeInBits
параметры проигнорированы.keyUsage
Немного маски, указывающей все разрешенное использование для нового ключа. Возможные значения для
CSSM_KEYUSE
тип данных определяется вcssmtype.h
.keyAttr
Маленькие значения атрибута определения маски для нового ключа. Значения битовой маски определяются в
CSSM_KEYATTR_FLAGS
вcssmtype.h
.initialAccess
Объект доступа, устанавливающий первоначальный список управления доступом для ключа, возвратился. Посмотрите Создание Объекта Доступа в Ссылке Keychain Services для функций, создающих объект доступа. Если Вы указываете, этот параметр проигнорирован
NULL
дляkeychainRef
параметр.keyRef
По возврату, точкам к объекту элемента цепочки для ключей нового открытого ключа. Используйте этот объект в качестве ввода к
SecKeyGetCSSMKey
функция для полученияCSSM_KEY
структура, содержащая ключ. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Алгоритмы генерации ключей, поддерживаемые модулем AppleCSP, перечислены в Функциональной спецификации Провайдера криптографических служб Apple. Для получения дополнительной информации об алгоритмах и значениях по умолчанию для параметров генерации ключей, загрузите концепцию безопасности CDSA с веб-сайта Apple С открытым исходным кодом в http://opensource .apple.com/и считайте файл
Supported_CSP_Algorithms.doc
в папке Documentation.Если Вам нужны дополнительные параметры для генерации ключа — как требуется некоторыми алгоритмами — вызов
SecKeychainGetCSPHandle
получить CSSM CSP дескриптор и затем вызватьCSSM_CSP_CreateKeyGenContext
создать контекст. С этим контекстом использоватьCSSM_UpdateContextAttributes
добавить дополнительные параметры. Наконец, вызватьCSSM_DeleteContext
избавляться от контекста после вызывания этой функции.Специальные замечания
Использовать
SecKeyGenerateSymmetric
вместо этого.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
См. также
-
Создает асимметричную пару ключей.
Объявление
Swift
func SecKeyGeneratePair(_
parameters
: CFDictionary!, _publicKey
: UnsafeMutablePointer<Unmanaged<SecKey>?>, _privateKey
: UnsafeMutablePointer<Unmanaged<SecKey>?>) -> OSStatusObjective C
OSStatus SecKeyGeneratePair ( CFDictionaryRef parameters, SecKeyRef *publicKey, SecKeyRef *privateKey );
Параметры
parameters
Словарь пар ключ/значение, указывающих тип ключей, которые будут сгенерированы.
publicKey
По возврату, точкам к объекту элемента цепочки для ключей нового открытого ключа. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.privateKey
По возврату, точкам к объекту элемента цепочки для ключей нового закрытого ключа. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Для генерации пары ключей словарь передал в
parameters
параметр должен содержать, по крайней мере, следующие пары ключ/значение:A
kSecAttrKeyType
ключ со значением любого ключевого типа, определенного вSecItem.h
(см. Ссылку Keychain Services), например,kSecAttrKeyTypeRSA
.A
kSecAttrKeySizeInBits
ключ со значением, указывающим требуемый размер ключа в битах. Это может быть указано как любой aCFNumberRef
илиCFStringRef
значение. Например, ключи RSA могут иметь значения размера ключа 512, 768, 1024, или 2048.
Кроме того, можно указать много других дополнительных атрибутов для открытых и закрытых ключей. Путем Вы делаете это зависит от того, пишете ли Вы код для OS X или iOS:
В OS X добавьте пары ключ/значение к
parameters
словарь непосредственно. Указанные атрибуты применяются и к открытым и к закрытым ключам.В iOS добавьте словари для ключей
kSecPublicKeyAttrs
иkSecPrivateKeyAttrs
кparameters
словарь, и обеспечивает атрибуты в тех словарях. Атрибуты, указанные в этих словарях, добавляются или к или к закрытому ключу с открытым ключом, соответственно, позволяя Вам применить отдельные атрибуты к каждому ключу.
Возможные атрибуты следующим образом; для подробных данных о каждом атрибуте посмотрите Ссылку Keychain Services:
kSecAttrLabel
— Значение по умолчаниюNULL
.kSecAttrIsPermanent
— Если этот ключ присутствует и имеет булево значениеtrue
, пара ключей или пара ключей добавляются к цепочке для ключей по умолчанию.kSecAttrApplicationTag
— Значение по умолчаниюNULL
.kSecAttrEffectiveKeySize
— Значение по умолчанию (NULL
) устанавливает эффективный размер ключа в то же как общий размер ключа (kSecAttrKeySizeInBits
).kSecAttrCanEncrypt
— Значение по умолчаниюfalse
для закрытых ключей,true
для открытых ключей.kSecAttrCanDecrypt
— Значение по умолчаниюtrue
для закрытых ключей,false
для открытых ключей.kSecAttrCanDerive
— Значение по умолчаниюtrue
.kSecAttrCanSign
— Значение по умолчаниюtrue
для закрытых ключей,false
для открытых ключей.kSecAttrCanVerify
— Значение по умолчаниюfalse
для закрытых ключей,true
для открытых ключей.kSecAttrCanUnwrap
— Значение по умолчаниюtrue
для закрытых ключей,false
для открытых ключей.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Генерирует пару «открытый/закрытый ключ».
Объявление
Swift
func SecKeyGeneratePairAsync(_
parameters
: CFDictionary!, _deliveryQueue
: dispatch_queue_t!, _result
: SecKeyGeneratePairBlock!)Objective C
void SecKeyGeneratePairAsync ( CFDictionaryRef parameters, dispatch_queue_t deliveryQueue, SecKeyGeneratePairBlock result );
Параметры
parameters
Словарь параметра генерации ключей. В минимуме это должно содержать
kSecAttrKeyType
иkSecAttrKeySizeInBits
. Кроме того, эта функция принимает значения по умолчанию для следующих ключей:kSecAttrLabel
значения по умолчанию кNULL
.kSecAttrIsPermanent
если этот ключ присутствует и имеет значениеkCFBooleanTrue
, пара ключей или пара ключей будут добавлены к цепочке для ключей по умолчанию.kSecAttrApplicationTag
значения по умолчанию кNULL
.kSecAttrEffectiveKeySize
значения по умолчанию кNULL
, что означает, что эффективный размер ключа совпадает с размером ключа (kSecAttrKeySizeInBits
).kSecAttrCanEncrypt
значения по умолчанию кkCFBooleanFalse
для закрытых ключей,kCFBooleanTrue
для открытых ключей.kSecAttrCanDecrypt
значения по умолчанию кkCFBooleanTrue
для закрытых ключей,kCFBooleanFalse
для открытых ключей.kSecAttrCanDerive
значения по умолчанию кkCFBooleanTrue
.kSecAttrCanSign
значения по умолчанию кkCFBooleanTrue
для закрытых ключей,kCFBooleanFalse
для открытых ключей.kSecAttrCanVerify
значения по умолчанию кkCFBooleanFalse
для закрытых ключей,kCFBooleanTrue
для открытых ключей.kSecAttrCanWrap
значения по умолчанию кkCFBooleanFalse
для закрытых ключей,kCFBooleanTrue
для открытых ключей.kSecAttrCanUnwrap
значения по умолчанию кkCFBooleanTrue
для закрытых ключей,kCFBooleanFalse
для открытых ключей.
Эти значения по умолчанию могут быть переопределены путем добавления значения для связанного ключа в словаре параметра.
deliveryQueue
Очередь отгрузки, на которую должен быть запланирован блок результата.
result
Блок типа
SecKeyGeneratePairBlock
это вызывают с результатом после завершения.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Генерирует случайный симметричный ключ.
Объявление
Swift
func SecKeyGenerateSymmetric(_
parameters
: CFDictionary!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<SecKey>!Objective C
SecKeyRef SecKeyGenerateSymmetric ( CFDictionaryRef parameters, CFErrorRef *error );
Параметры
parameters
Словарь параметра генерации ключей. В минимуме это должно содержать
kSecAttrKeyType
иkSecAttrKeySizeInBits
. Кроме того, эта функция принимает значения по умолчанию для следующих ключей:kSecAttrLabel
значения по умолчанию кNULL
.kSecAttrIsPermanent
если этот ключ присутствует и имеет значениеkCFBooleanTrue
, пара ключей или пара ключей будут добавлены к цепочке для ключей по умолчанию.kSecAttrApplicationTag
значения по умолчанию кNULL
.kSecAttrEffectiveKeySize
значения по умолчанию кNULL
, что означает, что эффективный размер ключа совпадает с размером ключа (kSecAttrKeySizeInBits
).kSecAttrCanEncrypt
значения по умолчанию кkCFBooleanFalse
для закрытых ключей,kCFBooleanTrue
для открытых ключей.kSecAttrCanDecrypt
значения по умолчанию кkCFBooleanTrue
для закрытых ключей,kCFBooleanFalse
для открытых ключей.kSecAttrCanDerive
значения по умолчанию кkCFBooleanTrue
.kSecAttrCanSign
значения по умолчанию кkCFBooleanTrue
для закрытых ключей,kCFBooleanFalse
для открытых ключей.kSecAttrCanVerify
значения по умолчанию кkCFBooleanFalse
для закрытых ключей,kCFBooleanTrue
для открытых ключей.kSecAttrCanWrap
значения по умолчанию кkCFBooleanFalse
для закрытых ключей,kCFBooleanTrue
для открытых ключей.kSecAttrCanUnwrap
значения по умолчанию кkCFBooleanTrue
для закрытых ключей,kCFBooleanFalse
для открытых ключей.
Эти значения по умолчанию могут быть переопределены путем добавления значения для связанного ключа в словаре параметра.
Когда используется в качестве замены для
SecKeyGenerate
, установитеkSecUseKeychain
ключ к цепочке для ключей (SecKeychainRef
) в который ключ должен быть сохранен,kSecAttrLabel
к видимой пользователем метке для ключа, иkSecAttrApplicationLabel
к идентификатору, определенному Вашим приложением, для последующего использования в вызовах кSecItemCopyMatching
. Кроме того, можно указать средства управления доступом цепочки для ключей для ключа путем установкиkSecAttrAccess
к aSecAccessRef
объект.error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвращает недавно сгенерированный симметричный ключ, или
NULL
на отказ.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Разворачивает обернутый симметричный ключ.
Объявление
Swift
func SecKeyUnwrapSymmetric(_
keyToUnwrap
: UnsafeMutablePointer<Unmanaged<CFData>?>, _unwrappingKey
: SecKey!, _parameters
: CFDictionary!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<SecKey>!Objective C
SecKeyRef SecKeyUnwrapSymmetric ( CFDataRef *keyToUnwrap, SecKeyRef unwrappingKey, CFDictionaryRef parameters, CFErrorRef *error );
Параметры
keyToUnwrap
Обернутый ключ для разворачивания.
unwrappingKey
Ключ, который должен использоваться для разворачивания
keyToUnwrap
.parameters
Список параметров для процесса разворачивания. Это обычно - или пустой словарь или словарь, содержащий значение для
kSecAttrSalt
.error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвращает развернутый ключ, или
NULL
на отказ.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Обертывает симметричный ключ с другим ключом.
Объявление
Swift
func SecKeyWrapSymmetric(_
keyToWrap
: SecKey!, _wrappingKey
: SecKey!, _parameters
: CFDictionary!, _error
: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Unmanaged<CFData>!Objective C
CFDataRef SecKeyWrapSymmetric ( SecKeyRef keyToWrap, SecKeyRef wrappingKey, CFDictionaryRef parameters, CFErrorRef *error );
Параметры
keyToWrap
Ключ для обертывания.
wrappingKey
Список параметров для процесса разворачивания. Это обычно - или пустой словарь или словарь, содержащий значение для
kSecAttrSalt
.parameters
Ключ для использования при обертывании
keyToWrap
.error
Указатель на a
CFErrorRef
переменная, где ошибочный объект хранится на отказ. Если нетNULL
, вызывающая сторона ответственна за проверку этой переменной и выпуск полученного объекта, если это существует.Возвращаемое значение
Возвращает обернутый ключ, или
NULL
на ошибку.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecKeyGetCredentials SecKeyGetCredentials
(OS X v10.7)Возвращает учетные данные доступа для ключа.
Объявление
Objective C
OSStatus SecKeyGetCredentials ( SecKeyRef keyRef, CSSM_ACL_AUTHORIZATION_TAG operation, SecCredentialType credentialType, const CSSM_ACCESS_CREDENTIALS **outCredentials );
Параметры
keyRef
Ключ, для которого Вы хотите учетные данные доступа.
operation
Тип работы, которая будет выполняться с этим ключом. Возможные значения перечислены под “Типами тега авторизации” в
Security.framework/cssmtype.h
.credentialType
Тип учетных данных требуют. Посмотрите Ключевые Учетные Константы Типа для возможных значений.
outCredentials
По возврату, точкам к учетным данным доступа для указанного ключа. Этот указатель остается допустимым, пока не выпущена ключевая ссылка. Не пытайтесь изменить или освободить эти данные.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Учетные данные доступа требуются как ввод ко многим функциям CSSM.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecKeyGetCSPHandle SecKeyGetCSPHandle
(OS X v10.7)Возвращает CSSM CSP дескриптор для ключа.
Объявление
Objective C
OSStatus SecKeyGetCSPHandle ( SecKeyRef keyRef, CSSM_CSP_HANDLE *cspHandle );
Параметры
keyRef
Ключ, для которого Вы хотите CSSM CSP дескриптор.
cspHandle
По возврату, точкам к CSSM CSP дескриптор для указанного ключа. Этот указатель остается допустимым, пока не выпущена ключевая ссылка. Не пытайтесь изменить или освободить эти данные.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
CSSM CSP дескриптор требуется как ввод ко многим функциям CSSM.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
Связали длину блока с криптографическим ключом.
Объявление
Swift
func SecKeyGetBlockSize(_
key
: SecKey!) -> UIntObjective C
size_t SecKeyGetBlockSize ( SecKeyRef key );
Параметры
key
Ключ, для которого Вы хотите длину блока.
Возвращаемое значение
Длина блока связалась с ключом в байтах. Если ключ является ключом RSA, например, это - размер модуля.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
-
SecKeyGetCSSMKey SecKeyGetCSSMKey
(OS X v10.7)Получает указатель на
CSSM_KEY
структура, содержащая ключ, сохранена в элементе цепочки для ключей.Объявление
Objective C
OSStatus SecKeyGetCSSMKey ( SecKeyRef key, const CSSM_KEY **cssmKey );
Параметры
key
Ключевой объект элемента цепочки для ключей.
cssmKey
Указатель на a
CSSM_KEY
структура для указанного ключа. Вы не должны изменять или освобождать эти данные, потому что они принадлежат системе.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
CSSM_KEY
структура используется для представления ключей в CSSM и используется в качестве входного значения к нескольким функциям CSSM.CSSM_KEY
структура допустима, пока не выпущен объект элемента цепочки для ключей.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
Возвращает словарь, содержащий свойства политики.
Объявление
Swift
func SecPolicyCopyProperties(_
policyRef
: SecPolicy!) -> Unmanaged<CFDictionary>!Objective C
CFDictionaryRef SecPolicyCopyProperties ( SecPolicyRef policyRef );
Параметры
policyRef
Политика, с которой должны быть скопированы свойства.
Возвращаемое значение
Для списка допустимых ключей свойства, которые могут появиться в словаре результата, посмотрите Ключи Политики безопасности.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает объект политики для политики X.509 по умолчанию.
Объявление
Swift
func SecPolicyCreateBasicX509() -> Unmanaged<SecPolicy>!
Objective C
SecPolicyRef SecPolicyCreateBasicX509 ( void );
Возвращаемое значение
Объект политики. Вызовите
CFRelease
функционируйте для выпуска объекта, когда Вы будете закончены с ним.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
-
Возвращает объект политики для оценки цепочек сертификата SSL.
Объявление
Swift
func SecPolicyCreateSSL(_
server
: Boolean, _hostname
: CFString!) -> Unmanaged<SecPolicy>!Objective C
SecPolicyRef SecPolicyCreateSSL ( Boolean server, CFStringRef hostname );
Параметры
server
Указать
true
на клиентской стороне для возврата политики для сертификатов сервера SSL.hostname
При указании значения для этого параметра политика потребует, чтобы указанное значение соответствовало имя хоста в листовом сертификате.
Возвращаемое значение
Объект политики. Вызовите
CFRelease
функционируйте для выпуска объекта, когда Вы будете закончены с ним.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
-
SecPolicyCreateWithOID SecPolicyCreateWithOID
(OS X v10.9)Возвращает объект политики для указанного идентификатора текстового объекта политики.
Объявление
Objective C
SecPolicyRef SecPolicyCreateWithOID ( CFTypeRef policyOID );
Параметры
policyOID
Идентификатор объекта (OID) политики вводит для этой политики.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.7 и позже.
Осуждаемый в OS X v10.9.
-
SecPolicyGetOID SecPolicyGetOID
(OS X v10.7)Получает идентификатор объекта политики.
Объявление
Objective C
OSStatus SecPolicyGetOID ( SecPolicyRef policyRef, CSSM_OID *oid );
Параметры
policyRef
Объект политики, для которого можно получить идентификатор объекта. Можно получить объект политики с
SecPolicySearchCopyNext
функция.oid
По возврату, точкам к идентификатору объекта политики. Этот идентификатор принадлежит объекту политики и остается допустимым, пока не уничтожается тот объект; не выпускайте его отдельно.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Идентификатор объекта политики, в форме a
CSSM_OID
структура, используется в API CSSM вместе со значением политики. ИспользуйтеSecPolicyGetValue
функция для получения значения, соответствующего этому идентификатору объекта.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
SecPolicyGetTPHandle SecPolicyGetTPHandle
(OS X v10.7)Получает доверительный дескриптор политики для объекта политики.
Объявление
Objective C
OSStatus SecPolicyGetTPHandle ( SecPolicyRef policyRef, CSSM_TP_HANDLE *tpHandle );
Параметры
policyRef
Объект политики, из которого можно получить доверительный дескриптор политики.
tpHandle
По возврату, точкам к доверительному дескриптору политики объекта политики. Дескриптор остается допустимым, пока не выпущен объект политики.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Доверительный дескриптор политики является идентификатором CSSM доверительного модуля политики, управляющего сертификатом. Доверительный дескриптор политики является использованием в качестве ввода ко многим функциям CSSM.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
SecPolicyGetValue SecPolicyGetValue
(OS X v10.7)Получает значение политики.
Объявление
Objective C
OSStatus SecPolicyGetValue ( SecPolicyRef policyRef, CSSM_DATA *value );
Параметры
policyRef
Объект политики, для которого можно получить значение.
value
По возврату, точкам к значению политики. Это значение принадлежит объекту политики и остается допустимым, пока не уничтожается тот объект; не выпускайте его отдельно.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Значение политики определяется и интерпретируется политикой. При использовании CSSM можно указать объектных пар значения политики идентификатора, как введено к
CSSM_TP_POLICYINFO
функция. ИспользуйтеSecPolicyGetOID
функция для получения идентификатора объекта (OID) для политики.В зависимости от того, как политика использует значение, значение может быть определенным для транзакции. Поскольку некоторый другой процесс мог бы использовать этот объект политики, лучше не присвоить новое значение политике с помощью того же объекта политики. Вместо этого получите новый объект политики прежде, чем присвоить новое значение политике.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
См. также
-
SecPolicySearchCopyNext SecPolicySearchCopyNext
(OS X v10.7)Получает объект политики для следующей политики, соответствующей указанные критерии поиска.
Объявление
Objective C
OSStatus SecPolicySearchCopyNext ( SecPolicySearchRef searchRef, SecPolicyRef *policyRef );
Параметры
searchRef
Объект поиска политики, указывающий критерии поиска для этого поиска. Вы создаете объект поиска политики путем вызова
SecPolicySearchCreate
функция.policyRef
По возврату, точкам к объекту политики для следующей политики (если таковые имеются) соответствие указанных критериев поиска. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. Когда больше нет политик, соответствующих параметры, указанные к
SecPolicySearchCreate
,errSecPolicyNotFound
возвращается. См. Сертификат, Ключ и Коды Результата Trust Services.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecPolicySearchCreate SecPolicySearchCreate
(OS X v10.7)Создает поисковый объект для нахождения политик.
Объявление
Objective C
OSStatus SecPolicySearchCreate ( CSSM_CERT_TYPE certType, const CSSM_OID *policyOID, const CSSM_DATA *value, SecPolicySearchRef *searchRef );
Параметры
certType
Тип сертификатов политика использует, как определено в
Security.framework/cssmtype.h
. Допустимые значенияCSSM_CERT_X_509v1
,CSSM_CERT_X_509v2
, иCSSM_CERT_X_509v3
. Если Вы не уверены в типе сертификата, использоватьCSSM_CERT_X_509v3
.policyOID
Указатель на закодированный BER идентификатор объекта политики, уникально указывающий политику. См. Политики Доверия AppleX509TP для списка политик и идентификаторов объектов, предоставленных модулем AppleX509TP.
value
Указатель на дополнительное, определенное с помощью политики значение. Содержание этого значения зависит от указанного идентификатора объекта политики. (Обратите внимание на то, что этот параметр относится к значению, сохраненному в MDS, и не связан с
value
параметрSecPolicyGetValue
функция.) В настоящее время функция не использует этот параметр; передачаNULL
для этого указателя.searchRef
По возврату, точкам к недавно создаваемому объекту поиска политики. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Вы используете поисковый объект, создаваемый этой функцией в последующих вызовах к
SecPolicySearchCopyNext
функция для получения доверительных объектов политики. Политики сохранены в базе данных Module Directory Services (MDS). MDS описан подробно в “Части 8: Module Directory Service (MDS)” Коллективной безопасности: CDSA и CSSM, версия 2 (с исправлениями) от Open Group (http://www .opengroup.org/security/cdsa.htm).Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.7.
-
SecPolicySetProperties SecPolicySetProperties
(OS X v10.9)Свойства наборов для политики.
Объявление
Objective C
OSStatus SecPolicySetProperties ( SecPolicyRef policyRef, CFDictionaryRef properties );
Параметры
policyRef
Политика измениться
properties
A
CFDictionaryRef
объект, содержащий новый набор свойств. Для списка допустимых ключей свойства посмотрите Ключи Политики безопасности.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.7 и позже.
Осуждаемый в OS X v10.9.
-
SecPolicySetValue SecPolicySetValue
(OS X v10.7)Устанавливает значение политики.
Объявление
Objective C
OSStatus SecPolicySetValue ( SecPolicyRef policyRef, const CSSM_DATA *value );
Параметры
policyRef
Объект политики, значение которого Вы хотите установить.
value
Значение, которое будет установлено в объект политики, заменяя любое предыдущее значение.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Значение политики определяется и интерпретируется политикой. При использовании CSSM можно указать объектных пар значения политики идентификатора, как введено к
CSSM_TP_POLICYINFO
функция. ИспользуйтеSecPolicyGetOID
функция для получения идентификатора объекта (OID) для политики.В зависимости от того, как политика использует значение, значение может быть определенным для транзакции. Поскольку некоторый другой процесс мог бы использовать этот объект политики, лучше не присвоить новое значение политике с помощью того же объекта политики. Вместо этого получите новый объект политики прежде, чем присвоить новое значение политике.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
См. также
-
Получает (корневые) сертификаты привязки, сохраненные OS X.
Объявление
Swift
func SecTrustCopyAnchorCertificates(_
anchors
: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatusObjective C
OSStatus SecTrustCopyAnchorCertificates ( CFArrayRef *anchors );
Параметры
anchors
По возврату, точкам к массиву объектов сертификата для доверяемых (корневых) сертификатов привязки, который является набором по умолчанию привязок для вызывающей стороны. Вызовите
CFRelease
функционируйте для выпускаCFArrayRef
возразите, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция получает сертификаты в хранилище системы сертификатов привязки (см.
SecTrustSetAnchorCertificates
). Можно использоватьSecCertificateRef
объекты, полученные этой функцией, как введено к другим функциям этого API, такой какSecTrustCreateWithCertificates
.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetAnchorCertificates
функция для того же доверительного объекта управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Получает пользовательские сертификаты привязки, если таковые имеются, используемый данным доверием.
Объявление
Swift
func SecTrustCopyCustomAnchorCertificates(_
trust
: SecTrust!, _anchors
: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatusObjective C
OSStatus SecTrustCopyCustomAnchorCertificates ( SecTrustRef trust, CFArrayRef *anchors );
Параметры
trust
Доверительный объект управления, от которого Вы хотите получить пользовательские сертификаты привязки.
anchors
По возврату, ссылке на массив
SecCertificateRef
объекты, представляющие набор сертификатов привязки, которые считают допустимыми (доверяемыми) привязкамиSecTrustEvaluate
функционируйте при проверке сертификата с помощью доверительного объекта управления вtrust
параметр. ВозвратыNULL
если не были указаны никакие пользовательские привязки. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Можно использовать
SecTrustSetAnchorCertificates
функционируйте для установки пользовательских сертификатов привязки.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetAnchorCertificates
функция для того же доверительного объекта управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает непрозрачный cookie, содержащий исключения для доверия политикам, которые позволят будущим оценкам текущего сертификата успешно выполняться.
Объявление
Swift
func SecTrustCopyExceptions(_
trust
: SecTrust!) -> Unmanaged<CFData>!Objective C
CFDataRef SecTrustCopyExceptions ( SecTrustRef trust );
Параметры
trust
Оцененный доверительный объект управления, политики которого Вы хотите получить.
Возвращаемое значение
Непрозрачный cookie. Если Вы передаете этот cookie
SecTrustSetExceptions
, та функция устанавливает список исключений для будущей обработки сертификата. Один раз этот список исключений установлены, последующий вызов кSecTrustEvaluate
поскольку возвратится тот сертификатkSecTrustResultProceed
.Примечание: Если новая ошибка происходит, который не происходил, когда эта функция была вызвана первоначально, последующий вызов к
SecTrustEvaluate
может все еще перестать работать. Например, если сертификат истекает между вызовомSecTrustCopyExceptions
иSecTrustEvaluate
, оценка перестанет работать.Обсуждение
Обычно этот API нужно только вызвать после выяснения у пользователя, как продолжить, и даже затем, только если пользователь явно говорит Вашему приложению доверять текущей цепочке сертификата несмотря на представленные ошибки.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.9 и позже.
См. также
-
Возвращает массив, содержащий свойства доверительного объекта.
Объявление
Swift
func SecTrustCopyProperties(_
trust
: SecTrust!) -> Unmanaged<CFArray>!Objective C
CFArrayRef SecTrustCopyProperties ( SecTrustRef trust );
Параметры
trust
Доверительный объект, с которого должны быть скопированы свойства.
Возвращаемое значение
Возвращает массив, или
NULL
если еще не был оценен доверительный объект. Вызывающая сторона ответственна за выпуск этого словаря.Массив результата является упорядоченным массивом
CFDictionaryRef
словари, один на сертификат в цепочке, начинаясь с вершины в индексном нуле (0) и продолжаясь до привязки (или последний сертификат в цепочке, если никакая привязка не была найдена).Словарь свойства в индексном нуле может также включать общую информацию о законности всей цепочки в контексте этой доверительной оценки. Посмотрите Ключи Типа Свойства для списка в настоящее время определяемых ключей.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Получает политики, используемые данным доверительным объектом управления.
Объявление
Swift
func SecTrustCopyPolicies(_
trust
: SecTrust!, _policies
: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatusObjective C
OSStatus SecTrustCopyPolicies ( SecTrustRef trust, CFArrayRef *policies );
Параметры
trust
Доверительный объект управления, политики которого Вы хотите получить.
policies
По возврату, массиву
SecPolicyRef
объекты для политик используются этим доверительным объектом управления. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetPolicies
функция для того же доверительного объекта управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
См. также
-
Возвращает открытый ключ для листового сертификата после того, как он был оценен.
Объявление
Swift
func SecTrustCopyPublicKey(_
trust
: SecTrust!) -> Unmanaged<SecKey>!Objective C
SecKeyRef SecTrustCopyPublicKey ( SecTrustRef trust );
Параметры
trust
Доверительный объект управления для оцененного сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.Возвращаемое значение
Листовой открытый ключ сертификата, или
NULL
если это, открытый ключ не мог бы быть извлечен (это может произойти с цепочками сертификата DSA, если параметры в цепочке не могут быть найдены). ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Обсуждение
Необходимо вызвать
SecTrustEvaluate
функция прежде, чем вызвать эту функцию. Когда Вы вызываете эту функцию, она пытается возвратить открытый ключ листового сертификата, даже если доверительная оценка была неуспешна. Даже если бы доверительная оценка была успешна, то эта функция могла бы все еще возвратитьсяNULL
— например, если листовой ключ сертификата не может быть извлечен по некоторым причинам.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Создает доверительный объект управления на основе сертификатов и политик.
Объявление
Swift
func SecTrustCreateWithCertificates(_
certificates
: AnyObject!, _policies
: AnyObject!, _trustRef
: UnsafeMutablePointer<Unmanaged<SecTrust>?>) -> OSStatusObjective C
OSStatus SecTrustCreateWithCertificates ( CFTypeRef certificates, CFTypeRef policies, SecTrustRef *trust );
Параметры
certificates
Сертификат, который будет проверен плюс любые другие сертификаты, Вы думаете, мог бы быть полезен для проверки сертификата. Сертификат, который будет проверен, должен быть первым в массиве. Если Вы хотите указать только один сертификат, можно передать a
SecCertificateRef
объект; иначе, передайте массивSecCertificateRef
объекты.policies
Ссылки на одну или более политик, которые будут оценены. Можно передать сингл
SecPolicyRef
объект или массив один или большеSecPolicyRef
объекты. ИспользуйтеSecPolicySearchCopyNext
функция (не доступный на iOS) для получения объектов политики. Если Вы передаете в многократных политиках, все политики должны проверить для цепочки сертификата, которую будут считать допустимыми.trustRef
По возврату, точкам к недавно создаваемому доверительному объекту управления. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Доверительный объект управления включает ссылку на сертификат, который будет проверен плюс указатели на политики, которые будут оценены для тех сертификатов. Можно дополнительно включать ссылки на другие сертификаты, включая сертификаты привязки, что Вы думаете, мог бы быть в цепочке сертификата, должен был проверить первое (лист) сертификат. Любые входные сертификаты, которые, оказывается, не важны, безопасно проигнорированы. Вызовите
SecTrustEvaluate
функция для оценки доверия для возвращенного доверительного объекта управления.Если не все сертификаты должны были проверить, что листовой сертификат включен в
certificates
параметр,SecTrustEvaluate
поиски сертифицируют в списке поиска цепочки для ключей (см.SecTrustSetKeychains
) и в хранилище системы сертификатов привязки (см.SecTrustSetAnchorCertificates
). Однако необходимо получить значительный выигрыш в производительности путем передачи во всей цепочке сертификата, в порядке, вcertificates
параметр.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Оценивает доверие для указанного сертификата и политик.
Объявление
Swift
func SecTrustEvaluate(_
trust
: SecTrust!, _result
: UnsafeMutablePointer<SecTrustResultType>) -> OSStatusObjective C
OSStatus SecTrustEvaluate ( SecTrustRef trust, SecTrustResultType *result );
Параметры
trust
Доверительный объект управления для оценки. Доверительный объект управления включает сертификат, который будет проверен плюс политика или политики, которые будут использоваться в оценке доверия. Это может дополнительно также включать другие сертификаты, которые будут использоваться в проверке первого сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.result
По возврату, точкам к типу результата, отражающему результат этой оценки. Посмотрите Доверительные Константы Типа Результата для описаний возможных значений. Посмотрите обсуждение ниже для объяснения того, как обработать определенные значения.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция оценивает законность сертификата, чтобы установить доверительные отношения для определенного использования — например, в создании цифровой подписи или установить соединение Уровня защищенных сокетов.
Прежде чем Вы вызовете эту функцию:
Можно вызвать
SecTrustSetVerifyDate
функция перед вызовомSecTrustEvaluate
установить дату и время для использования при проверке сертификата. По умолчанию,SecTrustEvaluate
использует текущую дату и время. (Обратите внимание на то, что некоторый APIs, такой как CMS может назначить дату проверки для Вас на основе доверяемой метки времени.)В OS X можно дополнительно вызвать любой из
SecTrustSet...
функции (такой какSecTrustSetParameters
илиSecTrustSetVerifyDate
) установить значения для параметров и опций.
SecTrustEvaluate
функция проверяет сертификат путем заверения его подписи плюс подписи сертификатов в его цепочке сертификата, до сертификата привязки, согласно политике или политикам, включенным в доверительный объект управления.Для каждой политики функция обычно оценивает доверие согласно указанной пользователями установке доверия (см.
SecTrustSettingsSetTrustSettings
иSecTrustSettingsCopyTrustSettings
). Для примера указанных пользователями доверительных настроек используйте утилиту Keychain Access и смотрите на любой сертификат. Как исключение, если Ваше приложение ранее вызвалоSecTrustSetAnchorCertificates
, указанные пользователями доверительные настройки проигнорированы, и цепочка сертификата должна содержать один из указанных сертификатов привязки.Для каждой политики,
SecTrustEvaluate
создает цепочку сертификата на основе политик, которые требуют. Это тогда запускается с листового сертификата и проверяет каждый сертификат в цепочку поочередно до него или достигает дефектного сертификата, исчерпывает сертификаты или достигает сертификата с установкой доверия не по умолчанию — обычно сертификат привязки или сертификат, которому пользователь явно принял решение доверять или не доверить — и хранит результат этой доверительной оценки в доверительном объекте управления. Этот проект означает, что явная доверительная пользователем установка для сертификата в или около листа может переопределить поведение сертификата ближе корню, но иначе отказу в любой точке в цепочечных результатах в отказе.Если некоторые сертификаты должны были проверить, что листовой сертификат отсутствует в доверительном объекте управления, то
SecTrustEvaluate
поиски сертификатов в следующих расположениях:В любых цепочках для ключей в настоящее время в списке поиска цепочки для ключей вызывающей стороны (см.
SecTrustSetKeychains
).Любые сертификаты, ранее предоставленные путем вызова
SecTrustSetAnchorCertificates
.В предоставленном системой наборе цепочек для ключей, предоставленных с этой целью.
По сети, если определенные расширения присутствуют в сертификате, раньше создавал цепочку.
Как правило необходимо обработать различные возвращаемые значения следующим образом:
kSecTrustResultUnspecified
— Оценка успешно достигла сертификата привязки которому (слепо доверяют), без любых отказов оценки, но никогда не встречалась ни с каким явно установленным доверительным пользователем предпочтением. Это - наиболее распространенное возвращаемое значение.Большинство приложений должно, по умолчанию, доверять цепочке. Если Вы спрашиваете пользователя, что сделать в OS X, необходимо использовать
SFCertificateTrustPanel
класс в Ссылке Платформы Интерфейса Безопасности.kSecTrustResultProceed
— Пользователь явно принял решение доверять сертификату цепочке (обычно путем нажатия кнопки в панели доверия сертификата).Ваше приложение должно доверять цепочке.
kSecTrustResultDeny
— Пользователь явно принял решение не доверять сертификату цепочке (обычно путем нажатия надлежащей кнопки в панели доверия сертификата).Ваше приложение не должно доверять цепочке.
kSecTrustResultConfirm
— Пользователь ранее принял решение всегда попросить разрешение прежде, чем принять один из сертификатов в цепочке. Это возвращаемое значение больше не используется, но может произойти в более старых версиях OS X.Или спросите пользователя, что сделать или отклонить сертификат. Если Вы спрашиваете пользователя, что сделать в OS X, необходимо использовать
SFCertificateTrustPanel
класс в Ссылке Платформы Интерфейса Безопасности.kSecTrustResultRecoverableTrustFailure
— Это означает, что Вы не должны доверять цепочке как есть, но что цепочке можно было доверить некоторое незначительное изменение к контексту оценки, такому как игнорирование сертификатов с истекшим сроком или добавление дополнительной привязки к набору доверяемых привязок.Путем Вы обрабатываете, это зависит от OS.
В iOS необходимо обычно отказываться от сертификата. Однако, если Вы выполняете проверку подписи, и Вы знаете, когда сообщение было первоначально получено, необходимо проверить снова использование, что дата, чтобы видеть, было ли сообщение допустимо при исходном получении его.
В OS X можно вызвать
SecTrustGetTrustResult
функция для получения большей информации о результатах доверительной оценки, илиSecTrustGetCssmResult
функция для получения информации об оценке в форме, которая может быть передана функциям CSSM.Затем как соответствующие, можно вызвать один или больше
SecTrustSet...
функции, чтобы исправить или обойти проблему, или можно сообщить пользователю проблемы и вызватьSFCertificateTrustPanel
класс, чтобы позволить пользователю изменить доверительные настройки для сертификата.Когда Вы думаете, что исправили проблему, вызвать
SecTrustEvaluate
снова. Каждый раз Вы вызываетеSecTrustEvaluate
, это отбрасывает результаты любой предыдущей оценки и заменяет их новыми результатами.Если бы доверительный отказ был вызван недоверяемым корневым сертификатом, и Ваше приложение спрашивает пользователя, что сделать, то необходимо использовать
SFCertificateTrustPanel
класс в Ссылке Платформы Интерфейса Безопасности.kSecTrustResultFatalTrustFailure
— Оценка перестала работать, потому что сертификат в цепочке является дефектным. Это обычно представляет фундаментальный дефект в данных сертификата, таких как недопустимое кодирование для критическогоsubjectAltName
расширение, неподдерживаемое критическое расширение или некоторая другая критическая часть сертификата, который не мог быть успешно интерпретирован. Изменение значений параметров и вызоваSecTrustEvaluate
снова вряд ли приведет к успешной переоценке, если Вы не обеспечиваете различные сертификаты.kSecTrustResultOtherError
— Оценка перестала работать по некоторой другой причине. Это может быть вызвано или отменяемым сертификатом или погрешностями нивелировки OS, которые не связаны с самими сертификатами.
Специальные замечания
Не безопасно вызвать эту функцию одновременно с любой другой функцией, использующей тот же доверительный объект управления, или повторно войти в эту функцию для того же доверительного объекта управления.
Поскольку эта функция могла бы считать сеть для сертификатов в цепочке сертификата, функция могла бы блокировать при попытке доступа к сети. Вы никогда не должны вызывать его от своего основного потока; вызовите его только из функции, работающей на очереди отгрузки или на отдельном потоке. Также в OS X, можно использовать
SecTrustEvaluateAsync
от Вашего основного потока. В iOS можно сделать ту же вещь, использующуюdispatch_once
.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Оценивает доверительный объект асинхронно на указанной очереди отгрузки.
Объявление
Swift
func SecTrustEvaluateAsync(_
trust
: SecTrust!, _queue
: dispatch_queue_t!, _result
: SecTrustCallback!) -> OSStatusObjective C
OSStatus SecTrustEvaluateAsync ( SecTrustRef trust, dispatch_queue_t queue, SecTrustCallback result );
Параметры
trust
Доверительный объект управления для оценки. Доверительный объект управления включает сертификат, который будет проверен плюс политика или политики, которые будут использоваться в оценке доверия. Это может дополнительно также включать другие сертификаты, которые будут использоваться в проверке первого сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.queue
Очередь отгрузки, на которой должен выполниться блок результата.
result
Блок вызывают с результатом оценки. Посмотрите Доверительные Константы Типа Результата для описаний возможных значений.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция функционально эквивалентна
SecTrustEvaluate
когда оценка завершается, за исключением того, что это выполняет оценку асинхронно и вызывает блок. Для детального обсуждения процесса оценки посмотритеSecTrustEvaluate
.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает число сертификатов в оцененной цепочке сертификата.
Объявление
Swift
func SecTrustGetCertificateCount(_
trust
: SecTrust!) -> CFIndexObjective C
CFIndex SecTrustGetCertificateCount ( SecTrustRef trust );
Параметры
trust
Доверительный объект управления для оцененного сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления иSecTrustEvaluate
функция для оценки цепочки сертификата.Возвращаемое значение
Число сертификатов в цепочке сертификата.
Обсуждение
Необходимо вызвать
SecTrustEvaluate
функция прежде, чем вызвать эту функцию.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращается определенный сертификат от цепочки сертификата раньше оценивал доверие.
Объявление
Swift
func SecTrustGetCertificateAtIndex(_
trust
: SecTrust!, _ix
: CFIndex) -> Unmanaged<SecCertificate>!Objective C
SecCertificateRef SecTrustGetCertificateAtIndex ( SecTrustRef trust, CFIndex ix );
Параметры
trust
Доверительный объект управления для оцененного сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления иSecTrustEvaluate
функция для оценки цепочки сертификата.ix
Индекс требуемого сертификата. Индексы запускаются в 0 для листового сертификата и конца в привязке (или последний сертификат, если никакая привязка не была найдена). Используйте
SecTrustGetCertificateCount
функция для получения общего количества сертификатов в цепочке.Возвращаемое значение
Объект сертификата для требуемого сертификата.
Обсуждение
Необходимо вызвать
SecTrustEvaluate
функция прежде, чем вызвать эту функцию.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecTrustGetCSSMAnchorCertificates SecTrustGetCSSMAnchorCertificates
Доступный в OS X v10.2 через OS X v10.6Получает сертификаты привязки CSSM.
Оператор осуждения
Используйте
SecTrustCopyAnchorCertificates
функция для новой разработки вместо этого.Объявление
Objective C
OSStatus SecTrustGetCSSMAnchorCertificates ( const CSSM_DATA **cssmAnchors, uint32 *cssmAnchorCount );
Параметры
cssmAnchors
По возврату, точкам к массиву сертификатов привязки. Этот массив выделяется системой; Вы не должны освобождать его. Эти данные, как гарантируют, не останутся допустимыми неопределенно; необходимо сразу получить данные и или передать их другим функциям или скопировать их для будущего использования.
cssmAnchorCount
По возврату, точкам к числу
CSSM_DATA
структуры возвратились вcssmAnchors
параметр.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Эта функция возвращает сертификаты в хранилище системы сертификатов привязки (см.
SecTrustSetAnchorCertificates
. Можно использоватьCSSM_DATA
структуры, возвращенные этой функцией, как введено к функциям в API CSSM.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetAnchorCertificates
функция для того же доверительного объекта управления на другом потоке.Специальные замечания
Вызовы к базовому API CSSM осуждаются. Для получения ссылок на сертификаты привязки в форме, подходящей для вызовов к Сертификату, Ключ и Доверие API, используют
SecTrustCopyAnchorCertificates
функция вместо этого.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 через OS X v10.6.
Осуждаемый в OS X v10.5.
-
SecTrustGetCssmResult SecTrustGetCssmResult
(OS X v10.7)Получает результат доверия CSSM.
Объявление
Objective C
OSStatus SecTrustGetCssmResult ( SecTrustRef trust, CSSM_TP_VERIFY_CONTEXT_RESULT_PTR *result );
Параметры
trust
Доверительный объект управления, ранее отправленный в
SecTrustEvaluate
функция для оценки.result
По возврату, точкам к указателю результата доверия CSSM. Вы не должны изменять или освобождать эти данные, поскольку они принадлежат системе.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
После вызова
SecTrustEvaluate
функция, можно вызватьSecTrustGetTrustResult
функционируйте илиSecTrustGetCssmResult
функция для получения информации о сертификатах в цепочке сертификата и всем, что могло бы быть неправильно с каждым сертификатом. Принимая во внимание, чтоSecTrustGetTrustResult
функционируйте возвращает информацию в форме, которую можно интерпретировать без обширных знаний CSSM,SecTrustGetCssmResult
функционируйте информация о возвратах в форме, которая может быть передана непосредственно функциям CSSM. Посмотрите Коллективную безопасность: CDSA и CSSM, версия 2 (с исправлениями) от Open Group (http://www .opengroup.org/security/cdsa.htm для получения дополнительной информации оCSSM_TP_VERIFY_CONTEXT_RESULT
структура, на которую указываютresult
параметр.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetVerifyDate
функция для того же доверительного объекта управления на другом потоке.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
SecTrustGetCssmResultCode SecTrustGetCssmResultCode
(OS X v10.7)Получает код результата CSSM от новой доверительной оценки для доверительного объекта управления.
Объявление
Objective C
OSStatus SecTrustGetCssmResultCode ( SecTrustRef trust, OSStatus *resultCode );
Параметры
trust
Доверительный объект управления, для которого Вы хотите получить код результата.
resultCode
По возврату CSSM заканчиваются код, произведенный новым вызовом для
SecTrustEvaluate
функция для доверительного объекта управления, указанного вtrust
параметр. Значение этого параметра не определено еслиSecTrustEvaluate
не был вызван.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services. Возвраты
errSecTrustNotAvailable
еслиSecTrustEvaluate
функция не была вызвана для указанного доверия.Обсуждение
Принимая во внимание, что
SecTrustEvaluate
функционируйте возвращает один из кодов результата Концепции безопасности (см. Сертификат, Ключ и Коды Результата Trust Services),SecTrustGetCssmResultCode
функционируйте возвращает код результата CSSM, как перечислено вSecurity.framework/cssmerr.h
. Вызовите эту функцию для получения более определенной причины отказа, чем предоставленныйSecTrustEvaluate
. Другие функции, которые могли бы представлять интерес,SecTrustGetTrustResult
функция, возвращающая подробные результаты для каждого сертификата в цепочке сертификата, иSecTrustGetCssmResult
функция, возвращающая результаты в формате, который может быть передан непосредственно функциям CSSM.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetVerifyDate
функция для того же доверительного объекта управления на другом потоке.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
SecTrustGetResult SecTrustGetResult
(OS X v10.7)Получает подробные данные о результате вызова к функции
SecTrustEvaluate
.Объявление
Objective C
OSStatus SecTrustGetResult ( SecTrustRef trustRef, SecTrustResultType *result, CFArrayRef *certChain, CSSM_TP_APPLE_EVIDENCE_INFO **statusChain );
Параметры
trustRef
Доверительный объект управления, ранее отправленный в
SecTrustEvaluate
функция для оценки.result
Указатель на тип результата возвратился в
result
параметрSecTrustEvaluate
функция.certChain
По возврату, точкам к массиву сертификатов, составляющих цепочку сертификата, используемую для проверки входного сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.statusChain
По возврату, точкам к массиву
CSSM_TP_APPLE_EVIDENCE_INFO
структуры, один для каждого сертификата в цепочке сертификата. Первый элемент в массиве соответствует листовому сертификату, и последний элемент соответствует привязке (предполагающий, что проверка цепочки не перестала работать прежде, чем достигнуть сертификата привязки). Каждая структура описывает состояние одного сертификата в цепочке. Эта структура определяется вcssmapple.h
. Не пытайтесь освободить этот указатель; это остается допустимым, пока доверительный объект управления не выпущен или до следующего вызова к функцииSecTrustEvaluate
это использует этот доверительный объект управления.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
После вызова
SecTrustEvaluate
функция, можно вызватьSecTrustGetResult
функционируйте илиSecTrustGetCssmResult
функция для получения подробной информации о результатах оценки. Принимая во внимание, чтоSecTrustGetResult
функционируйте возвращает информацию в форме, которую можно интерпретировать без обширных знаний CSSM,SecTrustGetCssmResult
функционируйте информация о возвратах в форме, которая может быть передана непосредственно функциям CSSM.Можно вызвать
SFCertificateTrustPanel
класс в Ссылке Платформы Интерфейса Безопасности для отображения этих результатов пользователю.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetVerifyDate
функция для того же доверительного объекта управления на другом потоке.Специальные замечания
Использовать
SecTrustGetTrustResult
для новой разработки вместо этого.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
SecTrustGetTPHandle SecTrustGetTPHandle
(OS X v10.7)Получает доверительный дескриптор политики.
Объявление
Objective C
OSStatus SecTrustGetTPHandle ( SecTrustRef trust, CSSM_TP_HANDLE *handle );
Параметры
trust
Доверительный объект управления, из которого можно получить доверительный дескриптор политики. Доверительный объект управления включает один или несколько сертификатов плюс политика или политики, которые будут использоваться в оценке доверия. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.handle
По возврату, точкам к дескриптору политики доверия CSSM. Этот дескриптор остается допустимым, пока доверительный объект управления не выпущен или до следующего вызова к функции
SecTrustEvaluate
это использует этот доверительный объект управления.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Доверительный дескриптор политики является идентификатором CSSM доверительного модуля политики, управляющего сертификатом. Доверительный дескриптор политики используется в качестве ввода ко многим функциям CSSM.
Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetVerifyDate
функция для того же доверительного объекта управления на другом потоке.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
Возвращает код результата из новой доверительной оценки.
Объявление
Swift
func SecTrustGetTrustResult(_
trustRef
: SecTrust!, _result
: UnsafeMutablePointer<SecTrustResultType>) -> OSStatusObjective C
OSStatus SecTrustGetTrustResult ( SecTrustRef trust, SecTrustResultType *result );
Параметры
trustRef
Доверительный объект, из которого должны быть получены результаты
result
Адрес, где должен быть сохранен числовой результат.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services. Если доверительный объект еще не был оценен, тип результата
kSecTrustResultInvalid
.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecTrustGetUserTrust SecTrustGetUserTrust
Доступный в OS X v10.2 через OS X v10.6Получает указанную пользователями доверительную установку для сертификата и политики.
Оператор осуждения
Использовать
SecTrustSettingsCopyTrustSettings
для новой разработки вместо этого.Объявление
Objective C
OSStatus SecTrustGetUserTrust ( SecCertificateRef certificate, SecPolicyRef policy, SecTrustUserSetting *trustSetting );
Параметры
certificate
Объект сертификата, из которого можно получить указанную пользователями доверительную установку.
policy
Объект политики для политики, для которой можно получить указанную пользователями доверительную установку. Используйте
SecPolicySearchCopyNext
функция для получения объекта политики.trustSetting
По возврату, точкам к указанной пользователями доверительной установке для указанного сертификата и политики.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Каждый сертификат имеет одну указанную пользователями доверительную установку на политику. Для каждой политики пользователь может указать, что сертификату нужно всегда доверять, никогда нельзя доверять или можно доверять только после того, как разрешение требуют от — и дают — пользователь. Для там также возможно не быть никакой указанной пользователями доверительной установкой для политики. Посмотрите
SecTrustEvaluate
для обсуждения использования указанных пользователями доверительных настроек в доверительной оценке.SecTrustGetUserTrust
функционируйте возвращает эффективное пользовательское доверие, устанавливающее для сертификата и указанной политики. Можно получить сертификат из цепочки для ключей и преобразовать тип объекта элемента цепочки для ключей (тип данныхSecKeychainItemRef
) к объекту сертификата (SecCertificateRef
).Посмотрите Доверительные Константы Типа Результата для значений и описаний указанных пользователями доверительных настроек. Пользователь может установить эти значения в утилите Keychain Access. При обеспечении собственного UI для этих настроек можно использовать
SecTrustSettingsSetTrustSettings
функционируйте для установки их.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значений от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetVerifyDate
функция для того же доверительного объекта управления на другом потоке.Специальные замечания
До OS X v10.5,
SecTrustSetUserTrust
функция не требовала аутентификации пользователя для изменения доверительных настроек. Начиная с OS X v10.5, та функция является оболочкой дляSecTrustSettingsSetTrustSettings
функция, требующая, чтобы пользователь аутентифицировал прежде, чем изменить доверительные настройки. Поэтому функция могла бы блокировать при ожидании ввода данных пользователем.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 через OS X v10.6.
Осуждаемый в OS X v10.5.
-
Получает абсолютное время, по которому проверяются сертификаты в доверительном объекте управления.
Объявление
Swift
func SecTrustGetVerifyTime(_
trust
: SecTrust!) -> CFAbsoluteTimeObjective C
CFAbsoluteTime SecTrustGetVerifyTime ( SecTrustRef trust );
Параметры
trust
Доверительный объект управления, время проверки которого Вы хотите получить. Доверительный объект управления включает один или несколько сертификатов плюс политика или политики, которые будут использоваться в оценке доверия. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.Возвращаемое значение
Абсолютное время, в которое сертификаты должны быть проверены на законность.
Обсуждение
Эта функция возвращает абсолютное время, возвращенное:
CFDateGetAbsoluteTime
функция для даты передала вSecTrustSetVerifyDate
функция, если это вызвали, илипоследнее значение, возвращенное
SecTrustGetVerifyTime
функция, если это вызвали прежде, илизначение, возвращенное
CFAbsoluteTimeGetCurrent
функционируйте если ни одинSecTrustSetVerifyDate
ниSecTrustGetVerifyTime
когда-либо вызывались.
Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для получения значения от доверительного объекта управления, одновременно изменяющегося другой функцией. Например, если Вы одновременно вызываете, можно вызвать эту функцию на двух потоках одновременно, но не
SecTrustSetVerifyDate
функция для того же доверительного объекта управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
См. также
-
Устанавливает сертификаты привязки, используемые при оценке доверительного объекта управления.
Объявление
Swift
func SecTrustSetAnchorCertificates(_
trust
: SecTrust!, _anchorCertificates
: CFArray!) -> OSStatusObjective C
OSStatus SecTrustSetAnchorCertificates ( SecTrustRef trust, CFArrayRef anchorCertificates );
Параметры
trust
Доверительный объект управления, содержащий сертификат, Вы хотите оценить. Доверительный объект управления включает сертификат, который будет проверен плюс политика или политики, которые будут использоваться в оценке доверия. Это может дополнительно также включать другие сертификаты, которые будут использоваться в проверке первого сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.anchorCertificates
Ссылка на массив
SecCertificateRef
объекты, представляющие набор сертификатов привязки, которые нужно считать допустимыми (доверяемыми) привязкамиSecTrustEvaluate
функционируйте при проверке сертификата. ПередачаNULL
восстановить набор по умолчанию сертификатов привязки.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
SecTrustEvaluate
функция ищет сертификат привязки в массиве сертификатов, указанныхSecTrustSetAnchorCertificates
функция или использование набор по умолчанию, предоставленный системой. В OS X v10.3, например, набор по умолчанию привязок был в файле/system/library/keychains/x509anchors цепочки для ключей. Если Вы хотите создать ряд сертификатов привязки путем изменения набора по умолчанию, вызовитеSecTrustCopyAnchorCertificates
функция для получения текущего набора сертификатов привязки измените тот набор, как Вы желаете и создаете новый массив сертификатов. Тогда вызовитеSecTrustSetAnchorCertificates
с измененным массивом.Список пользовательских сертификатов привязки сохранен в доверительном объекте управления и может быть получен с
SecTrustCopyCustomAnchorCertificates
функция.Обратите внимание на то, что, когда Вы вызываете
SecTrustSetAnchorCertificates
функция, Вы эффективно говоритеSecTrustEvaluate
функционируйте для использования сертификатов привязки в указанном массиве для оценки доверия независимо от любых указанных пользователями доверительных настроек для тех сертификатов. Кроме того, любым промежуточным сертификатам на основе тех сертификатов привязки также доверяют без консультационных пользовательских настроек доверия.Используйте
SecTrustSetKeychains
функция для установки цепочек для ключей искала промежуточные сертификаты в цепочке сертификата.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для изменения значения доверительного объекта управления, одновременно использующегося другой функцией. Например, Вы не можете вызвать эту функцию на одном потоке в то же время, что и Вы вызываете
SecTrustEvaluate
функция для того же доверительного объекта управления на другом потоке, но можно вызвать эту функцию и одновременно оценить различный доверительный объект управления на другом потоке. Точно так же вызовы к функциям, возвращающим информацию о доверительном объекте управления (такой какSecTrustCopyCustomAnchorCertificates
функция), может привести к сбою или возвратить неожиданный результат, если эта функция одновременно изменяет тот же доверительный объект управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Повторно позволяет доверять встроенным сертификатам привязки.
Объявление
Swift
func SecTrustSetAnchorCertificatesOnly(_
trust
: SecTrust!, _anchorCertificatesOnly
: Boolean) -> OSStatusObjective C
OSStatus SecTrustSetAnchorCertificatesOnly ( SecTrustRef trust, Boolean anchorCertificatesOnly );
Параметры
trust
Доверительный объект управления, содержащий сертификат, Вы хотите оценить. Доверительный объект управления включает сертификат, который будет проверен плюс политика или политики, которые будут использоваться в оценке доверия. Это может дополнительно также включать другие сертификаты, которые будут использоваться в проверке первого сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.anchorCertificatesOnly
Если
true
, отключает доверие, что любые привязки кроме тех передали в сSecTrustSetAnchorCertificates
функция. Еслиfalse
, встроенным сертификатам привязки также доверяют. ЕслиSecTrustSetAnchorCertificates
вызывается иSecTrustSetAnchorCertificatesOnly
не вызывается, только привязки явно передали в, доверяются.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для изменения значения доверительного объекта управления, одновременно использующегося другой функцией. Например, Вы не можете вызвать эту функцию на одном потоке в то же время, что и Вы вызываете
SecTrustEvaluate
функция для того же доверительного объекта управления на другом потоке, но можно вызвать эту функцию и одновременно оценить различный доверительный объект управления на другом потоке. Точно так же вызовы к функциям, возвращающим информацию о доверительном объекте управления (такой какSecTrustCopyCustomAnchorCertificates
функция), может привести к сбою или возвратить неожиданный результат, если эта функция одновременно изменяет тот же доверительный объект управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
-
Устанавливает список исключений, которые должны быть проигнорированы при оценке сертификата.
Объявление
Swift
func SecTrustSetExceptions(_
trust
: SecTrust!, _exceptions
: CFData!) -> BoolObjective C
bool SecTrustSetExceptions ( SecTrustRef trust, CFDataRef exceptions );
Параметры
trust
Доверительный объект управления, список исключений которого Вы хотите изменить.
exceptions
Непрозрачный cookie, возвращенный предшествующим вызовом к
SecTrustCopyExceptions
.Возвращаемое значение
Возвраты
true
если cookie исключений были допустимы и соответствуют текущий листовой сертификат,false
иначе.Важный: Даже если эта функция возвращает true, необходимо все еще вызвать
SecTrustEvaluate
потому что оценка может все еще перестать работать, если что-то изменяется между начальной оценкой и переоценкой.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.9 и позже.
См. также
-
Наборы цепочки для ключей искали промежуточные сертификаты при оценке доверительного объекта управления.
Объявление
Swift
func SecTrustSetKeychains(_
trust
: SecTrust!, _keychainOrArray
: AnyObject!) -> OSStatusObjective C
OSStatus SecTrustSetKeychains ( SecTrustRef trust, CFTypeRef keychainOrArray );
Параметры
trust
Доверительный объект управления, содержащий сертификат, Вы хотите оценить. Доверительный объект управления включает сертификат, который будет проверен плюс политика или политики, которые будут использоваться в оценке доверия. Это может дополнительно также включать другие сертификаты, которые будут использоваться в проверке первого сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.keychainOrArray
Объект цепочки для ключей для единственной цепочки для ключей для поиска массив цепочки для ключей возражает для ряда цепочек для ключей для поиска, или
NULL
для поиска цепочки для ключей пользователя по умолчанию ищут список. ПредотвратитьSecTrustEvaluate
функция от поиска любых цепочек для ключей вообще, передайте aCFArrayRef
массив без элементов.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
По умолчанию,
SecTrustEvaluate
использует список поиска цепочки для ключей пользователя для поиска промежуточных сертификатов в цепочке сертификата. ИспользуйтеSecTrustSetKeychains
функционируйте для изменения набора цепочек для ключей, которые будут искаться. Если Вы хотите изменить набор по умолчанию цепочек для ключей, сначала вызовитеSecKeychainCopySearchList
функция (см. Ссылку Keychain Services) получить текущий список поиска цепочки для ключей, изменить тот набор, как Вы желаете, и создают новый поисковый список. Тогда можно вызватьSecTrustSetKeychains
с измененным списком.Используйте
SecTrustSetAnchorCertificates
функционируйте для установки массива искавших сертификатов привязки.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для изменения значения доверительного объекта управления, одновременно использующегося другой функцией. Например, Вы не можете вызвать эту функцию на одном потоке в то же время, что и Вы вызываете
SecTrustEvaluate
функция для того же доверительного объекта управления на другом потоке, но можно вызвать эту функцию и одновременно оценить различный доверительный объект управления на другом потоке. Точно так же вызовы к функциям, возвращающим информацию о доверительном объекте управления (такой какSecTrustCopyCustomAnchorCertificates
функция), может привести к сбою или возвратить неожиданный результат, если эта функция одновременно изменяет тот же доверительный объект управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Опция наборов отмечает для настройки оценки доверительного объекта.
Объявление
Swift
func SecTrustSetOptions(_
trustRef
: SecTrust!, _options
: SecTrustOptionFlags) -> OSStatusObjective C
OSStatus SecTrustSetOptions ( SecTrustRef trustRef, SecTrustOptionFlags options );
Параметры
trustRef
Доверительный объект изменить.
options
Новый набор флагов опции. Для списка опций посмотрите
“Security Trust Option Flags”
.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
SecTrustSetParameters SecTrustSetParameters
(OS X v10.7)Устанавливает данные действия и действия для доверительного объекта управления.
Объявление
Objective C
OSStatus SecTrustSetParameters ( SecTrustRef trustRef, CSSM_TP_ACTION action, CFDataRef actionData );
Параметры
trustRef
Доверительный объект управления, в который Вы хотите добавить действие или установить данные действия. Доверительный объект управления включает один или несколько сертификатов плюс политика или политики, которые будут использоваться в оценке доверия. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.action
CSSM доверяет действию. Передача
CSSM_TP_ACTION_DEFAULT
для действия по умолчанию. Другие доступные действия, если таковые имеются, описаны в документации для доверительного модуля политики. Для модуля AppleX509TP см. Функциональную спецификацию Модуля Политики Доверия Apple.actionData
Ссылка на данные действия. Флаги Данных действия перечисляют возможные значения для этого параметра для действия модуля политики доверия AppleX509TP по умолчанию. Для других действий (если таковые имеются), возможные значения для данных действия указаны в Функциональной спецификации Модуля Политики Доверия Apple.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Перед вызовом
SecTrustEvaluate
, можно дополнительно использовать эту функцию, чтобы установить один или несколько флагов действия или установить данные действия. Действия, где это возможно, влияют на доверительную оценку для всех оцениваемых политик. Например, если Вы устанавливаете данные действия для действия по умолчанию кCSSM_TP_ACTION_ALLOW_EXPIRED
, тогдаSecTrustEvaluate
функция игнорирует дату истечения срока сертификата и время.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для изменения значения доверительного объекта управления, одновременно использующегося другой функцией. Например, Вы не можете вызвать эту функцию на одном потоке в то же время, что и Вы вызываете
SecTrustEvaluate
функция для того же доверительного объекта управления на другом потоке, но можно вызвать эту функцию и одновременно оценить различный доверительный объект управления на другом потоке. Точно так же вызовы к функциям, возвращающим информацию о доверительном объекте управления (такой какSecTrustCopyCustomAnchorCertificates
функция), может привести к сбою или возвратить неожиданный результат, если эта функция одновременно изменяет тот же доверительный объект управления на другом потоке.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.7.
-
Установите политики использовать в оценке.
Объявление
Swift
func SecTrustSetPolicies(_
trust
: SecTrust!, _policies
: AnyObject!) -> OSStatusObjective C
OSStatus SecTrustSetPolicies ( SecTrustRef trust, CFTypeRef policies );
Параметры
trust
Доверительный объект управления, список политики которого Вы хотите установить.
policies
Массив один или больше
SecPolicyRef
объекты для политик, которые будут использоваться этим доверительным объектом управления. Единственный объект политики типаSecPolicyRef
май также быть переданным, представляя массив одной политики.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Политики Вы уже устанавливаете с этой функциональной заменой любого в доверительном объекте управления.
Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для изменения значения доверительного объекта управления, одновременно использующегося другой функцией. Например, Вы не можете вызвать эту функцию на одном потоке в то же время, что и Вы вызываете
SecTrustEvaluate
функция для того же доверительного объекта управления на другом потоке, но можно вызвать эту функцию и одновременно оценить различный доверительный объект управления на другом потоке. Точно так же вызовы к функциям, возвращающим информацию о доверительном объекте управления (такой какSecTrustCopyCustomAnchorCertificates
функция), может привести к сбою или возвратить неожиданный результат, если эта функция одновременно изменяет тот же доверительный объект управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
См. также
-
SecTrustSetUserTrust SecTrustSetUserTrust
Доступный в OS X v10.2 через OS X v10.6Устанавливает указанные пользователями доверительные настройки сертификата и политики.
Оператор осуждения
Использовать
SecTrustSettingsSetTrustSettings
для новой разработки вместо этого.Объявление
Objective C
OSStatus SecTrustSetUserTrust ( SecCertificateRef certificate, SecPolicyRef policy, SecTrustUserSetting trustSetting );
Параметры
certificate
Объект сертификата, для которого можно установить указанные пользователями доверительные настройки. Используйте
SecCertificateCreateFromData
функция для получения объекта сертификата.policy
Объект политики для политики, для которой можно установить указанные пользователями доверительные настройки. Используйте
SecPolicySearchCopyNext
функция для получения объекта политики.trustSetting
Указанная пользователями установка доверия, которая будет установлена. Посмотрите Доверительные Константы Типа Результата для возможных значений.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Каждый сертификат имеет одну указанную пользователями доверительную установку на политику. Эти доверительные настройки используются
SecTrustEvaluate
функционируйте при оценке доверия. Посмотрите Доверительные Константы Типа Результата для значений и описаний указанных пользователями доверительных настроек. Пользователь может установить эти значения в утилите Keychain Access. При определенных обстоятельствах для административного приложения могло бы быть подходяще изменить пользовательские настройки доверия. В этом случае можно использоватьSecTrustSetUserTrust
функция, чтобы сделать так. Можно получить сертификат из цепочки для ключей и преобразовать тип объекта элемента цепочки для ключей (тип данныхSecKeychainItemRef
) к объекту сертификата (SecCertificateRef
).Когда Вы вызываете
SecTrustSetUserTrust
функция, пользователю можно было бы предложить подтвердить новую установку, прежде чем это будет изменено.Специальные замечания
До OS X v10.5, эта функция не требовала аутентификации пользователя для изменения доверительных настроек. Начиная с OS X v10.5, эта функция является оболочкой для
SecTrustSettingsSetTrustSettings
функция, требующая, чтобы пользователь аутентифицировал прежде, чем изменить доверительные настройки. Поэтому не возможно изменить доверительные настройки в расчете на пользователя, если не работающие в среде GUI (т.е. когда пользователь не регистрируется на пути окно входа в систему). При внесении изменений в доверительные настройки в масштабе всей системы пользователю предлагают с предупредительной панелью, просящей имя и пароль администратора, если обработка вызовов не работает как корень, когда не необходима никакая дальнейшая аутентификация. Обратите внимание на то, что эта функция могла бы блокировать при ожидании ввода данных пользователем.Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 через OS X v10.6.
Осуждаемый в OS X v10.5.
-
Устанавливает дату и время, по которой проверяются сертификаты в доверительном объекте управления.
Объявление
Swift
func SecTrustSetVerifyDate(_
trust
: SecTrust!, _verifyDate
: CFDate!) -> OSStatusObjective C
OSStatus SecTrustSetVerifyDate ( SecTrustRef trust, CFDateRef verifyDate );
Параметры
trust
Доверительный объект управления, дату проверки которого Вы хотите назначить. Доверительный объект управления включает один или несколько сертификатов плюс политика или политики, которые будут использоваться в оценке доверия. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления.verifyDate
Дата и время для использования при проверке сертификата.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
По умолчанию,
SecTrustEvaluate
функционируйте использует текущую дату и время при проверке сертификата. Однако можно использоватьSecTrustSetVerifyDate
установить другую дату и время для использования при проверке сертификата. Например, можно определить, был ли сертификат допустим, когда документ был подписан, а не допустимо ли это в настоящее время.Безопасно вызвать эту функцию одновременно на двух или больше потоках, пока это не используется для изменения значения доверительного объекта управления, одновременно использующегося другой функцией. Например, Вы не можете вызвать эту функцию на одном потоке в то же время, что и Вы вызываете
SecTrustEvaluate
функция для того же доверительного объекта управления на другом потоке, но можно вызвать эту функцию и одновременно оценить различный доверительный объект управления на другом потоке. Точно так же вызовы к функциям, возвращающим информацию о доверительном объекте управления (такой какSecTrustCopyCustomAnchorCertificates
функция), может привести к сбою или возвратить неожиданный результат, если эта функция одновременно изменяет тот же доверительный объект управления на другом потоке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
См. также
-
Получает массив всех сертификатов, доверяющих настройки определенному доверительному домену настроек.
Объявление
Swift
func SecTrustSettingsCopyCertificates(_
domain
: SecTrustSettingsDomain, _certArray
: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatusObjective C
OSStatus SecTrustSettingsCopyCertificates ( SecTrustSettingsDomain domain, CFArrayRef *certArray );
Параметры
domain
Доверительный домен настроек, для которого Вы хотите список сертификатов. Для возможных значений посмотрите Доверительные Константы Домена Настроек.
certArray
По возврату, массиву
SecCertificateRef
объекты, представляющие сертификаты, доверяющие настройки указанному домену. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services. Возвраты
errSecNoTrustSettings
если никакие доверительные настройки не существуют для указанного домена.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Получает дату и время, в которой были в последний раз изменены доверительные настройки сертификата.
Объявление
Swift
func SecTrustSettingsCopyModificationDate(_
certRef
: SecCertificate!, _domain
: SecTrustSettingsDomain, _modificationDate
: UnsafeMutablePointer<Unmanaged<CFDate>?>) -> OSStatusObjective C
OSStatus SecTrustSettingsCopyModificationDate ( SecCertificateRef certRef, SecTrustSettingsDomain domain, CFDateRef *modificationDate );
Параметры
certRef
Сертификат, для которого Вы хотите получить время изменения. Передайте значение
kSecTrustSettingsDefaultRootCertSetting
для получения времени изменения для корневого сертификата по умолчанию доверяют настройкам для домена.domain
Доверительный домен настроек доверительных настроек, для которых Вы хотите получить время изменения (для единственного сертификата возможно доверить настройки больше чем одному домену). Для возможных значений посмотрите Доверительные Константы Домена Настроек.
modificationDate
По возврату, дате и времени, в которой были в последний раз изменены доверительные настройки сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services. Возвраты
errSecItemNotFound
если никакие доверительные настройки не существуют для указанного сертификата и домена.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Получает доверительные настройки для сертификата.
Объявление
Swift
func SecTrustSettingsCopyTrustSettings(_
certRef
: SecCertificate!, _domain
: SecTrustSettingsDomain, _trustSettings
: UnsafeMutablePointer<Unmanaged<CFArray>?>) -> OSStatusObjective C
OSStatus SecTrustSettingsCopyTrustSettings ( SecCertificateRef certRef, SecTrustSettingsDomain domain, CFArrayRef *trustSettings );
Параметры
certRef
Сертификат, для которого Вы хотите доверительные настройки. Передайте значение
kSecTrustSettingsDefaultRootCertSetting
для получения корневого сертификата по умолчанию доверяют настройкам для домена.domain
Доверительный домен настроек доверительных настроек, которые Вы хотите получить. Для возможных значений посмотрите Доверительные Константы Домена Настроек.
trustSettings
По возврату, массиву
CFDictionary
объекты, указывающие доверительные настройки для сертификата. Для содержания словарей посмотрите обсуждение ниже. ВызовитеCFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services. Возвраты
errSecItemNotFound
если никакие доверительные настройки не существуют для указанного сертификата и домена.Обсуждение
Доверительные настройки каждого сертификата выражены как a
CFArray
это включает любое число (включая нуль) словарей типаCFDictionary
, каждый из которых включает один набор ограничений использования. Каждый ограничительный словарь использования содержит нуль или одну из каждой из следующих пар ключ/значение:Ключ
Значение
kSecTrustSettingsPolicy
Объект политики (
SecPolicyRef
) указание политики проверки сертификата; например: SSL, SMIME. ИспользуйтеSecPolicySearchCopyNext
функция для получения объекта политики.kSecTrustSettingsApplication
Доверяемая ссылка приложения (
SecTrustedApplicationRef
) для приложения, проверяющего доверительные настройки сертификата. ИспользуйтеSecTrustedApplicationCreateFromPath
функция для получения этой ссылки.kSecTrustSettingsPolicyString
A
CFString
содержа специфичные для политики данные. Для политики SMIME эта строка содержит адрес электронной почты. Для политики SSL это содержит имя хоста.kSecTrustSettingsKeyUsage
A
CFNumber
содержаSInt32
значение, указывающее операции, для которых может использоваться ключ шифрования в этом сертификате. Для возможных значений посмотрите Доверительные Ключевые Константы Использования Настроек.kSecTrustSettingsResult
A
CFNumber
содержаSInt32
значение, указывающее эффективную доверительную установку для этого ограничительного словаря использования. Данный ограничительный словарь использования включен в оценку доверия для сертификата, только если указанная политика, приложение и ключевое использование соответствуют использование, для которого оценивается сертификат. Если это верно, тогда значениеkSecTrustSettingsResult
ключ является ORed с результатами других словарей для определения полной доверительной установки для сертификата.Если этот ключ не присутствует, значение по умолчанию
kSecTrustSettingsResultTrustRoot
принят. Поскольку только корневой сертификат может иметь это значение, ограничительный словарь использования для некорневого сертификата, пропускающего этот ключ, не допустим.Возможные значения для этого ключа перечислены в Доверительных Константах Результата Настроек.
kSecTrustSettingsAllowedError
A
CFNumber
содержаSInt32
значение, указывающее aCSSM_RETURN
закончитесь код, если встречено во время проверки сертификата, проигнорированный для того сертификата. Эти “позволенная ошибка” значения применяется к оценке, только если ограничительный словарь использования удовлетворяет критерии, описанные сkSecTrustSettingsResult
ключ. Когда сертификат оценивается, ограничительный словарь использования без ограничений, но с позволенным ошибочным значением заставляет ту ошибку всегда позволяться.Полные доверительные настройки для сертификата являются суммой всех ограничительных словарей использования, соответствующих использование, для которого оценивается тот сертификат. Если какой-либо из словарей в доверительном массиве настроек сертификата удовлетворяет указанное использование, доверительные настройки для данного использования применяются. Таким образом, когда сертификат имеет многократные ограничительные словари использования в своем доверительном массиве настроек, полные доверительные настройки для сертификата:
((ограничительный словарь использования 0 0 компонента) AND (ограничительный словарь использования 0 1 компонента) AND (...)) OR ((ограничительный словарь использования 1 0 компонента) AND (ограничительный словарь использования 1 1 компонента) AND (...)) OR (...)...
Если значение
kSecTrustSettingsResult
компонент неkSecTrustSettingsResultUnspecified
для ограничительного словаря использования, не имеющего никаких ограничений, значения по умолчаниюkSecTrustSettingsResultTrustRoot
принят. Указать значение дляkSecTrustSettingsAllowedError
компонент, явно не доверяя или не доверяя связанному сертификату, укажите значениеkSecTrustSettingsResultUnspecified
дляkSecTrustSettingsResult
компонент.Пустой доверительный массив настроек (т.е.
trustSettings
параметр возвращает допустимое, но пустоеCFArray
) означает, «всегда доверяют этому сертификату” полную доверительную установку для сертификата оkSecTrustSettingsResultTrustRoot
. Обратите внимание на то, что пустой доверительный массив настроек не является тем же как никакими доверительными настройками (trustSettings
возвраты параметраNULL
), что означает, что «этот сертификат должен быть проверен к известному сертификату, которому доверяют”.Отметьте различие между результатами
kSecTrustSettingsResultTrustRoot
иkSecTrustSettingsResultTrustAsRoot
: Прежний может только быть применен к (самоподписанным) сертификатам корня; последний может только быть применен к некорневым сертификатам. Поэтому пустой доверительный массив настроек для некорневого сертификата недопустим, потому что значение по умолчаниюkSecTrustSettingsResultTrustRoot
не допустимо для некорневого сертификата.Специальные замечания
При внесении изменений в доверительные настройки в расчете на пользователя пользователю предлагают с предупредительной панелью, просящей аутентификацию (имя пользователя и пароль или другие учетные данные, обычно используемые для входа в систему). Поэтому не возможно изменить доверительные настройки в расчете на пользователя, если не работающие в среде GUI (т.е. когда пользователь не регистрируется на пути окно входа в систему). При внесении изменений в доверительные настройки в масштабе всей системы пользователю предлагают с предупредительной панелью, просящей имя и пароль администратора, если обработка вызовов не работает как корень, когда не необходима никакая дальнейшая аутентификация.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Получает внешнее, переносимое представление доверительных настроек указанного домена.
Объявление
Swift
func SecTrustSettingsCreateExternalRepresentation(_
domain
: SecTrustSettingsDomain, _trustSettings
: UnsafeMutablePointer<Unmanaged<CFData>?>) -> OSStatusObjective C
OSStatus SecTrustSettingsCreateExternalRepresentation ( SecTrustSettingsDomain domain, CFDataRef *trustSettings );
Параметры
domain
Доверительный домен настроек, для которого Вы хотите внешнее представление доверительных настроек. Для возможных значений посмотрите Доверительные Константы Домена Настроек.
trustSettings
Внешнее представление доверительных настроек домена. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services. Возвраты
errSecNoTrustSettings
если никакие доверительные настройки не существуют для указанного домена.Обсуждение
Доверительные настройки для сертификата связаны с хешем сертификата. Каждый раз, когда система встречается с сертификатом со значением хэш-функции, связанным с доверительными настройками, это применяется, те доверяют настройки сертификату. Эта функция позволяет, Вы для экспорта доверяете настройки переносимому формату данных, который может впоследствии быть импортирован на другой машине. Можно использовать эту возможность, например, для клонирования доверяют настройки всем машинам в предприятии или университете.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Импорт доверяет настройкам в доверенный домен.
Объявление
Swift
func SecTrustSettingsImportExternalRepresentation(_
domain
: SecTrustSettingsDomain, _trustSettings
: CFData!) -> OSStatusObjective C
OSStatus SecTrustSettingsImportExternalRepresentation ( SecTrustSettingsDomain domain, CFDataRef trustSettings );
Параметры
domain
Доверительный домен настроек, в который Вы хотите импортировать доверительные настройки. Для возможных значений посмотрите Доверительные Константы Домена Настроек.
trustSettings
Внешнее представление доверительных настроек (создаваемый
SecTrustSettingsCreateExternalRepresentation
функция), что Вы хотите импортировать.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Доверительные настройки для сертификата связаны с хешем сертификата. Каждый раз, когда система встречается с сертификатом со значением хэш-функции, связанным с доверительными настройками, это применяется, те доверяют настройки сертификату. Эта функция позволяет Вам импортировать доверительные настройки в переносимом формате данных, экспортировавшемся от другой машины. Можно использовать эту возможность, например, для клонирования доверяют настройки всем машинам в предприятии или университете.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Удаляет доверительные настройки для сертификата.
Объявление
Swift
func SecTrustSettingsRemoveTrustSettings(_
certRef
: SecCertificate!, _domain
: SecTrustSettingsDomain) -> OSStatusObjective C
OSStatus SecTrustSettingsRemoveTrustSettings ( SecCertificateRef certRef, SecTrustSettingsDomain domain );
Параметры
certRef
Сертификат, доверительные настройки которого Вы хотите удалить. Передайте значение
kSecTrustSettingsDefaultRootCertSetting
для удаления корневого сертификата по умолчанию доверяют настройкам для домена.domain
Доверительный домен настроек, для которого Вы хотите удалить доверительные настройки. Для возможных значений посмотрите Доверительные Константы Домена Настроек.
Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services. Возвраты
errSecItemNotFound
если никакие доверительные настройки не существуют для сертификата.Обсуждение
Если сертификат не имеет никаких доверительных настроек, сертификат должен быть проверен к известному, сертификату, которому доверяют.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Указывает доверительные настройки для сертификата.
Объявление
Swift
func SecTrustSettingsSetTrustSettings(_
certRef
: SecCertificate!, _domain
: SecTrustSettingsDomain, _trustSettingsDictOrArray
: AnyObject!) -> OSStatusObjective C
OSStatus SecTrustSettingsSetTrustSettings ( SecCertificateRef certRef, SecTrustSettingsDomain domain, CFTypeRef trustSettingsDictOrArray );
Параметры
certRef
Сертификат, для которого Вы хотите указать доверительные настройки. Передайте значение
kSecTrustSettingsDefaultRootCertSetting
для установки корневого сертификата по умолчанию доверяют настройкам для домена.domain
Доверительный домен настроек доверительных настроек, которые Вы хотите указать. Для возможных значений посмотрите Доверительные Константы Домена Настроек.
trustSettingsDictOrArray
Доверительные настройки Вы хотите указать для этого сертификата в форме a
CFDictionary
объект, aCFArray
изCFDictionary
объекты, илиNULL
. СодержаниеCFDictionary
объекты раньше указывали, что доверительные настройки детализированы вSecTrustSettingsCopyTrustSettings
функциональное описание. ПередачаNULL
если Вы хотите указать пустой доверительный массив настроек.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Если Вы передаете
NULL
дляtrustSettingsDictOrArray
параметр, тогда доверительные настройки для этого сертификата сохранены, поскольку пустой доверительный массив настроек, указывая «всегда доверяет этому корневому сертификату независимо от использования». Эта установка допустима только для самоподписанного (корневого) сертификата. Вместо этого удалить все доверительные настройки для сертификата (интерпретируемый как «этот сертификат должен быть проверен к известному, доверяло сертификату»), используйтеSecTrustSettingsRemoveTrustSettings
функция.Если указанный сертификат уже доверяет настройки указанному домену, эта функция заменяет их.
Специальные замечания
При внесении изменений в доверительные настройки в расчете на пользователя пользователю предлагают с предупредительной панелью, просящей аутентификацию (имя пользователя и пароль или другие учетные данные, обычно используемые для входа в систему). Поэтому не возможно изменить доверительные настройки в расчете на пользователя, если не работающие в среде GUI (т.е. когда пользователь не регистрируется на пути окно входа в систему). При внесении изменений в доверительные настройки в масштабе всей системы пользователю предлагают с предупредительной панелью, просящей имя и пароль администратора, если обработка вызовов не работает как корень, когда не необходима никакая дальнейшая аутентификация. Обратите внимание на то, что эта функция могла бы блокировать при ожидании ввода данных пользователем.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает строку, описывающую ошибку.
Объявление
Swift
func SecCopyErrorMessageString(_
status
: OSStatus, _reserved
: UnsafeMutablePointer<Void>) -> Unmanaged<CFString>!Objective C
CFStringRef SecCopyErrorMessageString ( OSStatus status, void *reserved );
Параметры
status
Ошибочный код результата типа
OSStatus
илиCSSM_RETURN
, как возвращено безопасностью или функцией CSSM.reserved
Зарезервированный для будущего использования. Передача
NULL
в этом параметре.Возвращаемое значение
Ссылка на локализованную строку ошибки или NULL, если никакая строка ошибки не доступна для указанного кода результата. Необходимо выпустить эту ссылку, когда Вы закончены с нею путем вызова
CFRelease
функция.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.3 и позже.
-
Содержит информацию об оценке сертификата.
Объявление
Swift
struct CSSM_TP_APPLE_EVIDENCE_INFO { var StatusBits: CSSM_TP_APPLE_CERT_STATUS var NumStatusCodes: uint32 var StatusCodes: UnsafeMutablePointer<CSSM_RETURN> var Index: uint32 var DlDbHandle: CSSM_DL_DB_HANDLE var UniqueRecord: CSSM_DB_UNIQUE_RECORD_PTR }
Objective C
typedef struct { CSSM_TP_APPLE_CERT_STATUS StatusBits; uint32 NumStatusCodes CSSM_RETURN *StatusCodes; uint32 Index; CSSM_DL_DB_HANDLE DlDbHandle CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord; } CSSM_TP_APPLE_EVIDENCE_INFO;
Поля
StatusBits
Указывает, допустим ли сертификат и где это было найдено; посмотрите Константы Состояния Сертификата.
NumStatusCodes
Число
CSSM_RETURN
структуры возвратились вStatusCodes
поле.StatusCodes
Массив
CSSM_RETURN
значения, указывающие, какие проблемы были найдены с сертификатом. Специфичные для Apple значения находятся вcssmapple.h
. Стандартные значения CSSM определяются вcssmerr.h
и обсуждены в “Кодах ошибки и Ошибочных Значениях” в “Trust Policy Services API” глава Коллективной безопасности: CDSA и CSSM, версия 2 (с исправлениями) от Open Group (http://www .opengroup.org/security/cdsa.htmIndex
Индекс в стандартный набор сертификатов или сертификатов привязки, если сертификат прибыл из одного из тех наборов.
DlDbHandle
Объект CSSM, идентифицирующий определенную базу данных. Если сертификат не прибывал из стандартного набора сертификатов или сертификатов привязки, это поле используется. Это значение полезно только, как введено для функций в API CSSM.
UniqueRecord
Объект CSSM, идентифицирующий определенную запись в базе данных. Если сертификат не прибывал из стандартного набора сертификатов или сертификатов привязки, это поле используется. Это значение полезно только как во вводе к функциям в API CSSM.
Обсуждение
Массив этих структур возвращается
SecTrustGetResult
функция; каждый описывает сертификат в цепочке сертификата.Доступность
Доступный в OS X v10.2 и позже.
-
Абстрактный Базовый Текстовый объект основы, представляющий сертификат X.509.
Объявление
Swift
typealias SecCertificateRef = SecCertificate
Objective C
typedef struct __SecCertificate *SecCertificateRef;
Обсуждение
A
SecCertificateRef
объект для сертификата, который сохранен в цепочке для ключей, может быть безопасно брошен к aSecKeychainItemRef
для манипулирования как элемент цепочки для ключей. С другой стороны, еслиSecCertificateRef
не сохранен в цепочке для ключей, бросая объект к aSecKeychainItemRef
и передача его к Keychain Services функционирует ошибки возвратов.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Абстрактный Базовый Текстовый объект основы, представляющий идентификационные данные.
Объявление
Swift
typealias SecIdentityRef = SecIdentity
Objective C
typedef struct __SecIdentity *SecIdentityRef;
Обсуждение
A
SecIdentityRef
объект содержит aSecKeyRef
возразите и связанноеSecCertificateRef
объект.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Содержит информацию о поиске идентификационных данных.
Объявление
Swift
typealias SecIdentitySearchRef = SecIdentitySearch
Objective C
typedef struct OpaqueSecIdentitySearchRef *SecIdentitySearchRef;
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Абстрактный Базовый Текстовый объект основы, представляющий асимметричный ключ.
Объявление
Swift
typealias SecKeyRef = SecKey
Objective C
typedef struct __SecKey *SecKeyRef;
Обсуждение
A
SecKeyRef
объект для ключа, который сохранен в цепочке для ключей, может быть безопасно брошен к aSecKeychainItemRef
для манипулирования как элемент цепочки для ключей. С другой стороны, еслиSecKeyRef
не сохранен в цепочке для ключей, бросая объект к aSecKeychainItemRef
и передача его к Keychain Services функционирует ошибки возвратов.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Содержит информацию о политике.
Объявление
Swift
typealias SecPolicyRef = SecPolicy
Objective C
typedef struct OpaqueSecPolicyRef *SecPolicyRef;
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Содержит информацию о поиске политики.
Объявление
Swift
typealias SecPolicySearchRef = SecPolicySearch
Objective C
typedef struct OpaquePolicySearchRef *SecPolicySearchRef;
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Представляет 20-байтовый хеш с открытым ключом.
Объявление
Swift
typealias SecPublicKeyHash = (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8)
Objective C
typedef UInt8 SecPublicKeyHash[20];
Обсуждение
SecPublicKeyHash
тип представляет хеш открытого ключа. Можно использовать константуkSecPublicKeyHashItemAttr
как введено к функциям в Keychain Services API, чтобы установить или получить значение атрибута сертификата этого типа. Посмотрите Ссылку Keychain Services для получения информации о получении и установке значений атрибута.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Содержит информацию о доверительном управлении.
Объявление
Swift
typealias SecTrustRef = SecTrust
Objective C
typedef struct __SecTrust *SecTrustRef;
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
Представляет указанные пользователями доверительные настройки.
Объявление
Objective C
typedef SecTrustResultType SecTrustUserSetting;
Обсуждение
Посмотрите Доверительные Константы Типа Результата для возможных значений.
Оператор импорта
Objective C
@import Security;
Доступность
Доступный в OS X v10.2 и позже.
Осуждаемый в OS X v10.9.
-
Блок, вызванный с результатами вызова к
SecKeyGeneratePairAsync
.Объявление
Swift
typealias SecKeyGeneratePairBlock = (SecKey!, SecKey!, CFError!) -> Void
Objective C
typedef void (^SecKeyGeneratePairBlock)(SecKeyRef publicKey, SecKeyRef privateKey, CFErrorRef error);
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Блок, вызванный с результатами вызова к
SecTrustEvaluateAsync
.Объявление
Swift
typealias SecTrustCallback = (SecTrust!, SecTrustResultType) -> Void
Objective C
typedef void (^SecTrustCallback)(SecTrustRef trustRef, SecTrustResultType trustResult);
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
Указывает атрибуты элемента сертификата.
Объявление
Swift
var kSecSubjectItemAttr: Int { get } var kSecIssuerItemAttr: Int { get } var kSecSerialNumberItemAttr: Int { get } var kSecPublicKeyHashItemAttr: Int { get } var kSecSubjectKeyIdentifierItemAttr: Int { get } var kSecCertTypeItemAttr: Int { get } var kSecCertEncodingItemAttr: Int { get }
Objective C
enum { kSecSubjectItemAttr = 'subj', kSecIssuerItemAttr = 'issu', kSecSerialNumberItemAttr = 'snbr', kSecPublicKeyHashItemAttr = 'hpky', kSecSubjectKeyIdentifierItemAttr = 'skid', kSecCertTypeItemAttr = 'ctyp', kSecCertEncodingItemAttr = 'cenc' };
Константы
-
kSecSubjectItemAttr
kSecSubjectItemAttr
Закодированное DER подчиненное отличительное имя.
Доступный в OS X v10.2 и позже.
-
kSecIssuerItemAttr
kSecIssuerItemAttr
Закодированное DER отличительное имя эмитента.
Доступный в OS X v10.2 и позже.
-
kSecSerialNumberItemAttr
kSecSerialNumberItemAttr
Закодированный DER порядковый номер сертификата (без тега и длины).
Доступный в OS X v10.2 и позже.
-
kSecPublicKeyHashItemAttr
kSecPublicKeyHashItemAttr
Хеш с открытым ключом.
Доступный в OS X v10.2 и позже.
-
kSecSubjectKeyIdentifierItemAttr
kSecSubjectKeyIdentifierItemAttr
Подчиненный ключевой идентификатор.
Доступный в OS X v10.2 и позже.
-
kSecCertTypeItemAttr
kSecCertTypeItemAttr
Тип сертификата.
Доступный в OS X v10.2 и позже.
-
kSecCertEncodingItemAttr
kSecCertEncodingItemAttr
Кодирование сертификата.
Доступный в OS X v10.2 и позже.
-
-
Указывает состояние сертификата.
Объявление
Swift
typealias CSSM_TP_APPLE_CERT_STATUS = uint32
Objective C
typedef uint32 CSSM_TP_APPLE_CERT_STATUS; enum { CSSM_CERT_STATUS_EXPIRED = 0x00000001, CSSM_CERT_STATUS_NOT_VALID_YET = 0x00000002, CSSM_CERT_STATUS_IS_IN_INPUT_CERTS = 0x00000004, CSSM_CERT_STATUS_IS_IN_ANCHORS = 0x00000008, CSSM_CERT_STATUS_IS_ROOT = 0x00000010, CSSM_CERT_STATUS_IS_FROM_NET = 0x00000020 };
Константы
-
CSSM_CERT_STATUS_EXPIRED
CSSM_CERT_STATUS_EXPIRED
Сертификат истек.
Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_NOT_VALID_YET
CSSM_CERT_STATUS_NOT_VALID_YET
Сертификат еще не допустим. В дополнение к истечению срока, или “Не Допустимый После”, дата и время, каждый сертификат имеет “Не Допустимый Перед” дата и время.
Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_IN_INPUT_CERTS
CSSM_CERT_STATUS_IS_IN_INPUT_CERTS
Это - один из сертификатов, включенных в массив сертификатов, переданных
SecTrustCreateWithCertificates
функция.Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_IN_ANCHORS
CSSM_CERT_STATUS_IS_IN_ANCHORS
Этот сертификат был найден в хранилище системы сертификатов привязки (см.
SecTrustSetAnchorCertificates
).Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_ROOT
CSSM_CERT_STATUS_IS_ROOT
Сертификат является корневым сертификатом. Если этот бит установлен, но
CSSM_CERT_STATUS_IS_IN_ANCHORS
бит не, тогда это - недоверяемая привязка.Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_FROM_NET
CSSM_CERT_STATUS_IS_FROM_NET
Сертификат был получен через некоторый механизм кроме сертификатов, сохраненных операционной системой и переданными в
SecTrustCreateWithCertificates
функция. Например, сертификат, возможно, был выбран по сети.Доступный в OS X v10.3 и позже.
Обсуждение
Если ни один из этих битов не установлен, сертификат прибыл из стандартного поиска сертификата; см. описание
SecTrustSetKeychains
функция.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
-
Указывает тип дополнения, которое будет использоваться при создании или заверении цифровой подписи.
Объявление
Swift
typealias SecPadding = UInt32
Objective C
typedef uint32_t SecPadding; enum { kSecPaddingNone = 0, kSecPaddingPKCS1 = 1, kSecPaddingPKCS1MD2 = 0x8000, kSecPaddingPKCS1MD5 = 0x8001, kSecPaddingPKCS1SHA1 = 0x8002, };
Константы
-
kSecPaddingNone
kSecPaddingNone
Никакое дополнение.
Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1
kSecPaddingPKCS1
Дополнение PKCS1.
Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1MD2
kSecPaddingPKCS1MD2
Данные, которые будут подписаны, являются хешем MD2.
Стандартное дополнение ASN.1 сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSign
иSecKeyRawVerify
только.Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1MD5
kSecPaddingPKCS1MD5
Данные, которые будут подписаны, являются хешем MD5.
Стандартное дополнение ASN.1 сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSign
иSecKeyRawVerify
только.Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1SHA1
kSecPaddingPKCS1SHA1
Данные, которые будут подписаны, являются хешем SHA1.
Стандартное дополнение ASN.1 будет сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSign
иSecKeyRawVerify
только.Доступный в OS X v10.6 и позже.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.6 и позже.
-
-
Используйте эти ключи словаря с
SecKeyGeneratePair
функция.Объявление
Swift
var kSecPrivateKeyAttrs: Unmanaged<AnyObject>! var kSecPublicKeyAttrs: Unmanaged<AnyObject>!
Objective C
CFTypeRef kSecPrivateKeyAttrs; CFTypeRef kSecPublicKeyAttrs;
Константы
-
kSecPrivateKeyAttrs
kSecPrivateKeyAttrs
Частные атрибуты криптографического ключа.
Соответствующее значение является a
CFDictionaryRef
словарь, содержащий пары ключ/значение для атрибутов, определенных для закрытого ключа, который будет сгенерирован.Доступный в OS X v10.8 и позже.
-
kSecPublicKeyAttrs
kSecPublicKeyAttrs
Общедоступные атрибуты криптографического ключа.
Соответствующее значение является a
CFDictionaryRef
словарь, содержащий пары ключ/значение для атрибутов, определенных для открытого ключа, который будет сгенерирован.Доступный в OS X v10.8 и позже.
-
-
Указывает доверительный тип результата.
Объявление
Swift
typealias SecTrustResultType = UInt32
Objective C
typedef uint32_t SecTrustResultType; enum { kSecTrustResultInvalid, kSecTrustResultProceed, kSecTrustResultConfirm, kSecTrustResultDeny, kSecTrustResultUnspecified, kSecTrustResultRecoverableTrustFailure, kSecTrustResultFatalTrustFailure, kSecTrustResultOtherError };
Константы
-
kSecTrustResultInvalid
kSecTrustResultInvalid
Недопустимая установка или результат. Обычно, этот результат указывает что
SecTrustEvaluate
функция не завершалась успешно.Доступный в OS X v10.2 и позже.
-
kSecTrustResultProceed
kSecTrustResultProceed
Пользователь указал, что можно доверять сертификату в целях, определяемых в указанных политиках. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Всегда Доверием”.Доступный в OS X v10.2 и позже.
-
kSecTrustResultConfirm
kSecTrustResultConfirm
Подтверждение от пользователя требуется перед продолжением. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access называют это значение, “Спросите Разрешение”.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.9.
-
kSecTrustResultDeny
kSecTrustResultDeny
Пользователь указал, что нельзя доверять сертификату. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Никогда Доверием”.Доступный в OS X v10.2 и позже.
-
kSecTrustResultUnspecified
kSecTrustResultUnspecified
Пользователь не указывал доверительную установку. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Системной Политикой Использования”. Это - пользователь по умолчанию, устанавливающий.Доступный в OS X v10.2 и позже.
-
kSecTrustResultRecoverableTrustFailure
kSecTrustResultRecoverableTrustFailure
Доверие отклонено; повторите после изменения настроек. Например, если доверие отклонено, потому что сертификат истек, можно спросить пользователя, доверять ли сертификату так или иначе. Если пользователь отвечает да, то используйте
SecTrustSettingsSetTrustSettings
функционируйте для установки пользовательского доверия, устанавливающего вkSecTrustResultProceed
и вызовитеSecTrustEvaluate
снова. Это значение может быть возвращеноSecTrustEvaluate
функционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в OS X v10.2 и позже.
-
kSecTrustResultFatalTrustFailure
kSecTrustResultFatalTrustFailure
Доверие отклонено; нет простая фиксация доступна. Например, если сертификат не может быть проверен, потому что он повреждается, доверительные отношения не могут быть установлены, не заменяя сертификат. Это значение может быть возвращено
SecTrustEvaluate
функционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в OS X v10.2 и позже.
-
kSecTrustResultOtherError
kSecTrustResultOtherError
Отказ кроме той из доверительной оценки; например, внутренний отказ
SecTrustEvaluate
функция. Это значение может быть возвращеноSecTrustEvaluate
функционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в OS X v10.2 и позже.
Обсуждение
Эти константы могут быть возвращены
SecTrustEvaluate
функционируйте или сохраненный как одну из пользовательских настроек доверия (см.SecTrustSettingsSetTrustSettings
), как отмечено. При оценке пользовательского доверия,SecTrustEvaluate
запускается с листового сертификата и работ через цепочку вниз к привязке.SecTrustSettingsCopyTrustSettings
функционируйте возвращает пользовательскую установку доверия первого сертификата, для которого установка отличаетсяkSecTrustResultUnspecified
. Точно так же функция использует пользовательскую установку доверия первого сертификата, для которого установка отличаетсяkSecTrustResultUnspecified
, независимо от пользователя доверяют настройкам других сертификатов в цепочке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
-
Указывает опции для действия модуля доверительной политики AppleX509TP по умолчанию.
Объявление
Swift
typealias CSSM_APPLE_TP_ACTION_FLAGS = uint32
Objective C
typedef uint32 CSSM_APPLE_TP_ACTION_FLAGS; enum { CSSM_TP_ACTION_ALLOW_EXPIRED = 0x00000001, CSSM_TP_ACTION_LEAF_IS_CA = 0x00000002, CSSM_TP_ACTION_FETCH_CERT_FROM_NET = 0x00000004, CSSM_TP_ACTION_ALLOW_EXPIRED_ROOT = 0x00000008 };
Константы
-
CSSM_TP_ACTION_ALLOW_EXPIRED
CSSM_TP_ACTION_ALLOW_EXPIRED
Проигнорируйте дату истечения срока и время для всех сертификатов.
Доступный в OS X v10.2 и позже.
-
CSSM_TP_ACTION_LEAF_IS_CA
CSSM_TP_ACTION_LEAF_IS_CA
Первый сертификат является сертификатом центра сертификации (CA). По формальному определению допустимая цепочка сертификата должна начаться с сертификата, который не является Приблизительно Набор этот бит, если Вы хотите проверить частичную цепочку, начиная с CA и работающий к привязке, или если Вы хотите оценить единственный самоподписанный сертификат как один сертификат «цепочка» для тестирования.
Доступный в OS X v10.3 и позже.
-
CSSM_TP_ACTION_FETCH_CERT_FROM_NET
CSSM_TP_ACTION_FETCH_CERT_FROM_NET
Включите выбирающие промежуточные сертификаты по сети с помощью http или LDAP.
Доступный в OS X v10.3 и позже.
-
CSSM_TP_ACTION_ALLOW_EXPIRED_ROOT
CSSM_TP_ACTION_ALLOW_EXPIRED_ROOT
Проигнорируйте дату истечения срока и время для корневых сертификатов только.
Доступный в OS X v10.2 и позже.
Обсуждение
Посмотрите
SecTrustSetParameters
для получения дополнительной информации о действиях.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.2 и позже.
-
-
Ключи словаря, используемые в словарях, возвращенных
SecPKCS12Import
функция.Объявление
Swift
var kSecImportItemLabel: Unmanaged<CFString>! var kSecImportItemKeyID: Unmanaged<CFString>! var kSecImportItemTrust: Unmanaged<CFString>! var kSecImportItemCertChain: Unmanaged<CFString>! var kSecImportItemIdentity: Unmanaged<CFString>!
Objective C
extern CFStringRef kSecImportItemLabel; extern CFStringRef kSecImportItemKeyID; extern CFStringRef kSecImportItemTrust; extern CFStringRef kSecImportItemCertChain; extern CFStringRef kSecImportItemIdentity;
Константы
-
kSecImportItemLabel
kSecImportItemLabel
Метка элемента.
Соответствующее значение имеет тип
CFStringRef
. Формат строки является определенной реализацией.Доступный в OS X v10.6 и позже.
-
kSecImportItemKeyID
kSecImportItemKeyID
Ключевой ID.
Соответствующее значение имеет тип
CFDataRef
. Этот уникальный идентификатор часто является обзором SHA 1 общедоступного ключа шифрования.Доступный в OS X v10.6 и позже.
-
kSecImportItemTrust
kSecImportItemTrust
Доверительный объект управления.
Соответствующее значение имеет тип
SecTrustRef
. Доверительная ссылка, возвращеннаяSecPKCS12Import
функция была оценена против базовой политики X.509 и включает столь полную цепочку сертификата, как мог быть создан из сертификатов в блобе № 12 PKCS, сертификатов на цепочке для ключей и любых других сертификатов, доступных системе. Можно использоватьSecTrustEvaluate
функционируйте, если Вы хотите знать, завершена ли цепочка сертификата и допустима (согласно базовой политике X.509). Нет никакой гарантии, что успешно выполнится оценка.Доступный в OS X v10.6 и позже.
-
kSecImportItemCertChain
kSecImportItemCertChain
Список сертификата.
Соответствующее значение имеет тип
CFArrayRef
. Массив состоит изSecCertificateRef
объекты для всех сертификатов в блобе № 12 PKCS. Этот список мог бы отличаться от этого в доверительном объекте управления, если существуют больше чем одни идентификационные данные в блобе или если блоб содержит дополнительные сертификаты (например, промежуточный сертификат, который еще не допустим, но мог бы быть необходим для установления законности в ближайшем будущем).Доступный в OS X v10.6 и позже.
-
kSecImportItemIdentity
kSecImportItemIdentity
Объект идентификационных данных.
Соответствующее значение имеет тип
SecIdentityRef
и представляет идентификационные данные, содержавшиеся в блобе № 12 PKCS.Доступный в OS X v10.6 и позже.
-
-
Домены, для которых можно установить или получить идентификационные данные в масштабе всей системы.
Объявление
Swift
let kSecIdentityDomainDefault: CFString! let kSecIdentityDomainKerberosKDC: CFString!
Objective C
const CFStringRef kSecIdentityDomainDefault; const CFStringRef kSecIdentityDomainKerberosKDC;
Константы
-
kSecIdentityDomainDefault
kSecIdentityDomainDefault
Идентификационные данные по умолчанию в масштабе всей системы.
Доступный в OS X v10.5 и позже.
-
kSecIdentityDomainKerberosKDC
kSecIdentityDomainKerberosKDC
Идентификационные данные Центра распределения ключей (KDC) Kerberos.
Доступный в OS X v10.5 и позже.
Обсуждение
Эти константы могут использоваться с
SecIdentitySetSystemIdentity
иSecIdentityCopySystemIdentity
функции. -
-
Учетный тип, который будет возвращен
SecKeyGetCredentials
.Объявление
Swift
typealias SecCredentialType = uint32
Objective C
typedef uint32 SecCredentialType; enum { kSecCredentialTypeDefault = 0, kSecCredentialTypeWithUI, kSecCredentialTypeNoUI };
Константы
-
kSecCredentialTypeDefault
kSecCredentialTypeDefault
Настройка по умолчанию для определения, представить ли UI, используется.
Настройки по умолчанию могут быть изменены с вызовом к
SecKeychainSetUserInteractionAllowed
.Доступный в OS X v10.5 и позже.
-
kSecCredentialTypeWithUI
kSecCredentialTypeWithUI
Операциям цепочки для ключей на ключах, имеющих эти учетные данные, позволяют представить UI при необходимости.
Доступный в OS X v10.5 и позже.
-
kSecCredentialTypeNoUI
kSecCredentialTypeNoUI
Операциям цепочки для ключей на ключах, имеющих эти учетные данные, не позволяют представить UI и перестанут работать, если требуется UI.
Доступный в OS X v10.5 и позже.
Обсуждение
Посмотрите раздел «Servers and the Keychain» в главе Задач OS X Keychain Services Руководства по программированию Keychain Services для получения информации об использовании UI с задачами цепочки для ключей.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
-
Доверительные домены настроек используются доверительными настройками API.
Объявление
Swift
typealias SecTrustSettingsDomain = uint32
Objective C
enum { kSecTrustSettingsDomainUser = 0, kSecTrustSettingsDomainAdmin, kSecTrustSettingsDomainSystem }; typedef uint32 SecTrustSettingsDomain;
Константы
-
kSecTrustSettingsDomainUser
kSecTrustSettingsDomainUser
Доверительные настройки в расчете на пользователя.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsDomainAdmin
kSecTrustSettingsDomainAdmin
Локально администрируемые, доверительные настройки в масштабе всей системы.
Права администратора требуются, чтобы вносить изменения в этот домен.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsDomainSystem
kSecTrustSettingsDomainSystem
Системные настройки доверия.
Эти доверительные настройки являются неизменными и включают набор доверяемых корневых сертификатов, предоставленных в OS X. Эти настройки только для чтения, даже корнем.
Доступный в OS X v10.5 и позже.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
-
Позволенное использование для ключа шифрования в сертификате.
Объявление
Swift
typealias SecTrustSettingsKeyUsage = uint32
Objective C
enum { kSecTrustSettingsKeyUseSignature = 0x00000001, kSecTrustSettingsKeyUseEnDecryptData = 0x00000002, kSecTrustSettingsKeyUseEnDecryptKey = 0x00000004, kSecTrustSettingsKeyUseSignCert = 0x00000008, kSecTrustSettingsKeyUseSignRevocation = 0x00000010, kSecTrustSettingsKeyUseKeyExchange = 0x00000020, kSecTrustSettingsKeyUseAny = 0xffffffff }; typedef uint32 SecTrustSettingsKeyUsage;
Константы
-
kSecTrustSettingsKeyUseSignature
kSecTrustSettingsKeyUseSignature
Ключ может использоваться, чтобы подписать данные или заверить подпись.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseEnDecryptData
kSecTrustSettingsKeyUseEnDecryptData
Ключ может использоваться, чтобы зашифровать или дешифровать данные.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseEnDecryptKey
kSecTrustSettingsKeyUseEnDecryptKey
Ключ может использоваться, чтобы зашифровать или дешифровать (оберните или разверните), ключ.
Закрытые ключи должны быть обернуты, прежде чем они смогут быть экспортированы от цепочки для ключей.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseSignCert
kSecTrustSettingsKeyUseSignCert
Ключ может использоваться, чтобы подписать сертификат или заверить подпись.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseSignRevocation
kSecTrustSettingsKeyUseSignRevocation
Ключ может использоваться, чтобы подписать OCSP (онлайновый протокол состояния сертификата) сообщение или CRL (список проверки сертификата), или заверить подпись.
Сообщения OCSP и CRLs используются для отмены сертификатов.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseKeyExchange
kSecTrustSettingsKeyUseKeyExchange
Ключ является закрытым ключом, совместно использованным с помощью ключевого протокола обмена, такого как Обмен ключами Диффи-Хеллмана.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseAny
kSecTrustSettingsKeyUseAny
Ключ может использоваться в любой цели.
Если никакое другое ключевое использование не указано, это - установка ключевого использования по умолчанию.
Доступный в OS X v10.5 и позже.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
-
Ключи в одном ограничительном словаре использования.
Объявление
Objective C
#define kSecTrustSettingsPolicy CFSTR("kSecTrustSettingsPolicy") #define kSecTrustSettingsApplication CFSTR("kSecTrustSettingsApplication") #define kSecTrustSettingsPolicyString CFSTR("kSecTrustSettingsPolicyString") #define kSecTrustSettingsKeyUsage CFSTR("kSecTrustSettingsKeyUsage") #define kSecTrustSettingsAllowedError CFSTR("kSecTrustSettingsAllowedError") #define kSecTrustSettingsResult CFSTR("kSecTrustSettingsResult")
Константы
-
kSecTrustSettingsPolicy
kSecTrustSettingsPolicy
Объект политики (
SecPolicyRef
) указание политики проверки сертификата.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsApplication
kSecTrustSettingsApplication
Доверяемая ссылка приложения (
SecTrustedApplicationRef
) для приложения, проверяющего доверительные настройки сертификата.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsPolicyString
kSecTrustSettingsPolicyString
A
CFString
содержа специфичные для политики данные.Для политики SMIME эта строка содержит адрес электронной почты. Для политики SSL это содержит имя хоста.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUsage
kSecTrustSettingsKeyUsage
A
CFNumber
содержаSInt32
значение, указывающее операции, для которых может использоваться ключ шифрования в этом сертификате.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsAllowedError
kSecTrustSettingsAllowedError
A
CFNumber
содержаSInt32
значение, указывающее aCSSM_RETURN
закончитесь код, если встречено во время проверки сертификата, проигнорированный для того сертификата.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResult
kSecTrustSettingsResult
A
CFNumber
содержаSInt32
значение, указывающее эффективную доверительную установку для этого ограничительного словаря использования.Доступный в OS X v10.5 и позже.
-
-
Эффективные доверительные настройки для ограничительных словарей использования, используемых
SecTrustSettingsCopyTrustSettings
иSecTrustSettingsSetTrustSettings
функции.Объявление
Swift
typealias SecTrustSettingsResult = uint32
Objective C
enum { kSecTrustSettingsResultInvalid = 0, kSecTrustSettingsResultTrustRoot, kSecTrustSettingsResultTrustAsRoot, kSecTrustSettingsResultDeny, kSecTrustSettingsResultUnspecified }; typedef uint32 SecTrustSettingsResult;
Константы
-
kSecTrustSettingsResultInvalid
kSecTrustSettingsResultInvalid
Никогда допустимый в доверительном массиве настроек или в вызове API.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultTrustRoot
kSecTrustSettingsResultTrustRoot
Этому корневому сертификату явно доверяют.
Если сертификат не является (самоподписанным) сертификатом корня, ограничительный словарь использования недопустим.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultTrustAsRoot
kSecTrustSettingsResultTrustAsRoot
Этому некорневому сертификату явно доверяют, как будто это был доверяемый корень.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultDeny
kSecTrustSettingsResultDeny
Этому сертификату явно не доверяют.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultUnspecified
kSecTrustSettingsResultUnspecified
Этому сертификату ни не доверяют, ни не доверяют. Это значение может использоваться, чтобы указать, что «позволенная ошибка» без присвоения доверяет определенному сертификату.
Это значение может использоваться, чтобы указать, что позволенная ошибка без присвоения доверяет сертификату.
Доступный в OS X v10.5 и позже.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.5 и позже.
-
-
Значение, указывающее корневой сертификат по умолчанию, доверяет настройкам, когда используется для a
SecCertificateRef
объект в доверительной API-функции настроек.Объявление
Objective C
#define kSecTrustSettingsDefaultRootCertSetting ((SecCertificateRef)-1)
Константы
-
kSecTrustSettingsDefaultRootCertSetting
kSecTrustSettingsDefaultRootCertSetting
Доверительные настройки по умолчанию для корневых сертификатов.
Доступный в OS X v10.5 и позже.
Обсуждение
Используйте это значение с
SecTrustSettingsSetTrustSettings
функционируйте для установки доверительных настроек по умолчанию для корневых сертификатов. При оценке доверительных настроек для корневого сертификата в данном домене, если никакие соответствующие явные доверительные настройки не существуют для того сертификата, то значение по умолчанию для эффективной доверительной установки возвращается (предполагающий, что значение по умолчанию было установлено и что результат неkSecTrustSettingsResultUnspecified
). -
-
Ключи в словарных статьях, возвращенных
SecCertificateCopyValues
.Объявление
Swift
var kSecPropertyKeyType: Unmanaged<CFString>! var kSecPropertyKeyLabel: Unmanaged<CFString>! var kSecPropertyKeyLocalizedLabel: Unmanaged<CFString>! var kSecPropertyKeyValue: Unmanaged<CFString>!
Objective C
extern CFStringRef kSecPropertyKeyType; extern CFStringRef kSecPropertyKeyLabel; extern CFStringRef kSecPropertyKeyLocalizedLabel; extern CFStringRef kSecPropertyKeyValue;
Константы
-
kSecPropertyKeyType
kSecPropertyKeyType
Описывает тип в описывании
kSecPropertyKeyValue
запись. Возможные значения описаны в Ключах Типа Свойства.Доступный в OS X v10.7 и позже.
-
kSecPropertyKeyLabel
kSecPropertyKeyLabel
Метка для записи. Эта метка может содержать дескриптивную (локализованную) строку или строку OID.
Доступный в OS X v10.7 и позже.
-
kSecPropertyKeyLocalizedLabel
kSecPropertyKeyLocalizedLabel
Локализованная метка записи.
Доступный в OS X v10.7 и позже.
-
kSecPropertyKeyValue
kSecPropertyKeyValue
Значение для этой записи. Запись значения может быть любым Базовым типом Основы, но это обычно - CFStringRef, CFArrayRef или CFDictionaryRef.
Доступный в OS X v10.7 и позже.
-
-
Введите значения, которые могут появиться в
kSecPropertyKeyType
ключ в словарных статьях, возвращенныхSecCertificateCopyValues
.Объявление
Swift
var kSecPropertyTypeWarning: Unmanaged<CFString>! var kSecPropertyTypeSuccess: Unmanaged<CFString>! var kSecPropertyTypeSection: Unmanaged<CFString>! var kSecPropertyTypeData: Unmanaged<CFString>! var kSecPropertyTypeString: Unmanaged<CFString>! var kSecPropertyTypeURL: Unmanaged<CFString>! var kSecPropertyTypeDate: Unmanaged<CFString>! var kSecPropertyTypeTitle: Unmanaged<AnyObject>! var kSecPropertyTypeError: Unmanaged<AnyObject>!
Objective C
extern CFStringRef kSecPropertyTypeWarning; extern CFStringRef kSecPropertyTypeSuccess; extern CFStringRef kSecPropertyTypeSection; extern CFStringRef kSecPropertyTypeData; extern CFStringRef kSecPropertyTypeString; extern CFStringRef kSecPropertyTypeURL; extern CFStringRef kSecPropertyTypeDate; extern CFTypeRef kSecPropertyTypeTitle; extern CFTypeRef kSecPropertyTypeError;
Константы
-
kSecPropertyTypeWarning
kSecPropertyTypeWarning
Указывает ключ, значение которого является a
CFStringRef
объект, описывающий доверительное предупреждение оценки.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeSuccess
kSecPropertyTypeSuccess
Указывает ключ, значение которого является a
CFStringRef
объект, описывающий доверительный успех оценки.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeSection
kSecPropertyTypeSection
Указывает ключ, значение которого является a
CFStringRef
объект, описывающий имя поля в сертификате (CFSTR("Subject Name")
, например).Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeData
kSecPropertyTypeData
Указывает ключ, значение которого является a
CFDataRef
объект.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeString
kSecPropertyTypeString
Указывает ключ, значение которого является a
CFStringRef
объект, содержащий строку.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeURL
kSecPropertyTypeURL
Указывает ключ, значение которого является a
CFStringRef
объект, содержащий URL.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeDate
kSecPropertyTypeDate
Указывает ключ, значение которого является a
CFStringRef
объект, содержащий дату (или строка, перечисляющая байты недопустимой даты).Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeTitle
kSecPropertyTypeTitle
Указывает ключ, значение которого является a
CFStringRef
объект, содержащий заголовок (выводят на экран имя) сертификата.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeError
kSecPropertyTypeError
Указывает ключ, значение которого является a
CFStringRef
объект, содержащий причину доверительного отказа оценки.Доступный в OS X v10.7 и позже.
-
-
Константы, представляющие позволенное использование сертификата.
Объявление
Swift
let kSecCertificateUsageSigning: CFString! let kSecCertificateUsageSigningAndEncrypting: CFString! let kSecCertificateUsageDeriveAndSign: CFString!
Objective C
extern const CFStringRef kSecCertificateUsageSigning; extern const CFStringRef kSecCertificateUsageSigningAndEncrypting; extern const CFStringRef kSecCertificateUsageDeriveAndSign;
Константы
-
kSecCertificateUsageSigning
kSecCertificateUsageSigning
Сертификат может использоваться для подписания.
Доступный в OS X v10.7 и позже.
-
kSecCertificateUsageSigningAndEncrypting
kSecCertificateUsageSigningAndEncrypting
Сертификат может использоваться для подписания и шифрования.
Доступный в OS X v10.7 и позже.
-
kSecCertificateUsageDeriveAndSign
kSecCertificateUsageDeriveAndSign
Сертификат может использоваться для подписания и для получения другого ключа.
Доступный в OS X v10.7 и позже.
-
-
Ключи политики, используемые
SecPolicyCopyProperties
иSecPolicySetProperties
.Объявление
Swift
var kSecPolicyOid: Unmanaged<AnyObject>! var kSecPolicyName: Unmanaged<AnyObject>! var kSecPolicyClient: Unmanaged<AnyObject>! var kSecPolicyKU_DigitalSignature: Unmanaged<AnyObject>! var kSecPolicyKU_NonRepudiation: Unmanaged<AnyObject>! var kSecPolicyKU_KeyEncipherment: Unmanaged<AnyObject>! var kSecPolicyKU_DataEncipherment: Unmanaged<AnyObject>! var kSecPolicyKU_KeyAgreement: Unmanaged<AnyObject>! var kSecPolicyKU_KeyCertSign: Unmanaged<AnyObject>! var kSecPolicyKU_CRLSign: Unmanaged<AnyObject>! var kSecPolicyKU_EncipherOnly: Unmanaged<AnyObject>! var kSecPolicyKU_DecipherOnly: Unmanaged<AnyObject>!
Objective C
extern CFTypeRef kSecPolicyOid extern CFTypeRef kSecPolicyName extern CFTypeRef kSecPolicyClient extern CFTypeRef kSecPolicyKU_DigitalSignature; extern CFTypeRef kSecPolicyKU_NonRepudiation; extern CFTypeRef kSecPolicyKU_KeyEncipherment; extern CFTypeRef kSecPolicyKU_DataEncipherment; extern CFTypeRef kSecPolicyKU_KeyAgreement; extern CFTypeRef kSecPolicyKU_KeyCertSign; extern CFTypeRef kSecPolicyKU_CRLSign; extern CFTypeRef kSecPolicyKU_EncipherOnly; extern CFTypeRef kSecPolicyKU_DecipherOnly;
Константы
-
kSecPolicyOid
kSecPolicyOid
Идентификатор объекта, определяющий тип политики (
CFStringRef
). Все политики имеют значение для этого ключа.Доступный в OS X v10.7 и позже.
-
kSecPolicyName
kSecPolicyName
Имя (
CFStringRef
) то, что сертификат должен соответствовать для удовлетворения этой политики. Для SSL/TLS это указывает имя сервера, которое должно соответствовать общее название сертификата. Для S/MIME это указывает адрес электронной почты RFC 822.Доступный в OS X v10.7 и позже.
-
kSecPolicyClient
kSecPolicyClient
Если это правда, указывает, что эта политика должна быть оценена против клиентского сертификата. Если ложь, политика оценена против сертификата для сервера. Значение по умолчанию является ложью.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_DigitalSignature
kSecPolicyKU_DigitalSignature
Если это правда, ключевое использование сертификата должно позволить ему использоваться для подписания.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_NonRepudiation
kSecPolicyKU_NonRepudiation
Если это правда, ключевое использование сертификата должно позволить ему использоваться для неотказа.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_KeyEncipherment
kSecPolicyKU_KeyEncipherment
Если это правда, ключевое использование сертификата должно позволить ему использоваться для ключевого шифрования.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_DataEncipherment
kSecPolicyKU_DataEncipherment
Если это правда, ключевое использование сертификата должно позволить ему использоваться для шифрования данных.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_KeyAgreement
kSecPolicyKU_KeyAgreement
Если это правда, ключевое использование сертификата должно позволить ему использоваться для согласования ключей.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_KeyCertSign
kSecPolicyKU_KeyCertSign
Если это правда, ключевое использование сертификата должно позволить ему использоваться для подписания сертификатов.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_CRLSign
kSecPolicyKU_CRLSign
Если это правда, ключевое использование сертификата должно позволить ему использоваться для подписания списков аннулированных сертификатов (CRLs).
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_EncipherOnly
kSecPolicyKU_EncipherOnly
Если это правда, ключевое использование сертификата должно позволить ему использоваться только для шифрования.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_DecipherOnly
kSecPolicyKU_DecipherOnly
Если это правда, ключевое использование сертификата должно позволить ему использоваться только для дешифрования.
Доступный в OS X v10.7 и позже.
-
-
Доверительные флаги опции, используемые для
SecTrustSetOptions
.Объявление
Swift
typealias SecTrustOptionFlags = UInt32
Objective C
enum { kSecTrustOptionAllowExpired = 0x00000001, kSecTrustOptionLeafIsCA = 0x00000002, kSecTrustOptionFetchIssuerFromNet = 0x00000004, kSecTrustOptionAllowExpiredRoot = 0x00000008, kSecTrustOptionRequireRevPerCert = 0x00000010, kSecTrustOptionImplicitAnchors = 0x00000040 }; typedef uint32_t SecTrustOptionFlags;
Константы
-
kSecTrustOptionAllowExpired
kSecTrustOptionAllowExpired
Позвольте истекшие сертификаты (за исключением корневого сертификата).
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionLeafIsCA
kSecTrustOptionLeafIsCA
Позвольте сертификаты CA как листовые сертификаты.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionFetchIssuerFromNet
kSecTrustOptionFetchIssuerFromNet
Позвольте сетевые загрузки сертификатов CA.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionAllowExpiredRoot
kSecTrustOptionAllowExpiredRoot
Позвольте истекшие корневые сертификаты.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionRequireRevPerCert
kSecTrustOptionRequireRevPerCert
Потребуйте положительной проверки аннулирования на каждый сертификат.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionImplicitAnchors
kSecTrustOptionImplicitAnchors
Обработка должным образом самоподписала сертификаты как привязки неявно.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
-
Поддерживаемые размеры для ключей различных общих типов.
Объявление
Swift
typealias SecKeySizes = UInt32
Objective C
enum { kSecDefaultKeySize = 0, // Symmetric Keysizes - default is currently kSecAES128 for AES. kSec3DES192 = 192, kSecAES128 = 128, kSecAES192 = 192, kSecAES256 = 256, // Supported ECC Keys for Suite-B from RFC 4492 section 5.1.1. // default is currently kSecp256r1 kSecp192r1 = 192, kSecp256r1 = 256, kSecp384r1 = 384, kSecp521r1 = 521, // Yes, 521 // Boundaries for RSA KeySizes - default is currently 2048 // RSA keysizes must be multiples of 8 kSecRSAMin = 1024, kSecRSAMax = 4096 }; typedef uint32_t SecKeySizes;
Константы
-
kSecDefaultKeySize
kSecDefaultKeySize
Размер ключа по умолчанию для указанного типа.
Доступный в OS X v10.7 и позже.
-
kSec3DES192
kSec3DES192
192-разрядный DES.
Доступный в OS X v10.7 и позже.
-
kSecAES128
kSecAES128
128-разрядный AES.
Доступный в OS X v10.7 и позже.
-
kSecAES192
kSecAES192
192-разрядный AES.
Доступный в OS X v10.7 и позже.
-
kSecAES256
kSecAES256
256-разрядный AES.
Доступный в OS X v10.7 и позже.
-
kSecp192r1
kSecp192r1
192-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecp256r1
kSecp256r1
256-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecp384r1
kSecp384r1
384-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecp521r1
kSecp521r1
521-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecRSAMin
kSecRSAMin
1 024 бита являются минимальным размером для ключа RSA.
Доступный в OS X v10.7 и позже.
-
kSecRSAMax
kSecRSAMax
4 096 битов являются максимальным размером для ключа RSA.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в OS X v10.7 и позже.
-
-
Специальные OIDs, заставляющие сертификат быть оцененным на основе политики безопасности, определенной для данного типа сертификата.
Объявление
Swift
var kSecPolicyAppleX509Basic: Unmanaged<AnyObject>! var kSecPolicyAppleSSL: Unmanaged<AnyObject>! var kSecPolicyAppleSMIME: Unmanaged<AnyObject>! var kSecPolicyAppleEAP: Unmanaged<AnyObject>! var kSecPolicyAppleIPsec: Unmanaged<AnyObject>! var kSecPolicyApplePKINITClient: Unmanaged<AnyObject>! var kSecPolicyApplePKINITServer: Unmanaged<AnyObject>! var kSecPolicyAppleCodeSigning: Unmanaged<AnyObject>! var kSecPolicyMacAppStoreReceipt: Unmanaged<AnyObject>! var kSecPolicyAppleIDValidation: Unmanaged<AnyObject>! var kSecPolicyAppleTimeStamping: Unmanaged<AnyObject>!
Objective C
extern CFTypeRef kSecPolicyAppleX509Basic; extern CFTypeRef kSecPolicyAppleSSL; extern CFTypeRef kSecPolicyAppleSMIME; extern CFTypeRef kSecPolicyAppleEAP; extern CFTypeRef kSecPolicyAppleIPsec; extern CFTypeRef kSecPolicyAppleiChat extern CFTypeRef kSecPolicyApplePKINITClient; extern CFTypeRef kSecPolicyApplePKINITServer; extern CFTypeRef kSecPolicyAppleCodeSigning; extern CFTypeRef kSecPolicyMacAppStoreReceipt; extern CFTypeRef kSecPolicyAppleIDValidation; extern CFTypeRef kSecPolicyAppleTimeStamping;
Константы
-
kSecPolicyAppleX509Basic
kSecPolicyAppleX509Basic
Основная оценка сертификата X509-стиля.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleSSL
kSecPolicyAppleSSL
Основной X509 плюс проверка имени хоста на RFC 2818.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleSMIME
kSecPolicyAppleSMIME
Основной X509 плюс проверка адреса электронной почты и
KeyUsage
осуществление на RFC 2632.Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleEAP
kSecPolicyAppleEAP
Расширяемый протокол аутентификации. Функционально идентичный политике SSL. Отдельный OID предоставлен для упрощения на политику, доверительные настройки на сертификат с помощью
SecTrust
механизм.Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleIPsec
kSecPolicyAppleIPsec
Политика для использования в коммуникации IPsec. Функционально идентичный политике SSL. Отдельный OID предоставлен для упрощения на политику, доверительные настройки на сертификат с помощью
SecTrust
механизм.Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleiChat
kSecPolicyAppleiChat
Политика для использования в iChat.
Доступный в OS X v10.7 и позже.
Осуждаемый в OS X v10.9.
-
kSecPolicyApplePKINITClient
kSecPolicyApplePKINITClient
Kerberos клиентская проверка сертификата Pkinit.
Доступный в OS X v10.7 и позже.
-
kSecPolicyApplePKINITServer
kSecPolicyApplePKINITServer
Kerberos проверка сертификата сервера Pkinit.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleCodeSigning
kSecPolicyAppleCodeSigning
Политика для использования в оценке сертификатов для подписывания кода Apple. Для узнавания больше о сертификатах для подписывания кода считайте Руководство по Распределению приложений.
Доступный в OS X v10.7 и позже.
-
kSecPolicyMacAppStoreReceipt
kSecPolicyMacAppStoreReceipt
Политика для использования в оценке получений App Store Mac.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleIDValidation
kSecPolicyAppleIDValidation
Политика для использования в оценке Apple сертификаты ID. Для узнавания больше о Apple сертификаты ID считайте Руководство по Распределению приложений.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleTimeStamping
kSecPolicyAppleTimeStamping
Политика, что оценка причин законности метки времени на подписи. Это может использоваться для разрешения проверки, что сертификат был допустим в то время, когда что-то было подписано с тем сертификатом, даже если сертификат больше не действителен.
Доступный в OS X v10.8 и позже.
-
Наиболее распространенные коды результата, возвращенные Сертификатом, Ключом и Trust Services, перечислены в таблице ниже. Присвоенное ошибочное пространство прерывисто: –25240..–25279 и –25290..–25329.
-
Никакая ошибка.
Значение
0
Описание
Никакая ошибка.
Доступный в OS X v10.6 и позже.
-
Функция или работа не реализованы.
Значение
- 4
Описание
Функция или работа не реализованы.
Доступный в OS X v10.6 и позже.
-
Один или более параметров, переданных функции, не были допустимы.
Значение
- 50
Описание
Один или более параметров, переданных функции, не были допустимы.
Доступный в OS X v10.6 и позже.
-
Не удалось выделить память.
Значение
- 108
Описание
Не удалось выделить память.
Доступный в OS X v10.6 и позже.
-
Никакая цепочка для ключей не доступна.
Значение
– 25291
Описание
Никакая цепочка для ключей не доступна.
Доступный в OS X v10.2 и позже.
-
Ошибка только для чтения произошла.
Значение
– 25292
Описание
Ошибка только для чтения произошла.
Доступный в OS X v10.2 и позже.
-
Авторизация или аутентификация перестали работать.
Значение
– 25293
Описание
Авторизация или аутентификация перестали работать.
Доступный в OS X v10.2 и позже.
-
Цепочка для ключей не существует.
Значение
– 25294
Описание
Цепочка для ключей не существует.
Доступный в OS X v10.2 и позже.
-
Цепочка для ключей не допустима.
Значение
– 25295
Описание
Цепочка для ключей не допустима.
Доступный в OS X v10.2 и позже.
-
Цепочка для ключей с тем же именем уже существует.
Значение
– 25296
Описание
Цепочка для ключей с тем же именем уже существует.
Доступный в OS X v10.2 и позже.
-
Элемент с теми же атрибутами первичного ключа уже существует.
Значение
– 25299
Описание
Элемент с теми же атрибутами первичного ключа уже существует.
Доступный в OS X v10.2 и позже.
-
Элемент не может быть найден.
Значение
– 25300
Описание
Элемент не может быть найден.
Доступный в OS X v10.2 и позже.
-
Буфер является слишком маленьким.
Значение
– 25301
Описание
Буфер является слишком маленьким.
Доступный в OS X v10.2 и позже.
-
Данные являются слишком большими для определенного типа данных.
Значение
– 25302
Описание
Данные являются слишком большими для определенного типа данных.
Доступный в OS X v10.2 и позже.
-
Атрибут не существует.
Значение
– 25303
Описание
Атрибут не существует.
Доступный в OS X v10.2 и позже.
-
Объект элемента недопустим.
Значение
– 25304
Описание
Объект элемента недопустим.
Доступный в OS X v10.2 и позже.
-
Поисковый объект недопустим.
Значение
– 25305
Описание
Поисковый объект недопустим.
Доступный в OS X v10.2 и позже.
-
Указанный элемент, кажется, не допустимый элемент цепочки для ключей.
Значение
– 25306
Описание
Указанный элемент, кажется, не допустимый элемент цепочки для ключей.
Доступный в OS X v10.2 и позже.
-
Цепочка для ключей по умолчанию не существует.
Значение
– 25307
Описание
Цепочка для ключей по умолчанию не существует.
Доступный в OS X v10.2 и позже.
-
Взаимодействие с пользователем требуется, чтобы предоставить доступ или обработать запрос; однако, взаимодействие с пользователем с Сервером безопасности было отключено программой.
Значение
– 25308
Описание
Взаимодействие с пользователем требуется, чтобы предоставить доступ или обработать запрос; однако, взаимодействие с пользователем с Сервером безопасности было отключено программой.
Доступный в OS X v10.2 и позже.
-
Атрибут только для чтения.
Значение
– 25309
Описание
Атрибут только для чтения.
Доступный в OS X v10.2 и позже.
-
Версия является неправильной.
Значение
– 25310
Описание
Версия является неправильной.
Доступный в OS X v10.2 и позже.
-
Размер ключа не позволяется.
Значение
– 25311
Описание
Размер ключа не позволяется.
Доступный в OS X v10.2 и позже.
-
Никакой модуль хранения не доступен.
Значение
– 25312
Описание
Никакой модуль хранения не доступен.
Доступный в OS X v10.2 и позже.
-
Никакой модуль сертификата не доступен.
Значение
– 25313
Описание
Никакой модуль сертификата не доступен.
Доступный в OS X v10.2 и позже.
-
Никакой модуль политики не доступен.
Значение
– 25314
Описание
Никакой модуль политики не доступен.
Доступный в OS X v10.2 и позже.
-
Значение
– 25315
Описание
Взаимодействие с пользователем требуется, чтобы предоставить доступ или обработать запрос; однако, взаимодействие с пользователем с Сервером безопасности невозможно, потому что программа работает в сеансе, неспособном к графике (такой как корневой сеанс или ssh сеанс).
Доступный в OS X v10.2 и позже.
-
Данные не доступны.
Значение
– 25316
Описание
Данные не доступны.
Доступный в OS X v10.2 и позже.
-
Данные не являются модифицируемыми.
Значение
– 25317
Описание
Данные не являются модифицируемыми.
Доступный в OS X v10.2 и позже.
-
Один или более сертификатов потребовали для проверки этого сертификата, не может быть найден.
Значение
– 25318
Описание
Один или более сертификатов потребовали для проверки этого сертификата, не может быть найден.
Доступный в OS X v10.2 и позже.
-
Предпочтительный указанный домен недопустим. Эта ошибка может произойти в OS X v10.3 и позже.
Значение
– 25319
Описание
Предпочтительный указанный домен недопустим. Эта ошибка может произойти в OS X v10.3 и позже.
Доступный в OS X v10.3 и позже.
-
Список управления доступом не находится в стандартной простой форме.
Значение
– 25240
Описание
Список управления доступом не находится в стандартной простой форме.
Доступный в OS X v10.2 и позже.
-
Указанная политика не может быть найдена.
Значение
– 25241
Описание
Указанная политика не может быть найдена.
Доступный в OS X v10.2 и позже.
-
Доверительная установка недопустима.
Значение
– 25242
Описание
Доверительная установка недопустима.
Доступный в OS X v10.2 и позже.
-
Указанный элемент не имеет никакого управления доступом.
Значение
– 25243
Описание
Указанный элемент не имеет никакого управления доступом.
Доступный в OS X v10.2 и позже.
-
Недопустимая была предпринята попытка для изменения владельца элемента.
Значение
– 25244
Описание
Недопустимая была предпринята попытка для изменения владельца элемента.
Доступный в OS X v10.2 и позже.
-
Никакие доверительные результаты не доступны.
Значение
– 25245
Описание
Никакие доверительные результаты не доступны.
Доступный в OS X v10.3 и позже.
-
Неспособный декодировать предоставленные данные.
Значение
- 26275
Описание
Неспособный декодировать предоставленные данные.
Доступный в OS X v10.6 и позже.