Question

Je sais que nous pouvons utiliser SecTrustSetAnchorCertificates () étant donné un SecTrustRef. Mais avec CFStreams, nous pouvons obtenir l'objet confiance seulement après la poignée de main. Une solution semble être de désactiver la vérification de la chaîne de certificats sur le CFStream en utilisant la propriété kCFStreamSSLValidatesCertificateChain puis obtenir les certificats de pairs en utilisant kCFStreamPropertySSLPeerCertificates, créer une fiducie de ces certificats et d'évaluer la confiance nous-mêmes.

Mais il serait beaucoup plus propre si nous pouvions dire CFStream utiliser un tableau de certs comme point d'ancrage. Est-ce que j'espérais trop?

Était-ce utile?

La solution

eskimo1 d'Apple Devforums a répondu à cette façon:

Tout d'abord, désactivez l'évaluation de la confiance automatique à l'aide kCFStreamSSLValidatesCertificateChain.

En second lieu, une fois que le flux est en cours d'exécution (je fais habituellement dans mon « peut accepter octets » ou « a octets disponibles » traitement des messages), obtenir l'objet SecTrust du flux en utilisant kCFStreamPropertySSLPeerTrust et évaluer cette confiance pour vous-même. En cas d'échec de l'évaluation confiance, Abats les cours d'eau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top