【发布时间】:2019-08-12 03:59:51
【问题描述】:
我有一个来自系统的SecTrustRef 对象,我想评估自己。只需致电SecTrustEvaluateAsync 即可完成这项工作。问题是,我必须在不同的进程中对其进行评估,因为只有这个其他进程才能访问存储 CA 证书的钥匙串,这可能会导致评估成功。
这两个进程有一个 IPC 链接,允许我在它们之间交换任意字节数据,但我看不到任何方法可以轻松地将 SecTrustRef 序列化为字节数据并将该数据反序列化回另一个进程的对象. SecTrustRef 似乎没有持久存储机制。
那么我是否在这里忽略了一些重要的事情,还是我真的必须获得所有证书 (SecTrustGetCertificateAtIndex) 和所有策略 (SecTrustCopyPolicies) 并自己序列化这些?
如果是这样,我将如何序列化策略?
对于证书 (SecCertificateRef) 这很简单,我只需调用 SecCertificateCopyData 和稍后的 SecCertificateCreateWithData。
但是对于策略,我只能在一侧调用SecPolicyCopyProperties,然后在SecPolicyCreateWithProperties 上调用,但是后一个需要第二个参数,policyIdentifier,我认为无法从现有策略中获取该值。我错过了什么?
【问题讨论】:
标签: macos trust security-framework