iOS Keychain - в чем разница между kSecClassGenericPassword и kSecClassInternetPassword? - PullRequest
1 голос
/ 01 апреля 2019

У меня есть код, который хранит данные в цепочке для ключей.Код работает во время модульного тестирования.Я сохраняю значение «Данные». Однако, когда я указываю

 kSecClass : kSecClassGenericPassword, I get OSStatus 0 - success
 kSecClass : kSecClassInternetPassword, I get OSStatus -25303

Каковы требования к хранилищу или различия между kSecClassGenericPassword и kSecClassInternetPassword? (тот же код завершается ошибкой с kSecClassInternetPassword)

Обновление: возможно, в запросе пароля в Интернете отсутствует одно из обязательных полей, например kSecAttrServer, а не kSecAttrService

1 Ответ

2 голосов
/ 01 апреля 2019

«Интернет-пароли» - это несколько специализированных записей для Safari. Они включают данные хоста и пользователя, которые облегчают их просмотр, когда вы храните сотни записей для неизвестного списка сайтов. Они почти никогда не хотят чего-то другого, кроме браузера.

Практически во всех случаях приложения, необходимые для хранения данных, являются «универсальным паролем», независимо от того, что вы храните, даже если это не пароль. «Общий пароль» - это, по сути, «блок зашифрованных данных». (Если вашему приложению необходимо хранить открытые / закрытые ключи или сертификаты, то для этого полезны соответствующие классы, но это менее распространено, чем хранение «больших двоичных объектов зашифрованных данных».)

...