Puis-je obtenir une prise en utilisant SChannel?
Question
Je voudrais utiliser SChannel ou une autre API Microsoft pour prendre en charge TLS pour mon application TCP / IP. Idéalement ce que je voudrais faire est d'utiliser SChannel pour créer une sorte de tunnel TLS dans mon application afin que je puisse passer une poignée de SOCKET à une autre bibliothèque. Est-ce quelque chose SChannel peut faire pour moi ou dois-je mettre en œuvre moi-même tunnel?
La solution
SChannel ne crée pas son propre SOCKET, il fonctionne sur le dessus de votre propre SOCKET. Si vous passez votre SOCKET SChannel à une autre bibliothèque, il aura un accès direct à la connexion TCP / IP sous-jacente, sans passer par SChannel tout à fait. Il ressemble à ce que vous cherchez est de créer deux SOCKETs -. Un pour communiquer en toute sécurité avec un pair à distance, et l'autre pour communiquer unsecurely avec la bibliothèque locale, puis passer manuellement les données entre les deux dans votre code au besoin