Swift-iOS-Client-Zertifikat-Authentifizierung

Den web service, den ich konsumieren wollen, erfordert ein Clientzertifikat. Wie kann ich mein Zertifikat?

Näher ich verstehe nicht, wie die SecIdentityRef.

In meinem NSURLConnection didReceiveAuthenticationChallenge ich habe dies bedingte nach ServerTrust:

else if challenge?.protectionSpace.authenticationMethod == NSURLAuthenticationMethodClientCertificate
    {
        var secIdent : SecIdentityRef = ?????????
        var certCred = NSURLCredential(identity: secIdent, certificates: [getClientCertificate()], persistence: NSURLCredentialPersistence.Permanent)
        challenge?.sender.useCredential(certCred, forAuthenticationChallenge: challenge!)
    }

Den getClientCertificate Methode:

func getClientCertificate() -> SecCertificateRef
{
    let mainBundle : NSBundle = NSBundle.mainBundle()
    var mainBund = mainBundle.pathForResource("iosClientCert", ofType: "cer") //exported the cert in der format.
    var key : NSData = NSData(contentsOfFile: mainBund!)!
    var turnToCert : SecCertificateRef = SecCertificateCreateWithData(kCFAllocatorDefault, key).takeRetainedValue()

    return turnToCert;
}
Vielen Dank für die bounty @EpicPandaForce
Wir liefen in das gleiche problem, aber wir arbeiten noch daran... --- wir würden wahrscheinlich um einen direkten port von der folgenden Lösung stackoverflow.com/a/27012819/2413303 zugänglich sind, Swift, obwohl.
Ich hatte die app in einer Testphase, so musste ich wechseln, es zu benutzen auth mit tokens usw. Ich werden Neubetrachtung dies so schnell wie ich kann. Ich ging fast den bridging-header-route und implementiert den http-client in obj-c... aber ich hatte keine Zeit für, entweder.
"Ruf aus EpicPandaForce endet in 22 Stunden" bla
.cer ist ein einfaches exportieren, das keine Tasten. Wie wir sind gonna Anhängen, dies in der Anfrage Zeit. Jemand dieses Problem gelöst ?

InformationsquelleAutor sk1tt1sh | 2015-05-11

Schreibe einen Kommentar