2011-01-19 3 views
0

Там существует удобная SecCertificateAddToKeychain() функции, которая позволяет разработчику, чтобы добавить «плавающие» (например, сертификаты SecCertificateRef экземпляров, генерируемых SecCertificateCreateWithData()) в качестве брелки.Добавление SecKeyRef, SecIdentityRefs к OS X брелок

Где эквивалентные функции для SecKeyRef и SecIdentityRef экземпляров? Существует SecKeychainItemImport(), но он предназначен для импорта необработанных данных. Существует также SecItemAdd(), но он ограничен добавлением паролей.

Что мне не хватает?

ответ

3

SecItemAdd вполне способен добавлять сертификаты и ключи к брелкам; просто установите атрибут kSecClass в класс элемента (например, kSecClassKey) и передайте ссылки на элементы в массиве в атрибуте kSecUseItemList.

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

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

Смежные вопросы