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

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

Разработчик

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

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

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

Сертификат, ключ и доверительная ссылка служб

Наследование


Не применимый

Соответствует


Не применимый

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


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 объект принадлежит.

    Объявление

    Swift

    func SecKeyGetTypeID() -> CFTypeID

    Objective C

    CFTypeID SecKeyGetTypeID ( void );

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

    Значение, идентифицирующее непрозрачный тип 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 и позже.

    См. также

    SecCertificateCopyData

  • Возвращает представление 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 и позже.

    См. также

    SecCertificateCreateWithData

  • Возвращает человекочитаемую сводку сертификата.

    Объявление

    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 и позже.

    См. также

    SecCertificateCreateWithData

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

    Объявление

    Swift

    func SecIdentityCopyCertificate(_ identityRef: SecIdentity!, _ certificateRef: UnsafeMutablePointer<Unmanaged<SecCertificate>?>) -> OSStatus

    Objective C

    OSStatus SecIdentityCopyCertificate ( SecIdentityRef identityRef, SecCertificateRef *certificateRef );

    Параметры

    identityRef

    Объект идентификационных данных для идентификационных данных, сертификат которых Вы хотите получить.

    certificateRef

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

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

    Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.

    Обсуждение

    Идентификационные данные являются цифровым сертификатом вместе с его связанным закрытым ключом.

    Для сертификата в цепочке для ключей можно бросить SecCertificateRef тип данных к a SecKeychainItemRef для использования с функциями Keychain Services.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в iOS 2.0 и позже.

  • Получает закрытый ключ, связанный с идентификационными данными.

    Объявление

    Swift

    func SecIdentityCopyPrivateKey(_ identityRef: SecIdentity!, _ privateKeyRef: UnsafeMutablePointer<Unmanaged<SecKey>?>) -> OSStatus

    Objective 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>?>) -> OSStatus

    Objective 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>?>) -> OSStatus

    Objective 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 ключ со значением, указывающим требуемый размер ключа в битах. Это может быть указано как любой a CFNumberRef или 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>) -> OSStatus

    Objective 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>) -> OSStatus

    Objective 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>) -> OSStatus

    Objective 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) -> OSStatus

    Objective 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!) -> Int

    Objective 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>?>) -> OSStatus

    Objective 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 и позже.

    См. также

    SecTrustSetPolicies

  • Возвращает массив, содержащий свойства доверительного объекта.

    Объявление

    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>?>) -> OSStatus

    Objective C

    OSStatus SecTrustCopyPolicies ( SecTrustRef trust, CFArrayRef *policies );

    Параметры

    trust

    Доверительный объект управления, политики которого Вы хотите получить.

    policies

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

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

    Код результата. См. Сертификат, Ключ и Коды Результата Trust Services.

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в iOS 7.0 и позже.

    См. также

    SecTrustSetPolicies

  • Возвращает открытый ключ для листового сертификата после того, как он был оценен.

    Объявление

    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>?>) -> OSStatus

    Objective 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>) -> OSStatus

    Objective 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!) -> OSStatus

    Objective 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!) -> CFIndex

    Objective 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>) -> OSStatus

    Objective 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!) -> CFAbsoluteTime

    Objective C

    CFAbsoluteTime SecTrustGetVerifyTime ( SecTrustRef trust );

    Параметры

    trust

    Доверительный объект управления, время проверки которого Вы хотите получить. Доверительный объект управления включает один или несколько сертификатов плюс политика или политики, которые будут использоваться в оценке доверия. Используйте SecTrustCreateWithCertificates функция для создания доверительного объекта управления.

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

    Абсолютное время, в которое сертификаты должны быть проверены на законность.

    Обсуждение

    Эта функция возвращает абсолютное время, возвращенное:

    1. CFDateGetAbsoluteTime функция для даты передала в SecTrustSetVerifyDate функция, если это вызвали, или

    2. последнее значение, возвращенное SecTrustGetVerifyTime функция, если это вызвали прежде, или

    3. значение, возвращенное CFAbsoluteTimeGetCurrent функционируйте если ни один SecTrustSetVerifyDate ни SecTrustGetVerifyTime когда-либо вызывались.

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в iOS 2.0 и позже.

    См. также

    SecTrustSetVerifyDate

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

    Объявление

    Swift

    func SecTrustSetAnchorCertificates(_ trust: SecTrust!, _ anchorCertificates: CFArray!) -> OSStatus

    Objective 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) -> OSStatus

    Objective 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!) -> Bool

    Objective 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 и позже.

    См. также

    SecTrustSetPolicies

  • Установите политики использовать в оценке.

    Объявление

    Swift

    func SecTrustSetPolicies(_ trust: SecTrust!, _ policies: AnyObject!) -> OSStatus

    Objective 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 и позже.

    См. также

    SecTrustCopyPolicies

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

    Объявление

    Swift

    func SecTrustSetVerifyDate(_ trust: SecTrust!, _ verifyDate: CFDate!) -> OSStatus

    Objective 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 и позже.

    См. также

    SecTrustGetVerifyTime

Типы данных

  • Абстрактный Базовый Текстовый объект основы, представляющий сертификат X.509.

    Объявление

    Swift

    typealias SecCertificateRef = SecCertificate

    Objective C

    typedef struct __SecCertificate *SecCertificateRef;

    Обсуждение

    A SecCertificateRef объект для сертификата, который сохранен в цепочке для ключей, может быть безопасно брошен к a SecKeychainItemRef для манипулирования как элемент цепочки для ключей. С другой стороны, если SecCertificateRef не сохранен в цепочке для ключей, бросая объект к a SecKeychainItemRef и передача его к Keychain Services функционирует ошибки возвратов.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в iOS 2.0 и позже.

  • Абстрактный Базовый Текстовый объект основы, представляющий идентификационные данные.

    Объявление

    Swift

    typealias SecIdentityRef = SecIdentity

    Objective C

    typedef struct __SecIdentity *SecIdentityRef;

    Обсуждение

    A SecIdentityRef объект содержит a SecKeyRef возразите и связанное SecCertificateRef объект.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

    Доступный в iOS 2.0 и позже.

  • Абстрактный Базовый Текстовый объект основы, представляющий асимметричный ключ.

    Объявление

    Swift

    typealias SecKeyRef = SecKey

    Objective C

    typedef struct __SecKey *SecKeyRef;

    Обсуждение

    A SecKeyRef объект для ключа, который сохранен в цепочке для ключей, может быть безопасно брошен к a SecKeychainItemRef для манипулирования как элемент цепочки для ключей. С другой стороны, если SecKeyRef не сохранен в цепочке для ключей, бросая объект к a SecKeychainItemRef и передача его к 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 и позже.