Как сохранить CFUUID в связке ключей - PullRequest
5 голосов
/ 21 ноября 2011

Я разрабатываю приложение для iPhone.
Приложение обращается к некоторому веб-сервису, который, помимо прочего, должен распознавать идентификатор устройства.

Поскольку UDID устарел, мне нужно вызвать CFUUIDCreate для генерации собственного UUID для этой цели.

Идентификатор чувствителен к безопасности: все мои сетевые соединения зашифрованы, и я не хочу, чтобы кто-либо, кроме моего сервера, прошедшего проверку подлинности сертификатом, знал этот UUID.
Кроме того, я хочу, чтобы этот идентификатор пережил переустановку.
Использование цепочки для ключей для хранения этого UUID кажется очевидным решением.

Как мне это сделать?

В интернете есть несколько примеров того, как хранить имя пользователя и пароль в связке ключей. У меня нет ни пользователя, ни пароля, просто 16-байтовый UUID (или одна строка NSString).

Какой kSecClass мне нужно использовать?
Какие атрибуты мне нужно установить и получить?
Какие атрибуты являются необязательными, а какие - обязательными?

Какой заголовок / каркас определяет CSSM_ALGORITHMS?
В документе упоминается cssmtype.h, у автозаполнения xcode есть , однако компилятор xcode говорит: «файл не найден».

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

Заранее спасибо!

1 Ответ

5 голосов
/ 21 ноября 2011

Вы можете использовать оболочку SSKeychain . Также проверьте ответ на этот вопрос для некоторых основных вещей использования: Как выбрать учетные записи и сервисные значения для SSKeychain

...