Ссылка служб цепочки для ключей
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
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>?>) -> OSStatusObjective 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и обеспечьте как его значение aCFArrayRefобъект, содержащий элементы типаSecKeychainItemRef,SecKeyRef,SecCertificateRef, илиSecIdentityRef. Объекты в предоставленном массиве должны все иметь тот же тип.Для ограничения поиска цепочки для ключей определенной цепочкой для ключей или цепочками для ключей укажите ключ поиска
kSecMatchSearchListи обеспечьте как его значение aCFArrayRefобъект, содержащий элементы типаSecKeychainRefэлементы.Для преобразования от персистентных ссылок элемента до нормальных ссылок элемента укажите ключ поиска
kSecMatchItemListсо значением, состоящим из объекта типаCFArrayRefссылка на массив, содержащий один или несколько элементов типаCFDataRef(персистентные ссылки), и ключ типа возвратаkSecReturnRefчье значениеkCFBooleanTrue. Объекты в предоставленном массиве должны все иметь тот же тип.При использовании XCode для создавания приложения, XCode добавляет право идентификатора приложения на комплект приложений. Keychain Services использует это право для предоставления доступа к приложениям к его собственным элементам цепочки для ключей. Можно также добавить право групп доступа цепочки для ключей на приложение и, в дающем право файле списка свойств, указать массив групп доступа цепочки для ключей, которым принадлежит приложение. Файл списка свойств может иметь любое имя, которое Вы любите (например,
keychain-access-groups.plist). Переменная сборки XCodeCODE_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>?>) -> OSStatusObjective 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). Переменная сборки XCodeCODE_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!) -> OSStatusObjective 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!) -> OSStatusObjective 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 и позже.
-
Предопределенные ключевые константы, используемые при передаче основанных на словаре параметров для импорта функций.
Объявление
Swift
var kSecImportExportPassphrase: Unmanaged<CFString>!Objective C
extern CFStringRef kSecImportExportPassphrase;Константы
Константы, используемые в поисковом словаре для указания класса элементов в цепочке для ключей. Посмотрите SecItemCopyMatching для описания поискового словаря.
-
Ключевая константа раньше устанавливала значение класса элемента в поисковом словаре.
Константы
-
kSecClassКлюч Dictionary, значение которого является кодом класса элемента.
Возможные значения для этого ключа перечислены в Константах Значения Класса Элемента.
Доступный в iOS 2.0 и позже.
-
-
Значения, используемые с
kSecClassвведите поисковый словарь.Объявление
Swift
var kSecClassGenericPassword: CFStringRef var kSecClassInternetPassword: CFStringRef var kSecClassCertificate: CFStringRef var kSecClassKey: CFStringRef var kSecClassIdentity: CFStringRefObjective C
CFTypeRef kSecClassGenericPassword; CFTypeRef kSecClassInternetPassword; CFTypeRef kSecClassCertificate; CFTypeRef kSecClassKey; CFTypeRef kSecClassIdentity;Константы
-
kSecClassGenericPasswordУниверсальный элемент пароля.
Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:
kSecAttrAccessiblekSecAttrAccessGroupkSecAttrCreationDatekSecAttrModificationDatekSecAttrDescriptionkSecAttrCommentkSecAttrCreatorkSecAttrTypekSecAttrLabelkSecAttrIsInvisiblekSecAttrIsNegativekSecAttrAccountkSecAttrServicekSecAttrGeneric
Доступный в iOS 2.0 и позже.
-
kSecClassInternetPasswordИнтернет-элемент пароля.
Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:
kSecAttrAccessiblekSecAttrAccessGroupkSecAttrCreationDatekSecAttrModificationDatekSecAttrDescriptionkSecAttrCommentkSecAttrCreatorkSecAttrTypekSecAttrLabelkSecAttrIsInvisiblekSecAttrIsNegativekSecAttrAccountkSecAttrSecurityDomainkSecAttrServerkSecAttrProtocolkSecAttrAuthenticationTypekSecAttrPortkSecAttrPath
Доступный в iOS 2.0 и позже.
-
kSecClassCertificateЭлемент сертификата.
Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:
kSecAttrAccessiblekSecAttrAccessGroupkSecAttrCertificateTypekSecAttrCertificateEncodingkSecAttrLabelkSecAttrSubjectkSecAttrIssuerkSecAttrSerialNumberkSecAttrSubjectKeyIDkSecAttrPublicKeyHash
Доступный в iOS 2.0 и позже.
-
kSecClassKeyЭлемент криптографического ключа.
Следующие типы атрибута (Ключи Элемента атрибута и Значения) могут использоваться с элементом этого типа:
kSecAttrAccessiblekSecAttrAccessGroupkSecAttrKeyClasskSecAttrLabelkSecAttrApplicationLabelkSecAttrIsPermanentkSecAttrApplicationTagkSecAttrKeyTypekSecAttrKeySizeInBitskSecAttrEffectiveKeySizekSecAttrCanEncryptkSecAttrCanDecryptkSecAttrCanDerivekSecAttrCanSignkSecAttrCanVerifykSecAttrCanWrapkSecAttrCanUnwrap
Доступный в 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: CFStringRefObjective 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;Константы
-
kSecAttrAccessibleA
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 имеет akSecAttrKeySizeInBitsиз 64, но akSecAttrEffectiveKeySizeиз 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: CFStringRefObjective 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 и позже.
-
kSecAttrProtocolAppleTalkAFP по AppleTalk.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolAFPAFP по TCP.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolTelnetПротокол telnet.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolSSHПротокол SSH.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolFTPSFTP по TLS/SSL.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolHTTPSHTTP по 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 и позже.
-
kSecAttrProtocolNNTPSNNTP по TLS/SSL.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolLDAPSLDAP по TLS/SSL.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolTelnetSTelnet по TLS/SSL.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolIMAPSIMAP по TLS/SSL.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolIRCSIRC по TLS/SSL.
Доступный в iOS 2.0 и позже.
-
kSecAttrProtocolPOP3SPOP3 по 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: CFStringRefObjective 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 и позже.
-
kSecAttrAuthenticationTypeHTMLFormHTML-форма базировала аутентификацию.
Доступный в iOS 2.0 и позже.
-
kSecAttrAuthenticationTypeDefaultТип аутентификации по умолчанию.
Доступный в iOS 2.0 и позже.
-
-
Значения, которые могут использоваться с
kSecAttrKeyClassключ атрибута.Объявление
Swift
var kSecAttrKeyClassPublic: CFStringRef var kSecAttrKeyClassPrivate: CFStringRef var kSecAttrKeyClassSymmetric: CFStringRefObjective C
CFTypeRef kSecAttrKeyClassPublic; CFTypeRef kSecAttrKeyClassPrivate; CFTypeRef kSecAttrKeyClassSymmetric;Константы
-
kSecAttrKeyClassPublicОткрытый ключ общедоступно-частной пары.
Доступный в iOS 2.0 и позже.
-
kSecAttrKeyClassPrivateЗакрытый ключ общедоступно-частной пары.
Доступный в iOS 2.0 и позже.
-
kSecAttrKeyClassSymmetricЗакрытый ключ, используемый для шифрования с симметричным ключом и дешифрования.
Доступный в iOS 2.0 и позже.
-
-
Значения, которые могут использоваться с
kSecAttrKeyTypeключ атрибута.Объявление
Swift
var kSecAttrKeyTypeRSA: CFStringRefObjective C
extern const CFTypeRef kSecAttrKeyTypeRSA;Константы
-
Эти константы являются юридическими значениями для
kSecAttrAccessibleиспользуемый для определения, когда элемент цепочки для ключей должен быть читаемым.Объявление
Swift
var kSecAttrAccessibleAfterFirstUnlock: CFStringRef var kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly: CFStringRef var kSecAttrAccessibleAlways: CFStringRef var kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly: CFStringRef var kSecAttrAccessibleAlwaysThisDeviceOnly: CFStringRef var kSecAttrAccessibleWhenUnlocked: CFStringRef var kSecAttrAccessibleWhenUnlockedThisDeviceOnly: CFStringRefObjective 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: CFStringRefObjective 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 и позже.
-
-
Ключ раньше указывал список элементов, чтобы искать или добавить.
Константы
-
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: CFStringRefObjective C
CFTypeRef kSecReturnData; CFTypeRef kSecReturnAttributes; CFTypeRef kSecReturnRef; CFTypeRef kSecReturnPersistentRef;Константы
-
kSecReturnDataВозвратите ключ атрибута данных.
Соответствующее значение имеет тип
CFBooleanRef. ЗначениеkCFBooleanTrueуказывает, что данные элемента должны быть возвращены в форме aCFDataRef. Для ключей и элементов пароля, данные секретные (зашифрованный) и могут потребовать, чтобы пользователь ввел пароль для доступа.Доступный в iOS 2.0 и позже.
-
kSecReturnAttributesВозвратитесь атрибуты приписывают ключ.
Соответствующее значение имеет тип
CFBooleanRef. ЗначениеkCFBooleanTrueуказывает, что словарь (незашифрованных) атрибутов элемента должен быть возвращен в форме aCFDictionaryRef.Доступный в 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: CFStringRefObjective 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 и позже.
