Apple Secure TransportおよびKeychain 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 は問題ありません)。