我有一些使用Apple 安全传输和钥匙串API 来创建 SSL/TLS 服务器 (CLI) 的 C++ 代码。该代码已经能够通过现有钥匙串中用户提供的指纹来加载服务器证书。
但是,出于兼容性原因,我想让服务器也从用户提供的文件集中加载证书 + 密钥 (PEM)。
需要明确的是:我不想将文件导入用户的钥匙串,而只是在那个“会话”中使用它。
基本上,填写XXX:
bool AppleTLSContext::addCredentialFile(const std::string& certfile,
const std::string& keyfile)
{
if (tryAsFingerprint(certfile)) {
return true;
}
// XXX
}
似乎可以使用SecItemImport
和/或SecKeychainItemCreateFromContent
将证书/密钥导入带有随机密码的一次性钥匙串中。
- 有没有不使用一次性钥匙扣的可行方法?
- 如果不是,“一次性钥匙串”选项是否可行?
- 此外,是否可以仅在内存中创建一次性钥匙串?(似乎
SecKeychainCreate
确实需要一条路径)
我正在寻找一种在编译后至少可以在 OSX 10.6+ 上运行的解决方案(#ifdef
s 可以)。