Какой идентификатор следует использовать при добавлении элемента цепочки для ключей с помощью KeyChainItemWrapper?

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

Это произвольно? Это имя моего приложения наоборот? Ниже я использую тест, но должен ли он быть: com.mydomain.myApp.test? Или мой идентификатор пакета приложений: com.Soundpaper.soundpaper.fakeID123? Или что?

Спасибо.

@property (nonatomic, strong) KeychainItemWrapper *myChain;
    
     . . .

if (myChain == nil)
{
    // first question: what identifier should I use?        
    myChain = [[KeychainItemWrapper alloc] initWithIdentifier:@"test" accessGroup:nil];
}

person user938797    schedule 24.02.2021    source источник


Ответы (1)


KeychainItemWrapper — это класс-оболочка, скрывающий от обычного разработчика все, что нужно для преобразования CFRef. Таким образом, все правила службы цепочки для ключей в структуре Безопасность остаются в силе.

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

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

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

person Andreas Oetjen    schedule 05.03.2021
comment
Спасибо. Я знаю о других ваших пунктах, но тот, который действительно ответил на мой вопрос, таков: следовательно, идентификатор является полностью произвольным и может вызывать конфликты только внутри вашего собственного приложения, а не с другими. Это то, что я искал. Еще раз спасибо. - person user938797; 07.03.2021