Die Funktion SecCertificateAddToKeychain() gibt mir einen Fehler mit dem Zertifikat, das ich zum Testen erstellt habe.SecCertificateAddToKeychain - Unbekanntes Format im Import
Das Zertifikat - 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
Der Code:
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);
}
}
}
Ausgang: Kann nicht Zertifikat in den Schlüsselbund: Unbekanntes Format im Import. Irgendeine Idee?
Können Sie das .p12-Zertifikat manuell (aus dem Finder) hinzufügen? Außerdem sollten Sie explizit mit 'noErr' vergleichen, da dies keine schlechte Form ist. –
Ich kann - von Keychain Access App. Es fragt nach dem Pass und steckt ihn in den Schlüsselbund mit einem roten X und einer "nicht vertrauenswürdig" -Aktion. Wenn es um noErr geht, ist dies ein vereinfachter Code in so wenig Zeilen wie möglich. – IgorD
Wie importieren Sie als DER-Format anstelle von PKCS # 12? Können Sie das mit 'openssl x509 -outform der -in certificate.pem -out certificate.der' versuchen? –