Как сериализовать объект SecTrustRef? - PullRequest
1 голос
/ 21 марта 2019

У меня есть SecTrustRef объект из системы, который я хотел бы оценить самостоятельно. Для этой работы достаточно просто позвонить SecTrustEvaluateAsync. Проблема заключается в том, что я должен оценить его в другом процессе, поскольку только этот другой процесс имеет доступ к цепочкам ключей, где хранятся сертификаты CA, что может привести к успешному выполнению оценки.

Два процесса имеют IPC-ссылку, которая позволяет мне обмениваться произвольными байтовыми данными между ними, но я не вижу способа легко сериализовать SecTrustRef в байтовые данные и десериализовать эти данные обратно в объект в другом процессе. , Кажется, не существует постоянного механизма хранения для SecTrustRef.

Значит, я упускаю здесь что-то важное или мне действительно нужно получить все сертификаты (SecTrustGetCertificateAtIndex) и все политики (SecTrustCopyPolicies) и сериализовать их самостоятельно?

И если да, то как мне сериализовать политику?

Для сертификата (SecCertificateRef) это довольно просто, я просто звоню SecCertificateCopyData и позже SecCertificateCreateWithData.

Но для политик я могу звонить только SecPolicyCopyProperties с одной стороны, а затем SecPolicyCreateWithProperties, однако для более позднего требуется второй параметр, policyIdentifier, и я не вижу способа получить это значение из существующей политики. Чего мне не хватает?

...