Как достать список сертификатов из Keychain


#1

Всем привет!

Есть необходимость достать сертификат SecIdentityтипа для handleChallenge метода, когда сервер будет запрашивать авторизацию по сертификату (NSURLAuthenticationMethodClientCertificate).

Я вижу тут два варианта:

  1. Получить список всех сертификатов, отобразить их на UI списком и по идентификатору уже выдернуть тот самый, на который кликнул пользователь.
  2. Держать сертификат в Documents директории и вытаскивать его оттуда. Но предварительно нужно загрузить данный сертификат (это самый крайний вариант чтобы через апиху выдергивать серт.)

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

На просторах интернетов, я нашел такой вот метод SecItemCopyMatching, на вход которому мы можем передать некий query в виде словаря. Но там обязаловка - указывать имя сертификата. У меня имени нет, к сожалению. Но точно уверен, что identity сертификат один. Как выдернуть из keychain’а сертификат?