Я пытался понять, как обрабатывать доверие к сертификатам в macOS с помощью Swift 5. Я могу добавить сертификаты CA с помощью командной строки, но хочу использовать код для разрабатываемого приложения вместо того, чтобы полагаться на внешний скрипт и Process ().
Вот код, который у меня есть, но я не понимаю, какое значение я должен передать в функции SecTrustSettingsSetTrustSettings.
func addCert(cert: String) {
let certURL = Bundle.main.url(forResource: cert, withExtension: "cer")!
let certData = try! Data(contentsOf: certURL)
let certificate: SecCertificate? = SecCertificateCreateWithData(nil, certData as CFData)
let addquery: [String: Any] = [kSecClass as String: kSecClassCertificate,
kSecValueRef as String: certificate!,
kSecAttrLabel as String: cert]
let status = SecItemAdd(addquery as CFDictionary, nil)
guard status == errSecSuccess else {
print("error \(status) : " + (SecCopyErrorMessageString(status, nil)! as String))
return
}
SecTrustSettingsSetTrustSettings(certificate!, .user, <trustSettingsDictOrArray: CFTypeRef>)
}
Я прочитал документацию и может видеть, какие «возможные» значения использовать, например, trustAs Root, но не знает, как go добавить это для работы функции. Существует не так много материала по использованию этого со Swift для macOS, и любая помощь будет принята с благодарностью.
Моя конечная цель - добавить сертификаты CA к пользователю login.keychain-db, чтобы разрешить доступ к порталам Sharepoint, где я работаю. Я хочу, чтобы они были добавлены и автоматически доверялись, когда пользователь нажимает кнопку для вызова этой функции. Спасибо.