У меня есть SecTrustRef
объект из системы, который я хотел бы оценить самостоятельно. Для этой работы достаточно просто позвонить SecTrustEvaluateAsync
. Проблема заключается в том, что я должен оценить его в другом процессе, поскольку только этот другой процесс имеет доступ к цепочкам ключей, где хранятся сертификаты CA, что может привести к успешному выполнению оценки.
Два процесса имеют IPC-ссылку, которая позволяет мне обмениваться произвольными байтовыми данными между ними, но я не вижу способа легко сериализовать SecTrustRef
в байтовые данные и десериализовать эти данные обратно в объект в другом процессе. , Кажется, не существует постоянного механизма хранения для SecTrustRef
.
Значит, я упускаю здесь что-то важное или мне действительно нужно получить все сертификаты (SecTrustGetCertificateAtIndex
) и все политики (SecTrustCopyPolicies
) и сериализовать их самостоятельно?
И если да, то как мне сериализовать политику?
Для сертификата (SecCertificateRef
) это довольно просто, я просто звоню SecCertificateCopyData
и позже SecCertificateCreateWithData
.
Но для политик я могу звонить только SecPolicyCopyProperties
с одной стороны, а затем SecPolicyCreateWithProperties
, однако для более позднего требуется второй параметр, policyIdentifier
, и я не вижу способа получить это значение из существующей политики. Чего мне не хватает?