Сертификат, ключ и доверительная ссылка служб
Сертификат, Ключ и Trust Services обеспечивают API C для управления сертификатами, открытыми и закрытыми ключами и доверительными политиками. Можно использовать эти службы в приложении к:
Определите идентификационные данные путем соответствия сертификата закрытому ключу
Создайте и запросите объекты сертификата
Сертификаты импорта, ключи и идентификационные данные
Создайте пар общедоступных с закрытым ключом
Представляйте доверительные политики
Соображения параллелизма
На iOS все функции в этом API ориентированы на многопотоковое исполнение и повторно используемы.
На OS X v10.6, некоторые функции могут блокировать при ожидании ввода от пользователя (например, когда пользователя просят разблокировать цепочку для ключей или дать разрешение изменить доверительные настройки). В целом безопасно использовать функции в этом API от потоков кроме Вашего основного потока, но необходимо избежать вызывать функцию от многократных операций, рабочих списков или потоков одновременно. Вместо этого вызовы функции должны быть сериализированы (или ограничены единственным потоком) предотвратить любые потенциальные проблемы. Исключения отмечены в обсуждениях соответствующих функций.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecCertificateобъект принадлежит.Объявление
Swift
func SecCertificateGetTypeID() -> CFTypeIDObjective 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() -> CFTypeIDObjective 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() -> CFTypeIDObjective 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() -> CFTypeIDObjective 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 );Параметры
allocatorCFAllocatorвозразите, что Вы хотите использовать для выделения объекта сертификата. ПередачаNULLиспользовать средство выделения по умолчанию.dataDER (Выдающиеся Правила кодирования) представление сертификата 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.
contextHandleCSSM 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Словарь параметра, описывающий ключ. Посмотрите обсуждение для подробных данных.
keyDataA
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.contextHandleCSSM 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Политика измениться
propertiesA
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функция для создания доверительного объекта управления.actionCSSM доверяет действию. Передача
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функция для получения этой ссылки.kSecTrustSettingsPolicyStringA
CFStringсодержа специфичные для политики данные. Для политики SMIME эта строка содержит адрес электронной почты. Для политики SSL это содержит имя хоста.kSecTrustSettingsKeyUsageA
CFNumberсодержаSInt32значение, указывающее операции, для которых может использоваться ключ шифрования в этом сертификате. Для возможных значений посмотрите Доверительные Ключевые Константы Использования Настроек.kSecTrustSettingsResultA
CFNumberсодержаSInt32значение, указывающее эффективную доверительную установку для этого ограничительного словаря использования. Данный ограничительный словарь использования включен в оценку доверия для сертификата, только если указанная политика, приложение и ключевое использование соответствуют использование, для которого оценивается сертификат. Если это верно, тогда значениеkSecTrustSettingsResultключ является ORed с результатами других словарей для определения полной доверительной установки для сертификата.Если этот ключ не присутствует, значение по умолчанию
kSecTrustSettingsResultTrustRootпринят. Поскольку только корневой сертификат может иметь это значение, ограничительный словарь использования для некорневого сертификата, пропускающего этот ключ, не допустим.Возможные значения для этого ключа перечислены в Доверительных Константах Результата Настроек.
kSecTrustSettingsAllowedErrorA
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 = SecCertificateObjective 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 = SecIdentityObjective C
typedef struct __SecIdentity *SecIdentityRef;Обсуждение
A
SecIdentityRefобъект содержит aSecKeyRefвозразите и связанноеSecCertificateRefобъект.Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в OS X v10.2 и позже.
-
Содержит информацию о поиске идентификационных данных.
Объявление
Swift
typealias SecIdentitySearchRef = SecIdentitySearchObjective C
typedef struct OpaqueSecIdentitySearchRef *SecIdentitySearchRef;Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в OS X v10.2 и позже.
-
Абстрактный Базовый Текстовый объект основы, представляющий асимметричный ключ.
Объявление
Swift
typealias SecKeyRef = SecKeyObjective 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 = SecPolicyObjective C
typedef struct OpaqueSecPolicyRef *SecPolicyRef;Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в OS X v10.2 и позже.
-
Содержит информацию о поиске политики.
Объявление
Swift
typealias SecPolicySearchRef = SecPolicySearchObjective 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 = SecTrustObjective 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!) -> VoidObjective 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) -> VoidObjective 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' };Константы
-
kSecSubjectItemAttrkSecSubjectItemAttrЗакодированное DER подчиненное отличительное имя.
Доступный в OS X v10.2 и позже.
-
kSecIssuerItemAttrkSecIssuerItemAttrЗакодированное DER отличительное имя эмитента.
Доступный в OS X v10.2 и позже.
-
kSecSerialNumberItemAttrkSecSerialNumberItemAttrЗакодированный DER порядковый номер сертификата (без тега и длины).
Доступный в OS X v10.2 и позже.
-
kSecPublicKeyHashItemAttrkSecPublicKeyHashItemAttrХеш с открытым ключом.
Доступный в OS X v10.2 и позже.
-
kSecSubjectKeyIdentifierItemAttrkSecSubjectKeyIdentifierItemAttrПодчиненный ключевой идентификатор.
Доступный в OS X v10.2 и позже.
-
kSecCertTypeItemAttrkSecCertTypeItemAttrТип сертификата.
Доступный в OS X v10.2 и позже.
-
kSecCertEncodingItemAttrkSecCertEncodingItemAttrКодирование сертификата.
Доступный в OS X v10.2 и позже.
-
-
Указывает состояние сертификата.
Объявление
Swift
typealias CSSM_TP_APPLE_CERT_STATUS = uint32Objective 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_EXPIREDCSSM_CERT_STATUS_EXPIREDСертификат истек.
Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_NOT_VALID_YETCSSM_CERT_STATUS_NOT_VALID_YETСертификат еще не допустим. В дополнение к истечению срока, или “Не Допустимый После”, дата и время, каждый сертификат имеет “Не Допустимый Перед” дата и время.
Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_IN_INPUT_CERTSCSSM_CERT_STATUS_IS_IN_INPUT_CERTSЭто - один из сертификатов, включенных в массив сертификатов, переданных
SecTrustCreateWithCertificatesфункция.Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_IN_ANCHORSCSSM_CERT_STATUS_IS_IN_ANCHORSЭтот сертификат был найден в хранилище системы сертификатов привязки (см.
SecTrustSetAnchorCertificates).Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_ROOTCSSM_CERT_STATUS_IS_ROOTСертификат является корневым сертификатом. Если этот бит установлен, но
CSSM_CERT_STATUS_IS_IN_ANCHORSбит не, тогда это - недоверяемая привязка.Доступный в OS X v10.2 и позже.
-
CSSM_CERT_STATUS_IS_FROM_NETCSSM_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 = UInt32Objective C
typedef uint32_t SecPadding; enum { kSecPaddingNone = 0, kSecPaddingPKCS1 = 1, kSecPaddingPKCS1MD2 = 0x8000, kSecPaddingPKCS1MD5 = 0x8001, kSecPaddingPKCS1SHA1 = 0x8002, };Константы
-
kSecPaddingNonekSecPaddingNoneНикакое дополнение.
Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1kSecPaddingPKCS1Дополнение PKCS1.
Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1MD2kSecPaddingPKCS1MD2Данные, которые будут подписаны, являются хешем MD2.
Стандартное дополнение ASN.1 сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSignиSecKeyRawVerifyтолько.Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1MD5kSecPaddingPKCS1MD5Данные, которые будут подписаны, являются хешем MD5.
Стандартное дополнение ASN.1 сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSignиSecKeyRawVerifyтолько.Доступный в OS X v10.6 и позже.
-
kSecPaddingPKCS1SHA1kSecPaddingPKCS1SHA1Данные, которые будут подписаны, являются хешем 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;Константы
-
kSecPrivateKeyAttrskSecPrivateKeyAttrsЧастные атрибуты криптографического ключа.
Соответствующее значение является a
CFDictionaryRefсловарь, содержащий пары ключ/значение для атрибутов, определенных для закрытого ключа, который будет сгенерирован.Доступный в OS X v10.8 и позже.
-
kSecPublicKeyAttrskSecPublicKeyAttrsОбщедоступные атрибуты криптографического ключа.
Соответствующее значение является a
CFDictionaryRefсловарь, содержащий пары ключ/значение для атрибутов, определенных для открытого ключа, который будет сгенерирован.Доступный в OS X v10.8 и позже.
-
-
Указывает доверительный тип результата.
Объявление
Swift
typealias SecTrustResultType = UInt32Objective C
typedef uint32_t SecTrustResultType; enum { kSecTrustResultInvalid, kSecTrustResultProceed, kSecTrustResultConfirm, kSecTrustResultDeny, kSecTrustResultUnspecified, kSecTrustResultRecoverableTrustFailure, kSecTrustResultFatalTrustFailure, kSecTrustResultOtherError };Константы
-
kSecTrustResultInvalidkSecTrustResultInvalidНедопустимая установка или результат. Обычно, этот результат указывает что
SecTrustEvaluateфункция не завершалась успешно.Доступный в OS X v10.2 и позже.
-
kSecTrustResultProceedkSecTrustResultProceedПользователь указал, что можно доверять сертификату в целях, определяемых в указанных политиках. Это значение может быть возвращено
SecTrustEvaluateфункционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Всегда Доверием”.Доступный в OS X v10.2 и позже.
-
kSecTrustResultConfirmkSecTrustResultConfirmПодтверждение от пользователя требуется перед продолжением. Это значение может быть возвращено
SecTrustEvaluateфункционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access называют это значение, “Спросите Разрешение”.Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.9.
-
kSecTrustResultDenykSecTrustResultDenyПользователь указал, что нельзя доверять сертификату. Это значение может быть возвращено
SecTrustEvaluateфункционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Никогда Доверием”.Доступный в OS X v10.2 и позже.
-
kSecTrustResultUnspecifiedkSecTrustResultUnspecifiedПользователь не указывал доверительную установку. Это значение может быть возвращено
SecTrustEvaluateфункционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Системной Политикой Использования”. Это - пользователь по умолчанию, устанавливающий.Доступный в OS X v10.2 и позже.
-
kSecTrustResultRecoverableTrustFailurekSecTrustResultRecoverableTrustFailureДоверие отклонено; повторите после изменения настроек. Например, если доверие отклонено, потому что сертификат истек, можно спросить пользователя, доверять ли сертификату так или иначе. Если пользователь отвечает да, то используйте
SecTrustSettingsSetTrustSettingsфункционируйте для установки пользовательского доверия, устанавливающего вkSecTrustResultProceedи вызовитеSecTrustEvaluateснова. Это значение может быть возвращеноSecTrustEvaluateфункционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в OS X v10.2 и позже.
-
kSecTrustResultFatalTrustFailurekSecTrustResultFatalTrustFailureДоверие отклонено; нет простая фиксация доступна. Например, если сертификат не может быть проверен, потому что он повреждается, доверительные отношения не могут быть установлены, не заменяя сертификат. Это значение может быть возвращено
SecTrustEvaluateфункционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в OS X v10.2 и позже.
-
kSecTrustResultOtherErrorkSecTrustResultOtherErrorОтказ кроме той из доверительной оценки; например, внутренний отказ
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 = uint32Objective 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_EXPIREDCSSM_TP_ACTION_ALLOW_EXPIREDПроигнорируйте дату истечения срока и время для всех сертификатов.
Доступный в OS X v10.2 и позже.
-
CSSM_TP_ACTION_LEAF_IS_CACSSM_TP_ACTION_LEAF_IS_CAПервый сертификат является сертификатом центра сертификации (CA). По формальному определению допустимая цепочка сертификата должна начаться с сертификата, который не является Приблизительно Набор этот бит, если Вы хотите проверить частичную цепочку, начиная с CA и работающий к привязке, или если Вы хотите оценить единственный самоподписанный сертификат как один сертификат «цепочка» для тестирования.
Доступный в OS X v10.3 и позже.
-
CSSM_TP_ACTION_FETCH_CERT_FROM_NETCSSM_TP_ACTION_FETCH_CERT_FROM_NETВключите выбирающие промежуточные сертификаты по сети с помощью http или LDAP.
Доступный в OS X v10.3 и позже.
-
CSSM_TP_ACTION_ALLOW_EXPIRED_ROOTCSSM_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;Константы
-
kSecImportItemLabelkSecImportItemLabelМетка элемента.
Соответствующее значение имеет тип
CFStringRef. Формат строки является определенной реализацией.Доступный в OS X v10.6 и позже.
-
kSecImportItemKeyIDkSecImportItemKeyIDКлючевой ID.
Соответствующее значение имеет тип
CFDataRef. Этот уникальный идентификатор часто является обзором SHA 1 общедоступного ключа шифрования.Доступный в OS X v10.6 и позже.
-
kSecImportItemTrustkSecImportItemTrustДоверительный объект управления.
Соответствующее значение имеет тип
SecTrustRef. Доверительная ссылка, возвращеннаяSecPKCS12Importфункция была оценена против базовой политики X.509 и включает столь полную цепочку сертификата, как мог быть создан из сертификатов в блобе № 12 PKCS, сертификатов на цепочке для ключей и любых других сертификатов, доступных системе. Можно использоватьSecTrustEvaluateфункционируйте, если Вы хотите знать, завершена ли цепочка сертификата и допустима (согласно базовой политике X.509). Нет никакой гарантии, что успешно выполнится оценка.Доступный в OS X v10.6 и позже.
-
kSecImportItemCertChainkSecImportItemCertChainСписок сертификата.
Соответствующее значение имеет тип
CFArrayRef. Массив состоит изSecCertificateRefобъекты для всех сертификатов в блобе № 12 PKCS. Этот список мог бы отличаться от этого в доверительном объекте управления, если существуют больше чем одни идентификационные данные в блобе или если блоб содержит дополнительные сертификаты (например, промежуточный сертификат, который еще не допустим, но мог бы быть необходим для установления законности в ближайшем будущем).Доступный в OS X v10.6 и позже.
-
kSecImportItemIdentitykSecImportItemIdentityОбъект идентификационных данных.
Соответствующее значение имеет тип
SecIdentityRefи представляет идентификационные данные, содержавшиеся в блобе № 12 PKCS.Доступный в OS X v10.6 и позже.
-
-
Домены, для которых можно установить или получить идентификационные данные в масштабе всей системы.
Объявление
Swift
let kSecIdentityDomainDefault: CFString! let kSecIdentityDomainKerberosKDC: CFString!Objective C
const CFStringRef kSecIdentityDomainDefault; const CFStringRef kSecIdentityDomainKerberosKDC;Константы
-
kSecIdentityDomainDefaultkSecIdentityDomainDefaultИдентификационные данные по умолчанию в масштабе всей системы.
Доступный в OS X v10.5 и позже.
-
kSecIdentityDomainKerberosKDCkSecIdentityDomainKerberosKDCИдентификационные данные Центра распределения ключей (KDC) Kerberos.
Доступный в OS X v10.5 и позже.
Обсуждение
Эти константы могут использоваться с
SecIdentitySetSystemIdentityиSecIdentityCopySystemIdentityфункции. -
-
Учетный тип, который будет возвращен
SecKeyGetCredentials.Объявление
Swift
typealias SecCredentialType = uint32Objective C
typedef uint32 SecCredentialType; enum { kSecCredentialTypeDefault = 0, kSecCredentialTypeWithUI, kSecCredentialTypeNoUI };Константы
-
kSecCredentialTypeDefaultkSecCredentialTypeDefaultНастройка по умолчанию для определения, представить ли UI, используется.
Настройки по умолчанию могут быть изменены с вызовом к
SecKeychainSetUserInteractionAllowed.Доступный в OS X v10.5 и позже.
-
kSecCredentialTypeWithUIkSecCredentialTypeWithUIОперациям цепочки для ключей на ключах, имеющих эти учетные данные, позволяют представить UI при необходимости.
Доступный в OS X v10.5 и позже.
-
kSecCredentialTypeNoUIkSecCredentialTypeNoUIОперациям цепочки для ключей на ключах, имеющих эти учетные данные, не позволяют представить 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 = uint32Objective C
enum { kSecTrustSettingsDomainUser = 0, kSecTrustSettingsDomainAdmin, kSecTrustSettingsDomainSystem }; typedef uint32 SecTrustSettingsDomain;Константы
-
kSecTrustSettingsDomainUserkSecTrustSettingsDomainUserДоверительные настройки в расчете на пользователя.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsDomainAdminkSecTrustSettingsDomainAdminЛокально администрируемые, доверительные настройки в масштабе всей системы.
Права администратора требуются, чтобы вносить изменения в этот домен.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsDomainSystemkSecTrustSettingsDomainSystemСистемные настройки доверия.
Эти доверительные настройки являются неизменными и включают набор доверяемых корневых сертификатов, предоставленных в OS X. Эти настройки только для чтения, даже корнем.
Доступный в OS X v10.5 и позже.
Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в OS X v10.5 и позже.
-
-
Позволенное использование для ключа шифрования в сертификате.
Объявление
Swift
typealias SecTrustSettingsKeyUsage = uint32Objective C
enum { kSecTrustSettingsKeyUseSignature = 0x00000001, kSecTrustSettingsKeyUseEnDecryptData = 0x00000002, kSecTrustSettingsKeyUseEnDecryptKey = 0x00000004, kSecTrustSettingsKeyUseSignCert = 0x00000008, kSecTrustSettingsKeyUseSignRevocation = 0x00000010, kSecTrustSettingsKeyUseKeyExchange = 0x00000020, kSecTrustSettingsKeyUseAny = 0xffffffff }; typedef uint32 SecTrustSettingsKeyUsage;Константы
-
kSecTrustSettingsKeyUseSignaturekSecTrustSettingsKeyUseSignatureКлюч может использоваться, чтобы подписать данные или заверить подпись.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseEnDecryptDatakSecTrustSettingsKeyUseEnDecryptDataКлюч может использоваться, чтобы зашифровать или дешифровать данные.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseEnDecryptKeykSecTrustSettingsKeyUseEnDecryptKeyКлюч может использоваться, чтобы зашифровать или дешифровать (оберните или разверните), ключ.
Закрытые ключи должны быть обернуты, прежде чем они смогут быть экспортированы от цепочки для ключей.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseSignCertkSecTrustSettingsKeyUseSignCertКлюч может использоваться, чтобы подписать сертификат или заверить подпись.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseSignRevocationkSecTrustSettingsKeyUseSignRevocationКлюч может использоваться, чтобы подписать OCSP (онлайновый протокол состояния сертификата) сообщение или CRL (список проверки сертификата), или заверить подпись.
Сообщения OCSP и CRLs используются для отмены сертификатов.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseKeyExchangekSecTrustSettingsKeyUseKeyExchangeКлюч является закрытым ключом, совместно использованным с помощью ключевого протокола обмена, такого как Обмен ключами Диффи-Хеллмана.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUseAnykSecTrustSettingsKeyUseAnyКлюч может использоваться в любой цели.
Если никакое другое ключевое использование не указано, это - установка ключевого использования по умолчанию.
Доступный в 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")Константы
-
kSecTrustSettingsPolicykSecTrustSettingsPolicyОбъект политики (
SecPolicyRef) указание политики проверки сертификата.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsApplicationkSecTrustSettingsApplicationДоверяемая ссылка приложения (
SecTrustedApplicationRef) для приложения, проверяющего доверительные настройки сертификата.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsPolicyStringkSecTrustSettingsPolicyStringA
CFStringсодержа специфичные для политики данные.Для политики SMIME эта строка содержит адрес электронной почты. Для политики SSL это содержит имя хоста.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsKeyUsagekSecTrustSettingsKeyUsageA
CFNumberсодержаSInt32значение, указывающее операции, для которых может использоваться ключ шифрования в этом сертификате.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsAllowedErrorkSecTrustSettingsAllowedErrorA
CFNumberсодержаSInt32значение, указывающее aCSSM_RETURNзакончитесь код, если встречено во время проверки сертификата, проигнорированный для того сертификата.Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultkSecTrustSettingsResultA
CFNumberсодержаSInt32значение, указывающее эффективную доверительную установку для этого ограничительного словаря использования.Доступный в OS X v10.5 и позже.
-
-
Эффективные доверительные настройки для ограничительных словарей использования, используемых
SecTrustSettingsCopyTrustSettingsиSecTrustSettingsSetTrustSettingsфункции.Объявление
Swift
typealias SecTrustSettingsResult = uint32Objective C
enum { kSecTrustSettingsResultInvalid = 0, kSecTrustSettingsResultTrustRoot, kSecTrustSettingsResultTrustAsRoot, kSecTrustSettingsResultDeny, kSecTrustSettingsResultUnspecified }; typedef uint32 SecTrustSettingsResult;Константы
-
kSecTrustSettingsResultInvalidkSecTrustSettingsResultInvalidНикогда допустимый в доверительном массиве настроек или в вызове API.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultTrustRootkSecTrustSettingsResultTrustRootЭтому корневому сертификату явно доверяют.
Если сертификат не является (самоподписанным) сертификатом корня, ограничительный словарь использования недопустим.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultTrustAsRootkSecTrustSettingsResultTrustAsRootЭтому некорневому сертификату явно доверяют, как будто это был доверяемый корень.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultDenykSecTrustSettingsResultDenyЭтому сертификату явно не доверяют.
Доступный в OS X v10.5 и позже.
-
kSecTrustSettingsResultUnspecifiedkSecTrustSettingsResultUnspecifiedЭтому сертификату ни не доверяют, ни не доверяют. Это значение может использоваться, чтобы указать, что «позволенная ошибка» без присвоения доверяет определенному сертификату.
Это значение может использоваться, чтобы указать, что позволенная ошибка без присвоения доверяет сертификату.
Доступный в OS X v10.5 и позже.
Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в OS X v10.5 и позже.
-
-
Значение, указывающее корневой сертификат по умолчанию, доверяет настройкам, когда используется для a
SecCertificateRefобъект в доверительной API-функции настроек.Объявление
Objective C
#define kSecTrustSettingsDefaultRootCertSetting ((SecCertificateRef)-1)Константы
-
kSecTrustSettingsDefaultRootCertSettingkSecTrustSettingsDefaultRootCertSettingДоверительные настройки по умолчанию для корневых сертификатов.
Доступный в 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;Константы
-
kSecPropertyKeyTypekSecPropertyKeyTypeОписывает тип в описывании
kSecPropertyKeyValueзапись. Возможные значения описаны в Ключах Типа Свойства.Доступный в OS X v10.7 и позже.
-
kSecPropertyKeyLabelkSecPropertyKeyLabelМетка для записи. Эта метка может содержать дескриптивную (локализованную) строку или строку OID.
Доступный в OS X v10.7 и позже.
-
kSecPropertyKeyLocalizedLabelkSecPropertyKeyLocalizedLabelЛокализованная метка записи.
Доступный в OS X v10.7 и позже.
-
kSecPropertyKeyValuekSecPropertyKeyValueЗначение для этой записи. Запись значения может быть любым Базовым типом Основы, но это обычно - 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;Константы
-
kSecPropertyTypeWarningkSecPropertyTypeWarningУказывает ключ, значение которого является a
CFStringRefобъект, описывающий доверительное предупреждение оценки.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeSuccesskSecPropertyTypeSuccessУказывает ключ, значение которого является a
CFStringRefобъект, описывающий доверительный успех оценки.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeSectionkSecPropertyTypeSectionУказывает ключ, значение которого является a
CFStringRefобъект, описывающий имя поля в сертификате (CFSTR("Subject Name"), например).Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeDatakSecPropertyTypeDataУказывает ключ, значение которого является a
CFDataRefобъект.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeStringkSecPropertyTypeStringУказывает ключ, значение которого является a
CFStringRefобъект, содержащий строку.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeURLkSecPropertyTypeURLУказывает ключ, значение которого является a
CFStringRefобъект, содержащий URL.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeDatekSecPropertyTypeDateУказывает ключ, значение которого является a
CFStringRefобъект, содержащий дату (или строка, перечисляющая байты недопустимой даты).Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeTitlekSecPropertyTypeTitleУказывает ключ, значение которого является a
CFStringRefобъект, содержащий заголовок (выводят на экран имя) сертификата.Доступный в OS X v10.7 и позже.
-
kSecPropertyTypeErrorkSecPropertyTypeErrorУказывает ключ, значение которого является 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;Константы
-
kSecCertificateUsageSigningkSecCertificateUsageSigningСертификат может использоваться для подписания.
Доступный в OS X v10.7 и позже.
-
kSecCertificateUsageSigningAndEncryptingkSecCertificateUsageSigningAndEncryptingСертификат может использоваться для подписания и шифрования.
Доступный в OS X v10.7 и позже.
-
kSecCertificateUsageDeriveAndSignkSecCertificateUsageDeriveAndSignСертификат может использоваться для подписания и для получения другого ключа.
Доступный в 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;Константы
-
kSecPolicyOidkSecPolicyOidИдентификатор объекта, определяющий тип политики (
CFStringRef). Все политики имеют значение для этого ключа.Доступный в OS X v10.7 и позже.
-
kSecPolicyNamekSecPolicyNameИмя (
CFStringRef) то, что сертификат должен соответствовать для удовлетворения этой политики. Для SSL/TLS это указывает имя сервера, которое должно соответствовать общее название сертификата. Для S/MIME это указывает адрес электронной почты RFC 822.Доступный в OS X v10.7 и позже.
-
kSecPolicyClientkSecPolicyClientЕсли это правда, указывает, что эта политика должна быть оценена против клиентского сертификата. Если ложь, политика оценена против сертификата для сервера. Значение по умолчанию является ложью.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_DigitalSignaturekSecPolicyKU_DigitalSignatureЕсли это правда, ключевое использование сертификата должно позволить ему использоваться для подписания.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_NonRepudiationkSecPolicyKU_NonRepudiationЕсли это правда, ключевое использование сертификата должно позволить ему использоваться для неотказа.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_KeyEnciphermentkSecPolicyKU_KeyEnciphermentЕсли это правда, ключевое использование сертификата должно позволить ему использоваться для ключевого шифрования.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_DataEnciphermentkSecPolicyKU_DataEnciphermentЕсли это правда, ключевое использование сертификата должно позволить ему использоваться для шифрования данных.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_KeyAgreementkSecPolicyKU_KeyAgreementЕсли это правда, ключевое использование сертификата должно позволить ему использоваться для согласования ключей.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_KeyCertSignkSecPolicyKU_KeyCertSignЕсли это правда, ключевое использование сертификата должно позволить ему использоваться для подписания сертификатов.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_CRLSignkSecPolicyKU_CRLSignЕсли это правда, ключевое использование сертификата должно позволить ему использоваться для подписания списков аннулированных сертификатов (CRLs).
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_EncipherOnlykSecPolicyKU_EncipherOnlyЕсли это правда, ключевое использование сертификата должно позволить ему использоваться только для шифрования.
Доступный в OS X v10.7 и позже.
-
kSecPolicyKU_DecipherOnlykSecPolicyKU_DecipherOnlyЕсли это правда, ключевое использование сертификата должно позволить ему использоваться только для дешифрования.
Доступный в OS X v10.7 и позже.
-
-
Доверительные флаги опции, используемые для
SecTrustSetOptions.Объявление
Swift
typealias SecTrustOptionFlags = UInt32Objective C
enum { kSecTrustOptionAllowExpired = 0x00000001, kSecTrustOptionLeafIsCA = 0x00000002, kSecTrustOptionFetchIssuerFromNet = 0x00000004, kSecTrustOptionAllowExpiredRoot = 0x00000008, kSecTrustOptionRequireRevPerCert = 0x00000010, kSecTrustOptionImplicitAnchors = 0x00000040 }; typedef uint32_t SecTrustOptionFlags;Константы
-
kSecTrustOptionAllowExpiredkSecTrustOptionAllowExpiredПозвольте истекшие сертификаты (за исключением корневого сертификата).
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionLeafIsCAkSecTrustOptionLeafIsCAПозвольте сертификаты CA как листовые сертификаты.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionFetchIssuerFromNetkSecTrustOptionFetchIssuerFromNetПозвольте сетевые загрузки сертификатов CA.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionAllowExpiredRootkSecTrustOptionAllowExpiredRootПозвольте истекшие корневые сертификаты.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionRequireRevPerCertkSecTrustOptionRequireRevPerCertПотребуйте положительной проверки аннулирования на каждый сертификат.
Доступный в OS X v10.7 и позже.
-
kSecTrustOptionImplicitAnchorskSecTrustOptionImplicitAnchorsОбработка должным образом самоподписала сертификаты как привязки неявно.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в OS X v10.7 и позже.
-
-
Поддерживаемые размеры для ключей различных общих типов.
Объявление
Swift
typealias SecKeySizes = UInt32Objective 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;Константы
-
kSecDefaultKeySizekSecDefaultKeySizeРазмер ключа по умолчанию для указанного типа.
Доступный в OS X v10.7 и позже.
-
kSec3DES192kSec3DES192192-разрядный DES.
Доступный в OS X v10.7 и позже.
-
kSecAES128kSecAES128128-разрядный AES.
Доступный в OS X v10.7 и позже.
-
kSecAES192kSecAES192192-разрядный AES.
Доступный в OS X v10.7 и позже.
-
kSecAES256kSecAES256256-разрядный AES.
Доступный в OS X v10.7 и позже.
-
kSecp192r1kSecp192r1192-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecp256r1kSecp256r1256-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecp384r1kSecp384r1384-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecp521r1kSecp521r1521-разрядные Ключи ECC для Комплекта-B от раздела RFC 4492 5.1.1.
Доступный в OS X v10.7 и позже.
-
kSecRSAMinkSecRSAMin1 024 бита являются минимальным размером для ключа RSA.
Доступный в OS X v10.7 и позже.
-
kSecRSAMaxkSecRSAMax4 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;Константы
-
kSecPolicyAppleX509BasickSecPolicyAppleX509BasicОсновная оценка сертификата X509-стиля.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleSSLkSecPolicyAppleSSLОсновной X509 плюс проверка имени хоста на RFC 2818.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleSMIMEkSecPolicyAppleSMIMEОсновной X509 плюс проверка адреса электронной почты и
KeyUsageосуществление на RFC 2632.Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleEAPkSecPolicyAppleEAPРасширяемый протокол аутентификации. Функционально идентичный политике SSL. Отдельный OID предоставлен для упрощения на политику, доверительные настройки на сертификат с помощью
SecTrustмеханизм.Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleIPseckSecPolicyAppleIPsecПолитика для использования в коммуникации IPsec. Функционально идентичный политике SSL. Отдельный OID предоставлен для упрощения на политику, доверительные настройки на сертификат с помощью
SecTrustмеханизм.Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleiChatkSecPolicyAppleiChatПолитика для использования в iChat.
Доступный в OS X v10.7 и позже.
Осуждаемый в OS X v10.9.
-
kSecPolicyApplePKINITClientkSecPolicyApplePKINITClientKerberos клиентская проверка сертификата Pkinit.
Доступный в OS X v10.7 и позже.
-
kSecPolicyApplePKINITServerkSecPolicyApplePKINITServerKerberos проверка сертификата сервера Pkinit.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleCodeSigningkSecPolicyAppleCodeSigningПолитика для использования в оценке сертификатов для подписывания кода Apple. Для узнавания больше о сертификатах для подписывания кода считайте Руководство по Распределению приложений.
Доступный в OS X v10.7 и позже.
-
kSecPolicyMacAppStoreReceiptkSecPolicyMacAppStoreReceiptПолитика для использования в оценке получений App Store Mac.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleIDValidationkSecPolicyAppleIDValidationПолитика для использования в оценке Apple сертификаты ID. Для узнавания больше о Apple сертификаты ID считайте Руководство по Распределению приложений.
Доступный в OS X v10.7 и позже.
-
kSecPolicyAppleTimeStampingkSecPolicyAppleTimeStampingПолитика, что оценка причин законности метки времени на подписи. Это может использоваться для разрешения проверки, что сертификат был допустим в то время, когда что-то было подписано с тем сертификатом, даже если сертификат больше не действителен.
Доступный в 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 и позже.
