Ссылка служб цепочки для ключей
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
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: 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 имеет 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: 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;
Константы
-
Эти константы являются юридическими значениями для
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 и позже.
-
-
Ключ раньше указывал список элементов, чтобы искать или добавить.
Константы
-
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
указывает, что данные элемента должны быть возвращены в форме 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: 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 и позже.