【发布时间】:2018-04-08 07:42:12
【问题描述】:
在 Windows 上,可以使用 CryptQueryObject 获取 .exe/.dll 代码签名证书。
是否有任何 c++(或 Objective-c)替代方法来检索已用于对 .app 进行代码签名的证书的 主题名称 和 序列号在 macOS 上?
我使用 xcode 对我的 .app 进行代码签名没有问题,当我在终端中时,我能够看到我的代码已使用正确的证书进行签名。
编辑:
我们的想法是得到类似这个命令行的东西,但是在 C++ 中。
codesign -v --extract-certificates MyApp.app/
| openssl x509 -inform DER -in codesign0 -text
| grep "Serial" -A 1
【问题讨论】:
-
当然,您总是可以从 C++ 调用该 shell 命令,这就是我会做的。但是看看系统是否提供了一个 c++ 实用程序会很有趣。
-
目前,我使用的是openSSL to read the serial number/subject name,我的证书是read from a string。我现在唯一需要做的就是从我的可执行文件中提取证书字符串。我想我可以使用 std::system 做一些工作,但我也更愿意为此使用纯 C++ 调用。我不知道 macOS 可执行文件上的 fopen 是否可以读取/提取证书。
标签: c++ macos code-signing