函數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',不這樣做是不好的形式。 –
我可以 - 從鑰匙串訪問應用程序。它要求通過,並將其放入鑰匙鏈中,並帶有紅色x和「不可信」的備註。當談到noErr時,這是儘可能少的行中的簡化代碼。 – IgorD
如何導入DER格式而不是PKCS#12?你可以用'openssl x509 -outform der -in certificate.pem -out certificate.der'來試試這個嗎? –