Fragen? Antworten! Siehe auch: Alternativlos
zu Deinem Post http://blog.fefe.de/?ts=abc8718c wäre es total super gewesen, wenn Du in dem Zug auf das eigentlich, viel gravierendere Problem hingewiesen hättest. Die betroffene Bibliothek AFNetwork ist ein Symptom für eine große Unsitte, nicht nur bei App-Entwicklern. AFNetwork ist eine externe Bibliothek für Netzwerk-Aufgaben. Es gibt nichts in AFNetwork, dass sich nicht mit wenigen Handgriffen mit Bordmitteln von iOS durchführen ließe. AFNetwork ist im Großen und Ganzen nur ein Wrapper für das URL Loading System. Es ist aber unter App-Entwicklern total hipp, per Cocoapods (externer Paketmanager) solche Libs einzubauen, weil … hey … ich benutze viele Libs mit wohlklingenden Namen … meine App muss gut und ich wichtig sein! AFNetwork wird häufig nur dazu benutzt, Certificate Pinning zu machen. Nativ sind das knapp 10 Zeilen Code:(Hervorhebungen aus dem Original zitiert)-(BOOL)checkCertificate:(NSURLAuthenticationChallenge *)challenge{ if ([[[challenge protectionSpace] authenticationMethod] isEqualToString: NSURLAuthenticationMethodServerTrust]) { SecTrustRef serverTrust = [[challenge protectionSpace] serverTrust]; BOOL trustedCert = NO; NSData *theData; NSArray *theHashes = [NSArray arrayWithArray:[EAPConfig eapCloudHashes]]; if(serverTrust != NULL) { CFIndex theCertCount = SecTrustGetCertificateCount(serverTrust); for(CFIndex theCertIndex = 0; theCertIndex < theCertCount; theCertIndex++) { SecCertificateRef theCert = SecTrustGetCertificateAtIndex(serverTrust, theCertIndex); theData = (__bridge_transfer NSData *)SecCertificateCopyData(theCert); for (NSString *theHash in theHashes) { if([theHash caseInsensitiveCompare:[EAPConfig sha1HexDigest:theData]] == NSOrderedSame){ trustedCert = YES; break; } else { trustedCert = NO; } } } } }Das müsste man sich aber entweder googeln oder selbst aus der Doku zusammensuchen. Und dafür braucht man Hintergrundwissen über X509. Viel zu anstrengend. Da klebe ich mir lieber eine Lib mit tausenden Zeilen von Code in meine App und habe keinen blassen Schimmer, was die tut. Und schlauer werde ich damit auch nicht.Ich habe schon viele Apps auditiert. Die Anzahl der Apps, bei denen keine externen Libs für Trivialaufgaben verwendet werden, kann ich an einem Finger abzählen. SDL … my ass!
Von mir sei als zusätzlicher Hinweis noch erlaubt, dass in meiner Berufserfahrung fast alle Apps für mobile Endgeräte keine ordentliche Zertifikatsprüfung machen.
Update: Hier gibt es eine Übersicht der ganzen grottigen Java-APIs an der Stelle. Wenn wir schon dabei sind, in der Kanalisation herumzurühren …