Сертификат, ключ и доверительная ссылка служб
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import Security
Objective C
@import Security;
Сертификат, Ключ и Trust Services обеспечивают API C для управления сертификатами, открытыми и закрытыми ключами и доверительными политиками. Можно использовать эти службы в приложении к:
Определите идентификационные данные путем соответствия сертификата закрытому ключу
Создайте и запросите объекты сертификата
Сертификаты импорта, ключи и идентификационные данные
Создайте пар общедоступных с закрытым ключом
Представляйте доверительные политики
Соображения параллелизма
На iOS все функции в этом API ориентированы на многопотоковое исполнение и повторно используемы.
На OS X v10.6, некоторые функции могут блокировать при ожидании ввода от пользователя (например, когда пользователя просят разблокировать цепочку для ключей или дать разрешение изменить доверительные настройки). В целом безопасно использовать функции в этом API от потоков кроме Вашего основного потока, но необходимо избежать вызывать функцию от многократных операций, рабочих списков или потоков одновременно. Вместо этого вызовы функции должны быть сериализированы (или ограничены единственным потоком) предотвратить любые потенциальные проблемы. Исключения отмечены в обсуждениях соответствующих функций.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecCertificate
объект принадлежит.Объявление
Swift
func SecCertificateGetTypeID() -> CFTypeID
Objective C
CFTypeID SecCertificateGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecCertificateRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecCertificateRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecIdentity
объект принадлежит.Объявление
Swift
func SecIdentityGetTypeID() -> CFTypeID
Objective C
CFTypeID SecIdentityGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecIdentityRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecIdentityRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecKey
объект принадлежит.Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecKeyRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecKeyRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecPolicy
объект принадлежит.Объявление
Swift
func SecPolicyGetTypeID() -> CFTypeID
Objective C
CFTypeID SecPolicyGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecPolicyRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecPolicyRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecTrust
объект принадлежит.Объявление
Swift
func SecTrustGetTypeID() -> CFTypeID
Objective C
CFTypeID SecTrustGetTypeID ( void );
Возвращаемое значение
Значение, идентифицирующее непрозрачный тип a
SecTrustRef
объект.Обсуждение
Эта функция возвращает значение, однозначно определяющее непрозрачный тип a
SecTrustRef
объект. Можно сравнить это значение сCFTypeID
идентификатор, полученный путем вызоваCFGetTypeID
функция на конкретном объекте. Эти значения могли бы измениться от выпуска до выпуска или платформы на платформу.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Создает объект сертификата из представления DER сертификата.
Объявление
Swift
func SecCertificateCreateWithData(_
allocator
: CFAllocator!, _data
: CFData!) -> Unmanaged<SecCertificate>!Objective C
SecCertificateRef SecCertificateCreateWithData ( CFAllocatorRef allocator, CFDataRef data );
Параметры
allocator
CFAllocator
возразите, что Вы хотите использовать для выделения объекта сертификата. ПередачаNULL
использовать средство выделения по умолчанию.data
DER (Выдающиеся Правила кодирования) представление сертификата X.509.
Возвращаемое значение
Недавно создаваемый объект сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним. ВозвратыNULL
если данные передали вdata
параметр не является допустимым закодированным DER сертификатом X.509.Обсуждение
Объект сертификата, возвращенный этой функцией, используется в качестве ввода к другим функциям в API.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Возвращает представление 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
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Возвращает человекочитаемую сводку сертификата.
Объявление
Swift
func SecCertificateCopySubjectSummary(_
certificate
: SecCertificate!) -> Unmanaged<CFString>!Objective C
CFStringRef SecCertificateCopySubjectSummary ( SecCertificateRef certificate );
Параметры
certificate
Объект сертификата, для которого Вы хотите возвратить сводную строку.
Возвращаемое значение
Строка, содержащая человекочитаемую сводку содержания сертификата. Вызовите
CFRelease
функционируйте для выпуска этого объекта, когда Вы будете закончены с ним. ВозвратыNULL
если данные передали вcertificate
параметр не является допустимым объектом сертификата.Обсуждение
Поскольку все данные в строке прибывают из сертификата, строка находится на любом языке, используется в сертификате.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Получает сертификат, связанный с идентификационными данными.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Получает закрытый ключ, связанный с идентификационными данными.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает идентификационные данные и сертификаты в 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
Доступность
Доступный в iOS 2.0 и позже.
-
Создает асимметричную пару ключей.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Шифрует блок простого текста.
Объявление
Swift
func SecKeyEncrypt(_
key
: SecKey!, _padding
: SecPadding, _plainText
: UnsafePointer<UInt8>, _plainTextLen
: Int, _cipherText
: UnsafeMutablePointer<UInt8>, _cipherTextLen
: UnsafeMutablePointer<Int>) -> OSStatusObjective C
OSStatus SecKeyEncrypt ( SecKeyRef key, SecPadding padding, const uint8_t *plainText, size_t plainTextLen, uint8_t *cipherText, size_t *cipherTextLen );
Параметры
key
Открытый ключ, с которым можно зашифровать данные.
padding
Тип дополнения для использования. Возможные значения перечислены в Дополнительных Типах Цифровой подписи. Как правило,
kSecPaddingPKCS1
используется, который добавляет PKCS1, дополняющий перед шифрованием. Если Вы указываетеkSecPaddingNone
, данные шифруются как есть.plainText
Данные для шифрования.
plainTextLen
Длина в байтах данных в
plainText
буфер. Это должно быть меньше чем или равно значению, возвращенномуSecKeyGetBlockSize
функция. Когда дополнение PKCS1 выполняется, максимальная длина данных, которые могут быть зашифрованы, составляет 11 байтов меньше, чем значение, возвращенноеSecKeyGetBlockSize
функция (secKeyGetBlockSize() - 11
).cipherText
По возврату, зашифрованному тексту.
cipherTextLen
На записи размер буфера обеспечил в
cipherText
параметр. По возврату объем данных фактически поместил в буфере.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Входной буфер (
plainText
) может совпасть с буфером вывода (cipherText
) сокращать объем памяти, используемый функцией.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Дешифрует блок шифрованного текста.
Объявление
Swift
func SecKeyDecrypt(_
key
: SecKey!, _padding
: SecPadding, _cipherText
: UnsafePointer<UInt8>, _cipherTextLen
: Int, _plainText
: UnsafeMutablePointer<UInt8>, _plainTextLen
: UnsafeMutablePointer<Int>) -> OSStatusObjective C
OSStatus SecKeyDecrypt ( SecKeyRef key, SecPadding padding, const uint8_t *cipherText, size_t cipherTextLen, uint8_t *plainText, size_t *plainTextLen );
Параметры
key
закрытый ключ, с которым можно дешифровать данные.
padding
Тип дополнения используемого. Возможные значения перечислены в Дополнительных Типах Цифровой подписи. Как правило,
kSecPaddingPKCS1
используется, который удаляет PKCS1, дополняющий после дешифрования. Если Вы указываетеkSecPaddingNone
, дешифрованные данные возвращаются как есть.cipherText
Данные для дешифрования.
cipherTextLen
Длина в байтах данных в
cipherText
буфер. Это должно быть меньше чем или равно значению, возвращенномуSecKeyGetBlockSize
функция.plainText
По возврату, дешифрованному тексту.
plainTextLen
На записи размер буфера обеспечил в
plainText
параметр. По возврату объем данных фактически поместил в буфере.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Входной буфер (
cipherText
) может совпасть с буфером вывода (plainText
) сокращать объем памяти, используемый функцией.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Генерирует цифровую подпись для блока данных.
Объявление
Swift
func SecKeyRawSign(_
key
: SecKey!, _padding
: SecPadding, _dataToSign
: UnsafePointer<UInt8>, _dataToSignLen
: Int, _sig
: UnsafeMutablePointer<UInt8>, _sigLen
: UnsafeMutablePointer<Int>) -> OSStatusObjective C
OSStatus SecKeyRawSign ( SecKeyRef key, SecPadding padding, const uint8_t *dataToSign, size_t dataToSignLen, uint8_t *sig, size_t *sigLen );
Параметры
key
Закрытый ключ, с которым можно подписать данные.
padding
Тип дополнения для использования. Возможные значения перечислены в Дополнительных Типах Цифровой подписи. Использовать
kSecPaddingPKCS1SHA1
. Если данные обзором SHA1 фактических данных, которые будут подписаны являются, если Вы указываетеkSecPaddingNone
, данные подписываются как есть.dataToSign
Данные, которые будут подписаны. Как правило, обзор фактических данных подписывается.
dataToSignLen
Длина в байтах данных в
dataToSign
буфер. Когда дополнение PKCS1 выполняется, максимальная длина данных, которые могут быть подписаны, составляет 11 байтов меньше, чем значение, возвращенноеSecKeyGetBlockSize
функция (secKeyGetBlockSize() - 11
).sig
По возврату, цифровой подписи.
sigLen
На записи размер буфера обеспечил в
sig
параметр. По возврату объем данных фактически поместил в буфере.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Обсуждение
Поведение эта функция с
kSecPaddingNone
не определено, если первый байт данных, который подпишется,0
; нет никакого способа проверить, что продвижение обнуляет, поскольку они отбрасываются во время вычисления.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Заверяет цифровую подпись.
Объявление
Swift
func SecKeyRawVerify(_
key
: SecKey!, _padding
: SecPadding, _signedData
: UnsafePointer<UInt8>, _signedDataLen
: Int, _sig
: UnsafePointer<UInt8>, _sigLen
: Int) -> OSStatusObjective C
OSStatus SecKeyRawVerify ( SecKeyRef key, SecPadding padding, const uint8_t *signedData, size_t signedDataLen, const uint8_t *sig, size_t sigLen );
Параметры
key
Открытый ключ, с которым можно проверить данные.
padding
Тип дополнения используемого. Возможные значения перечислены в Дополнительных Типах Цифровой подписи. Использовать
kSecPaddingPKCS1SHA1
если Вы заверяете подпись PKCS1-стиля с кодированием DER типа обзора, и данные со знаком являются обзором SHA1 фактических данных. УказатьkSecPaddingNone
если не использовалось никакое дополнение.signedData
Данные, для которых заверяется подпись. Как правило, обзор фактических данных подписывается.
signedDataLen
Длина в байтах данных в
signedData
буфер.sig
Цифровая подпись, которая будет проверена.
sigLen
Длина данных в
sig
буфер.Возвращаемое значение
Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Связали длину блока с криптографическим ключом.
Объявление
Swift
func SecKeyGetBlockSize(_
key
: SecKey!) -> IntObjective C
size_t SecKeyGetBlockSize ( SecKeyRef key );
Параметры
key
Ключ, для которого Вы хотите длину блока.
Возвращаемое значение
Длина блока связалась с ключом в байтах. Если ключ является ключом RSA, например, это - размер модуля.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает словарь, содержащий свойства политики.
Объявление
Swift
func SecPolicyCopyProperties(_
policyRef
: SecPolicy!) -> Unmanaged<CFDictionary>!Objective C
CFDictionaryRef SecPolicyCopyProperties ( SecPolicyRef policyRef );
Параметры
policyRef
Политика, с которой должны быть скопированы свойства.
Возвращаемое значение
Для списка допустимых ключей свойства, которые могут появиться в словаре результата, посмотрите Ключи Политики безопасности.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 7.0 и позже.
-
Возвращает объект политики для политики X.509 по умолчанию.
Объявление
Swift
func SecPolicyCreateBasicX509() -> Unmanaged<SecPolicy>!
Objective C
SecPolicyRef SecPolicyCreateBasicX509 ( void );
Возвращаемое значение
Объект политики. Вызовите
CFRelease
функционируйте для выпуска объекта, когда Вы будете закончены с ним.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает объект политики для оценки цепочек сертификата 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
Доступность
Доступный в iOS 2.0 и позже.
-
Получает пользовательские сертификаты привязки, если таковые имеются, используемый данным доверием.
Объявление
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
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращает непрозрачный 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
Доступность
Доступный в iOS 4.0 и позже.
См. также
-
Возвращает массив, содержащий свойства доверительного объекта.
Объявление
Swift
func SecTrustCopyProperties(_
trust
: SecTrust!) -> Unmanaged<CFArray>!Objective C
CFArrayRef SecTrustCopyProperties ( SecTrustRef trust );
Параметры
trust
Доверительный объект, с которого должны быть скопированы свойства.
Возвращаемое значение
Возвращает массив, или
NULL
если еще не был оценен доверительный объект. Вызывающая сторона ответственна за выпуск этого словаря.Массив результата является упорядоченным массивом
CFDictionaryRef
словари, один на сертификат в цепочке, начинаясь с вершины в индексном нуле (0) и продолжаясь до привязки (или последний сертификат в цепочке, если никакая привязка не была найдена).Словарь свойства в индексном нуле может также включать общую информацию о законности всей цепочки в контексте этой доверительной оценки. Посмотрите Ключи Типа Свойства для списка в настоящее время определяемых ключей.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Получает политики, используемые данным доверительным объектом управления.
Объявление
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
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
Возвращает открытый ключ для листового сертификата после того, как он был оценен.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Создает доверительный объект управления на основе сертификатов и политик.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Оценивает доверие для указанного сертификата и политик.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Оценивает доверительный объект асинхронно на указанной очереди отгрузки.
Объявление
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
Доступность
Доступный в iOS 7.0 и позже.
-
Возвращает число сертификатов в оцененной цепочке сертификата.
Объявление
Swift
func SecTrustGetCertificateCount(_
trust
: SecTrust!) -> CFIndexObjective C
CFIndex SecTrustGetCertificateCount ( SecTrustRef trust );
Параметры
trust
Доверительный объект управления для оцененного сертификата. Используйте
SecTrustCreateWithCertificates
функция для создания доверительного объекта управления иSecTrustEvaluate
функция для оценки цепочки сертификата.Возвращаемое значение
Число сертификатов в цепочке сертификата.
Обсуждение
Необходимо вызвать
SecTrustEvaluate
функция прежде, чем вызвать эту функцию.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращается определенный сертификат от цепочки сертификата раньше оценивал доверие.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает код результата из новой доверительной оценки.
Объявление
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
Доступность
Доступный в iOS 7.0 и позже.
-
Получает абсолютное время, по которому проверяются сертификаты в доверительном объекте управления.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Устанавливает сертификаты привязки, используемые при оценке доверительного объекта управления.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Повторно позволяет доверять встроенным сертификатам привязки.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
-
Устанавливает список исключений, которые должны быть проигнорированы при оценке сертификата.
Объявление
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
Доступность
Доступный в iOS 4.0 и позже.
См. также
-
Установите политики использовать в оценке.
Объявление
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
Доступность
Доступный в iOS 6.0 и позже.
См. также
-
Устанавливает дату и время, по которой проверяются сертификаты в доверительном объекте управления.
Объявление
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
Доступность
Доступный в iOS 2.0 и позже.
См. также
-
Абстрактный Базовый Текстовый объект основы, представляющий сертификат X.509.
Объявление
Swift
typealias SecCertificateRef = SecCertificate
Objective C
typedef struct __SecCertificate *SecCertificateRef;
Обсуждение
A
SecCertificateRef
объект для сертификата, который сохранен в цепочке для ключей, может быть безопасно брошен к aSecKeychainItemRef
для манипулирования как элемент цепочки для ключей. С другой стороны, еслиSecCertificateRef
не сохранен в цепочке для ключей, бросая объект к aSecKeychainItemRef
и передача его к Keychain Services функционирует ошибки возвратов.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Абстрактный Базовый Текстовый объект основы, представляющий идентификационные данные.
Объявление
Swift
typealias SecIdentityRef = SecIdentity
Objective C
typedef struct __SecIdentity *SecIdentityRef;
Обсуждение
A
SecIdentityRef
объект содержит aSecKeyRef
возразите и связанноеSecCertificateRef
объект.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Абстрактный Базовый Текстовый объект основы, представляющий асимметричный ключ.
Объявление
Swift
typealias SecKeyRef = SecKey
Objective C
typedef struct __SecKey *SecKeyRef;
Обсуждение
A
SecKeyRef
объект для ключа, который сохранен в цепочке для ключей, может быть безопасно брошен к aSecKeychainItemRef
для манипулирования как элемент цепочки для ключей. С другой стороны, еслиSecKeyRef
не сохранен в цепочке для ключей, бросая объект к aSecKeychainItemRef
и передача его к Keychain Services функционирует ошибки возвратов.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Содержит информацию о политике.
Объявление
Swift
typealias SecPolicyRef = SecPolicy
Objective C
typedef struct OpaqueSecPolicyRef *SecPolicyRef;
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Содержит информацию о доверительном управлении.
Объявление
Swift
typealias SecTrustRef = SecTrust
Objective C
typedef struct __SecTrust *SecTrustRef;
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
Блок, вызванный с результатами вызова к
SecTrustEvaluateAsync
.Объявление
Swift
typealias SecTrustCallback = (SecTrust!, SecTrustResultType) -> Void
Objective C
typedef void (^SecTrustCallback)(SecTrustRef trustRef, SecTrustResultType trustResult);
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 7.0 и позже.
-
Указывает тип дополнения, которое будет использоваться при создании или заверении цифровой подписи.
Объявление
Swift
typealias SecPadding = UInt32
Objective C
typedef uint32_t SecPadding; enum { kSecPaddingNone = 0, kSecPaddingPKCS1 = 1, kSecPaddingPKCS1MD2 = 0x8000, kSecPaddingPKCS1MD5 = 0x8001, kSecPaddingPKCS1SHA1 = 0x8002, };
Константы
-
kSecPaddingNone
Никакое дополнение.
Доступный в iOS 2.0 и позже.
-
kSecPaddingPKCS1
Дополнение PKCS1.
Доступный в iOS 2.0 и позже.
-
kSecPaddingPKCS1MD2
Данные, которые будут подписаны, являются хешем MD2.
Стандартное дополнение ASN.1 сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSign
иSecKeyRawVerify
только.Доступный в iOS 2.0 и позже.
-
kSecPaddingPKCS1MD5
Данные, которые будут подписаны, являются хешем MD5.
Стандартное дополнение ASN.1 сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSign
иSecKeyRawVerify
только.Доступный в iOS 2.0 и позже.
-
kSecPaddingPKCS1SHA1
Данные, которые будут подписаны, являются хешем SHA1.
Стандартное дополнение ASN.1 будет сделано, а также дополнение PKCS1 базовой операции RSA. Используемый с
SecKeyRawSign
иSecKeyRawVerify
только.Доступный в iOS 2.0 и позже.
Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
-
Используйте эти ключи словаря с
SecKeyGeneratePair
функция.Объявление
Swift
var kSecPrivateKeyAttrs: Unmanaged<AnyObject>! var kSecPublicKeyAttrs: Unmanaged<AnyObject>!
Objective C
CFTypeRef kSecPrivateKeyAttrs; CFTypeRef kSecPublicKeyAttrs;
Константы
-
kSecPrivateKeyAttrs
Частные атрибуты криптографического ключа.
Соответствующее значение является a
CFDictionaryRef
словарь, содержащий пары ключ/значение для атрибутов, определенных для закрытого ключа, который будет сгенерирован.Доступный в iOS 2.0 и позже.
-
kSecPublicKeyAttrs
Общедоступные атрибуты криптографического ключа.
Соответствующее значение является a
CFDictionaryRef
словарь, содержащий пары ключ/значение для атрибутов, определенных для открытого ключа, который будет сгенерирован.Доступный в iOS 2.0 и позже.
-
-
Указывает доверительный тип результата.
Объявление
Swift
typealias SecTrustResultType = UInt32
Objective C
typedef uint32_t SecTrustResultType; enum { kSecTrustResultInvalid, kSecTrustResultProceed, kSecTrustResultConfirm, kSecTrustResultDeny, kSecTrustResultUnspecified, kSecTrustResultRecoverableTrustFailure, kSecTrustResultFatalTrustFailure, kSecTrustResultOtherError };
Константы
-
kSecTrustResultInvalid
Недопустимая установка или результат. Обычно, этот результат указывает что
SecTrustEvaluate
функция не завершалась успешно.Доступный в iOS 2.0 и позже.
-
kSecTrustResultProceed
Пользователь указал, что можно доверять сертификату в целях, определяемых в указанных политиках. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Всегда Доверием”.Доступный в iOS 2.0 и позже.
-
kSecTrustResultConfirm
Подтверждение от пользователя требуется перед продолжением. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access называют это значение, “Спросите Разрешение”.Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 7.0.
-
kSecTrustResultDeny
Пользователь указал, что нельзя доверять сертификату. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Никогда Доверием”.Доступный в iOS 2.0 и позже.
-
kSecTrustResultUnspecified
Пользователь не указывал доверительную установку. Это значение может быть возвращено
SecTrustEvaluate
функционируйте или сохраненный как часть пользовательских настроек доверия. В утилите Keychain Access это значение называют “Системной Политикой Использования”. Это - пользователь по умолчанию, устанавливающий.Доступный в iOS 2.0 и позже.
-
kSecTrustResultRecoverableTrustFailure
Доверие отклонено; повторите после изменения настроек. Например, если доверие отклонено, потому что сертификат истек, можно спросить пользователя, доверять ли сертификату так или иначе. Если пользователь отвечает да, то используйте
SecTrustSettingsSetTrustSettings
функционируйте для установки пользовательского доверия, устанавливающего вkSecTrustResultProceed
и вызовитеSecTrustEvaluate
снова. Это значение может быть возвращеноSecTrustEvaluate
функционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в iOS 2.0 и позже.
-
kSecTrustResultFatalTrustFailure
Доверие отклонено; нет простая фиксация доступна. Например, если сертификат не может быть проверен, потому что он повреждается, доверительные отношения не могут быть установлены, не заменяя сертификат. Это значение может быть возвращено
SecTrustEvaluate
функционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в iOS 2.0 и позже.
-
kSecTrustResultOtherError
Отказ кроме той из доверительной оценки; например, внутренний отказ
SecTrustEvaluate
функция. Это значение может быть возвращеноSecTrustEvaluate
функционируйте, но не сохраненные как часть пользовательских настроек доверия.Доступный в iOS 2.0 и позже.
Обсуждение
Эти константы могут быть возвращены
SecTrustEvaluate
функционируйте или сохраненный как одну из пользовательских настроек доверия (см.SecTrustSettingsSetTrustSettings
), как отмечено. При оценке пользовательского доверия,SecTrustEvaluate
запускается с листового сертификата и работ через цепочку вниз к привязке.SecTrustSettingsCopyTrustSettings
функционируйте возвращает пользовательскую установку доверия первого сертификата, для которого установка отличаетсяkSecTrustResultUnspecified
. Точно так же функция использует пользовательскую установку доверия первого сертификата, для которого установка отличаетсяkSecTrustResultUnspecified
, независимо от пользователя доверяют настройкам других сертификатов в цепочке.Оператор импорта
Objective C
@import Security;
Swift
import Security
Доступность
Доступный в iOS 2.0 и позже.
-
-
Ключи словаря, используемые в словарях, возвращенных
SecPKCS12Import
функция.Объявление
Swift
var kSecImportItemLabel: Unmanaged<CFString>! var kSecImportItemKeyID: Unmanaged<CFString>! var kSecImportItemTrust: Unmanaged<CFString>! var kSecImportItemCertChain: Unmanaged<CFString>! var kSecImportItemIdentity: Unmanaged<CFString>!
Objective C
extern CFStringRef kSecImportItemLabel; extern CFStringRef kSecImportItemKeyID; extern CFStringRef kSecImportItemTrust; extern CFStringRef kSecImportItemCertChain; extern CFStringRef kSecImportItemIdentity;
Константы
-
kSecImportItemLabel
Метка элемента.
Соответствующее значение имеет тип
CFStringRef
. Формат строки является определенной реализацией.Доступный в iOS 2.0 и позже.
-
kSecImportItemKeyID
Ключевой ID.
Соответствующее значение имеет тип
CFDataRef
. Этот уникальный идентификатор часто является обзором SHA 1 общедоступного ключа шифрования.Доступный в iOS 2.0 и позже.
-
kSecImportItemTrust
Доверительный объект управления.
Соответствующее значение имеет тип
SecTrustRef
. Доверительная ссылка, возвращеннаяSecPKCS12Import
функция была оценена против базовой политики X.509 и включает столь полную цепочку сертификата, как мог быть создан из сертификатов в блобе № 12 PKCS, сертификатов на цепочке для ключей и любых других сертификатов, доступных системе. Можно использоватьSecTrustEvaluate
функционируйте, если Вы хотите знать, завершена ли цепочка сертификата и допустима (согласно базовой политике X.509). Нет никакой гарантии, что успешно выполнится оценка.Доступный в iOS 2.0 и позже.
-
kSecImportItemCertChain
Список сертификата.
Соответствующее значение имеет тип
CFArrayRef
. Массив состоит изSecCertificateRef
объекты для всех сертификатов в блобе № 12 PKCS. Этот список мог бы отличаться от этого в доверительном объекте управления, если существуют больше чем одни идентификационные данные в блобе или если блоб содержит дополнительные сертификаты (например, промежуточный сертификат, который еще не допустим, но мог бы быть необходим для установления законности в ближайшем будущем).Доступный в iOS 2.0 и позже.
-
kSecImportItemIdentity
Объект идентификационных данных.
Соответствующее значение имеет тип
SecIdentityRef
и представляет идентификационные данные, содержавшиеся в блобе № 12 PKCS.Доступный в iOS 2.0 и позже.
-
-
Введите значения, которые могут появиться в
kSecPropertyKeyType
ключ в словарных статьях, возвращенныхSecCertificateCopyValues
.Объявление
Swift
var kSecPropertyTypeTitle: Unmanaged<AnyObject>! var kSecPropertyTypeError: Unmanaged<AnyObject>!
Objective C
extern CFTypeRef kSecPropertyTypeTitle; extern CFTypeRef kSecPropertyTypeError;
Константы
-
kSecPropertyTypeTitle
Указывает ключ, значение которого является a
CFStringRef
объект, содержащий заголовок (выводят на экран имя) сертификата.Доступный в iOS 7.0 и позже.
-
kSecPropertyTypeError
Указывает ключ, значение которого является a
CFStringRef
объект, содержащий причину доверительного отказа оценки.Доступный в iOS 7.0 и позже.
-
-
Ключи политики, используемые
SecPolicyCopyProperties
иSecPolicySetProperties
.Объявление
Swift
var kSecPolicyOid: Unmanaged<AnyObject>! var kSecPolicyName: Unmanaged<AnyObject>! var kSecPolicyClient: Unmanaged<AnyObject>!
Objective C
extern CFTypeRef kSecPolicyOid extern CFTypeRef kSecPolicyName extern CFTypeRef kSecPolicyClient
Константы
-
kSecPolicyOid
Идентификатор объекта, определяющий тип политики (
CFStringRef
). Все политики имеют значение для этого ключа.Доступный в iOS 7.0 и позже.
-
kSecPolicyName
Имя (
CFStringRef
) то, что сертификат должен соответствовать для удовлетворения этой политики. Для SSL/TLS это указывает имя сервера, которое должно соответствовать общее название сертификата. Для S/MIME это указывает адрес электронной почты RFC 822.Доступный в iOS 7.0 и позже.
-
kSecPolicyClient
Если это правда, указывает, что эта политика должна быть оценена против клиентского сертификата. Если ложь, политика оценена против сертификата для сервера. Значение по умолчанию является ложью.
Доступный в iOS 7.0 и позже.
-
-
Специальные OIDs, заставляющие сертификат быть оцененным на основе политики безопасности, определенной для данного типа сертификата.
Объявление
Swift
var kSecPolicyAppleX509Basic: Unmanaged<AnyObject>! var kSecPolicyAppleSSL: Unmanaged<AnyObject>! var kSecPolicyAppleSMIME: Unmanaged<AnyObject>! var kSecPolicyAppleEAP: Unmanaged<AnyObject>! var kSecPolicyAppleIPsec: Unmanaged<AnyObject>! var kSecPolicyAppleCodeSigning: 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 kSecPolicyAppleCodeSigning; extern CFTypeRef kSecPolicyAppleIDValidation; extern CFTypeRef kSecPolicyAppleTimeStamping;
Константы
-
kSecPolicyAppleX509Basic
Основная оценка сертификата X509-стиля.
Доступный в iOS 7.0 и позже.
-
kSecPolicyAppleSSL
Основной X509 плюс проверка имени хоста на RFC 2818.
Доступный в iOS 7.0 и позже.
-
kSecPolicyAppleSMIME
Основной X509 плюс проверка адреса электронной почты и
KeyUsage
осуществление на RFC 2632.Доступный в iOS 7.0 и позже.
-
kSecPolicyAppleEAP
Расширяемый протокол аутентификации. Функционально идентичный политике SSL. Отдельный OID предоставлен для упрощения на политику, доверительные настройки на сертификат с помощью
SecTrust
механизм.Доступный в iOS 7.0 и позже.
-
kSecPolicyAppleIPsec
Политика для использования в коммуникации IPsec. Функционально идентичный политике SSL. Отдельный OID предоставлен для упрощения на политику, доверительные настройки на сертификат с помощью
SecTrust
механизм.Доступный в iOS 7.0 и позже.
-
kSecPolicyAppleCodeSigning
Политика для использования в оценке сертификатов для подписывания кода Apple. Для узнавания больше о сертификатах для подписывания кода считайте Руководство по Распределению приложений.
Доступный в iOS 7.0 и позже.
-
kSecPolicyAppleIDValidation
Политика для использования в оценке Apple сертификаты ID. Для узнавания больше о Apple сертификаты ID считайте Руководство по Распределению приложений.
Доступный в iOS 7.0 и позже.
-
kSecPolicyAppleTimeStamping
Политика, что оценка причин законности метки времени на подписи. Это может использоваться для разрешения проверки, что сертификат был допустим в то время, когда что-то было подписано с тем сертификатом, даже если сертификат больше не действителен.
Доступный в iOS 7.0 и позже.
-
Наиболее распространенные коды результата, возвращенные Сертификатом, Ключом и Trust Services, перечислены в таблице ниже. Присвоенное ошибочное пространство прерывисто: –25240..–25279 и –25290..–25329.
-
Никакая ошибка.
Значение
0
Описание
Никакая ошибка.
Доступный в iOS 2.0 и позже.
-
Функция или работа не реализованы.
Значение
- 4
Описание
Функция или работа не реализованы.
Доступный в iOS 2.0 и позже.
-
Один или более параметров, переданных функции, не были допустимы.
Значение
- 50
Описание
Один или более параметров, переданных функции, не были допустимы.
Доступный в iOS 2.0 и позже.
-
Не удалось выделить память.
Значение
- 108
Описание
Не удалось выделить память.
Доступный в iOS 2.0 и позже.
-
Никакая цепочка для ключей не доступна.
Значение
– 25291
Описание
Никакая цепочка для ключей не доступна.
Доступный в iOS 2.0 и позже.
-
Авторизация или аутентификация перестали работать.
Значение
– 25293
Описание
Авторизация или аутентификация перестали работать.
Доступный в iOS 4.2 и позже.
-
Элемент с теми же атрибутами первичного ключа уже существует.
Значение
– 25299
Описание
Элемент с теми же атрибутами первичного ключа уже существует.
Доступный в iOS 2.0 и позже.
-
Элемент не может быть найден.
Значение
– 25300
Описание
Элемент не может быть найден.
Доступный в iOS 2.0 и позже.
-
Взаимодействие с пользователем требуется, чтобы предоставить доступ или обработать запрос; однако, взаимодействие с пользователем с Сервером безопасности было отключено программой.
Значение
– 25308
Описание
Взаимодействие с пользователем требуется, чтобы предоставить доступ или обработать запрос; однако, взаимодействие с пользователем с Сервером безопасности было отключено программой.
Доступный в iOS 2.0 и позже.
-
Неспособный декодировать предоставленные данные.
Значение
- 26275
Описание
Неспособный декодировать предоставленные данные.
Доступный в iOS 2.0 и позже.