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

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

Разработчик

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

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

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

Ссылка служб цепочки для ключей

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


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

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


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

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


Swift

import Security

Objective C

@import Security;

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

Если Вы хотите смотреть на некоторый код, использующий этот API, можно найти исходный код для security инструмент командной строки в SecurityTool проект на веб-сайте Apple С открытым исходным кодом.

Функции

Для этого интерфейса элементы цепочки для ключей найдены или определены CFDictionary пар ключ/значение. Каждый ключ в словаре идентифицирует один атрибут элемента цепочки для ключей или параметр поиска. Например, можно использовать kSecClass ключ, чтобы указать, что элемент цепочки для ключей является интернет-паролем, что это имеет определенную дату создания, что это для протокола HTTPS, и что только должно быть возвращено первое найденное соответствие. Ключи, которые могут использоваться с этой целью и возможные значения для каждого ключа, перечислены в разделе Keychain Services Constants.

Посмотрите раздел обсуждения SecItemCopyMatching функция для получения информации о том, как создать элемент цепочки для ключей, ищет словарь.

  • Возвраты один или несколько элементов цепочки для ключей, соответствующих поисковый запрос или копирующих атрибуты определенных элементов цепочки для ключей.

    Объявление

    Swift

    func SecItemCopyMatching(_ query: CFDictionary!, _ result: UnsafeMutablePointer<Unmanaged<AnyObject>?>) -> OSStatus

    Objective C

    OSStatus SecItemCopyMatching ( CFDictionaryRef query, CFTypeRef *result );

    Параметры

    query

    Словарь, содержащий спецификацию класса элемента (Ключи Класса Элемента цепочки для ключей и Значения) и дополнительные атрибуты для управления поиском. Посмотрите Константы Keychain Services для описания в настоящее время определяемых поисковых атрибутов.

    result

    По возврату, ссылке на найденные элементы. Точный тип результата основывается на поисковых атрибутах, предоставленных в запросе, как обсуждено ниже.

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

    Код результата. Посмотрите Коды Результата Keychain Services. Вызвать SecCopyErrorMessageString (Только OS X) для получения человекочитаемой строки, объясняя результат.

    Обсуждение

    Вы указываете атрибуты, определяющие поиск путем добавления пар ключ/значение к словарю запроса.

    Типичный запрос состоит из:

    Возвратите типы (Константы Результатов поиска) указаны следующим образом:

    • Получить ссылку (типа CFDataRef) к данным соответствующего элемента указать kSecReturnData со значением kCFBooleanTrue.

    • Получить словарь (типа CFDictionaryRef) содержа атрибуты соответствующего элемента, указать kSecReturnAttributes со значением kCFBooleanTrue.

    • Получить ссылку (типа SecKeychainItemRef, SecKeyRef, SecCertificateRef, или SecIdentityRef) к соответствующему элементу указать kSecReturnRef со значением kCFBooleanTrue.

    • Получить персистентную ссылку (типа CFDataRef) к соответствующему элементу указать kSecReturnPersistentRef со значением kCFBooleanTrue. Обратите внимание на то, что в отличие от нормальных ссылок, персистентная ссылка может быть сохранена на диске или передана между процессами.

    • Если больше чем один тип возврата указан (например, kSecReturnRef и kSecReturnAttributes), результаты возвращаются как словарь (т.е. объект типа CFDictionaryRef) содержа все запрошенные данные.

    По умолчанию эта функция возвращает только первое найденное соответствие. Для получения больше чем одного соответствующего элемента за один раз укажите ключ поиска kSecMatchLimit со значением, больше, чем 1. Результатом будет объект типа CFArrayRef содержа до того числа соответствия элементов.

    По умолчанию эта функция ищет элементы в цепочке для ключей. Чтобы вместо этого обеспечить Ваш собственный набор элементов, которые будут отфильтрованы этим поисковым запросом, укажите ключ поиска kSecMatchItemList и обеспечьте как его значение a CFArrayRef объект, содержащий элементы типа SecKeychainItemRef, SecKeyRef, SecCertificateRef, или SecIdentityRef. Объекты в предоставленном массиве должны все иметь тот же тип.

    Для ограничения поиска цепочки для ключей определенной цепочкой для ключей или цепочками для ключей укажите ключ поиска kSecMatchSearchList и обеспечьте как его значение a CFArrayRef объект, содержащий элементы типа SecKeychainRef элементы.

    Для преобразования от персистентных ссылок элемента до нормальных ссылок элемента укажите ключ поиска kSecMatchItemList со значением, состоящим из объекта типа CFArrayRef ссылка на массив, содержащий один или несколько элементов типа CFDataRef (персистентные ссылки), и ключ типа возврата kSecReturnRef чье значение kCFBooleanTrue. Объекты в предоставленном массиве должны все иметь тот же тип.

    При использовании XCode для создавания приложения, XCode добавляет право идентификатора приложения на комплект приложений. Keychain Services использует это право для предоставления доступа к приложениям к его собственным элементам цепочки для ключей. Можно также добавить право групп доступа цепочки для ключей на приложение и, в дающем право файле списка свойств, указать массив групп доступа цепочки для ключей, которым принадлежит приложение. Файл списка свойств может иметь любое имя, которое Вы любите (например, keychain-access-groups.plist). Переменная сборки XCode CODE_SIGN_ENTITLEMENTS должен содержать SRCROOT относительный путь к дающему право файлу списка свойств. Сам файл списка свойств должен быть словарем с вызванным ключом верхнего уровня keychain-access-groups чье значение является массивом строк. Когда Вы вызываете SecItemAdd функция для добавления элемента к цепочке для ключей можно указать группу доступа, которой должен принадлежать тот элемент. По умолчанию, SecItemCopyMatching функционируйте ищет все группы доступа, которым принадлежит приложение. Однако можно добавить kSecAttrAccessGroup ключ к поисковому словарю для указания, который группа доступа искать элементы цепочки для ключей.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

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

  • Добавляют один или несколько элементов к цепочке для ключей.

    Объявление

    Swift

    func SecItemAdd(_ attributes: CFDictionary!, _ result: UnsafeMutablePointer<Unmanaged<AnyObject>?>) -> OSStatus

    Objective C

    OSStatus SecItemAdd ( CFDictionaryRef attributes, CFTypeRef *result );

    Параметры

    attributes

    Словарь, содержащий пару ключ/значение класса элемента (Ключи Класса Элемента цепочки для ключей и Значения) и дополнительные пары ключ/значение атрибута (Ключи Элемента атрибута и Значения) указание значений атрибута элемента.

    result

    По возврату, ссылке на недавно добавленные элементы. Точный тип результата основывается на значениях, предоставленных в атрибутах, как обсуждено ниже. Передача NULL если не требуется этот результат.

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

    Код результата. Посмотрите Коды Результата Keychain Services. Вызвать SecCopyErrorMessageString (Только OS X) для получения человекочитаемой строки, объясняя результат.

    Обсуждение

    Вы указываете атрибуты, определяющие элемент путем добавления пар ключ/значение к словарю атрибутов. Для добавления многократных элементов к цепочке для ключей сразу используют kSecUseItemList ключ (см. раздел Item List Key) с массивом элементов как его значение. Это только поддерживается для элементов непароля.

    Если Вы хотите, чтобы новый элемент цепочки для ключей был совместно использован среди многократных приложений, включайте kSecAttrAccessGroup введите словарь атрибутов. Значение этого ключа должно быть именем группы доступа цепочки для ключей, к который все программы, которые совместно используют этот элемент, принадлежат.

    При использовании XCode для создавания приложения, XCode добавляет право идентификатора приложения на комплект приложений. Keychain Services использует это право для предоставления доступа к приложениям к его собственным элементам цепочки для ключей. Можно также добавить право групп доступа цепочки для ключей на приложение и, в дающем право файле списка свойств, указать массив групп доступа цепочки для ключей, которым принадлежит приложение. Файл списка свойств может иметь любое имя, которое Вы любите (например, keychain-access-groups.plist). Переменная сборки XCode CODE_SIGN_ENTITLEMENTS должен содержать SRCROOT относительный путь к дающему право файлу списка свойств. Сам файл списка свойств должен быть словарем с вызванным ключом верхнего уровня keychain-access-groups чье значение является массивом строк. Если Вы добавляете такой файл списка свойств к комплекту приложений, то группа доступа, соответствующая праву идентификатора приложения, обрабатывается как последний элемент в массиве групп доступа. Если Вы не включаете kSecAttrAccessGroup введите словарь атрибутов, когда Вы вызовете SecItemAdd функция для добавления элемента к цепочке для ключей функция использует первую группу доступа в массиве по умолчанию. Если существует нет kSecAttrAccessGroup введите словарь атрибутов и нет никакого права групп доступа цепочки для ключей в комплекте приложений, тогда группа доступа недавно создаваемого элемента является значением права идентификатора приложения.

    Например, группа разработки в Apple могла бы иметь ID:

    659823F3DC53.com.apple

    и идентификаторы приложений их двух приложений могли бы быть:

    659823F3DC53.com.apple.oneappleapp и

    659823F3DC53.com.apple.twoappleapp

    Если оба приложения добавляют право групп доступа цепочки для ключей с одним значением в массиве групп доступа:

    659823F3DC53.com.apple.netaccount

    тогда оба приложения добавили бы новые элементы цепочки для ключей к 659823F3DC53.com.apple.netaccount у группы доступа по умолчанию и обоих приложений был бы доступ к элементам цепочки для ключей в той группе. Кроме того, каждое приложение все еще имело бы доступ к своим собственным частным элементам цепочки для ключей: OneAppleApp имел бы доступ к элементам в группе доступа цепочки для ключей 659823F3DC53.com.apple.oneappleapp и TwoAppleApp имел бы доступ к элементам в 659823F3DC53.com.apple.twoappleapp.

    Возвратите типы (Константы Результатов поиска) указаны следующим образом:

    • Получить данные добавленного элемента как объект типа CFDataRef, укажите ключ типа возврата kSecReturnData со значением kCFBooleanTrue.

    • Получить все атрибуты добавленного элемента как объекты типа CFDictionaryRef, указать kSecReturnAttributes со значением kCFBooleanTrue.

    • Получить ссылку на добавленный элемент типа SecKeychainItemRef, SecKeyRef, SecCertificateRef, или SecIdentityRef), укажите kSecReturnRef со значением kCFBooleanTrue. Если тип возврата явно не указан, это - поведение по умолчанию.

    • Получить персистентную ссылку на добавленный элемент (объект типа CFDataRef), укажите kSecReturnPersistentRef со значением kCFBooleanTrue. Обратите внимание на то, что в отличие от нормальных ссылок, персистентная ссылка может быть сохранена на диске или передана между процессами.

    • Если больше чем один из этих, которые вводит возврат, указан, результат возвращается как объект типа CFDictionaryRef содержа все запрошенные данные.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

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

  • Изменяет элементы, соответствующие поисковый запрос.

    Объявление

    Swift

    func SecItemUpdate(_ query: CFDictionary!, _ attributesToUpdate: CFDictionary!) -> OSStatus

    Objective C

    OSStatus SecItemUpdate ( CFDictionaryRef query, CFDictionaryRef attributesToUpdate );

    Параметры

    query

    Словарь, содержащий спецификацию класса элемента и дополнительные атрибуты для управления поиском. Укажите элементы, значения которых Вы хотите изменить. Посмотрите Ключи поиска для описания в настоящее время определяемых поисковых атрибутов.

    attributesToUpdate

    Словарь, содержащий атрибуты, значения которых должны быть изменены, вместе с новыми значениями. Только реальные атрибуты цепочки для ключей разрешены в этом словаре (никакие атрибуты «meta» не позволяются.) Посмотрите Ключи Элемента Атрибута и Значения для описания в настоящее время определяемых атрибутов значения.

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

    Код результата. Посмотрите Коды Результата Keychain Services. Вызвать SecCopyErrorMessageString (Только OS X) для получения человекочитаемой строки, объясняя результат.

    Обсуждение

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

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

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

  • Удаляет элементы, соответствующие поисковый запрос.

    Объявление

    Swift

    func SecItemDelete(_ query: CFDictionary!) -> OSStatus

    Objective C

    OSStatus SecItemDelete ( CFDictionaryRef query );

    Параметры

    query

    Словарь, содержащий спецификацию класса элемента и дополнительные атрибуты для управления поиском. Посмотрите Ключи поиска для описания в настоящее время определяемых поисковых атрибутов.

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

    Код результата. Посмотрите Коды Результата Keychain Services. Вызвать SecCopyErrorMessageString (Только OS X) для получения человекочитаемой строки, объясняя результат.

    Обсуждение

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

    По умолчанию эта функция удаляет все элементы, соответствующие указанный запрос. Можно изменить это поведение путем указания ключа, следующим образом:

    • Для удаления элемента, идентифицированного переходной ссылкой, укажите kSecMatchItemList ключ поиска со ссылкой возвратился при помощи kSecReturnRef возвратитесь тип вводят предыдущий вызов к SecItemCopyMatching или SecItemAdd функции.

    • Для удаления элемента, идентифицированного персистентной ссылкой, укажите kSecMatchItemList ключ поиска с персистентной ссылкой возвратился при помощи kSecReturnPersistentRef возвратите ключ типа SecItemCopyMatching или SecItemAdd функции.

    • Если больше чем одна из этих клавиш Return указана, поведение не определено.

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

    Objective C

    @import Security;

    Swift

    import Security

    Доступность

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

Константы

Службы цепочки для ключей OS X константы API

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

    Объявление

    Swift

    var kSecImportExportPassphrase: Unmanaged<CFString>!

    Objective C

    extern CFStringRef kSecImportExportPassphrase;

    Константы

    • kSecImportExportPassphrase

      Пароль (представленный a CFStringRef объект), чтобы использоваться при экспорте в или импорте из формата PKCS#12.

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

Ключи класса элемента цепочки для ключей и значения

Константы, используемые в поисковом словаре для указания класса элементов в цепочке для ключей. Посмотрите SecItemCopyMatching для описания поискового словаря.

  • Ключевая константа раньше устанавливала значение класса элемента в поисковом словаре.

    Объявление

    Swift

    var kSecClass: CFStringRef

    Objective C

    CFTypeRef kSecClass;

    Константы

  • Значения, используемые с kSecClass введите поисковый словарь.

    Объявление

    Swift

    var kSecClassGenericPassword: CFStringRef var kSecClassInternetPassword: CFStringRef var kSecClassCertificate: CFStringRef var kSecClassKey: CFStringRef var kSecClassIdentity: CFStringRef

    Objective C

    CFTypeRef kSecClassGenericPassword; CFTypeRef kSecClassInternetPassword; CFTypeRef kSecClassCertificate; CFTypeRef kSecClassKey; CFTypeRef kSecClassIdentity;

    Константы

    • kSecClassGenericPassword

      Универсальный элемент пароля.

      Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:

      • kSecAttrAccessible

      • kSecAttrAccessGroup

      • kSecAttrCreationDate

      • kSecAttrModificationDate

      • kSecAttrDescription

      • kSecAttrComment

      • kSecAttrCreator

      • kSecAttrType

      • kSecAttrLabel

      • kSecAttrIsInvisible

      • kSecAttrIsNegative

      • kSecAttrAccount

      • kSecAttrService

      • kSecAttrGeneric

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

    • kSecClassInternetPassword

      Интернет-элемент пароля.

      Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:

      • kSecAttrAccessible

      • kSecAttrAccessGroup

      • kSecAttrCreationDate

      • kSecAttrModificationDate

      • kSecAttrDescription

      • kSecAttrComment

      • kSecAttrCreator

      • kSecAttrType

      • kSecAttrLabel

      • kSecAttrIsInvisible

      • kSecAttrIsNegative

      • kSecAttrAccount

      • kSecAttrSecurityDomain

      • kSecAttrServer

      • kSecAttrProtocol

      • kSecAttrAuthenticationType

      • kSecAttrPort

      • kSecAttrPath

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

    • kSecClassCertificate

      Элемент сертификата.

      Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:

      • kSecAttrAccessible

      • kSecAttrAccessGroup

      • kSecAttrCertificateType

      • kSecAttrCertificateEncoding

      • kSecAttrLabel

      • kSecAttrSubject

      • kSecAttrIssuer

      • kSecAttrSerialNumber

      • kSecAttrSubjectKeyID

      • kSecAttrPublicKeyHash

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

    • kSecClassKey

      Элемент криптографического ключа.

      Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:

      • kSecAttrAccessible

      • kSecAttrAccessGroup

      • kSecAttrKeyClass

      • kSecAttrLabel

      • kSecAttrApplicationLabel

      • kSecAttrIsPermanent

      • kSecAttrApplicationTag

      • kSecAttrKeyType

      • kSecAttrKeySizeInBits

      • kSecAttrEffectiveKeySize

      • kSecAttrCanEncrypt

      • kSecAttrCanDecrypt

      • kSecAttrCanDerive

      • kSecAttrCanSign

      • kSecAttrCanVerify

      • kSecAttrCanWrap

      • kSecAttrCanUnwrap

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

    • kSecClassIdentity

      Элемент идентификационных данных.

      Идентификационные данные являются сертификатом вместе с его связанным закрытым ключом. Поскольку идентификационные данные являются комбинацией закрытого ключа и сертификата, этот класс совместно использует атрибуты обоих kSecClassKey и kSecClassCertificate.

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

Ключи элемента атрибута и значения

Вы используете ключи в поисковом словаре для указания элементов цепочки для ключей, которые можно искать. Можно указать комбинацию атрибутов элемента и искать атрибуты (см. Ключи поиска) при поиске соответствия элементов с SecItemCopyMatching функция. Этот раздел перечисляет все ключи, указывающие атрибуты элемента цепочки для ключей. Описание каждого элемента указывает то, что возможные значения для того ключа. В нескольких случаях интерфейс программирования обеспечивает ряд констант, которые можно использовать в качестве значений для определенного ключа. Те константы значения находятся также в этом разделе, после описаний ключей.

  • Каждый тип элемента цепочки для ключей может иметь много атрибутов, описывающих тот элемент. Для возможных типов элемента цепочки для ключей и атрибутов, которые могут быть указаны для каждого, посмотрите Ключи Класса Элемента Цепочки для ключей и Значения.

    Объявление

    Swift

    var kSecAttrAccessible: CFStringRef var kSecAttrCreationDate: CFStringRef var kSecAttrModificationDate: CFStringRef var kSecAttrDescription: CFStringRef var kSecAttrComment: CFStringRef var kSecAttrCreator: CFStringRef var kSecAttrType: CFStringRef var kSecAttrLabel: CFStringRef var kSecAttrIsInvisible: CFStringRef var kSecAttrIsNegative: CFStringRef var kSecAttrAccount: CFStringRef var kSecAttrService: CFStringRef var kSecAttrGeneric: CFStringRef var kSecAttrSecurityDomain: CFStringRef var kSecAttrServer: CFStringRef var kSecAttrProtocol: CFStringRef var kSecAttrAuthenticationType: CFStringRef var kSecAttrPort: CFStringRef var kSecAttrPath: CFStringRef var kSecAttrSubject: CFStringRef var kSecAttrIssuer: CFStringRef var kSecAttrSerialNumber: CFStringRef var kSecAttrSubjectKeyID: CFStringRef var kSecAttrPublicKeyHash: CFStringRef var kSecAttrCertificateType: CFStringRef var kSecAttrCertificateEncoding: CFStringRef var kSecAttrKeyClass: CFStringRef var kSecAttrApplicationLabel: CFStringRef var kSecAttrIsPermanent: CFStringRef var kSecAttrApplicationTag: CFStringRef var kSecAttrKeyType: CFStringRef var kSecAttrKeySizeInBits: CFStringRef var kSecAttrEffectiveKeySize: CFStringRef var kSecAttrCanEncrypt: CFStringRef var kSecAttrCanDecrypt: CFStringRef var kSecAttrCanDerive: CFStringRef var kSecAttrCanSign: CFStringRef var kSecAttrCanVerify: CFStringRef var kSecAttrCanWrap: CFStringRef var kSecAttrCanUnwrap: CFStringRef var kSecAttrAccessGroup: CFStringRef

    Objective C

    CFTypeRef kSecAttrAccessible; CFTypeRef kSecAttrCreationDate; CFTypeRef kSecAttrModificationDate; CFTypeRef kSecAttrDescription; CFTypeRef kSecAttrComment; CFTypeRef kSecAttrCreator; CFTypeRef kSecAttrType; CFTypeRef kSecAttrLabel; CFTypeRef kSecAttrIsInvisible; CFTypeRef kSecAttrIsNegative; CFTypeRef kSecAttrAccount; CFTypeRef kSecAttrService; CFTypeRef kSecAttrGeneric; CFTypeRef kSecAttrSecurityDomain; CFTypeRef kSecAttrServer; CFTypeRef kSecAttrProtocol; CFTypeRef kSecAttrAuthenticationType; CFTypeRef kSecAttrPort; CFTypeRef kSecAttrPath; CFTypeRef kSecAttrSubject; CFTypeRef kSecAttrIssuer; CFTypeRef kSecAttrSerialNumber; CFTypeRef kSecAttrSubjectKeyID; CFTypeRef kSecAttrPublicKeyHash; CFTypeRef kSecAttrCertificateType; CFTypeRef kSecAttrCertificateEncoding; CFTypeRef kSecAttrKeyClass; CFTypeRef kSecAttrApplicationLabel; CFTypeRef kSecAttrIsPermanent; CFTypeRef kSecAttrApplicationTag; CFTypeRef kSecAttrKeyType; CFTypeRef kSecAttrKeySizeInBits; CFTypeRef kSecAttrEffectiveKeySize; CFTypeRef kSecAttrCanEncrypt; CFTypeRef kSecAttrCanDecrypt; CFTypeRef kSecAttrCanDerive; CFTypeRef kSecAttrCanSign; CFTypeRef kSecAttrCanVerify; CFTypeRef kSecAttrCanWrap; CFTypeRef kSecAttrCanUnwrap; CFTypeRef kSecAttrAccessGroup;

    Константы

    • kSecAttrAccessible

      A CFTypeRef (непрозрачное) значение, указывающее, когда для Вашего приложения нужен доступ к данным в элементе цепочки для ключей. Необходимо выбрать самую строгую опцию, удовлетворяющую потребности приложения так, чтобы iOS мог защитить тот элемент до самой большой возможной степени. Для списка возможных значений посмотрите Константы Доступности Элемента Цепочки для ключей.

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

    • kSecAttrCreationDate

      Ключ даты создания.

      Соответствующее значение имеет тип CFDateRef и представляет дату, элемент создавался. Только для чтения.

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

    • kSecAttrModificationDate

      Ключ даты модификации.

      Соответствующее значение имеет тип CFDateRef и представляет в прошлый раз, когда элемент был обновлен. Только для чтения.

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

    • kSecAttrDescription

      Ключ атрибута описания.

      Соответствующее значение имеет тип CFStringRef и указывает видимую пользователем строку, описывающую этот вид элемента (например, «Пароль образа диска»).

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

    • kSecAttrComment

      Ключ атрибута комментария.

      Соответствующее значение имеет тип CFStringRef и содержит доступный для редактирования пользователем комментарий для этого элемента.

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

    • kSecAttrCreator

      Ключ атрибута создателя.

      Соответствующее значение имеет тип CFNumberRef и представляет создателя элемента. Это число является представлением целого без знака четырех кодов символа (например, 'aCrt').

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

    • kSecAttrType

      Ключ атрибута типа.

      Соответствующее значение имеет тип CFNumberRef и представляет тип элемента. Это число является представлением целого без знака четырех кодов символа (например, 'aTyp').

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

    • kSecAttrLabel

      Ключ атрибута метки.

      Соответствующее значение имеет тип CFStringRef и содержит видимую пользователем метку для этого элемента.

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

    • kSecAttrIsInvisible

      Невидимый ключ атрибута.

      Соответствующее значение имеет тип CFBooleanRef и kCFBooleanTrue если элемент невидим (т.е. не должен быть выведен на экран).

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

    • kSecAttrIsNegative

      Отрицательный ключ атрибута.

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

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

    • kSecAttrAccount

      Ключ атрибута учетной записи.

      Соответствующее значение имеет тип CFStringRef и содержит название счета. Элементы класса kSecClassGenericPassword и kSecClassInternetPassword имейте этот атрибут.

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

    • kSecAttrService

      Ключ атрибута службы.

      Соответствующее значение является строкой типа CFStringRef это представляет службу, связанную с этим элементом. Элементы класса kSecClassGenericPassword имейте этот атрибут.

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

    • kSecAttrGeneric

      Универсальный ключ атрибута.

      Соответствующее значение имеет тип CFDataRef и содержит определяемый пользователем атрибут. Элементы класса kSecClassGenericPassword имейте этот атрибут.

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

    • kSecAttrSecurityDomain

      Ключ атрибута домена защиты.

      Соответствующее значение имеет тип CFStringRef и представляет домен Защиты в сети Интернет. Элементы класса kSecClassInternetPassword имейте этот атрибут.

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

    • kSecAttrServer

      Ключ атрибута сервера.

      Соответствующее значение имеет тип CFStringRef и содержит доменное имя сервера или IP-адрес. Элементы класса kSecClassInternetPassword имейте этот атрибут.

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

    • kSecAttrProtocol

      Ключ атрибута протокола.

      Соответствующее значение имеет тип CFNumberRef и обозначает протокол для этого элемента (см. Значения Протокола). Элементы класса kSecClassInternetPassword имейте этот атрибут.

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

    • kSecAttrAuthenticationType

      Ключ атрибута типа аутентификации.

      Соответствующее значение имеет тип CFNumberRef и обозначает схему аутентификации для этого элемента (см. Значения Типа аутентификации).

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

    • kSecAttrPort

      Ключ атрибута порта.

      Соответствующее значение имеет тип CFNumberRef и представляет интернет-номер порта. Элементы класса kSecClassInternetPassword имейте этот атрибут.

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

    • kSecAttrPath

      Ключ атрибута пути.

      Соответствующее значение имеет тип CFStringRef и представляет путь, обычно компонент контура URL. Элементы класса kSecClassInternetPassword имейте этот атрибут.

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

    • kSecAttrSubject

      Подчиненный ключ атрибута.

      Соответствующее значение имеет тип CFDataRef и содержит имя предмета X.500 сертификата. Элементы класса kSecClassCertificate имейте этот атрибут. Только для чтения.

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

    • kSecAttrIssuer

      Ключ атрибута эмитента.

      Соответствующее значение имеет тип CFDataRef и содержит имя эмитента X.500 сертификата. Элементы класса kSecClassCertificate имейте этот атрибут. Только для чтения.

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

    • kSecAttrSerialNumber

      Ключ атрибута порядкового номера.  

      Соответствующее значение имеет тип CFDataRef и содержит данные порядкового номера сертификата. Элементы класса kSecClassCertificate имейте этот атрибут. Только для чтения.

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

    • kSecAttrSubjectKeyID

      Подчиненный ключ атрибута ключа ID.

      Соответствующее значение имеет тип CFDataRef и содержит подчиненный ключ ID сертификата. Элементы класса kSecClassCertificate имейте этот атрибут. Только для чтения.

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

    • kSecAttrPublicKeyHash

      Ключ атрибута хеша с открытым ключом.

      Соответствующее значение имеет тип CFDataRef и содержит хеш открытого ключа сертификата. Элементы класса kSecClassCertificate имейте этот атрибут. Только для чтения.

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

    • kSecAttrCertificateType

      Ключ атрибута типа сертификата.

      Соответствующее значение имеет тип CFNumberRef и обозначает тип сертификата (см. CSSM_CERT_TYPE перечисление в cssmtype.h). Элементы класса kSecClassCertificate имейте этот атрибут. Только для чтения.

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

    • kSecAttrCertificateEncoding

      Сертификат, кодирующий ключ атрибута.

      Соответствующее значение имеет тип CFNumberRef и обозначает кодирование сертификата (см. CSSM_CERT_ENCODING перечисление в cssmtype.h). Элементы класса kSecClassCertificate имейте этот атрибут. Только для чтения.

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

    • kSecAttrKeyClass

      Ключевой ключ атрибута класса.

      Соответствующее значение имеет тип CFTypeRef и указывает тип криптографического ключа. Возможные значения перечислены в Ключевых Значениях Класса. Только для чтения.

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

    • kSecAttrApplicationLabel

      Метка приложения приписывает ключ.

      Соответствующее значение имеет тип CFStringRef и содержит метку для этого элемента. Этот атрибут отличается от kSecAttrLabel атрибут, предназначающийся, чтобы быть человекочитаемым. Этот атрибут используется для поиска ключа программно; в частности для ключей класса kSecAttrKeyClassPublic и kSecAttrKeyClassPrivate, значение этого атрибута является хешем открытого ключа.

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

    • kSecAttrIsPermanent

      Ключ атрибута постоянства.

      Соответствующее значение имеет тип CFBooleanRef и указывает, должен ли этот криптографический ключ быть сохранен постоянно.

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

    • kSecAttrApplicationTag

      Ключ атрибута тега скрытия.

      Соответствующее значение имеет тип CFDataRef и содержит данные тега скрытия.

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

    • kSecAttrKeyType

      Ключ атрибута алгоритма.

      Соответствующее значение имеет тип CFNumberRef и указывает алгоритм, связанный с этим криптографическим ключом (см. CSSM_ALGORITHMS перечисление в cssmtype.h и Ключевых Значениях Типа).

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

    • kSecAttrKeySizeInBits

      Число битов приписывает ключ.

      Соответствующее значение имеет тип CFNumberRef и указывает общее количество битов в этом криптографическом ключе. Соответствуйте kSecAttrEffectiveKeySize.

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

    • kSecAttrEffectiveKeySize

      Эффективное число битов приписывает ключ.

      Соответствующее значение имеет тип CFNumberRef и указывает эффективное число битов в этом криптографическом ключе. Например, ключ DES имеет a kSecAttrKeySizeInBits из 64, но a kSecAttrEffectiveKeySize из 56 битов.

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

    • kSecAttrCanEncrypt

      Ключ атрибута шифрования.

      Соответствующее значение имеет тип CFBooleanRef и указывает, может ли этот криптографический ключ использоваться для шифрования данных.

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

    • kSecAttrCanDecrypt

      Ключ атрибута дешифрования.

      Соответствующее значение имеет тип CFBooleanRef и указывает, может ли этот криптографический ключ использоваться для дешифрования данных.

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

    • kSecAttrCanDerive

      Ключ атрибута деривации.

      Соответствующее значение имеет тип CFBooleanRef и указывает, может ли этот криптографический ключ использоваться для получения другого ключа.

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

    • kSecAttrCanSign

      Ключ атрибута подписи.

      Соответствующее значение имеет тип CFBooleanRef и указывает, может ли этот криптографический ключ использоваться для создания цифровой подписи.

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

    • kSecAttrCanVerify

      Ключ атрибута верификации подписи.

      Соответствующее значение имеет тип CFBooleanRef и указывает, может ли этот криптографический ключ использоваться для заверения цифровой подписи.

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

    • kSecAttrCanWrap

      Ключ атрибута обертки.

      Соответствующее значение имеет тип CFBooleanRef и указывает, может ли этот криптографический ключ использоваться для обертывания другого ключа.

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

    • kSecAttrCanUnwrap

      Разверните ключ атрибута.

      Соответствующее значение имеет тип CFBooleanRef и указывает, может ли этот криптографический ключ использоваться для разворачивания другого ключа.

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

    • kSecAttrAccessGroup

      Ключ группы доступа.

      Соответствующее значение имеет тип CFStringRef и указывает, какой доступ группируют, элемент находится в. Группы доступа могут использоваться для совместного использования элементов цепочки для ключей среди двух или больше приложений. Для приложений для совместного использования элемента цепочки для ключей приложения должны иметь общую группу доступа, перечисленную в их праве групп доступа цепочки для ключей и приложении, добавляющем, что совместно используемый элемент к цепочке для ключей должен указать, что это название группы совместного доступа как значение для этого ключа в словаре передало SecItemAdd функция.

      Приложение может быть элементом любого числа групп доступа. По умолчанию, SecItemUpdate, SecItemDelete, и SecItemCopyMatching функции ищут, весь доступ группируется, приложение является элементом. Включайте этот ключ в поисковом словаре для этих функций для указания, какая группа доступа ищется.

      Элемент цепочки для ключей может быть в только группе одиночного обращения.

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

    Обсуждение

    Эти предопределенные ключи атрибута элемента используются, чтобы получить или установить значения в словаре. Не все атрибуты применяются к каждому классу элемента.

  • Значения, которые могут использоваться с kSecAttrProtocol ключ атрибута.

    Объявление

    Swift

    var kSecAttrProtocolFTP: CFStringRef var kSecAttrProtocolFTPAccount: CFStringRef var kSecAttrProtocolHTTP: CFStringRef var kSecAttrProtocolIRC: CFStringRef var kSecAttrProtocolNNTP: CFStringRef var kSecAttrProtocolPOP3: CFStringRef var kSecAttrProtocolSMTP: CFStringRef var kSecAttrProtocolSOCKS: CFStringRef var kSecAttrProtocolIMAP: CFStringRef var kSecAttrProtocolLDAP: CFStringRef var kSecAttrProtocolAppleTalk: CFStringRef var kSecAttrProtocolAFP: CFStringRef var kSecAttrProtocolTelnet: CFStringRef var kSecAttrProtocolSSH: CFStringRef var kSecAttrProtocolFTPS: CFStringRef var kSecAttrProtocolHTTPS: CFStringRef var kSecAttrProtocolHTTPProxy: CFStringRef var kSecAttrProtocolHTTPSProxy: CFStringRef var kSecAttrProtocolFTPProxy: CFStringRef var kSecAttrProtocolSMB: CFStringRef var kSecAttrProtocolRTSP: CFStringRef var kSecAttrProtocolRTSPProxy: CFStringRef var kSecAttrProtocolDAAP: CFStringRef var kSecAttrProtocolEPPC: CFStringRef var kSecAttrProtocolIPP: CFStringRef var kSecAttrProtocolNNTPS: CFStringRef var kSecAttrProtocolLDAPS: CFStringRef var kSecAttrProtocolTelnetS: CFStringRef var kSecAttrProtocolIMAPS: CFStringRef var kSecAttrProtocolIRCS: CFStringRef var kSecAttrProtocolPOP3S: CFStringRef

    Objective C

    CFTypeRef kSecAttrProtocolFTP; CFTypeRef kSecAttrProtocolFTPAccount; CFTypeRef kSecAttrProtocolHTTP; CFTypeRef kSecAttrProtocolIRC; CFTypeRef kSecAttrProtocolNNTP; CFTypeRef kSecAttrProtocolPOP3; CFTypeRef kSecAttrProtocolSMTP; CFTypeRef kSecAttrProtocolSOCKS; CFTypeRef kSecAttrProtocolIMAP; CFTypeRef kSecAttrProtocolLDAP; CFTypeRef kSecAttrProtocolAppleTalk; CFTypeRef kSecAttrProtocolAFP; CFTypeRef kSecAttrProtocolTelnet; CFTypeRef kSecAttrProtocolSSH; CFTypeRef kSecAttrProtocolFTPS; CFTypeRef kSecAttrProtocolHTTPS; CFTypeRef kSecAttrProtocolHTTPProxy; CFTypeRef kSecAttrProtocolHTTPSProxy; CFTypeRef kSecAttrProtocolFTPProxy; CFTypeRef kSecAttrProtocolSMB; CFTypeRef kSecAttrProtocolRTSP; CFTypeRef kSecAttrProtocolRTSPProxy; CFTypeRef kSecAttrProtocolDAAP; CFTypeRef kSecAttrProtocolEPPC; CFTypeRef kSecAttrProtocolIPP; CFTypeRef kSecAttrProtocolNNTPS; CFTypeRef kSecAttrProtocolLDAPS; CFTypeRef kSecAttrProtocolTelnetS; CFTypeRef kSecAttrProtocolIMAPS; CFTypeRef kSecAttrProtocolIRCS; CFTypeRef kSecAttrProtocolPOP3S;

    Константы

    • kSecAttrProtocolFTP

      Протокол FTP.

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

    • kSecAttrProtocolFTPAccount

      Клиентская сторона учетная запись FTP.

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

    • kSecAttrProtocolHTTP

      Протокол HTTP.

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

    • kSecAttrProtocolIRC

      Протокол IRC.

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

    • kSecAttrProtocolNNTP

      Протокол NNTP.

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

    • kSecAttrProtocolPOP3

      Протокол POP3.

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

    • kSecAttrProtocolSMTP

      Протокол SMTP.

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

    • kSecAttrProtocolSOCKS

      Протокол SOCKS.

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

    • kSecAttrProtocolIMAP

      Протокол протокола IMAP.

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

    • kSecAttrProtocolLDAP

      Протокол LDAP.

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

    • kSecAttrProtocolAppleTalk

      AFP по AppleTalk.

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

    • kSecAttrProtocolAFP

      AFP по TCP.

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

    • kSecAttrProtocolTelnet

      Протокол telnet.

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

    • kSecAttrProtocolSSH

      Протокол SSH.

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

    • kSecAttrProtocolFTPS

      FTP по TLS/SSL.

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

    • kSecAttrProtocolHTTPS

      HTTP по TLS/SSL.

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

    • kSecAttrProtocolHTTPProxy

      Прокси HTTP.

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

    • kSecAttrProtocolHTTPSProxy

      Прокси HTTPS.

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

    • kSecAttrProtocolFTPProxy

      Прокси FTP.

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

    • kSecAttrProtocolSMB

      Протокол SMB.

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

    • kSecAttrProtocolRTSP

      Протокол RTSP.

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

    • kSecAttrProtocolRTSPProxy

      Прокси RTSP.

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

    • kSecAttrProtocolDAAP

      Протокол DAAP.

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

    • kSecAttrProtocolEPPC

      Удаленные события Apple.

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

    • kSecAttrProtocolIPP

      Протокол IPP.

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

    • kSecAttrProtocolNNTPS

      NNTP по TLS/SSL.

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

    • kSecAttrProtocolLDAPS

      LDAP по TLS/SSL.

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

    • kSecAttrProtocolTelnetS

      Telnet по TLS/SSL.

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

    • kSecAttrProtocolIMAPS

      IMAP по TLS/SSL.

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

    • kSecAttrProtocolIRCS

      IRC по TLS/SSL.

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

    • kSecAttrProtocolPOP3S

      POP3 по TLS/SSL.

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

  • Значения, которые могут использоваться с kSecAttrAuthenticationType ключ атрибута.

    Объявление

    Swift

    var kSecAttrAuthenticationTypeNTLM: CFStringRef var kSecAttrAuthenticationTypeMSN: CFStringRef var kSecAttrAuthenticationTypeDPA: CFStringRef var kSecAttrAuthenticationTypeRPA: CFStringRef var kSecAttrAuthenticationTypeHTTPBasic: CFStringRef var kSecAttrAuthenticationTypeHTTPDigest: CFStringRef var kSecAttrAuthenticationTypeHTMLForm: CFStringRef var kSecAttrAuthenticationTypeDefault: CFStringRef

    Objective C

    CFTypeRef kSecAttrAuthenticationTypeNTLM; CFTypeRef kSecAttrAuthenticationTypeMSN; CFTypeRef kSecAttrAuthenticationTypeDPA; CFTypeRef kSecAttrAuthenticationTypeRPA; CFTypeRef kSecAttrAuthenticationTypeHTTPBasic; CFTypeRef kSecAttrAuthenticationTypeHTTPDigest; CFTypeRef kSecAttrAuthenticationTypeHTMLForm; CFTypeRef kSecAttrAuthenticationTypeDefault;

    Константы

    • kSecAttrAuthenticationTypeNTLM

      Аутентификация Диспетчера локальной сети Windows NT.

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

    • kSecAttrAuthenticationTypeMSN

      Аутентификация значения по умолчанию Microsoft Network.

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

    • kSecAttrAuthenticationTypeDPA

      Распределенная Аутентификация по паролю.

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

    • kSecAttrAuthenticationTypeRPA

      Удаленная Аутентификация по паролю.

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

    • kSecAttrAuthenticationTypeHTTPBasic

      Базовая аутентификация HTTP.

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

    • kSecAttrAuthenticationTypeHTTPDigest

      Аутентификация доступа Обзора HTTP.

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

    • kSecAttrAuthenticationTypeHTMLForm

      HTML-форма базировала аутентификацию.

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

    • kSecAttrAuthenticationTypeDefault

      Тип аутентификации по умолчанию.

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

  • Значения, которые могут использоваться с kSecAttrKeyClass ключ атрибута.

    Объявление

    Swift

    var kSecAttrKeyClassPublic: CFStringRef var kSecAttrKeyClassPrivate: CFStringRef var kSecAttrKeyClassSymmetric: CFStringRef

    Objective C

    CFTypeRef kSecAttrKeyClassPublic; CFTypeRef kSecAttrKeyClassPrivate; CFTypeRef kSecAttrKeyClassSymmetric;

    Константы

    • kSecAttrKeyClassPublic

      Открытый ключ общедоступно-частной пары.

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

    • kSecAttrKeyClassPrivate

      Закрытый ключ общедоступно-частной пары.

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

    • kSecAttrKeyClassSymmetric

      Закрытый ключ, используемый для шифрования с симметричным ключом и дешифрования.

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

  • Значения, которые могут использоваться с kSecAttrKeyType ключ атрибута.

    Объявление

    Swift

    var kSecAttrKeyTypeRSA: CFStringRef

    Objective C

    extern const CFTypeRef kSecAttrKeyTypeRSA;

    Константы

    • kSecAttrKeyTypeRSA

      Алгоритм RSA.

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

  • Эти константы являются юридическими значениями для kSecAttrAccessible используемый для определения, когда элемент цепочки для ключей должен быть читаемым.

    Объявление

    Swift

    var kSecAttrAccessibleAfterFirstUnlock: CFStringRef var kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly: CFStringRef var kSecAttrAccessibleAlways: CFStringRef var kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly: CFStringRef var kSecAttrAccessibleAlwaysThisDeviceOnly: CFStringRef var kSecAttrAccessibleWhenUnlocked: CFStringRef var kSecAttrAccessibleWhenUnlockedThisDeviceOnly: CFStringRef

    Objective C

    CFTypeRef kSecAttrAccessibleWhenUnlocked; CFTypeRef kSecAttrAccessibleAfterFirstUnlock; CFTypeRef kSecAttrAccessibleAlways; CFTypeRef kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly CFTypeRef kSecAttrAccessibleWhenUnlockedThisDeviceOnly; CFTypeRef kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly; CFTypeRef kSecAttrAccessibleAlwaysThisDeviceOnly;

    Константы

    • kSecAttrAccessibleAfterFirstUnlock

      К данным в элементе цепочки для ключей нельзя получить доступ после перезапуска, пока устройство не было разблокировано один раз пользователем.

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

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

    • kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly

      К данным в элементе цепочки для ключей нельзя получить доступ после перезапуска, пока устройство не было разблокировано один раз пользователем.

      После того, как первые разблокировали, данные остаются доступными до следующего перезапуска. Это рекомендуется для элементов, к которым должны получить доступ фоновые приложения. Элементы с этим атрибутом не мигрируют на новое устройство. Таким образом, после восстановления от резервного копирования различного устройства, эти элементы не будут присутствовать.

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

    • kSecAttrAccessibleAlways

      К данным в элементе цепочки для ключей можно всегда получать доступ независимо от того, заблокировано ли устройство.

      Это не рекомендуется для использования приложения. Элементы с этим атрибутом мигрируют на новое устройство при использовании зашифрованных резервных копий.

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

    • kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly

      Когда устройство разблокировано, к данным в цепочке для ключей можно только получить доступ. Только доступный, если код доступа установлен на устройстве.

      Это рекомендуется для элементов, которые только должны быть доступными, в то время как приложение находится на переднем плане. Элементы с этим атрибутом никогда не мигрируют на новое устройство. После того, как резервное копирование восстанавливается новому устройству, эти элементы отсутствуют. Никакие элементы не могут быть сохранены в этом классе на устройствах без кода доступа. Отключение кода доступа устройства заставляет все элементы в этом классе быть удаленными.

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

    • kSecAttrAccessibleAlwaysThisDeviceOnly

      К данным в элементе цепочки для ключей можно всегда получать доступ независимо от того, заблокировано ли устройство.

      Это не рекомендуется для использования приложения. Элементы с этим атрибутом не мигрируют на новое устройство. Таким образом, после восстановления от резервного копирования различного устройства, эти элементы не будут присутствовать.

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

    • kSecAttrAccessibleWhenUnlocked

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

      Это рекомендуется для элементов, которые должны быть доступными только, в то время как приложение находится на переднем плане. Элементы с этим атрибутом мигрируют на новое устройство при использовании зашифрованных резервных копий.

      Это - значение по умолчанию для элементов цепочки для ключей, добавленных, явно не устанавливая постоянную доступность.

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

    • kSecAttrAccessibleWhenUnlockedThisDeviceOnly

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

      Это рекомендуется для элементов, которые должны быть доступными только, в то время как приложение находится на переднем плане. Элементы с этим атрибутом не мигрируют на новое устройство. Таким образом, после восстановления от резервного копирования различного устройства, эти элементы не будут присутствовать.

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

Ключи поиска

  • Ключи раньше устанавливали поисковые атрибуты в словаре поиска цепочки для ключей. Можно указать комбинацию поисковых атрибутов и атрибутов элемента (см. Ключи Элемента Атрибута и Значения) при поиске соответствия элементов с SecItemCopyMatching функция.

    Объявление

    Swift

    var kSecMatchPolicy: CFStringRef var kSecMatchItemList: CFStringRef var kSecMatchSearchList: CFStringRef var kSecMatchIssuers: CFStringRef var kSecMatchEmailAddressIfPresent: CFStringRef var kSecMatchSubjectContains: CFStringRef var kSecMatchCaseInsensitive: CFStringRef var kSecMatchTrustedOnly: CFStringRef var kSecMatchValidOnDate: CFStringRef var kSecMatchLimit: CFStringRef var kSecMatchLimitOne: CFStringRef var kSecMatchLimitAll: CFStringRef

    Objective C

    CFTypeRef kSecMatchPolicy; CFTypeRef kSecMatchItemList; CFTypeRef kSecMatchSearchList; CFTypeRef kSecMatchIssuers; CFTypeRef kSecMatchEmailAddressIfPresent; CFTypeRef kSecMatchSubjectContains; CFTypeRef kSecMatchCaseInsensitive; CFTypeRef kSecMatchTrustedOnly; CFTypeRef kSecMatchValidOnDate; CFTypeRef kSecMatchLimit; CFTypeRef kSecMatchLimitOne; CFTypeRef kSecMatchLimitAll;

    Константы

    • kSecMatchPolicy

      Политика соответствия приписывает ключ.

      Соответствующее значение имеет тип SecPolicyRef. Если предоставленный, возвратил сертификаты, или идентификационные данные должны проверить с этой политикой.

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

    • kSecMatchItemList

      Список элемента приписывает ключ.

      Для обеспечения собственного набора элементов, которые будут отфильтрованы поисковым запросом вместо того, чтобы искать цепочку для ключей, укажите этот ключ поиска в вызове к SecItemCopyMatching функция со значением, состоящим из объекта типа CFArrayRef где массив содержит также SecKeychainItemRef, SecKeyRef, SecCertificateRef, SecIdentityRef, или CFDataRef элементы. Объекты в предоставленном массиве должны все иметь тот же тип.

      Для преобразования от персистентных ссылок элемента до нормальных ссылок элемента укажите этот ключ поиска в вызове к SecItemCopyMatching функция со значением типа CFArrayRef где массив содержит один или больше CFDataRef элементы (персистентные ссылки), и ключ типа возврата kSecReturnRef чье значение kCFBooleanTrue.

      Для удаления элемента, идентифицированного переходной ссылкой, укажите kSecMatchItemList ключ поиска в вызове к SecItemDelete функция со ссылкой возвратилась при помощи kSecReturnRef возвратитесь тип вводят предыдущий вызов к SecItemCopyMatching или SecItemAdd функции.

      Для удаления элемента, идентифицированного персистентной ссылкой, укажите kSecMatchItemList ключ поиска в вызове к SecItemDelete функция с персистентной ссылкой возвратилась при помощи kSecReturnPersistentRef возвратите ключ типа SecItemCopyMatching или SecItemAdd функции.

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

    • kSecMatchSearchList

      Указывает ключ словаря, значение которого является a CFArray из SecKeychainRef элементы. Если предоставленный, поиск будет ограничен цепочками для ключей, содержавшимися в этом списке.

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

    • kSecMatchIssuers

      Эмитенты приписывают ключ.

      Соответствующее значение имеет тип CFArrayRef, где массив состоит из имен X.500 типа CFDataRef. Если предоставленный, возвратил сертификаты, или идентификационные данные ограничиваются теми, цепочка сертификата которых содержит один из эмитентов, предоставленных в этом списке.

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

    • kSecMatchEmailAddressIfPresent

      Ключ атрибута адреса электронной почты.

      Соответствующее значение имеет тип CFStringRef и содержит адрес электронной почты RFC822. Если предоставленный, возвратил сертификаты, или идентификационные данные ограничиваются теми, которые или содержать адрес или не содержат адреса электронной почты.

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

    • kSecMatchSubjectContains

      Подчиненный ключ атрибута.

      Соответствующее значение имеет тип CFStringRef. Если предоставленный, возвратил сертификаты, или идентификационные данные ограничиваются теми, предмет которых содержит эту строку.

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

    • kSecMatchCaseInsensitive

      Ключ атрибута чувствительности к регистру.

      Соответствующее значение имеет тип CFBooleanRef. Если это значение kCFBooleanFalse, или если этот атрибут не предоставлен, то чувствительное к регистру сопоставление строк выполняется.

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

    • kSecMatchTrustedOnly

      Доверяемый ключ атрибута привязки.

      Соответствующее значение имеет тип CFBooleanRef. Если этот атрибут предоставлен значением kCFBooleanTrue, только сертификаты, которые могут быть проверены назад к доверяемой привязке, возвращаются. Если это значение kCFBooleanFalse или атрибут не предоставлен, тогда могут быть возвращены оба доверяемых и недоверяемых сертификата.

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

    • kSecMatchValidOnDate

      Допустимый на дату ключ атрибута.

      Соответствующее значение имеет тип CFDateRef. Если предоставленный, возвратил ключи, сертификаты или идентификационные данные ограничиваются теми, которые допустимы для данной даты. Передайте значение kCFNull указать текущую дату.

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

    • kSecMatchLimit

      Предел соответствия приписывает ключ.

      Соответствующее значение имеет тип CFNumberRef. Если предоставленный, это значение указывает максимальное количество результатов возвратиться или иначе реагировать. Для единственного элемента указать kSecMatchLimitOne. Для указания всех элементов соответствия указать kSecMatchLimitAll. Поведение по умолчанию функционально-зависимо.

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

    • kSecMatchLimitOne

      Результаты ограничиваются первым найденным элементом; используемый в качестве значения для kSecMatchLimit ключ атрибута.

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

    • kSecMatchLimitAll

      Неограниченное количество результатов может быть возвращено; используемый в качестве значения для kSecMatchLimit ключ атрибута.

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

  • Ключ раньше указывал список элементов, чтобы искать или добавить.

    Объявление

    Swift

    var kSecUseItemList: CFStringRef

    Objective C

    CFTypeRef kSecUseItemList;

    Константы

    • kSecUseItemList

      Ключ списка элемента.

      Соответствующее значение имеет тип CFArrayRef, где массив содержит также SecKeychainItemRef, SecKeyRef, SecCertificateRef, SecIdentityRef, или (для персистентных ссылок элемента) CFDataRef элементы. Если предоставленный, этот массив обрабатывается как набор всех возможных элементов для поиска (или добавить, ли вызванная функция SecItemAdd). Элементы в массиве должны все иметь тот же тип.

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

    Обсуждение

    Когда этот атрибут предоставлен, никакие цепочки для ключей не ищутся.

Константы результатов поиска

  • Ключи раньше указывали тип результатов, которые должны быть возвращены SecItemCopyMatching или SecItemAdd функция.

    Объявление

    Swift

    var kSecReturnData: CFStringRef var kSecReturnAttributes: CFStringRef var kSecReturnRef: CFStringRef var kSecReturnPersistentRef: CFStringRef

    Objective C

    CFTypeRef kSecReturnData; CFTypeRef kSecReturnAttributes; CFTypeRef kSecReturnRef; CFTypeRef kSecReturnPersistentRef;

    Константы

    • kSecReturnData

      Возвратите ключ атрибута данных.

      Соответствующее значение имеет тип CFBooleanRef. Значение kCFBooleanTrue указывает, что данные элемента должны быть возвращены в форме a CFDataRef. Для ключей и элементов пароля, данные секретные (зашифрованный) и могут потребовать, чтобы пользователь ввел пароль для доступа.

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

    • kSecReturnAttributes

      Возвратитесь атрибуты приписывают ключ.

      Соответствующее значение имеет тип CFBooleanRef. Значение kCFBooleanTrue указывает, что словарь (незашифрованных) атрибутов элемента должен быть возвращен в форме a CFDictionaryRef.

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

    • kSecReturnRef

      Возвратите ссылочный ключ атрибута.

      Соответствующее значение имеет тип CFBooleanRef. Значение kCFBooleanTrue указывает, что должна быть возвращена ссылка. В зависимости от класса элемента, который требуют, возвращенные ссылки могут иметь тип SecKeychainItemRef, SecKeyRef, SecCertificateRef, SecIdentityRef, или CFDataRef.

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

    • kSecReturnPersistentRef

      Возвратите персистентный ссылочный ключ атрибута. Персистентная ссылка на учетные данные может быть сохранена на диске для более позднего использования или передана другим процессам.

      Соответствующее значение имеет тип CFBooleanRef. Значение kCFBooleanTrue указывает что персистентная ссылка на элемент (CFDataRef) должен быть возвращен.

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

    Обсуждение

    Можно указать нуль или больше этих типов возврата. При указании больше чем одного из этих типов возврата Keychain Services возвращает результат как a CFDictionaryRef ссылка на словарь, ключи которого являются типами возврата и чьи значения являются запрошенными данными.

  • Ключи, используемые в словаре результатов для SecItemCopyMatching или SecItemAdd, указание типа значений возвратилось. Можно указать нуль или больше этих типов в зависимости от функции, которую Вы вызываете.

    Объявление

    Swift

    var kSecValueData: CFStringRef var kSecValueRef: CFStringRef var kSecValuePersistentRef: CFStringRef

    Objective C

    CFTypeRef kSecValueData; CFTypeRef kSecValueRef; CFTypeRef kSecValuePersistentRef;

    Константы

    • kSecValueData

      Данные приписывают ключ. Персистентная ссылка на учетные данные может быть сохранена на диске для более позднего использования или передана другим процессам.

      Соответствующее значение имеет тип CFDataRef. Для ключей и элементов пароля, данные секретные (зашифрованный) и могут потребовать, чтобы пользователь ввел пароль для доступа.

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

    • kSecValueRef

      Ссылочный ключ атрибута.

      Соответствующее значение, в зависимости от класса элемента, который требуют, имеет тип SecKeychainItemRef, SecKeyRef, SecCertificateRef, или SecIdentityRef.

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

    • kSecValuePersistentRef

      Персистентный ссылочный ключ атрибута.

      Соответствующее значение имеет тип CFDataRef. Байты в этом CFDataRef может быть сохранен вызывающей стороной и использоваться на последующем вызове приложения (или даже различного приложения) для получения элемента, на который он ссылается.

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

Коды результата

Наиболее распространенные коды результата, возвращенные Keychain Services, перечислены в таблице ниже. Присвоенное ошибочное пространство для Keychain Services прерывисто: –25240 до –25279 и –25290 до –25329. Keychain Item Services может также возвратиться noErr (0) или paramErr (–50), или коды результата CSSM (см. Коллективную безопасность: CDSA и CSSM, версия 2 (с исправлениями) от Open Group (http://www .opengroup.org/security/cdsa.htm)).

  • Никакая ошибка.

    Значение

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