機能SecCertificateAddToKeychain()関数は、テスト用に作成した証明書にエラーが表示されます。SecCertificateAddToKeychain - インポートで不明な形式
証明書 - TestCert.p12:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
openssl pkcs12 -export -inkey key.pem -in cert.pem -out TestCert.p12
コード:
NSData *certData = [NSData dataWithContentsOfFile:path];
if (certData) {
SecCertificateRef newCert = SecCertificateCreateWithData (NULL, (CFDataRef)certData);
if (newCert) {
OSStatus addResult = SecCertificateAddToKeychain (newCert, NULL);
if (addResult) {
NSString *errStr = SecCopyErrorMessageString (addResult, NULL);
NSLog (@"Cannot add certificate to keychain: %@", errStr);
}
}
}
出力:キーチェーンに証明書を追加することはできません:インポート中に不明な形式。
.p12証明書を手動で(Finderから)追加できますか?また、 'noErr'と明示的に比較してください。悪い形式ではありません。 –
私はKeychain Accessアプリからアクセスできます。それはパスを尋ね、赤いxと「信頼できない」発言でキーチェーンに入れます。 noErrに関しては、これは可能な限り小さな行で単純化されたコードです。 – IgorD
PKCS#12の代わりにDER形式としてインポートするのはどうですか?あなたは 'openssl x509 -outform der -in certificate.pem -out certificate.der'でこれを試すことができますか? –