Технические вопросы и ответы QA1486

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

Q: Я могу последовательно получить доступ к зашифрованным Элементам Цепочки для ключей, избегание многократного «Отклоняет/Позволяет, Один раз/Всегда Позволяют» диалоговые окна подтверждения?

A: Я могу последовательно получить доступ к зашифрованным Элементам Цепочки для ключей, избегание многократного «Отклоняет/Позволяет, Один раз/Всегда Позволяют» диалоговые окна подтверждения?

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

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

Можно сделать это:

Для получения атрибутов и доступа старого элемента передайте NULL для данных и параметров длины данных функций, возвращающих атрибуты элемента цепочки для ключей, такой как SecKeychainItemCopyAttributesAndData и SecKeychainItemCopyContent. Необходимо будет также освободить память, связанную с возвращенными атрибутами и доступом. Это может быть сделано путем передачи ссылочных переменных SecKeychainItemFreeAttributesAndData.

Для перечисления присоединенных функций проверьте Ссылку Keychain Services.



История версии документа


ДатаПримечания
03.10.2006

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