Сертификат, ключ и доверительная ссылка служб
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import Security
Objective C
@import Security;
Сертификат, Ключ и 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Доступность
Доступный в iOS 2.0 и позже.
-
Возвращает уникальный идентификатор непрозрачного типа к который a
SecIdentityобъект принадлежит.Объявление
Swift
func SecIdentityGetTypeID() -> CFTypeIDObjective 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() -> CFTypeIDObjective 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() -> CFTypeIDObjective 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 );Параметры
allocatorCFAllocatorвозразите, что Вы хотите использовать для выделения объекта сертификата. ПередачаNULLиспользовать средство выделения по умолчанию.dataDER (Выдающиеся Правила кодирования) представление сертификата 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 = SecCertificateObjective 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 = SecIdentityObjective C
typedef struct __SecIdentity *SecIdentityRef;Обсуждение
A
SecIdentityRefобъект содержит aSecKeyRefвозразите и связанноеSecCertificateRefобъект.Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в iOS 2.0 и позже.
-
Абстрактный Базовый Текстовый объект основы, представляющий асимметричный ключ.
Объявление
Swift
typealias SecKeyRef = SecKeyObjective 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 = SecPolicyObjective C
typedef struct OpaqueSecPolicyRef *SecPolicyRef;Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в iOS 2.0 и позже.
-
Содержит информацию о доверительном управлении.
Объявление
Swift
typealias SecTrustRef = SecTrustObjective C
typedef struct __SecTrust *SecTrustRef;Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в iOS 2.0 и позже.
-
Блок, вызванный с результатами вызова к
SecTrustEvaluateAsync.Объявление
Swift
typealias SecTrustCallback = (SecTrust!, SecTrustResultType) -> VoidObjective C
typedef void (^SecTrustCallback)(SecTrustRef trustRef, SecTrustResultType trustResult);Оператор импорта
Objective C
@import Security;Swift
import SecurityДоступность
Доступный в iOS 7.0 и позже.
-
Указывает тип дополнения, которое будет использоваться при создании или заверении цифровой подписи.
Объявление
Swift
typealias SecPadding = UInt32Objective 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 = UInt32Objective 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 и позже.
